整体框架:
时钟部分:
数码管动态显示:
1.数码管(共阴极)如何显示数字:位选+段选(单个)
位选:138译码器通过P22、P23、P24三个端口输入二进制数(011、000等)来选择连同译码器右边的哪一条线,而这些线又分别连着数码管的LED12345678、决定选择哪一个来显示数字
段选:决定输出什么数字,数码管下方又连着一个编译器,编译器的右端连接每个的abcdefg决定哪一根管亮,左边为二进制输入,0为亮、1为不亮。
如何动态显示:(多个同时由数字)
位选 段选 消影 位选 段选 消影 (输出扫描)
写法:
首先设置一个函数smg(x,y),x代表位选变量,y代表段选变量。
位选:case01234567代表位选编译器中选中哪一根线
段选:设置一个一维数组存储0123456789,在调取数组内的元素代表要用什么数字
最后调用函数即可:
即位选7,段选2(显示2数字)。
如何计时:
定时器构成:
计时单元:
计时原理:常用左上的开关选择处(C/T'=0)圈起来部分为定时器储存部分,每来一个脉 冲这部分加1实现计时功能。
时钟: SYSclk为系统自带时钟,频率为11.0592,为计时单元提供脉冲。
中断系统:(单片机通过配置寄存器来进行内部电路的连接)电路图为第二张图的下半部分。
通过配置手册的设置寄存器如TF=0等一系列使得第二图定时器与中断系统电路连
通起来,实现中断作用。
(注:这一部分不是很懂。)
以上连起来实现了时钟的计时走动功能,接下来通过独立按键来实现时钟的可调功能。
实现时钟可调功能:
利用独立按键调节:
用shi、fen、miao代表。
四个独立按键对应四个接口,P31、P30、P32、P33,等于0时表示按下。(用if语句,当等于0时执行什么操作。)
技巧:可给这些口命名,则后续写代码时方便。
使按下调整时间按键时闪烁:
原理:定义一个量(Timesetflashflag),利用定时中断程序使得数码管上的数每隔一段时间不显示,(Timesetflashflag==0时不显示,=1时显示)则产生闪烁的效果
再用一个if语句让其再按键按下的情况且imesetflashflag==0的情况下,使得数码管显示不显示。
闹钟部分:
设置时钟:
与时钟调节部分相同。这是此时用shi1、fen1、miao1代表。
按键调节:
利用矩阵键盘来进行:(输入扫描)
对比独立按键与之原理相似。
例:按行扫描,如图101那三条线代表选择哪一行,0表示选中。
剩下四条线代表选中的行中的哪一个。
按列扫描的话,则是从那个下面开始数下面的三条线代表选中那一列,上面四条线代表选中 这列的哪一个。
闹钟响:文章来源:https://www.toymoban.com/news/detail-742617.html
利用蜂鸣器,当shi1=shi、fen1=fen、miao1=miao时,则蜂鸣器就响。文章来源地址https://www.toymoban.com/news/detail-742617.html
到了这里,关于51单片机(数码管可调时钟)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!