
今天看了一下评分细则,要求使用定时器,本设计就是据此而设计的。
与“九、基于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
回复
打赏帖 | |
---|---|
嵌入式LinuxC语言程序调试和宏使用技巧被打赏50分 | |
让代码中包含最新的编译时间信息被打赏50分 | |
rtthread硬件加密--2crc加密分析被打赏10分 | |
【分享开发笔记,赚取电动螺丝刀】mcxa156使用低功耗定时器适配硬件RTC框架被打赏26分 | |
【STM32F769】AI之与本地deepseek对接被打赏50分 | |
Buck电路工作在CCM模式下电感电流的计算公式是什么?被打赏5分 | |
buck电路工作原理被打赏5分 | |
基于MSPM0L1306的MODBUS-RTU协议通讯实验被打赏100分 | |
我想要一部加热台+多合一调试工具被打赏18分 | |
每周了解几个硬件知识+485硬件知识分享被打赏10分 |