📄 serial.lst
字号:
C51 COMPILER V8.18 SERIAL 11/30/2009 13:35:24 PAGE 1
C51 COMPILER V8.18, COMPILATION OF MODULE SERIAL
OBJECT MODULE PLACED IN .\OutPut\serial.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Source\serial.c LARGE OPTIMIZE(SIZE) DEBUG OBJECTEXTEND PRINT(.\OutPut\seri
-al.lst) OBJECT(.\OutPut\serial.obj)
line level source
1 #include "includes.h"
2
3 INT8U xdata TxBuf[LenTxBuf],RxBuf[LenRxBuf];
4 INT8U xdata *inTxBuf,*outTxBuf,*inRxBuf,*outRxBuf;
5 INT8U xdata TIflag=1;
6
7 //********************************************************************************************//
8 /*
9 void SerialInit(void) reentrant//串口初始化
10 {
11 SCON=0x50; //8位数据
12 //SCON=0xD0;//9位数据
13 TMOD&=0x0F;
14 TMOD|=0x20;
15 TL1=0xFD;
16 TH1=0xFD;
17 PCON=0x80; //19200bps@11.059MHz,TL1=256-(2^SMOD/32*Fosc/12*1/Baudrate)
18 //PCON=0x00;//9600bps@11.059MHz
19 TR1=1; //Start timer1
20 ES=1; //Enable serialport interrupt
21 }
22 */
23 //********************************************************************************************//
24 void serial(void) reentrant//串口中断服务子程序
25 {
26 1 INT8U *t;
27 1 if(TI)
28 1 {
29 2 TI=0;
30 2 if(inTxBuf==outTxBuf)
31 2 {
32 3 TIflag=1;
33 3 return;
34 3 }
35 2 SBUF=*outTxBuf;
36 2 outTxBuf++;
37 2 if(outTxBuf==TxBuf+LenTxBuf) outTxBuf=TxBuf;
38 2 }
39 1 if(RI)
40 1 {
41 2 RI=0;
42 2 t=inRxBuf;
43 2 t++;
44 2 if(t==RxBuf+LenRxBuf) t=RxBuf;
45 2 if(t==outRxBuf) return;
46 2 *inRxBuf=SBUF;
47 2 inRxBuf=t;
48 2 }
49 1 }
50 //********************************************************************************************//
51 void InitSerialBuffer(void) reentrant//串口缓冲区初始化
52 {
53 1 inTxBuf=TxBuf;outTxBuf=TxBuf;
54 1 inRxBuf=RxBuf;outRxBuf=RxBuf;
C51 COMPILER V8.18 SERIAL 11/30/2009 13:35:24 PAGE 2
55 1 ES=1;
56 1 //EA=1;
57 1 }
58 //********************************************************************************************//
59 void PrintChar(INT8U ch) reentrant//显示字符
60 {
61 1 INT8U *t;
62 1
63 1 OS_ENTER_CRITICAL();
64 1 t=inTxBuf;
65 1 t++;
66 1 if(t==TxBuf+LenTxBuf) t=TxBuf;
67 1 if(t==outTxBuf)
68 1 {
69 2 OS_EXIT_CRITICAL();
70 2 return;
71 2 } //TxBuf Full
72 1 *inTxBuf=ch;
73 1 inTxBuf=t;
74 1 OS_EXIT_CRITICAL();
75 1 if( TIflag)
76 1 {
77 2 TIflag=0;
78 2 TI=1;
79 2 }
80 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 496 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 26 ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
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 + -