📄 serial.lst
字号:
C51 COMPILER V7.06 SERIAL 12/18/2007 11:18:06 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE SERIAL
OBJECT MODULE PLACED IN serial.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE serial.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include "c51base.h"
2
3
4 /***************串口初始化*****************/
5
6 static uchar idata receive_buf[MAX_BUF_LEN];
7 static uchar idata buf_head,buf_tail;
8 static uchar is_serial_get;
9
10 static uchar PopBuf(void)
11 {
12 1 uchar temp;
13 1 if(buf_head == buf_tail)
14 1 temp = 0xff;
15 1 else
16 1 {
17 2 temp=receive_buf[buf_head++];
18 2 if(buf_head>=MAX_BUF_LEN)
19 2 buf_head=0;
20 2 }
21 1 if(buf_head == buf_tail)
22 1 is_serial_get = 0;
23 1 return temp;
24 1 }
25
26 static void PushBuf(unsigned char temp)
27 {
28 1 receive_buf[buf_tail++]=temp;
29 1 if(buf_tail>=MAX_BUF_LEN)
30 1 buf_tail=0;
31 1 }
32
33 static void SerialBufClear()
34 {
35 1 buf_head = 0;
36 1 buf_tail= 0;
37 1 is_serial_get = 0;
38 1 }
39
40 void SerialInter() interrupt 4
41 {
42 1 uchar serial_value;
43 1 if(RI)
44 1 {
45 2 RI = 0;
46 2 serial_value = SBUF;
47 2 PushBuf(serial_value);
48 2 is_serial_get = 1;
49 2 }
50 1 }
51
52 void CommInit()
53 {
54 1 TMOD = 0x21;
55 1 TH1 = 0xfb;//11.059MHz,19200kbps
C51 COMPILER V7.06 SERIAL 12/18/2007 11:18:06 PAGE 2
56 1 SCON=0X50;
57 1 PCON=0X80;
58 1 TR1=1;//start timer 1
59 1 TI=1;//get ready for "printf",
60 1 RI=0;//get ready for "getchar"
61 1 SerialBufClear();
62 1 ES = 1;
63 1 }
64
65
66 bit SerialCheck()
67 {
68 1 return is_serial_get;
69 1 }
70
71 uchar ReadSerialBuf(uint time_out)
72 {
73 1 uchar idata value,i;
74 1 while(time_out--)
75 1 {
76 2 WDTReset_SM89516();
77 2 for(i=0;i<=112;i++)
78 2 ;
79 2 value = PopBuf();
80 2 if(value!=0xff)
81 2 return value;
82 2 }
83 1 return 0xff;
84 1 }
85
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 180 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 2
IDATA SIZE = 12 2
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 + -