📄 1602.lis
字号:
0148 ; void Delay400Ms(void)
0148 ; {
0148 .dbline 196
0148 ; unsigned char TempCycA = 9;
0148 09E0 ldi R16,9
014A 09C0 xjmp L26
014C L25:
014C .dbline 199
014C ; unsigned int TempCycB;
014C ; while(TempCycA--)
014C ; {
014C .dbline 200
014C ; TempCycB=7777;
014C 21E6 ldi R18,7777
014E 3EE1 ldi R19,30
0150 L28:
0150 .dbline 201
0150 ; while(TempCycB--);
0150 L29:
0150 .dbline 201
0150 1901 movw R2,R18
0152 2150 subi R18,1
0154 3040 sbci R19,0
0156 2220 tst R2
0158 D9F7 brne L28
015A 3320 tst R3
015C C9F7 brne L28
015E X6:
015E .dbline 202
015E ; };
015E L26:
015E .dbline 198
015E 202E mov R2,R16
0160 3324 clr R3
0162 0150 subi R16,1
0164 2220 tst R2
0166 91F7 brne L25
0168 X7:
0168 .dbline 202
0168 .dbline -2
0168 L24:
0168 .dbline 0 ; func end
0168 0895 ret
016A .dbsym r TempCycA 16 c
016A .dbsym r TempCycB 18 i
016A .dbend
.area data(ram, con, rel)
0008 .dbfile D:\学习工具\单片机程序\1602液晶\1602.c
0008 _dispbuf::
0008 .blkb 2
.area idata
0008 3031 .byte 48,49
.area data(ram, con, rel)
000A .dbfile D:\学习工具\单片机程序\1602液晶\1602.c
000A .blkb 2
.area idata
000A 3233 .byte 50,51
.area data(ram, con, rel)
000C .dbfile D:\学习工具\单片机程序\1602液晶\1602.c
000C .blkb 2
.area idata
000C 3435 .byte 52,53
.area data(ram, con, rel)
000E .dbfile D:\学习工具\单片机程序\1602液晶\1602.c
000E .blkb 2
.area idata
000E 3637 .byte 54,55
.area data(ram, con, rel)
0010 .dbfile D:\学习工具\单片机程序\1602液晶\1602.c
0010 .blkb 2
.area idata
0010 3839 .byte 56,57
.area data(ram, con, rel)
0012 .dbfile D:\学习工具\单片机程序\1602液晶\1602.c
0012 .dbsym e dispbuf _dispbuf A[10:10]c
0012 _dispbitcnt::
0012 .blkb 1
.area idata
0012 08 .byte 8
.area data(ram, con, rel)
0013 .dbfile D:\学习工具\单片机程序\1602液晶\1602.c
0013 .dbsym e dispbitcnt _dispbitcnt c
0013 _mstcnt::
0013 .blkb 1
.area idata
0013 08 .byte 8
.area data(ram, con, rel)
0014 .dbfile D:\学习工具\单片机程序\1602液晶\1602.c
0014 .dbsym e mstcnt _mstcnt c
.area text(rom, con, rel)
016A .dbfile D:\学习工具\单片机程序\1602液晶\1602.c
016A .dbfunc e port_init _port_init fV
.even
016A _port_init::
016A .dbline -1
016A .dbline 218
016A ; }
016A ;
016A ; /************************************************************************/
016A ;
016A ; unsigned char dispbuf[]={'0','1','2','3','4','5','6','7','8','9'};
016A ; unsigned char dispbitcnt=8;
016A ;
016A ; unsigned char second;
016A ; unsigned char minite;
016A ; unsigned char hour;
016A ; unsigned int tcnt;
016A ; unsigned char mstcnt=8,i;
016A ;
016A ;
016A ; void port_init(void)
016A ; {
016A .dbline 219
016A ; PORTA = 0x00;
016A 2224 clr R2
016C 2BBA out 0x1b,R2
016E .dbline 220
016E ; DDRA = 0xFF;
016E 8FEF ldi R24,255
0170 8ABB out 0x1a,R24
0172 .dbline 221
0172 ; PORTB = 0x00;
0172 28BA out 0x18,R2
0174 .dbline 222
0174 ; DDRB = 0xFF;
0174 87BB out 0x17,R24
0176 .dbline 223
0176 ; PORTC = 0x00; //m103 output only
0176 25BA out 0x15,R2
0178 .dbline 224
0178 ; DDRC = 0xFF;
0178 84BB out 0x14,R24
017A .dbline 225
017A ; PORTD = 0x00;
017A 22BA out 0x12,R2
017C .dbline 226
017C ; DDRD = 0xFF;
017C 81BB out 0x11,R24
017E .dbline -2
017E L31:
017E .dbline 0 ; func end
017E 0895 ret
0180 .dbend
0180 .dbfunc e timer0_init _timer0_init fV
.even
0180 _timer0_init::
0180 .dbline -1
0180 .dbline 233
0180 ; }
0180 ; //TIMER0 initialize - prescale:64
0180 ; // WGM: Normal
0180 ; // desired value: 1mSec
0180 ; // actual value: 1.000mSec (0.0%)
0180 ; void timer0_init(void)
0180 ; {
0180 .dbline 234
0180 ; TCCR0 = 0x00; //stop
0180 2224 clr R2
0182 23BE out 0x33,R2
0184 .dbline 235
0184 ; TCNT0 = 0x83; //set count
0184 83E8 ldi R24,131
0186 82BF out 0x32,R24
0188 .dbline 236
0188 ; OCR0 = 0x7D; //set compare
0188 8DE7 ldi R24,125
018A 8CBF out 0x3c,R24
018C .dbline 237
018C ; TCCR0 = 0x03; //start timer
018C 83E0 ldi R24,3
018E 83BF out 0x33,R24
0190 .dbline -2
0190 L32:
0190 .dbline 0 ; func end
0190 0895 ret
0192 .dbend
.area vector(rom, abs)
.org 36
0024 0C94C900 jmp _timer0_ovf_isr
.area text(rom, con, rel)
0192 .dbfile D:\学习工具\单片机程序\1602液晶\1602.c
0192 .dbfunc e timer0_ovf_isr _timer0_ovf_isr fV
.even
0192 _timer0_ovf_isr::
0192 0A92 st -y,R0
0194 1A92 st -y,R1
0196 2A92 st -y,R2
0198 3A92 st -y,R3
019A 4A92 st -y,R4
019C 5A92 st -y,R5
019E 6A92 st -y,R6
01A0 7A92 st -y,R7
01A2 8A92 st -y,R8
01A4 9A92 st -y,R9
01A6 0A93 st -y,R16
01A8 1A93 st -y,R17
01AA 2A93 st -y,R18
01AC 3A93 st -y,R19
01AE 8A93 st -y,R24
01B0 9A93 st -y,R25
01B2 AA93 st -y,R26
01B4 BA93 st -y,R27
01B6 EA93 st -y,R30
01B8 FA93 st -y,R31
01BA 0FB6 in R0,0x3f
01BC 0A92 st -y,R0
01BE 2197 sbiw R28,1
01C0 .dbline -1
01C0 .dbline 242
01C0 ; }
01C0 ;
01C0 ; #pragma interrupt_handler timer0_ovf_isr:iv_TIM0_OVF
01C0 ; void timer0_ovf_isr(void)
01C0 ; {
01C0 .dbline 250
01C0 ; //mstcnt--;
01C0 ; //if(mstcnt==0)
01C0 ; //{
01C0 ; // mstcnt=8;
01C0 ;
01C0 ; // }
01C0 ; //for(i=0;i<8;i++)
01C0 ; tcnt++;
01C0 80910100 lds R24,_tcnt
01C4 90910200 lds R25,_tcnt+1
01C8 0196 adiw R24,1
01CA 90930200 sts _tcnt+1,R25
01CE 80930100 sts _tcnt,R24
01D2 .dbline 252
01D2 ;
01D2 ; if(tcnt==1000)
01D2 883E cpi R24,232
01D4 E3E0 ldi R30,3
01D6 9E07 cpc R25,R30
01D8 09F0 breq X13
01DA 7BC0 xjmp L34
01DC X13:
01DC X8:
01DC .dbline 253
01DC ; {
01DC .dbline 254
01DC ; tcnt=0;
01DC 2224 clr R2
01DE 3324 clr R3
01E0 30920200 sts _tcnt+1,R3
01E4 20920100 sts _tcnt,R2
01E8 .dbline 255
01E8 ; second++;
01E8 80910500 lds R24,_second
01EC 8F5F subi R24,255 ; addi 1
01EE 80930500 sts _second,R24
01F2 .dbline 256
01F2 ; if(second==60)
01F2 8C33 cpi R24,60
01F4 A1F4 brne L36
01F6 X9:
01F6 .dbline 257
01F6 ; {
01F6 .dbline 258
01F6 ; second=0;
01F6 20920500 sts _second,R2
01FA .dbline 259
01FA ; minite++;
01FA 80910400 lds R24,_minite
01FE 8F5F subi R24,255 ; addi 1
0200 80930400 sts _minite,R24
0204 .dbline 260
0204 ; if(minite==60)
0204 8C33 cpi R24,60
0206 59F4 brne L38
0208 X10:
0208 .dbline 261
0208 ; {
0208 .dbline 262
0208 ; minite=0;
0208 20920400 sts _minite,R2
020C .dbline 263
020C ; hour++;
020C 80910300 lds R24,_hour
0210 8F5F subi R24,255 ; addi 1
0212 80930300 sts _hour,R24
0216 .dbline 264
0216 ; if(hour==24)
0216 8831 cpi R24,24
0218 11F4 brne L40
021A X11:
021A .dbline 265
021A ; {
021A .dbline 266
021A ; hour=0;
021A 20920300 sts _hour,R2
021E .dbline 267
021E ; }
021E L40:
021E .dbline 268
021E ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -