课程设计基于单片机的数字式秒表的设计.doc

上传人:laozhun 文档编号:4150449 上传时间:2023-04-07 格式:DOC 页数:34 大小:382.50KB
返回 下载 相关 举报
课程设计基于单片机的数字式秒表的设计.doc_第1页
第1页 / 共34页
课程设计基于单片机的数字式秒表的设计.doc_第2页
第2页 / 共34页
课程设计基于单片机的数字式秒表的设计.doc_第3页
第3页 / 共34页
课程设计基于单片机的数字式秒表的设计.doc_第4页
第4页 / 共34页
课程设计基于单片机的数字式秒表的设计.doc_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《课程设计基于单片机的数字式秒表的设计.doc》由会员分享,可在线阅读,更多相关《课程设计基于单片机的数字式秒表的设计.doc(34页珍藏版)》请在三一办公上搜索。

1、 毕业设计课题名称: 基于单片机秒表课程设计 设计时间: 2011.10.12 2010.12.28 系 部: 电气工程系 班 级: 电信S2009-2-24 总 目 录 第一部分 任务书 第二部分 开题报告 第三部分 毕业设计正文基于单片机的数字式秒表的设计 第 一 部 分任务书湖南工业职业技术学院毕业设计任务书系 部电气工程系指导老师刘云芳职 称副教授学生姓名黄博宇班 级 电信S2009-2-24学 号24设计题目智能防火防盗报警系统设计设计内容目标和要求毕业设计内容和目标:1、设计内容:针对国内外的发展情况,可见住宅智能安全防范系统是我国未来智能住宅建设的重点发展方向。本课题要设计的智能

2、住宅防盗防火报警系统是依托公共电话网做传输媒体的电话报警系统,与传统的区域报警系统相比,它具有传输距离远、硬件简单、安装方便的优点,而对于实行物业管理的居民区以及机关、事业单位的办公区则采用分户对值班室的联网方案。2、设计目的:本课题所设计的防盗防火报警系统符合国家建设部对普及型住宅小区的要求,实现功能包括:能对住宅的火灾实行自动报警;还能对盗窃以及入室抢劫实行自动报警;住宅设置紧急呼叫系统;用户端自动报警器对各传感器的信号进行检测和控制;用户端自动报警装置对双音多频(DTMF)编、译码器控制,使住宅通过电话网实现与相关部门(小区管理中心或110 / 119 报警台)之间的数据交换,设置简洁,

3、操作方便。毕业设计论文要求:1、巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力;2、培养针对课题需要,选择和查阅有关手册、图表及文献资料的自学能力,提高组成系统、编程、调试的动手能力;教研室审核系部审核第 二 部 分开题报告湖南工业职业技术学院 电气工程系09 届毕业设计(论文)开题报告书学生姓名 谭竞争专业机电一体化班级机电s2009-3学号37题 目智能防火防盗报警系统设计指导教师陈永革职称副教授学 位学士题目类别 工程设计 基础研究 应用研究 其它【课题的内容与要求】本课题所设计的防盗防火报警系统符合国家建设部对普及型住宅小区的要求,实现功能包括:能对住

4、宅的火灾实行自动报警;还能对盗窃以及入室抢劫实行自动报警;住宅设置紧急呼叫系统;用户端自动报警器对各传感器的信号进行检测和控制;用户端自动报警装置对双音多频(DTMF)编、译码器控制,使住宅通过电话网实现与相关部门(小区管理中心或110 / 119 报警台)之间的数据交换,设置简洁,操作方便。【前言】本课题要设计的智能住宅防盗防火报警系统是依托公共电话网做传输媒体的电话报警系统,与传统的区域报警系统相比,它具有传输距离远、硬件简单、安装方便的优点,而对于实行物业管理的居民区以及机关、事业单位的办公区则采用分户对值班室的联网方案。本文所介绍的安全报警系统,是用双绞线连接中央控制器和各用户端自动报

5、警器,实现前端报警器的报警数据采集;利用电话线,采用单片控制的DTMF 通信方式实现自动拨号报警,既可提高信息传递速度,又可解决前端报警器之间同时报警争信道问题。【方案的比较与评价】该智能报警系统主要包含用户端电子防盗防火系统及监控管理控制中心两大部分。用户端的电子防盗防火系统又包括探测器、自动报警器及输出等组成部分,并将模块化思想引入此系统,从而使整个系统的功能更完善、灵活、可调。课题重点设计了前端探测器部分和自动拨号报警部分,最终完成了防盗防火的自动拨号报警功能。本课题内容属于硬件电路的设计与应用方面,实现过程包括电路原理设计、元器件(芯片)选择与特性测试、分立元件面包板模拟、编制程序及软

