zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Proteus下仿真arduino控制LCD1602

控制 仿真 Arduino Proteus
2023-09-27 14:27:33 时间

LM1602是一个16列2行的液晶显示器。首先,我们在器件库中找到1602,在器件库中不能搜索1602否则搜不到,我们搜索16列2行,即"16X2",即可得到三个显示屏,我们选择第二个LM016L,这个比较原汁原味,其余两个一个是串口的一个是IIC的。
在这里插入图片描述
这里我们可以采用最普通的接线模式(当然,后面我们还是会介绍比较流行的IIC接法),普通接线模式是指,我们不需要借助于第三方的芯片或者扩展板,直接将LCD与arduino板相连接。连接的方法可以参照arduino中的示例,如果我们不需要搭建真实电路,那么就只需和arduino板连接4个数字口,一个读写RS寄存器选择口,一个是能口E,图如下:
在这里插入图片描述
1602的管脚看起来比较多,其实比较少,把8个数字端口(右边的D0~D7)去掉以后就剩下电源(Vss地,Vdd正,这里的Vee为对比度控制)和读写控制端口了,这里我们必须注意,这个工程中我们主要是对其进行写操作,所以我们这里的读写操作管脚RW直接接了低电平(低电平时进行写操作)。
本电路连接中仅仅用了四个数字口,两个控制口(Rs和E),可以说是连接最简单的一种了。

具体代码如下:

#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd1602(12, 11, 5, 4, 3, 2);

void setup() {
  // set up the LCD's number of columns and rows: 
  lcd1602.begin(16, 2);
  // Print a message to the LCD.
  lcd1602.print("Arduino Uno R3!");
}

void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd1602.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd1602.print(millis()/100);
}

代码非常简单,我们这里直接调用了LiquidCrystal的库文件,并且初始化了一个lcd1602实例,注意这里有6个参数,后面四个参数为数据线连接于arduino板上的端口号(这里设置为2,3,4,5)。前两个参数为连接在arduino板上的12,11端口,它们分别是读写寄存器RS选择口和使能脚E,如果需要更具体的了解1602的管脚内容,可以参考LCD1602的手册。

LiquidCrystal 实例化后,非常容易操作,直接用它的begin方法开启它,告诉它行数很列数,然后就可以用print不停的输出字符在液晶上了。