?? 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 + -