yichangzhang 发表于 2012-11-7 17:14:45

零成本学Arduino单片机之1602液晶和PWM灯


现在的时间已经来到了2012年11月了,一种易学好用的Arduino单片机正在风靡全球。所以我把兴趣点从51转到了Arduino,是不是这山望那山高,也不是的,单片机是拿来用的,不是用来学的,Arduino因为更方便“用”,而且会了51,学习Arduino单片机也就是分分钟的时间,所以转到Arduino单片机来做应用也是自然进化的结果。
   上一篇文章《零成本学Arduino单片机之入门》提到了Arduino单片机的5点优势,其中有一个优势是:“针对周边I/O设备的Arduino编程,由于很多I/O设备都随之带有库文件或者样例程序,所以在自己的程序中,可以引用库文件中的函数,或复制样例程序,然后修改下其中的参数,即可迅速编写出大段大段的复杂程序,从而放大了您的编程能力。”,所以有了Arduino单片机可能就不需要了解上述视频所介绍的1602液晶工作原理以及软件指令与硬件底层电路之间对应关系。完全可以把1602液晶模块看成黑匣子,只要知道1602液晶11个引脚哪几根是控制引脚,哪几根是数据引脚就OK了!    Arduino确实不是省油的灯,早就帮你准备好了一切,1602液晶有专门的函数库,即LiquidCrystal,这个函数库相关资讯,可以从官网了解到,http://arduino.cc/en/Tutorial/HomePage。
   LiquidCrystal函数库针对1602液晶的数据传送有两种模式,一种是8bit模式,一种是4bit模式。8bit的传送速度快,是因为显示的字符都是ASCII码,ASCII码是8位二进制数组成,所以8bit刚好一次就把字符的二进制码一次传完,而4bit则是需要将字符拆成两半,一次只传送4bit,两倍时间才可以把数据传完,不过4bit模式的好处是需要的数据引脚少了一半,方便硬件连线。    8bit模式需要D0~D7引脚,4bit只需后四个引脚D4~D7。不管是哪种模式控制引脚都有3个,分别为:RS、RW、Enable。    4bit模式的LiquidCrystal申明函数为:LiquidCrystal(RS, RW, Enable, D4, D5, D6, D7);    8bit模式的LiquidCrystal申明函数为:LiquidCrystal(RS, RW, Enable, D0, D1, D2, D3, D4, D5, D6, D7);
这篇文章介绍的仿真项目中1602液晶显示采用的是8bit模式,用到的3个控制引脚和8个数据引脚,如下图所示,它们分别连到了Arduino单片机11个数字端口上,根据8bit模式的LiquidCrystal申明函数的参数格式和Arduino单片机与1602液晶的引脚连线关系,1602液晶引脚与Arduino数字端口对应关系,可申明为:LiquidCrystal lcd(11,12,13,2,3,4,5,6,7,8,10)。

采用实物来完成1602液晶显示,我选用的设备是DFRobot公司的IIC/TWI LCD1602液晶模块,该液晶模块的说明书网址为:https://wiki.dfrobot.com.cn/index.php?title=IIC/TWI_LCD1602%E6%B6%B2%E6%99%B6%E6%A8%A1%E5%9D%97_(SKU:DFR0063)。   IIC/TWI LCD1602液晶模块在1602液晶基础上加装了I2C接口,使LCD1602液晶与Arduino单片机的连线从原来的11根线缩减到4根线,这4根线为SDA、SCL、GND和VCC,它们能直接与层叠在Arduino控制板上的Xbee传感器扩展板的I2C专用端口连接起来,于是较原先的1602液晶的硬件连线更加简捷方便。由于1602液晶加装了I2C接口,所以不能直接用官方的LiquidCrystal函数库了,但不要紧,可以用DFRobot公司提供的LiquidCrystal_I2C函数库,加上用于I2C通讯的官方Wire函数库,有了这两个函数库文件,再借助DFRobot公司产品说明书网址中提供的样例程序,应该可以很容易编写自己的程序了。
http://www.tudou.com/v/KUTrW264BZ4/&rpid=96368873&resourceId=96368873_04_05_99/v.swf
全文见博客文章:http://www.eefocus.com/zhang700309/blog/12-11/288060_bcff3.html。

20060606 发表于 2020-8-26 05:59:10

感谢分享
页: [1]
查看完整版本: 零成本学Arduino单片机之1602液晶和PWM灯