📄 main.lst
字号:
196 4 else onbat =0;
197 4 if(GET[5]!=0x55) serbit=1;
198 4 else {
199 5 abc = 0;
200 5 for(i=0;i<12;i++){
201 6 GET[i] = 0;
202 6 LD[i] = 0; }
203 5 }
204 4 break;
205 4 case 0xf1: sendstring(&TT[0],12);
206 4 break;
207 4 case 0xf2: abc = getchar();
208 4 getstring(&GET[0],12);
209 4 for(i=0;i<12;i++){
210 5 TEMP[i] = TT[i]; //TEMP[12] 分选前有电池的位
211 5 } //LD[12] 点亮的电池位
212 4 if(abc==0) { //TT[12] 当前有电池的位
213 5 for(i=0;i<12;i++){ //GET[12] 想要点亮的电池位,
214 6 LD[i] = GET[i]; //abc:档位号,abc=0时,测试灯的好坏
215 6 }
216 5 }
217 4 break;
218 4 case 0xf3:
219 4 qg = getchar(); //汽缸开启与关闭
220 4 if(tuopan_state==1) qg=0,serbit=1;//汽缸开关为本地状态,TA3=1为本地状态;
221 4 break;
222 4 }
223 3 if(serbit) sendchar(0x44);
224 3 else sendchar(0x88);
225 3 }
226 2 }
227 1 // else c[0]=SBUF;
228 1 if(TI) TI=0;
229 1 P10 = 0;
230 1 SM2 = 1;
231 1 serbit =0;
232 1
233 1 }
234 /****************************************************************************************
235 *函数名称:writeled(hang)
236 *函数功能:发光二极管点亮函数
237 *入口参数:hang
238 *出口参数:无
C51 COMPILER V6.12 MAIN 01/23/2007 22:25:02 PAGE 5
239 *作 者:
240 *日 期:
241 *****************************************************************************************/
242 void writeled(unsigned char data hang)
*** WARNING C258 IN LINE 242 OF F:\新建文件夹10\9601\FENX96\MAIN.C: 'hang': mspace on parameter ignored
243 {
244 1 unsigned char data i;
245 1 LEDW = led_off; //lie 0-7
246 1 LDW = ld_off;
247 1 i = hang;
248 1 LDW = i;
249 1 if(onbat) {
250 2 LEDW = TT[i]; //TT[12]:当前有电池的位
251 2 }
252 1 else {
253 2 LEDW = LD[i]; //LD[12]:点亮的电池位
254 2 }
255 1 }
256 /****************************************************************************************
257 *函数名称: timego()
258 *函数功能: 定时器1中断函数
259 *入口参数: 无
260 *出口参数: 无
261 *作 者:
262 *日 期:
263 *****************************************************************************************/
264 void timego(void) interrupt 3
265 { //定时 t1
266 1 TT[hang] = ~V1R; //红外线发接受管列读入,行为GDW,列为V1R
267 1 /*#ifdef onebyone
268 1 if(hang==1) {
269 1 nop;
270 1 }
271 1 #endif*/
272 1 if(++hang==12) hang= 0;
273 1 if(jiguangbit==0)
274 1 {
275 2 GDW = hang;
276 2 writeled(hang); //点亮相应的电池位
277 2 }
278 1 if(errbit) onbeep =1;
279 1 else onbeep =0,FNC =0;
280 1 if(FNC==1&&flashbit==0){ //电池取错蜂鸣器报警,LED闪烁
281 2 FNC=FNC;
282 2 }
283 1 if(++t1_500ms>=500)
284 1 {
285 2 flashbit=~flashbit;
286 2 t1_500ms=0; //托盘到位检测
287 2 if(flashbit&&onbeep) FNC=1;
288 2 else FNC=0;
289 2 if(++sec5>=6){
290 3 sec5 = 0;
291 3 errbit=0;
292 3 }
293 2 }
294 1 FQG = 1; //*********************
295 1 key_state = FQG;
296 1 if(key_state!=key) { //汽缸开关状态检测 &&tuopan_state==1
297 2 onqg=1;
298 2 }
299 1 tuopan_state = TXADR;
C51 COMPILER V6.12 MAIN 01/23/2007 22:25:02 PAGE 6
300 1 tuopan_state >>= 5;
301 1
302 1 if(onqg&&tuopan_state==1) {
303 2 FNC = 0;
304 2 LEDW = led_off;
305 2 LDW = ld_off;
306 2 if(key_state) { //0
307 3 XQG = DOWN;
308 3 qgtime = 0 ;
309 3 GDW = 0x90;
310 3 jiguangbit = 1;
311 3 qg_state = 1;
312 3
313 3
314 3 }
315 2 else {
316 3 XQG = UP;
317 3 qg_state = 0; //1
318 3 }
319 2 while(key!=key_state) //{FQG = 1,key = FQG;}
320 2 {
321 3 key=~key;
322 3 }
323 2 onqg = 0;
324 2 }
325 1 else if(onqg&&tuopan_state!=1){
326 2 onqg = 0;
327 2 }
328 1 if(qg!=0&&tuopan_state==0) {
329 2 FNC = 0;
330 2 LEDW = led_off;
331 2 LDW = ld_off;
332 2 if(qg==0x55) {
333 3 XQG = DOWN;
334 3 qgtime = 0 ;
335 3 GDW = 0x90;
336 3 jiguangbit = 1;
337 3 qg_state = 1;
338 3 }
339 2 else {
340 3 XQG = UP;
341 3 qg_state = 0;
342 3 }
343 2 qg = 0;
344 2 }
345 1 else if(qg!=0&&tuopan_state!=0){
346 2 qg=0;
347 2 }
348 1 while(jiguangbit)
349 1 { //TEST JIGUANG GUAN
350 2 JIG = 1;
351 2 JIG = JIG;
352 2 if(JIG==1){
353 3 delay_char(250);
354 3 JIG = JIG; //JIG低电平正常,高电平错误
355 3 if(JIG&qg_state){
356 4 XQG = UP;
357 4 qg_state = 0; //
358 4 jiguangbit = 0;
359 4 GDW = 0x10; ///
360 4 errbit = 1;
361 4 }
C51 COMPILER V6.12 MAIN 01/23/2007 22:25:02 PAGE 7
362 3 }
363 2 }
364 1 if(qg_state)
365 1 { qgtime++;
366 2 if(qgtime>=3000) {
367 3 qg_state = 0;
368 3 qgtime = 0;
369 3 jiguangbit = 0;
370 3 GDW = 0X10;
371 3 }
372 2 }
373 1 TL1 = _tl1;
374 1 TH1 = _th1;
375 1 }
376 /****************************************************************************************
377 *函数名称:getledbyte(pm)
378 *函数功能:电池错拿检测函数
379 *入口参数:pm
380 *出口参数:errbit,LD[M],
381 *作 者:
382 *日 期:
383 *****************************************************************************************/
384 void getledbyte(unsigned char data pm)
*** WARNING C258 IN LINE 384 OF F:\新建文件夹10\9601\FENX96\MAIN.C: 'pm': mspace on parameter ignored
385 {
386 1 unsigned char data atemp,m,att;
387 1 m = pm;
388 1 atemp = (~TEMP[m])&TT[m]; //TEMP[12] 分选前有电池的位
389 1 att = (TEMP[m]&(~TT[m]))&(~GET[m]);
390 1 LD[m] = (TEMP[m]&TT[m])&GET[m]; //LD[i]:分选时点亮的电池位
391 1 if(atemp) {
392 2 errbit = 1;
393 2 if(flashbit) LD[m] |= atemp;
394 2 else LD[m] &= (~atemp);
395 2 }
396 1 if(att)
397 1 { //att电池取错的位
398 2 errbit = 1;
399 2 if(flashbit) LD[m] |= att;
400 2 else LD[m] &= (~att);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -