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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? serial.lst

?? LCD及鍵盤、RS232通信控制源代碼、采用keil c51環(huán)境編譯
?? LST
?? 第 1 頁 / 共 3 頁
字號(hào):
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];				//串口發(fā)送緩沖區(qū)(存放要求收發(fā)信機(jī)應(yīng)答的數(shù)據(jù)幀)
  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;	//應(yīng)答計(jì)時(shí)器
  30          unsigned char data ucRcvLen;		//幀長度,不包括STX和ETX
  31          unsigned char data ucRcvCheckSum;	//用于計(jì)算接收到的數(shù)據(jù)幀的校驗(yàn)和
  32          
  33          unsigned char data ucNoAckCount;	//重發(fā)次數(shù)
  34          
  35          unsigned char bdata SerialFlag;
  36          sbit STXRcvFlag = SerialFlag^0;		//TRUE->已經(jīng)接收到STX,允許降數(shù)據(jù)放入接收緩沖區(qū)
  37          sbit EnableTran = SerialFlag^1;		//TRUE->允許發(fā)送數(shù)據(jù)
  38          sbit StopTran	= SerialFlag^2;		//TRUE->已經(jīng)停止發(fā)送數(shù)據(jù)
  39          sbit ConnectFlag= SerialFlag^3;		//TRUE->和收發(fā)信機(jī)連接成功,FALSE->和收發(fā)信機(jī)連接失敗;
  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      		{//已經(jīng)收到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      			{//收完一個(gè)幀
 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      					{//等待收發(fā)信機(jī)應(yīng)答.除命令幀(COMM_FRAME)和REQ幀要求收發(fā)信機(jī)應(yīng)答外,其它幀不要求收發(fā)信機(jī)應(yīng)答
 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      			{//重發(fā)次數(shù)超過“最大允許重發(fā)次數(shù)”
 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;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产午夜精品一区二区三区嫩草 | 亚洲欧美综合色| 国产在线精品一区二区夜色 | 亚洲午夜激情av| 色999日韩国产欧美一区二区| 亚洲精品国久久99热| 91久久精品网| 天天影视色香欲综合网老头| 欧美一区二区在线播放| 精品一区二区三区的国产在线播放| 久久综合久久99| 成人av电影在线网| 亚洲国产欧美在线人成| 欧美一级免费观看| 国产福利精品一区二区| **欧美大码日韩| 69堂精品视频| 国产精品99久久久久久久vr| 中文字幕亚洲视频| 在线播放日韩导航| 国产一区二区三区四| 亚洲丝袜自拍清纯另类| 欧美日韩激情在线| 国产精品亚洲一区二区三区妖精 | 成人性生交大片免费看中文网站| 国产精品不卡一区| 制服丝袜在线91| 国产a级毛片一区| 亚洲精品福利视频网站| 日韩女优视频免费观看| 91在线码无精品| 毛片av一区二区三区| 成人欧美一区二区三区白人| 欧美一区二区三区在线观看视频| 成人白浆超碰人人人人| 奇米777欧美一区二区| 日韩一区有码在线| 亚洲精品v日韩精品| 欧美不卡一区二区三区| 一本到三区不卡视频| 国内一区二区视频| 亚洲一区二区三区四区五区黄 | 日韩美女久久久| 欧美变态凌虐bdsm| 欧美中文字幕一区二区三区亚洲| 国产91精品一区二区| 麻豆成人91精品二区三区| 亚洲在线一区二区三区| 欧美高清一级片在线观看| 欧美一区国产二区| 欧美视频精品在线观看| 91麻豆高清视频| 成人免费福利片| 国产中文字幕一区| 美女被吸乳得到大胸91| 亚洲尤物在线视频观看| 国产精品久久久久久妇女6080| 精品国产一区二区三区久久久蜜月 | 中文在线免费一区三区高中清不卡| 欧美精品v日韩精品v韩国精品v| 99综合电影在线视频| 国产一区二区导航在线播放| 青青青伊人色综合久久| 亚洲五月六月丁香激情| 亚洲精品成人悠悠色影视| 综合久久久久综合| 综合色天天鬼久久鬼色| 国产精品美女久久久久久久久| 久久久久久久久久美女| 欧美精品一区二区三区视频| 精品国产亚洲在线| 亚洲视频一区在线观看| 国产欧美日韩视频一区二区| 精品久久久久久亚洲综合网| 日韩三级.com| 日韩一级二级三级精品视频| 91精品国产综合久久婷婷香蕉 | 久久综合色鬼综合色| 日韩欧美成人一区| 精品国产一区二区三区久久影院| 日韩欧美高清在线| 精品入口麻豆88视频| 欧美成人性战久久| 欧美哺乳videos| 久久午夜国产精品| 久久综合精品国产一区二区三区| 欧美一区二区美女| 久久综合成人精品亚洲另类欧美 | 成人激情动漫在线观看| 99视频一区二区三区| 91美女片黄在线观看| 在线观看日产精品| 欧美精品一级二级三级| 91精品国产日韩91久久久久久| 日韩欧美久久一区| 久久九九久久九九| 综合精品久久久| 亚洲第一在线综合网站| 久久精品国产999大香线蕉| 激情综合色播激情啊| 丁香婷婷综合激情五月色| av电影在线不卡| 欧美日韩视频在线观看一区二区三区 | 首页欧美精品中文字幕| 免费在线观看成人| 成人一区二区三区在线观看| 色悠悠久久综合| 日韩视频一区二区三区在线播放 | 精品国产一区二区在线观看| 国产精品污污网站在线观看| 亚洲欧美日韩电影| 日产国产高清一区二区三区| 国产一区三区三区| 色婷婷国产精品| 欧美不卡视频一区| 一区二区三区在线不卡| 美女脱光内衣内裤视频久久网站| 成人一道本在线| 制服视频三区第一页精品| 国产欧美日韩一区二区三区在线观看| 亚洲欧美色一区| 国产一区在线观看视频| 色94色欧美sute亚洲13| 久久女同互慰一区二区三区| 亚洲国产美女搞黄色| 欧美色男人天堂| 欧美精品一区二区三| 亚洲亚洲人成综合网络| 狠狠色丁香婷综合久久| 91黄色在线观看| 久久久久久麻豆| 免费看日韩a级影片| 91蝌蚪porny| 精品国产三级a在线观看| 亚洲另类在线视频| 国产jizzjizz一区二区| 日韩欧美中文字幕制服| 亚洲人精品一区| 国产·精品毛片| 日韩免费一区二区| 亚洲观看高清完整版在线观看| 成人在线一区二区三区| 日韩欧美国产午夜精品| 亚洲高清免费在线| 99re热视频精品| 国产欧美一区二区三区网站| 青青青爽久久午夜综合久久午夜| 91麻豆免费观看| 国产精品久久久久久久久免费丝袜| 美女视频黄 久久| 91精品中文字幕一区二区三区| 亚洲激情五月婷婷| av在线不卡免费看| 国产日韩欧美一区二区三区综合| 免费观看成人av| 欧美日韩国产高清一区| 亚洲在线视频免费观看| 日本高清不卡在线观看| 国产精品传媒视频| 9色porny自拍视频一区二区| 国产日韩精品久久久| 国产激情视频一区二区在线观看 | 国产欧美精品一区二区三区四区 | 另类欧美日韩国产在线| 欧美一区二区三区思思人| 亚洲成在人线免费| 欧美视频中文一区二区三区在线观看 | 国产精品不卡在线| av男人天堂一区| 亚洲免费av网站| 91色在线porny| 亚洲日本韩国一区| 欧美性生活久久| 亚洲福利国产精品| 69久久夜色精品国产69蝌蚪网 | 久久精品国产亚洲高清剧情介绍 | 欧美视频在线观看一区二区| 亚洲va中文字幕| 91精品国产手机| 久久99国内精品| 亚洲高清免费在线| 91精品啪在线观看国产60岁| 麻豆精品一区二区三区| 日韩欧美一级二级三级久久久| 久久精品av麻豆的观看方式| 欧美videos大乳护士334| 国产美女一区二区| 亚洲国产精华液网站w| av成人免费在线观看| 一区二区日韩av| 337p亚洲精品色噜噜噜| 国产麻豆精品久久一二三| 中文字幕一区二区三区av| 欧美亚洲一区二区在线| 麻豆一区二区三| 亚洲国产精品黑人久久久| 欧洲精品一区二区三区在线观看| 日韩电影在线一区二区| 精品剧情在线观看| av亚洲精华国产精华精华|