51单片机——LCD1602

单片机——1602液晶


宗旨:技术的学习是有限的,分享的精神是无限的。


 

11602液晶读写时序

(1)、读状态

       RS=L,R/W=H,E=H。(判断忙完毕后释放总线)

(2)、读数据

       RS=H,R/W=H,E=H。

(3)、写指令

  RS=L,R/W=L,D0~D7=指令码,E=高脉冲

(4)、写数据

        RS=H,R/W=L,D0~D7=数据,E=高脉冲

 

2、液晶显示驱动文件

#include <reg52.h>

#define LCD1602_DB  P0
sbit LCD1602_RS = P1 ^ 0;
sbit LCD1602_RW = P1 ^ 1;
sbit LCD1602_E  = P1 ^ 5;

/* 等待液晶准备好 */
void LcdWaitReady()
{
  unsigned char sta;

  LCD1602_DB = 0xFF;
  LCD1602_RS = 0;
  LCD1602_RW = 1;
  do
  {
    LCD1602_E = 1;
    sta = LCD1602_DB; //读取状态字
    LCD1602_E = 0;
  }
  while (sta & 0x80);   //bit7等于1表示液晶正忙,重复检测直到其等于0为止
}
/* 向LCD1602液晶写入一字节命令,cmd-待写入命令值 */
void LcdWriteCmd(unsigned char cmd)
{
  LcdWaitReady();
  LCD1602_RS = 0;
  LCD1602_RW = 0;
  LCD1602_DB = cmd;
  LCD1602_E  = 1;
  LCD1602_E  = 0;
}
/* 向LCD1602液晶写入一字节数据,dat-待写入数据值 */
void LcdWriteDat(unsigned char dat)
{
  LcdWaitReady();
  LCD1602_RS = 1;
  LCD1602_RW = 0;
  LCD1602_DB = dat;
  LCD1602_E  = 1;
  LCD1602_E  = 0;
}
/* 设置显示RAM起始地址,亦即光标位置,(x,y)-对应屏幕上的字符坐标 */
void LcdSetCursor(unsigned char x, unsigned char y)
{
  unsigned char addr;

  if (y == 0)  //由输入的屏幕坐标计算显示RAM的地址
  {
    addr = 0x00 + x;  //第一行字符地址从0x00起始
  }
  else
  {
    addr = 0x40 + x;  //第二行字符地址从0x40起始
  }
  LcdWriteCmd(addr | 0x80);  //设置RAM地址
}
/* 在液晶上显示字符串,(x,y)-对应屏幕上的起始坐标,str-字符串指针 */
void LcdShowStr(unsigned char x, unsigned char y, unsigned char *str)
{
  LcdSetCursor(x, y);   //设置起始地址
  while (*str != '\0')  //连续写入字符串数据,直到检测到结束符
  {
    LcdWriteDat(*str++);
  }
}
/* 初始化1602液晶 */
void InitLcd1602()
{
  LcdWriteCmd(0x38);  //16*2显示,5*7点阵,8位数据接口
  LcdWriteCmd(0x0C);  //显示器开,光标关闭
  LcdWriteCmd(0x06);  //文字不动,地址自动+1
  LcdWriteCmd(0x01);  //清屏
}



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
单片机课程设计是电子信息类专业的重要课程之一,通过本课程的学习,能够掌握单片机的基本原理和应用技能。LCD1602移动显示是单片机课程设计中的一个常见内容,通过这个设计,能够加深对单片机工作原理的理解,并提升实际操作能力。 在这个课程设计中,我们首先需要了解LCD1602的基本原理和工作方式,包括液晶显示原理、接口方式以及驱动时序等。然后,我们需要设计一个可以控制LCD1602显示内容的单片机程序,这个程序需要能够实现LCD1602上显示内容的移动和变化。 具体而言,我们可以通过单片机的IO口控制LCD1602的数据和指令输入,从而实现在LCD1602上显示移动的文字或图形。在设计过程中,我们还要考虑到一些细节问题,比如数据的传输速度、显示内容的更新频率、以及显示效果的优化等。 除了基本的移动显示功能,我们还可以考虑加入一些其他的特色功能,比如在LCD1602上显示动态图案、实时数据的监测和显示等。这样不仅可以提升课程设计的难度和趣味性,也能够更好地锻炼我们的设计和创新能力。 总的来说,LCD1602移动显示的单片机课程设计,是一个很好的实践机会,通过这个设计,我们能够深入了解单片机的工作原理,提升实际操作能力,并且培养创新意识和问题解决能力。希望通过努力,能够圆满完成这个课程设计,为将来的学习和工作打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值