📄 avc.lst
字号:
C51 COMPILER V7.06 AVC 06/10/2005 14:33:44 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE AVC
OBJECT MODULE PLACED IN D:\程序05~1\DRIVE\AVC.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE D:\程序05~1\DRIVE\AVC.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,
14 SSUM,c_t1,nonce_sector,cross_machine,SENS,s_byte_nums,r_byte_nums,
15 nonce_sec,v51,c_sample,err,p_sec,out1;
16 unsigned int adl,adh,ad,vc1,vc2,vc3,vc4,vc5,vc6,c_lift,delt_a41,U51,out0,*point;
17 unsigned long AD1,AD2,AD3,AD4,AD5,da;
18 unsigned char COMM,SLA,FF,GET;
19 bit decrease,sector,ad_finish,pulse_base,new_circle,called,avc,
20 lift,avc_ok,urgent_stop,pgj,in_sector,start,lift_complete,over_i1,
21 over_i2,resend,send,overtime,avc_up,avc_down,motor_stop,receive_p_out,
22 receive_p_in,demand,start_avc,stop_avc,ans,to_begin,need_para,
23 ask_lift_ok,lift_ok,avc_err;
24
25 void start_i2()
26 {
27 1 data unsigned int time;
28 1 P1_6=1; //SCL
29 1 P1_7=1; //SDA
30 1 S1CON=0x47; //ENS1=1 STA=0 STO=0 SI=0 AA=1
31 1 PS1=1;FF=0;
32 1 EA=1;
33 1 ES1=1;
34 1 STA=1;
35 1 time=0;
36 1 do
37 1 {
38 2 time++;
39 2 if(time>10000)
40 2 {
41 3 FF=1;
42 3 }
43 2 }while(FF==0);
44 1 FF=0;
45 1 ES1=0;
46 1 }
47
48 void start_t2()
49 {
50 1 TM2CON=0x81; //16位溢出,分频系数1,f/12
51 1 EA=1;
52 1 TM2IR=0;
53 1 }
54
55 void ini_sbuf(unsigned char a,b,c,d,e,f)
C51 COMPILER V7.06 AVC 06/10/2005 14:33:44 PAGE 2
56 {
57 1 sbuffer[0]=a;
58 1 sbuffer[1]=b;
59 1 sbuffer[2]=c;
60 1 sbuffer[3]=d;
61 1 sbuffer[4]=e;
62 1 sbuffer[5]=f;
63 1 }
64
65 unsigned char get_byte_nums(unsigned char type)
66 {
67 1 unsigned char numbers;
68 1 switch(type)
69 1 {
70 2 case infor_sec:
71 2 case command:
72 2 case program:
73 2 case answer: numbers=4;
74 2 break;
75 2 case err_infor:
76 2 case parameter1: numbers=5;
77 2 break;
78 2 case parameter:
79 2 case infor: numbers=6;
80 2 break;
81 2 case parameter2: numbers=7;
82 2 break;
83 2 case call_result: numbers=8;
84 2 break;
85 2 case p_out_sec: numbers=55;
86 2 break;
87 2 case p_in_sec: numbers=24;
88 2 break;
89 2 case edit_sec: numbers=64;
90 2 break;
91 2 default: break;
92 2 }
93 1 return numbers;
94 1 }
95
96 void TR_noans()
97 {
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 }
108
109 void TR_ans()
110 {
111 1 ans=1;
112 1 REN=0;
113 1 POINTER1=0;
114 1 RSUM=0;
115 1 TB8=1;
116 1 POINTER0=0;
117 1 SSUM=0;
C51 COMPILER V7.06 AVC 06/10/2005 14:33:44 PAGE 3
118 1 send=1;
119 1 c_t1=0;
120 1 message_enable=0; //开发送使能
121 1 TR1=1;
122 1 while(POINTER0<s_byte_nums);
123 1 TR1=0;
124 1 message_enable=1; //关发送使能
125 1
126 1 REN=1;
127 1 send=0;
128 1 c_t1=0;
129 1 TR1=1;
130 1 while(POINTER1<r_byte_nums);
131 1 TR1=0;
132 1 if(overtime==1)
133 1 {
134 2 err=3;
135 2 avc_err=1;
136 2 overtime=0;
137 2 stop=0;
138 2 }
139 1 ans=0;
140 1 }
141
142 void delay(int num)
143 {
144 1 data unsigned int i,j;
145 1 for(i=0;i<num;i++)
146 1 {
147 2 for(j=0;j<255;j++);
148 2 }
149 1 }
150
151 void read_8574 () //过流1或过流2
152 {
153 1 unsigned char temp_GET;
154 1 SLA=0x43;
155 1 start_i2();
156 1 temp_GET=GET;
157 1 temp_GET=temp_GET&0X01;
158 1 if(temp_GET==0)
159 1 over_i1=1;
160 1 temp_GET=GET;
161 1 temp_GET=temp_GET&0X02;
162 1 if(temp_GET==0)
163 1 over_i2=1;
164 1 }
165
166 void write_8574(unsigned char col) //出错显示
167 {
168 1 SLA=0x42;
169 1 COMM=col;
170 1 start_i2();
171 1 }
172
173 void get_vc()
174 {
175 1 if(pp.k1==PDC)
176 1 {
177 2 switch(pp.avc_type)
178 2 {
179 3 case SP: {
C51 COMPILER V7.06 AVC 06/10/2005 14:33:44 PAGE 4
180 4 vc5=(pp.u51_p-2);
181 4 vc6=(pp.u51_p+2);
182 4 }break;
183 3 case SB: {
184 4 vc5=(pp.u51_b-2);
185 4 vc6=(pp.u51_b+2);
186 4 }break;
187 3 case SPB: {
188 4 vc1=(pp.u51_p-2);
189 4 vc2=(pp.u51_p+2);
190 4 vc3=(pp.u51_b-2);
191 4 vc4=(pp.u51_b+2);
192 4 }break;
193 3 default:break;
194 3 }
195 2 }
196 1 else
197 1 {
198 2 vc5=(pp.u51_p-2);
199 2 vc6=(pp.u51_p+2);
200 2 }
201 1 }
202 /*
203 void get_SENS()
204 {
205 switch(pp.sens)
206 {
207 case 1: {
208 v51=start_v51; //500
209 SENS=2; //0.0075mm
210 }break;
211 case 2: {
212 v51=start_v51; //500
213 SENS=5; //0.01875mm 0.1v
214 }break;
215 case 3: {
216 v51=start_v51; //500
217 SENS=10; //0.0375mm 0.2v
218 }break;
219 case 4: {
220 v51=39; //592
221 SENS=16; //0.06mm 0.3v
222 }break;
223 case 5: {
224 v51=30; //778
225 SENS=21; //0.08mm 0.4v
226 }break;
227 case 6: {
228 v51=23; //1000
229 SENS=27; //0.1mm 0.5v
230 }break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -