基于51单片机可调数字钟的设计 联系客服

发布时间 : 星期一 文章基于51单片机可调数字钟的设计更新完毕开始阅读ad2d252f227916888586d72e

图3.2时钟振荡电路图

3.3键盘控制电路

键盘分编码键盘和非编码键盘。键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或键值的称为编码键盘,如计算机键盘.而靠软件编程来识别的称为非编码键盘;

在单片机组成的各种系统中,用的最多的是非编码键盘。也有用到编码键盘的。非编码键盘有分为:独立键盘和行列式(又称为矩阵式)键盘。下图5-6是非编码键盘式控制电路。

图3.3 键盘控制电路

按键在闭合和断开时,触点会存在抖动现象为使CPU能正确地读出端口的状态,对每一次按键只作一次响应,就必须考虑如何去除抖动,常用的去抖动的方法有两种:硬件方法和软件方法。单片机中常用软件法,软件法其实很简单,就是在单片机获得端口为低的信息后,不是立即认定按键已被按下,而是延时10毫秒或更长一些时间后再次检测端口,如果仍为低,说明按键的确按下了,这实际上是避开了按键按下时的抖动时间。而在检测到按键释放后(端口为高)再延时5-10个毫秒,消除后沿的抖动,然后再对键值处理。不过一般情况下,我们通常不对按键释放的后沿进行处理,实践证明,也能满足一定的要求。

4

4.系统的软件设计

4.1系统软件设计流程图

这次的数字钟设计用到很多子程序,最好将它们分为若干个相对独立且相互联系的部分。主程序是先开始,然后启动定时器,定时器启动后在进行按键检测,检测完后,就可以显示时间。以下是数字钟工作的流程图。

开始 是 R键按否 显示初始化,设置定时器,定时50毫秒,根据计数值显示时间 否 H键按是 否 M键按是 否 S键按是 秒计数加1 到60秒? 是 秒计数清零 分计数加1 否 否 到60分? 是 分计数清零 小时计数加到24小是 小时计数值清0 否 图4.1 数字钟工作流程图

5

4.2 系统中断流程图

单片机一般允许有多个中断源,当几个中断源同时向CPU请求中断时,就存在CPU优先响应哪一个中断请求源的问题(优先级问题),一般根据中断源的轻重缓急排队,优先处理最紧急事件的中断请求,于是便规定每一个中断源都有一个中断优先级别,并且CPU总是响应级别最高的中断请求。

当CPU正在处理一个中断源请求的时候,又发生了另一个优先级比它高的中断源请求,如果CPU能够暂时中止对原来中断处理程序的执行,转而去处理优先级更高的中断源请求,待处理完以后,再继续执行原来的低级中断处理程序,这样的过程称为中断嵌套。

以下图是定时器中断服务子程序流程图

开始 显示初始化,设置定时器,定时50根据计数值显示时间 秒计数加1 到60秒? 是 分计数加1 否 否 到60分? 是 小时计数加到24小是 所有计数值清0 否 图4.2 定时器中断服务子程序流程图

6

4.3子程序说明

4.3.1 按键扫描

按键处理是先检测秒按键是否按下,秒按键如果按下,秒就加1;如果没有按下,就检测分按键是否按下,分按键如果按下,分就加1;如果没有按下,就检测时按键是否按下,时按键如果按下,时就加1;如果没有按下,就检测复位键是否按下,复位健按键如果按下,时钟就复位。如果没有按下,把时间显示出来。

4.3.2 数码管动态扫描

时间显示是先秒个位计算显示,然后是秒十位计算显示,再是分个位计算显示,再然后是分十位显示,再就是时个位计算显示,最后是时十位显示。 动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留特性,使人的感觉好像各位数码管同时都在显示。

7