📄 uart.lst
字号:
C51 COMPILER V7.10 UART 08/04/2006 15:38:10 PAGE 1
C51 COMPILER V7.10, COMPILATION OF MODULE UART
OBJECT MODULE PLACED IN UART.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE UART.C BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <at89x51.h>
2
3 //=========串口0=======================================
4 #define LenBuf 0x10
5
6 data unsigned char time_u;
7 data unsigned char TIflag;
8 data unsigned char *head_pt; //接受头指针
9 data unsigned char *tail_pt; //接受尾指针
10 data unsigned char uart_buff[LenBuf]; //接受缓冲区
11
12 #define START_PT &uart_buff[0]
13 #define END_PT &uart_buff[LenBuf]
14
15 idata unsigned char TxBuf[LenBuf]; //发缓冲区实体
16 idata unsigned char *inTxBuf,*outTxBuf;//发送缓冲区读写指针
17
18
19 void Uart_Init(void)
20 {
21 1 TMOD = 0X20;
22 1 TL1 = 0XFD;
23 1 TH1 = 0XFD; //9600
24 1 SCON = 0X50;
25 1 PCON = 0X80;
26 1 TR1 = 1;
27 1 REN = 1;
28 1 TIflag = 0;
29 1 inTxBuf = TxBuf,outTxBuf=TxBuf;
30 1 head_pt = START_PT;
31 1 tail_pt = START_PT;
32 1
33 1 }
34
35 void Uart0_ISR(void) interrupt 4 using 2
36 {
37 1 if(RI==1)
38 1 {
39 2 RI=0;
40 2 *head_pt=SBUF;
41 2 head_pt++;
42 2 if(head_pt==END_PT) head_pt=START_PT;
43 2
44 2
45 2 }//if(RI==1)
46 1 if(TI)
47 1 {
48 2 TI=0;
49 2 if(inTxBuf==outTxBuf) {TIflag=0;}//TxBuf Empty
50 2 else
51 2 {
52 3 SBUF=*outTxBuf; outTxBuf++;
53 3 if(outTxBuf==TxBuf+LenBuf) outTxBuf=TxBuf;
54 3 }
55 2 }
C51 COMPILER V7.10 UART 08/04/2006 15:38:10 PAGE 2
56 1 }
57
58 void ComOutChar( unsigned char ch) //串口0发送字符
59 {
60 1 unsigned char *t;
61 1 //ES=0;
62 1 t=inTxBuf;t++;
63 1 if(t==TxBuf+LenBuf) t=TxBuf; // 30 TxBuf[30]缓冲长度
64 1 if(t==outTxBuf) {/*ES=1;*/return;} //TxBuf Full
65 1 *inTxBuf=ch;
66 1 inTxBuf=t;
67 1 if(TIflag==0){TIflag=1; TI=1; }
68 1 //ES=1;
69 1 }
70 //--------------------------------------
71 unsigned char ComGetChar() //串口0接收字符
72 {
73 1 unsigned char i;
74 1 //if(tail_pt!=head_pt)
75 1 i=*tail_pt;
76 1 tail_pt++;
77 1 if(tail_pt==END_PT)
78 1 tail_pt=START_PT;
79 1 return i;
80 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 417 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 24 3
IDATA SIZE = 22 ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -