ImageVerifierCode 换一换
格式:DOCX , 页数:34 ,大小:956.18KB ,
资源ID:12994833      下载积分:6 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-12994833.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机简易时钟课程设计.docx)为本站会员(b****6)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

单片机简易时钟课程设计.docx

1、单片机简易时钟课程设计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输入按键的调试 . 144.1.2复位电路的调试 . 144.1.3显示电路的调试 . 144.1.4整

2、个系统的联调 . 144.2心得体会 . 15参考文献. 15附录. 16附录A 系统原理图 . 16附录B 程序源代码 . 17电气信息学院课程设计评分表. 281.概论单片机系统作为一种典型的嵌入式系统,其系统设计包括硬件电路设计和软件编程设计两个方面, 其调试过程一般分为软件调试、硬件测试、系统调试3个过程。如果采用单片机系统的虚拟仿真软件Proteus,则不用制作具体的电路板也能够完成以上工作。数字钟是采用数字电路实现对时,分,秒,数字显示的计时装置,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大

3、大地扩展了钟表的报时功能。数字钟已成为人们日常生活中的必需品,广泛应用于家庭、车站、码头、剧院、办公室等场所,给人们的生活、学习、工作带来极大的方便4。不仅如此,在现代化的进程中,也离不开电子钟的相关功能和原理,比如机械手的控制、家务的自动化、定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。而且是控制的核心部分。因此,研究数字钟及扩大其应用,有着非常现实的意义。电子钟在工业控制和日常生活中是很重要的,它不仅可以用于计时、提醒又可用于对机器的控制,在自动化的过程中必然有电子钟的参与

4、,因此电子钟的应用会越来越广泛。而且向着精确、低功耗、多功能发展。基于单片机设计的数字钟精确度较高, 因为在程序的执行过程中, 任何指令都不影响定时器的正常计数,即便程序很长也不会影响中断的时间。从而,使数字钟的精度仅仅取决于单片机的产生机器周期电路和定时器硬件电路的精确度。另外,程序较为简洁,具有可靠性和较好的可读性。如果我们想将它应用于实时控制之中,只要对上述程序和硬件电路稍加修改,便可以得到实时控制的实用系统,从而应用到实际工作与生产中去。数字电子钟的设计方法有多种,例如,可用中小规模集成电路组成电子钟, 也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟还可以利用单片

5、机来实现电子钟等等。这些方法都各有特点, 其中,利用单片机实现的电子钟具有编程灵活, 便于功能扩充, 精确度高等特点。12.整体设计思路这部分主要介绍工作安排和整体设计的思想。工作过程规划如下:图2.1 整体设计思路2针对要实现的功能,拟采用AT89C51单片机进行设计,AT89C51 单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS- 51指令系统及80C51引脚结构7。这样,既能做到经济合理又能实现预期的功能。在程序方面,采用分块设计的方法,这样既减小了编程难

6、度、使程序易于理解,又能便于添加各项功能。程序可分为显示程序、调时显示运用这种方法,关键在于各模块的兼容和配合,若各模块不匹配会出现意想不到的错误。本电子钟设计主要是依照图2.1中的流程做出来的,时间分配比较均匀。首先,在编程之前必须了解硬件结构尤其是各引脚的用法,以及内部寄存器、存储单元的用法,否则,编程无从下手,电路也无法设计。这是前期准备工作。第二部分是硬件部分:依据想要的功能分块设计设计,比如输入需要开关电路,输出需要显示驱动电路和液晶电路等。第三部分是软件部分:先学习理解C语言的编程方法再根据设计的硬件电路进行分块的编程调试,最终完成程序设计。第四部分是软件画图部分:设计好电路后进行

7、画图,包括电路图和仿真图的绘制。第五部分是软件仿真部分:软硬件设计好后将软件载入芯片中进行仿真,仿真无法完成时检查软件程序和硬件电路并进行修改直到仿真成功。第六部分是硬件实现部分:连接电路并导入程序检查电路,若与设计的完全一样一般能实现想要的功能。2.1硬件各部分所能完成的功能(1)单片机发送的信号通过程序控制最终在数码管上显示出来。(2)单片机通过输出各种电脉冲信号来驱动控制各部分正常工作。(3)为使时钟走时与标准时间一致,校时电路是必不可少的,键盘用来校正数码管上显示的时间。(4)单片机通过控制闹铃电路来完成定时闹钟的功能。(5)单片机通过程序对闹铃信号灯进行控制,可方便我们对闹铃的开关以

8、及是否在闹铃进行观察。(6)由于要设置定时功能,所以配置了对闹钟设置的键盘。32.2系统工作原理设计的电路主要由四模块构成:时间显示电路、信号显示电路、键盘控制电路、外设闹铃电路以及核心控制电路详细电路功能图如图2-2:图2-2 详细电路功能图本设计采用汇编语言程序设计,使单片机控制数码管显示时、分、秒,当秒计数计满60时就向分进位,分计数器计满60后向时计数器进位,小时计数器按“23翻0”规律计数。时、分、秒的计数结果经过数据处理可直接送显示器显示。设计采用的是时、分、秒显示,单片机对数据进行处理同时在数码管上显示。2.3时钟各功能分析及图解2.4.1电路各功能图解分析(1) 时钟运行图仿真

9、开始运行时,或按下K7键时,时钟从00:00:00开始运行,其中按下K1 4键可进入当前时间调节,K2和K3分别负责加一和减一,K5键为确认键。 时钟运行图如图 2-3 所示:图2-3 时钟运行图(2) 闹钟开关指示图当按下K4键后,可进入闹钟设时控制,设置完后按确认,按下K6,即开闹钟,信号显示区得开/关闹钟信号灯点亮,表示当时间到达闹钟的时间时,闹铃响;再次按下闹铃,为关闹铃,此时的信号显示区得开/关闹钟信号灯熄灭。如下图2-4:图2-4闹钟开关指示图5(3)闹铃运行图当时间到达闹钟设置的时间时,蜂鸣器会按每秒两次的频率响,闹钟指示灯也会闪烁。如下图2-5:图2-5闹铃运行图该数字钟是用一

10、片AT89C51单片机通过编程去驱动8个数码管实现的。通过7个开关控制,从上到下7个开关K1-K7的功能分别为:K1:设置当前时间时/分/秒K2:加一按键K3:减一按键K4:设置闹钟时间时/分/秒K5: 确认/关闭闹铃K6:开/关闹钟K7: 复位控制键分别与P1.0P1.6口连接,通过P2口和P3口去控制数码管的显示如图所示P2口接数码管的ag端,是控制输出编码,P3口接数码管的18端,是控制动态扫描输出6从P3.6输出一个信号使二极管发光,二极管在设置的闹钟时间到了时候发光,P3.7接一个蜂鸣器,若有乐曲可以去驱动扬声器实现。2.4.2电路功能使用说明(1) 各个控制键的功能:可对时间进行校

11、准调节(只能加);按下设置键数字时钟进入闹钟设置状态,设置闹钟的时间;时加、分加键是在校准时间时或设 置闹钟时间对小时数或分钟数调节而设置的;按下秒切换键就可以进入秒表模式,同时秒表也开始计时,按下秒表暂停、复位键就暂停、归零,如果要重新对秒计时则可以按秒表开始、复位;清零键可以对闹钟清零。(2)AT89C51单片机,通过编写程序对数码显示进行控制。(3) 八个7段数码管显示时钟信号。73. 软件设计思路根据设计的要求与内容,我们将该软件设计成七个模块,他们包括:主程序、数码管动态扫描模块、当前时间计时模块、闹钟输入输出模块、当前时间调整模块、数制转换模块以及复位模块。3.1 主程序模块主程序

12、模块是单片机最先编译运行的模块,所以在这个模块里,我们要设置主程序和各个中断服务程序的入口地址、各种初始化以及开关扫描等。MCS-51系列单片机复位后,(PC)=0000H,而0003H002BH分别为各中断的入口地址。所以,编程时应在0000H处写一条跳转指令。当CPU接受到中断请求信号并予以相应后,CPU把当前的PC内容压入栈中进行保护,然后转入相应的只能中断服务程序入口处执行。一般应在相应的中断服务程序入口处写一条跳转指令,并以跳转指令的目标地址作为中断服务程序的起始地址进行编程。初始化,是对将要用到的MCS-51系列单片机内部部件或扩展芯片进行初始工作状态设定。下图3-1是我们设计该主

13、程序模块的程序框图。图3-1主程序设计框图83.2 数码管动态扫描模块在数码管动态扫描模块里,包含了两个子程序,一个是显示子程序,另一个是显示延时1MS子程序。其中显示延时1MS子程序是用软件延时的方法进行的,过程较简单,这里就不画出它的程序框图,下图3-2为显示子程序的程序框图。图3-2显示子程序3.3 当前时间计时模块本软件中的当前时间计时模块实际上是T0定时器的中断服务程序,我们将T0定时器工作在方式一中,并让它每50MS产生一次中断。每产生一次中断,进入中断服务程序后,T0定时器重新转载初始值。MS50(它是对50MS中断次数统计的存储单元地址标号)就会自加一,接着对MS50进行判断,

