倒计时器设计(单片机课程设计报告)
倒计时器设计(单片机课程设计报告)综述

x x x x x x x x x x x学校课程设计报告课程名称:单片机原理及应用课程设计设计题目:倒计时器系别:通信与控制工程系专业:电子信息工程班级:10级电信2班学生姓名: 张帆杜斌学号: 10409203、10409221起止日期: 2012年12月24日~2013年1月6日指导教师:教研室主任:指导教师评语:指导教师签名:年月日成绩评定项目权重成绩张帆杜斌1、设计过程中出勤、学习态度等方面0.22、课程设计质量与答辩0.53、设计报告书写及图纸规范程度0.3总成绩教研室审核意见:教研室主任签字:年月日教学系审核意见:主任签字:年月日本系统采用STC89C52作为主控芯片,设计一款的倒计时器,该倒计时器能在数码管显示倒计时的时间,时间可由按键进行设定,4位数码管做显示,能够实现5种倒计时模式,通过控制按键进行选择9999s-0s、999s-0s、99s-0s、9s-0s、开始值由人工输入-0s的特点。
首先检测按键,当相应的按键按下时,进入相应的倒计时方式。
工作方式五为可调初值的倒计时方式,初值也是通过独立按键来设定。
定时中断二十次后即一秒后,初值自动减一。
当初值减到零后,计时停止。
关键词:STC89C52;数码管显示;独立按键;振荡电路设计要求 (1)1 方案论证与对比 (1)1.1 方案一 (1)1.2 方案二 (1)1.3 方案对比与选择 (1)2 单元电路设计与计算 (2)2.1 STC89C52简介 (2)2.2时钟振荡电路的设计 (3)2.3复位电路的设计 (3)2.4数码管显示电路的设计 (4)2.5 独立按键电路的设计 (5)3 系统软件设计 (6)3.1 倒计时主程序流程 (6)3.2 定时器工作流程 (7)4 系统功能测试与整体指标 (8)5 详细仪器清单 (9)6 总结与思考及致谢 (10)参考文献 (10)附录一:倒计时器DXP原理图 (11)附录二:倒计时器电路PCB板图 (12)附录三:实物图 (13)附录四:程序 (14)倒计时器设计任务与要求本项目是由单片机执行设定的程序,在数码管显示倒计时的时间,且能由单片机接受矩阵键盘设定的时间。
AT89C51单片机LED数字倒计时器—课程设计

课题: AT89C51单片机LED数字倒计时器专业:班级:学号:姓名:指导教师:设计日期:成绩:重庆大学城市科技学院电气学院目录一、设计目的作用 (3)二、设计要求 (3)三、设计的具体实现 (3)1、设计原理 (3)(1)系统设计方案 (3)(2)功能模块 (4)(3)工作原理: (4)2、系统设计 (4)(1)显示模块 (4)(2)晶振模块 (5)(3)复位电路: (5)(4)按键模块: (6)(5)报警模块: (7)3、系统实现 (7)(1)实物图 (7)(2)分析 (8)四、总结 (8)五、附录 (9)附录1: (9)附录2: (10)附录3: (10)六、参考文献 (17)LED数字倒计时器设计报告一、设计目的作用1、掌握51单片机最小系统的设计;2、掌握按键电路设计、LED数码管的使用;3、掌握C51的编程方式。
二、设计要求基于AT89C51单片机的LED数字倒计时器主要具有如下功能,具体要求如下:1、LED数码管显示倒计时时间。
2、倒计时过程中能设置多个闹钟,当倒计时值倒计到设定值时会发出2s 的报警声音。
(K1设置小时,K2设置分钟,K3设置秒钟,K4完成退出)3、通过按键可以对倒计时设定处置。
倒计时初值范围在24:00:00~00:00:60之间,设置成功后复位初始值为成功设定值。
三、设计的具体实现1、设计原理(1)系统设计方案:基于AT89C51单片机的数码管显示模块显示的倒计时器。
主要是以单片机来控制,用按键来设定倒计时初始时刻的值,数码管作为显示模块来显示剩余的时间。
此电路对于倒计时器中的LED数码管示器来说,采用以软件为主的接口方法,即不使用专门的硬件译码器,而采用软件程序进行译码。
晶振模块图1 LED 数字倒计时器设计框图(2)功能模块:倒计时器的总体包括显示电路,按键电路,复位电路,晶振电路和报警电路等五个模块。
显示模块显示计数与灭灯,复位模块控制电路完成计数的直接清零,暂停/连续技术,用按键模块来设定倒计时初始时刻的值,报警模块实现定时时间到报警等功能。
单片机答辩倒计时器课程设计报告

《单片机原理及应用》课程设计报告专业电子信息工程班级姓名指导老师二0一二年十二月二十五日课程设计任务书一、设计题目:答辩倒计时器二、设计要求设计一个答辩倒计时器,用2位数码管显示剩余分钟,2位数码管显示剩余秒,复位后显示10.00表示设定10分钟,并可加减修改,按开始/取消按钮开始倒计时,再次按开始/取消按钮则复位,时间到则蜂鸣音提示。
总体要求如下:1、方案论证,确定总体电路原理图。
2、元器件选择,设计PCB图(或用万能电路实验板搭线)。
3、绘制程序流程图,编写汇编语言源程序(或C语言源程序)。
4、安装调试,实现倒计时器的基本功能。
三、设计报告内容1、写出设计方案(包括方案对比,方案确定),给出完整的电路原理图和设计程序流程图。
2、对所设计方案的实现进行全面分析。
3、编程调试方法和程序清单。
4、安装调试过程,出现的各种现象,总结经验和体会。
5、进一步完善的设想。
目录一、课程设计目的 (1)二、课程设计题目描述和要求 (1)三、课程设计报告内容 (1)3.2 硬件电路 (3)3.2.1 复位电路 (4)3.2.2 晶振电路 (4)3.2.3 单片机最小系统 (4)3.2.4 硬件流程图 (5)3.3 源程序设计 (5)3.3.1 程序清单 (5)3.3.2 程序流程图 (7)四、设计过程 (7)4.1实践步骤 (7)4.2实践标准 (8)4.3系统调试 (8)4.3.1 硬件调试 (8)4.3.2 软件调试 (9)五、设计报告总结 (10)六、总结经验和体会 (11)七、进一步完善的设想 (12)八、参考书目 (13)附录一:成品效果图 (13)附录二:倒计时器源程序(C语言) (14)一、课程设计目的1、巩固和加深单片机原理课程知识的理解和运用。
2、进一步提高学生单片机应用系统的设计能力。
3、培养学生综合分析问题、发现问题和解决问题的能力。
二、课程设计题目描述和要求设计一个答辩倒计时器,用2位数码管显示剩余分钟,2位数码管显示剩余秒,复位后显示10.00表示设定10分钟,并可加减修改,按开始/取消按钮开始倒计时,再次按开始/取消按钮则复位,时间到则蜂鸣音提示。
单片机倒计时秒表课程设计报告书

课程设计说明书课程名称:单片机技术设计题目:倒计时数字秒表设计院系:学生:三学号: *********专业班级: ***********指导教师:四年月日课程设计任务书倒计时秒表摘要:本次课程设计以AT89S52单片机为核心设计一个倒计时数字秒表,计数初值为59并开始每秒自动减1,当按键1按下时记录当前时间值,当按键2按下时显示当前记录值,显示过之后再次按下按键1时秒表复位为59。
本设计硬件部分包括电源电路、复位电路、按键电路、振荡电路、数码管显示电路五部分电路,软件程序部分有定时中断程序、外部中断程序、显示子程序和延时子程序等。
软件Proteus画出原理图并进行仿真,依照仿真成功的原理图接线,在万能版上把个个器件焊接好从而实现预期的功能。
关键词:倒计时 AT89S52 74LS47 数码管目录1.设计背景 (5)1.1、设计课题的提出 (5)1.2、设计作用与意义 (5)2.设计方案 (6)2.1、可行方案选择 (6)2.2、可行方案比较 (6)3.方案实施 (7)3.1、硬件电路的实施 (7)3.2、软件程序的实施 (11)4.结果与结论 (13)4.1、Proteus仿真运行结果 (13)4.2、结论 (14)5.收获与致 (14)6.参考文献 (14)7.附件 (15)7.1、附件一(整体电路图) (15)7.1、附件二(元件清单图) (16)7.1、附件三(程序) (17)7.1、附件四(运行实物图) (22)1.1设计课题的提出计时器日常生活中随处可见,我们手上的电子表,手机上的时间显示等,这些利用数字电路实现的装置,与机械时钟相比具有更高的准确性与直观性,且无机械装置,具有更长的使用寿命。
其中重要的组成部分就是计数器模块,是单片机中常见的模块,以计时器为基础还可以设计更多对日常生活密切相关的设备,诸如定时报警、按时自动打铃、时间程序自动控制、定时广播、自动启闭路灯、定时开关烘箱、甚至各种定时电器的自动启用等,都是以计时器为基础的。
单片机倒计时设计报告

8段数码管
第三章原理图仿真
第四章倒计时程序
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code wei[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//八位位选码表p2口
本篇论文讨论了简单的倒计时器的设计与制作,对于倒计时器中的LED数码显示器来说,我为了简化线路、降低成本,采用以软件为主的接口方法,即不使用专门的硬件译码器,而采用软件程序进行译码。
第一章设计目的及要求
1.1设计目的
课程设计是单片机课程教学的最后一个环节,是对学生进行全面的系统的训练。进行课程设计可以让学生把学过的比较零碎的知识系统化,真正的能够把学过的知识落到实处,能够开发简单的系统,也进一步激发了学生再深一步学习的热情,因此课程设计是必不可少的,是非常必要的。
前言
在生活和生产的各领域中,凡是有自动控制要求的地方都会有单片机的身影出现;从简单到复杂,从空中、地面到地下,凡是能想像到的地方几乎都有使用单片的需求。现在尽管
单片机的应用已经很普遍了,但仍有许多可以用单片机控制而尚未实现的项目,因此,单片机的应用大有想像和拓展空间。
单片机就是微控制器,它是嵌入式系统中的重要且发展迅速的组成部分。单片机接上震荡元件(或震荡源)、复位电路和接口电路,载入软件后,可以构成单片机应用系统。将它嵌入到形形色色的应用系统中,它就成为众多产品、设备的智能化核心。所以,生产企业称单片机为“微电脑”。
课程设计是提高学生单片机技术应用能力以及文字总结能力的综合训练环节,是配合单片机课程内容掌握、应用得的专门性实践类课程。通过典型实际问题的实际,训练学生的软硬件的综合设计、调试能力以及文字组织能力,建立系统设计概念,加强工程应用思维方式的训练,同时对教学内容做一定的扩充。
倒数计数器单片机课程设计

2.4.4按键控制模块
按键用于控制数码显示、LCD显示、扬声器等模块的工作。通过扫描按键是否按下,来设定各模块的工作情况,使各模块可以在按键的控制下,有序地进行工作。设计中使用单个按键实现单个功能,属于较为简单的控制方式,在多功能系统设计的试验中我们使用四个按键分别与单片机的p1.0、p1.1、p1.2、p1.3相连。通过按下相应的按键来处理相应的程序。如下图6所示。
图6 按键控制模块图
2.4.5其它元件
其它元件图如下图7所示。
图7 其他元件图
2.5绘制中遇到的问题及解决办法
在绘图的过程中主要出现的问题是有些元器件在protues中找不到,出现这样的问题是对protues软件的应用不是很熟悉,当遇到找不的元器件时,就只有通过网络来查找。
第三章系统软件设计
3.1软件设计
高4位三态、双向数据总线4位
12
DB5
高4位三态、双向数据总线5位
13
DB6
高4位三态、双向数据总线6位
14
DB7
高4位三态、双向数据总线7位(最高位)(也是busy flag)
15
BLA
背光电源正极
16
BLK
背光电源负极
2.4.3晶振电路
时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊地一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统稳定性。常用的时钟电路有两种方式,一种是内部时钟方式,另一种是外部时钟方式。
单片机倒计时课程设计

单片机倒计时课程设计一、课程目标知识目标:1. 理解单片机的基本原理,掌握其内部结构和功能。
2. 学会编写简单的C语言程序,实现对单片机的控制。
3. 掌握倒计时功能的实现方法,理解其工作原理。
技能目标:1. 能够运用所学知识,设计并实现一个具有倒计时功能的小程序。
2. 培养学生的动手实践能力,提高问题解决和团队协作能力。
3. 提高学生编程和调试程序的能力,培养良好的编程习惯。
情感态度价值观目标:1. 激发学生对单片机及编程的兴趣,培养自主学习、持续探究的热情。
2. 培养学生面对问题时的耐心、细心和信心,形成积极向上的学习态度。
3. 增强学生的团队协作意识,培养尊重他人、共同进步的价值观。
课程性质分析:本课程为实践性较强的课程,结合单片机原理和编程技巧,培养学生动手实践能力和问题解决能力。
学生特点分析:本课程针对的是初中或高中年级的学生,他们对单片机有一定的基础认识,具备基本的编程知识,但实践能力有待提高。
教学要求:1. 课程内容要紧密结合课本,确保学生能够将所学知识应用到实际操作中。
2. 教学过程中注重启发式教学,引导学生主动思考、发现问题、解决问题。
3. 重视团队协作,培养学生的沟通能力和合作精神。
4. 教学评估关注学生的实际操作能力、编程技巧和团队协作表现。
二、教学内容1. 单片机基础理论:回顾单片机的内部结构、工作原理及功能,重点掌握时钟电路、I/O口控制、中断系统等基础知识。
相关教材章节:第一章 单片机概述,第三章 单片机内部结构及工作原理。
2. C语言编程:学习单片机编程基础,掌握C语言的基本语法和编程技巧,能编写简单的控制程序。
相关教材章节:第二章 单片机编程语言,第六章 C语言编程实例。
3. 倒计时程序设计:学习倒计时程序的设计方法,掌握定时器/计数器的工作原理,学会编写倒计时程序。
相关教材章节:第五章 定时器/计数器,第七章 常用程序设计实例。
4. 实践操作:结合所学知识,设计并实现一个具有倒计时功能的小程序,包括硬件连接、程序编写、调试与优化。
单片机课程设计秒倒计时

单片机课程设计秒倒计时概述在单片机课程设计中,秒倒计时是一个常见的实践项目。
本文将介绍如何使用单片机设计一个简单的秒倒计时电路,并使用Markdown文本格式进行说明。
硬件设备•单片机(例如STC89C52)•七段数码管•按钮•电阻、电容等基础元器件功能设计本文设计的秒倒计时电路具有以下功能: 1. 系统上电后,自动开始倒计时; 2. 使用按钮控制启动/暂停倒计时; 3. 使用按钮控制归零操作; 4. 显示倒计时的秒数。
硬件连接七段数码管将7个IO口分别连接到七段数码管的对应引脚,使用共阳极数码管时,将数码管的共阳极引脚连接到VCC,使用共阴极数码管时,将数码管的共阴极引脚连接到GND。
按钮使用一个按钮作为启动/暂停倒计时的按键,使用另一个按钮作为归零操作的按键。
将按钮引脚连接到单片机的GPIO口,并通过上拉电阻将按钮引脚连接到VCC。
软件设计引脚定义首先,需要定义单片机的输入输出引脚。
根据硬件连接,假设七段数码管的引脚分别连接到P0口,启动/暂停按钮连接到P1.0口,归零按钮连接到P1.1口。
可以使用以下代码进行引脚定义:// 引脚定义sbit LED = P0; // 七段数码管连接到P0口sbit KEY1 = P1^0; // 启动/暂停按钮连接到P1.0口sbit KEY2 = P1^1; // 归零按钮连接到P1.1口然后,需要设计倒计时的逻辑。
在每个时钟周期,需要判断是否需要启动/暂停倒计时,以及是否需要进行归零操作。
具体的倒计时逻辑可以使用以下代码实现:// 秒倒计时逻辑void countdown() {static unsigned int seconds = 60; // 倒计时的秒数,默认为60秒static bit running = 0; // 表示倒计时是否运行中,默认为停止状态if (running) {if (seconds > 0) {seconds--;} else {running = 0;}}if (KEY1 == 0) { // 按下启动/暂停按钮running = !running;delay(10); // 延时去抖动}if (KEY2 == 0) { // 按下归零按钮seconds = 60;running = 0;delay(10); // 延时去抖动}}最后,需要设计显示倒计时的逻辑。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
x x x x x x x x x x x学校课程设计报告课程名称:单片机原理及应用课程设计设计题目:倒计时器系别:通信与控制工程系专业:电子信息工程班级:10级电信2班学生姓名: 张帆杜斌学号: 10409203、10409221起止日期: 2012年12月24日~2013年1月6日指导教师:教研室主任:本系统采用STC89C52作为主控芯片,设计一款的倒计时器,该倒计时器能在数码管显示倒计时的时间,时间可由按键进行设定,4位数码管做显示,能够实现5种倒计时模式,通过控制按键进行选择9999s-0s、999s-0s、99s-0s、9s-0s、开始值由人工输入-0s的特点。
首先检测按键,当相应的按键按下时,进入相应的倒计时方式。
工作方式五为可调初值的倒计时方式,初值也是通过独立按键来设定。
定时中断二十次后即一秒后,初值自动减一。
当初值减到零后,计时停止。
关键词:STC89C52;数码管显示;独立按键;振荡电路设计要求 (1)1 方案论证与对比 (1)1.1 方案一 (1)1.2 方案二 (1)1.3 方案对比与选择 (1)2 单元电路设计与计算 (2)2.1 STC89C52简介 (2)2.2时钟振荡电路的设计 (3)2.3复位电路的设计 (3)2.4数码管显示电路的设计 (4)2.5 独立按键电路的设计 (5)3 系统软件设计 (6)3.1 倒计时主程序流程 (6)3.2 定时器工作流程 (7)4 系统功能测试与整体指标 (8)5 详细仪器清单 (9)6 总结与思考及致谢 (10)参考文献 (10)附录一:倒计时器DXP原理图 (11)附录二:倒计时器电路PCB板图 (12)附录三:实物图 (13)附录四:程序 (14)倒计时器设计任务与要求本项目是由单片机执行设定的程序,在数码管显示倒计时的时间,且能由单片机接受矩阵键盘设定的时间。
由4位数码管做显示,能够实现5种倒计时模式,通过控制按键进行选择9999s-0s、999s-0s、99s-0s、9s-0s、开始值由人工输入-0s。
1 方案论证与对比现在,在许多领域中,定时器得到了广泛的应用,比如在体育比赛中的计时器;游戏中的倒计时;红绿灯,交通控制器,闹钟等等。
可见倒计时器在社会中的重要性。
当然,设计倒计时器的方法很多,以下是两个设计方案。
1.1 方案一基于STC89S52单片机的LCD液晶显示模块1602显示的倒计时器。
主要是以单片机来控制,用按键来设定倒计时初始时刻的值,用按键来进行倒计时初值的选择,LCD1602液晶作为显示模块来显示倒计时间。
1.2 方案二基于STC89S52单片机的数码管显示模块显示的倒计时器。
主要是以单片机来控制,用按键来设定倒计时初始时刻的值,按键来进行倒计时初值的选择。
采用以软件为主的接口方法,即不使用专门的硬件译码器,而采用软件程序进行译码。
1.3方案对比与选择比较两个方案,我们发现,方案二总体比方案一好。
首先方案一虽然硬件电路简单,但造价较高,且在编写程序实现所要求的功能时较难,而方案二所用的显示模块是比较熟悉的数码管,编写程序是相对容易,且电路造价不高,因此,综合考虑之后决定采用方案二。
2单元电路设计LED数码管倒计时器以STC89C52单片机为核心,起着控制作用,系统包括四位数码管显示电路,按键电路,复位电路,时钟振荡电路。
倒计时的总体框图如下图1所示:2.1 STC89C52简介STC89C52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。
在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,2个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口。
另外 STC89X52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35MHz,6T/12T可选。
图2 STC89C52引脚图2.2 时钟振荡电路的设计单片机必须在时钟的驱动下才能工作。
在单片机内部有一个时钟振荡电路,只要外界一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。
本系统使用的是内部时钟方式。
时钟电路如下图2所示。
一般选用石英晶体振荡器。
此电路在加电大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。
电路中两个电容C1、C2的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。
本系统的C1、C2的值为30pf。
图3 时钟振荡电路2.3复位电路的设计在上电或复位过程中,控制CPU的复位状态:这段时间内让CPU保持复位状态,而不是一上电或刚复位完毕就工作,防止CPU发出错误的指令、执行错误操作,也可以提高电磁兼容性能。
无论用户使用哪种类型的单片机,总要涉及到单片机复位电路的设计。
而单片机复位电路设计的好坏,直接影响到整个系统工作的可靠性。
许多用户在设计完单片机系统,并在实验室调试成功后,在现场却出现了“死机”、“程序走飞”等现象,这主要是单片机的复位电路设计不可靠引起的。
基本的复位方式基本的复位方式基本的复位方式基本的复位方式单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。
89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。
当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。
单片机系统的复位方式有:手动按钮复位和上电复位。
此系统我们选用了手动按钮复位,手动按钮复位需要人为在复位输入端RST上加入高电平(图1)。
一般采用的办法是在RST端和正电源Vcc之间接一个按钮。
当人为按下按钮时,则Vcc 的+5V电平就会直接加到RST端。
手动按钮复位的电路如所示。
由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。
图4 复位电路2.4 数码管显示电路的设计led数码管(LED Segment Displays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。
led数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。
位数有半位,1,2,3,4,5,6,8,10位等等....,led数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。
共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。
颜色有红,绿,蓝,黄等几种。
led数码管广泛用于仪表,时钟,车站,家电等场合。
选用时要注意产品尺寸颜色,功耗,亮度,波长等。
在这里我们使用的是8段数码管显示(包含小数点),通常在显示上我们采用的方法一般包括两种:一种是静态显示,另一种是动态显示。
其中静态显示的特点是显示稳定不闪烁,程序编写简单,但占用端口资源多,所耗得电能较大;动态显示的特点是显示稳定性没静态好,程序编写复杂,但是相对静态显示而言占用端口资源少。
在本设计中,为了减少端口资源,降低电能消耗,采用的是动态显示方法。
本系统的倒计时时间的最大范围是9999S,要显示出最大范围的值,从而可知数码管显示电路要用到4位数码管。
图5 数码管显示电路原理图2.5 独立按键电路设计通过5个独立按键控制不同的5种工作方式。
因为第五种工作方式为可调的倒计时模式,所以另外加了四个调初始值的按键,一个计时开始/停止键。
图6 独立按键电路图3系统软件设计3.1 倒时计器主程序流程图程序的的开始时先设定定时器0,先给定时,器装初值。
检测按键是否按下,如果有按键按下,进入相应的倒计时方式。
定时器0的定时时间是50ms,每当进入定时中断一次变量aa自动加一,当aa等于20时即为计时一秒,此时计时器清零,重新赋初值,并且之前设定的倒计时初值num值自动减一,同时进行相关的显示。
图7 主程序流程图3.2定时器0的中断程序流程定时器0的定时时间是50ms,用作扫描数码管显示,在定时器0开启时,定时器0开始定时,此时主程序正常运行,当定时器0的定时时间到时,主程序不在执行,开始进入中断程序,在中断程序中,若计时了1s就对时间进行处理且计数标志清零,赋值给相应的变量且减1,若没有则计数标志就进行加1,若倒计时的时间为零则重新赋值,中断程序执行完后返回主程序。
如图8所示。
图8定时器0的中断程序流程图4系统功能测试硬件调试的主要任务是排除硬件故障,其中包括设计错误和工艺性故障。
1、脱机检查:用万用表逐步按照电路原理图检查印制电路中所有器件的各引脚,尤其是电源的连接是否正确:检查数据总线、地址总线和控制总线是否有短路等故障,顺序是否正确;检查各开关按键是否能正常开关,是否连接正常;各限流电阻是否短路等内容。
为了保护芯片,应先对各IC电位进行检查,确定其无误后再插入芯片检查。
2、联机调试:暂时拔掉89C52芯片,将仿真器的40仿真插入89C52的芯片插座进行调试,检验键盘/显示接口电路是否满足要求设计。
可以通过一些简单的测软件来查看接口工作是否正常。
例如,我们可以设计一个软件,使89C52的P1、P2口输出55H或AAH,同时读P3口,运行后用万用表检查相应端口电平是否一高一低,在仿真器中检查读入的P3口8位是否为1,如果正常则说明89C52正常工作。
还可以设计一个使所有LED全显示“8.”的静态显示程序来检验LED的好坏。
如果运行测试结果与预期不符,很容易根据故障现象判断故障原因并采取针对性措施排除故障。
开始时,数码管的亮度不够理想。
经检查知,是段选电阻(接P0口的限流电阻)太大。
最后,换成470欧的电阻后,数码管显示正常。
软件调试的任务是利用开发工具进行在线仿真调试,发现和纠正程序错误,同时也能发现硬件故障。
程序的调试应一个模块一个模块地进行,首先单独调试各功能子程序,检验程序是否能够实现预期的功能,接口电路的控制是否正常等.最后逐步将各子程序连接起来进行联调。
本系统的程序的编写就是在Keil C软件中用C语言完成的。
在程序中用到了一个定时器,为了使倒计时的时间准确,必须计算对定时器的初值,当程序完成之后,生成HEX文件。