📄 main.s
字号:
.module main.c
.area lit(rom, con, rel)
L2:
.byte 32,32,32,32,'W,'e,'l,'c,'o,'m,'e,32,0
L3:
.byte 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32
.byte 0
L4:
.byte 'w,'w,'w,46,'a,'d,'e,'m,'b,'e,'d,46,'c,'o,'m,0
L5:
.byte 'E,'a,'s,'y,'A,'V,'R,32,'A,'V,51,0
L6:
.byte 49,54,48,50,'L,'C,'D,32,'D,'E,'M,'O,32,'P,'R,'O
.byte 0
.area text(rom, con, rel)
.dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\LCD1602\main.c
.dbfunc e main _main fV
; i -> R20,R21
; test -> y+60
; ver -> y+48
; str1 -> y+32
; str -> y+19
; clr -> y+2
.even
_main::
sbiw R28,63
sbiw R28,14 ; offset = 77
.dbline -1
.dbline 42
; /****************************************Copyright (c)**************************************************
; ** ADEmbed Development Co.,LTD.
; ** http://www.adembed.com
; **--------------File Info-------------------------------------------------------------------------------
; ** File name: mian.c
; ** Last modified Date: 2008-10-13
; ** Last Version: 1.0
; ** Descriptions: lcd1602 test.
; **
; **------------------------------------------------------------------------------------------------------
; ** Created by: zhoufeng
; ** Created date: 2008-10-13
; ** Version: 1.0
; ** Descriptions:
; **
; **------------------------------------------------------------------------------------------------------
; ** Modified by: junbolu
; ** Modified date: 2008-12-13
; ** Version:
; ** Descriptions:
; **
; **------------------------------------------------------------------------------------------------------
; **ICC-AVR application builder : 2008-12-13
; **Target : M16
; **Crystal: 7.3728Mhz
; **
; **
; **描述:这是一个Lcd1602的测试程序。LCD1602型号为JHD162A 使用8位并口数据传输.
; **
; **
; **涉及知识点:
; **
; **
; **
; *******************************************************************************************************/
; #include <iom16v.h>
; #include <macros.h>
; #include"lcd1602.h"
; #include<ctype.h>
;
; void main(void)
; {
.dbline 43
; char str[]=" Welcome ";
ldi R24,<L2
ldi R25,>L2
movw R30,R28
adiw R30,19
ldi R16,13
ldi R17,0
st -y,R31
st -y,R30
st -y,R25
st -y,R24
xcall asgncblk
.dbline 44
; char clr[]=" ";
ldi R24,<L3
ldi R25,>L3
movw R30,R28
adiw R30,2
ldi R16,17
ldi R17,0
st -y,R31
st -y,R30
st -y,R25
st -y,R24
xcall asgncblk
.dbline 45
; char str1[]="www.adembed.com";
ldi R24,<L4
ldi R25,>L4
movw R30,R28
adiw R30,32
ldi R16,16
ldi R17,0
st -y,R31
st -y,R30
st -y,R25
st -y,R24
xcall asgncblk
.dbline 46
; char ver[]= "EasyAVR AV3";
ldi R24,<L5
ldi R25,>L5
movw R30,R28
adiw R30,48
ldi R16,12
ldi R17,0
st -y,R31
st -y,R30
st -y,R25
st -y,R24
xcall asgncblk
.dbline 47
; char test[]="1602LCD DEMO PRO";
ldi R24,<L6
ldi R25,>L6
movw R30,R28
adiw R30,60
ldi R16,17
ldi R17,0
st -y,R31
st -y,R30
st -y,R25
st -y,R24
xcall asgncblk
.dbline 48
; unsigned int i=0;
clr R20
clr R21
.dbline 49
; lcd_init();
xcall _lcd_init
.dbline 50
; delay_nms(10);
ldi R16,10
ldi R17,0
xcall _delay_nms
.dbline 51
; lcd_disp_string(0,0,str);
movw R24,R28
adiw R24,19
std y+1,R25
std y+0,R24
clr R18
clr R19
clr R16
clr R17
xcall _lcd_disp_string
.dbline 52
; delay_nms(10);//短延时是必要的
ldi R16,10
ldi R17,0
xcall _delay_nms
.dbline 53
; lcd_disp_string(1,0,str1);
movw R24,R28
adiw R24,32
std y+1,R25
std y+0,R24
clr R18
clr R19
ldi R16,1
ldi R17,0
xcall _lcd_disp_string
.dbline 54
; delay_nms(2000);
ldi R16,2000
ldi R17,7
xcall _delay_nms
.dbline 55
; lcd_disp_string(0,0,clr);
movw R24,R28
adiw R24,2
std y+1,R25
std y+0,R24
clr R18
clr R19
clr R16
clr R17
xcall _lcd_disp_string
.dbline 56
; delay_nms(10);//短延时是必要的
ldi R16,10
ldi R17,0
xcall _delay_nms
.dbline 57
; lcd_disp_string(0,0,ver);
movw R24,R28
adiw R24,48
std y+1,R25
std y+0,R24
clr R18
clr R19
clr R16
clr R17
xcall _lcd_disp_string
.dbline 58
; delay_nms(10);//短延时是必要的
ldi R16,10
ldi R17,0
xcall _delay_nms
.dbline 59
; lcd_disp_string(1,0,clr);
movw R24,R28
adiw R24,2
std y+1,R25
std y+0,R24
clr R18
clr R19
ldi R16,1
ldi R17,0
xcall _lcd_disp_string
.dbline 60
; delay_nms(10);//短延时是必要的
ldi R16,10
ldi R17,0
xcall _delay_nms
.dbline 61
; lcd_disp_string(1,0,test);
movw R24,R28
adiw R24,60
std y+1,R25
std y+0,R24
clr R18
clr R19
ldi R16,1
ldi R17,0
xcall _lcd_disp_string
L7:
.dbline 63
.dbline 65
.dbline 66
L8:
.dbline 62
xjmp L7
X0:
.dbline -2
L1:
adiw R28,63
adiw R28,14 ; offset = 77
.dbline 0 ; func end
ret
.dbsym r i 20 i
.dbsym l test 60 A[17:17]c
.dbsym l ver 48 A[12:12]c
.dbsym l str1 32 A[16:16]c
.dbsym l str 19 A[13:13]c
.dbsym l clr 2 A[17:17]c
.dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -