ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

LCD液晶显示屏的应用

2022-02-04 13:02:12  阅读:200  来源: 互联网

标签:液晶 Enable 引脚 int digitalWrite 显示屏 HIGH LCD delayMicroseconds


LCD液晶显示屏的应用

LCD显示器需要由驱动芯片控制,控制芯片已经集成还在显示器中了。LCD由灰色的像素组成。一个典型的16x2LCD可在两行中显示16个字符,每个字符由5个像素宽、8个像素高组成。如果在显示器上把对比度设的很高,32组5x7像素将变得可见

  • 1602液晶显示文字试验

    • 两组电源。一组是模块的电源,一组是背光板的电源,一般均适用5v供电,本次试验背光使用3.3v供电也可以工作

    • VL是调节对比率的引脚,串联不大于5k欧的电位器进行调节。本次实验使用1k欧的电阻来设定对比度。其连接分高电位与低电位接法,本次使用低电位接法,串联1k欧电阻后接GND

    • RS是很多液晶上都有的引脚,是命令/数据选择引脚。该脚电平为高时表示将进行数据操作;为低时表示进行命令操作

    • RW也是很多液晶上都有的引脚,是读写选择端。该脚电平为高时表示要对液晶进行读操作;为低时表示要进行写操作

    • E同样也是很多液晶模块上都有的引脚,通常在总线上。信号稳定后给一正脉冲通知把数据读走,在此脚为高电平的时候总线不允许变化

    • D0~D7。8位双向并行总线,用来传送命令和数据

    • BLA是背光源正极,BLK是背光源负极

    • int DI=12;
      int RW=11;
      int DB[]={3,4,5,6,7,8,9,10}; //使用数组来定义总线需要的引脚
      int Enable=2;
      
      void LcdCommandWrite(int value)  {
        //定义所有引脚
        int i=0;
        for (i=DB[0];1<=DI;I++)  //总线赋值
        {
          digitalWrite(i,value & 01);  //因为1602流经信号识别是D7~D0,这里用来反转信号
          value>>=1;
        }
        digitalWrite(Enable,LOW);
        delayMicroseconds(1);
        digitalWrite(Enable,HIGH);
        delayMicroseconds(1);  //延时1ms
        digitalWrite(ENable,LOW);
        delayMicroseconds(1);  //延时1ms
      }
        Void LcdDataWrite(int value)  {
          //定义所有引脚
          int i=0;
          digitalWrite(DI,HIGH);
          digitalWrite(RW,HIGH);
          for(i=DB[0];I<=DB[7];i++){
            digitalWrite(i,value & 01);
            Value>>=1;
          }
          digitalWrite(Enable,LOW);
          delayMicroseconds(1);
          digitalWrite(Enable,HIGH);
          delayMicroseconds(1);
          digitalWrite(Enable,LOW);
          delayMicroseconds(1); //延时1ms
        }
      void setup (void) {
        int i=0;
        for(i=Enable;i<=DI;i++){
          pinMode(i,OUTPUT);
        }
        delay(100);
        //短暂的停顿后初始化LCD
        //用于LCD控制需要
        LcdCommandWrite(0x38);//设置为8-bit接口,2行显示,5x7文字大小
        delay(64);
        LcdCommandWrite(0x38);
        dealy(50);
        LcdCommandWrite(0x38);
        delay(50);
        LcdCommandWrite(0x06); //输入式设定
                               //自动增量,没有显示不移位
        delay(20);
        LcdCommandWrite(0x0E); //显示设置
                               //开启显示屏,光标显示,无闪烁
        delay(20);
        LcdCommandWrite(0x01); //屏幕清空,光标位置归零
        delay(20);
        LcdCommandWrite(0x80); //显示设置
                                //开启显示屏,光标显示,无闪烁
        delay(20);
      }
      void loop(void); {
        LedCommandWrite(0x01);
        delay(10);
        LedCommandWrite(0x80+3);
        dealy(10);
        //写入欢迎信息
        LedCommandWrite(W);
        LedCommandWrite(e);
        LedCommandWrite(l);
        LedCommandWrite(c);
        LedCommandWrite(o);
        LedCommandWrite(m);
        LedCommandWrite(e);
        LedCommandWrite();
        LedCommandWrite(t);
        LedCommandWrite(o);
        delay(10);
        LedCommandWrite(0xc0+1);//屏幕清空,光标位置归零
        delay(10);
        LedDataWrite(g);
        LedDataWrite(e);
        LedDataWrite(e);
        LedDataWrite(k);
        LedDataWrite(-);
        LedDataWrite(w);
        LedDataWrite(o);
        LedDataWrite(r);
        LedDataWrite(k);
        LedDataWrite(s);
        LedDataWrite(h);
        LedDataWrite(0);
        LedDataWrite(p);
        delay(10);
        LcdCommandWrite(0x01);  //屏幕清空,光标位置归零
        delay(10);
        LedDataWrite(I);
        LedDataWrite();
        LedDataWrite(s);
        LedDataWrite(m);
        LedDataWrite();
        LedDataWrite(h);
        LedDataWrite(o);
        LedDataWrite(n);
        LedDataWrite(g);
        LedDataWrite(y);
        LedDataWrite(i);
        delay(3000);
        LcdCommandWrite(0x02);  //设置模式为新文字替换老文字,无新文字的地方显示不变
        delay(10);
        LcdCommandWrite(0x80+5);  //定义光标的位置为第一行第六个位置
        delay(10);
        LedDataWrite(t);
        LedDataWrite(h);
        LedDataWrite(e);
        LedDataWrite();
        LedDataWrite(a);
        LedDataWrite(d);
        LedDataWrite(m);
        LedDataWrite(i);
        LedDataWrite(n);
        delay(5000);
        }
      

       

标签:液晶,Enable,引脚,int,digitalWrite,显示屏,HIGH,LCD,delayMicroseconds
来源: https://www.cnblogs.com/zhoumubaiyu/p/15862690.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有