单片机中 LCD1602不能显示字符

单片机中 LCD1602不能显示字符,第1张

#include <reg52h>//51单片机相关库

typedef unsigned int uint;//数据类型重新定义

typedef unsigned char uchar;

sbit LCD_RS=P2^0;//数据/命令选择位

sbit LCD_RW=P2^1;//读/写选择位

sbit LCD_EN=P2^2;//使能信号

uchar lcd_tab[]={">

只是LCD1602的代码

;多功能51单片机开发板

;LCD1602测试程序

RS EQU P20

RW EQU P21

E EQU P22

LDATA EQU P1

ORG 0000H

AJMP MAIN

ORG 0030H

MAIN: MOV R0,#00H ;R0:每行显示字符的个数

MOV R1,#80H ;寄存器地址

MOV A,#38H ;设置显示(16×2)

ACALL WIR

MOV A,#0EH ;开显示,显示光标,光标不闪烁

ACALL WIR

MOV A,#06H ;整屏显示不移动

ACALL WIR

MOV A,#01H ;显示清屏

ACALL WIR

MOV DPTR,#LCD

LOOP0: MOV A,R1 ;写地址

ACALL WIR

INC R1 ;地址加一

CJNE R1,#90H,TT ;判断第一行写完没有

MOV R1,#0C0H ;若写完,R1=第二行地址

TT: MOV A,R0

MOVC A,@A+DPTR

ACALL WDR

INC R0 ;计数R0加1

LCALL DELAY1

CJNE R0,#20H,LOOP0 ;R1不等于32则继续

RE: AJMP RE

WIR: ACALL BUSY ;写指令寄存器子程序

CLR E ;初始化

CLR RS

CLR RW

SETB E

MOV LDATA,A

CLR E

RET

WDR: ACALL BUSY ;写数据寄存器子程序

CLR E

SETB RS

CLR RW

SETB E

MOV LDATA,A

CLR E

RET

BUSY: PUSH ACC ;检测忙信号子程序

ISBUSY:CLR E

CLR RS

SETB RW

SETB E

MOV A,LDATA

JB ACC7,ISBUSY ;ACC7=1,说明忙

POP ACC

ACALL DELAY1

RET

DELAY1:MOV R6,#5 ;延时子程序

D0: MOV R7,#248

DJNZ R7,$

DJNZ R6,D0

RET

DELAY2:MOV R5,#2

D1: MOV R3,#245

D2: MOV R4,#245

DJNZ R4,$

DJNZ R3,D2

DJNZ R5,D1

RET

LCD:DB ' MCS-51 TEST '

DB ' Xu Rui Feng '

END

1602液晶显示 的超声波模块程序 接口程序里边都有、、 #include //#include #include #define uchar unsigned char #define uint unsigned int sbit lcdrs=P2^3; sbit lcden=P2^2; sbit trig=P2^0; //超声波发送 //sbit echo=P3^2; //超声波接受

可以先将数据定义为全局变量,按键后处理那个要改变的数据,接着刷新显示器(初始化显示器就行),再进行相应的显示,变化的数据就可以显示了;因为需要了解硬件电路,和晶振频率,才能给例子,请见谅!若有需要,可将在下的1602驱动程序及电路原理图奉上,望采纳,谢谢!(全国大学生电子设计竞赛省三等奖队程序设计员答,欢迎进我空间交流!)

以上就是关于单片机中 LCD1602不能显示字符全部的内容,包括:单片机中 LCD1602不能显示字符、51单片机中怎么用按键控制lcd1602的光标移动,即每按一次按键光标向右移动一位写出具体的程序、基于AT89C51单片机和DS18B20温度传感器、LCD1602液晶显示的数字温度计 汇编程序及电路图等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9453634.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存