📄 lcd_test.lis
字号:
00AE .dbline 135
00AE ; // Ok, then we enable interrupts and timer which will simulate
00AE ; // a good old analog clock. Enjoy !
00AE ; while(1);
00AE L20:
00AE .dbline 135
00AE FFCF xjmp L19
00B0 X3:
00B0 .dbline -2
00B0 L1:
00B0 .dbline 0 ; func end
00B0 2796 adiw R28,7
00B2 0895 ret
00B4 .dbsym r o 10 I
00B4 .dbsym r j 20 I
00B4 .dbsym r i 22 I
00B4 .dbend
.area vector(rom, abs)
.org 56
0038 0C945A00 jmp _timer1_ovf_isr
.area text(rom, con, rel)
00B4 .dbfile F:\avr\lcdsd1330\lcd_test.c
00B4 .dbfunc e timer1_ovf_isr _timer1_ovf_isr fV
.even
00B4 _timer1_ovf_isr::
00B4 0A92 st -y,R0
00B6 1A92 st -y,R1
00B8 2A92 st -y,R2
00BA 3A92 st -y,R3
00BC 4A92 st -y,R4
00BE 5A92 st -y,R5
00C0 6A92 st -y,R6
00C2 7A92 st -y,R7
00C4 8A92 st -y,R8
00C6 9A92 st -y,R9
00C8 0A93 st -y,R16
00CA 1A93 st -y,R17
00CC 2A93 st -y,R18
00CE 3A93 st -y,R19
00D0 8A93 st -y,R24
00D2 9A93 st -y,R25
00D4 AA93 st -y,R26
00D6 BA93 st -y,R27
00D8 EA93 st -y,R30
00DA FA93 st -y,R31
00DC 0FB6 in R0,0x3f
00DE 0A92 st -y,R0
00E0 2797 sbiw R28,7
00E2 .dbline -1
00E2 .dbline 144
00E2 ; }
00E2 ;
00E2 ;
00E2 ; /***********************************************************************
00E2 ; Interrupt handler for Timer 1 - 1 Second
00E2 ; ***********************************************************************/
00E2 ; #pragma interrupt_handler timer1_ovf_isr:iv_TIM1_OVF
00E2 ; void timer1_ovf_isr(void)
00E2 ; {
00E2 .dbline 146
00E2 ; //TIMER1 has overflowed
00E2 ; TCNT1H = 0xE3; //reload counter high value
00E2 83EE ldi R24,227
00E4 8DBD out 0x2d,R24
00E6 .dbline 147
00E6 ; TCNT1L = 0xE1; //reload counter low value
00E6 81EE ldi R24,225
00E8 8CBD out 0x2c,R24
00EA .dbline 149
00EA ; // Draw seconds
00EA ; lcd_degree_line(ClockX,ClockY,sec,ClockIR+1,ClockOR-7,0);
00EA 2224 clr R2
00EC 2E82 std y+6,R2
00EE 81E2 ldi R24,33
00F0 90E0 ldi R25,0
00F2 9D83 std y+5,R25
00F4 8C83 std y+4,R24
00F6 83E0 ldi R24,3
00F8 9B83 std y+3,R25
00FA 8A83 std y+2,R24
00FC 20900000 lds R2,_sec
0100 30900100 lds R3,_sec+1
0104 3982 std y+1,R3
0106 2882 std y+0,R2
0108 28E7 ldi R18,120
010A 30E0 ldi R19,0
010C 00EA ldi R16,160
010E 10E0 ldi R17,0
0110 0E940000 xcall _lcd_degree_line
0114 .dbline 150
0114 ; sec = sec + 6;
0114 80910000 lds R24,_sec
0118 90910100 lds R25,_sec+1
011C 0696 adiw R24,6
011E 90930100 sts _sec+1,R25
0122 80930000 sts _sec,R24
0126 .dbline 151
0126 ; lcd_degree_line(ClockX,ClockY,sec,ClockIR+1,ClockOR-7,1);
0126 81E0 ldi R24,1
0128 8E83 std y+6,R24
012A 81E2 ldi R24,33
012C 90E0 ldi R25,0
012E 9D83 std y+5,R25
0130 8C83 std y+4,R24
0132 83E0 ldi R24,3
0134 9B83 std y+3,R25
0136 8A83 std y+2,R24
0138 20900000 lds R2,_sec
013C 30900100 lds R3,_sec+1
0140 3982 std y+1,R3
0142 2882 std y+0,R2
0144 28E7 ldi R18,120
0146 30E0 ldi R19,0
0148 00EA ldi R16,160
014A 10E0 ldi R17,0
014C 0E940000 xcall _lcd_degree_line
0150 .dbline 153
0150 ; // Draw minute
0150 ; lcd_degree_line(ClockX,ClockY,min,ClockIR+1,ClockOR-15,1);
0150 81E0 ldi R24,1
0152 8E83 std y+6,R24
0154 89E1 ldi R24,25
0156 90E0 ldi R25,0
0158 9D83 std y+5,R25
015A 8C83 std y+4,R24
015C 83E0 ldi R24,3
015E 9B83 std y+3,R25
0160 8A83 std y+2,R24
0162 20900200 lds R2,_min
0166 30900300 lds R3,_min+1
016A 3982 std y+1,R3
016C 2882 std y+0,R2
016E 28E7 ldi R18,120
0170 30E0 ldi R19,0
0172 00EA ldi R16,160
0174 10E0 ldi R17,0
0176 0E940000 xcall _lcd_degree_line
017A .dbline 155
017A ; // Some simple checking....
017A ; if (sec >= 360)
017A 80910000 lds R24,_sec
017E 90910100 lds R25,_sec+1
0182 8836 cpi R24,104
0184 E1E0 ldi R30,1
0186 9E07 cpc R25,R30
0188 C4F1 brlt L23
018A X4:
018A .dbline 156
018A ; {
018A .dbline 157
018A ; sec = 0;
018A 2224 clr R2
018C 3324 clr R3
018E 30920100 sts _sec+1,R3
0192 20920000 sts _sec,R2
0196 .dbline 158
0196 ; lcd_degree_line(ClockX,ClockY,min,ClockIR+1,ClockOR-15,0);
0196 2E82 std y+6,R2
0198 89E1 ldi R24,25
019A 90E0 ldi R25,0
019C 9D83 std y+5,R25
019E 8C83 std y+4,R24
01A0 83E0 ldi R24,3
01A2 9B83 std y+3,R25
01A4 8A83 std y+2,R24
01A6 20900200 lds R2,_min
01AA 30900300 lds R3,_min+1
01AE 3982 std y+1,R3
01B0 2882 std y+0,R2
01B2 28E7 ldi R18,120
01B4 30E0 ldi R19,0
01B6 00EA ldi R16,160
01B8 10E0 ldi R17,0
01BA 0E940000 xcall _lcd_degree_line
01BE .dbline 159
01BE ; min = min + 6;
01BE 80910200 lds R24,_min
01C2 90910300 lds R25,_min+1
01C6 0696 adiw R24,6
01C8 90930300 sts _min+1,R25
01CC 80930200 sts _min,R24
01D0 .dbline 160
01D0 ; lcd_degree_line(ClockX,ClockY,min,ClockIR+1,ClockOR-15,1);
01D0 81E0 ldi R24,1
01D2 8E83 std y+6,R24
01D4 89E1 ldi R24,25
01D6 90E0 ldi R25,0
01D8 9D83 std y+5,R25
01DA 8C83 std y+4,R24
01DC 83E0 ldi R24,3
01DE 9B83 std y+3,R25
01E0 8A83 std y+2,R24
01E2 20900200 lds R2,_min
01E6 30900300 lds R3,_min+1
01EA 3982 std y+1,R3
01EC 2882 std y+0,R2
01EE 28E7 ldi R18,120
01F0 30E0 ldi R19,0
01F2 00EA ldi R16,160
01F4 10E0 ldi R17,0
01F6 0E940000 xcall _lcd_degree_line
01FA .dbline 161
01FA ; }
01FA L23:
01FA .dbline 162
01FA ; if (min >= 360)
01FA 80910200 lds R24,_min
01FE 90910300 lds R25,_min+1
0202 8836 cpi R24,104
0204 E1E0 ldi R30,1
0206 9E07 cpc R25,R30
0208 34F0 brlt L25
020A X5:
020A .dbline 163
020A ; {
020A .dbline 164
020A ; min = 0;
020A 2224 clr R2
020C 3324 clr R3
020E 30920300 sts _min+1,R3
0212 20920200 sts _min,R2
0216 .dbline 165
0216 ; }
0216 L25:
0216 .dbline -2
0216 L22:
0216 .dbline 0 ; func end
0216 2796 adiw R28,7
0218 0990 ld R0,y+
021A 0FBE out 0x3f,R0
021C F991 ld R31,y+
021E E991 ld R30,y+
0220 B991 ld R27,y+
0222 A991 ld R26,y+
0224 9991 ld R25,y+
0226 8991 ld R24,y+
0228 3991 ld R19,y+
022A 2991 ld R18,y+
022C 1991 ld R17,y+
022E 0991 ld R16,y+
0230 9990 ld R9,y+
0232 8990 ld R8,y+
0234 7990 ld R7,y+
0236 6990 ld R6,y+
0238 5990 ld R5,y+
023A 4990 ld R4,y+
023C 3990 ld R3,y+
023E 2990 ld R2,y+
0240 1990 ld R1,y+
0242 0990 ld R0,y+
0244 1895 reti
0246 .dbend
.area data(ram, con, rel)
0004 .dbfile F:\avr\lcdsd1330\lcd_test.c
0004 L15:
0004 .blkb 23
.area idata
0004 3535313620486175676573756E642C20 .byte 53,53,49,54,32,'H,'a,'u,'g,'e,'s,'u,'n,'d,44,32
0014 4E6F7277617900 .byte 'N,'o,'r,'w,'a,'y,0
.area data(ram, con, rel)
001B .dbfile F:\avr\lcdsd1330\lcd_test.c
001B L14:
001B .blkb 19
.area idata
001B 2020205376656E6E6168617567656E20 .byte 32,32,32,'S,'v,'e,'n,'n,'a,'h,'a,'u,'g,'e,'n,32
002B 333900 .byte 51,57,0
.area data(ram, con, rel)
002E .dbfile F:\avr\lcdsd1330\lcd_test.c
002E L13:
002E .blkb 19
.area idata
002E 20426161726473656E20536F66747761 .byte 32,'B,'a,'a,'r,'d,'s,'e,'n,32,'S,'o,'f,'t,'w,'a
003E 726500 .byte 'r,'e,0
.area data(ram, con, rel)
0041 .dbfile F:\avr\lcdsd1330\lcd_test.c
0041 ; }
0041 ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -