📄 avc_1027.lst
字号:
C51 COMPILER V7.06 AVC_1027 09/11/2006 08:22:21 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE AVC_1027
OBJECT MODULE PLACED IN D:\PROJECT\SUPARC400\SUPARC400\DRIVE\AVC_1027.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE D:\PROJECT\SUPARC400\SUPARC400\DRIVE\AVC_1027.C DB SB OE
stmt level source
1 #pragma la
2 #include <AVC.h>
3 #define start_v51 46
4 sbit message_enable=P1^5;
5 sbit stop=P3^5;
6 sbit gate=P4^1;
7 sbit avc_dir=P4^5;
8 sbit avc_enable=P4^4;
9 sbit temp_voltage=P4^2;
10 sbit externel_voltage=P4^3;
11
12 xdata unsigned char rbuffer[55],sbuffer[6];
13 unsigned char S_ANSW,POINTER0,POINTER1,work,RSUM,SSUM,c_t1,cross_machine,SENS,
14 s_byte_nums,r_byte_nums,nonce_sec,v51,c_sample,err,p_sec,out1,lamp,c_cm0;
15 unsigned int adl,adh,ad,delt_a41,U51,out0,*point,temp_avc,temp_u51_p,temp_u51_b,c_lift;
16 unsigned long AD1,AD2,AD3,AD4,AD5,da;
17 unsigned char COMM,SLA,FF,GET;
18 bit decrease,ad_finish,pulse_base,new_circle,called,
19 lift,avc_ok,urgent_stop,pgj,in_sector,new_sector,start,lift_complete,over_i1,
20 over_i2,resend,send,overtime,avc_up,avc_down,motor_stop,receive_p_out,
21 receive_p_in,start_avc,stop_avc,ans,to_begin,need_para,
22 lift_ok,avc_err,err_ok,send_p,send_p_ok,touch,touched;
23
24 void start_i2()
25 {
26 1 data unsigned int time;
27 1 P1_6=1; //SCL
28 1 P1_7=1; //SDA
29 1 S1CON=0x47; //ENS1=1 STA=0 STO=0 SI=0 AA=1
30 1 PS1=1;FF=0;
31 1 EA=1;
32 1 ES1=1;
33 1 STA=1;
34 1 time=0;
35 1 do
36 1 {
37 2 time++;
38 2 if(time>10000)
39 2 {
40 3 FF=1;
41 3 }
42 2 }while(FF==0);
43 1 FF=0;
44 1 ES1=0;
45 1 }
46
47 void start_t2()
48 {
49 1 TM2CON=0x81; //16位溢出,分频系数1,f/12
50 1 EA=1;
51 1 TM2IR=0;
52 1 }
53
54 void ini_sbuf(unsigned char a,b,c,d,e,f)
55 {
C51 COMPILER V7.06 AVC_1027 09/11/2006 08:22:21 PAGE 2
56 1 sbuffer[0]=a;
57 1 sbuffer[1]=b;
58 1 sbuffer[2]=c;
59 1 sbuffer[3]=d;
60 1 sbuffer[4]=e;
61 1 sbuffer[5]=f;
62 1 }
63
64 unsigned char get_byte_nums(unsigned char type)
65 {
66 1 unsigned char numbers;
67 1 switch(type)
68 1 {
69 2 case infor_sec:
70 2 case command:
71 2 case program:
72 2 case answer: numbers=4;
73 2 break;
74 2 case err_infor:
75 2 case parameter1: numbers=5;
76 2 break;
77 2 case parameter:
78 2 case infor: numbers=6;
79 2 break;
80 2 case parameter2: numbers=7;
81 2 break;
82 2 case call_result: numbers=8;
83 2 break;
84 2 case p_out_sec: numbers=55;
85 2 break;
86 2 case p_in_sec: numbers=24;
87 2 break;
88 2 case edit_sec: numbers=64;
89 2 break;
90 2 default: break;
91 2 }
92 1 return numbers;
93 1 }
94
95 void TR_noans()
96 {
97 1 REN=0; //05-12-28
98 1 POINTER0=0;
99 1 SSUM=0;
100 1 send=1;
101 1 c_t1=0;
102 1 message_enable=0; //开发送使能
103 1 TR1=1;
104 1 while(POINTER0<s_byte_nums);
105 1 TR1=0;
106 1 message_enable=1; //关发送使能
107 1 REN=1; //05-12-28
108 1 }
109
110 void TR_ans()
111 {
112 1 ans=1;
113 1 REN=0;
114 1 POINTER1=0;
115 1 RSUM=0;
116 1 TB8=1;
117 1 POINTER0=0;
C51 COMPILER V7.06 AVC_1027 09/11/2006 08:22:21 PAGE 3
118 1 SSUM=0;
119 1 send=1;
120 1 c_t1=0;
121 1 message_enable=0; //开发送使能
122 1 TR1=1;
123 1 while(POINTER0<s_byte_nums);
124 1 TR1=0;
125 1 message_enable=1; //关发送使能
126 1
127 1 REN=1;
128 1 send=0;
129 1 c_t1=0;
130 1 TR1=1;
131 1 while(POINTER1<r_byte_nums);
132 1 TR1=0;
133 1 POINTER1=0;
134 1 RSUM=0;
135 1 if(overtime==1)
136 1 {
137 2 err=3;
138 2 avc_err=1;
139 2 overtime=0;
140 2 }
141 1 ans=0;
142 1 }
143
144 void delay(int num)
145 {
146 1 data unsigned int i,j;
147 1 for(i=0;i<num;i++)
148 1 {
149 2 for(j=0;j<255;j++);
150 2 }
151 1 }
152 /*
153 void read_8574 () //过流1或过流2
154 {
155 unsigned char temp_GET;
156 SLA=0x43;
157 start_i2();
158 temp_GET=GET;
159 temp_GET=temp_GET&0X01;
160 if(temp_GET==0)
161 over_i1=1;
162 temp_GET=GET;
163 temp_GET=temp_GET&0X02;
164 if(temp_GET==0)
165 over_i2=1;
166 }
167 */
168 void write_8574(unsigned char col) //出错显示
169 {
170 1 SLA=0x42;
171 1 COMM=col;
172 1 start_i2();
173 1 }
174
175 void com_type()
176 {
177 1 switch(rbuffer[2])
178 1 {
179 2 case com_calling: called=1;
C51 COMPILER V7.06 AVC_1027 09/11/2006 08:22:21 PAGE 4
180 2 break;
181 2 case com_motor_stop: if(motor_stop==0)
182 2 motor_stop=1;
183 2 break;
184 2 case com_start: start=1;
185 2 break; //启动
186 2 case com_decrease: decrease=1;
187 2 break;
188 2 case com_avc: start_avc=1;
189 2 break;
190 2 case com_avc_up: if(avc_up==0)
191 2 avc_up=1;
192 2 break;
193 2 case com_avc_down: if(avc_down==0)
194 2 avc_down=1;
195 2 break;
196 2 case com_stop_avc: stop_avc=1;
197 2 break;
198 2 case com_pgj: pgj=1;
199 2 break;
200 2 case com_lift: lift=1;
201 2 break;
202 2 case com_goto_begin: to_begin=1;
203 2 break;
204 2 case com_need_para: if(need_para==0)
205 2 need_para=1;
206 2 break;
207 2 case com_lift_ok: lift_ok=1;
208 2 break;
209 2 case com_err_ok: err_ok=1;
210 2 break;
211 2 case com_send_p: send_p=1;
212 2 break;
213 2 case com_send_p_ok: send_p_ok=1;
214 2 break;
215 2 case com_touch: touch=1;
216 2 break;
217 2 default: break;
218 2 }
219 1 }
220
221 void data_type() //对接收到的数据分辨类型
222 {
223 1 switch(rbuffer[1])
224 1 {
225 2 case command: com_type();break;
226 2 case infor: if(rbuffer[2]==com_sector)
227 2 {
228 3 in_sector=1;
229 3 new_sector=1;
230 3 nonce_sec=rbuffer[3];
231 3 }break;
232 2 case p_out_sec: receive_p_out=1;break;
233 2
234 2 case p_in_sec: {
235 3 nonce_sec=rbuffer[2];
236 3 receive_p_in=1;
237 3 }break;
238 2 default: break;
239 2 }
240 1
241 1 }
C51 COMPILER V7.06 AVC_1027 09/11/2006 08:22:21 PAGE 5
242
243
244 void EX0_INT (void) interrupt 0 //急停
245 {
246 1 EX0=0;
247 1 if(lift==0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -