基于51单片机的电子时钟C语言创新实践报告.doc
文本预览下载声明
创 新 实 践 报 告
(理工类)
课程名称:电 子 时 钟 专业班级:09计算机科学与技术(嵌入式)
学生学号: 0905101073 学生姓名: 周义
所属院部:信息技术学院 指导教师: 何云红
2012——2013学年 第 1 学期
金陵科技学院教务处制
创新实践报告--电子时钟
一、实践目的
1. 学习8051定时器时间计时处理、按键扫描及LED数码管显示的设计方法。
2. 设计任务及要求 利用实验平台上4个LED数码管, 设计带有闹铃功能的数字时钟
二、实践要求
A、基本要求:
1. 在4位数码管上显示当前时间。显示格式“时时分分”
2. 由LED闪动做秒显示。
3. 利用按键可对时间及闹玲进行设置,并可显示闹玲时间。当闹玲时间到蜂鸣器发出声响,按停止键使可使闹玲声停止。
4.实现秒表功能(百分之一秒显示)
B、扩展部分:
1.日历功能(能对年,月,日,星期进行显示,分辨平年,闰年以及各月天数,并调整)
2.音乐闹铃(铃音可选择,闹铃被停止后,闪烁显示当前时刻8秒后,或按键跳入正常时间显示状态)
3.定时功能(设定一段时间长度,定时到后,闪烁提示)
4.倒计时功能(设定一段时间长度,能实现倒计时显示,时间长减到0时,闪烁提示)
5.闹铃重响功能(闹铃被停止后,以停止时刻开始,一段时间后闹铃重响,且重响时间的间隔可调)
三、基本原理
利用单片机定时器完成计时功能,定时器0计时中断程序每隔0.01s中断一次并当作一个计数,设定定时1秒的中断计数初值为100,每中断一次中断计数初值减1,当减到0时,则表示1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了。
为了将时间在LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要译码器,数据锁存器等较多硬件,可采用动态显示法实现LED显示,通过对每位数码管的依次扫描,使对应数码管亮,同时向该数码管送对应的字码,使其显示数字。由于数码管扫描周期很短,由于人眼的视觉暂留效应,使数码管看起来总是亮的,从而实现了各种显示。
四、设计分析
针对要实现的功能,采用AT89S51单片机进行设计,AT89S51 单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS- 51指令系统及80C51引脚结构。这样,既能做到经济合理又能实现预期的功能。
在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。程序可分为闹钟的声音程序显示程序程序
2、分块设计
模块电路主要分为:输入部分、输出部分、复位和晶振电路。
2.1 输入部分
输入信号主要是各种模式选择和调整信号,由按键开关提供。
在本实验中主要用用P3口输入按键信号,还用到了特殊的P0口。对于P0口,由于其存在高阻状态,为了实现开关功能,给其添加上拉电阻,具体如下图所示:
2.2 输出部分
本电路的输出信号为7段数码管的位选和段选信号,闹铃脉冲信号,提示灯信号。
本实验的数码管是共阴的,为了防止段选信号不能驱动数码管,故在P1口连接上拉电阻
后,再送段选信号,以提高驱动,位选信号直接从P2口接入,如上图。
闹铃由P2.6端输出,模块如下:
2.3 晶振与复位电路
本实验单片机时钟用内部时钟,模块如下:
复位电路为手动复位构成,模块如下:
各模块拼接组合,电路总体设计图如下:
数字钟是用数字集成电路构成的、用数码显示的一种现代计时器,与机械表比,它走时准、显示直观、无机械传动装置等特点。但数字式还存在计时不准等缺点,可以对电路进行改进,通过预置时间电路对计数器进行预置,计数器的时钟脉冲由秒脉冲电路提供。数字钟由于开始电路平衡态的问题需要对小时进行精确校正,电路的适用性还需提高。
B.程序设计
B.1 程序总体设计
本实验用C语言程序完成.
程序总的流程图如下:
NO
YES
结合电路图,程序设计的整体思路为:
接通电源,数码管显示星期数,时,分,秒。并且走时显示LED灯每隔1秒改变一次明暗,此为正常工作模式。以下为在该工作方式下模式选择的按键方式:
1.按1键——日期模式。显示年月日且可调整,调整状态指示灯亮。
日期调整对应键如下:
6键——年(千位,百位),按一次该位加1
5键——年(十位,个位),按一次该位加1
4键——月,按一次该位加1
3键——日,按一次该位加1
0键——调整状态指示灯灭
显示全部