×
嵌入式 > 技术百科 > 详情

四位数据口1602液晶显示

发布时间:2020-06-08 发布时间:
|
//*****************************************************************
  /*
    程序功能:显示两行字符并且整屏左移 (程序使用在接口为4位的1602液晶)
  涉及芯片:1602液晶显示器
  */
//*****************************************************************

#include
#define uint unsigned int
#define uchar unsigned char
sbit rs=P2^0;//数据/命令选择端(H/L)
sbit rw=P2^1;//读/写选择端(H/L)
sbit en=P2^2; //使能选择端
uchar code mingzi[]="Gui fa zhi !_!  "; //定义数据mingzi【】 
uchar code num[]="tel:18778434282 "; //定义数组num【】
void delay(uint time)//延时函数(运行的时间与晶振有关系)
 {
  uint i,j;
  for(i=time;i>0;i--)
    for(j=110;j>0;j--);
 }
void write_com(uchar mingling)//命令输入函数
 {
   uchar gao,di; //定义高、低四位
   gao=mingling&0xf0;//分出高四位
   di=(mingling<<4)&0xf0;//分出低四位
  //==========================================读走高四位
   P2=gao;//让数据(mingling)高四位有效
   rs=0;//rs端为低电平时,为接收命令 
   delay(5);
   en=1; //en一个高脉冲读走高四位数据(mingling)
   delay(5);
   en=0;//把使能端拉回低电平
 //============================================读走低四位
   delay(5); 
   P2=di;//让数据(mingling)低四位有效
   rs=0;//rs端为低电平时,为接收命令
   delay(5);
   en=1 ;//en一个高电平读走低四位命令(mingling)
   delay(5);
   en=0;//把使能端拉回低电平
 }
void write_date(uchar shuju)//数据输入函数
 {
  uchar gao,di;
  gao=shuju&0xf0;//分出高四位
  di=(shuju<<4)&0xf0;//分出低四位
//=======================================读走高四位
  P2=gao;//让数据(shuju)高四位有效
  rs=1;//rs端为高电平时,为接收数据
  delay(5);
  en=1;//en一个高电平读走低四位数据 (shuju)
  delay(5);
  en=0;//把使能端拉回低电平
//============================================读走低四位
  delay(5);
  P2=di;//让数据(shuju)低四位有效
  rs=1;//rs端为高电平时,为接收数据
  delay(5);
  en=1;//en一个高电平读走低四位数据(shuju)
  delay(5);
  en=0;//把使能端拉回低电平
 }
void chushihua()
 {
  rw=0;//把数据/命令选择端先置为零
  en=0;//把使能端先置为零
  write_com(0x28);//设置16*12显示,5*7点阵,4位数据接口
  write_com(0x01);//清屏
  write_com(0x0c);//显示开启,不显示光标
  write_com(0x06);//整屏不移动
 }
void main()//主函数
 {
   uint i,j; 
   chushihua();//对液晶初始化
   while(1)//死循环
    {
      write_com(0x80);
     for(i=0;i<16;i++)
      {
          write_date(mingzi[i]);
      }
  write_com(0x80+0x40);
     for(j=0;j<16;j++)
      {
          write_date(num[j]);
      }
  write_com(0x18);//写控制字,在英文文档里介绍。0x18为左移,0x1c为右移
  }
  }
 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
iPhone将是质的飞跃:苹果A14处理器+高通X55基带