6、件调试、整体电路编程器调试、设计外观及制版、产品抗干扰。在满足各项性能指标的前提下,不仅要考虑到系统的易用性,还要努力降低成本,使其经济实用,在保证灵敏度的情况下,尽量降低误报率,确保在同类产品中的竞争地位。【预期的效果及指标】通过这次毕业设计,加强了我动手、思考和解决问题的能力。我觉得做毕业设计同时也是对课本知识的巩固和加强,平时看课本时,有时问题老是弄不懂,做完设计,那些问题就迎刃而解了。而且还可以记住很多东西。,平时看课本,这次看了,下次就忘了,主要是因为没有动手实践过吧!认识来源于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准。作为毕业的学生,确实从中学到了很多的知识【进度

7、安排】2009 年12月 - 2010 年3月 选题、调研、收集资料2010 年 3 月 12日 - 2010 年 3 月14日 论证、开题2010 年 3 月 15日 - 2010 年 4 月25 日 设计(写作初稿)2010 年 4 月 26日 - 2010 年 4 月28 日 修改、定稿、打印【参考文献】1 冯庆祥,毕平智能化小区和智能住宅低温建筑技术,2002:12-132 智能建筑技术与应用第一版北京:中国建筑工业出版社,2001:182-227 3 温强,赖志昌,王丽慧双音多频发送接收器MT8888 及其应用, 2000:71-73 4 张金泉一种新型民用防火防盗报警器的研制燕山大

8、学学报,2000:47-48【指导教师意见】(有针对性地说明选题意义及工作安排是否恰当等)同意提交开题论证 修改后提交 不同意提交(请说明理由)指导教师签章: 年 月 日 【系部意见】同意指导教师意见 不同意指导教师意见(请说明理由) 其它(请说明)队系(部)主任签章: 年 月 日第 三 部 分毕业设计正文1.1设计任务及功能要求说明 由单片机接收小键盘控制递增计时,由LED 显示模块计时时间,显示格式为 XX(分):XX(秒).XX,精确到0.01s的整数倍。绘制系统硬件接线图,并进行系统仿真和实验。画出程序流程图并编写程序实现系统功能。 使用单片机AT89S52作为主要控制芯片,以四位一体

9、共阳极数码显示管通过三极管驱动作为显示部分,设计一个具有特定功能的数字式秒表。该数字式秒表上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。该数字式秒表通过按键控制可实现开始计时、暂停计时、连续计时、清零和停止功能。1.2数字式秒表的方案介绍及工作原理说明 使用AT89S52单片机作为核心控制部件,采用12M晶体振荡器及微小电容构成振荡电路;采用S8550作为数码管的驱动部分;用两个四位一体共阳极或共阴极数码显示管作为显示部分,构成数字式秒表的主体结构,配合独立式键盘和复位电路完成此秒表的复位、计时、连续、清零、停止各项功能。对于时钟,它有两方面的含义:一是指为保障系统正常工作的

10、基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法。 LED数码显示器有如下两种连接方法:共阳极接法:把发光二极管的阳极连在一起构成公共阳极,使用时公共阳极接+5V,每个发光二极管的阴极通过电阻与输入端相连。共阴极接法:把发光二极管的阴极连在一起构成公共阴极,使用时公共阴极接地。每个发光二极管的阳极通过电阻与输入端相连。 键盘

11、部分方案:键盘控制采用独立式按键,每个按键的一端均接地,另一端直接和P1口相连,在按键和P1口之间通过10K电阻与+5V电源相连。键盘通过检测输入线的电平状态就可以很容易地判断哪个键被按下了,这种方法操作速度高而且软件结构很简单,比较适合按键较少或操作速度较高的场合,这种独立式接口的应用很普遍。 显示部分方案:显示部分采用动态显示。数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收

12、到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。动态显示是利用人眼视觉暂留特性来实现显示的。事实上,显示器上任何时刻只有一个数码管有显示。由于各数码管轮流显示的时间间隔短、节奏快,人的眼睛反应不过来,因此看到的是连续显示的现象。为防止闪烁延时的时间在1ms左右,不能太长,也不能太短。本设计可采用P0口直接驱动八段数码管显示。此方案成本低,而且单片机的I/O口占用较少,可以节约单片机接

13、口资源,而且功耗更低。 此电路采用单片机的P0口作为数码显示管的段控,采用P2口作为数码管的位控。8个独立式键盘分别接在单片机的P1口上,以及其他部分构成数字式秒表的硬件电路。通过编写程序使用单片机的定时计数器,以及软件延时,中断资源来实现秒计时和相关控制。此数字式秒表的硬件整体结构如图1-1所示。AT89S52电源振荡电路复位电路独立式键盘驱动电路数码管显示限流图 1-1数字式秒表的硬件结构图第2章 数字式秒表硬件系统的设计2.1数字式秒表硬件系统各模块功能简要介绍2.1.1 AT89S52简介(1) 与MCS-51产品相兼容;(2) 具有8KB可改写的Flash 内部程序存储器,可写/擦1

14、000次;(5) 256字节内部RAM;(6) 32根可编程I/O口;(7)3个16位定时器/计数器。 (8) 8个中断源;(9)可编程中串行口;(10) 低功耗空闲和掉电方式。它的价格便宜,功能强大,能耗低。很大程度上减少总电路的复杂性,提高了所设计系统的稳定性。其芯片引脚图如图2-1所示。图2-1 单片机AT89S52引脚图2.1.2时钟电路 时钟电路用于产生单片机工作所需要的时钟信号,单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。在AT89S52芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为引脚

15、TXAL2,在芯片的外部通过这两个引角跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。 此电路采用12MHz的石英晶体。时钟电路如图2-2:图2-2 时钟电路2.1.3键盘电路 本设计使用独立式键盘接在单片机的P1口上但通过软件赋予其中三个按键功能,其中S2是计时开始按键,第二功能为停止,S3为计时暂停按键,第二功能为继续计时按键,S4是清零按键。注意使用时只有在暂停状态下才能继续计时,只有在停止状态下才能清零,在停止时不能继续计时,在暂停时不能清零。键盘电路如图2-3:图2-3独立式键盘电路图2.1.4复位电路 复位是单片机的初始化操作,其主要功能是把PC初始化为000

16、0H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误是系统处于死锁状态时,为摆脱困境,也需要按复位键以重新启动。 RST引脚是单片机复位信号的输入端,复位信号是高电平有效,其有效时间应持续24个振荡周期(即2个机器周期)以上,若使用频率为6MHz的晶振,则复位信号持续时间应超过4us才能完成复位操作。复位操作有上电自动复位和按键手动复位两种方式。上电自动复位是通过外部复位电路的电容充电来实现的。按键电平复位是通过使复位端经电阻与Vcc电源接通而实现的。在本设计中采用了按键电平复位方式,其复位电路如图2-4所示:图2-4 复位电路2.1.5 驱动

17、及显示电路 数码管实际上是由二极管构成发光二级管正常工作时,其两端正向压降约为1.6v,正向电流约为10mA,为了使数码管达到一定的亮度而又不至于由于电流过大而损坏,我们使用三极管S8550作为数码管的驱动,同时在P0口和P2口上串上470欧姆的电阻。此处使用四位一体共阴极数码管,由于驱动电路决定了此处共阴极数码管和共阳极数码管均可以采用而且均采用共阳极代码来编写显示程序,具体电路如图2-5所示。 图2-5 数码管驱动及显示电路图2.1.6 单片机下载口电路 下载口主要是一个十芯的座子,可以通过使用USB下载线对单片机进行程序下载。方便整个软件的设计,也能让我们使用起来更加方便。图2-6 单片

18、机下载口电路图2.2 数字式秒表的硬件系统设计图2.2.1 电路原理图 此处电路原理图以及PCB原理图的绘制均使用protel99软件完成,Protel99是基于Win95/Win NT/Win98/Win2000的纯32位电路设计制版系统。Protel99提供了一个集成的设计环境,包括了原理图设计和PCB布线工具,集成的设计文档管理,支持通过网络进行工作组协同设计功能。根据硬件接线要求设计绘制电路原理图及PCB。具体电路图见附录A与附录B。2.2.2 PCB图 PCB图设计时,首先要使元器件尽量少,这样既可以节约材料,又可以是布线更加短,减少干扰,同时还应注意尽量减少线路之间的寄生电容和电感

19、,布线时需要将线宽设置得比较宽这样可以提高腐蚀电路板时的成功率,焊盘大小也要设置的比较大,这样在腐蚀环节和焊接环节比较容易成功。不易出现短线的现象和焊盘剥离的现象。双面布线时芯片和针脚多的元件需将焊接点置于底层,这样才能比较方便的焊接。 制作电路板PCB图见附录B。 第3章 数字式秒表软件系统的设计3.1 数字式秒表使用单片机资源情况 本次电子钟设计除了了使用单片机工作所必须的硬件资源(如连接晶振的引脚XTAL1和XTAL2,复位引脚RESET)外,对单片机的硬件资源还做了具体的安排。(1).P0口:P0.0-P0.7作为数码管显示器的段控。(2).P1口:P1.0-P1.3作为独立式键盘的输

20、入端。(3).P2口:P2.0-P2.7分别控制数码管LED0-LED7的位控码驱动。(4).定时/计数器:使用定时器0工作方式2实现数字式计数器的运行。(5).专用寄存器:定时器控制寄存器TCON,通过设置该寄存器TR0位的状态来控制定时/计数器0的启动/停止;中断允许寄存器IE,通过设置该寄存器EA/ET0位的状态来设置定时/计数器0中断允许/禁止;定时/计数器工作方式寄存器TMOD,设置定时/计数器0的工作方式。3.2 主程序流程图 MAIN定义堆栈显示缓冲单元清零定时器0工作方式1装载计数初值定时开始开中断设置循环次数调用显示子程序等待定时中断请求键盘扫描 图3-1 主程序流程图3.3

21、中断服务程序流程图PDJW现场保护计数器重加载循环次数减1是否满8次毫秒值加1是否满60毫秒缓冲清零秒值加1是否60S秒显缓冲清零分显示加1是否满60分显示清零现场恢复返回YNNNNYYY 图3-2 中断服务程序流程图3.4显示程序流程图DISP现场保护寄存器初始化显示代码查表送段控代码送位控代码延时送段控代码位控代码左移左移8次?恢复现场返回NY 图3-3显示程序流程图3.5软件系统程序清单 按照流程图应用软件keil汇编语言编程实现秒表功能。程序见附录C。 第4章 设计总结4.1 数字式秒表的设计结论及使用说明 通过设计和调试,数字式秒表能顺利完成各项功能。上电或复位后显示“P.”提示符,

22、此时按1键便可开始计时。在计数状态下,按下2键即可实现暂停,再次按下2键即可实现继续计数,在计数状态下按下1键,实现计数停止,在停止状态下按下3键,便可实现计数清零。计数状态下按下清零键,无效。4.2 调试软件介绍 本电子钟的设计用的pretues仿真软件设计电路并仿真。Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器

23、、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,

24、功能极其强大。因为pretues仿真软件中所有的情况都是在理想想的条件下,但是与实际电路的工作还是有很大的差别,所以我们必需考虑到实际情况应接入驱动限流等电路它才能被实际所应用。4.3 程序仿真与结果 我们是在Keil软件里编写程序并编译通过才能被硬件电路所应用。Keil的功能比较强大但还是有一定的缺点。他编译过程中他只能检查出所编写的语法错误,所以我们一步一步的去在硬件电路里仿真去达到我们所设计要求的功能。经仿真修改和完善均已达到设计要求.“P.”显示,电子钟准备状态与电子钟自动运行状态的仿真如下图所示。(1). “P.”显示如图4-1所示。图4-1 “P”显示图(2). 数字式秒表准备状态

25、仿真的显示如图4-2所示。 图4-2 准备计时状态(3). 数字式秒表运行状态的仿真如图4-3所示。 图4-3 计时器状态4.4 误差分析及解决方法我们可以发现数字式秒表计数一段时间的我们的标准时间相比较出现了误差,所设计的数字式秒表比我们的标准时间要慢,而且相比较的时间越长他的时差越大。经过分其主要原因与硬件和软件都有关。软件原因:我们从外部中断请求有效到转向中断区入口地址所需的机器周期数来计算中断时间,51系列单片机最短响应时间为3个机器周期。在一般情况下中断响应时间通常无需考虑,但在精确定时的应用场合需知道中断响应时间,以保证定时的精确控制。硬件原因:单片机的时钟信号是由外部的振荡电路所

26、提供,在芯片的外部通过接XATL1与XATL2这两个引角跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。因为电子原件不可以就有我们所设计的那么理想(电容的容量,振晶的输出频率)所以会造成我们的时间准确。 针对这样的问题我们就能只能从上述两个方面入手去解决。软件方面我们可以通过计算设计子程序去减少响应的时差。硬件部分我们可以采用一些稳定,精确度比较高的电子元件去完善,但是在最后调试出的还是有误差但我尽可能的减少差误差接近理想。4.5 设计心得 通过对数字式秒表的设计与制作,我们把理论与实际相结合。加深了对理论知识的理解,也增强了我们的动手能力。 在电路设计过程中,我们学会了

27、自己收集信息和处理信息的能力,为以后的学习和制作奠定了一定的基础,数字式秒表看似简单,但当我们自己着手设计与制作的时候我们才发现是困难重重的。 在元器件采购过程中发现的问题更大,在电路计算式我们根本没有考虑到元器件的型号和性能参数,然而在实物购买时我们就不得不开始考虑其型号和性能参数,这也是理论与实际的差别。还有,一些阻值的电阻与某些大小的电容根本就没有这种型号的买,这样我们不得不考虑改变设计电路中的参数,或者采用电路的等效方式来解决这样的问题。 在制作PCB时,发现一定要有细心、耐心和恒心才能做好事情,首先是线的布局上既要美观又要实用和走线简单,兼顾到方方面面去考虑是很需要的。比如在做PCB

28、板时,因为缺乏经验把板上的线画得太细了,焊盘太细导致后面的腐蚀环节稍微有点失误将使电路板出现断线,打孔后无焊盘等问题,把PCB板浸在三氯化铁里浸得太久可能导致PCB板上的铜几乎全都溶解了。双面布线时必须做到两面完全对齐,否则板子有可能无法使用,还有在有芯片的电路布线时不能将从芯片引脚引出的线布在两面,否则将无法完成焊接任务。 从刚刚接触单片机开始,此设计是我迄今为止,编写的最大的一个程序,在调试过程中,我学会了怎样去根据实验现象解决问题,分析问题的所在点。它不仅加强了我们解决问题的能力,同时也锻炼了我们的逻辑思维能力。 此次课程设计,学到了很多课内学不到的东西,比如独立思考解决问题,出现差错的

29、随机应变,使我们在实际动手能力方面得到了较大的提高。4.6 教学建议 希望学校能够注重动手能力的培养,与生活实际相结合,把所学内容应用到生活中去,这学期我们通过结合实例讲解程序,使我们更深刻的了解单片机的理论知识,最重要的是通过实验课我们可以边学边实践,从实践中记住各种指令的用法和各种编程技巧,课本理论知识相对抽象而且散,如果仅仅靠看书根本无法熟练掌握单片机的软硬件资源的运用,而实验恰恰弥补了这个缺点,感觉通过实验学习更有效率,更生动有趣。故希望学校多多开设实验课程。参考文献1李朝青.单片机原理及接口技术M.北京:北京航空航天大学出版社,1988.1Li Zhaoqing. SCM Theor

30、y and Interface Technology M. Beijing: Beijing Aerospace University Press, 1988.2李勋等.单片机实用教程M.北京:北京航空航天大学出版社,20002 Li Xun and so on. microcontroller Practical Guide M. Beijing: Beijing Aerospace University Press, 20003王幸之等.单片机应用系统抗干扰技术M. 北京:北京航空航天大学出版社,19993 Wangxing the other. microcomputer applica

31、tion system interference technology M. Beijing: Beijing Aerospace University Press, 19994何为民.低功耗单片微型计算机系统设计M. 北京:北京航空航天大学出版社,19944 What the people. low-power single-chip micro-computer system design M. Beijing: Beijing Aerospace University Press, 19945李杏春等.8090单片机原理及实用接口技术M. 北京:北京航空航天大学出版社,19965 Li

32、Xingchun such .8090 SCM Theory and practical interface technology M. Beijing: Beijing Aerospace University Press, 1996致 谢刚开始接到课程设计任务,认为挺简单的,然而真正开始动手制作时才知道并不是那么简单,从初期的资料收集以及原理图的绘制都受到了老师以及同学的帮助,在遇到困难时请教老师和同学都能得到耐心的解答,帮助我们少走弯路。感谢我的老师,以及我的同学,在整个硬件电路的设计与制作过程中,他们都给了我很大的支持,是我从此次课程设计过程中获益匪浅,本人对设计过程中给予了通力合作,

33、以及精神的支持,的老师和同学深表感谢。如果没有他们我想我的设计不会这样顺利的完成。由于本人水平有限,在技术指标和论文写作中可能存在一些缺陷,恳请各位老师和同学们批评指教。 附 录 A 原理图 附录 B PCB图 附录 C 程序清单;*;项目名称:秒表;设计者:蒋慧;设计日期:2011年01月;*;LED数码管显示器设定;P0.7-P0.0段控线,接LED的显示段dp,g,f,e,d,c,b,a ;P2.7-P2.0位控线从左至右(LED7,LED6,LED5,LED4,LED3,LED2,LED1,LED0);显示缓冲区设定从左至右依次为78H,79H,7AH,7BH,7CH,7DH,7EH,

34、7FH ;*;独立式键盘设定与功能;8个按键S1至S8分别依次接在P1.0至P1.7口线;K0的功能为复位 ;K1的功能为启动/停止(标识符为22H.0当它为1时启动,为0时停止);K2的功能为暂停/继续(标识符为22H.1当它为1时暂停,为0时继续);K3的功能为清零;*;常数表格; ;DISBH(系统提示符P.字型代码序号表);TAB(共阳数码管字型代码表) ;*; ;子程序;TIME_1MS(定时1ms子程序);KEY(键扫描子程序);KEYCHULI(P1口数据处理子程序);DISP(数码管显示子程序);DL(2毫秒延时子程序);ADD01(入口地址为R0);*;存储器内容的安排;堆栈

35、栈底7FHH; ;20H作为按键标志(20H.020H.7分别对应的是按键K1K8);专用寄存组1,用在显示子程序中;*;系统起始程序区 ORG 0000H START: LJMP MAIN ORG 000BH LJMP PDJW;*;系统监控程序区 ORG 0030HMAIN: MOV PSW, #00H MOV SP, #7FH ;确立堆栈区 MOV R0, #20H ;RAM区首地址 MOV R7, #96 ;RAM区单元个数 MOVTMOD,#01H SETB EA SETBET0ML: MOV R0, #00H INC R0 DJNZ R7, MLTSF: MOV DPTR, #DI

36、SBH ;系统初始化后提示符“P.”字符代码表首地址 MOV R5, #08H MOV R0, #78HDISPTSF:CLR A MOVC A, A+DPTR MOV R0, A INC R0 INC DPTR DJNZ R5, DISPTSFKEY0:LCALLDISP LCALL KEYJB 20H.0, K1JB 20H.1, K2JB 20H.2, K3LJMP KEY0KEY00: LCALL KEY LCALL DISPJB 20H.2, K3LJMP KEY00 K1: JB 22H.1, KEY0;如果此时为暂停状态,本次按键K1无效CPL 22H.0 JB 22H.0, K

37、01 ;高电平则计时 CLR TR0 ;低电平则停止 LCALL DISPLJMP KEY00K01: MOV 7AH, #12H ;从零开始计时 MOV 7DH, #12H MOV 7FH, #10H MOV 78H, #00H MOV 79H, #00H MOV 7BH, #00H MOV 7CH, #00H MOV 7EH, #00H MOV 7FH, #00H LCALL DISP MOV TH0,#0D8H MOV TL0,#0F0H SETB TR0;启动定时器 LJMP KEY0K2: JB 22H.0, K21 ;判断秒表是否启动,如不是启动状态则此次按键无效 LJMP KEY

38、0K21: CPL22H.1 JB 22H.1, K22 SETB TR0 ;继续计时LJMP KEY0K22: CLR TR0 ;暂停秒表 LCALL DISPLJMP KEY0 K3:JB22H.0, KEY0 ;只有当停止是,清零键才有效MOV R0, #79H ;秒表清零 LCALL CLR00MOV R0, #7CH LCALL CLR00MOV R0, #7FH LCALL CLR00 LJMP KEY0PDJW: PUSH PSW PUSH ACCMOV TMOD, #01H ;定时器以工作方式1工作SETB RS1 ;设定组号为2组CLR RS0MOVTH0,#0D8HMOVTL0,#0F0HMOV R0, #79HLCALL ADD01CJNE R2, #99, RETT ;判断1秒到没MOV R0, #7CH LCALL ADD01CJNE R2,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号