您当前位置: Arduino >  Aduino用1602制作一个倒计时计数器

扫描二维码,快速下载本应用说明文档(免费)

Aduino用1602制作一个倒计时计数器      

下载: 16  点击: 4103


大小:21.33KB 价格:0.00元 更新日期:2017-03-08 开发者:小R科技
  

Aduino用1602制作一个倒计时计数器
    • 应用名称
    • 所属分类
    • 更新时间
    • 立即下载
    • Aduino用1602制作一个倒计时计数器
    • Arduino
    • 2017-03-08
【Aduino用1602制作一个倒计时计数器】 应用介绍

Aduino用1602制作一个倒计时计数器

概述
            1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。
1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。

 
 
 
 
 
 
 
显示原理

          这里介绍的字符型液晶模块是一种用5x7点阵图形来显示字符的液晶显示器,根据显示的容量可以分为1行16个字、2行16个字、2行20个字等等,这里以常用的2行16个字的DM-162液晶模块来介绍它的编程方法。DM-162采用标准的14脚接口,其中VSS为地电源,VDD接5V正电源,V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。D0~D7为8位双向数据线。
      DM-162液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如表1所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”

 
 
 
 
实验步骤

     本实验采用Aduino控制器来驱动1602显示英文字体或者数字,不仅如此,我们还要通过编写代码在Arduino控制器实现倒计时的一个功能。由于Arduino的GPIO口的有限,因此采用seeed的Grove-LCD RGB Backlight的1602液晶显示屏,它有个特点,就是可以使用IIC驱动,整个只需要4根线 VCC GND SDA SCL即可,大大节约了 Aduino接口资源,此过程中还增加2个按键功能可以设置计时器的时间。

 
     整个实验接线方式,液晶屏VCC连接Arduino的5V,SDA-SDA,SCL-SCL.GND-GND。按键1的S端接2号引脚,按键2的S端接3号引脚。
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
代码解析

          首先呢需要将压缩包中的GroveLCDRGB.zip和MsTimer2.zip
俩个库文件包导入Arduino IDE 
 
 
函数说明:
1. lcd.setRGB(colorR, colorG, colorB);
  设置1602显示屏的背光颜色
2. lcd.setCursor(x, y);
  设置要显示的位置,比如x代表第几列,y代表第几行。
3. lcd.print("xxxx")
  显示要设置的的字
4. attachInterrupt(0,Key1Scan,CHANGE);
  外部中断0 (可设置成1即为外部中断1),Key1Scan代表中断函数,          CHANGE代表中断引脚有电平跳变的时候响应中断
5. MsTimer2::set(1000, interrupt);
  定时器2中断,1000ms中断响应一次。中断函数为interrupt
6. MsTimer2::start();
  开启定时器2
7. Display()
  1602显示时分秒计数函数
8. Key1Scan()
  按键1检测函数,检测松开UP,短按SHORT,长按LONG
9. Key2Scan()
  按键2检测函数,检测松开UP,短按SHORT,长按LONG
10.SetLcd()
   按键设定定时时间,按键1长按进入设置状态,再长按退出,短按为数值减1。按键2长按进入切换时、分、秒设置,短按为数值加1。
11. InitTimer()
   读取上次设置的计数时间,每设置计数的时间都会将时间保存到eeprom,每次上电启动的时候运行此函数,从eeprom读取上次的数值并显示

 
 
 
实验现象

       打开电源开关可以看到1602显示器上面显示我们程序里面设定的时间,并有进入倒计时的状态,直到计数值为0停止计数。
实验小结
     本节内容教大家用Aduino驱动1602做一个倒计时的小实验,通过这个实验可以看到,用160和一个单片机也可以做出这样一个有意思的东西,倒计时我们可以在计数停止的时候通过单片机做一些surprise的事情,比如说定时炸弹呀!!!还有再改进一下的话可以做一个桌面小日历之类的!

网友评论仅供网友表达个人看法,并不表明 小R科技 Robots-Store机器人应用商城 同意其观点或证实其描述
昵称: 验证码: