
今天看了一下评分细则,要求使用定时器,本设计就是据此而设计的。
与“九、基于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
回复
打赏帖 | |
---|---|
分享一种检测按键状态的方法被打赏20分 | |
周末总结一下,STM32C0系列的开发经验被打赏50分 | |
【换取手持数字示波器】MicrochipMPLABHarmony框架下定时器配置被打赏20分 | |
【换取手持数字示波器】MicrochipMPLABHarmony框架下PWM配置被打赏20分 | |
【Cortex-M】Systick Timer使用被打赏10分 | |
分享汽车防盗系统的组成与分类(一)被打赏5分 | |
VOFA+波形显示+JYD-31蓝牙发送和解析不定长数据被打赏10分 | |
【换取手持数字示波器】-STM32F4PWM控制LED灯管亮度被打赏22分 | |
【换取手持数字示波器】STM32F4驱动RPR-0521RS照度、接近一体型传感器被打赏23分 | |
宏定义和const关键字定义被打赏5分 |