资源目录
压缩包内文档预览:(预览前20页/共49页)
编号:22018946
类型:共享资源
大小:356.81KB
格式:ZIP
上传时间:2019-09-16
上传人:QQ24****1780
认证信息
个人认证
王**(实名认证)
浙江
IP属地:浙江
50
积分
- 关 键 词:
-
篮球比赛
计时器
cad
- 资源描述:
-
M篮球比赛计时器带CAD图,篮球比赛,计时器,cad
- 内容简介:
-
哈尔滨工业大学本科毕业设计(论文)I摘要本文主要介绍:篮球比赛计时器。本文首先介绍单片机的相关知识,对单片机进行相应的研究,并将其与 74HC595 串行显示电路配合使用。本电路主要核心是 AT89S51,利用软件和硬件的结合实现开机自动置节计数器为第一节,节计时器为 12 分 00 秒,24 秒违例为 24 秒。用数字显示篮球比赛当时节数,每节时间及 24 秒的倒计时,采用单片机串行显示。最后,本文会详细叙述此电路的安装与调试,并对调试过程中出现的问题做简要说明。关键词 AT89S52 单片机;74HC595;XXX哈尔滨工业大学本科毕业设计(论文)IIAbstractAbstract this article mainly introduced: Basketball game timer. This article first introduced that monolithic integrated circuits related knowledge, conducts the corresponding research to the monolithic integrated circuit, and its and 74HC595 serial display circuit coordination use. This electric circuit main core is AT89S51, realizes using the software and hardwares union starting sets at the festival counter for first, the festival timer is 12 minute 00 second automatically, 24 second case of breaching the rules is 24 seconds. With the digital demonstration basketball game at that time the pitch number, each time and 24 second countdown, used the monolithic integrated circuit serial demonstration. Finally, this article will narrate this electric circuits installment and the debugging in detail, and to will debug the question which in the process will appear to give the briefing。key words 89S52 monolithic integrated circuit; 74HC595; XXX哈尔滨工业大学本科毕业设计(论文)III目 录摘要 .IABSTRACTABSTRACT .II第 1 章 绪论 .11.1 课题背景 .11.2 设计简介 .2第 2 章 系统电路的设计方案 .32.1 系统设计方案的提出 .32.2 方案的确定 .32.3 本章小结 .3第 3 章 电路设计原理及芯片介绍 .43.1 键盘控制及显示电路设计的原理及要求 .43.1.1 电路的设计原理与功能要求 .43.1.2 电路的总设计框图 .43.2 总电路选用芯片简介 .43.2.1 控制芯片 AT89S52 .43.3 LED 显示原理介绍 .113.4 键盘控制原理介绍.143.4.1 键盘的工作原理 .143.4.2 独立式键盘 .173.5 本章小结 .20第 4 章 键盘控制及显示硬件电路实现 .214.1 LED 显示电路设计 .214.2 独立按键键盘的电路设计.224.3 硬件的焊接.234.3.1 硬件的焊接 .234.3.2 电路板的检查和故障排除 .244.4 本章小结 .24第 5 章 键盘控制及显示电路软件设计 .26哈尔滨工业大学本科毕业设计(论文)IV5.1 软件设计的基本工具 .265.1.1 汇编语言的简介 .265.1.2 汇编语言的指令系统与程序 .265.1.3 keilC51 开发软件简介 .285.2 独立式键盘软件设计 .285.2.1 软件设计流程图 .295.3 键盘控制及显示电路设计软件实现总流程图 .295.3.1 总流程图 .295.4 本章小结 .30结 论 .31致 谢 .32参考文献 .33附录 1 外文资料 .34附录 2 电路原理图 .37附录 3 汇编源程序 .38附录 4 元件清单 .45哈尔滨工业大学本科毕业设计(论文)1第 1 章 绪论1.1 课题背景在电子技术飞速发展的今天,电子产品的人性化和智能化已经非常成熟,其发展前景仍然不可估量。如今的人们需求的是一种能给自己带来方便的电子产品,当然最好是人性化和智能化的,如何能做到智能化呢?单片机的引入就是一个很好的例子。单片机又称单片微型计算机,也称为微控制器,是微型计算机的一个重要分支,单片机是 20 世纪 70 年代中期发展起来的一种大规模集成电路芯片,是集 CPU,RAM,ROM,I/O 接口和中断系统于同一硅片上的器件。单片机的诞生标志着计算机正式形成了通过计算机系统和嵌入式计算机系统两个分支。目前单片机已渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。在我们身边,由单片机作为主控制器的全自动洗衣机、高档电风扇、电子厨具、变频空调、遥控彩电、录像机、VCD/DVD 机、组合音响、电子琴等。单片机已在广阔的计算机应用领域中表现得淋漓尽致,出尽了风头。从家用消费类电器到复印机、打印机、扫描仪、传真机等办公自动化产品;从智能仪表、工业测控装置到 CT、MRI、 刀等医疗设备;从数码相机、摄录一体机到航天技术、导航设备、现代军事装备;从形形色色的电子货币如电话卡、水电气卡到身份识别卡、门禁控制卡、档案管理卡及相关读/写卡机等等都有单片机在里面扮演重要角色。因此,单片机已成为电子类工作者必须掌握的专业技术之一。单片机就是一个微型中央处理器,通过编程即能完成很多智能化的工作 ,因此它的出现给电子技术智能化和微型化起到了很大的推动作用。随着人们生活水平的提高,社会经济的发展,人们开始考虑精神生活的享受,并开始注重身体素质的提高。开始举办一些小型的篮球比赛。这就需要裁判有一个公正的判罚,以保证比赛的顺利进行。这就需要有一个专门计时的工具。所以我就设计了一个篮球比赛计时器。设计简单,耗费少,容易制作。可用于街头篮球比赛和校园篮球比赛。花很少的钱就可以得到一个实用的篮球比赛计时器。本次设计注重对单片机工作原理以及键盘控制及显示原理的理解,以便今后自己在单片机领域的学习和开发打下基础,提高自己的动手能力和设计能力,培养创新能力,丰富自己的理论知识,做到理论和实践相结合。本次设计的重要意义还在于对单片机的内部结构和工作状态做更进一步的了解,同时还对单片机的接口技术,中断技术,存储方式和控制方式作更深层次的了解。此次设哈尔滨工业大学本科毕业设计(论文)2计更进一步了解基本电路的设计流程,提高自己的设计理念,丰富自己的理论知识,巩固所学知识,使自己的动手动脑能力有更进一步提高,为自己今后的学习和工作打好基础,为自己的专业技能打好基础。1.2 设计简介篮球比赛中除了有总时间倒计时外,为了加快比赛的节奏,新的规则还要求进攻方在 24 秒内有一次投篮动作,否则视为违例。根据要求,以 AT89S52单片机为核心,设计篮球比赛计时控制器。篮球比赛上下半场四节制,每节 12分钟,要求能随时暂停,启动后继续计时,一节比赛结束后可清零。按篮球比赛规则,进攻方有 24 秒为例计时。 “分” “秒”显示用 LED 数码管。用开关控制计时器的启动/暂停。该篮球比赛计时器的设计,可对比赛总时间和各方每次控球时间计时。该计时器采用按键操作、LED 显示,非常实用。此计时器在程序参数稍加修改后也可作为其他球类比赛的计时器。主控芯片为 AT89S52,采用 12MHz 晶振,P0.0-P0.7 作键盘输入。A1 为 12分钟暂停键;A2 为启动 12 分钟计时键,24 秒计时开始;A3 为 24S 复位开启键(投篮或交换控球时按下此键); A4 为 24 秒计时停止键(没有违例);A5为总计时和 24 秒计时同时启动键;A6 为总计时和 24S 计时同时停止键。 电路采用静态显示,一起点亮各位数码管,同时显示不同的字符。点亮各位数码管锁存输出。显示器的第一位显示计时节数,3 至 6 位显示计时的分,最后 2 位显示 24 秒。用 T0 定时器中断进行 24 秒处理,12 分钟计时用 T1 定时器中断计时。同时电路通过键盘扫描,根据键值转相应键处理。哈尔滨工业大学本科毕业设计(论文)3第 2 章 系统电路的设计方案2.1 系统设计方案的提出本设计是基于 89S52 单片机的键盘控制及显示电路设计,从系统的设计功能上看,系统可分为两大部分,即键盘输入控制部分和显示部分,对于每一个部分都有不同的设计方案,起初我拟订了下面两种方案:第一种方案:键盘控制采用矩阵扫描键盘,可以用普通按键构成 44 矩阵键盘,直接接到 89S52 单片机的 P0 口,高四位作为行,低四位作为列,通过软件完成键盘的扫描和定位。显示部分采用动态显示,采用移位寄存器 74LS164 和译码器74LS138 通过显示驱动程序驱动七段数码管显示。此方案成本低,所用到的两个外围芯片价格都很低廉,而且单片机的 I/O 口占用较少,可以节约单片机接口资源。第二种方案:键盘控制采用独立是式键盘,每个按键的“接零端”均接地,每个按键的“测试端”各接一条输入线,通过检测输入线的电平状态就可以很容易地判断哪个键被按下了,这种方法操作速度高而且软件结构很简单。这种方法比较适合按键较少或操作速度较高的场合。显示部分采用静态显示方法,所谓静态显示,就是每一个显示器都要占用单独的具有锁存功能的接口用于笔划段字形代码。这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种方法单片机中 CPU 的开销小。2.2 方案的确定本设计要求按键较多,且本次设计只是对所学知识的一次实践,设计要求简单,容易实现,成本低。比较以上两中设计方案,第二种成本低,占用单片机资源少,且容易实现,这样的设计比较适合本次设计,故选用第二种设计方案。2.3 本章小结本章主对所选方案进行比较,并最终确定选用那种方案。哈尔滨工业大学本科毕业设计(论文)4第 3 章 电路设计原理及芯片介绍3.1 键盘控制及显示电路设计的原理及要求3.1.1 电路的设计原理与功能要求本设计采用 AT89S52 单片机芯片作为中央处理芯片,采用 AT89S52 的 P0口构成独立 8 键键盘,采用 AT89S52 串行口静态显示,选用 74HC595 作为LED 驱动芯片。本电路设计有以下功能及要求:(1)篮球比赛计时器全场时间为 48 分钟,共四节,每节 12 分钟和 24 秒违例。要求开机自动置节计数器为第一节,节计时器为 12 分 00 秒,24 秒违例为 24 秒。(2)用数字显示篮球比赛当时节数,每节时间及 24 秒的倒计时,采用单片机串行显示。(3)能随时用按纽开关控制比赛的启动/暂停,启动后开始比赛,暂停期间不计时,重新启动后继续计时。3.1.2 电路的总设计框图电路的总设计框图根据设计任务与要求,可初步将系统分为五大功能模块:主电路、开关启/停控制电路、显示电路、音响电路和+5V 稳压电源。进一步细说,主电路选用89S52 作为中央处理器;开关启/停控制电路由八个按键组成;显示电路由八位七段数码管和 74HC595 组成;音响电路用 ULN2003 驱动蜂鸣器;+5V 稳压电路采用 7805 稳压块把电源电压稳定在+5V。原理框图如图 3-1 所示。图 3-1 篮球比赛计时器的原理框图3.2 总电路选用芯片简介3.2.1 控制芯片 AT89S52AT89S52 功能特性描述:AT89S52 是一种低功耗、高性能 CMOS8 位微控制器,具有 8K 在系统哈尔滨工业大学本科毕业设计(论文)5可编程 Flash 存储器。使用 Atmel 公司高密度非易失性存储器技术制造,与工业 80C51 产品指令和引脚完全兼容。片上 Flash 允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的 8 位 CPU 和在系统可编程Flash ,使得 AT89S52 为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52 具有以下标准功能:8k 字节 Flash,256 字节 RAM, 32 位 I/O 口线,看门狗定时器,2 个数据指针,三个 16 位定时器/计数器,一个6 向量 2 级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至 0Hz 静态逻辑操作,支持 2 种软件可选择节电模式。空闲模式下,CPU 停止工作,允许 RAM 、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM 内容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。AT89S52 引脚结构: 图 3-2 AT89S52 的 PDIP 封装 图 3-3 AT89S52 的 PLCC 封装主要特性:(1) 与 MCS-51 单片机产品兼容;(2) 8K 字节在系统可编程 Flash 存储器;(3) 1000 次擦写周期;(4) 全静态操作:0Hz33Hz ;(5) 三级加密程序存储器;哈尔滨工业大学本科毕业设计(论文)6(6) 32 个可编程 I/O 口线;(7) 三个 16 位定时器/计数器;(8) 八个中断源;(9) 全双工 UART 串行通道;(10)低功耗空闲和掉电模式;(11) 掉电后中断可唤醒;(12) 看门狗定时器;(13) 双数据指针;. (14)掉电标识符.管脚说明:VCC: 电源;GND: 接地;P0 口:P0 口是一个 8 位漏极开路的双向 I/O 口。作为输出口,每位能驱动 8 个 TTL 逻辑电平。对 P0 端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0 口也被作为低 8 位地址/数据复用。在这种下, P0 具有内部上拉电阻。在 flash 编程时,P0 口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1 口:P1 口是一个具有内部上拉电阻的 8 位双向 I/O 口,p1 输出缓冲器能驱动 4 个 TTL 逻辑电平。对 P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL) 。此外,P1.0 和 P1.2 分别作定时器/计数器 2 的外部计数输入(P1.0/T2)和时器/计数器 2 的触发输入(P1.1/T2EX) ,具体如下表所示。表 3-1 部分引脚第二功能在 flash 编程和校验时,P1 口接收低 8 位地址字节。哈尔滨工业大学本科毕业设计(论文)7P2 口:P2 口是一个具有内部上拉电阻的 8 位双向 I/O 口,P2 输出缓冲器能驱动 4 个 TTL 逻辑电平。对 P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL) 。在访问外部程序存储器或用 16 位地址读取外部数据存储器(例如执行 MOVX DPTR) 时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送 1。在使用 8 位地址(如 MOVX RI )访问外部数据存储器时,P2 口输出 P2 锁存器的内容。在 flash 编程和校验时,P2 口也接收高 8 位地址字节和一些控制信号。P3P3 口口:P3 口是一个具有内部上拉电阻的 8 位双向 I/O 口,p2 输出缓冲器能驱动 4 个 TTL 逻辑电平。对 P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL) 。P3 口亦作为 AT89S52 特殊功能(第二功能)使用,如下表所示。在 flash 编程和校验时,P3 口也接收一些控制信号。表 3-2 P3 口引脚第二功能RST: 复位输入。晶振工作时,RST 脚持续 2 个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出 96 个晶振周期的高电平。特殊寄存器 AUXR( 地址 8EH) 上的 DISRTO 位可以使此功能无效。DISRTO 默认状态下,复位高电平有效。ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低 8 位地址的输出脉冲。在 flash 编程时,此引脚(PROG )也用作编程输入哈尔滨工业大学本科毕业设计(论文)8脉冲。在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE 脉冲将会跳过。如果需要,通过将地址为 8EH 的 SFR 的第 0 位置“1”,ALE 操作将无效。这一位置“1”, ALE 仅在执行 MOVX 或 MOVC 指令时有效。否则,ALE 将被微弱拉高。这个 ALE 使能标志位(地址为 8EH 的SFR 的第 0 位)的设置对微控制器处于外部执行模式下无效。PSEN: 外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当 AT89S52 从外部程序存储器执行外部代码时,PSEN 在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN 将不被激活。EA/VPP: 访问外部程序存储器控制信号。为使能从 0000H 到 FFFFH 的外部程序存储器读取指令,EA 必须接 GND。为了执行内部程序指令,EA 应该接VCC。在 flash 编程期间,EA 也接收 12 伏 VPP 电压。XTAL1: 振荡器反相放大器和内部时钟发生电路的输入端。XTAL2: 振荡器反相放大器的输出端。振荡器特性:XTAL1 和 XTAL2 分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2 应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。芯片擦除:整个 PEROM 阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持 ALE 管脚处于低电平 10ms 来完成。在芯片擦操作中,代码阵列全被写1且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51 设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU 停止工作。但 RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存 RAM 的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。时钟电路:AT89S52 片内设有一个由反向放大器所构成的振荡电路,XTALl 和XTAL2 分别为振荡电路的输入端和输出端。时钟可以由内部方式产生或外部方式产生。如图 3.4 所示:哈尔滨工业大学本科毕业设计(论文)9a) 内时钟方式 b) 外时钟方式 3-4 时钟电路图内部方式时钟电路如图 3-4 a)所示。在 XTAL1 和 XTAL2 引脚上外接定时元件,内部振荡电路就产生自激振荡。定时元件通常采用石英晶体和电容组成的并联谐振回路。晶体可以在 1.2 MHZ 到 12MHZ 之间选择,电容值在 530 PF 之间选择,电容的大小可起频率微调作用。外部方式的时钟电路如图 3-4 b)所示,XTALl 接地;XTAL2 接外部振荡器。对外部振荡信号无特殊要求,只要保证脉冲宽度,一般采用频率低于 12MHZ 的方波信号。时钟发生器把振荡频率两分频,产生一个两相时钟信号从和地供单片机使用。P1 在每一个状态 S 的前半部分有效。P2 在每个状态的后半部分有效。复位和复位电路:AT89S52 单片机的复位电路如图 3.5 所示。在 RESET(图中表示为 RST)输入端出现高电平时实现复位和初始化。在振荡器运行的情况下,要实现复位操作,必须使 RST 引脚至少保持两个机器周期(24 个振荡器周期)高电平。CPU在第二个机器周期内执行内部复位操作、以后每一个机器周期重复一次,直至 RST 端电平变低。复位期间不产生 ALE 及 PSEN 信号。a)上电复位 b)开关复位 3-5 复位电路图 3.2.2 74HC59574HC595 是具有 8 位移位寄存器和一个存储器,三态输出功能。 移位寄哈尔滨工业大学本科毕业设计(论文)10存器和存储器是分别的时钟。数据在 SCHcp 的上升沿输入,在 STcp 的上升沿进入的存储寄存器中去。如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7),和一个异步的低电平复位,存储寄存器有一个并行 8 位的,具备三态的总线输出,当使能 OE 时(为低电平),存储寄存器的数据输出到总线。(1)引脚结构图图 3-6 74HC595 引脚图(2)引脚说明74595 的数据端:QA-QH: 八位并行输出端,可以直接控制数码管的 8 个段。QH: 级联输出端。我将它接下一个 595 的 SI 端。SI: 串行数据输入端。74595 的控制端说明:/SCLR(10 脚): 低点平时将移位寄存器的数据清零。通常我将它接 Vcc。SCK(11 脚):上升沿时数据寄存器的数据移位。QA-QB-QC-.-QH;下降沿移位寄存器数据不变。(脉冲宽度:5V 时,大于几十纳秒就行了。我通常都选微秒级)RCK(12 脚):上升沿时移位寄存器的数据进入数据存储寄存器,下降沿时存储寄存器数据不变。通常我将 RCK 置为低电平,当移位结束后,在 RCK 端产生一个正脉冲(5V 时,大于几十纳秒就行了。我通常都选微秒级),更新显示数据。哈尔滨工业大学本科毕业设计(论文)11/G(13 脚): 高电平时禁止输出(高阻态)。如果单片机的引脚不紧张,用一个引脚控制它,可以方便地产生闪烁和熄灭效果。比通过数据端移位控制要省时省力。注:74164 和 74595 功能相仿,都是 8 位串行输入转并行输出移位寄存器。74164 的驱动电流(25mA)比 74595(35mA)的要小,14 脚封装,体积也小一些。74595 的主要优点是具有数据存储寄存器,在移位的过程中,输出端的数据可以保持不变。这在串行速度慢的场合很有用处,数码管没有闪烁感。与 164 只有数据清零端相比,595 还多有输出端时能/禁止控制端,可以使输出为高阻态。3.3 LED 显示原理介绍本设计选用价格低廉的发光二极管 LED 显示器作为显示部分的显示器件,下面介绍 LED 显示器的工作原理。(1) LDE 发光二极管的发光原理发光二极管是由-族化合物,如 GaAs(砷化镓)、GaP(磷化镓)、GaAsP(磷砷化镓)等半导体制成的,其核心是 PN 结。因此它具有一般 P-N 结的 I-N 特性,即正向导通,反向截止、击穿特性。此外,在一定条件下,它还具有发光特性。在正向电压下,电子由 N 区注入 P 区,空穴由 P 区注入 N 区。进入对方区域的少数载流子(少子)一部分与多数载流子(多子)复合而发光,如图 3-7 所示。图 3.7 发光二极管发光原理假设发光是在 P 区中发生的,那么注入的电子与价带空穴直接复合而发光,或者先被发光中心捕获后,再与空穴复合发光。除了这种发光复合外,还有些电子被非发光中心(这个中心介于导带、介带中间附近)捕获,而后再与空穴复哈尔滨工业大学本科毕业设计(论文)12合,每次释放的能量不大,不能形成可见光。发光的复合量相对于非发光复合量的比例越大,光量子效率越高。由于复合是在少子扩散区内发光的,所以光仅在靠近 PN 结面数 m 以内产生。理论和实践证明,光的峰值波长 与发光区域的半导体材料禁带宽度 Eg 有关,即 1240/Eg(mm)式中 Eg 的单位为电子伏特(eV)。若能产生可见光(波长在 380nm 紫光780nm 红光),半导体材料的Eg 应在 3.261.63eV 之间。比红光波长长的光为红外光。现在已有红外、红、黄、绿及蓝光二极管,但其中蓝光二极管成本、价格很高,使用不普遍。(2) LED 数码显示器的结构LED 是用发光二极管显示字段的显示器件,也可称为数码管,其外形如下图 3.6 所示。 图 3.8 数码管结构图它由 8 个发光二极管构成,通过不同的组合可用来显示数字 0 9、字符 A F、H、L、P、R、U、Y、符号“”及小数点“.”。数码管的外形结构如图 3.9所示。数码管又分为共阴极和共阳极两种结构。由图 3.9 可见,它有 8 个发光二极管阳极连在一起作为公共端;而共阴极是将 8 个发光二极管阴极连在一起作为公共端。本设计采用的是共阳极的。数码管的公共端相当于一个总开关,一般称为码位开关,当它低电平的时候数码管全灭;当它为高电平时,根据发光二极管阳极的状态(一般成为段码或字型码),低电平该段亮,高电平不亮。输出一个段码就可以控制 LED 显示器的字型。表 3.5 给出了段码与字型的关系,假定 a,b,c,d,e,f,dp 分别对应 D0,D1,D2,D3,D4,D5,D6,D7。(3) LED 数码显示器的接口方法LED 显示器的接口常分为动态扫描方式和静态显示方式。表 3.5 段码与字形码的关系哈尔滨工业大学本科毕业设计(论文)13字形D7dpD6gD5fD4eD3dD2cD1bD0a段码01100000003H1111110019FH21010010045H3101100000DH41001100199H51001001029H61000001021H7111110001FH81000000001H91001000009HA1000100011HB1000001041HC1100011063HD1010000185HE1000011061HF1000111071H静态显示是指数码管显示某一字符时,相应的发光二极管恒定导通或恒定截止。这种显示方式的各位数码管相互独立,公共端恒定接地(共阴极)或接正电源(共阳极)。每个数码管的 8 个字段分别与一个 8 位 I/O 口地址相连,I/O口只要有段码输出,相应字符即显示出来,并保持不变,直到 I/O 口输出新的段码。采用静态显示方式,较小的电流即可获得较高的亮度,且占用 CPU 时间少,编程简单,显示便于监测和控制,但其占用的口线多,硬件电路复杂,成本高,只适合于显示位数较少的场合。动态扫描显示方式:其工作原理是将多个显示器的段码同名端连在一起,位码分别控制,利用眼睛的余辉暂留效应,哈尔滨工业大学本科毕业设计(论文)14分别进行显示。只要保证一定的显示频率,看起来的效果和一直显示是一样的,但在电路上却简化了很多,降低了成本。比如要做四位 LED 显示,静态显示方式则需要 4 块 74LS164 作为静态显示接口,如用动态扫描显示则只需一块即可。通常也用 8155 芯片作为动态扫描显示接口的扩展,扩展电路在此就不做叙述了,本设计采用的是串行口动态扫描方式。动态显示是一位一位地轮流点亮各位数码管,这种逐位点亮显示器的方式称为位扫描。通常,各位数码管的段选线相应并联在一起,由一个 8 位的 I/O 口控制;各位的位选线(公共阴极或阳极)由另外的 I/O 口线控制。动态方式显示时,各数码管分时轮流选通,要使其稳定显示,必须采用扫描方式,即在某一时刻只选通一位数码管,并送出相应的段码,在另一时刻选通另一位数码管,并送出相应的段码。依此规律循环,即可使各位数码管显示将要显示的字符。虽然这些字符是在不同的时刻分别显示,但由于人眼存在视觉暂留效应,只要每位显示间隔足够短就可以给人以同时显示的感觉。3.4 键盘控制原理介绍 3.4.1 键盘的工作原理(1) 键盘的分类按键按结构原理可分为两类,一类是触点式开关按键,如机械式开关、导电橡胶式开关等;另一类是无触点式开关按键,如电气式按键,磁感应按键等。前者造价低,后者寿命长。目前,微机系统中最常见的是触点式开关按键。 按键按照接口原理可分为编码键盘与非编码键盘两类,这两类键盘的主要区别是识别键符及给出相应键码的方法。编码键盘主要是用硬件来实现对键的识别,非编码键盘主要是由软件来实现键盘的定义与识别。全编码键盘能够由硬件逻辑自动提供与键对应的编码,此外,一般还具有去抖动和多键、窜键保护电路。这种键盘使用方便,但需要较多的硬件,价格较贵,一般的单片机应用系统较少采用。非编码键盘只简单地提供行和列的矩阵,其它工作均由软件完成。由于其经济实用,较多地应用于单片机系统中。本设计采用非编码键盘接口。(2) 按键输入原理在单片机应用系统中,除了复位按键有专门的复位电路及专一的复位功能外,其它按键都是以开关状态来设置控制功能或输入数据的。当所设置的功能键或数字键按下时,计算机应用系统应完成该按键所设定的功能,键信息输入是与软件结构密切相关的过程。对于一组键或一个键盘,总有一个接口电路与CPU 相连。CPU 可以采用查询或中断方式了解有无将键输入,并检查是哪一哈尔滨工业大学本科毕业设计(论文)15个键按下,将该键号送入累加器 ACC,然后通过跳转指令转入执行该键的功能程序,执行完后再返回主程序。(3)按键结构与特点 机键盘通常使用机械触点式按键开关,其主要功能是把机械上的通断转换成为电气上的逻辑关系。也就是说,它能提供标准的 TTL 逻辑电平,以便与通用数字系统的逻辑电平相容。机械式按键再按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。其抖动过程如图 3.10 抖动时间的长短与开关的机械特性有关,一般为 510 ms。在触点抖动期间检测按键的通与断状态,可能导致判断出错,即按键一次按下或释放被错误地认为是多次操作,这种情况是不允许出现的。为了克服按键触点机械抖动所致的检测误判,必须采取去抖动措施。这一点可从硬件、软件两方面予以考虑。在键数较少时,可采用硬件去抖,而当键数较多时,采用软件去抖。在硬件上可采用在键输出端加 R-S 触发器(双稳态触发器)或单稳态触发器构成去抖动电路。图 3.11 是一种由 R-S 触发器构成的去抖动电路,当触发器一旦翻转,触点抖动不会对其产生任何影响。图 3-9 键触点的机械抖动哈尔滨工业大学本科毕业设计(论文)16图 3-10 双稳态去抖电路电路工作过程如下:按键未按下时,a = 0,b = 1,输出 Q = 1。按键按下时,因按键的机械弹性作用的影响,使按键产生抖动。当开关没有稳定到达 b端时,因与非门 2 输出为 0 反馈到与非门 1 的输入端,封锁了与非门 1,双稳态电路的状态不会改变,输出保持为 1,输出 Q 不会产生抖动的波形。当开关稳定到达 b 端时,因 a = 1,b = 0,使 Q = 0,双稳态电路状态发生翻转。当释放按键时,在开关未稳定到达 a 端时,因 Q = 0,封锁了与非门 2,双稳态电路的状态不变,输出 Q 保持不变,消除了后沿的抖动波形。当开关稳定到达 a 端时,因 a = 0,b = 0,使 Q = 1,双稳态电路状态发生翻转,输出 Q 重新返回原状态。由此可见,键盘输出经双稳态电路之后,输出已变为规范的矩形方波。 软件上采取的措施是:在检测到有按键按下时,执行一个 10 ms 左右(具体时间应视所使用的按键进行调整)的延时程序后,再确认该键电平是否仍保持闭合状态电平,若仍保持闭合状态电平,则确认该键处于闭合状态。同理,在检测到该键释放后,也应采用相同的步骤进行确认,从而可消除抖动的影响。(4) 按键编码一组按键或键盘都要通过 I/O 口线查询按键的开关状态。根据键盘结构的不同,采用不同的编码。无论有无编码,以及采用什么编码,最后都要转换成为与累加器中数值相对应的键值,以实现按键功能程序的跳转。(5) 编制键盘程序 一个完善的键盘控制程序应具备以下功能:检测有无按键按下,并采取硬件或软件措施,消除键盘按键机械触点抖动的影响。哈尔滨工业大学本科毕业设计(论文)17有可靠的逻辑处理办法。每次只处理一个按键,其间对任何按键的操作对系统不产生影响,且无论一次按键时间有多长,系统仅执行一次按键功能程序。准确输出按键值(或键号),以满足跳转指令要求。3.4.2 独立式键盘独立式按键是直接用 I/O 口线构成的单个按键电路,其特点是每个按键单独占用一根 I/O 口线,每个按键的工作不会影响其它 I/O 口线的状态。独立式按键的典型应用如图 3.11 所示。独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根 I/O 口线,因此,在按键较多时,I/O 口线浪费较大,不宜采用。图 3-11 独立式按键电路独立式按键的软件常采用查询式结构。先逐位查询每根 I/O 口线的输入状态,如某一根 I/O 口线输入为低电平,则可确认该 I/O 口线所对应的按键已按下,然后,再转向该键的功能处理程序。此程序比较简单,在此不做编写,本设计采用的是矩阵扫描键盘。3.4.3 矩阵式键盘矩阵式键盘单片机系统中,若使用按键较多时,通常采用矩阵式(也称行列式)键盘。本设计采用的就是矩阵式键盘。(1) 矩阵式键盘的结构及原理矩阵式键盘由行线和列线组成,按键位于行、列线的交叉点上,其结构如图 3.13 所示。由图可知,一个 44 的行、列结构可以构成一个含有 16 个按键的键盘,显然,在按键数量较多时,矩阵式键盘较之独立式按键键盘要节省很多 I/O 口。矩阵式键盘中,行、列线分别连接到按键开关的两端,行线通过上拉电阻接到5V 上。当无键按下时,行线处于高电平状态;当有键按下时,行、列线哈尔滨工业大学本科毕业设计(论文)18将导通,此时,行线电平将由与此行线相连的列线电平决定。这是识别按键是否按下的关键。然而,矩阵键盘中的行线、列线和多个键相连,各按键按下与否均影响该键所在行线和列线的电平,各按键间将相互影响,因此,必须将行线、列线信号配合起来作适当处理,才能确定闭合键的位置。(2) 矩阵式键盘按键识别按键的方法很多,扫描法识别按键的过程. 图 3-12 矩阵键盘按键按下时,与此键相连的行线与列线导通,行线在无键按下时处在高电平显然,如果让所有的列线也处在高电平,那么,按键按下与否不会引起行电平的变化,因此,必须使所有列线处在低电平。只有这样,当有键按下时,该键所在的行电平才会由高电平变为键盘的编码.(3)对于独立式按键键盘,因按键数量少,可根据实际需要灵活编码。对于矩阵式键盘,按键的位置由行号和列号惟一确定,因此可分别对行号和列号进行二进制编码,然后将两值合成一个字节,高 4 位是行号,低 4 位是列号。如图 3.12 中的 8 号键,它位于第 2 行,第 0 列,因此,其键盘编码应为 20H。采用上述编码对于不同行的键离散性较大,不利于散转指令对按键进行处理。因此,可采用依次排列键号的方式对按排进行编码。以图 3.12 中的 44 键盘为例,可将键号编码为:01H、02H、03H、0EH、0FH、10H 等 16 个键号。编码相互转换可通过计算或查表的方法实现。 (4)键盘的工作方式对键盘的响应取决于键盘的工作方式,键盘的工作方式应根据实际应用系统中 CPU 的工作状况而定,其选取的原则是既要保证 CPU 能及时响应按键操作,又不要过多占用 CPU 的工作时间。通常,键盘的工作方式有三种,即编程扫描、定时扫描和中断扫描。(5)编程扫描方式编程扫描方式是利用 CPU 完成其它工作的空余时间,调用键盘扫描子程序来响应键盘输入的要求。在低电平。CPU 根据行电平的变化,便能判定相应哈尔滨工业大学本科毕业设计(论文)19的行有键按下。8 号键按下时,第 2 行一定为低电平。然而,第 2 行为低电平时,能否肯定是 8 号键按下呢?回答是否定的,因为 9、10、11 号键按下,同样会使第 2 行为低电平。为进一步确定具体键,不能使所有列线在同一时刻都处在低电平,可在某一时刻只让一条列线处于低电平,其余列线均处于高电平,另一时刻,让下一列处在低电平,依此循环,这种依次轮流每次选通一列的工作方式称为键盘扫描。采用键盘扫描后,再来观察 8 号键按下时的工作过程,当第 0 列处于低电平时,第 2 行处于低电平,而第 1、2、3 列处于低电平时,第 2 行却处在高电平,由此可判定按下的键应是第 2 行与第 0 列的交叉点,即8 号 执行键功能程序时,CPU 不再响应键输入要求,直到 CPU 重新扫描键盘为止。键盘扫描程序一般应包括以下内容:判别有无键按下;键盘扫描取得闭合键的行、列值;用计算法或查表法得到键值;判断闭合键是否释放,如没释放则继续等待;将闭合键键号保存,同时转去执行该闭合键的功能。(6)定时扫描方式定时扫描方式就是每隔一段时间对键盘扫描一次,它利用单片机内部的定时器产生一定时间(例如 10 ms)的定时,当定时时间到就产生定时器溢出中断。CPU 响应中断后对键盘进行扫描,并在有键按下时识别出该键,再执行该键的功能程序。定时扫描方式的硬件电路与编程扫描方式相同。(7)中断扫描方式种键盘扫描方式时,无论是否按键,CPU 都要定时扫描键盘,而单片机应用系统工作时,并非经常需要键盘输入,因此,CPU 经常处于空扫描状态。为提高 CPU 工作效率,可采用中断扫描工作方式。其工作过程如下:当无键按下时,CPU 处理自己的工作,当有键按下时,产生中断请求,CPU 转去执行键盘扫描子程序,并识别键。哈尔滨工业大学本科毕业设计(论文)20图 3-13 中断扫描键盘电路图 3-13 是一种简易键盘接口电路,该键盘是由 8031 P1 口的高、低字节构成的 44 键盘。键盘的列线与 P1 口的高 4 位相连,键盘的行线与 P1 口的低 4位相连,因此,P1.4P1.7 是键输出线,P1.0P1.3 是扫描输入线。图中的 4 输入与门用于产生按键中断,其输入端与各列线相连,再通过上拉电阻接至+5 V 电源,输出端接至 8031 的外部中断输入端。具体工作如下:当键盘无键按下时,与门各输入端均为高电平,保持输出端为高电平;当有键按下时,端为低电平,向 CPU 申请中断,若 CPU 开放外部中断,则会响应中断请求,转去执行键盘扫描子程序。3.5 本章小结 本章对硬件电路的设计和电路所用到的芯片进行了介绍。主要是键盘控制电路与显示电路的原理和功能,并对 LED 显示原理进行了介绍。下面将根据以上说介绍的原理设计键盘控制及显示硬件电路。哈尔滨工业大学本科毕业设计(论文)21第第 4 章章 键盘控制及显示硬件电路实现键盘控制及显示硬件电路实现本章将根据上面所介绍的原理及芯片功能设计键盘控制及显示的硬件实现电路,键盘控制及显示电路的设计流程是:键盘按键按下,输入该键盘键值,经 CPU 处理后输出,由 LED 显示器显示所按的键值。其工作原理:当有键按下时,CPU 将对整个键盘进行扫描,确定按键位置,读取键值;CPU 再将所读取的键值送到显示部分,最后通过 LED 显示器显示键值。其总体框图如图,总电路原理图见(附录 2)。图 4-1 电路总设计框图4.1 LED 显示电路设计单片机并行 I/O 口数量总是有限的,有时并行口需作其他更重要的用途,一般也不会用数量众多的并行 I/O 口专门用来驱动显示电路,因此本设计采用了 AT89S52 的串行通信口静态显示。AT89S52 的串行通信口是一个功能强大的通信口,而且是相当好用的通信口,用于显示驱动电路再合适不过了,下面我们就根据这种需要设计一个用两个串行通信口线设计一个 8 位 LED 显示电路。下图即是电路原理图,我采用AT89S52 单片机,同时用廉价易得的 74HC595 作为驱动芯片。74HC595 是一个8 位串入并出的移位寄存器,其此处的功能是将 AT89S52 串行通信口输出的串行数据译码并在其并口线上输出,从而驱动 LED 数码管。使用串行口进行 LED通信,程序编写相当简单,只需将需显示的数据直接送串口发送缓冲器,等待串行中断即可,程序见附录,电路原理如图 4-2。哈尔滨工业大学本科毕业设计(论文)22图 4-2 串行显示电路采用静态显示技术,画面稳定,无杂点,图像效果清晰;视频效果流畅。 LED 显示器是由发光二极管排列组成的一显示器件,它采用低电压扫描驱动,同时还具有如下优点:耗电省,使用寿命长,成本低,亮度高,视角大,规格品种多等,因此本设计采用 LED 数码显示器作为显示部分的重要元件。4.2 独立按键键盘的电路设计本设计采用的是 8 键独立式键盘,扫描方法采用编程扫描方式,其键盘部分电路图如下:图 4-3 独立按键电路图本设计采用的是一种行扫描法,行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,如上图所示键盘,其扫描过程如下:(1) 判断键盘中有无键按下:将全部行线 Y0-Y3 置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位哈尔滨工业大学本科毕业设计(论文)23于低电平线与 4 根行线相交叉的 4 个按键之中。若所有列线均为高电平,则键盘中无键按下。(2) 判断闭合键所在的位置:在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。比如,如图 4.3,89C51 的 P1 口用作键盘 I/O 口,键盘的列线接到 P1 口的低 4 位,键盘的行线接到 P1 口的高 4 位。行线 P1.4-P1.7 分别接有 4 个上拉电阻到正电源+5V,并把列线 P1.0-P1.3 设置为输入线,行线 P1.4-P.17 设置为输出线。4 根行线和 4 根列线形成 16 个相交点。检测当前是否有键被按下。检测的方法是 P1.4-P1.7 输出全“1”,读取P1.0-P1.3 的状态,若 P1.0-P1.3 为全“0”,则无键闭合,否则有键闭合;去除键抖动。当检测到有键按下后,延时一段时间再做下一步的检测判断;若有键被按下,应识别出是哪一个键闭合。方法是对键盘的行线进行扫描P1.4-P1.7 按下述 4 种组合依次输出:P1.7 1 1 1 0P1.6 1 1 0 1P1.5 1 0 1 1P1.4 0 1 1 1在每组行输出时读取 P1.0-P1.3,若全为“1”,则表示为“0”这一行没有键闭合,否则有键闭合。由此得到闭合键的行值和列值,然后可采用计算法或查表法将闭合键的行值和列值转换成所定义的键值。为了保证键每闭合一次 CPU 仅作一次处理,必须却除键释放时的抖动。4.3 硬件的焊接4.3.1 硬件的焊接硬件的焊接是本次设计的重要环节,所用的工具为:30W 电烙铁,焊锡和镊子。因为本次设计电路组成相对简单,因此采用实验板焊接电路。实验板上没有连通的导线,所有元器件都要用导线连接,这就要求一定的焊接技能,不过此技能在以前的电装实习中已经学过并熟练掌握。焊接前先要将所需材料准备好,把电路所需元器件按合理的布局在实验板上排好,这样焊接线路比较明朗,不容易出错,检查时也比较容易。(1) 低座的焊接哈尔滨工业大学本科毕业设计(论文)24本次设计一共有九个底座,即 1 个 AT89S52,8 个 74HC595。焊接时,先将低座按照原先排好的布局插到电路板上,因为每个管脚几间隙都很小,因此在焊接是都要很仔细,焊锡不要太多,焊点不要太大,这样可以防止管脚之间的短路,同时在焊接时不能形成虚焊,虚焊会导致电路的断路,底座焊接要稳,松动也会容易导致虚焊。(2) 键盘的焊接本次设计键盘由 8 个普通开关按键按 1 行的形式组成。我所选用的普通开关按键有四个脚,其中有两个脚是导通的,如果在焊接时不小心将导通的两端作为按键则按键将不起作用,因此在焊接前应使用万用表检查哪两个脚为导通端,这样会避免按键无作用情况的发生。(3) 导线的焊接电路中导线是用来连接元器件的,它相当于整个电路的血管。导线是整个电路焊接最麻烦的,导线的焊接不仅需要细心还要有耐心,每一根线的长短,怎么布局都要自己由根据整个电路的布局来确定,少一根都不行。因此我在焊接时是先将要连的线在实验板上用铅笔标画好,然后焊接,这样焊出来的不仅美观而且不容易出错。4.3.2 电路板的检查和故障排除(1) 电路板的检查当整个电路板所有元器件及导线都焊接完成后,则开始用万用表检查电路的导通情况。先检查低座,将万用表调到电阻最低挡,再将两个表笔分别接到每个管脚的两端,若有万用表有报警声这说明导通,若没反应即为不导通。再检查导线的导通情况,办法和检查低座一样。(2) 电路故障的排除当在检查低座的时候发现 AT89S52 低座的 21 脚没有导通,经检查发现 21脚松动,形成虚焊,经重新焊接再用万用表检查,21 脚导通,故障排除 .在检查导线时发现 AT89S52 低座的 40 叫与地线和火线同时导通,经对整个线路盘查发现火线与地线相连通了,经处理后再次用万用表检查,电路完好,故障排除.高低单色光地方官地方官地方官地方官地方官地方官地方官对法国队似懂非懂所冻豆腐大随风倒反对。4.4 本章小结本章主要叙述了 键盘控制电路和显示电路是怎样实现的。LED显示电路的设计,独立按键的电路设计以及硬件的焊接,电路板的检查和故障的排除。,哈尔滨工业大学本科毕业设计(论文)25哈尔滨工业大学本科毕业设计(论文)26第 5 章 键盘控制及显示电路软件设计 软件部分设计是本次设计的另一个重要组成部分,它的设计成败将直接影响到整个设计的功能能否正常实现。本次软件设计采用汇编语言编程,用keil51 软件对所编程序进行编译。5.1 软件设计的基本工具5.1.1 汇编语言的简介汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU,其汇编语言可能有所差异,因此汇编语言是不易移植的。 C 语言也是一种结构化的高级语言。其优点是可读性好,移植容易,是普遍使用的一种计算机语言。缺点是占用资源较多,执行效率没有汇编高。对于目前普遍使用的RISC 架构的 8bit MCU 来说,其内部 ROM、RAM、STACK 等资源都有限,如果使用 C 语言编写,一条 C 语言指令编译后,会变成很多条机器码,很容易出现ROM 空间不够、堆栈溢出等问题。而且一些单片机厂家也不一定能提供 C 编译器。而汇编语言,一条指令就对应一个机器码,每一步执行什么动作都很清楚,并且程序大小和堆栈调用情况都容易控制,调试起来也比较方便。所以在单片机开发中,通常是建议采用汇编语言。5.1.2 汇编语言的指令系统与程序前面已经讲述了本设计的几个主要组成部分,这些部分只构成了系统的硬件。所谓硬件(Hardware),就是看得到,摸得到的实体。但是,光有这样的硬件,还只是有了实现和控制功能的可能性。整个电路系统要真正地能进行工作,还必须有软件(Software)的配合。软件主要指的是单片机实现各种功能的各种程序。程序是由指令组成的,指令的基本组成是操作码和操作数。单片机的品种很多,设计时怎样表示操作码和操作数,都有各自的规定,再有指令代码也各不相同,因此,必须对所选单片机的全部指令,也就是所谓”指令系统”,有足够的了解。各个系列的单片机虽然有不同的指令系统,但也有其共同性。掌握一种单片机的指令系统,对其它系列单片机可以起到触类旁通的作用。MCS51 单片机应用广泛,派生品种多,具有代表性,所以,这里以 MCS51系列的指令系统为例说明”指令”的组成和应用。例:MOV A,20H,这条指令表示把 20H 这个数送入累加器 A 中(一个特殊功能寄存器)。再如:ADD A,70H,这条指令表示把累加器 A 中的内容(在上例中送入的20H)和存贮器中地址为 70H 单元中的内容(也是一个数字),通过算术逻辑单元(英文缩写为 ALU)相加,并将结果保留在 A 中。这里 MOV、ADD 等称为操作码,而A、20H、70H 等均称为操作数。在汇编语言程序中,操作码通常由英文单词哈尔滨工业大学本科毕业设计(论文)27缩写而成,这样有助于记忆,所以又称助记符。如 MOV 就是英文单词 MOVE 的缩写,含有搬移的意思;而 ADD 即为英文单词,其意为相加。因此,对于略懂英语的用户,掌握单片机指令的含意是较为方便的。操作数有多种表示法,如以上的20H 称为立即数,即 20H 就是真正的操作数。而 70H 是存贮器中某个单元的地址,在该单元中,放着操作数(比如说是 3AH),ADD A,70H 不是将70H 和 A 中的内容相加,而是从存贮器 70H 单元中将 3AH 取出和 A 中的内容相加。由上可知,要找到实际操作数,有时就要转个弯,甚至转几个弯,这个过程称为寻址,MCS51 共有 7 种寻址方式,现介绍如下: (1) 立即寻址:操作数就写在指令中,和操作码一起放在程序存贮器中。把“”号放在立即数前面,以表示该寻址方式为立即寻址,如20H。 (2) 寄存器寻址:操作数放在寄存器中,在指令中直接以寄存器的名字来表示操作数的地址。例如 MOV A,R0 就属于寄存器寻址,即将 R0 寄存器的内容送到累加器 A 中。 (3) 直接寻址:操作数放在单片机的内部 RAM 某单元中,在指令中直接写出该单元的地址。如前例的 ADD A,70H 中的 70H。 (4)寄存器间接寻址:操作数放在 RAM 某个单元中,该单元的地址又放在寄存器 R0 或 R1 中。 如果 RAM 的地址大于 256,则该地址存放在 16 位寄存器DPTR(数据指针)中,此时在寄存器名前加符号来表示这种间接寻址。如MOV A, R0。其它还有变址寻址、相对寻址、位寻址等,在此不作介绍。可能有人会问,在指令中直接给出实际操作数,不是简单、明了吗?为什么还要用其它几种寻址方式呢?这是因为在编制程序时很难一下子就给出操作数。如用单片机控制温度时,时时需要将给定的控制温度(如 20)减去环境温度,而环境温度时时有变化,显然无法在程序指令中给出,只有通过一定方式,将其送入某个输入/输出口,再存放在某个寄存器中,这就必须用到寄存器寻址。又如要进行算术运算,要计算每班学员各科成绩的平均值,如果把每个学员的各科都编一个程序,在程序中直接给出该学员各科成绩,再求平均值,显然太麻烦。这里可以编一个求平均成绩的通用程序,把每位学员的成绩送入存贮器的各个单元中,这时可采取直接寻址,一个程序可供每个学员用,不是更方便吗?所以,寻址方式越多,编制程序就越方便、灵活,适用范围就越广。 5.1.3 keilC51 开发软件简介KeilC51 是 keil 公司开发的一种 51 单片机开发软件,公司多年来致力于微控制器领域开发工具的研究工作。它的产品集中在嵌入式系统 C 编译器上,覆盖的单片机类型很广,从编译器、调试器、实时操作系统到集成开发环境,哈尔滨工业大学本科毕业设计(论文)28全面支持 8051、251、166 等目前微控制器领域的主流产品及其众多的派生系列。(1) keilC51 有以下特点:支持九种基本数据类型,其中包括 32 位长的浮点类型;变量可存放在不同类型的存储空间中:bit, data, bdata, idata 和pdata; 支持用 C 语言编写的中断函数;充分利用 51 单片机寄存器;保留源程序中的所有符号、类型信息,方便调试; 能够使用 AJMP/ACALL 指令;支持位寻址对象; 支持 80C32, 520, 530 等微控制器的双数据指针 ;支持飞利浦 8XC750, 751, 752 的指令集; 持亿恒科技(西门子)80C517 中的算术运算单元和多重数据指针。(2) keilC51 的使用: 在菜单“工程 目标 1 属性”中选中输出标签,在“生成 HEX 文件”上打勾。然后再选中调试标签,在“使用 keil monitor-51 driver”上打勾,并在“加载代码到仿真器上”打勾,在“运行到 main()”上打勾,在“断点”上打勾。并且选中“设置”接钮,选 38400 波特率 。选中菜单“工程 重新构造所有目标” ,当编译出现 0 个错误 0 个警告时,就表示编译成功并产生了可以烧录的 HEX 文件.。选中菜单“调试 开始/停止调试” ,加载成功后,点击“调试 运行” ,即可看到程序运行结果。如果加载不成功,可尝试按一下仿真器上的复位按键或掉电重新上电后再次加载。要点击“工程 新建工程” ,新建一个工程文件。选择芯片类型,一般是选用“Atemel89C51” 。在目标 1 的源程序组 1 上点击鼠标右键,加入已编辑好的源程序文停止全速运行可以按一下仿真器上的复位按键或掉电重新上电即可。 5.2 独立式键盘软件设计5.2.1 软件设计流程图独立式键盘工作原理在前面已作讲述,在此不再叙述。5.3 键盘控制及显示电路设计软件实现总流程图哈尔滨工业大学本科毕业设计(论文)29图 5.1 按键设计流程图5.3.1 总流程图总流程图图 5-2 总流程图5.3.2 总程序清单(见附录 3)5.4 本章小结哈尔滨工业大学本科毕业设计(论文)30本章主要介绍键盘控制及显示电路的软件设计,对软件设计的基本工具汇编语言进行了介绍,以及程序的流程图。哈尔滨工业大学本科毕业设计(论文)31结 论本次所做的毕业设计是基于单片机的键盘控制及显示的电路设计,刚拿到题目的时候觉得也没什么,就是一个键盘,一个 LED 显示,再加上一个单片机,其它也就没什么了,在通过一段时间的查阅资料后才发现一切并不像想象中的那么简单,而且还有一种不知道从何下手的感觉,不过后来在指导老师的精心指导下才开始有了思路,然后查阅资料,制订计划,一步一步完成了此次设计任务。在做本次设计过程中,可以说是历经坎坷,在设计刚开始没多久,大约没到一个月我就到就业单位实习了,到了单位就没那么多时间来做设计,每周只能靠上网或打电话与指导老师和同学了解设计的进度情况,在这期间得到了老师和同学的热情帮助,因此设计进展也算比较顺利。我是在毕业答辩前两周回到学校继续做设计,这段时间主要是对硬件电路的制作和软件的调试,同时还有毕业论文的完成,在此期间也得到了指导老师和同学的热情帮助,从而设计进展很顺利。在本次设计过程中,自己通过对所学知识的复习,通过图书馆,网络的资料查阅,使得自己的理论知识丰富了许多。以前在学习单片机的时候都是一些书上的理论知识,也是一些比较肤浅的东西,在课堂上并没有深入的学习,更没有用到实际中去,但是在这次设计中对单片机作了更深一步的学习,最重要的是把所学到的东西用到实际中,实现了理论与实践相结合。同时在本次设计中也锻炼了自己的动脑动手能力,整个设计几乎都是要靠自己来完成,指导老师只能在比较大的框架上或是一些很细节的东西给予指导,其余都要靠自己独立完成。在焊接电路板的时候自己的焊接技术又较以前做电装实习时更进一步了,同时在检查电路故障的时候也锻炼了自己发现问题和解决问题的能力。在做软件编程时更要动脑,因为我的设计使用的一些芯片与同组同学的不大一样,因此软件部分也大有不同,整个软件部分的编程任务都是自己完成,当然也得到了老师和同学的指导和帮助,但是不管怎样,在本次设计中,自己的动手动脑能力得到了很大提高。本次设计总的来说是成功的,当然也存在很多不足之处,但是在这个过程中自己学到了东西,自己得到了锻炼,自己能把大学四年所学的专业知识用到实践中去,这才是本次设计的最大目的!哈尔滨工业大学本科毕业设计(论文)32致致 谢谢在完成本电路的设计当中,给我很大帮助的不但有我的导师崔哓红老师,还有实验室的各个老师们。在这里,我向曾经帮助过我的所有老师们道一声 “谢谢您!老师 ” 。首先感谢导师 崔哓红 老师在毕业综合设计期间所给予的关心和帮助。崔哓红 老师对待工作认真负责、忙里抽闲,在处理公事和授课之余向我耐心地讲解有关适宜。 崔哓红 老师这种对待工作认真负责、严以律己的工作态度和宽以待人的崇高品质永远值得我们学习和借鉴。也非常感谢姜晓宇同学 在电路的制作及调试过程中给予的技术支持。在完成设计当中,我的导师 崔哓红 老师,他总是不断询问我的设计情况,包括我的进展情况、在电路当中所遇到的困难情况和应该怎样解决这些困难。在整个论文的撰写及修改过程,都是在崔老师的热心指导下完成的,在此,向在毕业综合设计当中给予我提供帮助的老师说一声“老师您辛苦了! ” 预祝老师在今后的生活及工作中,身体健康、工作顺利,在电子领域有更大的飞跃。在此,也向在毕业综合设计期间给予我关心和帮助 老师及同学表示感谢!哈尔滨工业大学本科毕业设计(论文)33参考文献参考文献1 杨素行 .模拟电子技术基础 .清华大学电子教研组 .1998:492-5182 李士平 .北京电子报 .北京电子报社 98 合订本下 .19983 赵保经 .中国集成电路大全 .国防工业出版社 .1989:79-824 童诗白 .现代电子学及应用 .东南大学出版社 .1997:23-345 童诗白 .模拟电子技术基础 .高等教育出版社 .1988:55-786. 晓 喻.电子制作 .中国家用电器维修协会 .1999:15-187 翟德富 .家用电路手册 .机械工业出版社 .2001:56-608 陈克安 .集成电路速查大全 .西安电子科技出版社 .1996:153-1559 于洪沿 .常用电子元件简明手册 .中国矿业大学出版社 .1985:345-34710 肖景和 .数字集成电路应用精粹 .人民邮电出版社 .1995:67-7011 刘京南、王成华 .电子电路基础 .北京电子工业出版社 .1998:271-29312 余孟尝 .数字电子技术基础 .清华大学电子教研组 .1999:371-39013 邹寿彬 .电子技术基础 .高等教育出版社 .1997:45-6614 闫石主.数字电子技术基础.高等教育出版社.1989:56-14615 AdelS.Sedra and Kenneth.Smith.Microelectronic Circuits,4rd,Oxford University Press.Inc.1998:35-4016 Jacob Millman and Arvin Grabel:Microelectronics, 2nd ed, Mc Graw-Hill Book Company,New York.1987:156-17217 Paul Mr.Brown,Jr: A Guide to analog Asics,Academic Press,Inc,San Diego.1992:86-91哈尔滨工业大学本科毕业设计(论文)34附录 1 外文资料汇编的源文件是一个标准的 ASCII 码文件,任何文本编辑如 EDLIN 、WORDSTAR 等都可以编写,FAST MAP 对于源文件书写格式有一定要求。文件的第一行要求大写字母给出 GAL 器件的型号, “PLD16V8”或“PLD20V8” ,这一行不能省略;第二行给出 GAL 器件的逻辑名称,可根据需要填写,也可以省略掉,键入回车。第四行应写明设计者的姓名,同样也可以省略键入回车。但这四行一定要保留,管脚定义从第五行开始否则不能通过汇编扫描。从第五行开始是定义器件的管脚名称,管脚名称可以使用不含前面提到符号或字串,定义时只需将管脚的序号依次排列即可,而不必考虑这些名称是否写在同一行里(如果写在同一行里,两个管脚名之间应该用空格分开) 。管脚定义完成之后就可以书写布尔表达式,布尔表达式中只 能 FAST MAP 所支持的 3 种关系符,根据 GAL 器件型号,每一个布尔表达式最多有 8 个“或”项,逻辑关系需要用户化简并且 FAST MAP 不支持“( ) ” 。 逻辑表过式是否正确,GAL 内部的逻辑关系及管脚排列是否合理,不但与用户的书写格式有关,而且与 GAL 的内部结构有关,因此使用者想正确使用 FAST MAP 还必须通过器件手册了解清楚 GAL 的内部结构。当所有布尔表达式书写完毕以后,应以一个“DESCRIPTION”通知 FAST MAP 结束汇编过程,并适当追加注释,以提高汇编程序的可读性。 每一行都必须顶头开始书写。The assembly source document is a standard ASCII code document, any textual edit like EDLIN, WORDSTAR and so on may compile, FAST MAP has certain request regarding the source document writing form. The document first line of request capital letter gives the GAL components model, “PLD16V8” or “PLD20V8”, this line cannot abbreviate; The second line gives the GAL components logical name, may according to need to fill, may also abbreviate falls, enters the carriage return. The fourth line should write plainly that designers name, similarly may also abbreviate enters the carriage return. But these four lines must certainly retain, otherwise the base pin definition starts from the fifth line not to be able through the assembly scanning. Starts from the fifth line is defines components base pin name, the base pin name may use including front 哈尔滨工业大学本科毕业设计(论文)35did not mention mark or string, when definition only need arrange in turn base pins serial number then, but does not need to consider whether these names do write in the identical line (, if writes in identical line, between two base pin names should use blank space to separate). After the base pin definition completes, may write the Boolean expression, in the Boolean expression can only FAST MAP support 3 kind of relational symbols, according to the GAL component model, each Boolean expression have 8 most much “or” the item, the logical relation need the user to simplify, and FAST MAP does not support “()”. Logic has shown -like to be whether correct, the GAL internal logical relation and the base pin arrange whether reasonably, not only with users written form related, moreover with GAL internal structure related, therefore the user wants to use FAST MAP also to correctly understand clear GAL through the component handbook the internal structure. After all Boolean expression writing finished, should “DESCRIPTION” inform FAST by one MAP conclusion assembly process, and the suitable supplement annotation, enhanced the assembly program the readability. Each itinerant must start to write headMCU 的嵌入式开发是与传统的 MCU 开发方式相对应的开发方式,传统的开发方式是采用仿真 MCU(例如:我们目前常见的 51 系列开发装置,就是利用仿真装置的 MCU 的插头在插在应用板的 MCU 插座上,用仿真器代替应用板上的MCU) ,这类仿真器对于 DIP 和 PLCC 封装的 MCU,同时 MCU 的工作时钟较低时,是十分有效的,但是对于表贴的 MCU 就不一定适用(当然可以用表贴的接插件,但价格很贵,只适应用于开发用) 。MCU 的嵌入式开发是指 MCU 自身内嵌仿真调功能,如 JTAG,BDM 接口和软件的 monitor。在开发这一类 MCU 时只需要一根JTAG 线或者 RSS232 TO TTL 线就行了。 MCU 的嵌入式开发将集应用与开发一体,它是一种非常有效的新型开发方式,目前许多 MCU,如:ARM TI 的DSP,C80C51F M430 一部份 AVR.。等都是具用的 JTAG 开发方式。JTAG已成为 IEEE 标准。 至于采用 UART 的 monitor 方式算不算嵌入式开,我想这是一个定义问题。但这种方式也是一种有效的方式,如富士通的MB90FXX,KEIL 51 中的 ISD51,和一些 ARM 开发都是采用 UART 与软件接合进哈尔滨工业大学本科毕业设计(论文)36得的。The MCU embedded development is the development way which corresponds with the traditional MCU development way, the traditional development way is uses simulation MCU (e.g.: We the common 51 series development installment, is at present in inserts using the simulation installment MCU plug on the application board MCU plug, replaces on the application board with the simulator MCU), this kind of simulator regarding DIP and PLCC seal MCU, when the MCU work clock is simultaneously low, is very effective, but pastes regarding the table MCU not necessarily is suitable (may certainly use connector which table pastes, but price is very expensive, only adapts uses in developing uses). the MCU embedded development is refers to MCU own to inlay the simulation to adjust the function, like JTAG, BDM connection and softwares monitor. When develops this kind of MCU only needed a JTAG line or RSS232 TO the TTL line is good. the MCU embedded development applies the collection and develops a body, it is one very effective new development way, at present many MCU, for example: ARM TI DSP, C80C51F M430 partial AVR . And so on is JTAG which has uses develops the way. JTAG has become the IEEE standard. as for uses UART the monitor way to calculate embedded opens, I thought that this is a definition question. But this way is also one effective way, if Fujitsus MB90FXX, KEIL 51 ISD51, uses UART and the software with some ARM development joins.哈尔滨工业大学本科毕业设计(论文)37附录 2 电路原理图12345678ABCD87654321DCBATitleNumberRevisionSizeA3Date:1-Jan-2002 Sheet of File:F:业业业业业业BA CKU P11.DD BDraw n By:EA /VPP31XTAL119XTAL218RST/VPD9P3.7/RD17P3.6/WR16P3.2/INT012P3.3/INT113P3.4/T014P3.5/T115P1.0/T1P1.1/T2P1.23P1.34P1.45P1.56P1.67P1.78P0.039P0.138P0.237P0.336P0.435P0.534P0.633P0.732P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728PSEN29ALE/PRO G30P3.1/TXD11P3.0/RXD10Vcc40Gnd20AT89S5XU1AT89S5XVCCP00P01P02P03P04P05P06P07EAALEPSEP27P26P25P24P23P22P21P20P10P11P12P13P14P15P16P17RSTP30P31P32P33P34P35P36P37R14.7KR510KC1530C1630CRYSTAL11212345678910JP1HEADER 5X2VCCP15P16P17RSTC1710S10SVCCRSTVin1Gnd2+5V3LM1LM7805CTC13100C14100C11104C1210412J1CO N212J2CO N2VCCVCC1234567891011121314151617181920J320PINP10P11P12P13P14P15P16P17RSTP30P31P32P33P34P35P36P371234567891011121314151617181920J420PINP00P01P02P03P04P05P06P07EAALEPSEP27P26P25P24P23P22P21P20VCCS266S36S46S56S66S76S86S96P00P01P02P03P04P05P06P07P00P01P02P03P04P05P06P07VCCIN55IN77IN66OT512OT611OT710OT413CO M9IN11IN44OT215IN33OT314IN22OT116GN D8U2ULN2003VCCP27P26P25P24P23P22P21P20VCC1234567J6CO N712J5CO N2b1BELLVCCSER14SRCLK11SRCLR10RCLK12E13O015O11O22O33O44O55O66O77Q79U674H C59512345678161514131211109RP41KabfcgdeV76421910abcdefg5dpdp8CCVCC38SEG-LED4SHUMA _Y ANGVCCSER14SRCLK11SRCLR10RCLK12E13O015O11O22O33O44O55O66O77Q79U774H C59512345678161514131211109RP51KabfcgdeV76421910abcdefg5dpdp8CCVCC38SEG-LED5SHUMA _Y ANGVCCSER14SRCLK11SRCLR10RCLK12E13O015O11O22O33O44O55O66O77Q79U874H C59512345678161514131211109RP61KabfcgdeV76421910abcdefg5dpdp8CCVCC38SEG-LED6SHUMA _Y ANGVCCSER14SRCLK11SRCLR10RCLK12E13O015O11O22O33O44O55O66O77Q79U974H C59512345678161514131211109RP71KabfcgdeV76421910abcdefg5dpdp8CCVCC38SEG-LED7SHUMA _Y ANGVCCSER14SRCLK11SRCLR10RCLK12E13O015O11O22O33O44O55O66O77Q79U1074H C59512345678161514131211109RP81KabfcgdeV76421910abcdefg5dpdp8CCVCC38SEG-LED8SHUMA _Y ANGVCCSER14SRCLK11SRCLR10RCLK12E13O015O11O22O33O44O55O66O77Q79U574H C59512345678161514131211109RP31KabfcgdeV76421910abcdefg5dpdp8CCVCC38SEG-LED3SHUMA _Y ANGVCCSER14SRCLK11SRCLR10RCLK12E13O015O11O22O33O44O55O66O77Q79U474H C59512345678161514131211109RP21KabfcgdeV76421910abcd
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。