基于单片机的简易时钟设计说明.doc
《基于单片机的简易时钟设计说明.doc》由会员分享,可在线阅读,更多相关《基于单片机的简易时钟设计说明.doc(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、理工职业技术学院毕业设计(论文)说明书题 目:简易电子时钟设计系 别:电气工程系专业班级: 11机电2 姓 名: 黄武锦学 号: 20112323 指导教师:黎有好二一三年七月二十四日目录1.概论12.整体设计思路22.1硬件各部分所能完成的功能32.2系统工作原理42.3时钟各功能分析与图解42.4.1电路各功能图解分析42.4.2电路功能使用说明73. 软件设计思路83.1 主程序模块83.2 数码管动态扫描模块93.3 当前时间计时模块93.4 闹钟输入输出模块103.5 当前时间调整模块123.6复位模块134.系统的调试和性能分析144.1系统的调试方法144.1.1输入按键的调试1
2、44.1.2复位电路的调试144.1.3显示电路的调试144.1.4整个系统的联调144.2心得体会15参考文献15附录16附录A 系统原理图16附录B 程序源代码17电气信息学院课程设计评分表281.概论单片机系统作为一种典型的嵌入式系统,其系统设计包括硬件电路设计和软件编程设计两个方面,其调试过程一般分为软件调试、硬件测试、系统调试3个过程。如果采用单片机系统的虚拟仿真软件Proteus,则不用制作具体的电路板也能够完成以上工作。数字钟是采用数字电路实现对时,分,秒,数字显示的计时装置,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们
3、生产生活带来了极大的方便,而且大扩展了钟表的报时功能。数字钟已成为人们日常生活中的必需品,广泛应用于家庭、车站、码头、剧院、办公室等场所,给人们的生活、学习、工作带来极大的方便4。不仅如此,在现代化的进程中,也离不开电子钟的相关功能和原理,比如机械手的控制、家务的自动化、定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。而且是控制的核心部分。因此,研究数字钟与扩大其应用,有着非常现实的意义。电子钟在工业控制和日常生活中是很重要的,它不仅可以用于计时、提醒又可用于对机器的控制,在自动
4、化的过程中必然有电子钟的参与,因此电子钟的应用会越来越广泛。而且向着精确、低功耗、多功能发展。基于单片机设计的数字钟精确度较高,因为在程序的执行过程中,任何指令都不影响定时器的正常计数,即便程序很长也不会影响中断的时间。从而,使数字钟的精度仅仅取决于单片机的产生机器周期电路和定时器硬件电路的精确度。另外,程序较为简洁,具有可靠性和较好的可读性。如果我们想将它应用于实时控制之中,只要对上述程序和硬件电路稍加修改,便可以得到实时控制的实用系统,从而应用到实际工作与生产中去。数字电子钟的设计方法有多种,例如,可用中小规模集成电路组成电子钟,也可以利用专用的电子钟芯片配以显示电路与其所需要的外围电路组
5、成电子钟还可以利用单片机来实现电子钟等等。这些方法都各有特点,其中,利用单片机实现的电子钟具有编程灵活,便于功能扩充,精确度高等特点。2.整体设计思路这部分主要介绍工作安排和整体设计的思想。工作过程规划如下:熟悉硬件了解各引脚功能 分块设计各部分电路 完成整体电路图将分块的电路组合认真学习单片机C语言确定编程结构和思路综合各程序完成整体程序编辑各个程序模块用Proteus画出电路图调试程序,进行修改 对仿真中出现的问题 进行改正画出仿真图进行仿真准备器件、搭接电路仿真成功软硬件结合,完成任务书要求验证硬件电路成功对设计进行总结和分析 图2.1 整体设计思路 针对要实现的功能,拟采用AT89C5
6、1单片机进行设计,AT89C51 单片机是一款低功耗,高性能CMOS8位单片机,片含4KB在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS- 51指令系统与80C51引脚结构7。这样,既能做到经济合理又能实现预期的功能。在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。程序可分为显示程序、调时显示运用这种方法,关键在于各模块的兼容和配合,若各模块不匹配会出现意想不到的错误。本电子钟设计主要是依照图2.1中的流程做出来的,时间分配比较均匀。首先,在编程之前必须了解硬件结构尤其是各引
7、脚的用法,以与部寄存器、存储单元的用法,否则,编程无从下手,电路也无法设计。这是前期准备工作。第二部分是硬件部分:依据想要的功能分块设计设计,比如输入需要开关电路,输出需要显示驱动电路和液晶电路等。第三部分是软件部分:先学习理解C语言的编程方法再根据设计的硬件电路进行分块的编程调试,最终完成程序设计。第四部分是软件画图部分:设计好电路后进行画图,包括电路图和仿真图的绘制。第五部分是软件仿真部分:软硬件设计好后将软件载入芯片中进行仿真,仿真无法完成时检查软件程序和硬件电路并进行修改直到仿真成功。第六部分是硬件实现部分:连接电路并导入程序检查电路,若与设计的完全一样一般能实现想要的功能。2.1硬件
8、各部分所能完成的功能(1)单片机发送的信号通过程序控制最终在数码管上显示出来。(2)单片机通过输出各种电脉冲信号来驱动控制各部分正常工作。(3)为使时钟走时与标准时间一致,校时电路是必不可少的,键盘用来校正数码管上显示的时间。(4)单片机通过控制闹铃电路来完成定时闹钟的功能。(5)单片机通过程序对闹铃信号灯进行控制,可方便我们对闹铃的开关以与是否在闹铃进行观察。(6)由于要设置定时功能,所以配置了对闹钟设置的键盘。2.2系统工作原理设计的电路主要由四模块构成:时间显示电路、信号显示电路、键盘控制电路、外设闹铃电路以与核心控制电路详细电路功能图如图2-2:图2-2 详细电路功能图本设计采用汇编语
9、言程序设计,使单片机控制数码管显示时、分、秒,当秒计数计满60时就向分进位,分计数器计满60后向时计数器进位,小时计数器按“23翻0”规律计数。时、分、秒的计数结果经过数据处理可直接送显示器显示。设计采用的是时、分、秒显示,单片机对数据进行处理同时在数码管上显示。2.3时钟各功能分析与图解2.4.1电路各功能图解分析(1) 时钟运行图仿真开始运行时,或按下K7键时,时钟从00:00:00开始运行,其中按下K1键可进入当前时间调节,K2和K3分别负责加一和减一,K5键为确认键。时钟运行图如图 2-3 所示:图2-3 时钟运行图(2) 闹钟开关指示图当按下K4键后,可进入闹钟设时控制,设置完后按确
10、认,按下K6,即开闹钟,信号显示区得开/关闹钟信号灯点亮,表示当时间到达闹钟的时间时,闹铃响;再次按下闹铃,为关闹铃,此时的信号显示区得开/关闹钟信号灯熄灭。如下图2-4:图2-4闹钟开关指示图(3)闹铃运行图当时间到达闹钟设置的时间时,蜂鸣器会按每秒两次的频率响,闹钟指示灯也会闪烁。如下图2-5:图2-5闹铃运行图该数字钟是用一片AT89C51单片机通过编程去驱动8个数码管实现的。通过7个开关控制,从上到下7个开关K1-K7的功能分别为: K1:设置当前时间时/分/秒 K2:加一按键 K3:减一按键 K4:设置闹钟时间时/分/秒 K5: 确认/关闭闹铃 K6:开/关闹钟 K7: 复位控制键分
11、别与P1.0P1.6口连接,通过P2口和P3口去控制数码管的显示如图所示P2口接数码管的ag端,是控制输出编码,P3口接数码管的18端,是控制动态扫描输出从P3.6输出一个信号使二极管发光,二极管在设置的闹钟时间到了时候发光,P3.7接一个蜂鸣器,若有乐曲可以去驱动扬声器实现。2.4.2电路功能使用说明 (1) 各个控制键的功能:可对时间进行校准调节(只能加);按下设置键数字时钟进入闹钟设置状态,设置闹钟的时间;时加、分加键是在校准时间时或设 置闹钟时间对小时数或分钟数调节而设置的;按下秒切换键就可以进入秒表模式,同时秒表也开始计时,按下秒表暂停、复位键就暂停、归零,如果要重新对秒计时则可以按
12、秒表开始、复位;清零键可以对闹钟清零。 (2)AT89C51单片机,通过编写程序对数码显示进行控制。 (3) 八个7段数码管显示时钟信号。3. 软件设计思路 根据设计的要求与容,我们将该软件设计成七个模块,他们包括:主程序、数码管动态扫描模块、当前时间计时模块、闹钟输入输出模块、当前时间调整模块、数制转换模块以与复位模块。3.1 主程序模块主程序模块是单片机最先编译运行的模块,所以在这个模块里,我们要设置主程序和各个中断服务程序的入口地址、各种初始化以与开关扫描等。MCS-51系列单片机复位后,(PC)=0000H,而0003H002BH分别为各中断的入口地址。所以,编程时应在0000H处写一
13、条跳转指令。当CPU接受到中断请求信号并予以相应后,CPU把当前的PC容压入栈中进行保护,然后转入相应的只能中断服务程序入口处执行。一般应在相应的中断服务程序入口处写一条跳转指令,并以跳转指令的目标地址作为中断服务程序的起始地址进行编程。初始化,是对将要用到的MCS-51系列单片机部部件或扩展芯片进行初始工作状态设定。下图3-1是我们设计该主程序模块的程序框图。图3-1主程序设计框图3.2 数码管动态扫描模块在数码管动态扫描模块里,包含了两个子程序,一个是显示子程序,另一个是显示延时1MS子程序。其中显示延时1MS子程序是用软件延时的方法进行的,过程较简单,这里就不画出它的程序框图,下图3-2
14、为显示子程序的程序框图。图3-2显示子程序3.3 当前时间计时模块本软件中的当前时间计时模块实际上是T0定时器的中断服务程序,我们将T0定时器工作在方式一中,并让它每50MS产生一次中断。每产生一次中断,进入中断服务程序后,T0定时器重新初始值。MS50(它是对50MS中断次数统计的存储单元地址标号)就会自加一,接着对MS50进行判断,如果MS50没有到达20次(即一秒的时间),就返回到主程序。如果到达20次,MS50将清零,并将MIAO(MIAO是对秒进行计数的存储单元地址标号)将自加一。接着判断MIAO是否到达60次,没到就返回,到了60秒,MIAO将被清零,FEN(FEN是对分进行计数的
15、存储单元地址标号)自加一。再判断FEN,过程与判断MIAO相识,也是到达60分就进1时并对分清零,时的寄存器地址标号是SHI,因为一天只有24小时,所以,如果SHI计数到了24时,它将对SHI、FEN、MIAO同时清零。下图3-3为该中断服务的程序框图图3-3T0中断服务程序3.4 闹钟输入输出模块由于闹钟输入输出模块要实现的功能较多,所以它是我们该软件中设计耗时最长的一个模块,也是最复杂的一个模块。而我们对其采取再分子模块策略,我们对该模块划分了6个子模块:设置闹钟时间子模块、闹钟开关子模块、检查闹钟子模块、闹钟指示灯亮子模块、闹钟转换子模块、蜂鸣器子模块。下面将逐个说明各个子模块的功能。设
16、置闹钟时间子模块:该模块实现的功能是,当设置闹钟时间的键盘被按下时,则进入该子模块,通过对各个指定按键的操作来实现闹钟时间的设置。闹钟开关子模块:该模块实现的功能是,对闹钟的工作状态进行开关,当为开时,闹钟时间到后,闹钟指示灯会亮以与蜂鸣器会响;当为关时,即便闹钟时间到了,闹钟指示灯不会亮以与蜂鸣器不会响。检查闹钟子模块:该模块实现的功能是,它是在主程序中被循环调用的,每调用一次,它会把当前时间与闹钟时间进行比较,如果当前时间与闹钟时间一样且闹钟开关为开,则调用闹钟指示灯亮子模块和蜂鸣器子模块;否则继续运行主程序。闹钟指示灯亮子模块:该模块的功能是,当时间到时,它将使闹钟指示灯以每秒两次的频率
17、闪烁,闪烁三十秒后熄灭。蜂鸣器子模块:该模块的功能是,当时间到时,它将使闹钟指示灯以每秒两次的频率响,响三十秒后停止响声。闹钟转换子模块:由于在寄存器中存储的是十六进制的数,不能存储十进制的数,且我们用的LED灯是共阳极的,所以在要输出显示闹钟的时间前,要进行闹钟数制转换。故该模块的功能是实现对闹钟时间寄存器中的容进行数制转换。对闹钟设计成六个子模块,使我们更容易得设计出闹钟所要实现的功能,这也就是模块化的好处,将一个大型的问题划分为若干个小问题,对这若干小问题进行设计,最好通过参数把这些小模块连成一个大的模块,从而解决问题。下图3-4是对这六个模块之间的联系的描述。图3-4 闹钟输入输出模块
18、3.5 当前时间调整模块当前时间调整模块是用来按用户的需要对当前所显示的时间进行设置,本软件的设计思路是通过对相关的时间设置按键的扫描进行时间设置。具体思路如下图3-5:图3-5 时间调整模块3.6复位模块复位模块是对当前时间和闹钟时间进行复位,复位后的结果是当前时间变为00-00-00,闹钟时间变为00-00-00。由于该模块较为简单,就不展示其设计思路了。就将其结果仿真图展示如下图3-6。图3-6复位结果图4.系统的调试和性能分析4.1系统的调试方法整个系统调试的主要思想是:先每个模块进行调试,然后整个系统一起调试。先软硬件分开调试,然后一起调试。遵循先部分后整体的原则。系统的在调试过程中
19、要注意以下几点:(1)硬件电路焊完之后,在上电之前一定要先用万用表检测电源和地之间是否短路。(2)上电之后要用示波器观察信号的在电路中变化的情况,与设计当初的情况相比较,找出差别,并进行分析。(3)软件调试过程中可以使用断点、单步执行等常用的方法。(4)软硬件联调时,要注意软件部分要一个功能一个功能的调试。4.1.1输入按键的调试输入按键的调试,只要按键按下去时,按键有相应的反应就行,通过程序来判断,单片机I/O是否能够识别出。4.1.2复位电路的调试当电源刚接通时,接通电源就完成了系统的初始化。4.1.3显示电路的调试在本设计中,显示电路只需完成,当输入数字时能正确显示数字。4.1.4整个系
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 简易 时钟 设计 说明
限制150内