📄 uart.lst
字号:
C51 COMPILER V7.06 UART 12/04/2008 15:12:02 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE UART
OBJECT MODULE PLACED IN UART.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE UART.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include "Include.h"
2 extern unsigned char xdata CommBuf[MAX_BUF_NUMBER]; //串口缓冲
3 extern unsigned char xdata SCC; //串口接收和校验
4 extern unsigned char Timer;
5 unsigned char Rx_Cnt=0; //串口接收计数器
6 bit ReceiveOK = 0; //数据包接收完成标志位
7 //UART初始化
8 //11.0592M晶振 57600波特率
9 void UARTInit(void)
10 {
11 1 SCON=0X50; //232 COM init 方式1,允许接收
12 1 T2CON=0X30;
13 1 RCAP2H=0XFF;
14 1 RCAP2L=0XFA; //计数器加6
15 1 TH2=0XFF;
16 1 TL2=0XFA; //计数器加6
17 1 ES = 1;
18 1 TR2 = 1;
19 1 }
20 //通过串口发送1Byte数据
21 void UARTSendByte(unsigned char i)
22 {
23 1 SBUF=i;
24 1 while(0==TI);
25 1 TI=0;
26 1 }
27
28 void IRQ_UartGet(void) interrupt 4
29 {
30 1 unsigned char i;
31 1 if(RI==1)
32 1 {
33 2 RI = 0;
34 2 i = SBUF;
35 2 if(!ReceiveOK)
36 2 { if(0==Rx_Cnt)
37 3 { if(PKG_MARK1==i)
38 4 {
39 5 Timer = UART_OUT_TIME;
40 5 CommBuf[Rx_Cnt++] = i;
41 5 SCC = i;
42 5 }
43 4 }
44 3 else if(1==Rx_Cnt)
45 3 {
46 4 if(PKG_MARK2==i)
47 4 {
48 5 CommBuf[Rx_Cnt++] = i;
49 5 SCC += i;
50 5 }
51 4 else{ Rx_Cnt = 0;}}
52 3 else if(Rx_Cnt<4)
53 3 {
54 4 CommBuf[Rx_Cnt++] = i;
55 4 SCC += i;
C51 COMPILER V7.06 UART 12/04/2008 15:12:02 PAGE 2
56 4 }
57 3 else if(Rx_Cnt<CommBuf[3]+4)
58 3 {
59 4 CommBuf[Rx_Cnt++] = i;
60 4 SCC +=i;
61 4 }
62 3 else if(Rx_Cnt==CommBuf[3]+4)
63 3 {
64 4 CommBuf[Rx_Cnt++] = i;
65 4 ReceiveOK = 1;
66 4 }
67 3 }
68 2 }
69 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 248 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 ----
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -