📄 uart.lst
字号:
C51 COMPILER V7.06 UART 02/05/2005 09:08:14 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE UART
OBJECT MODULE PLACED IN uart.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE uart.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <reg52.h>
2 #include <ctype.h>
3 #include <stdlib.h>
4 #include <stdio.h>
5 #include <math.h>
6 #include <intrins.h>
7 #include "define.h"
8 //#include "val.h"
9 #include "function.h"
10 #define MAOHAO_WEN 0XBA
11 extern unsigned char idata cSendBuffer[30],cReceBuffer[30];
12 extern unsigned char cSendLen,cReceLen,cReceTimeOut,cSendPosi;
13 extern bit bReceOK;
14 extern unsigned char banhou_set[4],buchang_set[4];
15 extern unsigned char tuidao_set[4],muxin_set[4];
16 extern bit lesser_bit;
17 extern bit main_set_bit,dis_pass_bit;
18 extern bit speed_set_bit,luoju_set_bit;
19 extern bit daoju_set_bit,master_bit,enter_bit;
20 extern unsigned char comm_time;
21 extern unsigned char jin_speed_set[4];
22 extern unsigned char tui_speed_set[4],gun_speed_set[4];
23 extern unsigned char luoju_set[4];
24 extern unsigned char chuandong_set[4],gunju_set[4];
25 extern unsigned char gunjing_set[4];
26 extern unsigned char daoju_set[4];
27 extern unsigned char mujing_set[4],chuangdu_set[4];
28 extern unsigned char maichong_set[4];
29 extern unsigned char jindao_speed[4],zhuji_speed[4],daoju[4];
30 extern unsigned char buchang_set[4];
31 bit rece_bit_fail;
32 bit rece_bit_success;
33 bit en_bit_tran; //
34 unsigned char tran_step;
35 extern unsigned char rece_pt,speed_time;
36 extern bit en_bit_enter;
37 /*
38 发送的过程分为三次,每次发送完后,等待接收数据,并对接受的数据进行判断
39 接收正确则退出发送程序
40 */
41 void tran_sub(void)
42 {
43 1 if(!en_bit_tran) return;
44 1 switch(tran_step) {
45 2 case 0: { // 第一次发送
46 3 readDsp();
47 3 comm_time=0;
48 3 rece_bit_fail=0;
49 3 rece_bit_success=0;
50 3 tran_step=1;
51 3 }
52 2 break;
53 2
54 2 case 1:
55 2 {
C51 COMPILER V7.06 UART 02/05/2005 09:08:14 PAGE 2
56 3 if(rece_bit_fail||(comm_time>50)) {
57 4 tran_step++;
58 4 readDsp();
59 4 rece_bit_fail=0;
60 4 comm_time=0;
61 4 }
62 3 else {
63 4 if(rece_bit_success) tran_step=4;
64 4 }
65 3 }
66 2 break;
67 2
68 2 case 2:{ // 第三次发送
69 3 // 接收的数据错误,发送缓冲器的数据仍然有效,立即进行第二次发送
70 3 if(rece_bit_success) tran_step=4;
71 3 else {
72 4 if(rece_bit_fail||(comm_time>50)) {
73 5 rece_bit_fail=0;
74 5 tran_step++;
75 5 readDsp();
76 5 comm_time=0;
77 5 }
78 4 }
79 3 }
80 2 break;
81 2
82 2 case 3: {
83 3 if(rece_bit_fail||(comm_time>50)) tran_step=5; // 发送错误, 退出发送程序
84 3 else {
85 4 if(rece_bit_success) tran_step=4; // 第三次发送程序正确
86 4 }
87 3 }
88 2 break;
89 2
90 2
91 2 default: { // 强行退出发送过程
92 3 // tran_command=0; // 没有发送命令,发送程序将不被执行
93 3 tran_step=0; // 对发送的步骤进行初始化
94 3 rece_bit_fail=0;
95 3 rece_bit_success=0;
96 3 en_bit_tran=0;
97 3 en_bit_enter=0;
98 3 }
99 2 break;
100 2 }
101 1 }
102
103 //------------------------------------------------
104
105 void readDsp(void)
106 {
107 1 if((lesser_bit)&&(speed_time>10))
108 1 {
109 2 sendRead(2) ;
110 2 speed_time=0;
111 2 }
112 1 if(!en_bit_enter){
113 2 if(master_bit) sendRead(1);
114 2 else if(lesser_bit) sendRead(2) ;
115 2 else if(main_set_bit) sendRead(3) ;
116 2 else if(luoju_set_bit) sendRead(4) ;
117 2 else if(daoju_set_bit) sendRead(5) ;
C51 COMPILER V7.06 UART 02/05/2005 09:08:14 PAGE 3
118 2 else if(speed_set_bit) sendRead(6) ;
119 2 }
120 1
121 1 else {
122 2 if(main_set_bit) mainSetWrite();
123 2 else if(luoju_set_bit) luojuSetWrite();
124 2 else if(daoju_set_bit) daojuSetWrite();
125 2 else if(speed_set_bit) speedSetWrite();
126 2 }
127 1
128 1 }
129
130
131
132 void CheckCommData(void)
133 {
134 1 if(!bReceOK) return;
135 1 bReceOK = 0;
136 1 cReceTimeOut = 0;
137 1 if((cReceBuffer[2]==(2+0x30))&&(cReceBuffer[4]==(0+0x30))&&(checkOut()==0)) // 累加和判断
138 1 {
139 2 rece_bit_success=1;
140 2 switch(cReceBuffer[6]-0x30){
141 3 case 1:
142 3 {
143 4 banhou_set[0]=cReceBuffer[7]-0x30;
144 4 banhou_set[1]=cReceBuffer[8]-0x30;
145 4 banhou_set[2]=cReceBuffer[9]-0x30;
146 4 // banhou_set[3]=cReceBuffer[10]-0x30;
147 4 tuidao_set[0]=cReceBuffer[11]-0x30;
148 4 tuidao_set[1]=cReceBuffer[12]-0x30;
149 4 tuidao_set[2]=cReceBuffer[13]-0x30;
150 4 // banhou_set[3]=cReceBuffer[14]-0x30;
151 4 muxin_set[0]=cReceBuffer[15]-0x30;
152 4 muxin_set[1]=cReceBuffer[16]-0x30;
153 4 muxin_set[2]=cReceBuffer[17]-0x30;
154 4 // banhou_set[3]=cReceBuffer[18]-0x30;
155 4 // banhou_set[0]=cReceBuffer[19]-0x30;
156 4 // banhou_set[1]=cReceBuffer[20]-0x30;
157 4 // banhou_set[2]=cReceBuffer[21]-0x30;
158 4 // banhou_set[3]=cReceBuffer[22]-0x30;
159 4 }
160 3 break;
161 3 /********************************************************************/
162 3 case 2:
163 3 {
164 4 jindao_speed[0]=cReceBuffer[7]-0x30;
165 4 jindao_speed[1]=cReceBuffer[8]-0x30;
166 4 jindao_speed[2]=cReceBuffer[9]-0x30;
167 4 jindao_speed[3]=cReceBuffer[10]-0x30;
168 4 zhuji_speed[0]=cReceBuffer[11]-0x30;
169 4 zhuji_speed[1]=cReceBuffer[12]-0x30;
170 4 zhuji_speed[2]=cReceBuffer[13]-0x30;
171 4 zhuji_speed[3]=cReceBuffer[14]-0x30;
172 4 daoju[0]=cReceBuffer[15]-0x30;
173 4 daoju[1]=cReceBuffer[16]-0x30;
174 4 daoju[2]=cReceBuffer[17]-0x30;
175 4 daoju[3]=cReceBuffer[18]-0x30;
176 4 buchang_set[0]=cReceBuffer[19]-0x30;
177 4 buchang_set[1]=cReceBuffer[20]-0x30;
178 4 buchang_set[2]=cReceBuffer[21]-0x30;
179 4 //buchang_set[3]=cReceBuffer[22]-0x3
C51 COMPILER V7.06 UART 02/05/2005 09:08:14 PAGE 4
180 4 }
181 3 break;
182 3 /**********************************************************************/
183 3 case 3:
184 3 {
185 4 banhou_set[0]=cReceBuffer[7]-0x30;
186 4 banhou_set[1]=cReceBuffer[8]-0x30;
187 4 banhou_set[2]=cReceBuffer[9]-0x30;
188 4 //jindao_speed[3]=cReceBuffer[10]-0x30;
189 4 tuidao_set[0]=cReceBuffer[11]-0x30;
190 4 tuidao_set[1]=cReceBuffer[12]-0x30;
191 4 tuidao_set[2]=cReceBuffer[13]-0x30;
192 4 //zhuji_speed[3]=cReceBuffer[14]-0x30;
193 4 muxin_set[0]=cReceBuffer[15]-0x30;
194 4 muxin_set[1]=cReceBuffer[16]-0x30;
195 4 muxin_set[2]=cReceBuffer[17]-0x30;
196 4 //daoju[3]=cReceBuffer[18]-0x30;
197 4 buchang_set[0]=cReceBuffer[19]-0x30;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -