第一范文网 - 专业文章范例文档资料分享平台

基于单片机的智能电子钟系统设计设计 - 图文

来源:用户分享 时间:2025/5/26 7:59:54 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

(3)动态显示的核心在于依次选中一块数码管,并在此之前将相应数码管要显示的数字的段码送到端口,进行相应的延时后关闭数码管选通信号。不断执行上述过程就可以实现较为稳定的动态显示。

每次进入主程序都首先判断是否到了1s,到了则继续执行,否则,返回中断。

为了在显示完秒之后还能继续显示小时的十位,必须有一个用来计数的单元,用以区分当前显示的是小时还是分钟,还是秒,并以此作为仅次于显示次数N的循环。

对每一个单元(30H~32H)的两位BCD码的显示,用一位(21H).0来指示即将显示的是十位还是各位,据此控制刚才所说的单元指示数值是否用该加一或者重新初始化。

由此在DISPLAY子程序中有3重循环。调用入口参数为30H~32H单元的数值。

(4)半秒提示:采用两个发光二极管,每隔半秒闪烁。

中断5次就是半秒,并在相应的分支里设置P3.6和P3.7,保证二者同时取反即可。

这可以放在显示子程序内部,保证时间显示和半秒闪烁的同步,同时可以节约计数器。

(5)上下午指示:采用两个发光二极管来指示上下午。

只要判断30H单元的内容与11H相比较就可以知道是上午还是下午了,在分支语句里控制相应的灯亮了就行。如上所述,将它放置在显示子程序里较为方便。

时间显示模块的仿真结果

时分秒 上午

半秒提示

(三)按键模块

ADJUST的主体部分就是检测是否有按键按下,如果没有只是调用显示子程序,而有的话转去执行相应的分支语句。

为了防止干扰,我们便写了一个延时5ms左右的子程序,若是经过延时后,按键信号依然有效,则认定是有效信号,否则为干扰,返回程序起始点重新检测。

K1可以控制实现定时,所以定时器计数器依然是0在起作用,在其分支语句里根据按键次数使指针指向不同的单元(小时、分钟),然后检测K2\\K3的信号到来。

在K2\\K3的分支语句里实现指针所指向单元的加一或者减一,但是注意要按照时间规则来,对加一或者减一结果进行调整,否则可能出错。

对单元的加一或者减一直接反映到显示子程序和定时器计数器0或者1的16位计数单元里,所以,每次更改后的值就相当于对时间确定调节,并从该处继续计时,这样就实现了调时功能。

K4的分支语句要求实现定闹,它与K1分支语句的不同之处是更

改当前计数器为1,关闭0,在计数器1的中断服务程序里可以实现倒计时功能。

元器件:按钮开关

K1:控制调时 K3:对应单元减一 K2:对应单元加一 K4:控制定闹

(四)闹钟模块

(1)计时器T1的倒计时

同样是1s的倒计时,只是在中断程序里实现对

计时单元的减一,但在减一之前检测是否为0,如果是就调用报警子程序,如果不是则按照规则减一,注意的同样是数值的调整。

调整结束后返回ADJUST程序,继续检测,这样就可以实现连续调节。

基于单片机的智能电子钟系统设计设计 - 图文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c80cik3pomx036aw5tvxo0daes3y38300x65_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top