亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? serial.lst

?? LCD及鍵盤、RS232通信控制源代碼、采用keil c51環境編譯
?? LST
?? 第 1 頁 / 共 3 頁
字號:
C51 COMPILER V6.14  SERIAL                                                                 07/15/2005 09:38:51 PAGE 1   


C51 COMPILER V6.14, COMPILATION OF MODULE SERIAL
OBJECT MODULE PLACED IN .\Serial.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE .\Serial.C DEBUG OBJECTEXTEND

stmt level    source

   1          /*********************************************************************************
   2          *                                                                                *
   3          *	FileName:	Serial.c                                                         *
   4          *	Function:	serial port functions                                            *
   5          *	SystemName:	NDS18000-BSC                                                     *
   6          *	CPU:		ATMEL AT89C52                                                    *
   7          *	Startup:	14/Oct/2002                                                      *
   8          *	Author:		XuYiBo                                                           *
   9          *                                                                                *
  10          *********************************************************************************/
  11          #include <AT89X52.H>
  12          #include <intrins.h>
  13          
  14          #include "NDSBSCUI.H"
  15          #include "Serial.h"
  16          #include "General.h"
  17          
  18          #include "display.h"
  19          unsigned char idata UART_TransBuffer[UARTBUFFERLEN_TX];				//串口發送緩沖區(存放要求收發信機應答的數據幀)
  20          unsigned char idata UART_RcvBuffer[UARTBUFFERLEN_RX];
  21          
  22          unsigned char idata *UARTTransHead;
  23          unsigned char idata *UARTTransTail;
  24          unsigned char idata *UARTTransFrame;
  25          unsigned char idata *UARTRcvHead;
  26          unsigned char idata *UARTRcvTail;
  27          unsigned char idata *UARTRcvFrame;
  28          
  29          unsigned char data ucAckTimeout;	//應答計時器
  30          unsigned char data ucRcvLen;		//幀長度,不包括STX和ETX
  31          unsigned char data ucRcvCheckSum;	//用于計算接收到的數據幀的校驗和
  32          
  33          unsigned char data ucNoAckCount;	//重發次數
  34          
  35          unsigned char bdata SerialFlag;
  36          sbit STXRcvFlag = SerialFlag^0;		//TRUE->已經接收到STX,允許降數據放入接收緩沖區
  37          sbit EnableTran = SerialFlag^1;		//TRUE->允許發送數據
  38          sbit StopTran	= SerialFlag^2;		//TRUE->已經停止發送數據
  39          sbit ConnectFlag= SerialFlag^3;		//TRUE->和收發信機連接成功,FALSE->和收發信機連接失敗;
  40          
  41          extern UISema	xdata UISemaphore;	//define in NDSBSCUI.C
  42          extern UIMemory	xdata UIDataArea;	//define in NDSBSCUI.C
  43          
  44          unsigned char code ucACK[]=		{STX,ACK_FRAME,ETX,0};
  45          unsigned char code ucNAK[]=		{STX,NAK_FRAME,ETX,0};
  46          unsigned char code ucREQ[]=		{STX,REQ_FRAME,ETX,0};
  47          unsigned char code ucUpfreq[]=	{STX,COMM_FRAME,UPFREQ_COMM,0};
  48          unsigned char code ucDwnfreq[]=	{STX,COMM_FRAME,DWNFREQ_COMM,0};
  49          /******************************************************************************
  50          *                                                                             *
  51          *	Initialize serial receive&transfer function                               *
  52          *                                                                             *
  53          ******************************************************************************/
  54          void InitSerial(void)
  55          {
C51 COMPILER V6.14  SERIAL                                                                 07/15/2005 09:38:51 PAGE 2   

  56   1      	UARTTransHead	= UART_TransBuffer;
  57   1      	UARTTransTail	= UART_TransBuffer;
  58   1      	UARTTransFrame	= UART_TransBuffer;
  59   1      	UARTRcvHead		= UART_RcvBuffer;
  60   1      	UARTRcvTail		= UART_RcvBuffer;
  61   1      	UARTRcvFrame	= UART_RcvBuffer;
  62   1      
  63   1      	ucAckTimeout	= 0;
  64   1      	ucRcvLen		= 0;
  65   1      	ucRcvCheckSum	= 0;
  66   1      	ucNoAckCount	= 0;
  67   1      
  68   1      	STXRcvFlag		= FALSE;
  69   1      	EnableTran		= TRUE;
  70   1      	StopTran		= TRUE;
  71   1      	ConnectFlag		= FALSE;
  72   1      }
  73          
  74          /******************************************************************************
  75          *                                                                             *
  76          *	serial port interrupt handle                                              *
  77          *                                                                             *
  78          ******************************************************************************/
  79          void UART(void) interrupt UARTINT using 1
  80          {
  81   1      unsigned char ucByte;
  82   1      unsigned char idata *TmpPtr;
  83   1      
  84   1      	if(RI)
  85   1      	{
  86   2      		ucByte = SBUF;
  87   2      		RI = 0;
  88   2      		if( ucByte == STX)
  89   2      		{
  90   3      			STXRcvFlag	= TRUE;
  91   3      			UARTRcvFrame = UARTRcvTail;
  92   3      			*(UARTRcvTail++) = ucByte;
  93   3      			if(UARTRcvTail == UART_RcvBuffer+UARTBUFFERLEN_RX)
  94   3      			{
  95   4      				UARTRcvTail = UART_RcvBuffer;
  96   4      			}
  97   3      		}
  98   2      		else if( STXRcvFlag == TRUE)
  99   2      		{//已經收到STX
 100   3      			*(UARTRcvTail++) = ucByte;
 101   3      			if(UARTRcvTail == UART_RcvBuffer+UARTBUFFERLEN_RX)
 102   3      			{
 103   4      				UARTRcvTail = UART_RcvBuffer;
 104   4      			}
 105   3      			if(ucByte==ETX)
 106   3      			{//收完一個幀
 107   4      				STXRcvFlag	= FALSE;		//重新搜索STX
 108   4      			}
 109   3      		}
 110   2      	}
 111   1      	if(TI)
 112   1      	{
 113   2      		TI = 0;
 114   2      		if(EnableTran==TRUE)
 115   2      		{
 116   3      			if(UARTTransHead != UARTTransTail)
 117   3      			{
C51 COMPILER V6.14  SERIAL                                                                 07/15/2005 09:38:51 PAGE 3   

 118   4      				SBUF = *UARTTransHead;
 119   4      				if( *UARTTransHead == STX)
 120   4      				{
 121   5      					UARTTransFrame = UARTTransHead;
 122   5      				}
 123   4      				else if( *UARTTransHead == ETX)
 124   4      				{
 125   5      					TmpPtr = UARTTransFrame;
 126   5      					if(++TmpPtr == UART_TransBuffer+UARTBUFFERLEN_TX)
 127   5      					{
 128   6      						TmpPtr = UART_TransBuffer;
 129   6      					}
 130   5      					if( (*TmpPtr == COMM_FRAME) || (*TmpPtr == REQ_FRAME) )
 131   5      					{//等待收發信機應答.除命令幀(COMM_FRAME)和REQ幀要求收發信機應答外,其它幀不要求收發信機應答
 132   6      						EnableTran	= FALSE;
 133   6      						StopTran	= TRUE;
 134   6      						ucAckTimeout= 30;
 135   6      					}
 136   5      				}
 137   4      				if(++UARTTransHead == UART_TransBuffer+UARTBUFFERLEN_TX)
 138   4      				{
 139   5      					UARTTransHead = UART_TransBuffer;
 140   5      				}
 141   4      			}
 142   3      			else
 143   3      			{//transfer buffer empty
 144   4      				StopTran = TRUE;
 145   4      			}
 146   3      		}
 147   2      	}
 148   1      }
 149          
 150          /******************************************************************************
 151          *                                                                             *
 152          *	write data to transfer buffer                                             *
 153          *                                                                             *
 154          ******************************************************************************/
 155          
 156          void WriteSerial(unsigned char code *pstr_Sour,unsigned char uclen)
 157          {
 158   1      unsigned char ucCanWrite;
 159   1      unsigned char idata *TransPtr;
 160   1      
 161   1      	if(uclen==0) return;
 162   1      
 163   1      	TransPtr = UARTTransTail;
 164   1      	if( UARTTransFrame > TransPtr)
 165   1      	{
 166   2      		ucCanWrite = UARTTransFrame - TransPtr;
 167   2      	}
 168   1      	else
 169   1      	{
 170   2      		ucCanWrite = UARTBUFFERLEN_TX - (TransPtr - UARTTransFrame);
 171   2      	}
 172   1      
 173   1      	if( ucCanWrite != 0)
 174   1      	{
 175   2      		if(ucCanWrite > uclen)
 176   2      		{
 177   3      			ucCanWrite = uclen;
 178   3      		}
 179   2      		if(TransPtr + ucCanWrite > UART_TransBuffer + UARTBUFFERLEN_TX)
C51 COMPILER V6.14  SERIAL                                                                 07/15/2005 09:38:51 PAGE 4   

 180   2      		{
 181   3      			while( TransPtr != UART_TransBuffer + UARTBUFFERLEN_TX)
 182   3      			{
 183   4      				*(TransPtr++) = *(pstr_Sour++);
 184   4      				ucCanWrite--;
 185   4      			}
 186   3      			TransPtr = UART_TransBuffer;
 187   3      			for(;ucCanWrite!=0;ucCanWrite--)
 188   3      			{
 189   4      				*(TransPtr++) = *(pstr_Sour++);
 190   4      			}
 191   3      		}
 192   2      		else
 193   2      		{
 194   3      			for(;ucCanWrite!=0;ucCanWrite--)
 195   3      			{
 196   4      				*(TransPtr++) = *(pstr_Sour++);
 197   4      			}
 198   3      		}
 199   2      		if(TransPtr == UART_TransBuffer+UARTBUFFERLEN_TX)
 200   2      		{
 201   3      			TransPtr = UART_TransBuffer;
 202   3      		}
 203   2      		UARTTransTail = TransPtr;
 204   2      	}
 205   1      }
 206          
 207          /******************************************************************************
 208          *                                                                             *
 209          *	write a byte to transfer buffer                                           *
 210          *                                                                             *
 211          ******************************************************************************/
 212          
 213          void WriteSerialByte(unsigned char ucByte)
 214          {
 215   1      unsigned char idata *TransPtr;
 216   1      	TransPtr = UARTTransTail;
 217   1      	*TransPtr = ucByte;
 218   1      	if(++TransPtr == UART_TransBuffer+UARTBUFFERLEN_TX)
 219   1      	{
 220   2      		TransPtr = UART_TransBuffer;
 221   2      	}
 222   1      	UARTTransTail = TransPtr;
 223   1      }
 224          /******************************************************************************
 225          *                                                                             *
 226          *	timer2 interrupt handle                                                   *
 227          *                                                                             *
 228          ******************************************************************************/
 229          void Timer2(void) interrupt TIMER2INT using 1
 230          {
 231   1      unsigned char data ucTmp;
 232   1      	if( ucAckTimeout != 0)
 233   1      	{
 234   2      		if( --ucAckTimeout ==0 )
 235   2      		{//timeout
 236   3      			EnableTran	= TRUE;
 237   3      			if( ++ucNoAckCount < MAX_REP)
 238   3      			{
 239   4      				UARTTransHead	= UARTTransFrame;
 240   4      				StopTran		= FALSE;
 241   4      				TI = 1;
C51 COMPILER V6.14  SERIAL                                                                 07/15/2005 09:38:51 PAGE 5   

 242   4      			}
 243   3      			else
 244   3      			{//重發次數超過“最大允許重發次數”
 245   4      				ucTmp = 255;
 246   4      				while( --ucTmp )
 247   4      				{
 248   5      					UISemaphore.ucExamAreaSem = 0x00;				//request semaphore
 249   5      					if( UISemaphore.ucExamAreaSem == 0x00)
 250   5      					{
 251   6      						UIDataArea.Exam_Buffer.ConnectFlag		= FALSE;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区在线观看免费| 国产精品丝袜91| 97se狠狠狠综合亚洲狠狠| 国产精品伊人色| 国产裸体歌舞团一区二区| 蜜臀av性久久久久av蜜臀妖精| 天天综合网 天天综合色| 亚洲mv在线观看| 蜜桃视频免费观看一区| 美女视频网站黄色亚洲| 极品瑜伽女神91| 成年人午夜久久久| 色综合天天综合网国产成人综合天| 99国产精品国产精品久久| 色综合色狠狠天天综合色| 欧美另类videos死尸| 欧美老肥妇做.爰bbww视频| 欧美一区二区三区四区高清| 国产精品国产三级国产| 亚洲欧洲成人精品av97| 亚洲高清三级视频| 狠狠色综合播放一区二区| 成人免费电影视频| 欧美在线free| 精品国产凹凸成av人导航| 国产精品乱码一区二区三区软件| 亚洲精品免费一二三区| 日韩va欧美va亚洲va久久| 国产剧情在线观看一区二区| jvid福利写真一区二区三区| 制服丝袜亚洲播放| 国产精品丝袜91| 亚洲h动漫在线| 国产不卡视频一区| 欧美日韩和欧美的一区二区| 欧美一二三在线| 中文字幕精品三区| 天天影视涩香欲综合网| 国产精品一区二区无线| 欧美人体做爰大胆视频| 国产欧美日韩激情| 日一区二区三区| 99国产精品一区| 欧美精品一区二区三区蜜臀| 亚洲精品高清视频在线观看| 久久国产尿小便嘘嘘尿| 91丨国产丨九色丨pron| 日韩情涩欧美日韩视频| 一级中文字幕一区二区| 成人免费毛片嘿嘿连载视频| 日韩一区二区中文字幕| 最新成人av在线| 美女视频黄久久| 欧美三级日韩三级| 国产精品美女久久久久久久久 | av电影一区二区| 日韩精品一区二区三区视频播放 | 中文字幕一区二区5566日韩| 精品亚洲免费视频| 69p69国产精品| 伊人开心综合网| 91在线小视频| 国产精品久久夜| 福利一区二区在线观看| 久久久不卡网国产精品一区| 免费观看一级特黄欧美大片| 欧美色国产精品| 亚洲尤物在线视频观看| 欧美亚洲国产一区二区三区va | 亚洲欧美偷拍卡通变态| 成人国产精品视频| 国产精品少妇自拍| 成人久久18免费网站麻豆| 国产日韩欧美高清| 丁香五精品蜜臀久久久久99网站 | 亚洲视频免费在线观看| 色综合天天综合网天天狠天天| 国产精品全国免费观看高清| 成人福利视频在线| 亚洲天堂2014| 日韩欧美一二三| 奇米四色…亚洲| 亚洲精品一区二区三区香蕉| 国产在线不卡视频| 欧美激情一区不卡| 91香蕉视频污在线| 一区二区三区四区亚洲| 91麻豆免费看| 午夜精品久久久久久久99樱桃| 欧美性高清videossexo| 日本色综合中文字幕| 久久综合九色综合欧美亚洲| 成人丝袜高跟foot| 亚洲精品菠萝久久久久久久| 欧美日韩成人在线一区| 狠狠网亚洲精品| 最新高清无码专区| 3d成人动漫网站| 国产精品资源站在线| 1024亚洲合集| 91麻豆精品国产自产在线观看一区| 久久成人免费日本黄色| 中文字幕一区二| 欧美一级一级性生活免费录像| 国产黄人亚洲片| 一区二区三区欧美日| 欧美一区二区三区日韩| www.日韩精品| 日韩国产欧美三级| 亚洲视频一二三区| 欧美一区二区三区播放老司机| 国产毛片精品一区| 亚洲成人自拍网| 中文字幕亚洲区| 欧美成人女星排名| 欧美视频一区二区三区在线观看| 久久国产精品色婷婷| 亚洲精品视频一区| 国产精品无遮挡| 日韩精品一区二区三区四区| 91国偷自产一区二区三区成为亚洲经典 | 欧美午夜理伦三级在线观看| 国产真实乱子伦精品视频| 亚洲午夜日本在线观看| 国产日韩欧美精品综合| 欧美一区在线视频| 色综合久久88色综合天天6| 久热成人在线视频| 亚洲一区二区三区四区五区中文| 国产日韩欧美精品一区| 日韩精品一区二区三区四区| 欧美日韩精品一二三区| 一本一道久久a久久精品综合蜜臀| 国产在线播放一区二区三区| 三级不卡在线观看| 亚洲国产日韩精品| 亚洲精品免费在线观看| 国产精品传媒在线| 中文字幕一区二| 亚洲女与黑人做爰| 国产精品护士白丝一区av| 国产日韩精品一区二区三区在线| 日韩欧美中文一区二区| 在线成人高清不卡| 欧美片在线播放| 欧美久久久久久久久中文字幕| 在线亚洲免费视频| 一本久久精品一区二区| 色美美综合视频| 不卡视频在线看| 91美女福利视频| 色婷婷综合久久久| 欧美午夜精品一区| 欧美四级电影网| 欧美一区二区三区影视| 日韩精品在线网站| 久久综合九色综合97_久久久| 精品乱码亚洲一区二区不卡| 精品少妇一区二区三区日产乱码| 日韩一级高清毛片| 精品国精品国产| 国产欧美日韩不卡| 亚洲免费高清视频在线| 视频一区在线视频| 美女视频网站久久| 国产91丝袜在线播放九色| 色综合久久中文综合久久97| 欧美裸体bbwbbwbbw| 日韩女优视频免费观看| 国产三级一区二区| 成人免费一区二区三区在线观看| 一区二区三区日本| 黄网站免费久久| 91蜜桃网址入口| 日韩一区二区三区免费看| 久久久亚洲高清| 亚洲精品大片www| 蜜桃视频在线观看一区| 成人午夜在线视频| 91精品久久久久久蜜臀| 亚洲国产精品成人综合 | 国产精品青草综合久久久久99| 国产精品久久久久久亚洲毛片| 一区二区三国产精华液| 加勒比av一区二区| 日本精品免费观看高清观看| 日韩一区二区三区视频| 综合欧美一区二区三区| 蜜桃一区二区三区在线| 9i在线看片成人免费| 日韩精品一区二区三区视频 | 中文字幕日韩精品一区| 日本vs亚洲vs韩国一区三区二区| 成人精品小蝌蚪| 日韩久久久精品| 伊人色综合久久天天人手人婷| 紧缚奴在线一区二区三区| 欧美日韩一区二区三区在线看| 欧美国产一区视频在线观看| 日韩和欧美一区二区三区|