📄 dc1.lst
字号:
C51 COMPILER V7.06 DC1 09/11/2006 08:21:54 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE DC1
OBJECT MODULE PLACED IN D:\PROJECT\SUPARC400\SUPARC400\DC\DC1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE D:\PROJECT\SUPARC400\SUPARC400\DC\DC1.C DB SB OE
stmt level source
1 #pragma la
2 #include <dc.h>
3
4 sbit stop=P3^5;
5 sbit wire_back=P4^4;
6 sbit wire_front=P4^5;
7 sbit rot_right=P4^6;
8 sbit rot_left=P4^7;
9 sbit send_enable=P3^4;
10 sbit limit=P4^3;
11 sbit wire_over_i=P1^2;
12 xdata unsigned char rbuffer[55],sbuffer[6];
13 unsigned char COMM,SLA,FF,GET,POINTER0,SSUM,POINTER1,RSUM,c_t1,s_byte_nums,r_byte_nums,pulse_num,
14 err,WIRE,S_ANSW,nonce_sec,work,p_sec,K21,K3,K31,tooth_num,temp_pulse_num,pulse_num1,
15 temp_pulse_num1,delt_state,rot_slope_delt,wire_slope_delt,c_cm2;
16
17 unsigned int *point,n_cm0,c_cm0,n_cm1,c_cm1,FINISH,temp_FINISH,motor_v,r;
18 float temp_data0,const0,temp_data00,delt_rot,delt_wire,rot_vp,temp_rot_vp,rot_vb,temp_rot_vb,
19 wire_vp,temp_wire_vp,wire_vb,temp_wire_vb,decrease_rate,const1;
20 bit send,overtime,start,decrease,urgent_stop,rot_front,rot_reverse,wire_add,
21 wire_dec,rot_ok,wire_ok,in_sector,receive_p_out,receive_p_in,demand,need_para,
22 rot_stop,rot_stop_ok,called,p_b,new_sector,start_rot,start_wire,stop_wire,r_slope_ok,
23 w_slope_ok,retract,return_ok,retract_ok,motor_stop,auto_return,resend,ans,
24 to_begin,noans_ok,ask_return_ok,k_r_p_add,k_r_b_add,k_r_p_dec,k_r_b_dec,k22,k33,k44;
25 bit kk,rw_err,err_ok,r_w,common;
26
27 void start_t2()
28 {
29 1 TM2CON=0x85; //16位溢出,分频系数2,f/12
30 1 EA=1;
31 1 TM2IR=0;
32 1 }
33
34 void ini_sbuf(unsigned char a,b,c,d,e,f)
35 {
36 1 sbuffer[0]=a;
37 1 sbuffer[1]=b;
38 1 sbuffer[2]=c;
39 1 sbuffer[3]=d;
40 1 sbuffer[4]=e;
41 1 sbuffer[5]=f;
42 1 }
43
44 unsigned char get_byte_nums(unsigned char type)
45 {
46 1 unsigned char numbers;
47 1 switch(type)
48 1 {
49 2 case infor_sec:
50 2 case command:
51 2 case program:
52 2 case answer: numbers=4;
53 2 break;
54 2 case err_infor:
55 2 case parameter1: numbers=5;
C51 COMPILER V7.06 DC1 09/11/2006 08:21:54 PAGE 2
56 2 break;
57 2 case parameter:
58 2 case infor: numbers=6;
59 2 break;
60 2 case parameter2: numbers=7;
61 2 break;
62 2 case call_result: numbers=8;
63 2 break;
64 2 case p_out_sec: numbers=55;
65 2 break;
66 2 case p_in_sec: numbers=24;
67 2 break;
68 2 case edit_sec: numbers=64;
69 2 break;
70 2 default: numbers=4;
71 2 break;
72 2 }
73 1 return numbers;
74 1 }
75
76 void TR_noans()
77 {
78 1 noans_ok=0;
79 1 POINTER0=0;
80 1 SSUM=0;
81 1 send=1;
82 1 c_t1=0;
83 1 send_enable=0; //开发送使能
84 1 TR1=1;
85 1 while(POINTER0<s_byte_nums);
86 1 TR1=0;
87 1 send_enable=1; //关发送使能
88 1 noans_ok=1;
89 1 }
90
91 void delay(unsigned char num)
92 {
93 1 unsigned char i,ii;
94 1 for(i=0;i<num;i++)
95 1 {
96 2 for(ii=0;ii<255;ii++);
97 2 }
98 1 }
99
100 void TR_ans()
101 {
102 1 ans=1;
103 1 REN=0;
104 1 POINTER1=0;
105 1 RSUM=0;
106 1 TB8=1;
107 1 POINTER0=0;
108 1 SSUM=0;
109 1 send=1;
110 1 c_t1=0;
111 1 send_enable=0; //开发送使能
112 1 TR1=1;
113 1 while(POINTER0<s_byte_nums);
114 1 TR1=0;
115 1 send_enable=1; //关发送使能
116 1
117 1 REN=1;
C51 COMPILER V7.06 DC1 09/11/2006 08:21:54 PAGE 3
118 1 send=0;
119 1 c_t1=0;
120 1 // TR1=1;
121 1 while(POINTER1<r_byte_nums&&overtime==0);
122 1 TR1=0;
123 1 if(overtime==1)
124 1 {
125 2 err=2; //通信出错
126 2 overtime=0;
127 2 }
128 1 ans=0;
129 1 }
130
131 void com_type()
132 {
133 1 switch(rbuffer[2])
134 1 {
135 2 case com_calling: called=1;break;
136 2 case com_demand: {
137 3 if(demand==0)
138 3 demand=1;
139 3 }break;
140 2 case com_need_para: need_para=1;break;
141 2 case com_start: start=1;break;
142 2 case com_rot_front: { //正转
143 3 if(rot_front==0)
144 3 rot_front=1;
145 3 }break;
146 2 case com_rot_reverse: { //反转
147 3 if(rot_reverse==0)
148 3 rot_reverse=1;
149 3 }break;
150 2 case com_wire_add: { //送丝
151 3 if(work==0)
152 3 wire_add=1;
153 3 else if(work==3)
154 3 {
155 4 if(wire_add==0&&WIRE==ON&&pp.k3==ON)
156 4 wire_add=1;
157 4 }
158 3 }break;
159 2 case com_wire_dec: { //抽丝
160 3 if(work==0)
161 3 wire_dec=1;
162 3 else if(work==3)
163 3 {
164 4 if(wire_dec==0&&WIRE==ON&&pp.k3==ON)
165 4 wire_dec=1;
166 4 }
167 3 }break;
168 2 case com_motor_stop: { //停止点动
169 3 if(motor_stop==0)
170 3 {
171 4 IEN1=IEN1&0XBF; //CM2
172 4 c_cm2=0;
173 4 motor_stop=1;
174 4 }
175 3 }break;
176 2 case com_pre_melt_ok: start_rot=1;break;
177 2 case com_decrease: decrease=1;break;
178 2 case com_decrease_ok: rot_stop=1;break;
179 2 case com_wire: start_wire=1;break;
C51 COMPILER V7.06 DC1 09/11/2006 08:21:54 PAGE 4
180 2 case com_stopW: stop_wire=1;break;
181 2 case com_return: auto_return=1;break;
182 2 case com_return_ok: return_ok=1;break;
183 2 case com_goto_begin: to_begin=1;break;
184 2 case com_err_ok: err_ok=1;break;
185 2 default: break;
186 2 }
187 1 }
188
189 void data_type() //对接收到的数据分辨类型
190 {
191 1 switch(rbuffer[1])
192 1 {
193 2 case command: com_type();break;
194 2 case infor: {
195 3 switch(rbuffer[2])
196 3 {
197 4 case com_sector: {
198 5 nonce_sec=rbuffer[3];
199 5 in_sector=1;
200 5 new_sector=1;
201 5 }break;
202 4 case com_wire_on_off: WIRE=rbuffer[3];break;//送丝开关
203 4 case com_delt_switch: delt_state=rbuffer[3];break;
204 4 default: break;
205 4 }
206 3 }break;
207 2 case p_out_sec: receive_p_out=1;break;
208 2 case p_in_sec: {
209 3 nonce_sec=rbuffer[2];
210 3 receive_p_in=1;
211 3 }break;
212 2 case parameter1:FINISH=rbuffer[2]*256+rbuffer[3];break;
213 2 default: break;
214 2 }
215 1 }
216
217 void get_v_r()
218 {
219 1 switch(pp.rn/256)
220 1 {
221 2 case 1: {
222 3 motor_v=6600;
223 3 r=25;
224 3 decrease_rate=893;
225 3 }break;
226 2 case 2:{
227 3 motor_v=6600;
228 3 r=28;
229 3 decrease_rate=1005.1;
230 3 }break;
231 2 case 3:
232 2 case 4:
233 2 case 5:
234 2 case 6: {
235 3 motor_v=6600;
236 3 r=28;
237 3 decrease_rate=1005.1;
238 3 }break;
239 2 case 7: {
240 3 motor_v=6600;
241 3 r=25;
C51 COMPILER V7.06 DC1 09/11/2006 08:21:54 PAGE 5
242 3 decrease_rate=893;
243 3 }break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -