声光显示智力竞赛抢答器设计

更新时间:2024-05-23 23:41:02 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

毕业设计报告(论文)

报告(论文)题目: 声光显示智力竞赛抢答器设计 作者所在系部: 机械工程系 作者所在专业: 测控技术与仪器 作者所在班级: B08122 作 者 姓 名 : 安志超 作 者 学 号 : 20084012219 指导教师姓名: 刘宝华 完 成 时 间 : 2012年6月

北华航天工业学院教务处制

北华航天工业学院毕业论文

摘 要

随着电子技术的飞速发展,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未有的速度被单片机智能化控制所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说智能化控制与自动控制的核心就是单片机。基于单片机的控制系统已广泛应用于各行业。

此次设计提出了以AT89C51单片机为核心控制元件,设计一个简易的八路抢答器,AT89C51单片机为主控核心,与晶振、数码管、蜂鸣器等构成八路抢答器,利用了单片机的延时电路、按键复位电路、时钟电路、定时器/计数器等设计的八路抢答器不仅具有实时显示抢答选手的号码和抢答时间的功能,同时还利用汇编语言编程,使其实现复位、定时和报警的功能。本次设计的系统实用性强、判断精确、操作简单、扩展功能强。

关键词: 八路 报警 AT89C51 抢答器 定时

I

北华航天工业学院毕业论文

Abstract

With the rapid development of electronic technology, intelligent control in the electronics field especially automation, traditional discrete components or control system of digital logic circuits, are at an unprecedented rate sheets replaced by chip computer intelligent control. MCU has small size, functions and advantages of low cost, wide application, it can be said of intelligent control and automation of core is a single chip. Based on single chip microcomputer control system has been widely used in various industries.

This design made has to AT89C51 single tablets machine for core control components , design a simple of eight - way preemptive answer device , AT89C51 single tablets machine mainly controlled core , and Crystal vibration , and digital tube , and bee Ming device , constitute eight - way preemptive answer device , using has single tablets machine of delay circuit , and press reset circuit , and clock circuit , and timer counter , design of eight - way preemptive answer device not only has real-time display preemptive answer players of number and preemptive answer time of function , while also using assembly language programming , makes its implementation reset , and scheduled and alarm of function . The design system of practical, accurate, simple operation and extended functions of judgment.

Key words : eight – way alarm AT89C51 preemptive answer time

II

北华航天工业学院毕业论文

目 录

摘要..........................................................................................................................................................................I Abstract.................................................................................................................................................................II

第1章 绪 论 .................................................................................................................................................... 1 1.1 选题背景、意义 .................................................................................................................................. 1

1.2 八路抢答器的功能简介 ...................................................................................................................... 1 第2章 系统硬件设计 ........................................................................................................................................ 2 2.1 芯片的选择 .......................................................................................................................................... 2 2.1.1 控制器的选择 .......................................................................................................................... 2 2.1.2 显示模块的选择 ...................................................................................................................... 2

2.1.3 键盘的选择 .............................................................................................................................. 3 2.2.4 芯片最终选择方案 .................................................................................................................. 3 2.2 AT89C51单片机简单概述 ................................................................................................................... 4

2.2.1 51系列单片机的功能特性 ..................................................................................................... 4 2.3 硬件的构成及功能 .............................................................................................................................. 6

2.3.1 抢答器的硬件图 ...................................................................................................................... 7 2.3.2 时钟频率控制电路 .................................................................................................................. 7 2.3.3 复位电路的设计 ...................................................................................................................... 8 2.3.4 报警电路的设计 ...................................................................................................................... 9 2.3.5 显示电路的设计 ...................................................................................................................... 9 2.3.6 键盘扫描电路的设计 ............................................................................................................ 10

第3章 系统软件设计..........................................................................................................................................12

3.1 系统主程序设计..................................................................................................................................12 3.2 键盘扫描程序设计..............................................................................................................................13 3.3 显示程序设计......................................................................................................................................14 第4章 系统调试与软件仿真...............................................................................................................................15

4.1 Keil uVision2软件调试....................................................................................................................15 4.2 Proteus仿真..........................................................................................................................................15 第5章 总 结....................................................................................................................................................19 致 谢....................................................................................................................................................................20 参 考 文 献..........................................................................................................................................................22 附 录....................................................................................................................................................................23

附录一 主程序清单....................................................................................................................................23 附录二 单片机八路智能抢答器原理图....................................................................................................33

北华航天工业学院毕业论文

第1章 绪 论

1.1 选题背景、意义

当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未有的速度被单片机智能化控制所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说智能化控制与自动控制的核心就是单片机。

目前,抢答器已经作为一种必不可少的工具广泛应用于各种智力和知识竞赛场合,但一般的抢答器可靠性低,使用寿命短,介于这些不方便因素,此次设计提出了用AT89C51单片机为核心控制元件,设计一个简易的八路抢答器。

本方案以AT89C51单片机作为主控核心,与晶振、数码管、蜂鸣器等通过外围接口实现的八路抢答器,利用了单片机的延时电路、按键复位电路、时钟电路、定时器/计数器等,设计的八路抢答器不仅具有实时显示抢答选手的号码和抢答时间的功能,同时还利用汇编语言编程,使其实现复位、定时和报警的功能。本次设计的系统实用性强、判断精确、操作简单、扩展功能强。

1.2 八路抢答器的功能简介

此次设计的抢答器具有同步显示的功能,并且有蜂鸣器的辅助,使得整个设计更加完整。

在每次竞赛开始前,主持人读完比赛规则,可以对抢答器进行的时间进行预设。时间设定按键组共有4个按键,其中一个键为抢答时间修改键,一个为回答时间按键,剩下的两个按键为加一和减一按键。

比赛开始,主持人读完题之后按下“开始键”,即抢答开始,蜂鸣器提示一次,此时数码管开始显示30s的倒计时;直到有一个选手按下抢答键,对应的会在数码管上显示出该选手的编号和回答剩余的时间,同时蜂鸣器也会发出一次提示音,以示有人抢答本题;如果在规定的30s时间内没有人做出抢答,则此题作废,开始新一轮的抢答。在抢答和回答时间的最后5s,蜂鸣器都会给予报警提示。在倒计时过程中,主持人可以随时按“停止键”结束本次回答或者抢答。

在主持未按下开始键,若果有人按下抢答键,则属于犯规抢答,此时,数码管上会显示违规选手的编号,同时蜂鸣器会以1s一次的频率发出警告。在每次抢答前后,主持人都可以按下复位键让系统清零,此时数码管上会显示“FFF”。

1

北华航天工业学院毕业论文

第2章 系统硬件设计

硬件电路部分是一个完整电路的关键部分,硬件性能的好坏关系到整个系统的性能。本章节主要介绍了八路抢答器的硬件的选择及电路的设计。

2.1 芯片的选择

芯片选择的原则是经济、寿命长、设计简单。对此我们作了详细的论证。

2.1.1 控制器的选择

控制器主要用于对显示、抢答、音乐、计分等模块进行控制。

采用AT89C51作为系统控制器的CPU方案。单片机算术运算功能强、软件编程灵活、自由度大,可以用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛。

2.1.2 显示模块的选择

显示模块主要是显示时间和编号。考虑有以下两种显示方案。

方案一:使用液晶屏显示时间。液晶显示屏(LCD)具有轻薄短小、低耗电量、无辐射危险,平面直角显示以及影像稳定不闪烁等优势,可视面积大,画面效果好,分辨率高,抗干扰能力强的特点。但由于只需要显示时间和转向、相数这样的数字,信息量比较少,且液晶屏是以点阵的模式显示各种符号,需要利用控制芯片创建字符库,编程工作量大,控制器的资源占用较多,其成本也偏高。在使用时,不能有静电干扰,否则易烧坏液晶显示芯片,不易维护。

方案二:使用传统的数码管显示。数码管具有低能耗、低损耗、低压、寿命长、耐老化、防晒、防潮、防火、防高(低)温,对外界环境要求低,易于维护的优点,同时其精度高,称量快,精确可靠,操作简单。数码显示是采用BCD编码显示数字,程序编译容易,资源占用较少。

根据以上的论述,我采用方案二。

2

北华航天工业学院毕业论文

2.1.3 键盘的选择

键盘是单片机不可缺少的输入设备,是实现人机对话的纽带。键盘按结构形式可以分为非编码键盘和编码键盘,前者用软件方法产生键码,而后者则用硬件方法来产生键码。在单片机中使用的都是非编码键盘,因为非编码键盘结构简单,成本低廉,非编码键盘的类型很多,常用的有独立式键盘,行列式键盘等。

方案一:独立式键盘

独立式键盘接口中使用几根I/O线,就有几个按键,这种类型的键盘,其按键比较少,且键盘中各按键的工作互不干扰。因此可以根据实际需要对键盘中的按键灵活编码。独立式键盘的缺点是需要占用比较多的I/O口线,当单片机应用系统键盘中需要的按键比较少或I/O口线比较富余时,可以采用这样类型的键盘。

方案二:行列式键盘

行列式键盘是用N条I/O线作为行线,M条I/O线作为列线组成的键盘,按键在行线和列线的每个交叉点上。这种形式的键盘结构,能够有效地提高单片机系统中I/O的利用率。

CPU对键盘的扫描可以采用取程序控制的随机方式,即只有在CPU空闲是时才去扫描键盘,响应操作人员的键盘输入,即利用单片机内部定时器每隔一定时间对键盘扫描一次,这样控制方式,不管键盘上有无键闭合,CPU总是定时的关心键盘状态。在大多数情况下,CPU对键盘可能进行空扫描。为了提高CPU的效率而又能及时响应键盘输入,可以采用中断方式,即CPU平时不必扫描键盘,只要当键盘上有键盘闭合时就产生中断请求,向CPU申请中断后,立即对键盘上有键盘进性扫描,识别闭合键,并做相应的处理。

根据以上的论述,我采用方案一。

2.2.4 芯片最终选择方案

根据上几节的论证,通过综合考虑,我们的芯片选择如表2-1。

表2-1 器件选择方案详单 器件名称 微处理器 电阻 规格型号 AT89C51 220欧姆 8K 数量 1 8 1

3

北华航天工业学院毕业论文

瓷片电容 电解电容 晶振 按钮 1K 30pF 10uF 12MHZ CD4013

1 2 1 1 15 器件名称 七段数码管 蜂鸣器 规格型号 7SEG-MPX-C 数量 4 1 2.2 AT89C51单片机简单概述

AT89C51单片机属于51系列单片机,本次设计所用的核心元件即为AT89C51,本节主要介绍了AT89C51的管脚功能。

2.2.1 51系列单片机的功能特性

MSC-51单片机是美国英特尔公司于1980年起推出的第二代产品。与8084相比,8051的硬件结构和指令系统均有很大改进,可支持更大存储空间扩充了更多的I/O功能,速度提高了2-5倍。

主要特性:

适于控制应用的8位CPU。 扩展的逻辑处理能力。

4KB片内程序存储空间。其片外可寻址的范围为64KB,主要用于存放已编程的程序,也可存放一些原始数据和表格。

128B的片内数据RAM。其片外数据存储器的寻址范围为64KB用于存放可读写的数据,如运算的中间结果和最终结果。

32根双向可单独寻址的输入输出线。

2个16位定时/计数器,片内时钟发生器。它可以设置为计数方式,对外部事件进行计数,也可以设置为定时方式进行定时。

全双工异步发送/接收器。

4

北华航天工业学院毕业论文

程序指令

AT89C51单片机的时序单位有四个,分别是节拍、状态、机器周期和指令周期。 节拍与状态:

我们把振荡脉冲的周期定义为节拍(P),振荡脉冲经过两个分频后即得到整个单片机工作系统的时钟信号,把时钟信号的周期定义为状态(S),这样一个状态就有两个节拍,前半个周期相应的节拍我们定义为P1,后半周期对应的节拍定义为P2。

机器周期:

AT89C51有固定的机器周期,规定一个机器周期有6个状态,分别表示为S1-S6,而一个状态包含两个节拍,那么一个机器周期就有12个节拍,即一个机器周期包含12个振荡脉冲,即机器周期就是振荡脉冲的12分频,如果使用12MHZ的时钟频率,一个机器周期就是1us。

2.2.2 AT89C51单片机结构说明

AT89C51单片机的管脚图如图2-1所示:

图2-1 AT89S51单片机管脚图

? VCC:电源端。 ? GND:接地端。

? P0口:P0口是一组8位漏极开路双向I/O口,在访问外部存储器时用作8位低地址线和数据总线。

? P1口: P1口是一个带内部上拉电阻的8位双向I/O口,向P1口写入“1”时,P1口被内部电路上拉为高电平,可用作输入口。当作为输出口时,被外部拉低的P1口会因为内部上拉电阻的存在而输出电流。

? P2口:P2口为一个内部上拉电阻的8位双向I/O口,当P2口被写“1”时,其管脚被内部电路上拉为高电平,可作输入口。当作为输出口时,被外部拉

5

北华航天工业学院毕业论文

低的P2口会因为内部上拉电阻的存在而输出电流。在访问外部程序存储器和外部数据存储器时,P2口可作为地址总线的高八位地址线。

◆ P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,当P3口写入“1”后,它们被内部电路上拉为高电平,并用作输入口。当作为输出口时,被外部拉低的P3口会因为内部上拉电阻的存在而输出电流。

P3口也可作为AT89C51的一些特殊功能口,如下表所示: 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(外部数据存储器读选通)

? RST:复位信号输入端。当振荡器工作时,RET引脚出现两个机器周期以上的高电平将使单片机复位。

? ALE/PROG:ALE是地址锁存允许信号。它的作用是把CPU从P0口分时输出的低8位地址锁存在锁存器中。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6,可用作外部时钟或定时。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。如果CPU在外部执行状态ALE禁止,置位无效。

? /PSEN:读片外程序存储器选通信号输出端。当执行外部程序存储器数据时,/PSEN将产生负脉冲作为外部程序存储器的读选通信号。在访问外部数据存储器和内部程序存储器时,/PSEN无效。

?

/EA/VPP:读片内与片外程序存储器的选择端。当/EA为高电平时,低

4KB的地址为片内程序存储器单元,高于4KB以上的地址为片外程序存储器单元;当/EA为低电平时,则只能读片外程序存储器。

? XTAL1:片内振荡电路反向放大器的输入端,采用外部时钟时该引脚接地。

XTAL2:片内振荡电路反向放大器的输出端,采用外部时钟时该引脚为振荡信号的输入端。

2.3 硬件的构成及功能

6

北华航天工业学院毕业论文

本节主要介绍了抢答器的硬件部分的设计,硬件部分的设计是比不可少的,也是此次设计的核心。

2.3.1 抢答器的硬件图

根据所要实现的功能,我们先大概将抢答器的硬件分为这几部分:CPU、声音电路、显示电路、定时电路、开始结束键输入和抢答按键输入。图如图2-2所示。

图2-2 抢答器硬件图

2.3.2 时钟频率控制电路

单片机必须在时钟的驱动下才能工作。AT89C51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。时钟频率控制电路如图2-3所示。

图2-3 外部振荡电路

7

北华航天工业学院毕业论文

内部时钟振荡器一般选用石英晶体振荡器。此电路在加电大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。电路中两个电容C1、C2选用30PF大小,其作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。

单片机在工作时,由内部振荡器产生或由外部直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。其大小是时钟信号频率的倒数。时钟频率选为12MHz。

2.3.3 复位电路的设计

在抢答器中复位是为定时做铺垫的,在抢答之前要复位,抢答完毕要复位,按了复位键之后LED显示F。单片机的复位引脚RST出现2个机器周期以上的高电平时即可实现复位,复位后单片机的各状态都恢复到初始化状态,其电路图如图2-4所示。

图2-4 复位电路

图中复位电路由按键和电解电容C3、电阻R1构成的按键及上电复位电路。由于单片机是高电平复位,所以当按键按下时,单片机的9脚RESET管脚处于高电平,此时单片机处于复位状态。当上电后由于电容缓慢充电,单片机的9脚电压逐步由高向低转化,经过一段时间后,单片机的9脚处于稳定的低电平状态,此时单片机上电复位完毕,系统程序从0000H开始执行。

在此设计中使用了硬件复位和软件复位两种。硬件复位可将寄存器及存储器的值都恢复到初始值。而在设计中,倒计时时间存在记忆功能,因此还设计了软复位功能。软复位实际上就是当程序执行完毕后,讲程序指针通过一条跳转指令让它跳转到该段程序的起始地址。

8

北华航天工业学院毕业论文

2.3.4 报警电路的设计

我们知道,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单片机某个管脚的高低电平,则在该管脚上就能产生一定频率的矩形波,接上蜂鸣器就能发出一定频率的声音,若利用延时程序控制高低电平的持续时间,就能改变输出频率,从而改变蜂鸣器发出的音调。在本设计中此电路起到报警功能。它会在第一位选手按下抢答按钮时响一次,以提示有人抢答本题,并且在该选手的60秒抢答过程中或30秒等待过程中剩余最后5秒时响起,以提示到此题结束还有5秒钟。

本次设计如图2-5所示,图中用到单片机的10、11和16管脚。10管脚具有读入功能,11管脚具有输出功能,而16管脚具有外部数据写功能,单片机通过内部定时器的操作实现交替变换的波形输出驱动蜂鸣器发生。

图2-5 报警电路

2.3.5 显示电路的设计

显示功能与硬件的关系极大,显示电路有两种选择,液晶屏显示和传统数码管显示。液晶屏具有轻薄、无辐射危险、可视面积大、分辨率高和抗干扰能力强的特点,但是由于显示信息少、编程工作量大和成本偏高。而数码管具有低耗能、低损耗、低压、寿命长和精确度高、操作简单的优点,本设计中采用的是4位七段数码管显示。数码管显示通常显示分为动态显示和静态显示。其中,静态显示的特点是显示稳定不闪烁,编程简单,显示亮度高,但占用I/O口多,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。而动态显示的稳定性虽没静态显示的好,编程复杂,但是相对静态显示而言占用的端口资源少。

本设计采用的是动态显示方法。通过查表法将值在数码管上显示出来。其中单片机的P0口为字型码输入端,P2口得低三位为字选段输入端。 4位七段数码管显示电路如图2-6。

9

北华航天工业学院毕业论文

图2-6 七段数码管显示电路

数码管有共阴极和共阳极两种接法。共阴极接法,各发光二极管的阴极连在一起并接地,当某一发光二极管的阳极输入高电平时,则该段发光;共阳极接法,各发光二极管的阳极连在一起并接电源,当某一发光二极管的阴极输入低电平时,则该段发光。

本设计采用4位一体的七段共阴极数码管,其中A-G段分别接到单片机的P0口,由单片机输出的P0口数据来决定段码值,位选码COM1,COM3,COM4分别接到单片机的P2.0,P2.1,P2.2,由单片机来决定当前该显示的是哪一位。在电路图中还有8个220欧姆的电阻分别连接在P0口上,用作P0口的上拉电阻,保证P0口没有数据输出时处于高电平状态。

2.3.6 键盘扫描电路的设计

键盘扫描电路由两部分组成:抢答电路和定时电路。

键盘是人机交互的主要设备,键盘电路分为独立式和矩阵式。其中,独立式键盘硬件电路简单,而且在程序设计上也不复杂,一般用在对硬件电路要求不高的简单电路中;矩阵式键盘硬件电路比独立式键盘电路复杂,而且程序设计繁琐,但它节省端口,适合于多按键电路。

本设计基于简单硬件电路要求的基础上,采用的是独立键盘的方式。

在定时电路的设计中,有1个抢答时间调整按键、1个回答时间调整按键、加一按键、减一按键和1个开始按键、1个结束按键。电路图如图2-7所示。

10

北华航天工业学院毕业论文

图2-7 定时电路 图2-8 抢答电路

图中和AT89C51芯片的12管脚连接的为抢答时间30s的调整按键,和13管脚连接的为回答时间60s的调整按键,与14管脚连接的为加一按键,与15管脚连接的为减一按键。这四个按键用于主持人对回答时间和抢答时间的调整。

开始按键与单片机的10管脚连接,停止按键与11管脚连接。这里用到了单片机10、11管脚复合功能中的IO端口功能,单片机通过读取10、11脚的P3.0、P3.1的IO端口值来判断当前是否处于抢答开始状态或抢答结束状态。当主持人按下开始键,抢答电路和定时电路将进入正常抢答状态;当回答完毕,主持人可以按下结束键停止计时。

抢答电路完成两个功能:一是分辨出选手按键先后,并锁存优先抢答者的编号,同时译码显示电路显示编号;二是其他选手操作无效。抢答电路如图2-8所示,图中8个抢答按键分别接入单片机的P1.0-P1.7端口,单片机通过读取P1.0-P1.7的值来判断当前输入的是8个抢答按键中的哪一个。如果主持人未按下开始按键判断到有人违规操作,蜂鸣器会发出警报声

11

北华航天工业学院毕业论文

第33.1 系统主程序设计

1. 系统主程序设计思路

章 系统软件设计

为了能达到公平、公正、合理的设计理念,应该在主持人发布抢答命令之前设定好抢答时间。当时间设定好了之后,主持人发布抢答命令。按下开始按键后,程序开始打开,定时中断开始倒计时,然后调用键盘扫描子程序,当扫描到有人按下了抢答键,马上关闭抢答中断计时器T1,调用显示程序,此时封锁抢答键盘,启动计时器T0。

2. 主程序框图

根据抢答器设计要求,其软件设计部分流程图如图3-1:

图3-1 主程序流程图

12

北华航天工业学院毕业论文

键盘扫描程序设计

抢答选手的抢答程序设计是本设计的关键。键盘扫描流程图如图3-2所示。

图3-2 键盘扫描程序流程图

133.2

北华航天工业学院毕业论文

3.3 显示程序设计

本次设计的显示部分在按下开始键时,后两个数码管显示倒计时间,以1s变换一次,并且调用延时程序,此时定时器采用中断方式,可以充分利用CPU。在有选手按下抢答键时,第一个数码管显示选手号,最后两个数码管显示倒计时,定时器同样采用中断方式。

除此之外,本设计数码管具有闪烁功能,当有违规抢答时,第一个数码管会显示选手号,后两个数码管会闪烁显示FF,一个周期为每秒1次。以示抢答无效,此时定时器采用定时中断的工作方式。

连接时段选信号接在P0口的P0.0~P0.6七个I/O口上,P1口是准双向I/O接口在输出驱动部分,所以在接电阻时选择接220Ω限流电阻。而在位选方面采用P2口的P2.0~P2.2,用单片机P2.2三个I/O口作为位选信号的输出口。

14

北华航天工业学院毕业论文

第4章 系统调试与软件仿真

系统调试包括硬件调试和软件调试,二者密不可分。我们设计好的硬件电路和软件程序必须经过联合调试才能验证其正确性。

4.1 Keil uVision2软件调试

软件调试是通过对用户程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。

本设计用到了Keil uVision2软件,首先打开Keil uVision2,将程序输入;然后进行调试,将程序中的语法错误和逻辑错误纠正,调试完毕后,创建HEX文件,HEX文件用于烧写芯片,将制定程序写入已设计好的电路板中,使其能根据我们的要求实现相应的功能;最后将HEX文件烧写入AT89C51芯片,运行电路,让其实现八路抢答的功能。如图4-1所示。

图4-1 Keil uVision软件

4.2 Proteus仿真

本设计用到Proteus仿真软件。首先将电路图根据设计要求在软件中准确地画出,即进行ISIS原理图设计,我们的仿真也是完全基于ISIS原理图模块下进行的,Proteus有两种截然不同的仿真方式:交互式仿真和基于图表的仿真,在本设计中我们用到的是交互式仿

15

北华航天工业学院毕业论文

真,用于校验所设计的电路是否能正常运行。如图4-2所示。

图4-2 八路抢答器原理图

然后将Keil uVision2生成的HEX文件链接到该中原理图,即设计文档的建立。如图4-3所示。

图4-3 建立设计文档

文档建立好之后,按Ctrl+F12开始运行,然后按F12,执行程序。下面是几组仿真图。

16

北华航天工业学院毕业论文

图4-4 复位显示FFF

图4-5 启动开始键,倒计时30s

图4-6 3号选手非法抢答

17

北华航天工业学院毕业论文

图4-7 5号选手正常抢答

18

北华航天工业学院毕业论文

第5章 总 结

此次设计主要以硬件系统为基础,硬件系统关系到电子产品的好坏,如系统的抗干扰性,安全性和可行性等,所以要合理地选择,合理地安排,尽量减少干扰,以提高系统性能。单片机是很容易受干扰的控制器,当采用外部晶振时,应尽量让其靠近单片机,以减少对其的干扰,防止程序的混乱现象。硬件系统的好坏很大部分在于经验,比如焊接是否干净利落,器件是否完好,操作是否规范等,所以我们要有好的动手能力。

而软件设计确实设计的核心,具有多样化,灵活性高,易移植等优点。首先我们要深深领会各指令的含义才能更加熟练应用。中断的合理利用可以有效减少对CPU的占用,更好的处理好其他功能。延时的应用会顺利地实现显示,鸣笛等功能,同时还可以去掉系统固有的不稳定性。定时的应用则比较实际,能实现我们所需的功能。软件的设计大部分采用模块化设计的方法以方便调试,并使其可读性大大增强,方便更改和移植。

在此次设计中,我总结了很多不足,同时也学到了很多新的知识,并且巩固了课堂知识,但最终设计的系统仍有不足,敬请提出!

19

北华航天工业学院毕业论文

致 谢

这次设计老师给我安排的时间可以说是比较充裕的,但也因为刚好是碰到毕业实习,所以又很多事要做。虽然如此,我还是很用心的做设计,我也完成并做好了设计报告,拿到题目,感觉太繁杂了,不知怎么下手,虽然这些知识以前都有接触过,但也只是分部分来接触,而这次的设计是要对大学四年一个综合,真的很难。也翻阅了一些资料,并自己事先编写好了程序,到了周一去到机房时候,把自己写的程序烧进去芯片里面,发现不行,那些数字闪动得非常厉害,自己检查了好久好久,但还是发现不了问题,之后问了同学,才知是我把段码搞错了,我用的是共阳位选,但数据表的段码我却用了共阴的段码,所以不能在数码管上正常显示。通过运用单片机设计八路抢答器程设计,发现自己的很多不足,自己知识的很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。

在这个过程中,我也曾经因为实践经验的缺乏失落过,也曾经仿真成功而热情高涨。特别是Proteus仿真软件的使用,不知是由于电脑的问题还是怎么,这个软件的安装就花了我很长的时间,好不容易安装好了,又对软件的使用一点都不熟悉,要从头开始学起,对着老师发给我们的芯片原理进行仿真画图,刚刚开始时候真的很难下手,因为是英文版的软件,很多东西都看不太明白,都是通过自己一个个来慢慢琢磨,才把仿真图画了出来,然后把写好的程序导入芯片,进行仿真,当看到程序正常运行的那一刻,心中真是有几分的喜悦。生活就是这样,汗水预示着结果也见证着收获。劳动是人类生存生活永恒不变的话题。虽然这只是一次的较简单的课程制作(八路抢答器),可是平心而论,也耗费了我不少的心血。

为完成这次课程设计我们确实很辛苦,但苦中仍有乐,和同学们相互帮助,这个工程确实很累, LED亮了起来,喇叭响起的是我一生以来最好听的声音,我们的心中就不免兴奋,不免激动。以前种种艰辛这时就变成了最甜美的回忆!这次学习给我留下了深刻的印象,使我受益匪浅。而且对于论文的总体构思也有了很多经验,相信自己经过这一次的训练与学习,对于今后会更加努力,做得最好。

对我而言,知识上的收获重要,精神上的丰收更加可喜。让我知道了学无止境的道理。我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你。挫折是一份财富,经历是一份拥有。这次课程设计必将成为我人生旅途上一个非常美好的回忆!

20

北华航天工业学院毕业论文

通过这次毕业设计,我才明白学习是一个长期积累的过程。

此次设计是在刘老师的指导下独立完成设计方案的。这次设计实验对于提高我的个人能力、自主学习精神和科学实验精神非常有益,为以后从事研制电子产品打下基础。

在论文完成之际,我要特别感谢我的指导老师的热情关怀和悉心指导。在我撰写论文的过程中了很多问题,,无论是在论文的选题、构思和知识结构方面,还是在论文的研究方法刘老师都耐心地指导。特别是他广博的学识,严谨的教学精神和超强的动手能力使我受益匪浅,在此,我表示真诚的感谢。

感谢刘老师对我的支持、鼓舞和教导,同时我也向所有关心、帮助过我的老师们说一声:老师,您辛苦了!

21

北华航天工业学院毕业论文

参 考 文 献

[1] 孙蕙芹.单片机实用教程.北京:中国电力出版社,2009

[2] 贾海瀛.数字电子技术与实训.北京:机械工业出版社,2008.1

[3] 李雅轩.模拟电子技术-2版.西安:西安电子科技大学出版社,2006.7 [4] 张永飞.电工基础.天津:天津大学出版社,2008.9

[5] 张立科.单片机典型模块设计实例导航.第一版.人民邮电出版社,1988 [6] 潘新民.微型计算机控制技术.北京:电子工业出版社,2003

[7] 李响初.基于MCS-51单片机的智能时钟控制系统设计.世界电子元件,2007,7:97~98 [8]51单片机原理与实践/高卫东,辛友顺,韩彦征编著.北京航空航天大学出版社,2008.1 [9]刘红玲、邵晓根,《微机原理与接口技术》,中国电力出版社,2006年第一版 [10]冯博琴,《微型计算机原理及接口技术》,清华大学出版社 [11]艾德才,《微型计算机原理与接口技术》,高等教育出版社 [12]沈美明,《IBM-PC汇编语言程序设计》,清华大学出版社 [13] 任致程,《经典集成电路400例》机械工业出版社,2002 [14] 薛栋梁,《单片机原理及应用》,中国水利水电出版社,2001 [15] 谢筑森,张辉等,《单片机开发与典型应用设计》,中国科学技术大学出版社 [16] Analog Device Corp.Data-Acquisition Databook,1991 [17] Joseph D.Greenfield:Practical Digital Design Using ICs

22

北华航天工业学院毕业论文

附 录

附录一 主程序清单

OK EQU 20H;抢答开始标志位 RING EQU 22H;响铃标志位 ORG 0000H AJMP MAIN ORG 0003H AJMP INT00 ORG 000BH AJMP T00

ORG 0013H AJMP INT11 ORG 001BH AJMP T11 ORG 0040H

MAIN:MOV R1,#30;设抢答时间30s

MOV R2,#60;设答题时间60s

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 CLR RING SETB TR1

SETB TR0;一开始运行定时器,开始显示FFF

23

北华航天工业学院毕业论文

LOOP:MOV R5,#0BH MOV R4,#0BH MOV R3,#0BH

ACALL DISPLAY;调用显示FFF子程序

JB P3.0,LOOP1;判断未开始答题,若有人按下抢答,跳到LOOP1非法抢答处理程序

ACALL DELAY

JB P3.0,LOOP1;判断已开始答题,则向下执行 ACALL BARK;蜂鸣器响 MOV A,R1

MOV R6,A;将R1中30s送入R6

SETB OK;复位,用于COUNT中判断是否查询抢答 MOV R7,#01H;读抢答键按下数,要求只读一次有用信号 MOV R3,#0AH;抢答时间指显示计时,不显示号数

AJMP COUNT;进入COUNT倒计时子程序,查询有效抢答程序 LOOP1: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 LOOP;非法抢答查询程序,若没有跳回主程序 FALSE1:MOV R3,#01H;1号选手违规

AJMP ERROR;跳转到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

24

北华航天工业学院毕业论文

FALSE6:MOV R3,#06H AJMP ERROR FALSE7:MOV R3,#07H AJMP ERROR FALSE8:MOV R3,#08H AJMP ERROR ;====中断==== INT00:MOV A,R1 MOV B,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH

ACALL DISPLAY;在时间LED上显示抢答时间30s JNB P3.4,INC0 JNB P3.5,DEC0 JNB P3.1,BACK0 AJMP INT00 INC0:MOV A,R1

CJNE A,#63H,ADD0;如果不是99,则跳转到ADD0加1程序,否则往下执行,置

0,重新加起

MOV R1,#00H ACALL DELAY AJMP INT00 ADD0:INC R1 ACALL DELAY AJMP INT00 DEC0:MOV A,R1

JZ SETT;如果R1中值为0,则跳到SETT程序,R1置99

DEC R1 ACALL DELAY AJMP INT00

SETT:MOV R1,#63H ACALL DELAY

25

北华航天工业学院毕业论文

AJMP INT00 BACK0:RETI INT11: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 INT11 INC1:MOV A,R2

CJNE A,#63H,ADD1 MOV R2,#00H ACALL DELAY AJMP INT11 ADD1:INC R2 ACALL DELAY AJMP INT11 DEC1:MOV A,R2 JZ SET1 DEC R2 ACALL DELAY AJMP INT11 ;====计时查询==== SET1:MOV R2,#63H ACALL DELAY AJMP INT11 BACK1:RETI

;====倒计时程序====

REPEAT:MOV A,R2;新一轮重新计时 MOV R6,A

26

北华航天工业学院毕业论文

CLR RING

COUNT:MOV R0,#00H;重置定时器中断次数 MOV TH1,#3CH

MOV TL1,#0B0H;重置定时器 RECOUNT:MOV A,R6;将回答时间60s给A MOV B,#0AH

DIV AB;除10,分出个位和十位 MOV 30H,A;十位存于30H MOV 31H,B;个位存于31H MOV R5,30H;取十位 MOV R4,31H;取个位 MOV A,R6 SUBB A,#07H

JNC MAX;大于5s跳转到MAX,小于5s则向下执行,蜂鸣器响 MOV A,R0

CJNE A,#0AH,FULL CLR RING

AJMP CHECK;回答60s倒计时

FULL:CJNE A,#14H,CHECK;下面是1s的情况,响并显示号数,并清R0 SETB RING MOV A,R6

JZ QUIT;计时完毕,跳转到QUIT,否则继续向下执行 MOV R0,#00H DEC R6;一秒减一 AJMP CHECK MAX:MOV A,R0

CJNE A,#14H,CHECK;如果剩1s向下运行,否则跳转到CHECK查询“停止”程

DEC R6 MOV R0,#00H

CHECK:JNB P3.1,QUIT;如果查询按下停止键,则退出;否则向下

JNB OK,CHECK1;判断是否在回答倒计时内,如果不在跳到CHECK1判断是否

开始新一轮;否则向下继续执行

AJMP NEXT1

27

北华航天工业学院毕业论文

CHECK1:JNB P3.0,REPEAT;判断是否重新开始 NEXT1:ACALL DISPLAY

JB OK,ACCOUT;判断是否是抢答倒计时,若是则跳转到ACCOUT查询抢答;否

则向下执行继续倒计时

AJMP RECOUNT ACCOUT:MOV A,36H

JNB ACC.0,TRUE1 JNB ACC.1,TRUE2 JNB ACC.2,TRUE3 JNB ACC.3,TRUE4 JNB ACC.4,TRUE5 JNB ACC.5,TRUE6 JNB ACC.6,TRUE7 JNB ACC.7,TRUE8 AJMP RECOUNT

QUIT:CLR OK;停止键按下程序

CLR RING AJMP LOOP

;=====正常抢答处理程序===== TRUE1: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

28

北华航天工业学院毕业论文

MOV R3,#03H CLR OK AJMP COUNT

TRUE4:ACALL BARK

MOV A,R2 MOV R6,A MOV R3,#04H CLR OK AJMP COUNT

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

;=====犯规抢答程序=====

29

北华航天工业学院毕业论文

ERROR: MOV R0,#00H

MOV TH1,#3CH MOV TL1,#0B0H

MOV 34H,R3;犯规号数暂存与(34H)

HERE: MOV A,R0

CJNE A,#06H,FLASH;0.3s向下运行->灭并停响 CLR RING MOV R3,#0AH MOV R4,#0AH

MOV R5,#0AH;三灯全灭 AJMP CHECK2

FLASH:CJNE A,#0CH,CHECK2;下面是0.8s的情况,响并显示号数并清R0

SETB RING MOV R0,#00H MOV R3,34H;取回号数 MOV R5,#0BH

MOV R4,#0BH;显示FF和号数 AJMP CHECK2

CHECK2: JNB P3.1,QUIT1

ACALL DISPLAY AJMP HERE

QUIT1:CLR RING

CLR OK AJMP MAIN

;====显示程序==== DISPLAY:MOV DPTR,#DAT1

MOV A,R3

MOVC A,@A+DPTR MOV P2,#0FEH MOV P0,A ACALL DELAY2 MOV DPTR,#DAT2 MOV A,R5

MOVC A,@A+DPTR

30

北华航天工业学院毕业论文

MOV P2,#0FDH MOV P0,A ACALL DELAY2 MOV A,R4

MOVC A,@A+DPTR MOV P2,#0FBH MOV P0,A ACALL DELAY2 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;第一个显示“0” ;====显示延时==== DELAY:MOV 35H,#08H DELAY3:ACALL DISPLAY

DJNZ 35H,DELAY3 RET

;====去抖动(按键延时4236个机器周期)==== DELAY1:MOV 32H,#12H DELAY4:MOV 33H,#0AFH DELAY5:DJNZ 33H,DELAY5

DJNZ 32H,DELAY4 RET

;====显示延时(延时4236个机器周期)==== DELAY2:MOV 32H,#43H DELAY6:MOV 33H,#1EH

MOV A,R7;每隔60-70个机器周期读一次P1口,全1为无效,继续读,有一个

不为1时,转到正常抢答处理

JNZ LOOP3;没读到有效数转到LOOP3继续循环 DELAY7:DJNZ 33H,DELAY7

DJNZ 32H,DELAY6 RET

LOOP3:MOV A,P1

CJNE A,#0FFH,LOOP5

31

本文来源:https://www.bwwdw.com/article/ugx7.html

Top