📄 start.lis
字号:
.module Start.c
.area data(ram, con, rel)
0000 _SysCount::
0000 .blkb 1
.area idata
0000 00 .byte 0
.area data(ram, con, rel)
0001 .dbfile G:\Demo/Define.h
0001 .dbsym e SysCount _SysCount c
0001 _TimeCount::
0001 .blkb 1
.area idata
0001 00 .byte 0
.area data(ram, con, rel)
0002 .dbfile G:\Demo/Define.h
0002 .dbsym e TimeCount _TimeCount c
0002 _ScanKeyFlag::
0002 .blkb 1
.area idata
0002 00 .byte 0
.area data(ram, con, rel)
0003 .dbfile G:\Demo/Define.h
0003 .dbsym e ScanKeyFlag _ScanKeyFlag c
0003 _DispTimeFlag::
0003 .blkb 1
.area idata
0003 00 .byte 0
.area data(ram, con, rel)
0004 .dbfile G:\Demo/Define.h
0004 .dbsym e DispTimeFlag _DispTimeFlag c
0004 _TimeAddFlag::
0004 .blkb 1
.area idata
0004 00 .byte 0
.area data(ram, con, rel)
0005 .dbfile G:\Demo/Define.h
0005 .dbsym e TimeAddFlag _TimeAddFlag c
.area text(rom, con, rel)
0000 .dbfile G:\Demo/Define.h
0000 .dbfile G:\Demo/LCD_1602.h
0000 .dbfunc e LCD_init _LCD_init fV
.even
0000 _LCD_init::
0000 .dbline -1
0000 .dbline 48
0000 ; #include <iom16v.h>
0000 ; #include <macros.h>
0000 ;
0000 ; #include "Define.h"
0000 ; #include "LCD_1602.h"
0000 ; #include "Deal.h"
0000 ;
0000 ;
0000 ; #pragma interrupt_handler Timer1:9
0000 ; void Timer1(void)
0000 ; { SysTCNT = SysTime;
0000 ; ScanKeyFlag = 1;
0000 ;
0000 ; SysCount++;
0000 ; if( SysCount == 50 )
0000 ; { DispTimeFlag = 1; SysCount = 0; }
0000 ;
0000 ; TimeCount++;
0000 ; if( TimeCount == 100 )
0000 ; { TimeAddFlag = 1; TimeCount = 0; }
0000 ; }
0000 ;
0000 ; void main(void)
0000 ; { SysIntial();
0000 ; //LCD_write_string(0,0,"Welcome");
0000 ; while(1)
0000 ; {
0000 ; if( ScanKeyFlag == 1 )
0000 ; { if( ScanKey() == 1 )
0000 ; { DealKey(); }
0000 ; ScanKeyFlag = 0;
0000 ; }
0000 ;
0000 ; if( DispTimeFlag == 1 )
0000 ; { DispTime();
0000 ; DispTimeFlag = 0;
0000 ; }
0000 ;
0000 ; if( TimeAddFlag == 1 )
0000 ; { TimeAdd(); TimeAddFlag = 0; }
0000 ; }
0000 ; }
0000 ;
0000 ; void SysIntial(void)
0000 ; { InitalKey();
0000 ; LCD_init();
0000 ;
0000 ; SysTCNT = SysTime; //计算溢出个数
0000 .dbline 49
0000 ; SysTIMSK |= 1 << TOIE1; //开启系统时钟溢出中断
0000 D19A sbi 0x1a,1
0002 .dbline 49
0002 D998 cbi 0x1b,1
0004 .dbline 50
0004 ; SREG |= 0x80; //enable grobal interrupt
0004 D29A sbi 0x1a,2
0006 .dbline 50
0006 DA98 cbi 0x1b,2
0008 .dbline 51
0008 ; SysTCCR = SysIspEn;
0008 D39A sbi 0x1a,3
000A .dbline 51
000A DB98 cbi 0x1b,3
000C .dbline 53
000C ; }
000C ; }
000C 8AB3 in R24,0x1a
000E 806F ori R24,240
0010 8ABB out 0x1a,R24
0012 .dbline 55
0012 ; }
0012 ; }
0012 09E1 ldi R16,25
0014 10E0 ldi R17,0
0016 34D1 xcall _delay_nms
0018 .dbline 57
0018 ; }
0018 ; }
0018 2227 clr R18
001A 3327 clr R19
001C 08E2 ldi R16,40
001E 10E0 ldi R17,0
0020 16D0 xcall _LCD_write_char
0022 .dbline 58
0022 ; }
0022 2227 clr R18
0024 3327 clr R19
0026 0CE0 ldi R16,12
0028 10E0 ldi R17,0
002A 11D0 xcall _LCD_write_char
002C .dbline 59
002C ; }
002C 2227 clr R18
002E 3327 clr R19
0030 01E0 ldi R16,1
0032 10E0 ldi R17,0
0034 0CD0 xcall _LCD_write_char
0036 .dbline 60
0036 ; }
0036 2227 clr R18
0038 3327 clr R19
003A 06E0 ldi R16,6
003C 10E0 ldi R17,0
003E 07D0 xcall _LCD_write_char
0040 .dbline -2
0040 L2:
0040 .dbline 0 ; func end
0040 0895 ret
0042 .dbend
0042 .dbfunc e LCD_en_write _LCD_en_write fV
.even
0042 _LCD_en_write::
0042 .dbline -1
0042 .dbline 64
0042 ; }
0042 ; }
0042 ; }
0042 ; }
0042 .dbline 64
0042 D99A sbi 0x1b,1
0044 .dbline 65
0044 ; }
0044 02E0 ldi R16,2
0046 10E0 ldi R17,0
0048 02D1 xcall _delay_nus
004A .dbline 66
004A ; }
004A D998 cbi 0x1b,1
004C .dbline -2
004C L3:
004C .dbline 0 ; func end
004C 0895 ret
004E .dbend
004E .dbfunc e LCD_write_char _LCD_write_char fc
004E ; data_temp -> R22,R23
004E ; command_temp -> R20,R21
004E ; data -> R12,R13
004E ; command -> R10,R11
.even
004E _LCD_write_char::
004E 0E940000 xcall push_gset4
0052 6901 movw R12,R18
0054 5801 movw R10,R16
0056 .dbline -1
0056 .dbline 80
0056 ; }
0056 ; }
0056 ; }
0056 ; }
0056 ; }
0056 ; }
0056 ; }
0056 ; }
0056 ; }
0056 ; }
0056 ; }
0056 ; }
0056 ; }
0056 ; }
0056 .dbline 82
0056 ; }
0056 ; }
0056 A501 movw R20,R10
0058 .dbline 83
0058 ; }
0058 B601 movw R22,R12
005A .dbline 85
005A ; }
005A ; }
005A 5CD0 xcall _LCD_wait_Ready
005C 0130 cpi R16,1
005E 11F4 brne L5
0060 .dbline 86
0060 ; }
0060 .dbline 86
0060 01E0 ldi R16,1
0062 55C0 xjmp L4
0064 L5:
0064 .dbline 88
0064 ; }
0064 ; }
0064 DA98 cbi 0x1b,2
0066 .dbline 89
0066 ; }
0066 AA20 tst R10
0068 91F4 brne L7
006A BB20 tst R11
006C 81F4 brne L7
006E X0:
006E .dbline 90
006E ; }
006E .dbline 90
006E DB9A sbi 0x1b,3
0070 .dbline 91
0070 ; }
0070 0000 nop
0072 .dbline 92
0072 ; }
0072 8BB3 in R24,0x1b
0074 8F70 andi R24,15
0076 8BBB out 0x1b,R24
0078 .dbline 93
0078 ; }
0078 0000 nop
007A .dbline 95
007A ; }
007A ; }
007A CB01 movw R24,R22
007C 807F andi R24,240
007E 9070 andi R25,0
0080 2BB2 in R2,0x1b
0082 3324 clr R3
0084 282A or R2,R24
0086 392A or R3,R25
0088 2BBA out 0x1b,R2
008A .dbline 96
008A ; }
008A 0000 nop
008C .dbline 97
008C ; }
008C 0FC0 xjmp L8
008E L7:
008E .dbline 99
008E ; }
008E ; }
008E .dbline 99
008E DB98 cbi 0x1b,3
0090 .dbline 100
0090 ; }
0090 0000 nop
0092 .dbline 101
0092 ; }
0092 8BB3 in R24,0x1b
0094 8F70 andi R24,15
0096 8BBB out 0x1b,R24
0098 .dbline 102
0098 ; }
0098 0000 nop
009A .dbline 104
009A ; }
009A ; }
009A CA01 movw R24,R20
009C 807F andi R24,240
009E 9070 andi R25,0
00A0 2BB2 in R2,0x1b
00A2 3324 clr R3
00A4 282A or R2,R24
00A6 392A or R3,R25
00A8 2BBA out 0x1b,R2
00AA .dbline 105
00AA ; }
00AA 0000 nop
00AC .dbline 106
00AC ; }
00AC L8:
00AC .dbline 107
00AC ; }
00AC CADF xcall _LCD_en_write
00AE .dbline 109
00AE ; }
00AE ; }
00AE 440F lsl R20
00B0 551F rol R21
00B2 440F lsl R20
00B4 551F rol R21
00B6 440F lsl R20
00B8 551F rol R21
00BA 440F lsl R20
00BC 551F rol R21
00BE .dbline 110
00BE ; }
00BE 660F lsl R22
00C0 771F rol R23
00C2 660F lsl R22
00C4 771F rol R23
00C6 660F lsl R22
00C8 771F rol R23
00CA 660F lsl R22
00CC 771F rol R23
00CE .dbline 112
00CE ; }
00CE ; }
00CE 8BB3 in R24,0x1b
00D0 8F70 andi R24,15
00D2 8BBB out 0x1b,R24
00D4 .dbline 113
00D4 ; }
00D4 AA20 tst R10
00D6 59F4 brne L9
00D8 BB20 tst R11
00DA 49F4 brne L9
00DC X1:
00DC .dbline 114
00DC ; }
00DC .dbline 115
00DC ; }
00DC CB01 movw R24,R22
00DE 807F andi R24,240
00E0 9070 andi R25,0
00E2 2BB2 in R2,0x1b
00E4 3324 clr R3
00E6 282A or R2,R24
00E8 392A or R3,R25
00EA 2BBA out 0x1b,R2
00EC .dbline 116
00EC ; }
00EC 08C0 xjmp L10
00EE L9:
00EE .dbline 118
00EE ; }
00EE ; }
00EE .dbline 119
00EE ; }
00EE CA01 movw R24,R20
00F0 807F andi R24,240
00F2 9070 andi R25,0
00F4 2BB2 in R2,0x1b
00F6 3324 clr R3
00F8 282A or R2,R24
00FA 392A or R3,R25
00FC 2BBA out 0x1b,R2
00FE .dbline 120
00FE ; }
00FE L10:
00FE .dbline 121
00FE ; }
00FE A1DF xcall _LCD_en_write
0100 .dbline 123
0100 ; }
0100 ; }
0100 DA9A sbi 0x1b,2
0102 .dbline 124
0102 ; }
0102 0000 nop
0104 .dbline 125
0104 ; }
0104 88E0 ldi R24,8
0106 2BB2 in R2,0x1b
0108 2826 eor R2,R24
010A 2BBA out 0x1b,R2
010C .dbline 127
010C ; }
010C ; }
010C 0027 clr R16
010E .dbline -2
010E L4:
010E 0E940000 xcall pop_gset4
0112 .dbline 0 ; func end
0112 0895 ret
0114 .dbsym r data_temp 22 i
0114 .dbsym r command_temp 20 i
0114 .dbsym r data 12 i
0114 .dbsym r command 10 i
0114 .dbend
0114 .dbfunc e LCD_wait_Ready _LCD_wait_Ready fc
0114 ; temp -> R16,R17
.even
0114 _LCD_wait_Ready::
0114 .dbline -1
0114 .dbline 131
0114 ; }
0114 ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -