液晶模块1602相关资料

在刚开始接触液晶的时候,很多人会选择液晶模块,而1602液晶模块是一种选择,下面推荐我第一次使用液晶的时候,所用的一块模块:
 

16*2液晶显示模块
外形尺寸:80*36mm
有效显示尺寸:57.7(W)Χ9.4(H)
外形尺寸:8.0×3.6CM
背光:白色LED
控制器:HD44780

引脚定义
1– Vss 电源
2–Vcc 电源+5V
3–Vo 对比度调节
4–RS 寄存器选择 ,H = 数据选择,L = 指令选择
5–R/W 读写信号
6–E 致能信号
7~14– DB0 ~ DB7 数据线
15–A LED+
16–K LED-

下面是它与51单片机的底层驱动代码:

#include “intrins.h”
sbit rs=0x85;//与1602控制口通信的端口
sbit rw=0x86;
sbit ep=0x87;

//液晶显示数据缓存
unsigned char  dis1[17]={“03-11 19:57:00 2\0”};
unsigned char  dis2[17]={“NOW TEMP: 015.0 \0”};

void lcd_delay(unsigned char ms)
{
  unsigned char i;
  while(ms–)
  {
    for(i=0;i<250;i++)
  {
    _nop_();
    _nop_();
    _nop_();
    _nop_();
  }
  }
}
bit lcd_bz()
{
  bit result;
  rs=0;
  rw=1;
  ep=1;
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  result=(bit)(P2&0x80);
  ep=0;
  return result;
}

lcd_wcmd(unsigned char cmd)
{
  while(lcd_bz());
  rs=0;
  rw=0;
  ep=0;
  _nop_();
  _nop_();
  P2=cmd;
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  ep=1;
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  ep=0;
}

lcd_pos(unsigned char pos)//设定显示位置
{
  lcd_wcmd(pos|0x80);
}

lcd_wdat(unsigned char dat)
{
  while(lcd_bz());
  rs=1;
  rw=0;
  ep=0;
  P2=dat;
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  ep=1;
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  ep=0;
}

lcd_init()//模块初始化,不显示光标
{
  lcd_wcmd(0x38);
  lcd_delay(1);
  lcd_wcmd(0x0c);     
  lcd_delay(1);
  lcd_wcmd(0x06);
  lcd_delay(1);
  lcd_wcmd(0x01);
  lcd_delay(1);
}
 

留下评论

邮箱地址不会被公开。 必填项已用*标注