📄 receiveb.lst
字号:
C51 COMPILER V8.08 RECEIVEB 08/31/2008 12:57:16 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE RECEIVEB
OBJECT MODULE PLACED IN ReceiveB.OBJ
COMPILER INVOKED BY: C:\Program Files\keil\C51\BIN\C51.EXE ReceiveB.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg52.h>
2 #define uchar unsigned char
3
4 uchar idata buf[10];
5 uchar CheckSum; //检验和
6
7 void main(void)
8 {
9 1 uchar i;
10 1
11 1 SCON = 0x50; //设置串行口: 方式 1, 8位UART, 允许接收
12 1 TMOD |= 0x20; //设置定时器T1, 方式 2, 8位自动重装
13 1 PCON =0x80; //设置SMOD=1
14 1 TL1 =0xF4; //波特率4800bit/s,初值
15 1 TH1 =0xF4;
16 1 TR1 = 1; //启动定时器T1
17 1
18 1 do
19 1 {
20 2 }while(RI==0);
21 1 RI=0;
22 1 while((SBUF^0xAB)!=0) //判断A机是否发出请求
23 1 SBUF=0xBA; //发送应答信号"BA"
24 1 while(TI==0); //等待发送结束
25 1 TI=0;
26 1 while(1)
27 1 {
28 2 CheckSum=0; //清校验和
29 2 for(i=0;i<10;i++)
30 2 {
31 3 while(RI==0);
32 3 RI=0;
33 3 buf[i]=SBUF; //接收一个数据
34 3 CheckSum+=buf[i]; //求校验和
35 3 }
36 2 while(RI==0);
37 2 RI=0; //接收A机校验和
38 2 if((SBUF^CheckSum)==0) //比较检验和
39 2 {
40 3 SBUF=0x00;
41 3 break;
42 3 } //校验和相同则发"00"
43 2 else
44 2 {
45 3 SBUF=0xEE; //出错发"EE",重新接收
46 3 while(TI==0);
47 3 TI=0;
48 3 }
49 2 }
50 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 90 ----
CONSTANT SIZE = ---- ----
C51 COMPILER V8.08 RECEIVEB 08/31/2008 12:57:16 PAGE 2
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 ----
IDATA SIZE = 10 ----
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 + -