小项目:2.3寸四位LED数码管定时器(定时器中断+外部中断+SM16106SC)
开始先上个图吧: 
从接到老师这个小任务到昨天完成,大概花了9天。结果今天早上直接交给老师了,其实比较遗憾吧,没多拍点图!。。搞得现在想写个小总结都没得实物资料了;
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
先把后面给老师写的使用介绍摆上来吧
供电方式 : 安卓数据线连接电源
(上电默认进入正常计时状态)
四个按键的使用方式:
1号按键: 所有参数复位(注:除倒计时参数外),回归正常计时状态。2号按键: 当处于正常计时状态时,按下2号按键,进入设定倒计时状态,数码管相对应改变的位不断闪烁;当处于设定倒计时状态时,再次按下2号按键,进入倒计时状态,按下4号按键,开始倒计时。3号按键: 当2号按键按下处于设定倒计时状态时,通过按下3号按键来控制数码管相对应改变的位,并使其不断闪烁,方便观测。(注:计时状态时该按键无用)4号按键: 在计时状态,控制开始计时和停止计时;在设定倒计时状态时,控制数码管闪烁的位不断增大。
}
注1:只有当处于倒计时状态时,并且时间倒数为00:00,蜂鸣器才会发出警报,持续3秒自动停止
注2:若想回归正常计时状态,按下1号按键即可
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
原理图+PCB


、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
使用材料(核心部件):
1、 2.3寸的数码管可真的不是那么好找的,给想要做大号数码管的同学推荐这家店,东西确实不错,资料也很好(SM16106SC真的是意想不到的好用)
链接: https://item.taobao.com/item.htm?spm=a1z09.2.0.0.4b3e2e8dsQE5BP&id=524168806739&_u=72dk63bp626d.
2、stm32f103c8t6 核心板
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
功能迭代:
1、第一代【全闪】
显示数码管不就不再赘述了,不过感兴趣的同学还是可以好好研究下SM16106SC这个芯片,确实是好用,比之前了解到的74HC595这些更合适多位数码管的使用情况;
在实现了四位数码管的显示后,分别显示了分和秒,通过定时器实现了每1秒加一次数字,把数码管显示函数果断的直接丢主函数的while(1)里面;
最终功能是文章开头那个,第一代在普通计时的基础上,简单的写了倒计时设定程序,但为了让人能够直观的看出现在所处的模式,决定在处于倒计时设定状态时,所有的数码管都会不断的闪烁,同时KEY3 和 KEY4 (WK_UP)分别控制分钟的加和减,(即第一代没有写设定秒的程序,只能从分钟开始设定),设定好后再次按下LEY2按键,倒计时状态确定,按下KEY4,倒计时开始。
2、第二代【全闪+外部中断】
其实程序没做多大改动,只是把原来按键的四个引脚,另外配置了四个外部中断,重新巩固了一下哈哈哈,毕竟也有段时间没用了;
为什么要配置外部中断呢? 其实原本的功能也是能用的,配置的目的就是为了更快!更精准!
因为发现直接GPIO高低电平检测会导致有时候按键无法及时检测,或者检测的不准,毕竟机械式的按键会有误触啊什么的,按键消抖也很难完全优化好;
由于没有用操作系统,又不能把程序放在主函数while(1)里面,所以只能将其放在定时器TIM里,
其实第二种方案就是多配制一个更高优先级的定时器,然后用来按键检测,这样子就不会因为有别的函数执行影响到按键检测了;
可还是外部中断稳一点吧,毕竟先来个上升沿检测,再来按键的高低电平检测,两者结合才是最稳的!
然后就是把按键检测从TIM里面移到中断里,做好变量声明就好了
3、第三代【单个闪+外部中断】
第三次改进就是最终版本了,也就是文章一开头写的那些东西;
现在讲讲是怎么从全闪变为单个闪的!;
~其实一开始自己是陷入思维误区了,想着像原来学校的大开发板一样,只要不对数码管进行片选,数码管才能不亮
前两代实现倒计时设定状态的亮暗是通过SM16106SC的芯片指令,
关闭了所有的并行输出,导致数码管全暗;
~后面还在发愁,怎么才能做到单个亮灭呢,这样子不就能通过两个按键,实现(一个控制单个亮灭的位,一个使其数字++),这样子就能设定秒的倒计时了,而且,会好看一点。
后面突然醒悟过来,! 这不是直接发送一个‘ ’就好了么(’ '是字符空格的意思),然后我所做的事就是重新编辑了数据的逻辑关系,设定了当前亮暗位的控制,字符和数字的结合显示等等等等吧,反正也是不停地调整出来的
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
好了,就当成一个自己设计小东西的过程记录吧!,哈哈哈,不知道有没有同学想要我这资料,到是整理好了都哈哈哈哈哈。
(就是代码没有很多注释,毕竟花的时间不是那么久,很快就赶出来了)
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
