📄 lcd.lis
字号:
0076 .dbline 91
0076 ; wcom(0x38);
0076 08E3 ldi R16,56
0078 DBDF xcall _wcom
007A .dbline 92
007A ; delay(5000);
007A 08E8 ldi R16,5000
007C 13E1 ldi R17,19
007E C0DF xcall _delay
0080 .dbline 93
0080 ; wcom(0x38);
0080 08E3 ldi R16,56
0082 D6DF xcall _wcom
0084 .dbline -2
0084 L10:
0084 .dbline 0 ; func end
0084 0895 ret
0086 .dbend
0086 .dbfunc e lcdinit _lcdinit fV
.even
0086 _lcdinit::
0086 .dbline -1
0086 .dbline 102
0086 ; }
0086 ;
0086 ; /*------------------------------------------------------------------
0086 ; lcdinit :LCM1602初始化
0086 ; 输入参数 :无
0086 ; 输出参数 :无
0086 ; -------------------------------------------------------------------*/
0086 ; void lcdinit(void)
0086 ; {
0086 .dbline 103
0086 ; wcom(0x01); //清屏
0086 01E0 ldi R16,1
0088 D3DF xcall _wcom
008A .dbline 104
008A ; wcom(0x3c); //显示开关控制:8bit,2行显示,5x7
008A 0CE3 ldi R16,60
008C D1DF xcall _wcom
008E .dbline 105
008E ; wcom(0x0c); //光标开,闪烁关
008E 0CE0 ldi R16,12
0090 CFDF xcall _wcom
0092 .dbline 106
0092 ; wcom(0x06); //输入方式,增量方式,不移动
0092 06E0 ldi R16,6
0094 CDDF xcall _wcom
0096 .dbline -2
0096 L11:
0096 .dbline 0 ; func end
0096 0895 ret
0098 .dbend
0098 .dbfunc e disp_string _disp_string fV
0098 ; data -> R20,R21
.even
0098 _disp_string::
0098 0E940000 xcall push_gset1
009C A801 movw R20,R16
009E .dbline -1
009E .dbline 115
009E ; }
009E ;
009E ; /*-----------------------------------------------------------------
009E ; disp_string :显示一字符串函数
009E ; 输入参数 data :字符串指针
009E ; 输出参数 :无
009E ; ------------------------------------------------------------------*/
009E ; void disp_string( unsigned char *data )
009E ; {
009E 05C0 xjmp L14
00A0 L13:
00A0 .dbline 116
00A0 .dbline 116
00A0 FA01 movw R30,R20
00A2 0081 ldd R16,z+0
00A4 D0DF xcall _wdat
00A6 .dbline 116
00A6 4F5F subi R20,255 ; offset = 1
00A8 5F4F sbci R21,255
00AA .dbline 116
00AA L14:
00AA .dbline 116
00AA ; while(*data!=0) {wdat(*data);data++;}
00AA FA01 movw R30,R20
00AC 2080 ldd R2,z+0
00AE 2220 tst R2
00B0 B9F7 brne L13
00B2 .dbline -2
00B2 L12:
00B2 0E940000 xcall pop_gset1
00B6 .dbline 0 ; func end
00B6 0895 ret
00B8 .dbsym r data 20 pc
00B8 .dbend
00B8 .dbfunc e main _main fV
.even
00B8 _main::
00B8 .dbline -1
00B8 .dbline 128
00B8 ; }
00B8 ;
00B8 ; //设置显示坐标:X 0~39,Y:0~1
00B8 ; #define setxy(x,y) wcom(((x)|((y)<<6))|0x80)
00B8 ;
00B8 ; /*--------------------------------------------------------------
00B8 ; main :主函数
00B8 ; 输入参数 :无
00B8 ; 输出参数 :无
00B8 ; --------------------------------------------------------------*/
00B8 ; void main()
00B8 ; {
00B8 .dbline 129
00B8 ; DDRD=0xff;
00B8 8FEF ldi R24,255
00BA 81BB out 0x11,R24
00BC .dbline 130
00BC ; DDRB=0xff;
00BC 87BB out 0x17,R24
00BE .dbline 131
00BE ; LCM1602Reset();
00BE CEDF xcall _LCM1602Reset
00C0 .dbline 132
00C0 ; lcdinit();
00C0 E2DF xcall _lcdinit
00C2 .dbline 133
00C2 ; setxy(0,0);
00C2 00E8 ldi R16,128
00C4 B5DF xcall _wcom
00C6 .dbline 134
00C6 ; disp_string("Easy Learning..");
00C6 00E0 ldi R16,<L17
00C8 10E0 ldi R17,>L17
00CA E6DF xcall _disp_string
00CC .dbline 135
00CC ; setxy(2,1);
00CC 02EC ldi R16,194
00CE B0DF xcall _wcom
00D0 .dbline 136
00D0 ; disp_string("Avr Studio! ");
00D0 00E0 ldi R16,<L18
00D2 10E0 ldi R17,>L18
00D4 E1DF xcall _disp_string
00D6 31C0 xjmp L20
00D8 L19:
00D8 .dbline 139
00D8 .dbline 140
00D8 08E0 ldi R16,8
00DA AADF xcall _wcom
00DC .dbline 141
00DC 08EE ldi R16,65000
00DE 1DEF ldi R17,253
00E0 8FDF xcall _delay
00E2 .dbline 142
00E2 08EE ldi R16,65000
00E4 1DEF ldi R17,253
00E6 8CDF xcall _delay
00E8 .dbline 143
00E8 08EE ldi R16,65000
00EA 1DEF ldi R17,253
00EC 89DF xcall _delay
00EE .dbline 144
00EE 08EE ldi R16,65000
00F0 1DEF ldi R17,253
00F2 86DF xcall _delay
00F4 .dbline 145
00F4 08EE ldi R16,65000
00F6 1DEF ldi R17,253
00F8 83DF xcall _delay
00FA .dbline 146
00FA 08EE ldi R16,65000
00FC 1DEF ldi R17,253
00FE 80DF xcall _delay
0100 .dbline 147
0100 08EE ldi R16,65000
0102 1DEF ldi R17,253
0104 7DDF xcall _delay
0106 .dbline 148
0106 08EE ldi R16,65000
0108 1DEF ldi R17,253
010A 7ADF xcall _delay
010C .dbline 150
010C 0CE0 ldi R16,12
010E 90DF xcall _wcom
0110 .dbline 151
0110 08EE ldi R16,65000
0112 1DEF ldi R17,253
0114 75DF xcall _delay
0116 .dbline 152
0116 08EE ldi R16,65000
0118 1DEF ldi R17,253
011A 72DF xcall _delay
011C .dbline 153
011C 08EE ldi R16,65000
011E 1DEF ldi R17,253
0120 6FDF xcall _delay
0122 .dbline 154
0122 08EE ldi R16,65000
0124 1DEF ldi R17,253
0126 6CDF xcall _delay
0128 .dbline 155
0128 08EE ldi R16,65000
012A 1DEF ldi R17,253
012C 69DF xcall _delay
012E .dbline 156
012E 08EE ldi R16,65000
0130 1DEF ldi R17,253
0132 66DF xcall _delay
0134 .dbline 157
0134 08EE ldi R16,65000
0136 1DEF ldi R17,253
0138 63DF xcall _delay
013A .dbline 158
013A L20:
013A .dbline 138
013A CECF xjmp L19
013C X1:
013C .dbline -2
013C L16:
013C .dbline 0 ; func end
013C 0895 ret
013E .dbend
.area data(ram, con, rel)
0000 .dbfile C:\bak\YM200\lcd1602\lcd.c
0000 L18:
0000 .blkb 13
.area idata
0000 4176722053747564696F212000 .byte 'A,'v,'r,32,'S,'t,'u,'d,'i,'o,33,32,0
.area data(ram, con, rel)
000D .dbfile C:\bak\YM200\lcd1602\lcd.c
000D L17:
000D .blkb 16
.area idata
000D 45617379204C6561726E696E672E2E00 .byte 'E,'a,'s,'y,32,'L,'e,'a,'r,'n,'i,'n,'g,46,46,0
.area data(ram, con, rel)
001D .dbfile C:\bak\YM200\lcd1602\lcd.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -