📄 1602六线接法练习.lis
字号:
.module _1602六线接法练习.c
.area text(rom, con, rel)
0000 .dbfile D:\M16开发板实验教程\icc-avr\lcd1602test/1602.h
0000 .dbfunc e LCD_init _LCD_init fV
.even
0000 _LCD_init::
0000 .dbline -1
0000 .dbline 30
0000 ; #include <iom16v.h>
0000 ; #include <macros.h>
0000 ; #include "1602.h"
0000 ;
0000 ;
0000 ; void main(void)
0000 ; {
0000 ; LCD_init(); //initialize lcd1602
0000 ; while(1)
0000 ; {
0000 ; clear(); //clear lcd1602
0000 ; delay_nms(10);
0000 ; LCD_write_string(0,0," ATmega 16 BOARD"); //write the string on the first
0000 ; //line at the first address
0000 ; LCD_write_string(1,1," dushibiao ");
0000 ; delay_nms(5000);
0000 ; clear();
0000 ; delay_nms(10);
0000 ; LCD_write_string(0,0,"Stduy follow me");
0000 ; LCD_write_string(0,1,"You will secceed");
0000 ; delay_nms(5000);
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 .dbline 31
0000 ; }
0000 8AB3 in R24,0x1a
0002 806F ori R24,240
0004 8ABB out 0x1a,R24
0006 .dbline 32
0006 ; }
0006 D39A sbi 0x1a,3
0008 .dbline 33
0008 ; }
0008 D29A sbi 0x1a,2
000A .dbline 34
000A ; }
000A 0FE0 ldi R16,15
000C 10E0 ldi R17,0
000E 0E940000 xcall _delay_nms
0012 .dbline 35
0012 ; }
0012 2227 clr R18
0014 3327 clr R19
0016 08E2 ldi R16,40
0018 10E0 ldi R17,0
001A 46D0 xcall _LCD_write_char
001C .dbline 36
001C ; }
001C 0FE0 ldi R16,15
001E 10E0 ldi R17,0
0020 0E940000 xcall _delay_nms
0024 .dbline 37
0024 ; }
0024 2227 clr R18
0026 3327 clr R19
0028 0CE0 ldi R16,12
002A 10E0 ldi R17,0
002C 3DD0 xcall _LCD_write_char
002E .dbline 38
002E ; }
002E 0FE0 ldi R16,15
0030 10E0 ldi R17,0
0032 0E940000 xcall _delay_nms
0036 .dbline 39
0036 ; }
0036 2227 clr R18
0038 3327 clr R19
003A 01E0 ldi R16,1
003C 10E0 ldi R17,0
003E 34D0 xcall _LCD_write_char
0040 .dbline -2
0040 L1:
0040 .dbline 0 ; func end
0040 0895 ret
0042 .dbend
0042 .dbfunc e LCD_write_string _LCD_write_string fV
0042 ; s -> R20,R21
0042 ; Y -> R10
0042 ; X -> R22
.even
0042 _LCD_write_string::
0042 0E940000 xcall push_gset3
0046 A22E mov R10,R18
0048 602F mov R22,R16
004A 4E81 ldd R20,y+6
004C 5F81 ldd R21,y+7
004E .dbline -1
004E .dbline 49
004E ; }
004E ; }
004E ; }
004E ; }
004E ; }
004E ; }
004E ; }
004E ; }
004E ; }
004E ; }
004E .dbline 50
004E ; }
004E 2A2D mov R18,R10
0050 062F mov R16,R22
0052 10D0 xcall _LCD_set_xy
0054 08C0 xjmp L4
0056 L3:
0056 .dbline 53
0056 .dbline 54
0056 FA01 movw R30,R20
0058 2081 ldd R18,z+0
005A 3327 clr R19
005C 0027 clr R16
005E 1127 clr R17
0060 23D0 xcall _LCD_write_char
0062 .dbline 55
0062 4F5F subi R20,255 ; offset = 1
0064 5F4F sbci R21,255
0066 .dbline 56
0066 L4:
0066 .dbline 52
0066 ; }
0066 ; }
0066 FA01 movw R30,R20
0068 2080 ldd R2,z+0
006A 2220 tst R2
006C A1F7 brne L3
006E .dbline -2
006E L2:
006E 0E940000 xcall pop_gset3
0072 .dbline 0 ; func end
0072 0895 ret
0074 .dbsym r s 20 pc
0074 .dbsym r Y 10 c
0074 .dbsym r X 22 c
0074 .dbend
0074 .dbfunc e LCD_set_xy _LCD_set_xy fV
0074 ; address -> R20
0074 ; y -> R20
0074 ; x -> R22
.even
0074 _LCD_set_xy::
0074 0E940000 xcall push_gset2
0078 422F mov R20,R18
007A 602F mov R22,R16
007C .dbline -1
007C .dbline 65
007C ; }
007C ; }
007C ; }
007C ; }
007C ; }
007C ; }
007C ; }
007C ; }
007C ; }
007C ; }
007C ; }
007C ; }
007C ; }
007C .dbline 67
007C ; }
007C ; }
007C 4423 tst R20
007E 19F4 brne L7
0080 .dbline 67
0080 462F mov R20,R22
0082 4058 subi R20,128 ; addi 128
0084 02C0 xjmp L8
0086 L7:
0086 .dbline 69
0086 ; }
0086 ; }
0086 462F mov R20,R22
0088 4054 subi R20,64 ; addi 192
008A L8:
008A .dbline 70
008A ; }
008A 2227 clr R18
008C 3327 clr R19
008E 042F mov R16,R20
0090 1127 clr R17
0092 0AD0 xcall _LCD_write_char
0094 .dbline -2
0094 L6:
0094 0E940000 xcall pop_gset2
0098 .dbline 0 ; func end
0098 0895 ret
009A .dbsym r address 20 c
009A .dbsym r y 20 c
009A .dbsym r x 22 c
009A .dbend
009A .dbfunc e LCD_en_write _LCD_en_write fV
.even
009A _LCD_en_write::
009A .dbline -1
009A .dbline 76
009A ; }
009A ; }
009A ; }
009A ; }
009A ; }
009A ; }
009A .dbline 77
009A ; }
009A DB9A sbi 0x1b,3
009C .dbline 78
009C ; }
009C 05E0 ldi R16,5
009E 10E0 ldi R17,0
00A0 0E940000 xcall _delay_nus
00A4 .dbline 79
00A4 ; }
00A4 DB98 cbi 0x1b,3
00A6 .dbline -2
00A6 L9:
00A6 .dbline 0 ; func end
00A6 0895 ret
00A8 .dbend
00A8 .dbfunc e LCD_write_char _LCD_write_char fV
00A8 ; data_temp -> R22,R23
00A8 ; command_temp -> R20,R21
00A8 ; data -> R12,R13
00A8 ; command -> R10,R11
.even
00A8 _LCD_write_char::
00A8 0E940000 xcall push_gset4
00AC 6901 movw R12,R18
00AE 5801 movw R10,R16
00B0 .dbline -1
00B0 .dbline 88
00B0 ; }
00B0 ; }
00B0 ; }
00B0 ; }
00B0 ; }
00B0 ; }
00B0 ; }
00B0 ; }
00B0 ; }
00B0 .dbline 90
00B0 ; }
00B0 ; }
00B0 A501 movw R20,R10
00B2 .dbline 91
00B2 ; }
00B2 B601 movw R22,R12
00B4 .dbline 92
00B4 ; }
00B4 09E1 ldi R16,25
00B6 10E0 ldi R17,0
00B8 0E940000 xcall _delay_nus
00BC .dbline 93
00BC ; }
00BC 4030 cpi R20,0
00BE 4507 cpc R20,R21
00C0 11F5 brne L11
00C2 X0:
00C2 .dbline 94
00C2 ; }
00C2 .dbline 95
00C2 ; }
00C2 DA9A sbi 0x1b,2
00C4 .dbline 96
00C4 ; }
00C4 8BB3 in R24,0x1b
00C6 8F70 andi R24,15
00C8 8BBB out 0x1b,R24
00CA .dbline 97
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -