📄 12.lst
字号:
C51 COMPILER V6.20c 12 09/02/2001 15:11:06 PAGE 1
C51 COMPILER V6.20c, COMPILATION OF MODULE 12
OBJECT MODULE PLACED IN 12.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 12.c DEBUG OBJECTEXTEND
stmt level source
1 #include<reg51.h>
2 #define uchar unsigned char
3 #define SLAVE 0xF1 //单片机地址
4 #define BN 10 //传送一次的字节数
5
6 uchar idata rdata[10];
7 uchar idata tdata[10]={"abcdefghij"};
8 uchar receive(uchar addrs);
9 char send();
10
11 void main(void)
12 {
13 1 uchar i;
14 1 for(i=0;i<10;i++)
15 1 TMOD=0x20; //定时器T1定义为模式2
16 1 TL1=0xE6;TH1=0xE6; //置初值
17 1 PCON=0x00;
18 1 TR1=1;
19 1 SCON=0xE0; //设置串行口控制字,方式3,允许接收
20 1 receive(SLAVE); //接收数据函数
21 1 send(); //发送数据函数
22 1 }
23
24 void error(void)
25 {
26 1 SBUF=0xFF; //发给PC机数据出错标志
27 1 while(TI!=1); //等待发送完
28 1 TI=0;
29 1 }
30
31 uchar receive(uchar addrs)
32 { uchar i,p;
33 1 while(1)
34 1 {
35 2 while(RI!=1); //等待PC机的联络信号
36 2 RI=0;
37 2 if(SBUF!=addrs)
38 2 error(); //若地址出错,发出错标志
39 2 else
40 2 {
41 3 TB8=0; //清地址标志位,准备接收数据
42 3 SBUF=0x00; //发约定代码00H,说明地址正确
43 3 while(TI!=1);TI=0;
44 3 while(RI!=1);RI=0;
45 3 {
46 4 while(1)
47 4 {p=0;
48 5 for(i=0;i<BN;i++)
49 5 {
50 6 while(RI!=1);RI=0;
51 6 rdata[i]=SBUF; //单片机接收数据
52 6 p=p+rdata[i];
53 6 }
54 5 while(RI==0);RI=0;
55 5 if(SBUF==p)
C51 COMPILER V6.20c 12 09/02/2001 15:11:06 PAGE 2
56 5 {SBUF=0x00; //校验和相同,发0x00给PC机
57 6 while(TI!=1);TI=0;
58 6 }
59 5 else
60 5 {SBUF=0xFF; //校验和不同,发0xFF给PC机
61 6 while(TI!=1);TI=0;
62 6 }
63 5 }
64 4 TB8=1; //重置地址标志位
65 4 return(0);
66 4 }
67 3 }
68 2 }
69 1 }
70 char send() //单片机发送数据函数
71 {
72 1 uchar i,p;
73 1 do{
74 2 p=0; //清校验和
75 2 for(i=0;i<BN;i++)
76 2 {SBUF=tdata[i]; //发送数据
77 3 p=p+tdata; //计算校验和
78 3 while(TI!=1);TI=0;
79 3 }
80 2 SBUF=p; //发送校验和给PC机
81 2 while(TI!=1);TI=0;
82 2 while(RI!=1);RI=0;
83 2 }while(SBUF!=0); //PC机接收不正确,单片机重新发送
84 1 TB8=1; //重置地址标志位
85 1 return(0);
86 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 169 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = 20 ----
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 + -