51单片机(数码管可调时钟)

 整体框架:

时钟部分:

 数码管动态显示:

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表示选中。

        剩下四条线代表选中的行中的哪一个。

        按列扫描的话,则是从那个下面开始数下面的三条线代表选中那一列,上面四条线代表选中            这列的哪一个。        

 闹钟响:

利用蜂鸣器,当shi1=shi、fen1=fen、miao1=miao时,则蜂鸣器就响。

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值