基于52单片机的电子时钟课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
前言 (1)
1. 设计任务和要求 (2)
1.1 设计要求 (2)
1.2 设计思路 (2)
2. 总体设计方案 (2)
2.1 方案论证 (3)
2.1.1 核心控制模块 (3)
2.1.2 显示模块 (3)
2.1.3 计时模块 (3)
2.1.4 按键模块 (3)
2.2 系统框图和原理分析 (4)
3. 硬件设计 (4)
3.1 单片机最小系统 (4)
3.2 按键控制电路 (5)
3.3 时钟显示电路 (6)
3.4 电源模块 (7)
4. 软件设计 (8)
4.1 键盘扫描程序流程图 (8)
4.2 数码管显示程序流程图 (9)
4.3 中断服务程序流程图 (10)
5. 关键代码分析 (12)
5.1 闹钟程序 (12)
5.2 显示程序 (12)
5.3 中断服务函数 (13)
6. 软件调试 (13)
7. 设计总结 (14)
参考文献 (15)
附录一:电路图和PCB图......................................................................................... 错误!未定义书签。附录二:源程序 .. (16)
附录三:部分实物运行图 (26)
前言
时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。
现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时,译码代替机械式传动,用LED显示器代替显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。
时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法,典型的时钟芯片有:DS1302,DS12887,X1203等都可以满足高精度的要求。
本文主要介绍用单片机内部的定时/计数器来实现电子时钟的方法,本设计由单片
机AT89S51芯片和LED数码管为核心,辅以必要的电路,构成了一个单片机电子时
钟。电子时钟作为单片机基础学习的一个重要的典型,是很多初学的学习单片机的
很好的例子,是对单片机的定时器的一个重要的应用。可以说,学习单片机的两个
重点就是中断和定时器,学会了数字时钟的编程就是对单片机学习的一个很好的综
合应用。
1. 设计任务和要求
1.1 设计要求
应用知识:I/O口应用、数码显示、定时/计数器、中断、按键。
基本要求:该时钟系统具有时钟功能,能准确显示时、分、秒。系统还应具有校正功能,如准点报时,能够修改当前的时间。
扩展部分:具备设定闹钟和定时闹钟响功能。
1.2 设计思路
通过软件程序的编程,硬件电路的调试,实现了简单时钟系统的设定,使得该系统具有正常走时,能够正确的显示时、分、秒;能够进行调时,修改当前的时间,并且能够设定闹钟,使闹钟能够定时响。
首先是时间的调试:若要进行正常的时间调试,需要有进入时间的调时试状态按键以及调试是加或者是减的按键,即每个状态要3个按键,共有时、分、秒三个状态,,可通过同一个按键来控制定时器的走与停,以及通过按键的次数来控制所进入的调试状态是时、分还是秒。当调试进入某一状态时,需要分别通过两个按键来控制时间的加与减,而此时的加与减的按键相当于是局部变量,可以在三个状态中分别使用。这样一共就只需要3个按键,大大节省了硬件并且简化了软件的编程。
其次是闹钟设定:基于时间调试的设置思路,同样将进入闹钟状态以及闹钟设定的按键分开,考虑到此时闹钟设置时,数码管的显示问题以及定时器的走时问题,故将进入闹钟的设定状态和时设定、分设定的按键分开, key4为进入闹钟状态按键,key4键切换时分秒和闹铃时间的显示。
2.总体设计方案
2.1 方案论证
2.1.1 核心控制模块
方案1:采用FPGA作为核心控制模块。由于FPGA具有强大的资源,使用方便灵活,易于进行功能扩展,特别是结合了EDA,可以达到很高的效率。此方案逻辑虽然简单一点,但是一块FPGA的价格很高,对于做数字钟来说有一点浪费,而且FPGA比较难掌握,本设计中不作过多研究,不采用此方案。
方案2:采用AT89C51作为核心控制模块。此方案中AT89C51单片机的入门学习相对交容易,易于理解,外围电路比较简单,成本比较低,此系统控制灵活能很好地满足本课题的基本要求和扩展要求。因此选用该方案。
2.1.2 显示模块
方案1:采用LCD1602液晶显示屏。液晶极其省电,但是使用有温度范围限制,且因是反光式的,在外界光线很明亮的情况下很容易看不清楚。液晶是分子偏转引起的暗影效果,显示不是很清晰。
方案2:采用LED数码管显示。数码管在低电压小电流的驱动下就能够发光,发光响应时间短,高频性好,单色性好,亮度高,显示相对而言比较清晰。而且体积小,重量轻,抗冲击性能好,寿命长,成本低。因此选用该方案。
2.1.3 计时模块
方案1:采用实时时钟芯片。现在市场上有很多实时时钟集成电路,如DS1287、DS12887、DS1302等。这些实时时钟芯片具备年、月、日、时、分、秒计时功能和多点定时功能,计时数据的更新每秒自动进行一次,不需要程序干预。因此,在工业实时测控系统中多采用这一类专用芯片来实现实时时钟功能。
方案2:使用单片机内部的可编程定时器。利用单片机内部的定时计数器进行中端定时,配合软件延时实现时、分、秒的计时。该方案节省硬件成本,但程序设计较为复杂。因此选用该方案。
2.1.4 按键模块
方案1:采用矩阵按键,矩阵按键需要通过扫描控制和译码,设计时需要有数值移位寄存器对已有数值进行存储和调用。软件程序设计比较繁琐,硬件连接复杂。
方案2:采用独立按键。单片机仿真板上有专用独立按键,连接方便,使用简单。