设计任务:
利用AT89C51单片机实现电子时钟和秒表计时的功能,电子时钟可以通过液晶屏显示时间,日期等信息,数字秒表要通过LCD显示当前计时信息,开始/结束,清零功能
设计要求:
基于单片机的电子时钟+数字秒表设计要求:
(1)显示当前时间;
(2)显示当前日期
(3)按键实现电子时钟和数字秒表的功能切换
(4)按键实现秒表停止计时
(5)按键实现秒表复位
此次设计主要是应用单片机来设计电子时钟,硬件部分主要分以下电路模块:显示电路用8个共阴数码管分别显示,小时、分钟和秒,通过动态扫描进行显示,从而避免了译码器的使用,同时节约了I/0端口,使电路更加简单。单片机采用AT89C51系列,这种单片机应用简单,适合电子钟设计。
图1.整体设计框图
3.1输入部分:
在本实验中主要用用P3口输入按键信号,还用到了特殊的P0口。对于P0口,由于其存在高阻状态,为了实现开关功能,给其添加上拉电阻,具体如下图所示:
3.2输出部分:
本电路的输出信号为7段数码管的位选和段选信号,闹铃脉冲信号,提示灯信号。本实验的数码管是共阴的,为了防止段选信号不能驱动数码管,故在P1口连接上拉电阻后,再送段选信号,以提高驱动,位选信号直接从P2口接入。
3.3晶振与复位电路:
本实验单片机时钟用内部时钟,复位电路为手动复位构成,模块如下:
首先选用8051单片机为主控芯片,74LS245为六位共阴数码管的驱动芯片用于数码管显示驱动,以12MHz晶振与两个10k电阻组成该硬件系统时钟信号发生器,并选用四个按键实现功能的切换和显示控制。
数据传输采用总线模式P0端口通过上拉电阻连接74LS245芯片,为数码管驱动端,P1端口为数码管数据端,负责单片机程序输出数据传送至数码管。
12MHz晶振通过两个10uf电容输出一毫秒延迟传入单片机主程序,用于时钟和秒表程序的毫秒响应
K1按键连接P3.1接口输入TX0中断,呼叫切换显示程序请求,软件部分通过端口监听实现功能的切换,K2按键连接P3.2接口输入INT0中断,实现调时和计时开始功能,K3按键连接P3.3接口接入INT1中断,通过秒表清零消隐子程序实现秒表清零和时钟选位调节。
Delay函数模块,提供晶振时钟信号接口,用于时间和秒表的数字定时显示;
Time0,Time1为定时器函数模块,用于提供时钟和秒表的定时器接口;
Display0时间显示模块,实现六位数码管的数字位选消隐和延时;
Display1时间显示模块,实现六位数码管的数字位选消隐和延时;
Display2时间设置模块,通过if语句嵌套,判断对应接口按键
KEY_Time_Set为时间设置按键监听函数,当按下对应按键执行各位加减操作;
KEY_miaobiao为秒表功能函数,实现秒表开始,暂停,和复位功能
Mode_K1为按键模式选择函数,判断现阶段系统处于那种状态调用相对应的按键接口
全部代码如下
元件清单:
链接: 下载地址.
到此这篇51单片机电子时钟秒表(51单片机秒表计时)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/77922.html