今天看了一下评分细则,要求使用定时器,本设计就是据此而设计的。
与“九、基于IT中断的LED闪烁灯”所不同的是将其中的Interval Timer工具箱,改用Timer来实现了,其有其优点:采用16位定时寄存器,因此定时间隔比Interval Timer的长。其它的工具都没有改变,与“九、基于IT中断的LED闪烁灯”的类似,可参考之。
上几张图来看,这是定时器(Timer)的设置:
主函数中的程序:
Timer中断函数中的程序:
把程序下载到RL78/G13开发板上,就会看到D2灯交替地亮2秒灭2秒,由于程序易于理解,就不上视频了。。。
十二、按键控制蜂鸣器
设计介绍:
按键采用中断的方式,设置如下图所示:
蜂鸣器驱动引脚采用PCLBUZ0模式进行驱动,设置如下图:
主函数如下图:
中断函数如下图:
将程序下载到开发板上,观察到的效果如视频所示:
http://v.youku.com/v_show/id_XNDQyMDIxOTA0.html
十三、LCD1602液晶屏驱动
本次实验实现了通过RL78/G13的P1口作为数据Data的输入输出端口--共八位,分别与LCD1602的DB0--DB7相连,即P1n---DBn ;P7.0、P7.1、P7.2分别用于LCD1602的三个控制线RS、R/W、E,即P7.0--RS,P7.1--R/W,P7.2--E相连接。
这其中还用到了一个4ms的延时程序,这是因为,用RL78/G13不是直接控制的液晶点,而是通过控制LCD1602上的芯片来控制液晶屏的,这就涉及到芯片间通信的问题,这当然就离不开时序了,这个延时程序就是用来维持每个信号的,使其能够持续一段时间,等待着LCD1602上的芯片处理完成。这里的延时程序不是采用的循环等待的方式,而是增加了一个Timer工具箱,在其中设定一个标志位,有其来判断延时的中止,从而达到定时的目的。
好了,别的不多说了,上图先:
先来个函数架构:
主函数:
初始化函数和LCD写命令函数:
LCD写数据和整合写字符函数:
中断延时函数:
Timer的中断函数:
再来张LCD1602功能分布图,科普一下,嘿嘿:
最后,上效果图了:
呵呵!效果看上去有点问题,是的,不是别的,是我的LCD1602的RAM地址有点错误,才显示成这样,原本要显示成: I LOVE EEPW ^_^ 的,可惜LCD不给力啊,不过仔细看看那个笑脸还是正确的啊,哈哈,歪好!歪好!高兴就好!
EEPW友们,还等什么,还不快快试试自己板子,做个更有创意的,期待着你们。。。
视频链接:
http://v.youku.com/v_show/id_XNDQyNjgxMzYw.html
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
与电子爱好者谈读图二被打赏50分 | |
【FRDM-MCXN947评测】Core1适配运行FreeRtos被打赏50分 | |
【FRDM-MCXN947评测】双核调试被打赏50分 | |
【CPKCORRA8D1B评测】---移植CoreMark被打赏50分 | |
【CPKCORRA8D1B评测】---打开硬件定时器被打赏50分 | |
【FRDM-MCXA156评测】4、CAN loopback模式测试被打赏50分 | |
【CPKcorRA8D1评测】--搭建初始环境被打赏50分 | |
【FRDM-MCXA156评测】3、使用FlexIO模拟UART被打赏50分 | |
【FRDM-MCXA156评测】2、rt-thread MCXA156 BSP制作被打赏50分 | |
【FRDM-MCXN947评测】核间通信MUTEX被打赏50分 |