基于51单片机八路抢答器课程设计Word文档格式.doc
《基于51单片机八路抢答器课程设计Word文档格式.doc》由会员分享,可在线阅读,更多相关《基于51单片机八路抢答器课程设计Word文档格式.doc(29页珍藏版)》请在冰豆网上搜索。
2.3.3复位电路的设计 12
2.3.4报警电路的设计 13
2.3.5显示电路的设计 13
2.3.6键盘扫描电路的设计 14
第3章系统软件设计 16
3.1系统主程序设计 16
3.2键盘扫描程序设计 17
3.3显示程序设计 18
第4章系统调试与软件仿真 19
4.1硬件调试 19
4.2KeiluVision2软件调试 19
4.3Proteus仿真 20
第5章总结 23
附录 23
附录一主程序清单 23
附录二单片机八路智能抢答器原理图 37
参考文献 38
第一章绪论
1.2课本例题仿真
例题4-6
在KeiluVision2软件中调试程序程序如下:
例题5-1
1.2选题背景、意义
当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未有的速度被单片机智能化控制所取代。
单片机具有体积小、功能强、成本低、应用面广等优点,可以说智能化控制与自动控制的核心就是单片机。
目前,抢答器已经作为一种必不可少的工具广泛应用于各种智力和知识竞赛场合,但一般的抢答器可靠性低,使用寿命短,介于这些不方便因素,此次设计提出了用AT89C51单片机为核心控制元件,设计一个简易的八路抢答器。
本方案以AT89C51单片机作为主控核心,与晶振、数码管、蜂鸣器等通过外围接口实现的八路抢答器,利用了单片机的延时电路、按键复位电路、时钟电路、定时器/计数器等,设计的八路抢答器不仅具有实时显示抢答选手的号码和抢答时间的功能,同时还利用汇编语言编程,使其实现复位、定时和报警的功能。
本次设计的系统实用性强、判断精确、操作简单、扩展功能强。
1.3八路抢答器的功能简介
此次设计的抢答器具有同步显示的功能,并且有蜂鸣器的辅助,使得整个设计更加完整。
在每次竞赛开始前,主持人读完比赛规则,可以对抢答器进行的时间进行预设。
时间设定按键组共有4个按键,其中一个键为抢答时间修改键,一个为回答时间按键,剩下的两个按键为加一和减一按键。
比赛开始,主持人读完题之后按下“开始键”,即抢答开始,蜂鸣器提示一次,此时数码管开始显示30s的倒计时;
直到有一个选手按下抢答键,对应的会在数码管上显示出该选手的编号和回答剩余的时间,同时蜂鸣器也会发出一次提示音,以示有人抢答本题;
如果在规定的30s时间内没有人做出抢答,则此题作废,开始新一轮的抢答。
在抢答和回答时间的最后5s,蜂鸣器都会给予报警提示。
在倒计时过程中,主持人可以随时按“停止键”结束本次回答或者抢答。
在主持未按下开始键,若果有人按下抢答键,则属于犯规抢答,此时,数码管上会显示违规选手的编号,同时蜂鸣器会以1s一次的频率发出警告。
在每次抢答前后,主持人都可以按下复位键让系统清零,此时数码管上会显示“FFF”。
第2章系统硬件设计
硬件电路部分是一个完整电路的关键部分,硬件性能的好坏关系到整个系统的性能。
本章节主要介绍了八路抢答器的硬件的选择及电路的设计。
2.1芯片的选择
芯片选择的原则是经济、寿命长、设计简单。
对此我们作了详细的论证。
2.1.1控制器的选择
控制器主要用于对显示、抢答、音乐、计分等模块进行控制。
控制器的选择有以下两种方案。
方案一:
采用FPGA(现场可编程门列阵)作为系统的控制器。
FPGA可以实现各种复杂的逻辑功能,规模大,密度高,它将所有器件集成在一块芯片上,减小了体积,提高了稳定性,并且可以应用EDA软件仿真、调试,易于进行功能扩展。
FPGA采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模实时系统的控制核心。
但由于本设计对数据处理的速度要求不高,FPGA的高速处理的优势得不到充分体现,并且由于其集成度高,使其成本偏高,同时由于芯片的引脚较多,实物硬件电路板布线复杂,加重了电路设计和实际焊接的工作。
方案二:
采用AT89C51作为系统控制器的CPU方案。
单片机算术运算功能强、软件编程灵活、自由度大,可以用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛。
基于以上分析,本次设计我采用方案二。
2.1.2显示模块的选择
显示模块主要是显示时间和编号。
考虑有以下两种显示方案。
使用液晶屏显示时间。
液晶显示屏(LCD)具有轻薄短小、低耗电量、无辐射危险,平面直角显示以及影像稳定不闪烁等优势,可视面积大,画面效果好,分辨率高,抗干扰能力强的特点。
但由于只需要显示时间和转向、相数这样的数字,信息量比较少,且液晶屏是以点阵的模式显示各种符号,需要利用控制芯片创建字符库,编程工作量大,控制器的资源占用较多,其成本也偏高。
在使用时,不能有静电干扰,否则易烧坏液晶显示芯片,不易维护。
使用传统的数码管显示。
数码管具有低能耗、低损耗、低压、寿命长、耐老化、防晒、防潮、防火、防高(低)温,对外界环境要求低,易于维护的优点,同时其精度高,称量快,精确可靠,操作简单。
数码显示是采用BCD编码显示数字,程序编译容易,资源占用较少。
根据以上的论述,我采用方案二。
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
1
电阻
220欧姆
8
8K
1K
瓷片电容
30pF
2
电解电容
10uF
晶振
12MHZ
按钮
CD4013
15
七段数码管
7SEG-MPX-CC
4
蜂鸣器
2.2AT89C51单片机简单概述
AT89C51单片机属于51系列单片机,本次设计所用的核心元件即为AT89C51,本节主要介绍了AT89C51的管脚功能。
2.2.151系列单片机的功能特性
MSC-51单片机是美国英特尔公司于1980年起推出的第二代产品。
与8084相比,8051的硬件结构和指令系统均有很大改进,可支持更大存储空间扩充了更多的I/O功能,速度提高了2-5倍。
1.主要特性:
(1)适于控制应用的8位CPU。
(2)扩展的逻辑处理能力。
(3)4KB片内程序存储空间。
其片外可寻址的范围为64KB,主要用于存放已编程的程序,也可存放一些原始数据和表格。
(4)128B的片内数据RAM。
其片外数据存储器的寻址范围为64KB用于存放可读写的数据,如运算的中间结果和最终结果。
(5)32根双向可单独寻址的输入输出线。
(6)2个16位定时/计数器,片内时钟发生器。
它可以设置为计数方式,对外部事件进行计数,也可以设置为定时方式进行定时。
(7)全双工异步发送/接收器。
(8)具有5个中断源,可编程为两个优先级的中断系统,它可以接收外部中断请求、定时器/计数器中断申请和串行口中断申请。
2.程序指令
AT89C51单片机的时序单位有四个,分别是节拍、状态、机器周期和指令周期。
节拍与状态:
我们把振荡脉冲的周期定义为节拍(P),振荡脉冲经过两个分频后即得到整个单片机工作系统的时钟信号,把时钟信号的周期定义为状态(S),这样一个状态就有两个节拍,前半个周期相应的节拍我们定义为P1,后半周期对应的节拍定义为P2。
机器周期:
AT89C51有固定的机器周期,规定一个机器周期有6个状态,分别表示为S1-S6,而一个状态包含两个节拍,那么一个机器周期就有12个节拍,即一个机器周期包含12个振荡脉冲,即机器周期就是振荡脉冲的12分频,如果使用12MHZ的时钟频率,一个机器周期就是1us。
2.2.2AT89C51单片机结构说明
AT89C51单片机的管脚图如图2-1所示:
图2-1AT89C51单片机管脚图
uP0口:
P0口是一组8位漏极开路双向I/O口,在访问外部存储器时用作8位低地址线和数据总线。
uP1口:
P1口是一个带内部上拉电阻的8位双向I/O口,向P1口写入“1”时,P1口被内部电路上拉为高电平,可用作输入口。
当作为输出口时,被外部拉低的P1口会因为内部上拉电阻的存在而输出电流。
uP2口:
P2口为一个内部上拉电阻的8位双向I/O口,当P2口被写“1”时,其管脚被内部电路上拉为高电平,可作输入口。
当作为输出口时,被外部拉低的P2口会因为内部上拉电阻的存在而输出电流。
在访问外部程序存储器和外部数据存储器时,P2口可作为地址总线的高八位地址线。
◆P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,当P3口写入“1”后,它们被内部电路上拉为高电平,并用作输入口。
当作为输出口时,被外部拉低的P3口会因为内部上拉电阻的存在而输出电流。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
u