您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 综合/其它 > arduino-入门到精通-20-1602LCD液晶实验
arduino学习笔记10-1602液晶实验本次试验使用arduino直接驱动1602液晶显示文字1602液晶在应用中非常广泛,最初的1602液晶使用的是HD44780控制器,现在各个厂家的1602模块基本上都是采用了与之兼容的IC,所以特性上基本都是一致的。1602LCD主要技术参数显示容量为16×2个字符;芯片工作电压为4.5~5.5V;工作电流为2.0mA(5.0V);模块最佳工作电压为5.0V;字符尺寸为2.95×4.35(W×H)mm。1602液晶接口引脚定义接口说明:1、两组电源一组是模块的电源一组是背光板的电源一般均使用5V供电。本次试验背光使用3.3V供电也可以工作。2、VL是调节对比度的引脚,串联不大于5KΩ的电位器进行调节。本次实验使用1KΩ的电阻来设定对比度。其连接分高电位与低电位接法,本次使用低电位接法,串联1KΩ电阻后接GND。3、RS是很多液晶上都有的引脚是命令/数据选择引脚该脚电平为高时表示将进行数据操作;为低时表示进行命令操作。4、RW也是很多液晶上都有的引脚是读写选择端该脚电平为高是表示要对液晶进行读操作;为低时表示要进行写操作。5、E同样很多液晶模块有此引脚通常在总线上信号稳定后给一正脉冲通知把数据读走,在此脚为高电平的时候总线不允许变化。6、D0—D78位双向并行总线,用来传送命令和数据。7、BLA是背光源正极,BLK是背光源负极。1602液晶的基本操作分以下四种:下图就是1602液晶实物图1602直接与arduino通信,根据产品手册描述,分8位连接法与4位连接法,咱们先使用8位连接法进行实验。硬件连接方式如下图(图中电阻为1K,2K会显示更加清晰)代码如下(直接COPY去Arduino)操作介面,然后烧录即可看到效果intDI=12;intRW=11;intDB[]={3,4,5,6,7,8,9,10};//使用数组来定义总线需要的管脚intEnable=2;voidLcdCommandWrite(intvalue){//定义所有引脚inti=0;for(i=DB[0];i=DI;i++)//总线赋值{digitalWrite(i,value&01);//因为1602液晶信号识别是D7-D0(不是D0-D7),这里是用来反转信号。value=1;}digitalWrite(Enable,LOW);delayMicroseconds(1);digitalWrite(Enable,HIGH);delayMicroseconds(1);//延时1msdigitalWrite(Enable,LOW);delayMicroseconds(1);//延时1ms}voidLcdDataWrite(intvalue){//定义所有引脚inti=0;digitalWrite(DI,HIGH);digitalWrite(RW,LOW);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}voidsetup(void){inti=0;for(i=Enable;i=DI;i++){pinMode(i,OUTPUT);}delay(100);//短暂的停顿后初始化LCD//用于LCD控制需要LcdCommandWrite(0x38);//设置为8-bit接口,2行显示,5x7文字大小delay(64);LcdCommandWrite(0x38);//设置为8-bit接口,2行显示,5x7文字大小delay(50);LcdCommandWrite(0x38);//设置为8-bit接口,2行显示,5x7文字大小delay(20);LcdCommandWrite(0x06);//输入方式设定//自动增量,没有显示移位delay(20);LcdCommandWrite(0x0E);//显示设置//开启显示屏,光标显示,无闪烁delay(20);LcdCommandWrite(0x01);//屏幕清空,光标位置归零delay(100);LcdCommandWrite(0x80);//显示设置//开启显示屏,光标显示,无闪烁delay(20);}voidloop(void){LcdCommandWrite(0x01);//屏幕清空,光标位置归零delay(10);LcdCommandWrite(0x80+3);delay(10);//写入欢迎信息LcdDataWrite('W');LcdDataWrite('e');LcdDataWrite('l');LcdDataWrite('c');LcdDataWrite('o');LcdDataWrite('m');LcdDataWrite('e');LcdDataWrite('');LcdDataWrite('t');LcdDataWrite('o');delay(10);LcdCommandWrite(0xc0+1);//定义光标位置为第二行第二个位置delay(10);LcdDataWrite('Y');LcdDataWrite('i');LcdDataWrite('x');LcdDataWrite('f');LcdDataWrite('o');LcdDataWrite('n');LcdDataWrite('g');LcdDataWrite('-');LcdDataWrite('a');LcdDataWrite('r');LcdDataWrite('d');LcdDataWrite('u');LcdDataWrite('i');LcdDataWrite('n');LcdDataWrite('o');delay(5000);LcdCommandWrite(0x01);//屏幕清空,光标位置归零delay(10);LcdDataWrite('Q');LcdDataWrite('Q');LcdDataWrite(':');LcdDataWrite('1');LcdDataWrite('6');LcdDataWrite('5');LcdDataWrite('6');LcdDataWrite('3');LcdDataWrite('8');LcdDataWrite('3');LcdDataWrite('9');LcdDataWrite('0');LcdDataWrite('4');delay(3000);}
本文标题:arduino-入门到精通-20-1602LCD液晶实验
链接地址:https://www.777doc.com/doc-4971915 .html