📄 lcd16x2.lst
字号:
; return *LCD_IO;
0C18 2FE4 mov R30,R20
0C19 2FF5 mov R31,R21
0C1A 8100 ldd R16,z+0
0C1B 2711 clr R17
0C1C L64:
0C1C 940E06D5 call pop_gset1
0C1E 9508 ret
0C1F .dbline 186}
0C1F .dbsym r LCD_IO 20 pc
0C1F .dbsym r select 16 c
.area bss
--- 0000 .dbfile C:\Documents\Software\AVR\lcd16x2\code\lcd.c
--- 0000 _LCDQueueStr2:
--- 0000 .blkb 17
--- 0009 .dbfile c:/documents/software/avr/lcd16x2/include/lcd.h
--- 0009 .dbsym s LCDQueueStr2 _LCDQueueStr2 Ac[17:17]
--- 0009 _LCDQueueStr1:
--- 0009 .blkb 17
--- 0011 .dbsym s LCDQueueStr1 _LCDQueueStr1 Ac[17:17]
--- 0011 _LCDStr2:
--- 0011 .blkb 17
--- 001A .dbsym s LCDStr2 _LCDStr2 Ac[17:17]
--- 001A _LCDStr1:
--- 001A .blkb 17
--- 0022 .dbsym s LCDStr1 _LCDStr1 Ac[17:17]
--- 0022 _LCDLine:
--- 0022 .blkb 1
--- 0023 .dbsym s LCDLine _LCDLine c
--- 0023 _LCDCounter:
--- 0023 .blkb 1
--- 0023 .dbsym s LCDCounter _LCDCounter c
.area data
--- 0000 .dbfile c:/documents/software/avr/lcd16x2/include/lcd.h
--- 0000 L17:
--- 0000 .blkb 3
.area idata
--- 0000 257300 .byte 37,'s,0
.area data
--- 0001 .dbfile c:/documents/software/avr/lcd16x2/include/lcd.h
.module main.c
.text
--- 0000 .dbfile C:\Documents\Software\AVR\lcd16x2\code\main.c
.area text
--- 0000 .dbfile C:\Documents\Software\AVR\lcd16x2\code\main.c
--- 0000 .dbfunc s main _main fI
.even
0C1F _main::
0C1F .dbline 16{
; /* ATmega103 main.c file
;
; Author : Robert Stuart
; Company : PDL Industries
; Date of Creation : 13 April 2000
; Tested : Not yet
;
; Function :
; Updates the LCD when not servicing interrupts.
; */
;
; /* include */
; #include "main.h"
;
; int main( void )
; {
0C1F .dbline 17
; AVRInitialise(); /* initial all ports, registers and parameters */
0C1F 940E0A68 call _AVRInitialise
0C21 940C0C27 jmp L3
0C23 L2:
0C23 .dbline 20
0C23 .dbline 21
0C23 94F8 bclr 7
0C24 .dbline 23
0C24 940E0B12 call _RefreshLCD
0C26 .dbline 25
0C26 9478 bset 7
0C27 .dbline 26
0C27 L3:
0C27 .dbline 19
;
; while ( TRUE ) /* forever */
0C27 940C0C23 jmp L2
0C29 X0:
0C29 .dbline 28
; {
; GID;
;
; RefreshLCD(); /* update the lcd */
;
; GIE;
; }
;
; return 0;
0C29 2700 clr R16
0C2A 2711 clr R17
0C2B L1:
0C2B 9508 ret
0C2C .dbline 29}
.module runtime.c
.text
--- 0000 .dbfile C:\Documents\Software\AVR\lcd16x2\code\runtime.c
.area vector(abs)
.org 56
--- 001C 0C941200 jmp _RuntimeInterrupt
.area text
--- 0000 .dbfile C:\Documents\Software\AVR\lcd16x2\code\runtime.c
--- 0000 .dbfunc s RuntimeInitialise _RuntimeInitialise fI
.even
0C2C _RuntimeInitialise::
0C2C .dbline 15{
; /* ATmega103 runtime.c file
;
; Author : Robert Stuart
; Company : PDL Industries
; Date of Creation : 21 July 1999
; Tested : not yet
;
; Function :
; */
;
; /* include */
; #include "runtime.h"
;
; void RuntimeInitialise( void )
; {
0C2C .dbline 16
; TCCR1B = 0; /* Stop T1 */
0C2C 2422 clr R2
0C2D BC2E out 0x2e,R2
0C2E .dbline 17
; TCNT1 = 0; /* Clear T1 */
0C2E 2433 clr R3
0C2F 9230004D sts 76+1,R3
0C31 9220004C sts 76,R2
0C33 .dbline 18
; OCR1A = _1MS_INTERRUPT; /* Set Compare A - 1ms for a 6MHz clock */
0C33 E780 ldi R24,112
0C34 E197 ldi R25,23
0C35 9390004B sts 74+1,R25
0C37 9380004A sts 74,R24
0C39 .dbline 19
; TIMSK = BIT(OCIE1A); /* Compare A interrupt enabled */
0C39 E180 ldi R24,16
0C3A BF87 out 0x37,R24
0C3B .dbline 20
; TCCR1B = BIT(CS10) | BIT(CTC1);
0C3B E089 ldi R24,9
0C3C BD8E out 0x2e,R24
0C3D .dbline 21}
; }
0C3D L1:
0C3D 9508 ret
.area bss
--- 0000 .dbfile C:\Documents\Software\AVR\lcd16x2\code\runtime.c
--- 0000 L3:
--- 0000 .blkb 2
--- 0001 L4:
--- 0001 .blkb 1
.area text
--- 0012 .dbfile C:\Documents\Software\AVR\lcd16x2\code\runtime.c
--- 0012 .dbfunc s RuntimeInterrupt _RuntimeInterrupt fI
--- 0012 .dbsym s seconds L4 c
--- 0012 .dbsym s delay L3 I
; str -> y+2
.even
0C3E _RuntimeInterrupt::
0C3E 940E06A4 call push_lset
0C40 9763 sbiw R28,19
0C41 .dbline 24{
;
; void RuntimeInterrupt( void )
; {
0C41 .dbline 29
; static int delay;
; static char seconds;
; char str[17];
;
; if ( ++delay == _1000MS )
0C41 91900129 lds R25,L3+1
0C43 91800128 lds R24,L3
0C45 9601 adiw R24,1
0C46 2E28 mov R2,R24
0C47 2E39 mov R3,R25
0C48 92300129 sts L3+1,R3
0C4A 92200128 sts L3,R2
0C4C 2D82 mov R24,R2
0C4D 2D93 mov R25,R3
0C4E 3E88 cpi R24,232
0C4F E083 ldi R24,3
0C50 0798 cpc R25,R24
0C51 F549 brne L5
0C52 .dbline 30
; {
0C52 .dbline 31
; if ( ++seconds == 60 )
0C52 9180012A lds R24,L4
0C54 5F8F subi R24,255 ; addi 1
0C55 2E28 mov R2,R24
0C56 9220012A sts L4,R2
0C58 2D82 mov R24,R2
0C59 338C cpi R24,60
0C5A F419 brne L7
0C5B .dbline 32
; seconds = 0;
0C5B 2422 clr R2
0C5C 9220012A sts L4,R2
0C5E L7:
0C5E .dbline 33
; sprintf( str, "Seconds %d", seconds);
0C5E 9020012A lds R2,L4
0C60 2433 clr R3
0C61 8228 std y+0,R2
0C62 8239 std y+1,R3
0C63 ED25 ldi R18,<L9
0C64 E030 ldi R19,>L9
0C65 2F8C mov R24,R28
0C66 2F9D mov R25,R29
0C67 9602 adiw R24,2
0C68 2F08 mov R16,R24
0C69 2F19 mov R17,R25
0C6A 940E070B call _sprintf
0C6C .dbline 34
; LCDPrintf( str, "ATmega103" );
0C6C EC2B ldi R18,<L10
0C6D E030 ldi R19,>L10
0C6E 2F8C mov R24,R28
0C6F 2F9D mov R25,R29
0C70 9602 adiw R24,2
0C71 2F08 mov R16,R24
0C72 2F19 mov R17,R25
0C73 940E0A7F call _LCDPrintf
0C75 .dbline 35
; delay = 0;
0C75 2422 clr R2
0C76 2433 clr R3
0C77 92300129 sts L3+1,R3
0C79 92200128 sts L3,R2
0C7B .dbline 36
; }
0C7B L5:
0C7B .dbline 38
;
; DelayLCDStartup();
0C7B 940E0AD2 call _DelayLCDStartup
0C7D .dbline 40
;
; WDR;
0C7D 95A8 WDR
0C7E .dbline 41}
; }
0C7E L2:
0C7E 9663 adiw R28,19
0C7F 940E06BB call pop_lset
0C81 9518 reti
0C82 .dbsym l str 2 Ac[17:17]
.area data
--- 0000 .dbfile C:\Documents\Software\AVR\lcd16x2\code\runtime.c
--- 0000 L10:
--- 0000 .blkb 10
.area idata
--- 0000 41546D65676131303300 .byte 'A,'T,'m,'e,'g,'a,49,48,51,0
.area data
--- 0005 .dbfile C:\Documents\Software\AVR\lcd16x2\code\runtime.c
--- 0005 L9:
--- 0005 .blkb 11
.area idata
--- 0005 5365636F6E647320256400 .byte 'S,'e,'c,'o,'n,'d,'s,32,37,'d,0
.area data
--- 000A .dbfile C:\Documents\Software\AVR\lcd16x2\code\runtime.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -