单片机控制数字抢答器的设计本科.doc

上传人:本田雅阁 文档编号:2051114 上传时间:2019-02-08 格式:DOC 页数:30 大小:2.06MB
返回 下载 相关 举报
单片机控制数字抢答器的设计本科.doc_第1页
第1页 / 共30页
单片机控制数字抢答器的设计本科.doc_第2页
第2页 / 共30页
单片机控制数字抢答器的设计本科.doc_第3页
第3页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《单片机控制数字抢答器的设计本科.doc》由会员分享,可在线阅读,更多相关《单片机控制数字抢答器的设计本科.doc(30页珍藏版)》请在三一文库上搜索。

1、1 安安徽徽机机电电职职业业技技术术学学院院 毕毕 业业 论论 文文 单片机控制数字抢答器的设计 系 (部) 电气工程系 专 业 机电一体化技术 班 级 机电 3112 班 2 摘摘 要要 本论文着重介绍了数码显示八路抢答器电路的组成、设计及功能,电路采用 51 系列常用集成电路进行设计。该抢答器除具有基本的抢答功能外,还具有定 时、计时和报警功能。主持人通过时间预设开关预设供抢答的时间,系统将完 成自动倒计时。若在规定的时间内有人抢答,则计时将自动停止;若在规定的 时间内无人抢答,则系统中的蜂鸣器将发响,提示主持人本轮抢答无效,实现 报警功能,若超过抢答时间则抢答无效。 该抢答器主要运用到了

2、编码器,译码器和锁存器:它采用 74LS148 来实现 抢答器的选号,采用 74LS279 芯片实现对号码的锁存,采用 74LS192 实现十进 制的减法计数,采用 555 芯片产生秒脉冲信号来共同实现倒计时功能,采用 74LS121 单稳态芯片来实现报警信号的输出。 通过课程设计提高和巩固了所学的专业知识,以及知识的综合应用和焊接 技术。 关键词关键词: 89C51系列单片机 八路抢答器 编码 译码 定时 报警 3 目目 录录 摘摘 要要2 2 引言引言5 5 第第 1 1 章章 绪绪 论论6 6 1.1 抢答器研究的背景及意义.6 1.2 抢答器的分类.6 1.3 设计的主要目标任务.7

3、第第 2 2 章章 硬件电路的设计硬件电路的设计8 8 2.1 功能要求 8 2.2 系统功能框图 8 2.3 硬件主要组成电路 8 2.4 电路工作的基本原理.8 2.5 主控电路的设计.8 2.5.1 关于 AT89C51 单片机8 2.5.2 振荡器电路的设计.10 2.5.3 复位电路的设计.11 2.6 按键电路的设计 .11 2.7 显示电路的设计 .12 2.7.1 LED 显示器件简介.12 2.7.2 显示部分的设计.13 2.8 报警电路的设计13 2.8.1 蜂鸣器的介绍.13 2.8.2 报警电路.14 2.9 总电路图.14 第第 3 3 章章 软软件件的的设设计计

4、1616 3.1 语言选择 16 3.2 软件总体设计 16 3.3系统程序17 第第 4 4 章章 仿真及调试仿真及调试2828 4 4.1 仿真软件介绍 .28 4.1.1 Proteus 软件介绍28 4.1.2 keil 软件介绍.28 4.2 仿真过程 .28 4.2.1 仿真过程的操作28 422 仿真结果29 谢谢 辞辞 3131 参参考考文文献献 3232 5 引引 言言 进入 21 世纪越来越来多的电子产品出现在人们的日常生活中,例如企业、 学校和电视台等单位常举办各种智力竞赛, 抢答记分器是必要设备。过去在举 行的各种竞赛中我们经常看到有抢答的环节,举办方多数采用让选手通过

5、举答 题板的方法判断选手的答题权,这在某种程度上会因为主持人的主观误断造成 比赛的不公平性。人们于是开始寻求一种能不依人的主观意愿来判断的设备来 规范比赛。因此,为了克服这种现象的惯性发生人们利用各种资源和条件设计 出很多的抢答器,从最初的简单抢答按钮,到后来的显示选手号的抢答器,再 到现在的数显抢答器,其功能在一天的趋于完善不但可以用来倒计时抢答,还 兼具报警,计分显示等等功能,有了这些更准确地仪器使得我们的竞赛变得更 加精彩纷呈,也使比赛更突显其公平公正的原则。 今天随着科技的不断进步抢答器的制作也更加追求精益求精,人们摆脱了 耗费很多元件仅来实现用指示灯和一些电路来实现简单的抢答功能,使

6、第一个 抢答的参赛者的编号能通过指示灯显示出来,避免不合理的现象发生。但这种 电路不易于扩展,而且当有更高要求是酒无法实现,例如参赛人数的增加。随 着数字电路的发展,数字抢答器诞生了,它易于扩展,可靠性好,集成度高, 而且费用低,功能更加多样话,是一种高效能的产品。而如今在市场上销售的 抢答器大多采用可编程逻辑元器件,或利用单片机技术进行设计,本次设计主 要利用常见的 74LS 系列集成电路芯片和 555 芯片,并通过划分功能模块进行 各个部分的设计,最后完成了八路智力竞赛抢答器的设计。 6 第第 1 1 章章 绪绪 论论 1.1 抢答器研究的背景及意义抢答器研究的背景及意义 无论是学校、工厂

7、、军队还是益智性电视节目,都会举办各种各样的智力竞 赛,都会用到抢答器。目前市场上已有各种各样的智力竞赛抢答器,但绝大多数 是早期设计的,以模拟电路、 数字电路或者模拟电路与数字电路相结合的产品。 这部分抢答器已相当成熟,但功能越多的电路相对来说就越复杂,且成本偏高,故 障高,显示方式简单(有的甚至没有显示电路) ,无法判断提前抢按按钮的行为, 不便于电路升级换代。近年来随着科技的飞速发展,单片机的应用正在不断地走 向深入,同时带动传统控制检测日新月异。本设计就是利用微电脑芯片(单片机) 作为核心部件进行逻辑控制及信号的产生,用单片机本身的优势使竞赛真正达到 公正、 公平、 公开。 1.21.

8、2 抢答器的抢答器的分类分类 1.2.1 电子抢答器 图 1-2 电子抢答器 电子抢答器的中心构造一般都是由抢答器由单片机以及外围电路组成, 其搭配的配件不同又分为,非语音非记分抢答器和语音记分抢答器。 按钮多适用于学校和企事业单位举行的简单的抢答活动。 非语音记分抢答器构造很简单,就是一个抢答器的主机和一个抢答按钮 组成,在抢答过程中选手是没有记分的显示屏。 语音记分抢答器是有一个抢答器的主机和主机的显示屏和选手的记分显 示屏。 1.2.2 电脑抢答器 电脑抢答器又分为无线电脑抢答器和有线电脑抢答器。无线电脑抢答器的 构成是由:主机和抢答器专用的软件和无线按钮。 7 图 1-2 无线电脑抢答

9、器 和有线电脑抢答器 无线电脑抢答器利用电脑和投影仪,可以把抢答气氛活跃起来,一般多 使用于电台等大型的活动 有线电脑抢答器也是由主机和电脑配合起来,电脑在和投影仪配合起来, 利用专门研发的配套的抢答器软件,可以十分完美的表现抢答的气氛。 1.31.3 设计的主要目标任务设计的主要目标任务 通过此次设计,理解抢答器的基本原理,掌握单片机在该系统中的应用,掌 握 LED 显示的工作原理,掌握 89C51 的接口分配,并能设计出合理的电原理图, 并仿真成功。 8 第第 2 2 章章 硬件电路的设计硬件电路的设计 2.12.1 功能要求功能要求 本次设计要求在熟练使用 51 系列单片机的基础上,设计

10、出相关的外围电路, 并利用所选用的常用芯片设计出抢答器,要求可通过软件实现调整抢答器的答 题或抢答时间,LED 显示器可显示抢答或答题时间的倒计时,在时间快要用尽 或者有人犯规的情况下,蜂鸣器可发出声音报警。 2.22.2 系统功能框图系统功能框图 图 2-2 系统功能框图 开始键按下后,抢答倒计时开始,同时系统扫描选手抢答按钮,选手按下 按钮,显示器显示选手号,同时进入答题计时,答题计时结束后,系统自动复 位,显示器显示“FFF”。 2.32.3 硬件主要组成电路硬件主要组成电路 硬件电路主要由 AT89C51 单片机及其外围电路(包括复位电路、外部晶振) 按键电路、显示电路、蜂鸣器报警电路

11、。 2.42.4 电路工作的基本原理电路工作的基本原理 整个电路由按键控制,当按下相应的按键时,单片机开始工作,抢答倒计 时开始,同时系统扫描选手抢答按钮,选手按下按钮,显示器显示选手号,同 时进入答题计时,答题计时结束后,系统自动复位,显示器显示“FFF”。 2.52.5 主控电路的设计主控电路的设计 2.5.12.5.1 关于关于 AT89C51AT89C51 单片机单片机 AT89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器( FPEROM Falsh Programmable and Erasable Read Only Memory)的低电压,高性 能 CMOS 8 位微处

12、理器,俗称单片机。该器件采用ATMEL 高密度非易失存储 器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将 9 多功能 8 位 CPU 和闪烁存储器组合在单个芯片中, ATMEL 的 AT89C51 是一 种高效微控制器。 AT89C51 单片机为很多嵌入式控制系统提供了一种灵活性 高且价廉的方案 。 其主要特性是与 MCS-51 兼容、4K 字节可编程闪烁存储器、 寿命是 1000 写/擦循环、数据保留时间 10 年、全静态工作 0Hz-24MHz、三级程序 存储器锁定、 1288 位内部 RAM、32 可编程 I/O 线、两个 16 位定时器/计 数器、5 个中断

13、源、可编程串行通道、低功耗的闲置和掉电模式、片内振荡 器和时钟电路,其中由于其具有 32 个 I/O 口,可以满足此次设计的需要, 不用在其外部扩展 I/O 口。 管脚说明: VCC:供电电压。 GND:接地。 P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8 个 TTL 门 电流。当 P1 口的管脚第一次写 1 时,被定义为高阻输入。 P0 能够用于外 部程序数据存储器,它可以被定义为数据 /地址的第八位。在 FIASH 编程时, P0 口作为原码输入口,当 FIASH 进行校验时, P0 输出原码,此时 P0 外部 必须被拉高。 P1 口:P1 口是一个内部提供上拉

14、电阻的 8 位双向 I/O 口,P1 口缓冲 器能接收输出 4 个 TTL 门电流。P1 口管脚写入 1 后,被内部上拉为高,可 用作输入, P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的 缘故。在 FLASH 编程和校验时, P1 口作为第八位地址接收 。 P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可 接收,输出 4 个 TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电 阻拉高,且作为输入。并因此作为输入时, P2 口的管脚被外部拉低,将输 出电流。这是由于内部上拉的缘故。 P2 口当用于外部程序存储器或 16 位 地址外部数据存

15、储器进行存取时, P2 口输出地址的高八位。在给出地址 “1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时, P2 口输出其特殊功能寄存器的内容。 P2 口在 FLASH 编程和校验时接收高八 位地址信号和控制信号。 P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输 入。 P3 口也可作为 AT89C51 的一些特殊功能口,如下表所示: 各管脚备选功能 : 10 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3 口同时为闪烁编程和编程校验接收一些控

16、制信号 。 RST:复位输入。当振荡器复位器件时,要保持RST 脚两个机器周期的 高电平时间。 /EA/VPP:当/EA 保持低电平时,则此期间 访问外部程序存储器 (0000H-FFFFH),不管是否有内部程序存储器。加密方式1 时,/EA 将内部 锁定为 RESET;当/EA 端保持高电平时,此间 访问内部程序存储器。在 FLASH 编程期间,此引脚也用于施加 12V 编程电源( VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 2.5.22.5.2 振荡器电路的设计振荡器电路的设计 晶振是晶体振荡器的简称,在电气上它可以等效成一个

17、电容和一个电阻并 联再串联一个电容的二端网络,电工学上这个网络有两个谐振点,以频率的高 低分其中较低的频率是串联谐振,较高的频率是并联谐振。由于晶体自身的特 性致使这两个频率的距离相当的接近,在这个极窄的频率范围内,晶振等效为 一个电感,所以只要晶振的两端并联上合适的电容它就会组成并联谐振电路。 这个并联谐振电路加到一个负反馈电路中就可以构成正弦波振荡电路,由于晶 振等效为电感的频率范围很窄,所以即使其他元件的参数变化很大,这个振荡 器的频率也不会有很大的变化。 晶振有一个重要的参数,那就是负载电容值,选择与负载电容值相等的并 联电容,就可以得到晶振标称的谐振频率。 一般的晶振振荡电路都是在一

18、个反相放大器(注意是放大器不是反相器) 的两端接入晶振,再有两个电容分别接到晶振的两端,每个电容的另一端再接 到地,这两个电容串联的容量值就应该等于负载电容,请注意一般 IC 的引脚都 有等效输入电容,这个不能忽略。 一般的晶振的负载电容为 15p 或 30p,如果再考虑元件引脚的等效输入电 容,则两个 22p 的电容构成晶振的振荡电路就是比较好的选择。 11 图 2-5-2 振荡电路 2.5.32.5.3 复位电路的设计复位电路的设计 复位即是在复位端加不小于指定宽度的低电平(低电平复位)或高电平(高电 平复位)信号使单片机的硬件处于初始状态。以 MCS-51 系列单片机为例,复位 端为 R

19、ST/Vpd,高电平复位。在振荡电路运行时,使 RST 引脚至少保持两个机器 周期(24 个振荡周期)高电平,实现一次复位动作。CPU 响应内部复位,将 ALE 和 PSEN 引脚置为输入方式,并在 RST 端变低以前重复执行内部复位。 图 2-5-3 复位电路 2 2. .6 6 按按键键电电路路的的设设计计 键盘有两类:一个是独立键盘,另一个是矩阵键盘。 独立键盘的特点是每个按键单独占用一个I/O 口,每个按键工作不会 影响其他的 I/O 口线的状态,多用于按键不多的场合。可采用JNB 或 JB 来 查询是哪一个按键按下,并转向相应的功能处理程序。 当按键较多时,就用到了矩阵键盘。矩阵键盘

20、又称行列键盘,它是用四 条 I/O 线作为行线,四条 I/O 线作为列线组成的键盘,在行线和列线的每个 交叉点上设置一个按键,这样键盘上按键的个数就是4*4 个。这种行列式 键盘结构能够有效地提高单片机系统中I/O 口的利用率。 但由于本设计的按键不多,所以我们采用独立键盘,编写程序也比较简 单,运行速度较快。 12 图 2-6 选手抢答按键 2 2. .7 7 显显示示电电路路的的设设计计 2 2. .7 7. .1 1 LEDLED 显示器件简介显示器件简介 数码管是一种半导体发光器件,其基本单元是发光二极管。 (1)数码管的分类 : 数码管按段数分为七段数码管和八段数码管,八段数码管比七

21、段数码管 多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分 为 1 位、2 位、4 位等等数码管;按发光二极管单元连接方式分为共阳极数 码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形 成公共阳极 (COM)的数码管。共阳数码管在应用时应将公共极COM 接到 +5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一 字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极 管的阴极接到一起形成公共阴极 (COM)的数码管。共阴数码管在应用时应将 公共极 COM 接到地线 GND 上,当某一字段发光二极管的阳极为高电平时,相 应字段就点亮

22、。当某一字段的阳极为低电平时,相应字段就不亮。 (2)数码管的驱动方式 : 数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显 示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和 动态式两类。 本设计由于只用两个数码管,所以采用静态显示驱动,这里只 介绍静态显示驱动。 静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每 一个段码都由一个单片机的 I/O 端口进行驱动,或者使用如 BCD 码二-十进 制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是 占用 I/O 端口多,如驱动 5 个数码管静态显示则需要 5840 根 I/O 端口 来驱

23、动,一个 89C51 单片机可用的 I/O 端口才 32 个,实际应用时必须增加 译码驱动器进行驱动,增加了硬件 。 13 2.7.22.7.2 显示部分的设计显示部分的设计 显示功能与硬件关系极大,当硬件固定后,如何在不引起操作者误解的 前提下提供尽可能丰富的信息,全靠软件来解决。 图 2-7-2 显示电路(采用共阴极 LED 数码管) 2.82.8 报警电路的设计报警电路的设计 2.8.12.8.1 蜂鸣器的介绍蜂鸣器的介绍 蜂鸣器的作用 : 蜂鸣器是一种一体化结构的电子讯响器,采用直流电 压供电,广泛应用于计算机、打印机、复印机、 报警器、电子玩具、汽车 电子设备、电话机、定时器等 电子

24、产品中作发声器件。 蜂鸣器的分类: (1)压电式蜂鸣器 压电式蜂鸣器主要由 多谐振荡器 、压电蜂鸣片、阻 抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二 极管。 多谐振荡器由 晶体管或集成电路构成。当接通电源后( 1.515V 直流 工作电压) ,多谐振荡器起振 ,输出 1.52.5kHZ 的音频信号,阻抗匹配器推 动压电蜂鸣片发声。 压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。在陶瓷片的两面 镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。 (2)电磁式蜂鸣器 电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片 及外壳等组成。 接通电源后,振荡器产生的音频信号

25、电流通过电磁线圈,使电磁线圈产 生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。 2 2. .8 8. .2 2 报报警警电电路路 14 图 2-8-2 报警电路 2 2. .9 9 总总电电路路图图 图 2-9 总电路图 15 第第 3 3 章章 软软件件的的设设计计 3 3. .1 1 语语言言选选择择 在目前单片机的发展中,其编程语言主要有C 语言和汇编语言。 C 语 言是高级语言,编写起来比较程序比较简便且易维护,汇编语言介于机器语 言和高级语言之间,更接近于硬件,但编写起来比较冗长。但介于本次程序 不是太复杂,本人较 C 语言来说更熟悉汇编,所以本次设计的程序采用汇编

26、 语言来编写。 3 3. .2 2 软软件件总总体体设设计计 本程序采用子程序设计,在主程序中调用子程序来完成特定的功能,这 样程序会通俗易懂,同时也有利于程序的调试和修改。 本程序的程序流程图如下: 图 3-2 软件的总体设计 3.33.3系统程序系统程序 P1.0 为开始抢答,P1.7 为停止,p1.1-p1.6 为六路抢答输入 数码管段选 P0 口,位选 P2 口,蜂鸣器输出为 P3.6 口。 16 OK EQU 20H;抢答开始标志位 RING EQU 22H;响铃标志位 ORG 0000H AJMP MAIN ORG 0003H AJMP INT0SUB ORG 000BH AJMP

27、 T0INT ORG 0013H AJMP INT1SUB ORG 001BH AJMP T1INT ORG 0040H MAIN: MOV R1,#0FH; 初设抢答时间为 15s MOV R2,#0AH; 初设答题时间为 10s MOV TMOD,#11H; 设置未定时器/模式 1 MOV TH0,#0F0H MOV 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

28、 CLR RING SETB TR1 SETB TR0; 一开始就运行定时器,以开始显示 FFF.如果想重新计数,重置 TH1/TL1 就可以了 查询程序: START: MOV R5,#0BH MOV R4,#0BH MOV R3,#0BH 17 ACALL DISPLAY; 未开始抢答时候显示 FFF JB P3.1,NEXT ACALL DELAY JB P3.1,NEXT;去抖动,如果“开始键“按下就向下执行,否者跳到 非法抢答查询 ACALL BARK;按键发声 MOV A,R1 MOV R6,A; 送 R1-R6,因为 R1 中保存了抢答时间 SETB OK; 抢答标志位,用于 C

29、OUNT 只程序中判断是否查询抢答 MOV R3,0AH; 抢答只显示计时,灭号数 AJMP COUNT;进入倒计时程序,“查询有效抢答的程序“在 COUNT 里 面 NEXT: JNB P1.0,FALSE1 JNB P1.1,FALSE2 JNB 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 非法抢答处理程序: FALSE1: ACALL BARK; 按键发声 MOV R3,#01H AJMP ERROR FALSE2: ACALL

30、 BARK MOV R3,#02H AJMP ERROR FALSE3: ACALL BARK MOV R3,#03H AJMP ERROR FALSE4: ACALL BARK MOV R3,#04H AJMP ERROR 18 FALSE5: ACALL BARK MOV R3,#05H AJMP ERROR FALSE6: ACALL BARK MOV R3,#06H AJMP ERROR FALSE7:ACALL BARK MOV R3,#07H AJMP ERROR FALSE8:ACALL BARK MOV R3,#08H AJMP ERROR INT0(抢答时间 R1 调整程序)

31、: INT0SUB:MOV A,R1 MOV B,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY;先在两个时间 LED 上显示 R1 JNB P3.2,INC0; P3.2 为+1s 键,如按下跳到 INCO JNB P3.3,DEC0; P3.3 为-1s 键,如按下跳到 DECO JNB P3.0,BACK0; P3.0 为确定键,如按下跳到 BACKO AJMP INT0SUB INC0: MOV A,R1 CJNE A,#63H,ADD0; 如果不是 99,R2 加 1,如果加到 99 了,R1 就置 0,重新加起 MOV

32、 R1,#00H ACALL DELAY1 AJMP INT0SUB ADD0: INC R1 ACALL DELAY1 AJMP INT0SUB DEC0: MOV A,R1 19 JZ SETR1;如果 R1 为 0, R1 就置 99, DEC R1 ACALL DELAY1 AJMP INT0SUB SETR1: MOV R1,#63H ACALL DELAY1 AJMP INT0SUB BACK0: RETI INT1(回答时间 R2 调整程序): INT1SUB:MOV A,R2 MOV B,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH ACA

33、LL DISPLAY JNB P3.2,INC1 JNB P3.3,DEC1 JNB P3.0,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 DELAY1 AJMP INT1SUB SETR2: MOV R2,#63H 20 ACALL DELAY1 AJMP INT1SUB BACK1: RETI 倒计时程序(抢

34、答倒计时和回答倒计时都跳到该程序): COUNT: MOV R0,#00H; 重置定时器中断次数 MOV TH1,#3CH MOV TL1,#0B0H; 重置定时器 RECOUNT: MOV A,R6; R6 保存了倒计时的时间,之前先将抢答时间或回答时 间给 R6 MOV B,#0AH DIV AB; 除十分出个位/十位 MOV 30H,A; 十位存于(30H) MOV 31H,B; 个位存于(31H) MOV R5,30H; 取十位 MOV R4,31H; 取个位 MOV A,R6 SUBB A,#07H JNC LARGER;大于 5s 跳到 LARGER,小于等于 5s 会提醒 MOV

35、 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 21 CHECK: JNB P3.0,QUIT

36、; 如按下停止键退出 ACALL DISPLAY JB OK,ACCOUT; 如果是抢答倒计时,如是则查询抢答,否者跳过 查询继续倒数(这里起到锁抢答作用) AJMP RECOUNT ACCOUT: JNB P1.0,TRUE1 JNB P1.1,TRUE2 JNB P1.2,TRUE3 JNB P1.3,TRUE4 JNB P1.4,TRUE5 JNB P1.5,TRUE6 JNB P1.6,TRUE7 JNB P1.7,TRUE8 AJMP RECOUNT QUIT: CLR OK; 如果按下了“停止键“执行的程序 CLR RING AJMP START 正常抢答处理程序: TRUE1:

37、ACALL BARK; 按键发声 MOV A,R2 MOV R6,A; 抢答时间 R2 送 R6 MOV R3,#01H CLR OK; 因为答题的计时不再查询抢答,所以就锁了抢答 AJMP COUNT TRUE2:ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#02H CLR OK AJMP COUNT TRUE3:ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#03H 22 CLR OK AJMP COUNT TRUE4:ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#04H CLR OK AJMP COU

38、NT TRUE5: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#05H CLR OK AJMP COUNT TRUE6: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#06H CLR OK AJMP COUNT TRUE7: ACALL BARK MOV A,R2 MOV R6,A MOV R3,#07H CLR OK AJMP COUNT TRUE8: ACALL BARK MOV A,R2 MOV R6,A MOV R3,#08H CLR OK AJMP COUNT ;犯规抢答程序; ERROR: MOV R0,#00H 23

39、MOV TH1,#3CH MOV TL1,#0B0H MOV 34H,R3; 犯规号数暂存与(34H) HERE: MOV A,R0 CJNE A,#0AH,FLASH; 0.5s 向下运行-灭并停响 CLR RING MOV R3,#0AH MOV R4,#0AH MOV R5,#0AH; 三灯全灭 AJMP CHECK1 FLASH: CJNE A,#14H,CHECK1; 下面系 1s 的情况,响并显示号数并清 R0, 重新计 SETB RING MOV R0,#00H MOV R3,34H; 取回号数 MOV R5,#0BH MOV R4,#0BH; 显示 FF 和号数 AJMP CH

40、ECK1 CHECK1: JNB P3.0,QUIT1 ACALL DISPLAY AJMP HERE QUIT1: CLR RING CLR OK AJMP START 显示程序: DISPLAY:MOV DPTR,#DAT1; 查表显示程序,利用 P0 口做段选码口输出/P2 低三位做位选码输出 MOV A,R5 MOVC A,A+DPTR MOV P2,#01H MOV P0,A ACALL DELAY MOV DPTR,#DAT2 MOV A,R4 24 MOVC A,A+DPTR MOV P2,#02H MOV P0,A ACALL DELAY MOV A,R3 MOVC A,A+D

41、PTR MOV P2,#04H MOV P0,A ACALL DELAY RET DAT1:DB 00H,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H ;“灭“,“1“,“2“,“3“,“4“,“5“,“6“,“7“,“8“,“9“,“灭“,“F“ DAT2:DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H DELAY1: MOV 35H,#08H LOOP0: ACALL DISPLAY DJNZ 35H,LOOP0 RET ;延时(显示和去抖动用到):; DELAY: MOV 32H,#12H L

42、OOP: MOV 33H,#0AFH LOOP1: DJNZ 33H,LOOP1 DJNZ 32H,LOOP RET 发声程序: BARK: SETB RING ACALL DELAY1 ACALL DELAY1 CLR RING; 按键发声 RET ;TO 溢出中断(响铃程序):; T0INT:MOV TH0,#0ECH MOV TL0,#0FFH JNB RING,OUT CPL P3.6 ; RING 标志位为 1 时候 P3.6 口不短取反使喇叭发出一定频 25 率的声音 OUT:RETI ;T1 溢出中断(计时程序):; T1INT: MOV TH1,#3CH MOV TL1,#0B

43、0H INC R0 RETI END 26 第第 4 4 章章 仿真及调试仿真及调试 4.14.1 仿真软件介绍仿真软件介绍 4.1.14.1.1 ProteusProteus 软件介绍软件介绍 Proteus(海神)的 ISIS 是一款 Labcenter 出品的电路分析实物仿真系统,可 仿真各种电路和 IC,并支持单片机,元件库齐全,使用方便,是不可多得的专 业的单片机软件仿真系统。 该软件的特点: (1) 全部满足我们提出的单片机软件仿真系统的标准,并在同类产品中具 有明显的优势。 (2)具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的 仿真、RS 一 232 动态仿真、1

44、 C 调试器、SPI 调试器、键盘和 LCD 系统仿真的 功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。 目前支持 的单片机类型有:68000 系列、8051 系列、AVR 系列、PIC12 系列、PIC16 系列、 PIC18 系列、Z80 系列、HC11 系列以及各种外围芯片。 支持大量的存储器和 外围芯片。总之该软件是一款集单片机和 SPICE 分析于一身的仿真软件,功能 极其强大 ,可仿真 51、AVR、PIC。 Proteus 与其它单片机仿真软件不同的是,它不仅能仿真单片机 CPU 的工 作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。 因此在仿真和

45、程序调试时,关心的不再是某些语句执行时单片机寄存器和存储 器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。 对于这样的仿真实验,从某种意义上讲,是弥补了实验和工程应用间脱节的矛 盾和现象。 4.1.24.1.2 keilkeil 软件介绍软件介绍 Keil 软件是目前最流行开发 MCS-51 系列单片 机的软件,这从近年来各 仿真机厂商纷纷宣布全面支持 Keil 即可看出。Keil 提供了包括 C 编译器、 宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案, 通 过一个集成开发环境(uVision)将这些部份组合在一起。 4.24.2 仿真过程仿真过程

46、4.2.14.2.1 仿真过程的操作仿真过程的操作: (1)在 Protues 中画出系统电路图; (2)将程序在 keil 中编译并生成 hex 文件。 (3)把在 keil 中编译生成的 HEX 文件载入 AT89C51 芯片中; (4)运行仿真。 4 42 22 2 仿真结果仿真结果: 27 (1)系统初始状态 图 4-2-2 仿真系统初始状态 (2)抢答开始后,抢答倒计时状态 图 4-2-2 抢答倒计时 11 秒时的系统状态 (3)有人抢答后答题倒计时状态 28 图 4-2-2 为 5 号选手抢到该题且答题倒计时 7 秒时的系统状态 (4)有人犯规状态 图 4-2-2 为 8 号选手犯

47、规 29 谢谢 辞辞 岁月流逝,时光如梭,似乎还是初入 大学的样子,转眼毕业论文已近尾 声。其实时光也并不如梭, 三年虽然短暂,但是日子充实而愉快,当自己终 于从论文中解脱出来而长长吁一口气的时候,却发现毕业已转瞬及至。一念 至此,竟觉得有些恍惚,所谓浮云白日、白驹过隙也便是如此这般了罢。 从初入校门到即将离开,两年好像什么也没变,但是已非从前。太多的 感悟太多的人与人之间交流心灵的碰撞促进了我的成长。人的成长的过程绝 非自己放任而成,这一路上包含了太多太多无私的帮助,热情的鼓励,坚定 的支持。而在毕业之际,我还是要向他们一一表达感激之情。 首先应该感谢的是我的家人。感谢我的父母,谢谢你们赋予

48、我生命和健 康的体格,使我有机会经历这美好而精彩的人生;谢谢你们的无私的爱和奉 献,在我的一步步成长中你们日益苍老,永远不变的却是那关注的眼神和无 论何时都在身后的坚定的支持和鼓励;谢谢你们的尊重,使我更好的选择自 己人生要走的道路。 我要感谢,非常感谢我的导师 白金老师。她为人随和热情,治学严谨细 心。在闲聊中她总是能像知心朋友一样鼓励 我,在论文的写作和措辞等方 面她也总会以 “专业标准”严格要求你,从选题、定题开始,一直到最后论 文的反复修改、润色, 白老师始终认真负责地给予我深刻而细致地指导,帮 助我开拓研究思路,精心点拨、热忱鼓励。正是 白老师的无私帮助与热忱 鼓励,我的毕业论文才能

49、够得以顺利完成,谢谢 白老师 人生并不是一条宽阔平坦的大道,总是充满了坎坷与挑战,总会有崎岖和 荆棘丛生的荒野。然而生命是一个过程,生活是一种态度,只要我们永怀一颗 感恩的心,以一种乐观的态度,永远对生命充满希望,那么不论什么境况,慢 慢体味细细品尝,总能感悟出其中的美意;只要我们用一颗豁达且认真的态度 对待,那么就永远有一缕曙光在我们的前方,照亮我们前行的路。即将开始新 的历程,对我的后来者们予以祝福,且行且歌且珍惜。 参参考考文文献献 30 1 曹克澄.单片机原理及应用.机械工业出版社.2003年12月第2版 2 杨欣,王玉凤,刘湘黔.51单片机从零开始.清华大学出版社.2008年1月第1 版 3 郭勇.Protel DXP 2004 SP2印制电路板设计教程.机械工业出版社.2009年 月 第1版 4 谈世哲.PROTEL DXP2004 电路设计基础与典型范例.电子工业出版社.2007 年 9 月第 1 版 5 王为青,程国钢.单片机 Keil Cx51 应用开发

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

当前位置:首页 > 其他


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