📄 1602b_lcd_test.lis
字号:
0118 1AE0 ldi R17,10
011A 062F mov R16,R22
011C 00D0 rcall div8u
011E 402F mov R20,R16
0120 .dbline 64
0120 ; LCD_write_char(0,table[temp]);
0120 80E0 ldi R24,<_table
0122 90E0 ldi R25,>_table
0124 E42F mov R30,R20
0126 FF27 clr R31
0128 E80F add R30,R24
012A F91F adc R31,R25
012C 2491 lpm R18,Z
012E 3327 clr R19
0130 0027 clr R16
0132 1127 clr R17
0134 00D0 rcall _LCD_write_char
0136 .dbline 65
0136 ; temp=h%10;
0136 1AE0 ldi R17,10
0138 062F mov R16,R22
013A 00D0 rcall mod8u
013C 402F mov R20,R16
013E .dbline 66
013E ; LCD_write_char(0,table[temp]);
013E 80E0 ldi R24,<_table
0140 90E0 ldi R25,>_table
0142 E42F mov R30,R20
0144 FF27 clr R31
0146 E80F add R30,R24
0148 F91F adc R31,R25
014A 2491 lpm R18,Z
014C 3327 clr R19
014E 0027 clr R16
0150 1127 clr R17
0152 00D0 rcall _LCD_write_char
0154 .dbline 67
0154 ; LCD_write_char(0,':');
0154 2AE3 ldi R18,58
0156 30E0 ldi R19,0
0158 0027 clr R16
015A 1127 clr R17
015C 00D0 rcall _LCD_write_char
015E .dbline -2
015E L14:
015E 00D0 rcall pop_gset2
0160 .dbline 0 ; func end
0160 0895 ret
0162 .dbsym r temp 20 c
0162 .dbsym r h 22 c
0162 .dbend
0162 .dbfunc e write_m _write_m fV
0162 ; temp -> R20
0162 ; m -> R22
.even
0162 _write_m::
0162 00D0 rcall push_gset2
0164 602F mov R22,R16
0166 .dbline -1
0166 .dbline 71
0166 ; }
0166 ;
0166 ; void write_m(unsigned char m)
0166 ; { unsigned char temp=0;
0166 .dbline 71
0166 4427 clr R20
0168 .dbline 72
0168 ; LCD_set_xy(3,0);
0168 2227 clr R18
016A 03E0 ldi R16,3
016C 00D0 rcall _LCD_set_xy
016E .dbline 73
016E ; temp=m/10;
016E 1AE0 ldi R17,10
0170 062F mov R16,R22
0172 00D0 rcall div8u
0174 402F mov R20,R16
0176 .dbline 74
0176 ; LCD_write_char(0,table[temp]);
0176 80E0 ldi R24,<_table
0178 90E0 ldi R25,>_table
017A E42F mov R30,R20
017C FF27 clr R31
017E E80F add R30,R24
0180 F91F adc R31,R25
0182 2491 lpm R18,Z
0184 3327 clr R19
0186 0027 clr R16
0188 1127 clr R17
018A 00D0 rcall _LCD_write_char
018C .dbline 75
018C ; temp=m%10;
018C 1AE0 ldi R17,10
018E 062F mov R16,R22
0190 00D0 rcall mod8u
0192 402F mov R20,R16
0194 .dbline 76
0194 ; LCD_write_char(0,table[temp]);
0194 80E0 ldi R24,<_table
0196 90E0 ldi R25,>_table
0198 E42F mov R30,R20
019A FF27 clr R31
019C E80F add R30,R24
019E F91F adc R31,R25
01A0 2491 lpm R18,Z
01A2 3327 clr R19
01A4 0027 clr R16
01A6 1127 clr R17
01A8 00D0 rcall _LCD_write_char
01AA .dbline 77
01AA ; LCD_write_char(0,':');
01AA 2AE3 ldi R18,58
01AC 30E0 ldi R19,0
01AE 0027 clr R16
01B0 1127 clr R17
01B2 00D0 rcall _LCD_write_char
01B4 .dbline -2
01B4 L15:
01B4 00D0 rcall pop_gset2
01B6 .dbline 0 ; func end
01B6 0895 ret
01B8 .dbsym r temp 20 c
01B8 .dbsym r m 22 c
01B8 .dbend
01B8 .dbfunc e write_s _write_s fV
01B8 ; temp -> R20
01B8 ; s -> R22
.even
01B8 _write_s::
01B8 00D0 rcall push_gset2
01BA 602F mov R22,R16
01BC .dbline -1
01BC .dbline 81
01BC ; }
01BC ;
01BC ; void write_s(unsigned char s)
01BC ; { unsigned char temp=0;
01BC .dbline 81
01BC 4427 clr R20
01BE .dbline 82
01BE ; LCD_set_xy(6,0);
01BE 2227 clr R18
01C0 06E0 ldi R16,6
01C2 00D0 rcall _LCD_set_xy
01C4 .dbline 83
01C4 ; temp=s/10;
01C4 1AE0 ldi R17,10
01C6 062F mov R16,R22
01C8 00D0 rcall div8u
01CA 402F mov R20,R16
01CC .dbline 84
01CC ; LCD_write_char(0,table[temp]);
01CC 80E0 ldi R24,<_table
01CE 90E0 ldi R25,>_table
01D0 E42F mov R30,R20
01D2 FF27 clr R31
01D4 E80F add R30,R24
01D6 F91F adc R31,R25
01D8 2491 lpm R18,Z
01DA 3327 clr R19
01DC 0027 clr R16
01DE 1127 clr R17
01E0 00D0 rcall _LCD_write_char
01E2 .dbline 85
01E2 ; temp=s%10;
01E2 1AE0 ldi R17,10
01E4 062F mov R16,R22
01E6 00D0 rcall mod8u
01E8 402F mov R20,R16
01EA .dbline 86
01EA ; LCD_write_char(0,table[temp]);
01EA 80E0 ldi R24,<_table
01EC 90E0 ldi R25,>_table
01EE E42F mov R30,R20
01F0 FF27 clr R31
01F2 E80F add R30,R24
01F4 F91F adc R31,R25
01F6 2491 lpm R18,Z
01F8 3327 clr R19
01FA 0027 clr R16
01FC 1127 clr R17
01FE 00D0 rcall _LCD_write_char
0200 .dbline -2
0200 L16:
0200 00D0 rcall pop_gset2
0202 .dbline 0 ; func end
0202 0895 ret
0204 .dbsym r temp 20 c
0204 .dbsym r s 22 c
0204 .dbend
0204 .dbfunc e main _main fV
0204 ; i -> R20
.even
0204 _main::
0204 .dbline -1
0204 .dbline 90
0204 ; }
0204 ;
0204 ; void main(void)
0204 ; { unsigned char i=0b000001;
0204 .dbline 90
0204 41E0 ldi R20,1
0206 .dbline 92
0206 ;
0206 ; OSCCAL=0XBA;
0206 8AEB ldi R24,186
0208 81BF out 0x31,R24
020A .dbline 94
020A ;
020A ; DDRD |= LCD_DATA | LCD_RW;
020A 81B3 in R24,0x11
020C 886F ori R24,248
020E 81BB out 0x11,R24
0210 .dbline 95
0210 ; DDRC |= LCD_RS | LCD_EN;
0210 84B3 in R24,0x14
0212 8063 ori R24,48
0214 84BB out 0x14,R24
0216 .dbline 97
0216 ;
0216 ; LCD_init();
0216 00D0 rcall _LCD_init
0218 .dbline 98
0218 ; LCD_write_char(0x01,0);
0218 2227 clr R18
021A 3327 clr R19
021C 01E0 ldi R16,1
021E 10E0 ldi R17,0
0220 00D0 rcall _LCD_write_char
0222 .dbline 100
0222 ; //stop errant interrupts until set up
0222 ; CLI(); //disable all interrupts
0222 F894 cli
0224 .dbline 101
0224 ; timer1_init();
0224 EDDE rcall _timer1_init
0226 .dbline 103
0226 ;
0226 ; MCUCR = 0x00;
0226 2224 clr R2
0228 25BE out 0x35,R2
022A .dbline 104
022A ; GICR = 0x00;
022A 2BBE out 0x3b,R2
022C .dbline 105
022C ; TIMSK = 0x04; //timer interrupt sources
022C 84E0 ldi R24,4
022E 89BF out 0x39,R24
0230 .dbline 106
0230 ; SEI(); //re-enable interrupts
0230 7894 sei
0232 .dbline 108
0232 ; //all peripherals are now initialized
0232 ; LCD_set_xy(3,0);
0232 2227 clr R18
0234 03E0 ldi R16,3
0236 00D0 rcall _LCD_set_xy
0238 .dbline 110
0238 ;
0238 ; LCD_set_xy(6,0);
0238 2227 clr R18
023A 06E0 ldi R16,6
023C 00D0 rcall _LCD_set_xy
023E .dbline 111
023E ; LCD_write_char(0,':');
023E 2AE3 ldi R18,58
0240 30E0 ldi R19,0
0242 0027 clr R16
0244 1127 clr R17
0246 00D0 rcall _LCD_write_char
0248 L18:
0248 .dbline 114
0248 .dbline 114
0248 .dbline 114
0248 L19:
0248 .dbline 113
0248 FFCF rjmp L18
024A X0:
024A .dbline -2
024A L17:
024A .dbline 0 ; func end
024A 0895 ret
024C .dbsym r i 20 c
024C .dbend
.area bss(ram, con, rel)
0000 .dbfile I:\AVR\1602\MEGA8-1602\CLOCKA~1\test6\1602B_LCD_TEST.c
0000 _ch::
0000 .blkb 1
0001 .dbsym e ch _ch c
0001 _temp1::
0001 .blkb 1
0002 .dbsym e temp1 _temp1 c
.area data(ram, con, rel)
0004 .dbfile I:\AVR\1602\MEGA8-1602\CLOCKA~1\test6\1602B_LCD_TEST.c
0004 L13:
0004 .blkb 17
.area idata
0004 20202020202020202020202020202020 .byte 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32
0014 00 .byte 0
.area data(ram, con, rel)
0015 .dbfile I:\AVR\1602\MEGA8-1602\CLOCKA~1\test6\1602B_LCD_TEST.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -