×

lcd1602液晶显示屏程序 单片机

lcd1602液晶显示屏程序(51单片机+LCD1602显示字符程序问题)

admin admin 发表于2023-10-28 20:59:54 浏览33 评论0

抢沙发发表评论

本文目录

51单片机+LCD1602显示字符程序问题

感觉这代码有点乱试一下我的吧 #include《reg52.h》#ifndef unsi8 #define unsi8 unsigned char #endif#ifndef unsi_16#define unsi_16 unsigned short#endif#define OUT P0#define DELAYsbit LCD_RS = P2^0;sbit LCD_RW = P2^1;sbit LCD_E_ = P2^2; #define LCD_WR_CMD 0#define LCD_WR_DATA 1struct Passer{ unsi8 String; unsi8 String2;};struct Passer Disp={’7’,’4’,’2’,’6’,’1’,’5’,’0’,’5’,’5’,’0’,’2’,’5’,’H’,’e’,’l’,’l’,’o’,’,’,’W’,’o’,’r’,’l’,’d’};#ifdef DELAY void Delay_1ms(unsi_16 x) { unsi8 i; while(x--) { for(i=0;i《125;i++); } }#endifstatic void LCD_Busy(){ unsi8 i; do { LCD_RS = 0; LCD_RW = 1; LCD_E_ = 1; i = OUT; LCD_E_ = 0; }while(i&0x80);}static void LCD_WriteByte(unsi8 Dat,bit Mode){ unsi8 i; LCD_Busy(); LCD_RS = Mode; LCD_RW = 0; OUT = Dat; LCD_E_ = 1; for(i=0;i《251;i++); LCD_E_ = 0;}static void LCD_Set_Register(){ LCD_WriteByte(0x38,LCD_WR_CMD); LCD_WriteByte(0x01,LCD_WR_CMD); LCD_WriteByte(0x06,LCD_WR_CMD); LCD_WriteByte(0x0f,LCD_WR_CMD);}void Display(){ unsi8 i; LCD_WriteByte(0x82,LCD_WR_CMD); for(i=0;i《sizeof(Disp.String);i++) { LCD_WriteByte(Disp.String,LCD_WR_DATA); Delay_1ms(300); } LCD_WriteByte(0xc2,LCD_WR_CMD); for(i=0;i《sizeof(Disp.String2);i++) { LCD_WriteByte(Disp.String2,LCD_WR_DATA); Delay_1ms(300); }}void main(){while(1) { LCD_Set_Register(); Display(); }}如有问题可再咨询

51单片机编写lcd1602显示程序,第一行显示自己的姓名,第二行显示学号

1、首先我们打开Keil μVision编译器,新建一个工程,然后保存在硬盘上的位置,然后选择Atmel-AT89C51单片机为模型,并启动器添加STARTUP.A51文件,然后在当前目录下新建一个C文件,并将其添加入工作路径。

2、导入51单片机的头文件以及LCD1602的头文件。

3、创建一个延时函数,可以传入想要具体延时的时长,其内部实现是由一个二重循环,两个循环的次数相乘积。

4、然后创建写命令的函数,指定RS和E同时为0时,才可以写入命令,设定完成后,将com写入输出端口,规定写命令时,E为正脉冲,然后空操作一个机器周期等待机器反应。

5、然后创建写数据的函数,规定写数据时,E为正脉冲,规定当RS=1和RW=0时才可以写入数据,然后将数据从输出端口输出,最后让E产生正跳变。

6、然后创建初始化LCD1602的函数,指定显示模式位两行显示,5*7,8位数据、整体显示,无光标,无闪烁、写入一个字符后地址指针加1,最后进行清屏操作。

7、最后在主函数中首先执行LCD1602的初始化函数,首先创建一个无限循环,然后添加两个字符串,这里以两行显示百度经验的网址为例,再进行延时以及使用清屏函数进行刷新。

c语言lcd1602程序什么意思“INT8U status;TRIS_LCD_DAT = 0xFF;”

lcd1602 一种液晶显示器想让它显示 ,就要有能够驱动它的一种方式c语言lcd1602程序 就是按照 lcd1602 自己的运行方式, 编写的一种驱动,能够方便的显示我们的数据。由于单片机的运行速度 比 lcd1602 快,所以控制它时,要判断它现在是否处于空闲状态,LCD_BUSY_WAIT() 便是如此,它只在lcd1602 空闲时返回,即等待 lcd1602 空闲,在运行写操作指令的后续事情