这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 企业专区 » TI » 【MSP焕新大作战】课程2+任务1+用定时器中断实现数码管的倒计时

共1条 1/1 1 跳转至

【MSP焕新大作战】课程2+任务1+用定时器中断实现数码管的倒计时

高工
2024-05-12 16:29:45     打赏

一.任务需求:用定时器中断实现数码管数值的递减。

数值范围10-0

递减步长1000ms

二.用到的设备:

LP-MSPM0L1306开发板一块

MicroUSB的数据一根

安装 有CCS软件的电脑一条

三.硬件原理和介绍

1.数码管的工作原理

这里用到的数码段是段式数码管,共分为8段,也即8LED,其中有一位是代表小数点,另外的7个按照8字形分成7段排列,按照位置分别为a,b,c,d,e,f,g,可以单独分别点亮对应的段位,不同的组合就可以显示出对应的数字0-9。主流的数码管按照LED的驱动方式分为共阳型驱动数码管和共阴型驱动数码管,共阳驱动是LED的阳极连在一起作为公共端,连接电源供电,通过控制LED阴极来亮灭LED,当LED的阴极置高电平,LED熄灭,当LED的阴极置低电平,LED点亮;共阴驱动是LED的阴极连在一起作为公共端,连接到电源的地上,通过控制LED的阳极来亮灭LED,当控制LED的阳极设置为高电平时,点亮该LED,当控制LED的阳极设置为低电平时,熄灭LED。具体的原理如下图所示:image.png

LED数码管的段位编码对应的字符如下图所示,举例说明,共阳极驱动,要显示数字0,也即下图中的第一行,对应的点亮段位是a,b,c,d,e,f,也即这些位置应该置低,也就是0,其他段位熄灭,也就是dpg设置为高电平,整个的编码设置也就是1100 0000,对应的编码也就是C0,想要显示0数字,传输对应的编码C0就可以了。其他的字符依次类推。

image.png

这里选用的驱动LED数码管模块所用的驱动芯片是74HC595,芯片的封装和引脚定义功能,以及该模块的硬件连接电路原理图如下图所示:

image.png

开发板与数码管硬件接线关系如下图所示:这里共5个引脚连线,VCCSCLKRCLKDIOGND

image.png

相关74HC595的芯片引脚定义和对应的软件控制时序图如下图所示,

image.png

image.png

3.定时器工作原理

定时器分通用定时器TIMG和高级控制定时器TIMA,具有向下计数,向上/向下计数,向上计数三种模式,详细介绍如下图所示:

image.png

定时器TMG的功能方框图,相关的设置步骤流程如下图所示:

image.png

定时器的三种计数模式寄存器设置功能和计数原理如下所示:

image.png

3.软件设计

软件的设计控制流程如下:

image.png

打开CCS软件,复制一个空的工程文件,并打开,在软件的右侧列表可以看到图形配置的选项,如下所示,双击即可打开配置界面首先配置数码管的驱动,主要配置了三个引脚,详细配置界面如下:

image.png

image.png

image.png

接下来是定时器的配置:具体的配置界面如下:

image.png配置完成之后,点击具栏的锤子图标,即可对建立的工程进行编译,编译没有问题会在底部信息栏显示编译完成的提示。

4.关键软件代码

数码管的关键软件代码如下图所示:

1715502202977.png定时器的中断代码如下图所示:定时器定时间隔是10ms,在中断里面计数到100就是1秒,进行数值的递减,当减小到0的时候重新开始从10开始。

1715502230379.png

至此关键的开发完成,后面就是激动人心见证效果的时候。

5.调试和编译下载

调试和编译,编译成功之后底部的状态栏会显示完成。

点击瓢虫的工具栏按钮,或者点击Run菜单下的Debug子项目,或者按下键盘的F11快捷键,可进行下载调试。编译有错误需要进行及时的解决,我这里遇到一些错误,寻求群里的大神,有一些定义问题,及时的解决了。编译没有问题,硬件接好连线,下载程序即可看到效果,暂时拍摄三张,具体效果如下。

image.pngimage.png

image.png




关键词: MSPM0L1306     数码管10秒倒计时    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]