📄 uart.lst
字号:
C51 COMPILER V8.02 UART 12/04/2008 06:31:20 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE UART
OBJECT MODULE PLACED IN UART.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE UART.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "Include.h"
2 extern uchar xdata CommBuf[MAX_BUF_NUMBER];//串口缓冲
3 extern uchar xdata SCC;//串口接收和校验
4 extern uchar Timer;
5 uchar Rx_Cnt=0;//串口接收计数器
6 bit ReceiveOK = 0;//数据包接收完成标志位
7 //UART初始化
8 //11.0592M晶振 57600波特率
9 void UARTInit(void)
10 { SCON=0X50; //232 COM init 方式1,允许接收
11 1 T2CON=0X30;
12 1 RCAP2H=0XFF;
13 1 RCAP2L=0XFA; //计数器加6
14 1 TH2=0XFF;
15 1 TL2=0XFA; //计数器加6
16 1 ES = 1;
17 1 TR2 = 1;
18 1 }
19 void UARTSendByte(uchar i)//通过串口发送1Byte数据
20 {
21 1 SBUF=i;
22 1 while(0==TI);
23 1 TI=0;
24 1 }
25 void IRQ_UartGet(void) interrupt 4//接收UART的数据
26 {
27 1 uchar i;
28 1
29 1 if(RI==1)
30 1 {
31 2 RI = 0;
32 2 i = SBUF;
33 2
34 2 if(!ReceiveOK)
35 2 {
36 3 if(0==Rx_Cnt)
37 3 {
38 4 if(PKG_MARK1==i)
39 4 {
40 5 Timer = UART_OUT_TIME;
41 5 CommBuf[Rx_Cnt++] = i;
42 5 SCC = i;
43 5 }
44 4 }
45 3 else if(1==Rx_Cnt)
46 3 {
47 4 if(PKG_MARK2==i)
48 4 {
49 5 CommBuf[Rx_Cnt++] = i;
50 5 SCC += i;
51 5 }
52 4 else
53 4 {
54 5 Rx_Cnt = 0;
55 5 }
C51 COMPILER V8.02 UART 12/04/2008 06:31:20 PAGE 2
56 4 }
57 3 else if(Rx_Cnt<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 SCC +=i;
66 4 }
67 3 else if(Rx_Cnt==CommBuf[3]+4)
68 3 {
69 4 CommBuf[Rx_Cnt++] = i;
70 4 ReceiveOK = 1;
71 4 }
72 3 }
73 2 }
74 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 + -