单片机电子时钟设计毕业论文.doc
文本预览下载声明
一.???? 题目:单片机电子时钟时钟
二.?? ????内容:
设计一个数字时钟,显示范围为00:00:00~23:59:59。通过几个开关进行控制,其中开关K1用于切换时间设置(调节时钟)和时钟运行(正常运行)状态;开关K2用于切换修改时、分、秒数值;开关K3用于使相应数值加1调节;开关K4用于减1调节;开关K5用于设定闹钟,闹钟同样可以设定初值,并且设定好后到时间通过实验箱音频放出一段乐曲作为闹铃。
?选做增加项目:还可增加秒表功能(精确到0.01s)或年月日设定功能。
三.??? 要求:
开关K3进行加1调节时,当加至最大值(时为24,分和秒均为60)时要能正常归零。开关K4进行减1调节时,当减至最小值00时,均能再回到从相应最大值(时为23,分、秒均为59)。闹钟乐曲自定。
四.?????? 电路及功能说明:
??? 电路图如图所示:
?????? ?
????????????????????????????????????????? 图A
?
???????????????????????????????????????????? 图B
?
????????????????????????????????????????????? 图C
该数字钟是用一片AT89C51A单片机通过编程去驱动8个数码管实现的。通过6个开关控制,从上到下6个开关KEY1~KEY6的功能分别为:KEY1,切换至秒表;KEY2,调节时间,每调一次时加1;KEY3, 调节时间,每调一次分加1;KEY4,从其它状态切换至时钟状态;KEY5,切换至闹钟设置状态,也可以对秒表清零;KEY6,秒表暂停.控制键分别与P1.0~P1.5口连接.其中:
A.通过P2口和P3口去控制数码管的显示如图所示P2口接数码管的a——g端,是控制输出编码,P3口接数码管的1——8端,是控制动态扫描输出.
B.从P0.0输出一个信号使二极管发光,二极管在设置的闹钟时间到了时候发光,若有乐曲可以去驱动扬声器实现。
(图A是时钟运行状态,图B是闹钟运行状态,图C是秒表运行状态)
功能说明:
1.? 各个控制键的功能:可对时间进行校准调节(只能加1);按下设置键数字时钟进入闹钟设置状态,设置闹钟的时间;时加1、分加1键是在校准时间时或设置闹钟时间对小时数或分钟数调节而设置的;按下秒切换键就可以进入秒表模式,同时秒表也开始计时,按下秒表暂停、复位键就暂停、归零,如果要重新对秒计时则可以按秒表开始、复位;清零键可以对闹钟清零。
2.? ?AT89C51单片机,通过编写程序对数码显示进行控制。
3.? 八个7段数码管显示时钟和秒表信号。
五.?????? 实验程序流程图:
1.?????? 主程序流程图:
???????? ?
2.? 中断程序流程图
?
????????????
2.?????? 秒表中断程序流程图:
???????????????? ?
3.?????? 按键程序流程图:
第一图为时钟和闹钟的调节.
???
第二图为进入中断和清零
六.?????? 实验结果分析:
此时钟设计是利用protues仿真软件进行仿真。基本上实现了要求的功能,该多功能数字钟实现的时钟显示、闹钟设置和秒表功能,校准时钟时只设计了时加键和分加键以及清零键,没有设置减分减时键。可发通过循环调节得到正确的调节数值。另外,要求有一段乐曲来作为闹钟,可这里只是用了一个二级管的发光来实现这个功能。若用一个扬声器和一个乐曲能够实现。
七.?? 程序清单:
#includereg51.h
#define uchar unsigned char
#define uint unsigned int
#define delay_time 3
uchar k,dat[]={0,0,0,0,0,0,0,0};
uint tcount,t,u;
uchar dat1[]={0,0,0,0,0,0,0,0};
uchar dat2[]={0,0,0,0,0,0,0,0};
uchar alarms[]={0,0,0,0,0,0,0,0};
uchar dis_bit[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
unsigned char? code SEG7[11]={0xC0,/*0*/
?????? ??????????????? ???????????????0xF9,/*1*/
??????? ????????????? ???????????????0xA4,/*2*/
?????????????????????????????? 0xB0,/*3*/
?????????????????????????????? 0x99,/*4*/
?????????
显示全部