📄 pp.lst
字号:
0435 E030 LDI R19,0
0436 E80C LDI R16,0x8C
0437 E010 LDI R17,0
0438 DE26 RCALL _TxRomUart
(0317) TxRomUart(" ",16);
0439 E120 LDI R18,0x10
043A E030 LDI R19,0
043B EA08 LDI R16,0xA8
043C E010 LDI R17,0
043D DE21 RCALL _TxRomUart
(0318) WriteCommandLCM(0x01,1); //清屏
043E E021 LDI R18,1
043F E001 LDI R16,1
0440 DC56 RCALL _WriteCommandLCM
(0319) DisplayListChar(0, 0, table_1,12);
0441 E08C LDI R24,0xC
0442 838A STD Y+2,R24
0443 E286 LDI R24,0x26
0444 E090 LDI R25,0
0445 8399 STD Y+1,R25
0446 8388 STD Y+0,R24
0447 2722 CLR R18
0448 2700 CLR R16
0449 DC85 RCALL _DisplayListChar
(0320) RxCalAddr=2;RxCalDely=0;return;
044A E082 LDI R24,2
044B 93800061 STS RxCalAddr,R24
044D 2422 CLR R2
044E 92200060 STS RxCalDely,R2
0450 C0C7 RJMP 0x0518
(0321) }
(0322) case(2)://检测100ms去抖动读卡
(0323) {
(0324) if(PIND&0x04) RxCalDely=0;
0451 9B82 SBIS 0x10,2
0452 C003 RJMP 0x0456
0453 2422 CLR R2
0454 92200060 STS RxCalDely,R2
(0325) if(++RxCalDely<100) {OutLedAddr=1;return;}
0456 91800060 LDS R24,RxCalDely
0458 5F8F SUBI R24,0xFF
0459 2E28 MOV R2,R24
045A 92200060 STS RxCalDely,R2
045C 3684 CPI R24,0x64
045D F420 BCC 0x0462
045E E081 LDI R24,1
045F 9380006A STS OutLedAddr,R24
0461 C0B6 RJMP 0x0518
(0326) RxCalAddr=3;RxUartAddr=1;OutLedAddr=2;RxUartWait=0;TxRomUart(readcal1,13);TxRomUart(" ",16);
0462 E083 LDI R24,3
0463 93800061 STS RxCalAddr,R24
0465 E081 LDI R24,1
0466 93800072 STS RxUartAddr,R24
0468 E082 LDI R24,2
0469 9380006A STS OutLedAddr,R24
046B 2422 CLR R2
046C 2433 CLR R3
046D 9230006E STS RxUartWait+1,R3
046F 9220006D STS RxUartWait,R2
0471 E02D LDI R18,0xD
0472 E030 LDI R19,0
0473 E30D LDI R16,0x3D
0474 E010 LDI R17,0
0475 DDE9 RCALL _TxRomUart
0476 E120 LDI R18,0x10
0477 E030 LDI R19,0
0478 EA08 LDI R16,0xA8
0479 E010 LDI R17,0
047A DDE4 RCALL _TxRomUart
(0327) return;
047B C09C RJMP 0x0518
(0328) }
(0329) case(3)://判断读卡是否成功
(0330) {
(0331) if(RxUartAddr) return;
047C 90200072 LDS R2,RxUartAddr
047E 2022 TST R2
047F F009 BEQ 0x0481
0480 C097 RJMP 0x0518
(0332) if(CmpsRom(RxUartDbuf,RxUartLeng,readcal1,2)) {TxRomUart("EERead ERROR ",13);TxRomUart(" ",16);RxCalAddr=1;OutToneCount=4;return;}//EE
0481 E082 LDI R24,2
0482 838A STD Y+2,R24
0483 E38D LDI R24,0x3D
0484 E090 LDI R25,0
0485 8399 STD Y+1,R25
0486 8388 STD Y+0,R24
0487 9120006F LDS R18,RxUartLeng
0489 E703 LDI R16,0x73
048A E010 LDI R17,0
048B DE1F RCALL _CmpsRom
048C 2300 TST R16
048D F089 BEQ 0x049F
048E E02D LDI R18,0xD
048F E030 LDI R19,0
0490 E70E LDI R16,0x7E
0491 E010 LDI R17,0
0492 DDCC RCALL _TxRomUart
0493 E120 LDI R18,0x10
0494 E030 LDI R19,0
0495 EA08 LDI R16,0xA8
0496 E010 LDI R17,0
0497 DDC7 RCALL _TxRomUart
0498 E081 LDI R24,1
0499 93800061 STS RxCalAddr,R24
049B E084 LDI R24,4
049C 93800066 STS OutToneCount,R24
049E C079 RJMP 0x0518
(0333) if(CmpsRom(RxUartDbuf+3,RxUartLeng,readcal1+3,1)) {TxRomUart("EERead ERROR ",13);TxRomUart(" ",16);RxCalAddr=1;OutToneCount=4;return;}//EE
049F E081 LDI R24,1
04A0 838A STD Y+2,R24
04A1 E480 LDI R24,0x40
04A2 E090 LDI R25,0
04A3 8399 STD Y+1,R25
04A4 8388 STD Y+0,R24
04A5 9120006F LDS R18,RxUartLeng
04A7 E706 LDI R16,0x76
04A8 E010 LDI R17,0
04A9 DE01 RCALL _CmpsRom
04AA 2300 TST R16
04AB F089 BEQ 0x04BD
04AC E02D LDI R18,0xD
04AD E030 LDI R19,0
04AE E70E LDI R16,0x7E
04AF E010 LDI R17,0
04B0 DDAE RCALL _TxRomUart
04B1 E120 LDI R18,0x10
04B2 E030 LDI R19,0
04B3 EA08 LDI R16,0xA8
04B4 E010 LDI R17,0
04B5 DDA9 RCALL _TxRomUart
04B6 E081 LDI R24,1
04B7 93800061 STS RxCalAddr,R24
04B9 E084 LDI R24,4
04BA 93800066 STS OutToneCount,R24
04BC C05B RJMP 0x0518
(0334) CopyRam(RxUartDbuf+4,RxUartLeng,NameBuf,7);
04BD E087 LDI R24,7
04BE 838A STD Y+2,R24
04BF E68D LDI R24,0x6D
04C0 E091 LDI R25,1
04C1 8399 STD Y+1,R25
04C2 8388 STD Y+0,R24
04C3 9120006F LDS R18,RxUartLeng
04C5 E707 LDI R16,0x77
04C6 E010 LDI R17,0
04C7 DDCB RCALL _CopyRam
(0335) CopyRam(RxUartDbuf+11,RxUartLeng,NumBuf,9);
04C8 E089 LDI R24,0x9
04C9 838A STD Y+2,R24
04CA E784 LDI R24,0x74
04CB E091 LDI R25,1
04CC 8399 STD Y+1,R25
04CD 8388 STD Y+0,R24
04CE 9120006F LDS R18,RxUartLeng
04D0 E70E LDI R16,0x7E
04D1 E010 LDI R17,0
04D2 DDC0 RCALL _CopyRam
(0336) TxRomUart("DD",2);//DD
04D3 E022 LDI R18,2
04D4 E030 LDI R19,0
04D5 EC07 LDI R16,0xC7
04D6 E010 LDI R17,0
04D7 DD87 RCALL _TxRomUart
(0337) TxRamUart(NameBuf,7);
04D8 E027 LDI R18,7
04D9 E030 LDI R19,0
04DA E60D LDI R16,0x6D
04DB E011 LDI R17,1
04DC DD90 RCALL _TxRamUart
(0338) //TxRomUart("CC",2);//CC
(0339) TxRamUart(NumBuf,9);
04DD E029 LDI R18,0x9
04DE E030 LDI R19,0
04DF E704 LDI R16,0x74
04E0 E011 LDI R17,1
04E1 DD8B RCALL _TxRamUart
(0340) TxRomUart("Read OK ",11);//EE
04E2 E02B LDI R18,0xB
04E3 E030 LDI R19,0
04E4 E702 LDI R16,0x72
04E5 E010 LDI R17,0
04E6 DD78 RCALL _TxRomUart
(0341) RxCalAddr=4;OutToneCount=2;RxUartAddr=1;//接收处理
04E7 E084 LDI R24,4
04E8 93800061 STS RxCalAddr,R24
04EA E082 LDI R24,2
04EB 93800066 STS OutToneCount,R24
04ED E081 LDI R24,1
04EE 93800072 STS RxUartAddr,R24
(0342) return;
04F0 C027 RJMP 0x0518
(0343) }
(0344) case(4):
(0345) {
(0346) DisplayListChar(0, 0, Name,5);
04F1 E085 LDI R24,5
04F2 838A STD Y+2,R24
04F3 E687 LDI R24,0x67
04F4 E090 LDI R25,0
04F5 8399 STD Y+1,R25
04F6 8388 STD Y+0,R24
04F7 2722 CLR R18
04F8 2700 CLR R16
04F9 DBD5 RCALL _DisplayListChar
(0347) DisplayListChar1(5, 0, NameBuf,7);
04FA E087 LDI R24,7
04FB 838A STD Y+2,R24
04FC E68D LDI R24,0x6D
04FD E091 LDI R25,1
04FE 8399 STD Y+1,R25
04FF 8388 STD Y+0,R24
0500 2722 CLR R18
0501 E005 LDI R16,5
0502 DBEE RCALL _DisplayListChar1
(0348) DisplayListChar(0, 1, Num,4);
0503 E084 LDI R24,4
0504 838A STD Y+2,R24
0505 E68D LDI R24,0x6D
0506 E090 LDI R25,0
0507 8399 STD Y+1,R25
0508 8388 STD Y+0,R24
0509 E021 LDI R18,1
050A 2700 CLR R16
050B DBC3 RCALL _DisplayListChar
(0349) DisplayListChar1(4, 1, NumBuf,9);
050C E089 LDI R24,0x9
050D 838A STD Y+2,R24
050E E784 LDI R24,0x74
050F E091 LDI R25,1
0510 8399 STD Y+1,R25
0511 8388 STD Y+0,R24
0512 E021 LDI R18,1
0513 E004 LDI R16,4
0514 DBDC RCALL _DisplayListChar1
(0350) RxCalAddr=1;return;
0515 E081 LDI R24,1
0516 93800061 STS RxCalAddr,R24
0518 9623 ADIW R28,3
0519 D045 RCALL pop_gset1
051A 9508 RET
_Time0:
051B D03E RCALL push_gset2
(0351) }
(0352) }
(0353) }
(0354) //*********************************************调用分时任务//
(0355) void Time0(void)
(0356) {
(0357) while(TCNT0<(fosc/64/500));//毫秒
051C EF4A LDI R20,0xFA
051D E050 LDI R21,0
051E E060 LDI R22,0
051F E070 LDI R23,0
0520 B622 IN R2,0x32
0521 2433 CLR R3
0522 2444 CLR R4
0523 2455 CLR R5
0524 1624 CP R2,R20
0525 0635 CPC R3,R21
0526 0646 CPC R4,R22
0527 0657 CPC R5,R23
0528 F39C BLT 0x051C
(0358) TCNT0=0;
0529 2422 CLR R2
052A BE22 OUT 0x32,R2
(0359) RxCal();
052B DEE6 RCALL _RxCal
(0360) RxGsm();//远程接收
052C DDEE RCALL _RxGsm
052D D022 RCALL pop_gset2
052E 9508 RET
_main:
j --> Y+4
i --> Y+4
052F 9723 SBIW R28,3
(0361)
(0362) }
(0363) //***************************************************主程序//
(0364) void main(void)
(0365) {
(0366) unsigned char i,j;
(0367) init_atmega();
0530 DDC8 RCALL _init_atmega
(0368) delay_ms(400); //启动等待,等LCM讲入工作状态
0531 E900 LDI R16,0x90
0532 E011 LDI R17,1
0533 DDAD RCALL _delay_ms
(0369) LCMInit(); //LCM初始化
0534 DBDE RCALL _LCMInit
(0370) delay_ms(10); //延时片刻
0535 E00A LDI R16,0xA
0536 E010 LDI R17,0
0537 DDA9 RCALL _delay_ms
(0371) DisplayListChar(0, 0, table_1,12);
0538 E08C LDI R24,0xC
0539 838A STD Y+2,R24
053A E286 LDI R24,0x26
053B E090 LDI R25,0
053C 8399 STD Y+1,R25
053D 8388 STD Y+0,R24
053E 2722 CLR R18
053F 2700 CLR R16
0540 DB8E RCALL _DisplayListChar
(0372) RxCalAddr=2;
0541 E082 LDI R24,2
0542 93800061 STS RxCalAddr,R24
(0373) RxGsmAddr=1;
0544 E081 LDI R24,1
0545 93800062 STS RxGsmAddr,R24
(0374) OutLedAddr=1;
0547 9380006A STS OutLedAddr,R24
(0375) OutToneAddr=1;
0549 93800067 STS OutToneAddr,R24
054B C001 RJMP 0x054D
(0376) while(1)
(0377) {
(0378) Time0();
FILE: <library>
054C DFCE RCALL _Time0
054D CFFE RJMP 0x054C
054E 9623 ADIW R28,3
054F 9508 RET
pop_gset2:
0550 E0E2 LDI R30,2
0551 C00E RJMP pop
pop_gset5:
0552 27EE CLR R30
0553 C00C RJMP pop
push_gset5:
0554 92FA ST R15,-Y
0555 92EA ST R14,-Y
push_gset4:
0556 92DA ST R13,-Y
0557 92CA ST R12,-Y
push_gset3:
0558 92BA ST R11,-Y
0559 92AA ST R10,-Y
push_gset2:
055A 937A ST R23,-Y
055B 936A ST R22,-Y
push_gset1:
055C 935A ST R21,-Y
055D 934A ST R20,-Y
055E 9508 RET
pop_gset1:
055F E0E1 LDI R30,1
pop:
0560 9149 LD R20,Y+
0561 9159 LD R21,Y+
0562 FDE0 SBRC R30,0
0563 9508 RET
0564 9169 LD R22,Y+
0565 9179 LD R23,Y+
0566 FDE1 SBRC R30,1
0567 9508 RET
0568 90A9 LD R10,Y+
0569 90B9 LD R11,Y+
056A FDE2 SBRC R30,2
056B 9508 RET
056C 90C9 LD R12,Y+
056D 90D9 LD R13,Y+
056E FDE3 SBRC R30,3
056F 9508 RET
0570 90E9 LD R14,Y+
0571 90F9 LD R15,Y+
0572 9508 RET
push_lset:
0573 93FA ST R31,-Y
0574 93EA ST R30,-Y
0575 93BA ST R27,-Y
0576 93AA ST R26,-Y
0577 939A ST R25,-Y
0578 938A ST R24,-Y
0579 933A ST R19,-Y
057A 932A ST R18,-Y
057B 931A ST R17,-Y
057C 930A ST R16,-Y
057D 929A ST R9,-Y
057E 928A ST R8,-Y
057F 927A ST R7,-Y
0580 926A ST R6,-Y
0581 925A ST R5,-Y
0582 924A ST R4,-Y
0583 923A ST R3,-Y
0584 922A ST R2,-Y
0585 921A ST R1,-Y
0586 920A ST R0,-Y
0587 B60F IN R0,0x3F
0588 920A ST R0,-Y
0589 9508 RET
pop_lset:
058A 9009 LD R0,Y+
058B BE0F OUT 0x3F,R0
058C 9009 LD R0,Y+
058D 9019 LD R1,Y+
058E 9029 LD R2,Y+
058F 9039 LD R3,Y+
0590 9049 LD R4,Y+
0591 9059 LD R5,Y+
0592 9069 LD R6,Y+
0593 9079 LD R7,Y+
0594 9089 LD R8,Y+
0595 9099 LD R9,Y+
0596 9109 LD R16,Y+
0597 9119 LD R17,Y+
0598 9129 LD R18,Y+
0599 9139 LD R19,Y+
059A 9189 LD R24,Y+
059B 9199 LD R25,Y+
059C 91A9 LD R26,Y+
059D 91B9 LD R27,Y+
059E 91E9 LD R30,Y+
059F 91F9 LD R31,Y+
05A0 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -