导航:首页 > 编程语言 > lcd1602汇编程序

lcd1602汇编程序

发布时间:2022-02-05 18:31:27

Ⅰ lcd1602a要让它显示 的汇编代码

我这有LCD1602显示资料,需要的话可以发给你参考......

发了,希望有帮助~~~~~~

Ⅱ LCD1602 4总线汇编程序问题

好久以前搞过记不清了,记得有一个信号是用来表示当前输入的是高4位或者低4位的

Ⅲ 求一个1602液晶显示最简单的汇编程序(在屏上显示一个数字就行了,过程完整)

;* 1、LCD第一行显示: www.saxmcu.com
;* LCD第二行显示: SP-28A--DIY
;* 2、先将两行字符写入DDRAM中,然后从右至左逐字移出显示。
;* 3、在指定位置停留1.6秒后,闪烁2次,清屏。
;* 4、反复循环上述显示方式。
;*******************************************************************

LCD_RS EQU P2.0
LCD_RW EQU P2.1
LCD_EN EQU P2.2

;*******************************************************************
ORG 0000H
AJMP MAIN
ORG 0030H
;*******************************************************************
MAIN:
MOV SP,#60H
ACALL LCD_INIT ;LCD初始化
MAIN1:
ACALL CLR_LCD ;清LCD
MOV A,#90H ;在第一行第17列的位置
ACALL LCD_CMD
MOV DPTR,#LINE1 ;第一行字符串的起始地址送入DPTR。
ACALL WRITE
MOV A,#0D0H ;在第二行第17列的位置
ACALL LCD_CMD
MOV DPTR,#LINE2 ;第二行字符串的起始地址送入DPTR。
ACALL WRITE

MOV R3,#10H ;向左移动16格
LOOPA:
MOV A,#18H ;字符同时左移一格
ACALL LCD_CMD
MOV R5,#03H ;延时375MS
ACALL DELAY125MS
DJNZ R3,LOOPA

ACALL DELAY4 ;延时1.6s
ACALL DELAY4
MOV R4,#02H ;设置闪烁次数
ACALL FLASH ;开始闪烁
AJMP MAIN1

LINE1:
DB " www.saxmcu.com ",00H
LINE2:
DB " SP-28A--DIY ",00H

;***************************************************************
;LCD初始化设定子程序
;***************************************************************
LCD_INIT:
ACALL DELAY5MS ;延时15MS
ACALL DELAY5MS ;等待LCD电源稳定
ACALL DELAY5MS

MOV A,#38H ;16*2显示,5*7点阵,8位数据
ACALL LCD_CMD_NC ;不进行LCD忙检测
ACALL DELAY5MS

MOV A,#38H ;16*2显示,5*7点阵,8位数据
ACALL LCD_CMD_NC ;不进行LCD忙检测
ACALL DELAY5MS

MOV A,#38H ;16*2显示,5*7点阵,8位数据
ACALL LCD_CMD_NC ;不进行LCD忙检测
ACALL DELAY5MS

MOV A,#08H ;显示关
ACALL LCD_CMD ;进行LCD忙检测

MOV A,#01H ;清除屏幕
ACALL LCD_CMD ;进行LCD忙检测

MOV A,#0CH ;显示开,关光标
ACALL LCD_CMD ;进行LCD忙检测

RET
;***************************************************************
;清LCD子程序
;***************************************************************
CLR_LCD:
MOV A,#01H ;清除屏幕
ACALL LCD_CMD ;进行LCD忙检测
RET

;***************************************************************
;写指令数据到LCD
;RS=L,RW=L,D0-D7=指令码,E=高脉冲
;***************************************************************
LCD_CMD:
CALL CHECKBUSY
LCD_CMD_NC:
CLR LCD_RS
CLR LCD_RW
MOV P0,A
SETB LCD_EN
NOP
NOP
NOP
NOP
CLR LCD_EN
RET
;***************************************************************
;写显示数据到LCD
;RS=H,RW=L,D0-D7=数据,E=高脉冲
;***************************************************************
LCD_WDATA:
ACALL CHECKBUSY
SETB LCD_RS
CLR LCD_RW
MOV P0,A
SETB LCD_EN
NOP
NOP
NOP
NOP
CLR LCD_EN
RET
;***************************************************************
;检测LCD控制器忙状态
;读数据
;RS=L,RW=H,E=H,输出:D0-D7=数据
;P0.7=1,LCD忙,等待。P0.7=0,LCD闲,可以进行读写操作。
;***************************************************************
CHECKBUSY:
PUSH ACC
MOV P0,#0FFH
CLR LCD_RS
SETB LCD_RW
SETB LCD_EN
BUSYLOOP:
NOP
JB P0.7,BUSYLOOP
CLR LCD_EN
POP ACC
RET
;***************************************************************
; 发送字符串子程序
;***************************************************************
WRITE:
PUSH ACC
WRITE1:
CLR A
MOVC A,@A+DPTR
JZ WRITE2
INC DPTR
ACALL LCD_WDATA
JMP WRITE1
WRITE2:
POP ACC
RET
;***************************************************************
;闪烁子程序
;***************************************************************
FLASH:
MOV A,#08H ;关闭显示
ACALL LCD_CMD
ACALL DELAY4
MOV A,#0CH ;开显示,关闭光标
ACALL LCD_CMD
ACALL DELAY4
DJNZ R4,FLASH
RET
;***************************************************************
;延时5MS子程序
;LCD初始化使用
;***************************************************************
DELAY5MS:
MOV R6,#10
DL1:
MOV R7,#249
DL2:
DJNZ R7,DL2
DJNZ R6,DL1
RET
;***************************************************************
;延时125MS子程序
;字符串移动时使用
;***************************************************************
DELAY125MS:
DL3:
MOV R6,#250
DL4:
MOV R7,#249
DL5:
DJNZ R7,DL5
DJNZ R6,DL4
DJNZ R5,DL3
RET
;***************************************************************
;延时800MS子程序
;闪烁时使用
;***************************************************************
DELAY4:
MOV R5,#40
DL6:
MOV R6,#100
DL7:
MOV R7,#100
DL8:
DJNZ R7,DL8
DJNZ R6,DL7
DJNZ R5,DL6
RET
;***************************************************************
END

可以吧?

单片机LCD1602显示程序(汇编),小弟有很多地方不懂,希望高人能加上注释,有助于本人学习

单片机LCD1602显示程序(汇编),小弟有很多地方不懂,希望高人能加上注释,有助于本人学习
存吼亏拌丽贿挽带桶载主炎孩幻盒

为你祝福,为你欢笑,因为在今天,我的内心也跟你一样的欢腾、快乐!祝你们,百年好合!白头到老!

Ⅳ lcd1602液晶显示滚动汇编语言具体解释,请说一下这个程序的整个思路,没注释的地方是什么意思

没注解的地方是延时程序, MOV P0,#是把要放到LCD的控制IC里的资料由P0端口送出.(包含控制及显示资料)

Ⅵ 单片机LCD1602液晶显示的汇编程序

也没去理解AC,只知道第一行第1点的地址是80H,第二行第1点是C0H。

下面就是你要的程序,仅供参考

RSBITP1.2;这3位是液晶屏的控制信号,连接方式由具体硬件而定

RWBITP1.1

EBITP1.0

ORG00H

AJMPMAIN

ORG30H

MAIN:

movR0,#24

ACALLINITIAL

ACALLDISPLAY;调用液晶显示子程序

AJMPMAIN

;-------液晶显示---------------------------------------

DISPLAY:

MOVA,#80H ;第一行第1个点

ACALLWR_CMD

MOVDPTR,#LINE1

ACALLPR_STR

ACALLWR_DATA

DISP1:

MOVA,#1CH ;字符左移命令(注:实物中左移命令字为18H)

ACALLWR_CMD

ACALLD05S

DJNZR0,DISP1

RET

;---液晶屏初始化-------------------------------------------------

INITIAL:

MOVA,#01H

ACALLWR_CMD

MOVA,#38H

ACALLWR_CMD

MOVA,#0CH

ACALLWR_CMD

MOVA,#06H

ACALLWR_CMD

RET

;----写液晶指令的子程序------------------------------------------

WR_CMD:

MOVP3,A

CLRRS;写入控制命令

CLRRW

CLRE

ACALLDELAY

SETBE

RET

;----写液晶数据---------------------------------------------

WR_DATA:

MOVP3,A

SETBRS;写入数据

CLRRW

CLRE

ACALLDELAY;判断液晶模块是否忙?

SETBE

RET

;-----写行字符---------------------------------------------------------------

PR_STR:

CLR A

MOVCA,@A+DPTR

JZ END_PR

ACALLWR_DATA

INC DPTR

AJMPPR_STR

END_PR:

RET

;----查看液晶忙碌信号---------------------------------------------------------

DELAY:

MOVP3,#0FFH;判断液晶显示器是否忙的子程序

CLRRS

SETBRW

CLRE

NOP

SETBE

JBP3.7,DELAY;如果P3.7为高电平表示忙就循环等待

RET

;----0.5S延时(按12MHZ算)-----------------------------------------------------------------

D05S:

MOVR6,#25

MOVR5,#100

MOVR4,#100

DJNZR4,$

DJNZR5,$-4

DJNZR6,$-8

RET

;--------------------------------------------------------------------------------------

LINE1:

DB'ZHUNIYISHENGPINGAN',00H

Ⅶ 51单片机+ADC0809+LCD1602用汇编语言编程

你把这两个程序合起来改下就差不多咯!时间忙 只能把自己以前学的子程序给你咯
; :1602显示
LCD_RS EQU P2.0
LCD_RW EQU P2.1
LCD_EN EQU P2.2
LCD_DATA EQU P0

;*******************************************************************
ORG 0000H
AJMP MAIN
ORG 0030H
;*******************************************************************
MAIN:
MOV SP,#60H
ACALL LCD_INIT ;LCD初始化
MAIN1:
ACALL CLR_LCD ;清LCD
MOV A,#90H ;在第一行第17列的位置
ACALL LCD_CMD
MOV DPTR,#LINE1 ;第一行字符串的起始地址送入DPTR。
ACALL WRITE
MOV A,#0D0H ;在第二行第17列的位置
ACALL LCD_CMD
MOV DPTR,#LINE2 ;第二行字符串的起始地址送入DPTR。
ACALL WRITE

MOV R3,#10H ;向左移动16格
LOOPA:
MOV A,#18H ;字符同时左移一格
ACALL LCD_CMD
MOV R5,#03H ;延时375MS
ACALL DELAY125MS
DJNZ R3,LOOPA

ACALL DELAY4 ;延时1.6s
ACALL DELAY4
MOV R4,#02H ;设置闪烁次数
ACALL FLASH ;开始闪烁
AJMP MAIN1

LINE1:
DB "YALONG:",00H
LINE2:
DB "welcome you!",00H

;***************************************************************
;LCD初始化设定子程序
;***************************************************************
LCD_INIT:
ACALL DELAY5MS ;延时15MS
ACALL DELAY5MS ;等待LCD电源稳定
ACALL DELAY5MS

MOV A,#38H ;16*2显示,5*7点阵,8位数据
ACALL LCD_CMD_NC ;不进行LCD忙检测
ACALL DELAY5MS

MOV A,#38H ;16*2显示,5*7点阵,8位数据
ACALL LCD_CMD_NC ;不进行LCD忙检测
ACALL DELAY5MS

MOV A,#38H ;16*2显示,5*7点阵,8位数据
ACALL LCD_CMD_NC ;不进行LCD忙检测
ACALL DELAY5MS

MOV A,#08H ;显示关
ACALL LCD_CMD ;进行LCD忙检测

MOV A,#01H ;清除屏幕
ACALL LCD_CMD ;进行LCD忙检测

MOV A,#0CH ;显示开,关光标
ACALL LCD_CMD ;进行LCD忙检测

RET
;***************************************************************
;清LCD子程序
;***************************************************************
CLR_LCD:
MOV A,#01H ;清除屏幕
ACALL LCD_CMD ;进行LCD忙检测
RET

;***************************************************************
;写指令数据到LCD
;RS=L,RW=L,D0-D7=指令码,E=高脉冲
;***************************************************************
LCD_CMD:
CALL CHECKBUSY
LCD_CMD_NC:
CLR LCD_RS
CLR LCD_RW
MOV LCD_DATA,A
SETB LCD_EN
NOP
NOP
NOP
NOP
CLR LCD_EN
RET
;***************************************************************
;写显示数据到LCD
;RS=H,RW=L,D0-D7=数据,E=高脉冲
;***************************************************************
LCD_WDATA:
ACALL CHECKBUSY
SETB LCD_RS
CLR LCD_RW
MOV LCD_DATA,A
SETB LCD_EN
NOP
NOP
NOP
NOP
CLR LCD_EN
RET
;***************************************************************
;检测LCD控制器忙状态
;读数据
;RS=L,RW=H,E=H,输出:D0-D7=数据
;LCD_DATA.7=1,LCD忙,等待。LCD_DATA.7=0,LCD闲,可以进行读写操作。
;***************************************************************
CHECKBUSY:
PUSH ACC
MOV LCD_DATA,#0FFH
CLR LCD_RS
SETB LCD_RW
SETB LCD_EN
BUSYLOOP:
NOP
JB LCD_DATA.7,BUSYLOOP
CLR LCD_EN
POP ACC
RET
;***************************************************************
; 发送字符串子程序
;***************************************************************
WRITE:
PUSH ACC
WRITE1:
CLR A
MOVC A,@A+DPTR
JZ WRITE2
INC DPTR
ACALL LCD_WDATA
JMP WRITE1
WRITE2:
POP ACC
RET
;***************************************************************
;闪烁子程序
;***************************************************************
FLASH:
MOV A,#08H ;关闭显示
ACALL LCD_CMD
ACALL DELAY4
MOV A,#0CH ;开显示,关闭光标
ACALL LCD_CMD
ACALL DELAY4
DJNZ R4,FLASH
RET
;***************************************************************
;延时5MS子程序
;LCD初始化使用
;***************************************************************
DELAY5MS:
MOV R6,#10
DL1:
MOV R7,#249
DL2:
DJNZ R7,DL2
DJNZ R6,DL1
RET
;***************************************************************
;延时125MS子程序
;字符串移动时使用
;***************************************************************
DELAY125MS:
DL3:
MOV R6,#250
DL4:
MOV R7,#249
DL5:
DJNZ R7,DL5
DJNZ R6,DL4
DJNZ R5,DL3
RET
;***************************************************************
;延时800MS子程序
;闪烁时使用
;***************************************************************
DELAY4:
MOV R5,#40
DL6:
MOV R6,#100
DL7:
MOV R7,#100
DL8:
DJNZ R7,DL8
DJNZ R6,DL7
DJNZ R5,DL6
RET
;***************************************************************
ENd
; ADC0809子程序
; 引脚定义
ADC_EOC EQU P2.0
ADC_CS EQU P2.1
ADC_RD EQU P2.2
ADC_WR EQU P2.3

ADC_DATA EQU P0

ORG 0000H
AJMP MAIN

ORG 0030H
MAIN:
SETB ADC_EOC
SETB ADC_WR
SETB ADC_RD
SETB ADC_CS

CLR ADC_CS ;START and ALE is H
CLR ADC_WR
NOP
NOP
NOP
SETB ADC_WR
SETB ADC_CS
NOP
JB ADC_EOC,$ ; JNB ADC_EOC,$
CLR ADC_CS
CLR ADC_RD
MOV ADC_DATA,#0FFH
MOV A,ADC_DATA
SETB ADC_RD
SETB ADC_CS

CJNE A,#00H,BELL
INC A

BELL:
MOV R5,A
BELL1: ACALL DELAY
DJNZ R5,BELL1
CPL P2.7
AJMP MAIN

DELAY:
MOV R7,#02H
D1:
MOV R6,#0FFH
DJNZ R6,$
DJNZ R7,D1
RET

END

Ⅷ 我想玩玩1602LCD显示 哪位高手有显示汇编程序 借小弟分享一下 谢了

汇编没有,C的要不要。
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]="A";//其实这里可以写最多16个字符,比如AAAAAA....
sbit lcden=P3^4; //lcd 控制使能端
sbit lcdrs=P3^5; //lcd写命令、数据控制端,一般情况我们不需要读LCD,即通常接地rw=0;
//sbit la=P2^6;
//sbit wela=P2^7;
uchar num;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void write_cmd(uchar cmd)
{
lcdrs=0; //选择写命令模式
P0=cmd; //将要写的命令写到数据总线上
delay(5); //稍延时以等数据稳定
lcden=1; //给使能端一个高脉冲,初始化时为低电平
delay(5); //稍延时
lcden=0; //完成高脉冲
}
void write_date(uchar date)
{
lcdrs=1; //写数据模式
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void init()
{
// wela=0;
// la=0;
lcden=0;
write_cmd(0x38);//设置16x2显示,5x7点阵,8位数据接口
write_cmd(0x0c);//设置开显示,不显示光标
write_cmd(0x06);//写一个字符后指针自动加一
write_cmd(0x01);//显示清零,数据指针清零
}
void main()
{
init();
write_cmd(0x80); //定位指针到第一行第一个字
for(num=0;num<1;num++)
{
write_date(table[num]);
delay(5);
}

while(1);
}

Ⅸ 单片机 LCD1602汇编 数字钟 程序 求解释。

不错,不过不能用

Ⅹ 用LCD1602液晶显示汇编程序编写一个程序显示课程名称“”单片机接口技术”及本组同学名字

1605不能显示中文,数字字母可以转码显示

阅读全文

与lcd1602汇编程序相关的资料

热点内容
八爪鱼数据采集加密文字替换 浏览:80
android系统运行动态编译的程序 浏览:417
计算编程中常用的if语句是 浏览:734
linux文件夹权限乱了 浏览:909
程序员职业病预防保健操 浏览:678
c程序修改后需不需要重新编译 浏览:723
怎样把图片分别放置在文件夹中 浏览:871
推流服务器地址是什么 浏览:630
java允许多重继承 浏览:511
解压小玩具好玩又可爱 浏览:408
腾讯云大带宽服务器 浏览:821
加密锁的售后 浏览:268
linux登不上去 浏览:729
联想服务器休眠后如何唤醒 浏览:111
四川话女孩学习编程 浏览:322
编译原理文法区分 浏览:1001
教师可以做程序员嘛 浏览:637
终结战场安卓国际服怎么下载 浏览:155
现在的高端服务器属于什么 浏览:810
企业银行解压流程 浏览:447