微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > lcd1602中文资料分享:lcd1602接线图_lcd1602与单片机连接图

lcd1602中文资料分享:lcd1602接线图_lcd1602与单片机连接图

时间:07-17 来源: 点击:

有输入参数 unsigned char t,无返回值

  unsigned char 是定义无符号字符变量,其值的范围是

  0~255 这里使用晶振12M,精确延时请使用汇编

  ------------------------------------------------*/

  void DelayMs(unsigned char t)

  {

  while(t--)

  {

  //大致延时1mS

  DelayUs2x(245);

  DelayUs2x(245);

  }

  }

  /*------------------------------------------------

  判忙函数

  ------------------------------------------------*/

  bit LCD_Check_Busy(void)

  {

  DataPort= 0xFF;

  RS_CLR;

  RW_SET;

  EN_CLR;

  _nop_();

  EN_SET;

  return (bit)(DataPort & 0x80);

  }

  /*------------------------------------------------

  写入命令函数

  ------------------------------------------------*/

  void LCD_Write_Com(unsigned char com)

  {

  // while(LCD_Check_Busy()); //忙则等待

  DelayMs(5);

  RS_CLR;

  RW_CLR;

  EN_SET;

  DataPort= com;

  _nop_();

  EN_CLR;

  }

  /*------------------------------------------------

  写入数据函数

  ------------------------------------------------*/

  void LCD_Write_Data(unsigned char Data)

  {

  //while(LCD_Check_Busy()); //忙则等待

  DelayMs(5);

  RS_SET;

  RW_CLR;

  EN_SET;

  DataPort= Data;

  _nop_();

  EN_CLR;

  }

  /*------------------------------------------------

  清屏函数

  ------------------------------------------------*/

  void LCD_Clear(void)

  {

  LCD_Write_Com(0x01);

  DelayMs(5);

  }

  /*------------------------------------------------

  写入字符串函数

  ------------------------------------------------*/

  void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s)

  {

  if (y == 0)

  {

  LCD_Write_Com(0x80 + x); //表示第一行

  }

  else

  {

  LCD_Write_Com(0xC0 + x); //表示第二行

  }

  while (*s)

  {

  LCD_Write_Data( *s);

  s ++;

  }

  }

  /*------------------------------------------------

  写入字符函数

  ------------------------------------------------*/

  void LCD_Write_Char(unsigned char x,unsigned char y,unsigned char Data)

  {

  if (y == 0)

  {

  LCD_Write_Com(0x80 + x);

  }

  else

  {

  LCD_Write_Com(0xC0 + x);

  }

  LCD_Write_Data( Data);

  }

  /*------------------------------------------------

  初始化函数

  ------------------------------------------------*/

  void LCD_Init(void)

  {

  LCD_Write_Com(0x38); /*显示模式设置*/

  DelayMs(5);

  LCD_Write_Com(0x38);

  DelayMs(5);

  LCD_Write_Com(0x38);

  DelayMs(5);

  LCD_Write_Com(0x38);

  LCD_Write_Com(0x08); /*显示关闭*/

  LCD_Write_Com(0x01); /*显示清屏*/

  LCD_Write_Com(0x06); /*显示光标移动设置*/

  DelayMs(5);

  LCD_Write_Com(0x0C); /*显示开及光标设置*/

  }

  /*------------------------------------------------

  主函数[上面已经把显示功能封装好了,今后再写其他显示就直接调用]

  ------------------------------------------------*/

  void main(void)

  {

  LCD_Init();

  LCD_Clear();//清屏

  while (1)

  {

  LCD_Write_Char(7,0,‘o’);

  LCD_Write_Char(8,0,‘k’);

  LCD_Write_String(1,1,"www.doflye.net");

  while(1);

  }

  }

  lcd1602中文资料-----LCD1602的3引脚VO怎么接

  VO为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生"鬼影",使用时可以通过一个10K的电位器调整对比度。

  LCD1602的VO引脚必须不能悬空,要连接一个滑动变阻器来调节的,当然LCD1602有多种型号,但是大多数的VO脚只有两种情况:一个是VO脚接18欧的下拉电阻接地,一个是接1k欧的电阻接地,当然,也可以接个滑动变阻器更好。



 

  一般用上图,具体看看你LCD1602的技术手册说明VO引脚的具体情况

  lcd1602与单片机连接图----实例解读

下面我们分享以一个实例。LCD1602的型号是16条引脚的HJ1602A;单片机最小系统(扩充了外部RAM 6

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top