基于AT89S51的八路抢答器的设计 毕业论文.doc

上传人:小小飞 文档编号:3919737 上传时间:2019-10-10 格式:DOC 页数:29 大小:1,021.02KB
返回 下载 相关 举报
基于AT89S51的八路抢答器的设计 毕业论文.doc_第1页
第1页 / 共29页
基于AT89S51的八路抢答器的设计 毕业论文.doc_第2页
第2页 / 共29页
基于AT89S51的八路抢答器的设计 毕业论文.doc_第3页
第3页 / 共29页
基于AT89S51的八路抢答器的设计 毕业论文.doc_第4页
第4页 / 共29页
基于AT89S51的八路抢答器的设计 毕业论文.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《基于AT89S51的八路抢答器的设计 毕业论文.doc》由会员分享,可在线阅读,更多相关《基于AT89S51的八路抢答器的设计 毕业论文.doc(29页珍藏版)》请在三一文库上搜索。

1、1 江西工业贸易职业技术学院江西工业贸易职业技术学院 毕毕 业业 设设 计计 课题名称:课题名称:基于 AT89S51 的八路抢答器的设计 (2014 年年 上上 学期)学期) 系 部 机电技术工程系 专 业 机电一体化 班 级 12 机电(2)班 姓 名 指导教师 2014 年 06 月 07 日 2 独创性声明 本人声明:所呈交的毕业论文(设计)是在导师指导下进行的研 究工作及取得的研究成果,论文中引用他人的文献、数据、图表、资 料均已作明确标注,论文中的结论和成果为本人独立完成,真实可靠, 不包含他人成果及已获得江西工业贸易职业技术学院或其他教育机构 的学位或证书使用过的材料。与我一同工

2、作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示了谢意。 设计作者签名: 蔡锦桂 日期: 2014 年 06 月 07 日 版权使用授权书 本毕业设计作者同意学校保留并向国家有关部门或机构送交设计 的复印件和电子版,允许设计被查阅和借阅。本人授权江西工业贸易 职业技术学院可以将本毕业设计全部或部分内容编入有关数据库进行 检索,可以采用影印、缩印或扫描等复制手段保存和汇编本毕业论文 (设计) 。本人离校后发表或使用该毕业设计或与该设计直接相关的 学术论文或成果时,单位署名为江西工业贸易职业技术学院。 设计作者签名: 蔡锦桂 日期: 2014 年 06 月 07 日 指 导 教 师

3、 签 名: 日期: 年 月 日 3 摘摘 要要 本方案以 AT89S51 单片机作为主控核心,与晶振、数码管、蜂鸣器等构成八 路抢答器,利用了单片机的延时电路、按键复位电路、时钟电路、定时/中断等 电路,设计的八路抢答器具有实时显示抢答选手的号码和抢答时间的特点,还有 复位电路,使其再开始新的一轮的答题和比赛,同时还利用汇编语言编程,使其 实现一些基本的功能。 关关键键词词: 单片机、AT89S51、抢答器 4 目目 录录 一 设计目的与任务.3 二 各模块的选择和论证.3 2.1 抢答器显示模块选择.3 2.2 控制器选择 5 2.3 键盘选择 5 2.4 时钟频率电路的设计 7 2.5 复

4、位电路的设计 8 2.6 报警电路 8 2.7 AT89S51 简介 9 2.7.1 AT89S51 单片机的结构 9 2.7.2 AT89S51 单片机管脚说明 .10 三 模块最终方案的设计12 3.1 总体设计思路12 3.2 功能介绍 .12 3.3 抢答器的软件设计 .12 3.4 数码显示软件设计 .13 四 系统调试与仿真13 4.1 软件调试问题分析 .14 4.2 PROTEUS 仿真 .14 五 电路板的制作与检查15 六 总结16 参考文献.16 附 录.17 附 录 一 主程序 22 附 录 二 元件清单 28 附 录 三 Proteus 仿真原理图 29 5 基于 A

5、T89S51 的八路数显抢答器 摘要摘要:本方案以 AT89S51 单片机作为主控核心,与晶振、数码管、蜂鸣器 等构成八路抢答器,利用了单片机的延时电路、按键复位电路、时钟电路、定 时/中断等电路,设计的八路抢答器具有实时显示抢答选手的号码和抢答时间的 特点,还有复位电路,使其再开始新的一轮的答题和比赛,同时还利用汇编语 言编程,使其实现一些基本的功能。 关键词关键词:单片机、AT89S51、抢答器 一一 设计目的与任务设计目的与任务 1 1 课程设计目的课程设计目的 (1)结合所学的电子电路的理论知识完成数码显示八路抢答器课程设计; (2)通过该设计学会并掌握常用电子元器件的选择和使用方法;

6、 (3)提高自己综合分析问题和解决问题的能力。 2 2 课程设计任务课程设计任务 在比赛开始,主持人读完题之后按下总开关,即计时开始,此时数码管 开始进行 30s 的倒计时,直到有一个选手抢答时,对应的会在数码管上显示出 该选手的编号和抢答所用的时间,同时蜂鸣器也会发出声音,以提示有人抢答 本题,如果在规定的 60s 时间内没有做出抢答,则此题作废,即开始重新一轮 的抢答。在抢答和回答时间的最后 5s,蜂鸣器都会给予报警提示。 二二 各模块的选择和论证各模块的选择和论证 2.12.1抢答器显示模块选择抢答器显示模块选择 显示模块主要是显示抢答的时间,组别号码等。考虑有以下两种显示方案。 方案一

7、:使用液晶屏显示时间。液晶显示屏(LCD)具有轻薄短小、低耗电 量、无辐射危险,平面直角显示以及影像稳定不闪烁等优势,可视面积大,画 面效果好,分辨率高,抗干扰能力强的特点。但由于只需要显示时间和转向、 相数这样的数字,信息量比较少,且由于液晶是以点阵的模式显示各种符号, 需要利用控制芯片创建字符库,编程工作量大,控制器的资源占用较多,其成 本也偏高。在使用时,不能有静电干扰,否则易烧坏液晶显示芯片,不易维护。 方案二:在使用传统的数码管显示。数码管具有:低能耗、低损耗、低压、 寿命长、耐老化、防晒、防潮、防火、防高(低)温,对外界环境要求低,易 于维护,同时其精度高,称量快,精确可靠,操作简

8、单。数码显示是采用 BCD 编码显示数字,程序编译容易,资源占用较少。 6 根据以上的论述,选择采用方案二。 显示功能与硬件关系极大,当硬件固定后,如何在不引起操作者误解的前 提下提供尽可能丰富的信息,全靠软件来解决。在这里我们使用的是七段数码 管显示,通常在显示上我们采用的方法一般包括两种:一种是静态显示,一种 是动态显示。其中静态显示的特点是显示稳定不闪烁,程序编写简单,但占用 端口资源多;动态显示的特点是:显示稳定性没静态好,程序编写复杂,但是 相对静态显示而言占用端口资源少。在本设计中根据实际情况采用的是动态显 示方法。4 位七段数码管显示电路如下图所示。 图 2-1 4 位七段数码管

9、显示电路图 上图中数码管采用的是 4 位一体七段共阳数码管,其中 AH 段分别接到单 片机的 P0 口,由单片机输出的 P0 口数据来决定段码值,位选码 COM1,COM3,COM4 分别接到单片机的 P2.0,P2.1,P2.2,由单片机来决定当前 该显示的是哪一位。在图中还有八个电阻,连接在 P0 口上,用作 P0 口的上拉 电阻,保证 P0 口没有数据输出时候处于高电平状态。 通过查表法,将其在数码管上显示出来,其中 P0 口为字型码输入端,P2 口低 3 位为字选段输入段。在这里我们通过查表将字型码送给 7 段数码管显示 的数字。 2.22.2 控制器选择控制器选择 控制器主要用于对显

10、示、抢答、音乐、计分等模块进行控制。控制器的选 择有以下两钟方案。 7 方案一:采用 FPGA(现场可编程门列阵)作为系统的控制器。FPGA 可以实 现各种复杂的逻辑功能,规模大,密度高,它将所有器件集成在一块芯片上, 减小了体积,提高了稳定性,并且可以应用 EDA 软件仿真、调试,易于进行功 能扩展。FPGA 采用并行的输入输出方式,提高了系统的处理速度,适合作为大 规模实时系统的控制核心。但由于本设计对数据处理的速度要求不高,FPGA 的 高速处理的优势得不到充分体现,并且由于其集成度高,使其成本偏高,同时 由于芯片的引脚较多,实物硬件电路板布线复杂,加重了电路设计和实际焊接 的工作。 方

11、案二:采用 ATMEL 公司的 AT89S51 作为系统控制器的 CPU 方案。单片机 算术运算功能强,软件编程灵活、自由度大,可以用软件编程实现各种算法和 逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等优点,使其在各 个领域应用广泛。 基于以上分析,我选择采用方案二。 2.32.3 键盘选择键盘选择 键盘是单片机不可缺少的输入设备,是实现人机对话的纽带。键盘按结构 形式可以分为非编码键盘和编码键盘,前者用软件方法产生键码,而后者则用 硬件方法来产生键码。在单片机中使用的都是非编码键盘,因为非编码键盘结 构简单,成本低廉,非编码键盘的类型很多,常用的有独立式键盘,行列式键 盘等。 方案

12、一:独立式键盘 键盘接口中使用多少根 I/O 线,键盘中就有几个按键,键盘接口使用了 8 根 I/O 口线,该键盘就有 8 个按键,这种类型的键盘,其按键比较少,且键盘 中各按键的工作互不干扰。因此可以根据实际需要对键盘中的按键灵活的编码。 如图 2-2。 最简单的编码方式就是根据 I/O 输入口所直接反映的相应按键,按下的状 态进行编码,称按键直接状态码,对于这样编码的独立式键盘,CPU 可以通过 直接读取 I/O 口的状态来获取按键的直接状态编码值,根据这个值直接进行按 键识别,这样形式的键盘结构简单,按键识别容易。 独立式键盘的缺点是需要占用比较多的 I/O 口线,当单片机应用系统键盘

13、中需要的按键比较少或 I/O 口线比较富余时,可以采用这样类型的键盘。 P1 1 2 3 4 5 6 7 8 8 图 2-2 独立式键盘 方案二:行列式键盘 行列式键盘是用 N 条 I/O 线作为行线,M 条 I/O 线作为列线组成的键盘, 在行线和列线的每个交叉点上。这种形式的键盘结构,能够有效的提高单片机 系统中 I/O 的利用率,列线接 P1.0P1.3 行线接 P1.4P1.7,行列适用于按键 输入多的情况。 CPU 对键盘的扫描可以采用取程序控制的随机方式,即只有在 CPU 空闲是 时才去扫描键盘,响应操作人员的键盘输入,即利用单片机内部定时器每隔一定 时间对键盘扫描一次,这样控制方

14、式,不管键盘上有无键闭合,CPU 总是定时 的关心键盘状态。在大多数情况下,CPU 对键盘可能进行空扫描。为了提高 CPU 的效率而又能及时响应键盘输入,可以采用中断方式,既 CPU 平时不必扫描键 盘,只要当键盘上有键盘闭合时就产生中断请求,向 CPU 申请中断后,立即对 键盘上有键盘进性扫描,识别闭合键,并做相应的处理。 图 2-3 行列式键盘 P 1.0 P 1.1 P 1.2 P 1.3 P 1.4 P 1.5 P 1.6 P 1.7 9 图 2-4 抢答按键及调整按键 2.42.4 时钟频率电路的设计时钟频率电路的设计 单片机必须在时钟的驱动下才能工作。在单片机内部有一个时钟振荡电路

15、, 只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元, 决定单片机的工作速度。时钟电路如下图所示。 图 2-5 外部振荡源电路 一般选用石英晶体振荡器。此电路在加电大约延迟 10ms 后振荡器起振,在 XTAL2 引脚产生幅度为 3V 左右的正弦波时钟信号,其振荡频率主要由石英晶振 的频率确定。电路中两个电容 C1,C2 的作用有两个:一是帮助振荡器起振;二 是对振荡器的频率进行微调。 单片机在工作时,由内部振荡器产生或由外直接输入的送至内部控制逻辑 单元的时钟信号的周期称为时钟周期。其大小是时钟信号频率的倒数。图中时 钟频率为 12MHz。 10 2.52.5 复位电路的设

16、计复位电路的设计 单片机的第 9 脚 RST 为硬件复位端,只要将该端持续 4 个机器周期的高电 平即可实现复位,复位后单片机的各状态都恢复到初始化状态,其电路图如下 所示: 图 2-6 复位电路 2.62.6 报警电路报警电路 我们知道,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单 片机某个口线的“高”电平或低电平,则在该口线上就能产生一定频率的巨型 波,接上喇叭就能发出一定频率的声音,若再利用延时程序控制“高”“低” 电平的持续时间,就能改变输出频率,从而改变音调,使喇叭发出不同的声音。 本文设计如下图所示。图中单片机的 14 脚输出具有复合功能,此处用到了 单片机 17 脚的

17、IO 端口功能,单片机通过内部定时器的操作实现交替变换的波 形输出驱动扬声器发声。 图 2-7 发声电路 11 2.72.7 AT89S51AT89S51 简介简介 2.7.12.7.1 AT89S51AT89S51 单片机的结构单片机的结构 AT89S51 单片机是美国 Atmel 公司生产低电压,高性能 CMOS 8 位单片机, 片内含 4k bytes 的可反复擦写的只读程序存储器(EPROM)和 128 bytes 的随 机存取数据存储器(RAM),器件采用 Atmel 公司的高密度、非易失性存取技术生 产,兼容标准 MCS-51 指令系统,片内置通用 8 位中央处理器(CPU)和 F

18、lash 存储单元,功能强大。AT89S51 单片机可提供许多高性价比的应用场合,可灵 活应用于各种控制领域。 图 2-8 为 AT89S51 单片机的基本组成功能方块图。由图可见,在这一块芯 片上,集成了一台微型计算机的主要组成部分,其中包括 CPU、存储器、可编 程 I/O 口、定时器/计数器、串行口等,各部分通过内部总线相连。下面介绍几 个主要部分。 振荡器和时序 OSC程序存储器 4 KB ROM 数据存储器 256 B RAM/SFR 定时器/计数器 2 16 AT89S51CPU 64 KB 总线 扩展控 制器 可编程 I/O可编程全双工串 行口 内中断 12 图 2-8 单片机结

19、构框图 2.7.22.7.2 AT89S51AT89S51 单片机管脚说明单片机管脚说明 图 2-9 AT89S51 单片机管脚图 ATMEL 公司的 AT89S51 是一种高效微控制器。采用 40 引脚双列直插封装形 式。AT89S51 单片机是高性能单片机,因为受引脚数目的限制,所以有不少引 脚具有第二功能。 VCC:供电电压。 GND:接地。 P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。 当 P1 口的管脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据 存储器,它可以被定义为数据/地址的第八位。在 FLASH 编程时,P0 口作

20、为原 码输入口,当 FLASH 进行校验时,P0 输出原码,此时 P0 外部必须被拉高。 P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能 接收输出 4TTL 门电流。P1 口管脚写入 1 后,被内部上拉为高,可用作输入, P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH 编程和校验时,P1 口作为第八位地址接收。 P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收, 输出 4 个 TTL 门电流,当 P2 口被写 1 时,其管脚被内部上拉电阻拉高,且作为 输入。并因此作为输入时,P2 口的管

21、脚被外部拉低,将输出电流。这是由于内 13 部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行 存取时,P2 口输出地址的高八位。在给出地址 1 时,它利用内部上拉优势,当 对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。 P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。 P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。当 P3 口写入 1 后,它们被内部上拉为高电平,并用作输入。作为 输入,由于外部下拉为低电平,P3 口将输出电流。 P3 口也可作为 AT89S51 的一

22、些特殊功能口,如下表所示: P3 口管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 INT0(外部中断 0) P3.3 INT1(外部中断 1) P3.4 T0(记时器 0 外部输入) P3.5 T1(记时器 1 外部输入) P3.6 (外部数据存储器写选通)WR P3.7 (外部数据存储器读选通)RD P3 口同时为闪烁编程和编程校验接收一些控制信号。 ALE/:当访问外部存储器时,地址锁存允许端的输出电平用于锁存PROG 地址的地址字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡

23、器频率的 1/6。因此它可 用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据 存储器时,将跳过一个 ALE 脉冲。如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。此时, ALE 只有在执行 MOVX,MOVC 指令是 ALE 才起作用。 PSEN:外部程序存储器的选通信号端。在由外部程序存储器取指期间,每 个机器周期两次 PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。 /VP:当保持低电平时,则在此期间外部程序存储器(0000H-EAEA FFFFH) ,不管是否有内部程序存储器。注意加密方式 1 时,将内部锁定为EA RESET

24、;当端保持高电平时,此间内部程序存储器。在 FLASH 编程期间,此EA 引脚也用于施加 12V 编程电源。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:反向振荡器的输出,如采用外部时钟源驱动器件,应不接。 14 三三 模块最终方案的设计模块最终方案的设计 3.13.1 总体设计思路总体设计思路 主控制器模块:采用 AT89S51 单片机控制 抢答器显示模块:数码管显示 电源方案的选择:采用 5V 电源供电 抢答器键盘模块:独立式键 3.23.2 功能介绍功能介绍 如果想调节抢答时间或答题时间,按“抢答时间调节”键或“回答时间调 节”键进入调节状态,此时会显示现在设

25、定的抢答时间或回答时间值,如果想 加 1 秒按一下“加 1 秒”键,如果想减 1 秒按一下“减 1 秒”键,时间 LED 上 会显示改变后的时间,调整范围为 0S99S,0S 时再减 1S 会跳到 99,99S 时再 加 1S 会变到 0S。 主持人按“抢答开始”键,会有提示音,并立刻进入抢答倒计时(预设 30S 抢答时间) ,如有选手抢答,会有提示音,并会显示其号数并立刻进入回答倒计 时(预设 60S 回答时间) ,不进行抢答查询,所以第一个按抢答的选手有效。倒 数时间到小于 5S 会每秒响一下提示音。 如倒计时期间,主持人想停止倒计时可以随时按“停止”按键,系统会自动 进入准备状态,等待主

26、持人按“抢答开始”进入下次抢答计时。 如果主持人未按“抢答开始”键,而有人按了抢答按键,犯规抢答,LED 上 不断闪烁 FF 和犯规号数并响个不停,直到按下“停止”键为止。 3.33.3 抢答器的软件设计抢答器的软件设计 系统软件由主程序和 INT0 中断服务组成。主程序由验键,违规显示,倒计 时等功能子程序组成,系统完成初始化后循环检查各个功能当用户使用某个功 能时,按下相应的按钮(或开关)单片机进入相应的功能处理。INT0 中断服务 程序完成抢答信号采样和识别处理。 该智能抢答器以 AT89S51 单片机为控制核心,控制精度较高,操作误差主 要来自晶振自身所造成的误差。其他外围电路包括复位

27、电路、时钟电路、报警 电路、LED 显示电路、抢答按键、功能设置键等。该智能抢答器具有计时记忆 功能,一次时间设置完,复位后不需重新进行时间设定;通过按键扫描输出按 键信息,并通过单片机将它转化为在七段数码管上显示的字形符。单片机的 P1 口为 8 组抢答按键的输入口,P0.0P0.6 为数码管的段选口,P2.0P2.2 为数码 管的片选口。外部中断 INT0 和 INT1 分别为抢答时间和回答时间的调整口, P3.4 和 P3.5 分别实现时间调整时的加 1 和减 1 功能;P3.6 为报警电路的控制 口。 15 3.43.4 数码显示数码显示 数码显示管用来作为时间的显示输出,一般用 7

28、段数码显示管。本次设计 中采用 7 段共阳数码显示管应用简单、可靠性高、成本低,作为显示输出。连 接时段选信号接在 P0 口的 P0.0P0.6 七个 I/O 口上,P1 口是准双向 I/O 接口 在输出驱动部分具有驱动 4 个 TTL 负载的能力,即输出电流不大于 400A,所 以在接电阻时选择接 510 限流电阻。而在位选方面采 用 P2 口的 P2.0用单片机 P2.2 三个 I/O 口作为位选信号的输出口。 四四 系统调试与仿真系统调试与仿真 系统调试包括硬件调试和软件调试,而且两者是密不可分的。我们设计好 的硬件电路和软件程序,只有经过联合调试,才能验证其正确性;软硬件的配 人情况以

29、及是否达到设计任务的要求,也只有经过调试,才能发现问题并加以 解决、完善,最终开发成实用产品。 硬件调试分单元电路调试和联机调试,单元电路试验在硬件电路设计时已 经进行,这里的调试只是将其制成印刷电路板后试验电路是否正确,并排除一 些加工工艺性错误(如错线、开路、短路等) 。这种调试可单独模拟进行,也可 通过开发装置由软件配合进行,硬件联机调试则必须在系统软件的配合下进行。 软件调试一般包括分块调试和联机调试两个阶段。程序的分块调试一般在 单片机开发装置上进行,可根据所调程序功能块的入口参量初值编制一个特殊 的程序段,并连同被调程序功能块一起在开发装置上运行;也可配合对应硬件 电路单独运行某程

30、序功能块,然后检查是否正确,如果执行结果与预想的不一 致,可以通过单步运行或设置断点的方法,查出原因并加以改正,直到运行结 果正确为止。这时该 程序功能块已调试完毕,可去掉附加程序段。其它程序功 能块可按此法进行调试。程序联机调试就是将已调试好的各程序功能块按总体 结构联成一个完整程序,在所研制的硬件电路上运行。从而试验程序整体运行 的完整性、正确性和与硬件电路的配合情况。在联调中可能会有某些支路上的 程序、功能块因受条件制约而得不到相应的输入参数,这时,调试人员应创造 条件进行模拟调试。在联调中如发现硬件问题也应及时修正,直到单片机系统 的软件、硬件全部调试成功为止。系统调试完成后,还要进行

31、一段时间的试运 行,从而检验系统的稳定性和抗干扰能力,验证系统功能是否达到设计要求, 是否达到预期的效果。 4.14.1 软件调试问题分析软件调试问题分析 数码管显示问题:本次设计的最终方案是采用数码管显示屏实现显示功能, 最初数码管显示不正常,出现闪烁现象。通过调试发现这是由于延时时间选择 16 不当会使人眼产生视觉暂留效果,每一次显示时都必须加入适当的时间延时。 由于一开始所选用的延时时间太短因此出现闪烁现象,在增加显示延时之后, 数码管显示正常。 蜂鸣器异常启动问题:蜂鸣器的启动/关闭是通过单片机输出的控制信号来 实现的,当前时间与闹钟设置时间比较吻合时,单片机将对闹铃控制口执行取 反命

32、令,从而启动蜂鸣器发声。一开始编写程序时,没有对控制口的最初状态 作正确设置,由于系统开机复位后,闹铃控制口处于高电平状态,因此出现一 开机蜂鸣器就处于启动状态的情况。通过在主程序最开始加入对闹铃控制口取 零命令后,蜂鸣器启动/关闭控制恢复正常。 按键消抖问题:在最初编写程序时,键盘控制部分按照常例加入了按键消 抖程序。在实际调试中,发现按键出现反应不灵敏现象。这是因为在键盘控制 程序中,除了消抖程序外,还加入了按键提示音程序(每次按压键盘时,蜂鸣 器发出“哗”的一声提示音) 。由于在调用提示音子程序时,实际上已实现了一 次时间的延时,因此再加入按键消抖程序的延时后,致使延时时间过长而出现 按

33、键反应不灵敏问题。通过调试发现提示音子程序本身所产生的延时已能够满 足按键消抖时间延迟的要求,因此在键盘控制程序中无需再加入专门的按键消 抖程序。在去除按键消抖程序后,按键控制灵敏度恢复正常。 4.24.2 ProteusProteus 仿真仿真 Proteus 软件是来自英国 Labcenter Electronics 公司的 EDA 工具软件, Proteus 软件除了其具有和其它 EDA 工具一样的原理布图,PCB 自动或人工布线 及电路仿真的功能外, 其革命性的功能是,他的电路仿真是互动的,针对微处理 器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实 时调试,如有

34、显示及输出, 还能看到运行后输入输出的效果,配合系统配置的虚 拟仪器如示波器,逻辑分析仪等,PROTUES 的 ISIS 是一款 Labcenter 出品的电路 分析实物仿真系统,可仿真各种电路和 IC,并支持单片机,元件库齐全,使用 方便,是不可多得的专业的单片机软件仿真系统。 该软件的特点: 1. 全部满足我们提出的单片机软件仿真系统的标准,并在同类产品中具有 明显的优势。 2.具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的 仿真、RS-232 动态仿真、C 调试器、SPI 调试器、键盘和 LCD 系统仿真的功能; 有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。 3.

35、 目前支持的单片机类型有:68000 系列、8051 系列、AVR 系列、PIC12 系列、PIC16 系列、PIC18 系列、Z80 系列、HC11 系列以及各种外围芯片。 4. 支持大量的存储器和外围芯片。总之该软件是一款集单片机和 SPICE 分 析于一身的仿真软件,功能极其强大 ,可仿真 51、AVR、PIC。 17 五五 电路板的制作与检查电路板的制作与检查 在电路板的制作中,首先要进行线路的排布。利用 PROTEL 软件模拟实际电 路板的线路走向,尽量避免线路出现交叉短路,电源线路尽量安排在电路板的 最外圈。PCB 板刻录完成之后,开始进行焊接工作。焊接完后进行电路板检查, 将原线

36、路图与实际焊接的电路板进行对比,由于线路不多,所以用万用表的欧 姆档或是短路声响指示功能来做焊点的检测,如此可以避免焊接时漏焊、虚焊 和配线错误的问题,同时保证了所制作出来的线路与原设计线路的一致性。 一般来说,造成硬件问题的首要问题就是焊接了,也就是说焊接的好与坏 直接响产品的正常运行。造成焊接质量不高的常见原因是: 1. 焊锡用量过多,形成焊点的锡堆积;焊锡过少,不足以包裹焊点。 2.冷焊。焊接时烙铁温度过低或加热时间不足,焊锡未完全熔化、浸润、焊 锡表面不光亮(不光滑),有细小裂纹。 3.夹松香焊接,焊锡与元器件或印刷板之间夹杂着一层松香,造成电连接不 良。若夹杂加热不足的松香,则焊点下

37、有一层黄褐色松香膜;若加热温度太高, 则焊点下有一层碳化松香的黑色膜。对于有加热不足的松香膜的情况,可以用烙 铁进行补焊。对于已形成黑膜的,则要“吃“净焊锡,清洁被焊元器件或印刷板表 面,重新进行焊接才行。 4.焊锡连桥。指焊锡量过多,造成元器件的焊点之间短路。这在对超小元器 件及细小印刷电路板进行焊接时要尤为注意。 5.焊剂过量,焊点明围松香残渣很多。当少量松香残留时,可以用电烙铁再 轻轻加热一下,让松香挥发掉,也可以用蘸有无水酒精的棉球,擦去多余的松香或 焊剂。 6.焊点表面的焊锡形成尖锐的突尖。这多是由于加热温度不足或焊剂过少, 以及烙铁离开焊点时角度不当浩成的内。 最小系统的电路不工作

38、,首先应该确认电源电压是否正常。用电压表测量 接地引脚跟电源引脚之间的电压,看是否符合电源电压,常用的是 5V 左右。接 下来就是检测复位引脚的电压是否正常,EA 引脚的电压要正常为 5V 左右。 六六 总结总结 通过这次毕业设计,我明白学习是一个长期积累的过程,在以后的工作、 生活中都应该不断的学习,努力提高自己知识和综合素质。这次制作与设计不 仅涉及到我们以前所学到的单片机,模拟电子技术,数字电子技术,高等数学 等课程的知识还涉及到很多我们的选修及课外的知识像实训课上学到的手工焊 18 接技术等等知识。第二是理论联系实际性太强,把所学的搜集到得知识运用的 实际中不是一件容易的事,不仅由元件

39、从课本上的符号到实物的认识还是理论 的测量结果与实际值的误差。 毕业设计是我作为一名学生即将完成学业的最后一次作业,他既是对学校 所学知识的全面总结和综合应用,又为今后走向社会的实际操作应用铸就了一 个良好开端,毕业设计是我对所学知识理论的检验与总结,能够培养和提高设 计者独立分析和解决问题的能力;毕业设计提高了我理论联系实际的能力更在 知识的巩固与实际的操作上的衔接提高了我的能力,毕业设计中遇到的困难与 挫折以及解决这些问题的思路与方法更增加了我对以后工作中遇到困难我能克 服解决的信心,也让我积累了经验,为以后的工作打下了良好的基础,同时也 培养了我遇到突发状况要稳定冷静的精神,也培养了我学

40、会怎么与别人合作的 方法,怎么解决与合作的伙伴意见不同一时状况,为以后怎么和同事相处好奠 定了基础。这次毕业设计业也让我懂得了分析问题,才能解决问题的道理,通 过了这次更增加了我以后能够干好自己工作的信心。 【参考文献】 1模拟电子技术 江晓安著;西安电子科技大学出版社 2数字电子技术 康华光著;高等教育出版式社 3单片机技术任务驱动式教程 徐进强 、左翠红著;天津大学出版社 4电子设计与仿真技术 李忠波、袁宏等著;机械工业出版社 5单片机原理及接口技术 李全利、迟荣强著 高等教育出版社 6基于 Proteus 的单片机可视软硬件仿真 林志琦著 北京航空航天大 学出版社 7单片机应用系统设计技

41、术 张齐著 电子工业出版社 19 附附 录录: 附附 录录 一一 主程序主程序 主程序如下: OK EQU 20H;抢答开始标志位 RING EQU 22H;响铃标志位 ORG 0000H AJMP MAIN ORG 0003H AJMP INT0SUB ORG 000BH AJMP T0INT ORG 0013H AJMP INT1SUB ORG 001BH AJMP T1INT ORG 0040H MAIN: MOV R1,#30;初设抢答时间为 30s MOV R2,#60;初设答题时间为 60s MOV TMOD,#11H;设置未定时器/模式 1 MOV TH0,#0F0H 20 MO

42、V TL0,#0FFH;越高发声频率越高,越尖 MOV TH1,#3CH MOV TL1,#0B0H;50ms 为一次溢出中断 SETB EA SETB ET0 SETB ET1 SETB EX0 SETB EX1;允许四个中断,T0/T1/INT0/INT1 CLR OK CLR RING SETB TR1 SETB TR0;一开始就运行定时器,以开始显示 FFF.如果想重新计数,重置 TH1/TL1 就可以了 ;=查询程序= START: MOV R5,#0BH MOV R4,#0BH MOV R3,#0BH ACALL DISPLAY;未开始抢答时候显示 FFF JB P3.0,NEXT

43、;ddddddd ACALL DELAY JB P3.0,NEXT;去抖动,如果“开始键“按下就向下执行,否者跳到非法抢答查 询 ACALL BARK;按键发声 MOV A,R1 MOV R6,A;送 R1-R6,因为 R1 中保存了抢答时间 SETB OK;抢答标志位,用于 COUNT 只程序中判断是否查询抢答 MOV R7,#01H ;读抢答键数据信号标志,这里表示只读一次有用信号 MOV R3,#0AH;抢答只显示计时,灭号数 AJMP COUNT;进入倒计时程序,“查询有效抢答的程序“在 COUNT 里面 NEXT: JNB P1.0,FALSE1 JNB P1.1,FALSE2 JN

44、B P1.2,FALSE3 JNB P1.3,FALSE4 JNB P1.4,FALSE5 JNB P1.5,FALSE6 JNB P1.6,FALSE7 JNB P1.7,FALSE8 AJMP START 21 ;=非法抢答处理程序= FALSE1: MOV R3,#01H AJMP ERROR FALSE2: MOV R3,#02H AJMP ERROR FALSE3: MOV R3,#03H AJMP ERROR FALSE4: MOV R3,#04H AJMP ERROR FALSE5: MOV R3,#05H AJMP ERROR FALSE6: MOV R3,#06H AJMP

45、ERROR FALSE7: MOV R3,#07H AJMP ERROR FALSE8: MOV R3,#08H AJMP ERROR ;=INT0(抢答时间 R1 调整程序)= INT0SUB:MOV A,R1 MOV B,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY;先在两个时间 LED 上显示 R1 JNB P3.4,INC0;P3.4 为+1s 键,如按下跳到 INCO JNB P3.5,DEC0;P3.5 为-1s 键,如按下跳到 DECO JNB P3.1,BACK0;P3.1 为确定键,如按下跳到 BACKO AJ

46、MP INT0SUB INC0: MOV A,R1 CJNE A,#63H,ADD0;如果不是 99,R2 加 1,如果加到 99,R1 就置 0,重新加起。 MOV R1,#00H ACALL DELAY1 AJMP INT0SUB ADD0: INC R1 ACALL DELAY1 AJMP INT0SUB DEC0: MOV A,R1 22 JZ SETR1;如果 R1 为 0, R1 就置 99, DEC R1 ACALL DELAY1 AJMP INT0SUB SETR1: MOV R1,#63H ACALL DELAY1 AJMP INT0SUB BACK0: RETI ;=INT

47、1(回答时间 R2 调整程序)= INT1SUB:MOV A,R2 MOV B,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY JNB P3.4,INC1 JNB P3.5,DEC1 JNB P3.1,BACK1 AJMP INT1SUB INC1: MOV A,R2 CJNE A,#63H,ADD1 MOV R2,#00H ACALL DELAY1 AJMP INT1SUB ADD1: INC R2 ACALL DELAY1 AJMP INT1SUB DEC1: MOV A,R2 JZ SETR2 DEC R2 ACALL DE

48、LAY1 AJMP INT1SUB SETR2: MOV R2,#63H ACALL DELAY1 AJMP INT1SUB BACK1: RETI ;=倒计时程序(抢答倒计时和回答倒计时都跳到改程序)= REPEAT:MOV A,R2 ;使用锦囊时重新计时 MOV R6,A CLR RING COUNT: MOV R0,#00H;重置定时器中断次数 MOV TH1,#3CH MOV TL1,#0B0H;重置定时器 23 RECOUNT:MOV A,R6;R6 保存了倒计时的时间,之前先将抢答时间或回答时间 给 R6 MOV B,#0AH DIV AB;除十分出个位/十位 MOV 30H,A;

49、十位存于(30H) MOV 31H,B;个位存于(31H) MOV R5,30H;取十位 MOV R4,31H;取个位 MOV A,R6 SUBB A,#07H JNC LARGER;大于 5s 跳到 LARGER,小于等于 5s 会提醒 MOV A,R0 CJNE A,#0AH,FULL;1s 中 0.5s 向下运行 CLR RING AJMP CHECK FULL: CJNE A,#14H,CHECK;下面是 1s 的情况,响并显示号数并清 R0,重新 计 SETB RING MOV A,R6 JZ QUIT;计时完毕 MOV R0,#00H DEC R6;一秒标志减 1 AJMP CHECK LARGER: MOV A,R0 CJNE A,#14H,CHECK;如果 1s 向下运行,否者跳到查“停/显示“ DEC R6;计时一秒 R6 自动减 1 MOV R0,#00H CHECK: JNB P3.1,QUIT;如按下停止键退出 JNB OK,CHECKK ;只在回答倒计时才有效 AJMP NEXTT CHECKK:JNB

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

当前位置:首页 > 其他


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