📄 009.lst
字号:
C51 COMPILER V8.02 009 03/02/2012 13:27:14 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE 009
OBJECT MODULE PLACED IN 009.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 009.c BROWSE DEBUG OBJECTEXTEND
line level source
1
2
3 ////////////////////////////////
4 ////cocoguojia E-51开发板///////
5 //////cocoguojia@163.com ///////
6 ////////////////////////////////
7
8
9
10 //实验目的:利用串口助手联调,当串口助手发送0x55时,单片机向串口助手发送0xAA
11 //波特率为9600 单片机用11.0592的晶振
12
13
14 //---------------------------------------
15 //头文件
16 #include<AT89X51.H>
17 #include<intrins.h>
18
19 //---------------------------------------
20
21
22 //---------------------------------------
23 //数据类型替代声明
24 #define u8 unsigned char
25 #define u16 unsigned int
26 sbit LED0=P0^0;
27 sbit LED1=P0^1;
28 sbit LED2=P0^2;
29 sbit LED3=P0^3;
30 sbit LED4=P0^4;
31 sbit LED5=P0^5;
32 sbit LED6=P0^6;
33 sbit LED7=P0^7;
34
35 u8 buf[10] = 0;
36 u8 cnt = 0;
37 u8 cnt1 = 0;
38 u16 cnt2 = 0;
39
40
41 //---------------------------------------
42
43
44 //---------------------------------------
45 //初始化
46 void init(void)
47 {
48 1 SCON=0X50;
49 1 TH1=0XFD;
50 1 TL1=0XFD;
51 1 TMOD=0X20;
52 1 TR1=1;
53 1 }
54 //---------------------------------------
55
C51 COMPILER V8.02 009 03/02/2012 13:27:14 PAGE 2
56
57 //---------------------------------------
58 //接受子函数
59 u8 rec_data(void)
60 {
61 1 if(RI==0)
62 1 {
63 2 return 0;
64 2 }
65 1 else
66 1 {
67 2 cnt1 = 0;
68 2 cnt2 = 0;
69 2 RI=0;
70 2 buf[cnt] = SBUF;
71 2 if(cnt ==0)
72 2 {
73 3 if(buf[cnt] != 0x01) //ID不对 报文格式 01 ** ## -- -- -- -- -- 其中01为地址,**为命令字 ##为数据长度
-(--的个数)
74 3 {
75 4 return 0;
76 4 }
77 3 }
78 2 cnt ++;
79 2 if(cnt == buf[2] + 3)
80 2 {
81 3 return 1;
82 3 }
83 2 return 0;
84 2 }
85 1 }
86 //---------------------------------------
87
88 //---------------------------------------
89 //发送子函数
90 void send_data(u8 i)
91 {
92 1 SBUF=i;
93 1 while(TI==0)
94 1 {
95 2 ;
96 2 }
97 1 TI=0;
98 1 }
99 //---------------------------------------
100
101 //---------------------------------------
102 //主函数
103
104 void main(void)
105 {
106 1 u8 i = 0;
107 1 cnt = 0;
108 1 init();
109 1 while(1)
110 1 {
111 2 if(rec_data())
112 2 {
113 3 ; //接收数据处理
114 3 for(i = 0;i< cnt;i++)
115 3 {
116 4 send_data(buf[i]);
C51 COMPILER V8.02 009 03/02/2012 13:27:14 PAGE 3
117 4 }
118 3 buf[0] = 0;
119 3 cnt=0;
cnt = 0;
120 3 }
121 2
122 2 cnt1 ++;
123 2 if(cnt1 == 0xff)
124 2 {
125 3 cnt2 ++;
126 3 if(cnt2 == 10000)
127 3 {
128 4 cnt2 = 0;
129 4 buf[0] = 0;
130 4 cnt = 0;
131 4 }
132 3 }
133 2 }
134 1 }
135 //---------------------------------------
136
137
138
139
140
141
142
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 161 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 14 ----
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 + -