基于51单片机的电子时钟
本次设计采用八位数码管显示原理和单个LED的显示原理完全相同。
闹钟提醒电路
本次设计是通过蜂鸣器来完成闹钟提醒的功能的,蜂鸣器与芯片的P2.0相连。
按键控制电路
键盘是最常用的输入设备,是实现人机对话的纽带,具体来说键盘接口应完成以下操作功能: (1)键盘扫描,以判定是否有键被按下; (2)键识别,以确定闭合键的位置; (3)排除多建、复键及去抖。 以上这些功能通常是以软硬件结合的方式来完成的,即在软件的配合下由接口电路来完成。
键盘显示方案
AT89C52的P0口和P1口外接八个LED数码管(LED7~LED0)构成显示 器 , 用 P0 口 LED 的 段 码 输 出 口 , P1 口 做 八 个 LED 数 码 管 的 位 选 输 出 口 , P3.0~P3.2外接三个按键K1、K2、K3构成键盘电路。
硬件电路
显示电路
void time() interrupt 1
//定时器中断
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
tt++;
if(tt==20)
{ tt=0;
miao++;
if(miao==60)
{
miao=0;
fen++;
if(fen==60)
{
fen=0;
shi++;
if(shi==24)
{
shi=0;
}
}
write_n_sfm(n_shi,n_fen,n_miao);
else
write_sfm(shi,fen,miao);
if(n_shi==shi&&n_fen==fen)
//闹钟响1分钟
beep=1;
else
beep=0;
display(a1,a2,a3,a4,a5,a6);
}
//动态显示
中断函数
软件系统设计
单片机资源使用说明
数码管显示模块
P0口作为LED数码管的位选控制端 P1口作为LED数码管的段选控制端 P3.0~P3.2口作为键盘输入端 P2.0口作为蜂鸣器控制端
LED数码管的显示要具有实时性, 将显示函数放到中断中,程序每进入一次 中 断 就 会 显 示 八 位 LED 中 的 一 位 , 实 现 LED的动态扫描。
即在STC89C52的P0口和P1口外接 八个LED数码管构成显示器,用P0口作 LED的段码输出口(P0.0~P0.7对应于LED 的a~dp)
按键控制模块
开启/暂停由外部中断来实现,时间 调整按键由按键扫描来实现。
P1口作为LED的位控输出线,P1口外接四 个按键A、B、C、D(分别对应于P1.4、 P1.5、P1.6、P1.7)用于调整显示接口电
电路原理图
软件系统设计
单片机
本次设计采用八位数码管显示原理和单个LED的显示原理完全相同。
按键控制电路
键盘是最常用的输入设备,是实现人机对话的纽带,具体来说键盘接口应完成以下 操作功能:
(1)键盘扫描,以判定是否有键被按下; (2)键识别,以确定闭合键的位置; (3)排除多建、复键及去抖。 以上这些功能通常是以软硬件结合的方式来完成的,即在软件的配合下由接口电路 来完成。
路。
算法流程图
开始
初始化
Y
判断K1是否按 下?
N
判断K2是否按 下?
N
设置时间加
判断K3是否按 下?
N
设置时间减
Y
设置闹钟
Xianshi_flag= =4?
写入时间显示初值
闹钟判断
蜂鸣器响
显示时间
蜂鸣器不响
主函数
void main()
{
init();
while(1){ Nhomakorabeakey();
if(xianshi_flag==4)
基于51单片机的电子时 钟
目录
CONTENTS
1 功能介绍 2 总体方案设计 3 硬件电路 4 软件详解
电子时钟功能介绍
基本功能
(1)显示时,分,秒,如13-14-00 ; (2) 通过按键调整时间。
附加功能
(1)闹钟功能
总体方案设计
计时方案
利用AT89C52单片机内部的定时/计数器进行中断定时以及时间显示功能, 配合软件延时实现闹钟功能。该方案节省硬件成本,并且可以对单片机指令系 统有更深入的了解,从而锻炼我们C语言编程能力。