?? 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 + -