倒计时设计单片机课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
第一章系统概述
1.1 设计目的 (1)
1.2 设计内容 (1)
1.3 设计要求 (1)
第二章系统方案 (2)
2.1 总体方案 (2)
2.2 方案组成 (2)
第三章软件设计 (3)
3.1 主程序设计 (3)
3.1.1 倒计时模块 (4)
3.1.2 键盘扫描模块 (4)
3.1.3显示程序模块 (5)
3.1.4 实施结果 (6)
第四章总结体会 (6)
4.1设计心得及体会 (6)
4.2 参考文献 (7)
附录程序清单.............................................. (8)
倒计时
第一章系统概述
1.1 设计目的
此次设计是我们更进一步了解基本电路的设计流程,提高自己的设计理念,丰富自己的理论知识,巩固所学知识,使自己的动手动脑能力有更进一步提高,为自己今后的学习和工作打好基础,为自己的专业技能打好基础。通过解决实际问题,巩固和加深“单片微型计算机原理与接口技术”课程中所学的理论知识和实验能力,基本掌握单片机应用电路的一般设计方法,提高实验能力,加深对单片机软硬知识的理解,获得初步的应用经验,为以后从事生产和科研工作打下一定的基础。本次设计注重对单片机工作原理以及键盘控制及显示原理的理解,提高自己的动手能力和设计能力,培养创新能力,丰富自己的理论知识,做到理论和实践相结合。本次设计的重要意义还在于对单片机的内部结构和工作状态做更进一步的了解,同时还对单片机的接口技术,中断技术,存储方式和控制方式作更深层次的了解。
1.2设计内容
(1)设计一个倒计时器,由单片机接收小键盘阵列设定倒计时时间,倒计时范围最大为00:00:00到23:59:59,由LED 显示时间,显示格式为XX(时):XX(分).:XX(秒)倒计时时间到,或超出范围,由指示灯发亮灯显示。
(2)画出程序流程图并编写程序实现上述功能。
1.3 设计要求
1、能够实现时、分、秒的倒计时功能;
2、倒计时结束,报警提示;
3、通过按键能够设置倒计时表的初始值;
4、具有“开始”、“暂停”、“继续”等功能按键;
第二章系统方案
2.1 总体方案
设计时可采用模块化程序设计方法。模块划分时应遵循下述原则:
(1)每个模块应具有独立的功能,能产生一个明确的结果。
(2)模块之间的控制参数应尽量简单,数据参数应尽量少。
(3)根据模块的划分原则,将该程序划分成6个模块,如图2-2所示。
2.2 方案组成
硬件部分由重设按钮、开始/暂停按钮、AT89C51单片机、一个6位共阴极LED显示器等组成。
软件部分主程序主要由系统初始化段、键盘识别、键值处理,以及6位共阴极LED显示器扫描显示子程序,T1中断。
第三章软件设计
3.1 主程序设计
所以主程序的设计一般包括:主程序的起始地址,中断服务程序的起始地址,有关内存单元及相关部件的初始化和一些子程序调用等等。
(1)程序的起始地址
MCS-51系列单片机复位后,(PC)=0000H,而0003H~002BH分别为个中断源的入口地址。所以,编程也应在0000H处写一跳转指令。
当CPU接受到中断请求信号并予以响应后,CPU把当前的PC内容压入栈中进行保护,然后转入响应的中断服务程序入口处执行。一般在响应的中断服务程序入口处写一条跳转指令,并以跳转指令的目标地址作为中断服务程序的其始地址进行编程。
(2)主程序的初始化内容
所谓初始化,是对用到的单片机内部部件或拓展芯片进行初始工作状态设定。
在本例中,使用了两个中断,即T1。其中:
1.T1中断:采用T1定时中断工作方式,完成倒计时。
(3
在这里介绍几个主要的模块:
3.1.1 倒计时模块设计
(1)定时器T1计数初值
T1计数初值为:TH1=(65536-700)/256;TL1=(65536-700)MOD 256
工作方式TMOD=00000001H=01H
(2
3.1.2 键盘扫描模块
扫描按键情况,并显示在数码管的分数值位。
按键去抖动的处理。由于机械触点的弹性作用,在闭合及断开的瞬间均伴随有一连串的抖动,抖动时间长短由按键的机械特性决定,一般为5~10ms。而按键稳定闭合时间的长短则是由操作人员的按键动作决定的,一般为零点几秒至数秒。键抖动会引起一次按键被误读多次,为了确保CPU对键的一次闭合仅做一次处理,键抖动可用硬件和软件两种方法消除。本设计采用软件方法。
3.1.3显示程序模块
由于该系统使用的是六位LED显示器显示倒计时,因此显示采用动态扫描显示方法,即由显示器扫描显示子程序控制显示器逐个循环从左至右依次点亮各个显示器。这样虽然在任一时刻只要一个显示器点亮,但是由于人眼具有视觉残留效应,看起来与全部显示器持续点亮效果一样。如下面的图所示:
3.1.4 实施结果
(1)首先开始找到主程序入口地址,运行程序;
(2)输入倒计时初始值,按B键开始计时,如果设置的初始值不符合24小时制的常规值,红灯亮,不开始倒计时,如果设置的初始值符合24小时制的常规值,倒计时器正常工作,开始倒计时。
(3)倒计时过程中,可以按A键暂停计时,按B键恢复计时。
(4)倒计时过程中,可以按C键重新赋初值。
第四章总结体会
4.1设计心得及体会
该倒计时器是基于定时而设计的实现计时报警(指示灯亮)的装置。由键盘扫描、动态LED显示电路、指示灯亮三大部分构成。装置利用AT89S51单片机构成电路,以实现对计时时间的控制。同时装置还用一个由电平控制的指示灯的亮灭装置,用以实现倒计时时间到时提示,以及错出现时候的提示。
本装置的最大特点是实时性强,可操作性好。因为采用了矩阵式键盘控制,能够随时改变倒计时时间,所以装置能够应对不同的要求而做出相应的调整,以适应不同的环境。
看事物要辩证的看。本装置也存在一些缺点值得注意。如当按键开关出现问题时,系统会出现错误,出现指示灯亮的状态。
我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?如何把我们所学的专业基础课理论知识运用到实践中去呢?我想做类似的课程设计就为我们提供了良好的实践平台。
我在整个设计过程中懂得了许多东西,当遇到一不了的问题,跟同伴一起商量、合作,或许能收到事半功倍的效果。不管学什么,一定要打好基础,并将其学好、学精,但空有知识也不一定就能说明什么,还得能为己所用;还有更重要的是培养了独立思考和设计的能力,树立了对知识应用的信心,相信会对今后的学习工作和生活有非常大的帮助,并且提高了自己的动手实践操作能力,使自己充分体会到了在设计过程中的成功喜悦。虽然这个设计做的不是很完美,但是在设计过程中所学到的东西是这次课程设计的最大收获和财富,使我终身受益;最后,也是我感触比较深的一点,这次课程设计时为数不多的独立完成的