电子时钟课程设计--proteus环境下的电子时钟设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机课程设计
说明书
设计题目: proteus环境下的电子时钟设计系别:电控系
专业班级:
学生姓名:
学号:
指导老师:
日期:
目录
1.设计要求 (3)
1.1实验目的 (3)
1.2系统功能 (3)
1.2.1基本功能 (3)
1.2.2扩展功能 (3)
2.系统设计 (3)
2.1实验原理 (3)
2.2实验分析 (4)
2.2.1电路的总体设计 (4)
2.2.2程序的总体设计 (4)
3.单元电路设计 (6)
3.1输入部分 (6)
3.2输出部分 (7)
3.3晶振与复位电路 (7)
4程序设计 (8)
4.1延时模块 (8)
4.2中断服务程序 (9)
4.3主程序 (11)
5.系统仿真 (14)
6.参考文献 (16)
1.设计要求
1.1实验目的
1. 学习8051定时器时间计时处理、按键扫描及LED数码管显示的设计方法。
2. 设计任务及要求利用实验平台上4个LED数码管,设计带有闹铃功能的数字时钟
1.2系统功能
1.2.1基本功能
1. 在4位数码管上显示当前时间。显示格式“时时分分”
2. 由LED闪动做秒显示。
3. 利用按键可对时间及闹玲进行设置,并可显示闹玲时间。当闹玲时间到蜂鸣
器发出声响,按停止键使可使闹玲声停止。
4.实现秒表功能(百分之一秒显示)
1.2.2扩展功能
1.日历功能(能对年,月,日,星期进行显示,分辨平年,闰年以及各月天数,并调整)
2.音乐闹铃(铃音可选择,闹铃被停止后,闪烁显示当前时刻8秒后,或按键跳入正常时间显示状态)
3.定时功能(设定一段时间长度,定时到后,闪烁提示)
4.倒计时功能(设定一段时间长度,能实现倒计时显示,时间长减到0时,闪烁提示)
5.闹铃重响功能(闹铃被停止后,以停止时刻开始,一段时间后闹铃重响,且重响时间的间隔可调)
2.系统设计
2.1实验基本原理
利用单片机定时器完成计时功能,定时器0计时中断程序每隔0.01s中断一次并当作一个计数,设定定时1秒的中断计数初值为100,每中断一次中断计数初值减1,当减到0时,则表示1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了。
为了将时间在LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要译码器,数据锁存器等较多硬件,可采用动态显示法实现LED显示,
通过对每位数码管的依次扫描,使对应数码管亮,同时向该数码管送对应的字码,使其显示数字。由于数码管扫描周期很短,由于人眼的视觉暂留效应,使数码管看起来总是亮的,从而实现了各种显示。
2.2实验设计分析
针对要实现的功能,采用AT89S51单片机进行设计,这样,既能做到经济合理又能实现预期的功能。
在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。
2.2.1 电路的总体设计
此次设计主要是应用单片机来设计电子时钟,硬件部分主要分以下电路模块:显示电路用8个共阴数码管分别显示,星期(年份),小时、分钟(月份)和秒(日),通过动态扫描进行显示,从而避免了译码器的使用,同时节约了I/0端口,使电路更加简单。单片机采用AT89S51系列,这种单片机应用简单,适合电子钟设计。
框架如下:
2.2.2程序的总体设计
程序设计的整体思路为:
接通电源,数码管显示星期数,时,分,秒。并且走时显示LED灯每隔1秒改变一次明暗,此为正常工作模式。以下为在该工作方式下模式选择的按键方式:
框图如下:
3.单元电路设计
模块电路主要分为:输入部分、输出部分、复位和晶振电路。
3.1 输入部分
输入信号主要是各种模式选择和调整信号,由按键开关提供。
以下为输入部分样例:
在本实验中主要用用P3口输入按键信号,还用到了特殊的P0口。对于P0口,由于其存在高阻状态,为了实现开关功能,给其添加上拉电阻,具体如下图所示:
3.2 输出部分
本电路的输出信号为7段数码管的位选和段选信号,闹铃脉冲信号,提示灯信号。
本实验的数码管是共阴的,为了防止段选信号不能驱动数码管,故在P1口连接上拉电阻后,再送段选信号,以提高驱动,位选信号直接从P2口接入,如下图:
闹铃由P2.6端输出,模块如下:
3.3 晶振与复位电路
本实验单片机时钟用内部时钟,模块如下:
复位电路为手动复位构成,模块如下:
各模块拼接组合,电路总体设计图如下:
4.程序设计
4.1延时模块
数码管显示动态扫描时,用到延时程序,这里使用延迟1ms的程序,此程序需要反复调用程序如下:
D_1MS:
MOV R7,#2
D_5:
MOV R2,#250
DJNZ R2,$
DJNZ R7,D_5
RET
除数码管动态扫描外,数码管的闪烁提示,以及音乐模块也用到了延时,只是延时的长短不同罢了,在此不再赘述。
4.2中断服务程序
本实验中,计数器T0,T1中断都有运用,其中T0中断为时钟定时所用,T1中
计数器T1工作于方式1,当调用响铃程序时,其计数功能开启,为音乐音调不同频率的方波的形成,提供延时。其中断服务程序就是根据音调改变音乐方波输出口电平的高低,用语句 CPL实现。
中断服务程序中日历的实现较为复杂,要考虑平年,闰年,特殊的2月,每月的天数的不尽相同。具体的逻辑判断方法为:首先,要考虑年份是不是闰年,闰年的判断方法是:将年份除以100,若能整除,则将年份除以400,若还能整除,则为闰年,若不能,则为平年;若不能被100整除,则判断是否能被4整除,若能,则为闰年,若不能则为平年。只有2月与平、闰年相关,因此在闰年和平年的子程序中,要判断是不是2月,若是则在相应的年中进行日期的增加,若不是则转入平时的月份。其中1、3、5、7、8、10、12月是每月31天,4、6、9、11月为每月30天。
日历进位判断流程图如下: