📄 pp.lis
字号:
0262 ; void OutLed(void)
0262 ; {
0262 .dbline 118
0262 ; switch(OutLedAddr)
0262 00910A00 lds R16,_OutLedAddr
0266 1127 clr R17
0268 0030 cpi R16,0
026A 0107 cpc R16,R17
026C 71F0 breq L48
026E X5:
026E 0130 cpi R16,1
0270 E0E0 ldi R30,0
0272 1E07 cpc R17,R30
0274 71F0 breq L49
0276 0230 cpi R16,2
0278 E0E0 ldi R30,0
027A 1E07 cpc R17,R30
027C 21F1 breq L52
027E 0330 cpi R16,3
0280 E0E0 ldi R30,0
0282 1E07 cpc R17,R30
0284 09F4 brne X7
0286 3BC0 rjmp L55
0288 X7:
0288 43C0 rjmp L45
028A X6:
028A .dbline 119
028A ; {
028A L48:
028A .dbline 121
028A ; case(0)://停止闪烁
028A ; {
028A .dbline 122
028A ; OutLedAddr=0;return;
028A 2224 clr R2
028C 20920A00 sts _OutLedAddr,R2
0290 .dbline 122
0290 3FC0 rjmp L44
0292 L49:
0292 .dbline 125
0292 ; }
0292 ; case(1)://绿灯闪
0292 ; {
0292 .dbline 126
0292 ; if(++OutLedDely<1000) return;
0292 80910800 lds R24,_OutLedDely
0296 90910900 lds R25,_OutLedDely+1
029A 0196 adiw R24,1
029C 90930900 sts _OutLedDely+1,R25
02A0 80930800 sts _OutLedDely,R24
02A4 883E cpi R24,232
02A6 E3E0 ldi R30,3
02A8 9E07 cpc R25,R30
02AA 08F4 brsh L50
02AC .dbline 126
02AC 31C0 rjmp L44
02AE L50:
02AE .dbline 127
02AE ; OutLedDely=0;PORTC|=0x08;PORTC^=0x06;return;
02AE 2224 clr R2
02B0 3324 clr R3
02B2 30920900 sts _OutLedDely+1,R3
02B6 20920800 sts _OutLedDely,R2
02BA .dbline 127
02BA AB9A sbi 0x15,3
02BC .dbline 127
02BC 86E0 ldi R24,6
02BE 25B2 in R2,0x15
02C0 2826 eor R2,R24
02C2 25BA out 0x15,R2
02C4 .dbline 127
02C4 25C0 rjmp L44
02C6 L52:
02C6 .dbline 130
02C6 ; }
02C6 ; case(2)://红灯闪
02C6 ; {
02C6 .dbline 131
02C6 ; if(++OutLedDely<1000) return;
02C6 80910800 lds R24,_OutLedDely
02CA 90910900 lds R25,_OutLedDely+1
02CE 0196 adiw R24,1
02D0 90930900 sts _OutLedDely+1,R25
02D4 80930800 sts _OutLedDely,R24
02D8 883E cpi R24,232
02DA E3E0 ldi R30,3
02DC 9E07 cpc R25,R30
02DE 08F4 brsh L53
02E0 .dbline 131
02E0 17C0 rjmp L44
02E2 L53:
02E2 .dbline 132
02E2 ; OutLedDely=0;PORTC|=0x06;PORTC^=0x08;return;
02E2 2224 clr R2
02E4 3324 clr R3
02E6 30920900 sts _OutLedDely+1,R3
02EA 20920800 sts _OutLedDely,R2
02EE .dbline 132
02EE 85B3 in R24,0x15
02F0 8660 ori R24,6
02F2 85BB out 0x15,R24
02F4 .dbline 132
02F4 88E0 ldi R24,8
02F6 25B2 in R2,0x15
02F8 2826 eor R2,R24
02FA 25BA out 0x15,R2
02FC .dbline 132
02FC 09C0 rjmp L44
02FE L55:
02FE .dbline 135
02FE .dbline 135
02FE 2224 clr R2
0300 3324 clr R3
0302 30920900 sts _OutLedDely+1,R3
0306 20920800 sts _OutLedDely,R2
030A .dbline 135
030A 85B3 in R24,0x15
030C 8C60 ori R24,12
030E 85BB out 0x15,R24
0310 .dbline 135
0310 L45:
0310 .dbline -2
0310 L44:
0310 .dbline 0 ; func end
0310 0895 ret
0312 .dbend
0312 .dbfunc e OutTone _OutTone fV
.even
0312 _OutTone::
0312 .dbline -1
0312 .dbline 140
0312 ; }
0312 ; case(3)://关灯
0312 ; {OutLedDely=0;PORTC|=0x0C;return;}
0312 ; }
0312 ; }
0312 ; //***************************************************************输出提示声23//
0312 ; void OutTone(void)
0312 ; {
0312 .dbline 141
0312 ; switch(OutToneAddr)
0312 00910700 lds R16,_OutToneAddr
0316 1127 clr R17
0318 0030 cpi R16,0
031A 0107 cpc R16,R17
031C 49F0 breq L60
031E X8:
031E 0130 cpi R16,1
0320 E0E0 ldi R30,0
0322 1E07 cpc R17,R30
0324 49F0 breq L61
0326 0230 cpi R16,2
0328 E0E0 ldi R30,0
032A 1E07 cpc R17,R30
032C A1F0 breq L64
032E 3BC0 rjmp L57
0330 X9:
0330 .dbline 142
0330 ; {
0330 L60:
0330 .dbline 144
0330 ; case(0)://关闭
0330 ; {
0330 .dbline 145
0330 ; OutToneAddr=0;return;
0330 2224 clr R2
0332 20920700 sts _OutToneAddr,R2
0336 .dbline 145
0336 37C0 rjmp L56
0338 L61:
0338 .dbline 148
0338 ; }
0338 ; case(1)://判断是否开提示声
0338 ; {
0338 .dbline 149
0338 ; if(!OutToneCount) return;
0338 20900600 lds R2,_OutToneCount
033C 2220 tst R2
033E 09F4 brne L62
0340 .dbline 149
0340 32C0 rjmp L56
0342 L62:
0342 .dbline 150
0342 ; OutToneDely=0;OutToneAddr=2;return;
0342 2224 clr R2
0344 3324 clr R3
0346 30920400 sts _OutToneDely+1,R3
034A 20920300 sts _OutToneDely,R2
034E .dbline 150
034E 82E0 ldi R24,2
0350 80930700 sts _OutToneAddr,R24
0354 .dbline 150
0354 28C0 rjmp L56
0356 L64:
0356 .dbline 153
0356 ; }
0356 ; case(2):
0356 ; {
0356 .dbline 154
0356 ; if(++OutToneDely<400) return;
0356 80910300 lds R24,_OutToneDely
035A 90910400 lds R25,_OutToneDely+1
035E 0196 adiw R24,1
0360 90930400 sts _OutToneDely+1,R25
0364 80930300 sts _OutToneDely,R24
0368 8039 cpi R24,144
036A E1E0 ldi R30,1
036C 9E07 cpc R25,R30
036E 08F4 brsh L65
0370 .dbline 154
0370 1AC0 rjmp L56
0372 L65:
0372 .dbline 155
0372 ; if(!(--OutToneCount)) {PORTC|=0x01;OutToneCount=0;OutToneAddr=1;return;}
0372 80910600 lds R24,_OutToneCount
0376 8150 subi R24,1
0378 282E mov R2,R24
037A 20920600 sts _OutToneCount,R2
037E 8823 tst R24
0380 41F4 brne L67
0382 .dbline 155
0382 .dbline 155
0382 A89A sbi 0x15,0
0384 .dbline 155
0384 2224 clr R2
0386 20920600 sts _OutToneCount,R2
038A .dbline 155
038A 81E0 ldi R24,1
038C 80930700 sts _OutToneAddr,R24
0390 .dbline 155
0390 0AC0 rjmp L56
0392 L67:
0392 .dbline 156
0392 2224 clr R2
0394 3324 clr R3
0396 30920400 sts _OutToneDely+1,R3
039A 20920300 sts _OutToneDely,R2
039E .dbline 156
039E 81E0 ldi R24,1
03A0 25B2 in R2,0x15
03A2 2826 eor R2,R24
03A4 25BA out 0x15,R2
03A6 .dbline 156
03A6 L57:
03A6 .dbline -2
03A6 L56:
03A6 .dbline 0 ; func end
03A6 0895 ret
03A8 .dbend
.area vector(rom, abs)
.org 6
0006 D4C1 rjmp _Time2
.area text(rom, con, rel)
03A8 .dbfile I:\刷卡器\pp.c
03A8 .dbfunc e Time2 _Time2 fV
.even
03A8 _Time2::
03A8 00D0 rcall push_lset
03AA .dbline -1
03AA .dbline 163
03AA ; OutToneDely=0;PORTC^=0x01;return;
03AA ; }
03AA ; }
03AA ; }
03AA ; #pragma interrupt_handler Time2:iv_TIMER2_COMP
03AA ; //****************************************************************调用中断任务//
03AA ; void Time2(void)
03AA ; {
03AA .dbline 164
03AA ; RxUart();
03AA DCDE rcall _RxUart
03AC .dbline 165
03AC ; OutLed();
03AC 5ADF rcall _OutLed
03AE .dbline 166
03AE ; OutTone();
03AE B1DF rcall _OutTone
03B0 .dbline -2
03B0 L69:
03B0 00D0 rcall pop_lset
03B2 .dbline 0 ; func end
03B2 1895 reti
03B4 .dbend
03B4 .dbfunc e TxRomUart _TxRomUart fV
03B4 ; leng -> R18,R19
03B4 ; data -> R16,R17
.even
03B4 _TxRomUart::
03B4 .dbline -1
03B4 .dbline 171
03B4 ; }
03B4 ; //****************************************************单时任务//
03B4 ; //********************************************************发送ROM数据到串口31//
03B4 ; void TxRomUart(const unsigned char *data,unsigned int leng)
03B4 ; {
03B4 09C0 rjmp L72
03B6 X10:
03B6 .dbline 173
03B6 ; while(leng)
03B6 ; {
03B6 L74:
03B6 .dbline 174
03B6 L75:
03B6 .dbline 174
03B6 5D9B sbis 0xb,5
03B8 FECF rjmp L74
03BA .dbline 175
03BA F801 movw R30,R16
03BC E491 lpm R30,Z
03BE ECB9 out 0xc,R30
03C0 .dbline 175
03C0 0F5F subi R16,255 ; offset = 1
03C2 1F4F sbci R17,255
03C4 .dbline 175
03C4 2150 subi R18,1
03C6 3040 sbci R19,0
03C8 .dbline 176
03C8 L72:
03C8 .dbline 172
03C8 2030 cpi R18,0
03CA 2307 cpc R18,R19
03CC A1F7 brne L75
03CE X11:
03CE .dbline -2
03CE L70:
03CE .dbline 0 ; func end
03CE 0895 ret
03D0 .dbsym r leng 18 i
03D0 .dbsym r data 16 pkc
03D0 .dbend
03D0 .dbfunc e TxRamUart _TxRamUart fV
03D0 ; leng -> R18,R19
03D0 ; data -> R16,R17
.even
03D0 _TxRamUart::
03D0 .dbline -1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -