单片机多路抢答器设计.docx
- 文档编号:9049971
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:17
- 大小:548.05KB
单片机多路抢答器设计.docx
《单片机多路抢答器设计.docx》由会员分享,可在线阅读,更多相关《单片机多路抢答器设计.docx(17页珍藏版)》请在冰豆网上搜索。
单片机多路抢答器设计
一、方案比较
1、纯数字逻辑电路,基本可以排除方案的,主要缺点是缺乏灵活性,消耗的精力是最大的,发现需要修改,你就发现非常难于修改,除非重新设计,制作。
2、单片机是原材料成本最小的一种方案,更精确,更容易控制,不易出错,可实现功能多,且易实现。
综上所述,选择基于单片机的抢答器制作更为合理
二、设计的主要任务
通过此次设计,预期完成以下主要任务:
1.掌握抢答器的基础知识及原理;
2.掌握STC89C52单片机的管脚分配;
3.设计出合理的电路图及相应的汇编程序,同时仿真调试成功;
4.购买元器件完成焊接组装工作,解决调试问题,最后完成多路抢答器的实物制作。
三、主要元件介绍
(一)、单片机的选择
单片机选用的是Atmel公司推出的AT89S52,它是一种低功效、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
在单芯片上拥有灵巧的8位CPU和在线系统可编程Flash,使得AT89S52具有以下标准功能:
8K字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器串口、中断继续工作。
掉电保护方式下RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
而且,它还具有一个看门狗(WDT)定时/计数器。
如果程序没有正常工作,就会强制整个系统复位,还可以在程序陷入死循环的时候,让单片机复位而不用整个系统断电,从而保护你的硬件电路。
T89S52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中端口,2个16位可编程定时计数器,2个全双工串行通信口,片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
STC89C52单片机的基本结构
STC89C52单片机采用40Pin封装的双列直接DIP结构,图2-1是它的引脚配置,40个引脚中,电源Vcc和接地GND各一根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口和P3口复用。
现在我们对这些引脚的功能加以说明。
图2-1STC89C52的引脚图
1.电源引脚
(1)Vcc(40脚)电源端
GND(20脚)接地端
(2)工作电压为5V
2.外接晶体引脚
XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。
内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。
晶振的频率可以在1MHz-24MHz内选择[4]。
电容取30PF左右。
图2-2晶振电路
3.复位RST(9引脚)
在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引退时,将使单片机复位,只要这个引脚保持高电平,51芯片便循环复位。
复位后P0-P3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零[5]。
当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序。
图2-3复位电路
4.输入输出引脚
(1)P3端口[P3.0-P3.7]P3是一个带有内部上拉电阻的8位双向I/0端口。
输出时可驱动4个TTL[5]。
端口置1时,内部上拉电阻将端口拉到高电平,作输入用。
对内部Flash程序存储器编程时,接控制信息。
除此之外P3端口还用于一些专门功能,具体请看下面功能表。
表2-1P3功能表
(2)P2端口[P2.0-P2.7]P2是一个带有内部上拉电阻的8位双向I/0端口。
输出时可驱动4个TTL。
端口置1时,内部上拉电阻将端口拉到高电平,作输入用。
对内部Flash程序存储器编程时,接收高8位地址和控制信息。
在访问外部程序和16位外部数据存储器时,P2口送出高8位地址。
而在访问8位地址的外部数据存储器时其引脚上的内容在此期间不会改变。
(3)P1端口[P1.0-P1.7]P1是一个带有内部上拉电阻的8位双向I/0端口。
输出时可驱动4个TTL。
端口置1时,内部上拉电阻将端口拉到高电平,作输入用。
对内部Flash程序存储器编程时,接收低8位地址信息。
(4)P0端口[P0.0-P0.7]P0是一个8位漏极开路型双向I/O端口,端口置1(对端口写1)时作高阻抗输入端。
作为输出口时能驱动8个TTL。
对内部Flash程序存储器编程时,接收指令字节;校验程序时输出指令字节,要求外接上拉电阻[7]。
在访问外部程序和外部数据存储器时,P0口是分时转换的地址(低8位)/数据总线,访问期间内部的上拉电阻起作用。
(二)、数码管简介
四、系统功能框图
本次设计八路抢答器系统主要有五部分电路:
选手抢答电路、八段显示电路、蜂鸣器报警电路、主持人控制电路。
本次设计的八路抢答器可实现以下基本功能:
◆启动电源后系统自动倒计时3秒。
◆抢答器同时供八名选手比赛,分别用八个按钮SW1~SW8表示。
◆抢答器具有锁存与显示功能。
即选手按动按钮时会锁存相应的编号,并且优先抢答选手的编号一直保持到主持人将系统清除为止。
◆违规抢答,蜂鸣器会报警,而且锁存抢答队员的号码,并闪烁显示。
◆主持人关电源清除号码。
五、硬件电路设计
1、最小系统设计
图3-1STC89C52最小系统
说明:
(1)复位电路:
教材一般电容取10u,电阻R取8.2K[9]。
(2)晶振电路:
典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)或者12MHz(产生精确的方波便于12分频,方便定时操作)。
(3)电源接5V变压器。
六、总电路图
下图是电路原理图
总电路图
七、系统主程序
目前,单片机的编程语言主要有C语言和汇编语言两种。
C语言是高级语言,编写起来比较简便且易维护,汇编语言介于机器语言和高级语言之间,更接近硬件,但编写起来比较冗长。
介于本次程序不太复杂,本人又更喜欢汇编,故本次设计的程序采用汇编语言来写,详见附录一。
八、系统仿真与调试
1、Protues软件介绍
Protues的ISIS是一款Labcenter出品的电路分析实物仿真系统,可仿真各种电路和IC,并支持单片机,元件库齐全,使用方便,是不可多得的专业单片机仿真系统。
下图是Protues软件初始界面:
图5-1Protues软件初始界面该软件的特点有:
(1)满足常用单片机软件仿真系统的标准,并在同类产品中具有明显优势。
(2)具有模电仿真、数电仿真、单片机及其外围电路组成系统仿真。
(3)目前支持的单片机类型有:
68000系列、8051系列、AVR系列、PIC系列以及各种外围芯片。
(4)支持大量的存储器和外围芯片。
Protues与其它单片机仿真软件不同的是,它不仅能仿真单片机的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路情况。
因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程及结果。
对于这样的仿真实验,从某种意义上讲,弥补了实验和工程应用间脱节的矛盾现象。
2、Keil软件介绍
Keil软件是目前最流行开发MCS-51系列单片机软件,Keil软件提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。
下图是本人安装的Keil软件初始界面:
图5-2Keil软件初始界面
九、实物图
十、元件清单:
位号
名称
规格
数量
D1
共阳数码管
3.8*5.6cm
1
晶振
晶振
12M
1
STC89C52
STC89C52单片机
STC89C52单片机
1
led
红色led
5mm
1
R1
电阻
470欧姆
1
Q1
三极管
8550
1
U1
蜂鸣器
蜂鸣器
1
J1---J8
按键开关
按键开关
8
S1
电源开关
自锁开关
1
万用板
万用板
7*9cm
1
插针
排插
常用排插
4+8=12
40引脚DIP插槽
DIP插槽
40引脚
1
电源接线插口
电源接线插口
2口
1
十一、焊接问题及解决
一般来说,造成硬件问题的首要原因就是焊接失误,即焊接的好坏直接影响到产品的正常与否,在本次设计制作的焊接过程中遇到了一些问题,通过查找资料,找到了相关原因:
1)焊锡用量过多导致焊点的锡堆积;焊锡过少又不足以包裹焊点;
2)冷焊。
焊接时烙铁温度过低或加热时间不足,焊锡未完全熔化、浸润、焊锡表面不光亮,有细小裂纹。
3)焊锡连桥。
指焊锡量过多,造成元器件的焊点之间短路。
4)焊点表面的焊锡形成尖锐的突尖。
这多是由于加热温度不足或焊剂过少,以及烙铁离开焊点时角度不当造成的。
有时,调试时最小系统的电路不工作,通过查资料才明白,首先应该确认电源电压是否正常。
用电压表测量接地引脚跟电源引脚之间的电压,看是否符合电源电压,电路需5V电源供电,故我们选择了用双公USB从电脑上供电,省去好多变压的麻烦。
参考文献
[1]王冬梅,张建秋.基于单片机的八路抢答器设计与实现[J].佳木斯大学学报,2009,
27(3):
350.
[2]周功明,周陈琛.基于单片机AT89C2051的九路多功能智力竞赛抢答器的设计[J].现代电子技术,2006,10(20):
4.
[3]谢道平.基于Proteus仿真的单片机多功能智能抢答器的设计[J].长春大学学报,2011,
21(10):
12.
[4]耿仁义等.新编微机原理及接口技术.2006.
[5]文明月.基于AT89S52单片机的抢答器设计与实现[J].科技创新导报,2009,28(10):
35.
[6]周润景,张丽娜.基于PROTEUS的电路及单片机系统设计与仿真[M].北京:
北京航天航空大学出版社,2006.
[7]周坚.单片机C语言轻松入门[M].北京:
北京航天航空大学出版社,2006.
[8]李萍,张池,张勃.AT89S51单片机原理、开发与应用实例[M].北京:
中国电力出版社,2008.
[9]杨居义,单片机原理,清华大学出版社
附录
附录一:
抢答器程序
#include
intj,k;sbitfeng=P3^7;sbitk1=P1^0;sbitk2=P1^1;sbitk3=P1^2;sbitk4=P1^3;sbitk5=P1^4;sbitk6=P1^5;sbitk7=P1^6;sbitk8=P1^7;
unsignedcodetable[]=
{~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D,~0x07,~0x7F,~0x6F,~0x77,~0x7C,~0x39,~0x5E,~0x79,~0x71};
voiddelay1()
{unsignedinti,j;for(i=600;i>0;i--)
for(j=10;j>0;j--);
}voidmain(){
for(k=400;k>0;k--)
{
for(j=100;j>0;j--)
{
P2=table[3];
if(k1==0)
{while
(1)
{
feng=0;P2=table[1];delay1();P2=0xff;delay1();
}
}
if(k2==0)
{while
(1)
{feng=0;P2=table[2];delay1();P2=0xff;delay1();
}
}if(k3==0)
{while
(1)
{feng=0;P2=table[3];delay1();P2=0xff;delay1();
}
}if(k4==0)
{while
(1)
{feng=0;P2=table[4];delay1();P2=0xff;delay1();
}
}if(k5==0)
{while
(1)
{feng=0;P2=table[5];delay1();P2=0xff;delay1();
}
}if(k6==0)
{while
(1)
{feng=0;P2=table[6];delay1();P2=0xff;delay1();
}
}if(k7==0)
{while
(1)
{feng=0;P2=table[7];delay1();P2=0xff;delay1();
}
}if(k8==0)
{while
(1)
{feng=0;P2=table[8];delay1();P2=0xff;delay1();
}
}
}
}for(k=400;k>0;k--){
for(j=100;j>0;j--)
{
P2=table[2];if(k1==0)
{while
(1)
{feng=0;P2=table[1];delay1();P2=0xff;delay1();
}
}
if(k2==0)
{while
(1)
{feng=0;P2=table[2];delay1();P2=0xff;delay1();
}
}if(k3==0)
{while
(1)
{feng=0;P2=table[3];delay1();P2=0xff;delay1();
}
}if(k4==0)
{while
(1)
{feng=0;P2=table[4];delay1();P2=0xff;delay1();
}
}if(k5==0)
{while
(1)
{feng=0;P2=table[5];delay1();P2=0xff;delay1();
}
}if(k6==0)
{while
(1)
{feng=0;P2=table[6];delay1();P2=0xff;delay1();
}
}if(k7==0)
{while
(1)
{feng=0;P2=table[7];delay1();P2=0xff;delay1();
}
}if(k8==0)
{while
(1)
{feng=0;P2=table[8];delay1();P2=0xff;delay1();
}
}
}
}for(k=400;k>0;k--)
{
for(j=100;j>0;j--)
{
P2=table[1];if(k1==0)
{while
(1)
{feng=0;P2=table[1];delay1();P2=0xff;delay1();
}
}
if(k2==0)
{while
(1)
{feng=0;P2=table[2];delay1();P2=0xff;delay1();
}
}if(k3==0)
{while
(1)
{feng=0;P2=table[3];delay1();P2=0xff;delay1();
}
}if(k4==0)
{while
(1)
{feng=0;P2=table[4];delay1();P2=0xff;delay1();
}
}if(k5==0)
{while
(1)
{feng=0;P2=table[5];delay1();P2=0xff;delay1();
}
}if(k6==0)
{while
(1)
{feng=0;P2=table[6];delay1();P2=0xff;delay1();
}
}if(k7==0)
{while
(1)
{feng=0;P2=table[7];delay1();P2=0xff;delay1();
}
}if(k8==0)
{while
(1)
{feng=0;P2=table[8];delay1();P2=0xff;delay1();
}
}
}
}P2=table[0];
while
(1){if(k1==0)
{
P2=table[1];while
(1);}
if(k2==0){
P2=table[2];while
(1);
}if(k3==0){
P2=table[3];while
(1);
}if(k4==0){
P2=table[4];while
(1);
}if(k5==0){
P2=table[5];while
(1);
}if(k6==0){
P2=table[6];while
(1);
}if(k7==0){
P2=table[7];while
(1);
}if(k8==0){
P2=table[8];while
(1);
}
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 抢答 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)