⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1602.lis

📁 4线接法的液晶1602+MEGA8的源程序 包括源文件和PROTUES仿真文件
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00A6 482F              mov R20,R24
 00A8                   .dbline 87
 00A8           ; }
 00A8 82B3              in R24,0x12
 00AA 8F70              andi R24,15
 00AC 82BB              out 0x12,R24
 00AE                   .dbline 88
 00AE           ; }
 00AE 842F              mov R24,R20
 00B0 807F              andi R24,240
 00B2 22B2              in R2,0x12
 00B4 282A              or R2,R24
 00B6 22BA              out 0x12,R2
 00B8                   .dbline 89
 00B8           ; }
 00B8 DEDF              rcall _LCD_en_write
 00BA                   .dbline -2
 00BA           L19:
 00BA 00D0              rcall pop_gset1
 00BC                   .dbline 0 ; func end
 00BC 0895              ret
 00BE                   .dbsym r command 20 c
 00BE                   .dbend
 00BE                   .dbfunc e LCD_write_data _LCD_write_data fV
 00BE           ;           data -> R20
                        .even
 00BE           _LCD_write_data::
 00BE 00D0              rcall push_gset1
 00C0 402F              mov R20,R16
 00C2                   .dbline -1
 00C2                   .dbline 94
 00C2           ; }
 00C2           ; }
 00C2           ; }
 00C2           ; }
 00C2           ; }
 00C2                   .dbline 95
 00C2           ; }
 00C2 00E1              ldi R16,16
 00C4 10E0              ldi R17,0
 00C6 9EDF              rcall _delay_nus
 00C8                   .dbline 96
 00C8           ; }
 00C8 909A              sbi 0x12,0
 00CA                   .dbline 97
 00CA           ; }
 00CA 82B3              in R24,0x12
 00CC 8F70              andi R24,15
 00CE 82BB              out 0x12,R24
 00D0                   .dbline 98
 00D0           ; }
 00D0 842F              mov R24,R20
 00D2 807F              andi R24,240
 00D4 22B2              in R2,0x12
 00D6 282A              or R2,R24
 00D8 22BA              out 0x12,R2
 00DA                   .dbline 99
 00DA           ; }
 00DA CDDF              rcall _LCD_en_write
 00DC                   .dbline 100
 00DC           ; }
 00DC 842F              mov R24,R20
 00DE 8F70              andi R24,#0x0F
 00E0 8295              swap R24
 00E2 482F              mov R20,R24
 00E4                   .dbline 101
 00E4           ; }
 00E4 82B3              in R24,0x12
 00E6 8F70              andi R24,15
 00E8 82BB              out 0x12,R24
 00EA                   .dbline 102
 00EA           ; }
 00EA 842F              mov R24,R20
 00EC 807F              andi R24,240
 00EE 22B2              in R2,0x12
 00F0 282A              or R2,R24
 00F2 22BA              out 0x12,R2
 00F4                   .dbline 103
 00F4           ; }
 00F4 C0DF              rcall _LCD_en_write
 00F6                   .dbline -2
 00F6           L20:
 00F6 00D0              rcall pop_gset1
 00F8                   .dbline 0 ; func end
 00F8 0895              ret
 00FA                   .dbsym r data 20 c
 00FA                   .dbend
 00FA                   .dbfunc e LCD_set_xy _LCD_set_xy fV
 00FA           ;        address -> R20
 00FA           ;              y -> R20
 00FA           ;              x -> R22
                        .even
 00FA           _LCD_set_xy::
 00FA 00D0              rcall push_gset2
 00FC 422F              mov R20,R18
 00FE 602F              mov R22,R16
 0100                   .dbline -1
 0100                   .dbline 107
 0100           ; }
 0100           ; }
 0100           ; }
 0100           ; }
 0100                   .dbline 109
 0100           ; }
 0100           ; }
 0100 4423              tst R20
 0102 19F4              brne L22
 0104                   .dbline 109
 0104 462F              mov R20,R22
 0106 4058              subi R20,128    ; addi 128
 0108 02C0              rjmp L23
 010A           L22:
 010A                   .dbline 110
 010A           ; }
 010A 462F              mov R20,R22
 010C 4054              subi R20,64    ; addi 192
 010E           L23:
 010E                   .dbline 111
 010E           ; }
 010E 042F              mov R16,R20
 0110 B8DF              rcall _LCD_write_command
 0112                   .dbline -2
 0112           L21:
 0112 00D0              rcall pop_gset2
 0114                   .dbline 0 ; func end
 0114 0895              ret
 0116                   .dbsym r address 20 c
 0116                   .dbsym r y 20 c
 0116                   .dbsym r x 22 c
 0116                   .dbend
 0116                   .dbfunc e LCD_write_string _LCD_write_string fV
 0116           ;              s -> R20,R21
 0116           ;              Y -> R10
 0116           ;              X -> R22
                        .even
 0116           _LCD_write_string::
 0116 00D0              rcall push_gset3
 0118 A22E              mov R10,R18
 011A 602F              mov R22,R16
 011C 4E81              ldd R20,y+6
 011E 5F81              ldd R21,y+7
 0120                   .dbline -1
 0120                   .dbline 115
 0120           ; }
 0120           ; }
 0120           ; }
 0120           ; }
 0120                   .dbline 116
 0120           ; }
 0120 2A2D              mov R18,R10
 0122 062F              mov R16,R22
 0124 EADF              rcall _LCD_set_xy
 0126 05C0              rjmp L26
 0128           L25:
 0128                   .dbline 118
 0128                   .dbline 119
 0128 FA01              movw R30,R20
 012A 0081              ldd R16,z+0
 012C C8DF              rcall _LCD_write_data
 012E                   .dbline 120
 012E 4F5F              subi R20,255  ; offset = 1
 0130 5F4F              sbci R21,255
 0132                   .dbline 121
 0132           L26:
 0132                   .dbline 117
 0132           ; }
 0132 FA01              movw R30,R20
 0134 2080              ldd R2,z+0
 0136 2220              tst R2
 0138 B9F7              brne L25
 013A                   .dbline -2
 013A           L24:
 013A 00D0              rcall pop_gset3
 013C                   .dbline 0 ; func end
 013C 0895              ret
 013E                   .dbsym r s 20 pc
 013E                   .dbsym r Y 10 c
 013E                   .dbsym r X 22 c
 013E                   .dbend
 013E                   .dbfunc e LCD_write_char _LCD_write_char fV
 013E           ;           data -> y+4
 013E           ;              Y -> R22
 013E           ;              X -> R20
                        .even
 013E           _LCD_write_char::
 013E 00D0              rcall push_gset2
 0140 622F              mov R22,R18
 0142 402F              mov R20,R16
 0144                   .dbline -1
 0144                   .dbline 127
 0144           ; }
 0144           ; }
 0144           ; }
 0144           ; }
 0144           ; }
 0144           ; }
 0144           ; }
 0144           ; }
 0144           ; }
 0144           ; }
 0144                   .dbline 128
 0144           ; }
 0144 262F              mov R18,R22
 0146 042F              mov R16,R20
 0148 D8DF              rcall _LCD_set_xy
 014A                   .dbline 129
 014A           ; }
 014A 0C81              ldd R16,y+4
 014C B8DF              rcall _LCD_write_data
 014E                   .dbline -2
 014E           L28:
 014E 00D0              rcall pop_gset2
 0150                   .dbline 0 ; func end
 0150 0895              ret
 0152                   .dbsym l data 4 c
 0152                   .dbsym r Y 22 c
 0152                   .dbsym r X 20 c
 0152                   .dbend
 0152                   .dbfile 1602.c
 0152                   .dbfunc e main _main fV
                        .even
 0152           _main::
 0152 2297              sbiw R28,2
 0154                   .dbline -1
 0154                   .dbline 6
 0154                   .dbline 7
 0154 7BDF              rcall _LCD_init
 0156                   .dbline 9
 0156 80E0              ldi R24,<L30
 0158 90E0              ldi R25,>L30
 015A 9983              std y+1,R25
 015C 8883              std y+0,R24
 015E 2227              clr R18
 0160 02E0              ldi R16,2
 0162 D9DF              rcall _LCD_write_string
 0164 11C0              rjmp L32
 0166           L31:
 0166                   .dbline 11
 0166                   .dbline 13
 0166 80E0              ldi R24,<L34
 0168 90E0              ldi R25,>L34
 016A 9983              std y+1,R25
 016C 8883              std y+0,R24
 016E 21E0              ldi R18,1
 0170 02E0              ldi R16,2
 0172 D1DF              rcall _LCD_write_string
 0174                   .dbline 15
 0174 88E3              ldi R24,56
 0176 8883              std y+0,R24
 0178 2227              clr R18
 017A 0CE0              ldi R16,12
 017C E0DF              rcall _LCD_write_char
 017E                   .dbline 16
 017E 88E3              ldi R24,56
 0180 8883              std y+0,R24
 0182 2227              clr R18
 0184 0DE0              ldi R16,13
 0186 DBDF              rcall _LCD_write_char
 0188                   .dbline 17
 0188           L32:
 0188                   .dbline 10
 0188 EECF              rjmp L31
 018A           X0:
 018A                   .dbline -2
 018A           L29:
 018A 2296              adiw R28,2
 018C                   .dbline 0 ; func end
 018C 0895              ret
 018E                   .dbend
                        .area data(ram, con, rel)
 0000                   .dbfile 1602.c
 0000           L34:
 0000                   .blkb 11
                        .area idata
 0000 3132333435363738393000    .byte 49,50,51,52,53,54,55,56,57,48,0
                        .area data(ram, con, rel)
 000B                   .dbfile 1602.c
 000B           L30:
 000B                   .blkb 8
                        .area idata
 000B 68656C6C6F212100  .byte 'h,'e,'l,'l,'o,33,33,0
                        .area data(ram, con, rel)
 0013                   .dbfile 1602.c

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -