📄 qcqx.lst
字号:
162 1 { P2=DATA_7SEG[(push_val)/10];
163 2 P3_0=0;P3_1=0;P3_3=1;P3_4=1;dis_flag=0;}
164 1 else
165 1 { P2=DATA_7SEG[(push_val)%10];
166 2 P3_0=1;P3_1=1;P3_3=0;P3_4=0;dis_flag=1;}
167 1 }
168 /********************正常工作显示子函数********************/
169 void normal_dis(void)
170 {
171 1 if(dis_flag)
172 1 { P2=DATA_7SEG[set_min/10];
173 2 P3_0=0;P3_1=0;P3_3=1;P3_4=1;dis_flag=0;}
174 1 else
175 1 { P2=DATA_7SEG[set_min%10];
176 2 P3_0=1;P3_1=1;P3_3=0;P3_4=0;dis_flag=1;}
177 1 }
178 /***********************缺油显示子函数***********************/
179 void oil_dis(void)
C51 COMPILER V7.06 QCQX 11/18/2005 20:12:52 PAGE 4
180 {
181 1 if(buzz_sound)
182 1 { if(dis_flag){P2=0x40;P3_0=0;P3_1=0;P3_3=1;P3_4=1;dis_flag=0;}
183 2 else {P2=0x40;P3_0=1;P3_1=1;P3_3=0;P3_4=0;dis_flag=1;}
184 2 }
185 1 else {P3_0=1;P3_1=1;P3_3=1;P3_4=1;}
186 1 }
187 /*****************超温显示子函数******************/
188 void temp_dis(void)
189 {
190 1 if(dis_flag){P2=0x40;P3_0=0;P3_1=0;P3_3=1;P3_4=1;dis_flag=0;}
191 1 else {P2=0x40;P3_0=1;P3_1=1;P3_3=0;P3_4=0;dis_flag=1;}
192 1 }
193 /*********************超温、缺油同时发生显示子函数*************************/
194 void other_dis(void)
195 {
196 1 if((deda<250)||((deda>500)&&(deda<750)))
197 1 { if(dis_flag){P2=0x40;P3_0=0;P3_1=0;P3_3=1;P3_4=1;dis_flag=0;}
198 2 else {P2=0x40;P3_0=1;P3_1=1;P3_3=0;P3_4=0;dis_flag=1;}
199 2 }
200 1 else {P3_0=1;P3_1=1;P3_3=1;P3_4=1;}
201 1 }
202
203 /*******************按键\感应开关处理子函数**********************/
204 void key(void)
205 {
206 1 delay(10);
207 1 while(P1!=0xff)
208 1 {
209 2 switch (P1)
210 2 {
211 3 case 0xfd:time_inc(); break;
212 3 case 0xfb:time_dec(); break;
213 3 case 0xf7:push_inc(); break;
214 3 case 0xef:push_dec(); break;
215 3 case 0xdf:oil_low(); break;
216 3 case 0xbf:temp_over(); break;
217 3 case 0x9f:other(); break;
218 3 default:break;
219 3 }
220 2 delay(500);
221 2 }
222 1 if(set_min>=4){key_flag=1;TR0=1;}
223 1 }
224 /******************主函数******************/
225 void main()
226 { init();
227 1 init_timer0(); //定时器T0初始化
228 1 init_timer1(); //定时器T1初始化
229 1 while(1) //无限循环
230 1 {
231 2 /*------------------------------------*/
232 2 if(start)
233 2 {
234 3 if(P1!=0xff)key();
235 3 else normal_work();
236 3 }
237 2 else close();
238 2 }
239 1 }
240
241 /*********************正常工作子函数*************************/
C51 COMPILER V7.06 QCQX 11/18/2005 20:12:52 PAGE 5
242 void normal_work()
243 {
244 1 dis_sel=0;
245 1 if((key_flag)&&(!flag_5s))
246 1 {relay=OFF;buzz=OFF;delay(6000);flag_5s=1;}
247 1 if(flag_5s)
248 1 { y=0;
249 2 buzz_control();dis_sel=0;
250 2 if(set_min==0)
251 2 {out_flag=0;buzz=OFF;flag_5m=1;
252 3 flag_5s=0;key_flag=0;delay(1000);relay=OFF;}
253 2 else {relay=ON;delay(1000);out_flag=1;}
254 2 }
255 1 if(over_5m){over_5m=0;flag_5m=0;start=0;min_5m=0;
256 2 out=OFF;relay=OFF;reset()}
257 1 }
258 /*****************超温、缺油同时发生处理子函数******************/
259 void other(void)
260 {
261 1 delay(10);
262 1 if(P1==0x9f){while(1){dis_sel=3;relay=OFF;buzz=OFF;out_flag=0;if(!start)break;}}
263 1 else dis_sel=0;
264 1 }
265
266 /*******************超温发生处理子函数*****************/
267 void temp_over(void)
268 {
269 1 delay(10);
270 1 if(P1==0xbf){while(1){dis_sel=2;relay=OFF;buzz=OFF;out_flag=0;if(!start)break;}}
271 1 else dis_sel=0;
272 1 }
273 /*******************缺油发生处理子函数*****************/
274 void oil_low(void)
275 {
276 1 delay(10);
277 1 if(P1==0xdf){while(1){dis_sel=1;relay=OFF;out_flag=0;buzz=OFF;if(!start)break;}}
278 1 else dis_sel=0;
279 1 }
280
281 /*****************关机处理子函数*******************/
282 void close(void)
283 {P2=0xff;P3=0xff;relay=OFF;buzz=OFF;P1=0xff;out_flag=0;reset()
284 1 dis_sel=0;set_min=0;key_flag=0;flag_5s=0;out=OFF;push_val=20;}
285 /*************控制蜂鸣器子函数***************/
286 void buzz_control(void)
287 {
288 1 if((set_min>0)&&(set_min<4))buzz=buzz_sound;
289 1 else buzz=OFF;}
290 /****************时间增加子函数*******************/
291 void time_inc(void)
292 { if(!timeinc_key)set_min++;
293 1 if(set_min>=60)set_min=60;dis_sel=0;
294 1 }
295 /******************时间减少子函数******************/
296 void time_dec(void)
297 { if(!timedec_key)set_min--;
298 1 if(set_min<=0)set_min=0;dis_sel=0;
299 1 }
300 /*******************压力增加子函数*********************/
301 void push_inc(void)
302 {
303 1 while(!y){dis_sel=4;delay(2500);y=1;}
C51 COMPILER V7.06 QCQX 11/18/2005 20:12:52 PAGE 6
304 1 if(!pushinc_key)push_val=push_val++;
305 1 if(push_val>=20)push_val=20;
306 1 }
307 /*******************压力减少子函数*********************/
308 void push_dec(void)
309 {
310 1 while(!y){dis_sel=4;delay(2500);y=1;}
311 1 if(!pushdec_key)push_val=push_val--;
312 1 if(push_val<=0)push_val=0;
313 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1144 ----
CONSTANT SIZE = 10 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 9 ----
IDATA SIZE = ---- ----
BIT SIZE = 9 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -