此文章谨为课设记录
一、实验要求
题目六 数字电子时钟
基本要求:
额外功能:
二、数字电子秒表硬件连接
硬件系统框图如下:
(一)核心控制器
51 单片机(如 STC89C51)作为系统核心,其内部定时器 用于产生 中断,为计时提供基准时钟。
(二)显示电路
6 位共阴极数码管用于显示时间信息。数码管的 a - g 段分别连接到 P0 口,通过向 P0 口输出不同的段码值来显示 0 - 9 数字。
(三)按键电路
多个按键采用独立按键形式连接到单片机引脚。按键未按下时,对应的引脚通过上拉电阻保持高电平;按键按下时,引脚电平变为低电平。通过软件中的按键扫描程序检测引脚电平变化,实现去抖和功能触发。
(四)蜂鸣器与 LED 电路
蜂鸣器通过输出高低电平控制其发声。LED 灯连接到 P1.7 引脚,用于倒计时警示。在倒计时即将结束根据程序控制 LED 灯闪烁。
三、代码介绍
代码流程图
在程序设计中,进行分模块进行描述:
1、主函数模块,负责初始化工作和等待响应;
2、按键扫描函数
3、显示函数类似对应与显示电路;
4、倒计数处理函数来实现这部分功能;
5、贯穿全局的定时函数,用来产生10ms的中断溢出信号。
系统初始化:设置定时器 0 为 16 位计时模式,计算初值实现 10ms 中断,晶振 12MHz。开启总中断和定时器 0 中断,初始关闭定时器 0。
主程序循环:在无限循环中,依次调用按键扫描函数获取按键状态,根据按键触发相应功能,如控制定时器的启停;调用显示函数更新数码管显示;调用倒计时处理函数处理倒计时逻辑。
按键扫描函数:采用静态变量记录按键状态,实现消抖和功能触发。根据不同按键执行相应操作,如控制计时状态、停止计时、清零数据、记录和读取时间、设置和启动倒计时等。
显示函数:根据不同模式,控制数码管显示相应内容,如计时、倒计时时间以及设置的倒计时初值,通过位选信号和段码输出实现稳定显示。
倒计时处理函数:利用静态变量控制 LED 灯闪烁,在倒计时模式下判断时间是否结束,结束时触发蜂鸣器;在倒计时最后几秒实现 LED 灯闪烁警示,其他时间熄灭。
定时器 0 中断函数:在计时模式下每 10ms 中断一次,实现 centisecond 自增及进位,精确计时,同时重新设置定时器初值 。
如果需要具体原理图工程文件和原代码(实验报告也有)可以通过下方链接下载
链接: https://pan.baidu.com/s/15JGLuF0L-YVonO5lAUArUQ?pwd=gt34 提取码: gt34