欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PDF文档下载  

    51单片机数字秒表设计.pdf

    • 资源ID:5493445       资源大小:593.13KB        全文页数:24页
    • 资源格式: PDF        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    51单片机数字秒表设计.pdf

    实用文档 文案大全 单片机系统 课程设计 成绩评定表 设计课题 指导教师意见: 成绩: 签名:年月日 实用文档 文案大全 单片机系统 课程设计 目录 第 1 章 数字式秒表的设计介绍 5 1.1 设计任务及功能要求说明 5 1.2 工作原理及其方法 5 第 2 章 数字式秒表硬件系统的设计 7 2.1 数字式秒表硬件系统各模块功能简要介绍 7 2.1.1 AT89S52简介.7 2.1.2 时钟电路 .8 2.1.3 键盘电路 8 2.1.4 复位电路 9 2.1.5 驱动及显示电路 9 2.1.6 单片机下载口电路 10 2.2 数字式秒表的硬件系统设计图 11. 2.2.1 电路原理图 .11. 2.2.2 PCB 图11. 第 3 章 数字式秒表软件系统的设计 .11. 3.1 数字式秒表使用单片机资源情况 11 3.2 主程序流程图 12. 实用文档 文案大全 3.3 中断服务程序流程图 12 3.4 显示程序流程图 14 3.5 软件系统程序清单 14 第 4 章 设计总结 15 4.1 数字式秒表的设计结论及使用说明 15 4.2 程序仿真与结果 .15 4.3 误差分析及解决方法 16 总结16 参考文献 17 附录17 第 1 章 数字式秒表的设计介绍 1.1 设计任务及功能要求说明 由单片机接收小键盘控制递增计时,由LED 显示模块计时时间,显示格式 为 XX (分): XX (秒) .XX,精确到 0.01s 的整数倍。绘 制系统硬件接线图, 并进行系统仿真和实验。画出程序流程图并编写程序实现系统功能。 使用单片机 AT89S52作为主要控制芯片, 以四位一体共阳极数码显示管通过 三极管驱动作为显示部分, 设计一个具有特定功能的数字式秒表。该数字式秒表 上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。 该数字式 秒表通过按键控制可实现开始计1时、暂停计时、连续计时、清零和停止功能。 1.2 工作原理及其方法 使用 AT89S52单片机作为核心控制部件, 采用 12M晶体振荡器及微小电容构 成振荡电路; 采用 S8550作为数码管的驱动部分; 用两个四位一体共阳极或共阴 极数码显示管作为显示部分, 构成数字式秒表的主体结构, 配合独立式键盘和复 位电路完成此秒表的复位、计时、连续、清零、停止各项功能。 对于时钟,它有两方面的含义:一是指为保障系统正常工作的基准振荡定 时信号,主要由晶振和外围电路组成, 晶振频率的大小决定了单片机系统工作的 快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是 用软件实现,即用单片机内部的可编程定时/ 计数器来实现,但误差很大,主要 用在对时间精度要求不高的场合;二是用专门的时钟芯片实现, 在对时间精度要 求很高的情况下,通常采用这种方法。 LED数码显示器有如下两种连接方法:共阳极接法:把发光二极管的阳极连 实用文档 文案大全 在一起构成公共阳极,使用时公共阳极接+5V,每个发光二极管的阴极通过电阻 与输入端相连。 共阴极接法: 把发光二极管的阴极连在一起构成公共阴极,使用 时公共阴极接地。每个发光二极管的阳极通过电阻与输入端相连。 键盘部分方案: 键盘控制采用独立式按键, 每个按键的一端均接地, 另一端 直接和 P1口相连,在按键和 P1口之间通过 10K电阻与 +5V电源相连。键盘通过 检测输入线的电平状态就可以很容易地判断哪个键被按下了,这种方法操作速度 高而且软件结构很简单, 比较适合按键较少或操作速度较高的场合,这种独立式 接口的应用很普遍。 显示部分方案: 显示部分采用动态显示。 数码管动态显示接口是单片机中应 用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8 个显示笔划 “a,b,c,d,e,f,g,dp“的同名端连在一起, 另外为每个数码管的公共极COM 增加位 选通控制电路, 位选通由各自独立的I/O 线控制,当单片机输出字形码时, 所有 数码管都接收到相同的字形码, 但究竟是那个数码管会显示出字形,取决于单片 机对位选通 COM 端电路的控制,所以我们只要将需要显示的数码管的选通控制打 开,该位就显示出字形, 没有选通的数码管就不会亮。通过分时轮流控制各个数 码管的的 COM 端,就使各个数码管轮流受控显示,这就是动态驱动。 动态显示是 利用人眼视觉暂留特性来实现显示的。事实上,显示器上任何时刻只有一个数码 管有显示。由于各数码管轮流显示的时间间隔短、节奏快,人的眼睛反应不过来, 因此看到的是连续显示的现象。为防止闪烁延时的时间在1ms左右,不能太长, 也不能太短。本设计可采用P0口直接驱动八段数码管显示。此方案成本低,而 且单片机的 I/O 口占用较少,可以节约单片机接口资源,而且功耗更低。 此电路采用单片机的P0口作为数码显示管的段控, 采用 P2口作为数码管的 位控。 8 个独立式键盘分别接在单片机的P1 口上,以及其他部分构成数字式秒 表的硬件电路。 通过编写程序使用单片机的定时计数器,以及软件延时, 中断资 源来实现秒计时和相关控制。此数字式秒表的硬件整体结构如图1-1 所示。 实用文档 文案大全 图 1-1数字式秒表的硬件结构图 AT89S52 振荡电路 复位电路 独立式键盘 示 限流 实用文档 文案大全 第 2 章 数字式秒表硬件系统的设计 2.1 数字式秒表硬件系统各模块功能简要介绍 2.1.1 AT89S52 简介 (1) 与 MCS-51产品相兼容; (2) 具有 8KB可改写的 Flash 内部程序存储器,可写 / 擦 1000次; (5) 256字节内部 RAM ; (6) 32根可编程 I/O 口; (7) 3 个 16 位定时器 / 计数器。 (8) 8个中断源; (9) 可编程中串行口; (10) 低功耗空闲和掉电方式。 它的价格便宜,功能强大,能耗低。很大程度上减少总电路的复杂性,提高了所 设计系统的稳定性。其芯片引脚图如图2-1 所示。 图 2-1 单片机 AT89S52引脚图 实用文档 文案大全 2.1.2 时钟电路 时钟电路用于产生单片机工作所需要的时钟信号,单片机本身就是一个复 杂的同步时序电路, 为了保证同步工作方式的实现, 电路应在唯一的时钟信号控 制下严格地按时序进行工作。 在 AT89S52芯片内部有一个高增益反相放大器,其 输入端为芯片引脚XTAL1 ,输出端为引脚TXAL2 ,在芯片的外部通过这两个引角 跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。 此电路采用 12MHz的石英晶体。时钟电路如图2-2: 图 2-2 时钟电路 2.1.3 键盘电路 本设计使用独立式键盘接在单片机的P1 口上但通过软件赋予其中三个按键 功能,其中 S2是计时开始按键,第二功能为停止,S3为计时暂停按键,第二功 能为继续计时按键, S4 是清零按键。注意使用时只有在暂停状态下才能继续计 时,只有在停止状态下才能清零,在停止时不能继续计时,在暂停时不能清零。 键盘电路如图 2-3: 图 2-3 独立式键盘电路图 实用文档 文案大全 2.1.4复位电路 复位是单片机的初始化操作,其主要功能是把PC初始化为 0000H ,使单片 机从 0000H单元开始执行程序。 除了进入系统的正常初始化之外,当由于程序运 行出错或操作错误是系统处于死锁状态时,为摆脱困境, 也需要按复位键以重新 启动。 RST引脚是单片机复位信号的输入端,复位信号是高电平有效,其有效时间 应持续 24 个振荡周期(即 2 个机器周期)以上,若使用频率为6MHz 的晶振,则 复位信号持续时间应超过4us 才能完成复位操作。 复位操作有上电自动复位和按 键手动复位两种方式。上电自动复位是通过外部复位电路的电容充电来实现的。 按键电平复位是通过使复位端经电阻与Vcc 电源接通而实现的。 在本设计中采用 了按键电平复位方式,其复位电路如图2-4 所示: 图 2-4 复位电路 2.1.5 驱动及显示电路 数码管实际上是由二极管构成发光二级管正常工作时,其两端正向压降约为 1.6v,正向电流约为10mA,为了使数码管达到一定的亮度而又不至于由于电流 过大而损坏,我们使用三极管S8550 作为数码管的驱动,同时在P0 口和 P2口 实用文档 文案大全 上串上 470 欧姆的电阻。此处使用四位一体共阴极数码管,由于驱动电路决定了 此处共阴极数码管和共阳极数码管均可以采用而且均采用共阳极代码来编写显 示程序,具体电路如图2-5 所示。 图 2-5 数码管驱动及显示电路图 2.1.6 单片机下载口电路 下载口主要是一个十芯的座子, 可以通过使用 USB下载线对单片机进行程序 下载。方便整个软件的设计,也能让我们使用起来更加方便。 图 2-6 单片机下载口电路图 实用文档 文案大全 2.2 数字式秒表的硬件系统设计图 2.2.1 电路原理图 此处电路原理图以及 PCB 原理图的绘制均使用protel99 软件完成,Protel99 是基于 Win95/Win NT/Win98/Win2000 的纯 32 位电路设计制版系统。 Protel99 提供了一个集成的设计环境, 包括了原理图设计和PCB 布线工具,集成的设计文 档管理,支持通过网络进行工作组协同设计功能。根据硬件接线要求设计绘制电 路原理图及 PCB 。具体电路图见附录A与附录 B。 2.2.2 PCB 图 PCB图设计时,首先要使元器件尽量少,这样既可以节约材料,又可以是布 线更加短,减少干扰,同时还应注意尽量减少线路之间的寄生电容和电感, 布线时需要将线宽设置得比较宽这样可以提高腐蚀电路板时的成功率,焊盘大小 也要设置的比较大, 这样在腐蚀环节和焊接环节比较容易成功。不易出现短线的 现象和焊盘剥离的现象。双面布线时芯片和针脚多的元件需将焊接点置于底层, 这样才能比较方便的焊接。 制作电路板 PCB图见附录 B。 第 3 章 数字式秒表软件系统的设计 3.1 数字式秒表使用单片机资源情况 本次电子钟设计除了了使用单片机工作所必须的硬件资源(如连接晶振的引 脚 XTAL1和 XTAL2 ,复位引脚 RESET )外,对单片机的硬件资源还做了具体的安 排。 (1).P0 口:P0.0-P0.7 作为数码管显示器的段控。 (2).P1 口:P1.0-P1.3 作为独立式键盘的输入端。 (3).P2 口:P2.0-P2.7 分别控制数码管 LED0-LED7 的位控码驱动。 (4). 定时/ 计数器:使用定时器0 工作方式 2 实现数字式计数器的运行。 (5). 专用寄存器:定时器控制寄存器TCON ,通过设置该寄存器TR0位的状态来 控制定时 / 计数器 0 的启动 / 停止; 中断允许寄存器IE, 通过设置该寄存器EA/ET0 位的状态来设置定时/ 计数器0 中断允许 / 禁止;定时 / 计数器工作方式寄存器 TMOD ,设置定时 / 计数器 0 的工作方式。 实用文档 文案大全 3.2 主程序流程图 图 3-1 主程序流程图 3.3 中断服务程序流程图 MAIN 定义堆栈 显示缓冲单元清零 定时器 0 工作方式 1 装载计数初值 定时开始 开中断 设置循环次数 调用显示子程序 等待定时中断请求 键盘扫描 实用文档 文案大全 图 3-2 中断服务程序流程图 是否满 8 次 毫秒值加1 是否满 60 毫秒缓冲清零 秒值加 1 是否 60S 秒显缓冲清零 分显示加1 是否满 60 分显示清零 Y N N N N Y Y Y 实用文档 文案大全 3.4 显示程序流程图 图 3-3 显示程序流程图 3.5 软件系统程序清单 按照流程图应用软件keil汇编语言编程实现秒表功能。程序见附录C 。 DISP 现场保护 寄存器初始化 显示代码查表 送段控代码 送位控代码 延时 送段控代码 位控代码左移 左移 8 次? 恢复现场 N Y 实用文档 文案大全 第 4 章 设计总结 4.1 数字式秒表的设计结论及使用说明 通过设计和调试, 数字式秒表能顺利完成各项功能。 上电或复位后显示 “P.” 提示符,此时按 1 键便可开始计时。在计数状态下,按下2 键即可实现暂停,再 次按下 2 键即可实现继续计数, 在计数状态下按下1 键,实现计数停止, 在停止 状态下按下 3 键,便可实现计数清零。计数状态下按下清零键,无效。 4.2 程序仿真与结果 我们是在 Keil软件里编写程序并编译通过才能被硬件电路所应用。Keil的 功能比较强大但还是有一定的缺点。 他编译过程中他只能检查出所编写的语法错 误,所以我们一步一步的去在硬件电路里仿真去达到我们所设计要求的功能。经 仿真修改和完善均已达到设计要求. “P.”显示,电子钟准备状态与电子钟自动 运行状态的仿真如下图所示。 (1). “P.”显示如图 4-1 所示。 图 4-1 “P”显示图 (2). 数字式秒表准备状态仿真的显示如图4-2 所示。 图 4-2 准备计时状态 (3). 数字式秒表运行状态的仿真如图4-3 所示。 实用文档 文案大全 图 4-3 4.3 误差分析及解决方法 我们可以发现数字式秒表计数一段时间的我们的标准时间相比较出现了误 差,所设计的数字式秒表比我们的标准时间要慢,而且相比较的时间越长他的时 差越大。经过分其主要原因与硬件和软件都有关。 软件原因:我们从外部中断请求有效到转向中断区入口地址所需的机器周期 数来计算中断时间, 51 系列单片机最短响应时间为3 个机器周期。在一般情况 下中断响应时间通常无需考虑,但在精确定时的应用场合需知道中断响应时间, 以保证定时的精确控制。 硬件原因:单片机的时钟信号是由外部的振荡电路所提供,在芯片的外部通 过接 XATL1与 XATL2这两个引角跨接晶体振荡器和微调电容,形成反馈电路, 就 构成了一个稳定的自激振荡器。 因为电子原件不可以就有我们所设计的那么理想 (电容的容量,振晶的输出频率)所以会造成我们的时间准确。 针对这样的问题我们就能只能从上述两个方面入手去解决。软件方面我们可 以通过计算设计子程序去减少响应的时差。硬件部分我们可以采用一些稳定,精 确度比较高的电子元件去完善, 但是在最后调试出的还是有误差但我尽可能的减 少差误差接近理想。 总结: 同过这几天的实验设计 ,让自己对AT89S52 单片机有了更深的了 解,其具有计时开始、暂停及清零功能, 计时最大值为 59 分 59.99 秒, 计时精度为 0.01秒。 利用 Proteus和 Keil 软件进行了仿真, 达到了预期的效果。整体电路的计时精度高,电路结构简单, 抗 干扰能力强, 具有广泛的应用前景。 作为仅仅上了一个学期单片 机课后就看这些课程设计题目,感觉压力比较大, 毕竟自己还是 初学者,对各方面都不是了解的很透彻,因为都看上去都比较有 难度,熟悉了单片机的内容后觉得还是可以做的出来了,一开始 不知道从哪里开始下手, 于是问了一些人上网查了点资料,有些 是 c 编还有些是汇编, 于是参考了一下, 也和别人一起探讨了一 下,在不断地求知中前进,最终编成了一个完整的程序,是自己对 与多练有了跟进一步的认识,明白动手的重要性,努力走的更远 , 尽自己的力为社会做一点贡献,也为自己创造一个未来 ! 实用文档 文案大全 参考文献 1 李朝青 . 单片机原理及接口技术 M. 北京:北京航空航天大学出版社,1988. 1Li Zhaoqing. SCM Theory and Interface Technology M. Beijing: Beijing Aerospace University Press, 1988. 2 李勋等 . 单片机实用教程 M. 北京:北京航空航天大学出版社,2000 2 Li Xun and so on. microcontroller Practical Guide M. Beijing: Beijing Aerospace University Press, 2000 3 王幸之等 . 单片机应用系统抗干扰技术M. 北京:北京航空航天大学出版社, 1999 3 Wangxing the other. microcomputer application system interference technology M. Beijing: Beijing Aerospace University Press, 1999 4 何为民 . 低功耗单片微型计算机系统设计M. 北京:北京航空航天大学出版 社,1994 4 What the people. low-power single-chip micro-computer system design M. Beijing: Beijing Aerospace University Press, 1994 5 李杏春等 .8090 单片机原理及实用接口技术M. 北京:北京航空航天大学出 版社, 1996 5 Li Xingchun such .8090 SCM Theory and practical interface technology M. Beijing: Beijing Aerospace University Press, 1996 附 录 A 原理图 实用文档 文案大全 1 2 3 4 5 6 ABCD 6 5 4 3 2 1 D CB A T itl e N u m b e r R e v is io n S iz e B D a te : 1 0 -S e p -2 0 1 0 S h e e t o f F ile : I: 单 片 机 技 术 作 业 资 料 数 码 管 系 统 图 ( 最 后 修 订 ). d d b D ra w n B y : E A /V P 3 1 X 1 1 9 X 2 1 8 R E S E T 9 R D 1 7 W R 1 6 IN T 0 1 2 IN T 1 1 3 T 0 1 4 T 1 1 5 P 1 0 1 P 1 1 2 P 1 2 3 P 1 3 4 P 1 4 5 P 1 5 6 P 1 6 7 P 1 7 8 P 0 0 3 9 P 0 1 3 8 P 0 2 3 7 P 0 3 3 6 P 0 4 3 5 P 0 5 3 4 P 0 6 3 3 P 0 7 3 2 P 2 0 2 1 P 2 1 2 2 P 2 2 2 3 P 2 3 2 4 P 2 4 2 5 P 2 5 2 6 P 2 6 2 7 P 2 7 2 8 P S E N 2 9 A L E /P 3 0 T X D 1 1 R X D 1 0 U 1 A T 8 9 S 5 2 a 11 b 7 c 4 d 2 e 1 f 10 g 5 dp 3 d4 6 d3 8 d2 9 d1 12 L E D 1 L E D 1 a 11 b 7 c 4 d 2 e 1 f 10 g 5 dp 3 d4 6 d3 8 d2 9 d1 12 L E D 2 L E D 2 V D D R 2 0 4 7 0R 2 1 4 7 0R 2 2 4 7 0R 2 3 4 7 0R 2 4 4 7 0R 2 5 4 7 0R 2 6 4 7 0R 2 7 4 7 0 P 2 0 P 2 1 P 2 2 P 2 3 P 2 4 P 2 5 P 2 6 P 2 7 R 0 0 4 7 0R 0 1 2 KR 0 2 4 7 0R 0 3 4 7 0R 0 4 4 7 0R 0 5 4 7 0R 0 6 4 7 0R 0 7 4 7 0 1 A 2 K D 1 L E D D 2 L E D D 3 L E D D 4 L E D D 5 L E D D 6 L E D D 7 L E D 1 A 2 K D 8 L E D P 0 0 P 0 1 P 0 2 P 0 3 P 0 4 P 0 5 P 0 6 P 0 7 V C C P 0 0 P 0 1 P 0 2 P 0 3 P 0 4 P 0 5 P 0 6 P 0 7 P 2 0 P 2 1 P 2 2 P 2 3 P 2 4 P 2 5 P 2 6 P 2 7 S 1 S W R 1 2 0 0 R 2 1 K + C 3 2 2 u F V C C R E T R E T X 1 X 2 Y 1 1 2 M H Z C 1 3 3 p F C 2 3 3 p F X 1 X 2 123456789 J 5 1 0 K P 0 0 P 0 1 P 0 2 P 0 3 P 0 4 P 0 5 P 0 6 P 0 7 P 1 0 P 1 1 P 1 2 P 1 3 P 1 4 P 1 5 P 1 6 P 1 7 L S 1 B E L L R 1 21 K V C C P 3 1 P 3 0 P 3 1 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 1 0 1 0 IS P W E P 1 5 R E T P 1 7 P 1 6 V C C P 3 7 1 2 J 1 C O N 2 COMMON 1 NO 2 S S R 1 3 1 K P 3 2 P 3 3 P 3 4 P 3 5 P 3 6 A L E /P P S E N G N D D 9 L E D C 3 B 1 E 2 Q 1 P N P Q 2 P N P Q 3 P N P Q 4 P N P Q 5 P N P Q 6 P N P Q 7 P N P Q 8 P N P C 3 B 1 E 2 Q 9 P N P P 0 0 P 0 1 P 0 2 P 0 3 P 0 4 P 0 5 P 0 6 P 0 7 P 1 0 P 1 1 P 1 2 P 1 3 P 1 4 P 1 5 P 1 6 P 1 7 P 2 0 P 2 1 P 2 2 P 2 3 P 2 4 P 2 5 P 2 6 P 2 7 P 3 0 P 3 1 P 3 2 P 3 3 P 3 4 P 3 5 P 3 6 P 3 7 V C C 12345678 J P 1 C O N 8 12345678 J P 2 C O N 8 12345678 J P 3 C O N 8 12345678 J P 4 C O N 8 123 1 8 B 2 0 1 8 B 2 0 V C C R k 4 .7 K P 3 0 V C C R P 0 4 7 0 R P 1 4 7 0 R P 2 4 7 0 R P 3 4 7 0 R P 4 4 7 0 R P 5 4 7 0 R P 6 4 7 0 R P 7 4 7 0 P 3 0 12 J P 5 C O N 2 V C C V D D P 3 1 P 3 2 P 3 3 P 3 4 P 3 5 P 3 6 P 3 7 123456789 J 2 1 0 K V C C P 1 0 P 1 1 P 1 2 P 1 3 P 1 4 P 1 5 P 1 6 P 1 7 S 2 S W S 3 S W S 4 S W S 6 S W S 7 S W S 8 W S K S 9 S 5 S W 1 2 J 3 U S B 电 源 1 8 B 2 0 电 路 复 位 电 路 单 排 插 独 立 键 盘 电 路 流 水 灯 电 路 数 码 管 电 路 单 片 机 控 制 系 统 晶 振 电 路 下 载 口 蜂 鸣 电 路 12 J X 1 C O N 2 12 J X 2 C O N 2 B 2 0 B 2 0 B 2 1 B 2 1 短 路 帽 短 路 帽 V C C 实用文档 文案大全 附录B 程序清单 ;项目名称 : 秒表; ;设计者:高金科; ;设计日期: 2013年 12月; ;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,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) ;存储器内容的安排; ;堆栈栈底 7FHH ; ;20H作为按键标志( 20H.020H.7 分别对应的是按键 K1K8) ; ;专用寄存组 1, 用在显示子程序中 ;系统起始程序区 ORG 0000H START: LJMP MAIN ORG 000BH LJMP PDJW ;系统监控程序区 ORG 0030H MAIN: MOV PSW, #00H MOV SP, #7FH ;确立堆栈区 实用文档 文案大全 MOV R0, #20H ;RAM 区首地址 MOV R7, #96 ;RAM 区单元个数 MOV TMOD, #01H SETB EA SETB ET0 ML: MOV R0, #00H INC R0 DJNZ R7, ML TSF: MOV DPTR, #DISBH ;系统初始化后提示符 “P.”字符 代码表首地址 MOV R5, #08H MOV R0, #78H DISPTSF:CLR A MOVC A, A+DPTR MOV R0, A INC R0 INC DPTR DJNZ R5, DISPTSF KEY0: LCALL DISP LCALL KEY JB 20H.0, K1 JB 20H.1, K2 JB 20H.2, K3 LJMP KEY0 KEY00: LCALL KEY LCALL DISP JB 20H.2, K3 LJMP KEY00 K1: JB 22H.1, KEY0 ;如果此时为暂停状态,本次按键K1无效 CPL 22H.0 JB 22H.0, K01 ;高电平则计时 CLR TR0 ;低电平则停止 LCALL DISP LJMP KEY00 K01: 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 KEY0 K2: JB 22H.0, K21 ;判断秒表是否启动,如不是启动 状态则此次按键无效 LJMP KEY0 K21: CPL 22H.1 JB 22H.1, K22 SETB TR0 ;继续计时 LJMP KEY0 K22: CLR TR0 ;暂停秒表 LCALL DISP LJMP KEY0 K3: JB 22H.0, KEY0 ;只有当停止是,清零键才有效 MOV R0, #79H ;秒表清零 LCALL CLR00 MOV R0, #7CH LCALL CLR00 MOV R0, #7FH LCALL CLR00 LJMP KEY0 PDJW: PUSH PSW PUSH ACC MOV TMOD, #01H ;定时器以工作方式1 工作 SETB RS1 ;设定组号为 2 组 CLR RS0 MOV TH0, #0D8H MOV TL0, #0F0H MOV R0, #79H LCALL ADD01 CJNE R2, #99, RETT ;判断 1 秒到没 MOV R0, #7CH 实用文档 文案大全 LCALL ADD01 CJNE R2, #60, RETT ;判断 60 毫秒到没 LCALL CLR00 MOV R0, #7FH LCALL ADD01 CJNE R2, #60H, RETT ;判断 60 分到没 LCALL CLR00 RETT: POP ACC POP PSW RETI ;常数表格区 ;系统初始化后提示符“P.”字符代码表; DISBH: DB 10H,10H,10H,10H,10H,10H,10H,11H ;提示符“ P.”字符序号 ;显示字符段选码表 ( 共阳极代码 ) TAB: DB 0C0H, 0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H ;0-8 DB 90H, 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,0BFH ;9,A,B,C,D,E,F, 灭,p.,- 子程序区; ADD01: MOV A, R0 DEC R0 SWAP A ORL A, R0 ADD A, #01H DA A MOV R2, A ANL A, #0FH MOV R0, A MOV A, R2 ANL A, #0F0H SWAP A INC R0 MOV R0, A RET CLR00: MOV R0, #00H DEC R0 MOV R0, #00H RET ;键扫描子程序 KEY: LCALL KEYCHULI ;调 P1口数据处理子程序 实用文档 文案大全 JZ EXIT ;没有键按下,转返回 LCALL DISP ;调显示子程序去抖动 LCALL DISP LCALL KEYCHULI ;调 P1口数据处理子程序 JZ EXIT ;没有键按下,转返回 MOV B, 20H ;保存取反后的键值 KEYSF: LCALL KEYCHULI ;调 P1口数据处理子程序 JZ KEY1 ;键释放,转恢复键值 LCALL DISP LCALL DISP ;调显示子程序延时 LJMP KEYSF ;等待释放 KEY1: MOV 20H, B ;键值送 20H保存 EXIT: RET ;子程序返回 ;P1口数据处理子程序 KEYCHULI:PUSH PSW ;保护现场 CLR RS1 ;改变当前寄存器组为组1 SETB RS0 MOV P1, #0FFH ;先向 P1口写 1 MOV A, P1 ;读 P1口数据 CPL A ;P1口数据取反 MOV 20H, A ;保存取反后的键值 CLR RS1 ;恢复当前寄存器组为组0 CLR RS0 POP PSW ;恢复现场 RET ;子程序返回 ;显示子程序 ;入口 : 78H,79H,7AH,7BH,7CH,7DH,7EH,7FH, DISP: PUSH DPH PUSH DPL PUSH ACC PUSH PSW CLR RS1 ;改变当前寄存器组为组1 SETB RS0 MOV R1, #78H ;显示缓冲存储单元首地址 MOV R2, #0FEH ;从右至左显示 MOV R5, #08H ;循环次数,即驱动数码管的位数 DISP1: MOV A, R1 MOV DPTR, #TAB MOVC A, A+DPTR MOV P0, A ;送段控 MOV P2, R2 ;送位控 LCALL DL ;延时 1 毫秒 实用文档 文案大全 MOV A, R2 ;位控码送 A RL A ;获得新的位控码 MOV R2, A ;保存新的位控码 INC R1 ;获得新的显示缓冲单元地址 DJNZ R5, DISP1 ;循环没有结束则继续 DISP2: POP PSW ;恢复当前寄存器组的组号 POP ACC POP DPL POP DPH RET ;延时 1ms子程序 (晶振频率 12MHz)DL DL: MOV R7, #02H DL1: MOV R6, #0FFH DL2: DJNZ R6, DL2 DJNZ R7, DL1 RET END 附录 D 元器件清单 元器件名称型号数量 实用文档 文案大全 单片机AT89S52 1 片 芯片座40 脚1 个 四位一体数码管共阳极 / 共阴极2 个 晶振12M 1 个 瓷片电容33pf 2 蜂鸣器5V 1 个 电阻4.7K 1 个 电阻1K 3 个 电阻470 24 个 电阻200 1 个 电容22uf 1 个 三极管S8550 9 个 排阻10K 2 个 LED指示灯红9 个 单排插针8 脚4 排 下载口10 针1 个 温度传感器18B20 1 个 六脚开关1 个

    注意事项

    本文(51单片机数字秒表设计.pdf)为本站会员(tbuqq)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开