14、如果MS50没有到达20次(即一秒的时间),就返回到主程序。如果到达20次,MS50将清零,并将MIAO(MIAO是对秒进行计数的存储单元地址标号)将自加一。接着判断MIAO是否到达60次,没到就返回,到了60秒,MIAO将被清零,FEN(FEN是对分进行计数的存储单元地址标号)自加一。再判断FEN,过程与判断MIAO相识,也是到达60分就进1时并对分清零,时的 9寄存器地址标号是SHI,因为一天只有24小时,所以,如果SHI计数到了24时,它将对SHI、FEN、MIAO同时清零。下图3-3为该中断服务的程序框图图3-3T0中断服务程序3.4 闹钟输入输出模块由于闹钟输入输出模块要实现的功能较

15、多,所以它是我们该软件中设计耗时最长的一个模块,也是最复杂的一个模块。而我们对其采取再分子模块策略,我们对该模块划分了6个子模块:设置闹钟时间子模块、闹钟开关子模块、检查闹钟子模块、闹钟指示灯亮子模块、闹钟转换子模块、蜂鸣器子模块。下面将逐个说明各个子模块的功能。设置闹钟时间子模块:该模块实现的功能是,当设置闹钟时间的键盘被按下时,则进入该子模块,通过对各个指定按键的操作来实现闹钟时间的设置。闹钟开关子模块:该模块实现的功能是,对闹钟的工作状态进行开关,当为开时,闹钟时间到后,闹钟指示灯会亮以及蜂鸣器会响;当为关时,即便闹钟时间到了,闹钟指示灯不会亮以及蜂鸣器不会响。10检查闹钟子模块:该模块

16、实现的功能是,它是在主程序中被循环调用的,每调用一次,它会把当前时间与闹钟时间进行比较,如果当前时间与闹钟时间相同且闹钟开关为开,则调用闹钟指示灯亮子模块和蜂鸣器子模块;否则继续运行主程序。闹钟指示灯亮子模块:该模块的功能是,当时间到时,它将使闹钟指示灯以每秒两次的频率闪烁,闪烁三十秒后熄灭。蜂鸣器子模块:该模块的功能是,当时间到时,它将使闹钟指示灯以每秒两次的频率响,响三十秒后停止响声。闹钟转换子模块:由于在寄存器中存储的是十六进制的数,不能存储十进制的数,且我们用的LED灯是共阳极的,所以在要输出显示闹钟的时间前,要进行闹钟数制转换。故该模块的功能是实现对闹钟时间寄存器中的内容进行数制转换

17、。对闹钟设计成六个子模块,使我们更容易得设计出闹钟所要实现的功能,这也就是模块化的好处,将一个大型的问题划分为若干个小问题,对这若干小问题进行设计,最好通过参数把这些小模块连成一个大的模块,从而解决问题。下图3-4是对这六个模块之间的联系的描述。图3-4 闹钟输入输出模块113.5 当前时间调整模块当前时间调整模块是用来按用户的需要对当前所显示的时间进行设置,本软件的设计思路是通过对相关的时间设置按键的扫描进行时间设置。具体思路如下图3-5:图3-5 时间调整模块123.6复位模块复位模块是对当前时间和闹钟时间进行复位,复位后的结果是当前时间变为00-00-00,闹钟时间变为00-00-00。

18、由于该模块较为简单,就不展示其设计思路了。就将其结果仿真图展示如下图3-6。图3-6复位结果图134.系统的调试和性能分析4.1系统的调试方法整个系统调试的主要思想是:先每个模块进行调试,然后整个系统一起调试。先软硬件分开调试,然后一起调试。遵循先部分后整体的原则。系统的在调试过程中要注意以下几点:(1)硬件电路焊完之后,在上电之前一定要先用万用表检测电源和地之间是否短路。(2)上电之后要用示波器观察信号的在电路中变化的情况,与设计当初的情况相比较,找出差别,并进行分析。(3)软件调试过程中可以使用断点、单步执行等常用的方法。(4)软硬件联调时,要注意软件部分要一个功能一个功能的调试。4.1.

19、1输入按键的调试输入按键的调试,只要按键按下去时,按键有相应的反应就行,通过程序来判断,单片机I/O是否能够识别出。4.1.2复位电路的调试当电源刚接通时,接通电源就完成了系统的初始化。4.1.3显示电路的调试在本设计中,显示电路只需完成,当输入数字时能正确显示数字。4.1.4整个系统的联调在系统各个部分都调试完毕之后,即可以进行整个系统的调试。由于前面各个部分的调试做的都比较充分,所以在实际调试过程中,能够较顺利的实现整个系统预期的功能。144.2心得体会课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着

20、科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。回顾起此次单片机课程设计,我仍感慨颇多,的确,从选题到定稿,从理论到实践,在这两个星期的日子里,可以说得是苦多于甜,但是可以学到很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问

21、题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对单片机汇编语言掌握得不好通过这次课程设计之后,一定把以前所学过的知识重新温故。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在老师的辛勤指导下,终于游逆而解。同时,在老师那里我学得到很多实用的知识,在次我表示感谢!参考文献1、单片机原理及应用李建忠 编 西安电子科技大学出版社2、单片微型计算机原理与接口技术 高峰 编 电子工业出版社3、单片机应用新技术教程邹逢兴 编 高等教育出版社4、16

22、位微型计算机原理接口及其应用 朱宇光 编 电子工业出版社5、微型计算机原理与接口技术 吴秀清 编 中国科学技术出版社6、微型计算机接口技术 邓亚平 编 清华大学出版社7、单片机原理及及应用 王迎旭 编 机械工业出版社15附录 附录A 系统原理图16附录B 程序源代码MS50 EQU 30H SHI EQU 31HFEN EQU 32HMIAO EQU 33H BUF EQU 34HHH EQU 40H FF EQU 41H MM EQU 42HDENG BIT P3.5BIAOZ BIT P3.6SPK BIT P3.7ALB EQU 20H.0K1 BIT P1.0K2 BIT P1.1K3

23、 BIT P1.2K4 BIT P1.3K5 BIT P1.4K6 BIT P1.5K7 BIT P1.6MOV SP,#60H;- ORG 00HAJMP MAINORG 0BH AJMP TIME0 MAIN: SETB DENGCLR ALB ACALL CHUSHI ACALL INTOLOOP: ACALL NAOPRO ACALL CONVACALL DISPLAY JB K6,LOOP1ACALL BIAOSJMP LOOPLOOP1: JB K1,LOOP2ACALL SETTIME SJMP LOOPLOOP2: JB K4,LOOP3ACALL SETNAO SJMP LO

24、OP17LOOP3: JB K7,LOOPACALL RSTSJMP LOOP;-CONV: ;转换子程序MOV A,SHI ;转换小时 存到34 35H MOV B,#10DIV ABMOV DPTR,#TABMOVC A,A+DPTRMOV BUF,AMOV A,BMOVC A,A+DPTRMOV BUF+1,AMOV A,FEN ;转换分 存到37 38H MOV B,#10DIV ABMOV DPTR,#TABMOVC A,A+DPTRMOV BUF+3,AMOV A,BMOVC A,A+DPTRMOV BUF+4,AMOV A,MIAO ;转换秒 存到40 41H MOV B,#10

25、DIV ABMOV DPTR,#TABMOVC A,A+DPTRMOV BUF+6,AMOV A,BMOVC A,A+DPTRMOV BUF+7,AMOV BUF+2,#0BFH ;第三个位置显示一杠 MOV BUF+5,#0BFH ;第五个位置显示一杠 RETTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;-DISPLAY: ;显示子程序MOV R1,#BUFMOV A,#01HMOV R2,#8Dp1:MOV P2,APUSH ACCMOV A,R1;阳码表 18MOV P0,AACALL DELAYPOP ACCRL AINC

26、R1CJNE R1,#BUF+8,DYMOV R1,#BUFDY: DJNZ R2,Dp1RET;- BIAO: CPL ALB ;闹钟开关CPL BIAOZBIAO1: ACALL CONVACALL DISPLAYJNB K6,BIAO1RET;- SETTIME: ;设置时间CLR TR0TT: ACALL DISPLAY ;设置小时TS: JNB K1,TTTSS: ACALL DISPLAYSJNB K1,TFJNB K2,JIASJNB K3,JIANSJNB K5,QUESJMP TSSJIAS: INC SHI ;加时子程序MOV A,SHICJNE A,#24,K2SMOV SHI,#0K2S: ACALL CONVACALL DISPLAYJNB K2,K2SSJMP TSSJIANS: DEC SHI ;减时子程序MOV A,SHICJNE A,#255,K3SMOV SHI,#23K3S: ACALL CONVACALL DISPLAYJNB K3,K3SSJMP

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2