四路抢答器单片机课程设计正文大学论文.docx
《四路抢答器单片机课程设计正文大学论文.docx》由会员分享,可在线阅读,更多相关《四路抢答器单片机课程设计正文大学论文.docx(19页珍藏版)》请在冰豆网上搜索。
![四路抢答器单片机课程设计正文大学论文.docx](https://file1.bdocx.com/fileroot1/2023-4/2/8a00e9c7-003d-49a3-8c60-2c3c0d3d7ec2/8a00e9c7-003d-49a3-8c60-2c3c0d3d7ec21.gif)
四路抢答器单片机课程设计正文大学论文
摘要
单片机作为一种工具,现在已经广泛的应用于智力和只是竞赛场合。
本次设计是基于单片机51系列的理论知识综合运用AT89C51单片机设计的简易四路抢答器。
利用AT89C51单片机的外围接口来实现抢答系统,利用单片机的定时器/计数器计数和定时的原理,将软、硬件有机的结合起来,使得系统能正确的记时,而且,数码管能显示相应的数字。
同时系统能够实现:
在抢答过程中只有在主持人按下开始抢答键开始之后抢答才有效,如果在开始抢答之前抢答视为无效。
在抢答成功之后发光二极管会变成闪烁状态与提示选手开始回答问题。
同时还有主持人控制的系统复位键,以实现系统的复位。
还有按键锁定,在一个选手抢答成功或者法规状态下其他按键无效。
通过这次的设计,对51系列的单片机的运用有了更深一层次的了解,也提高了我们的动手能力,加深我们对单片机的映像,为我们以后的学习打下一定的基础。
目录
一、方案设计3
1.1、设计要求3
1.2、总体法案设计3
二、硬件电路设计4
2.1、元器件简介4
2.2、系统总电路图6
2.3、单元电路设计6
2.3.1、独立式按键电路6
2.3.2时钟电路设计7
2.3.3复位电路设计7
2.3.4指示灯电路设计8
三、软件实际8
3.1系统程序设计8
3.2主程序流程图8
3.3程序清单9
四、制作以调试14
五、抢答器的使用方法15
六、心得与体会16
七、参考文献17
一、方案设计
1.1、设计要求
(1)总共5个按键,一个“复位”操作,四个供四个选手用作“抢答”操作。
(2)当主持人发出抢答指令时,开始抢答。
(3)开始抢答后,哪个选手最先按下抢答键,数码管显示相应选手的号码,表示抢答成功,此时其他选手再按键为无效,数码管依然显示最先抢答选手的号码。
(4)抢答后,主持人可以利用“复位键”重新开始。
1.2、方案选择与设计
方案选择:
有关抢答器的课程设计,可以选用PLC设计,也可以选用AT89C51单片机进行设计。
对于可编程逻辑控制器PLC,它是一种数字运算操作的电子系统,是以微机处理器为基础,综合了计算机技术、半导体集成技术、自动控制技术、数字技术和通信网络技术发展起来的一种通用工业自动控制技术,它采用一类可编程的存储器,用于其内部存储程序,执行逻辑运算,顺序控制,定时,计数与算术操作等面向用户的指令,并通过数字或模拟式输入/输出控制各种类型的机械或生产过程。
由于PLC主要是面向工业控制领域的。
单片机——直译为单片微型计算机,它将CPU、RAM、ROM、定时器/计数器、输入/输出(I/O)接口电路、中断、串行通信接口等主要计算机部件集成在一块大规模集成电路芯片上,组成单片微型计算机简称单片机。
虽然单片机的形态只是一块芯片,但是它已具有了微型计算机的组成结构和功能。
它具有集成度高,系统结构简单,可靠性高,处理能力强,速度快的优点。
而基于AT89C51单片机制作的抢答器,其最大的好处就是处理快,准确性高、可靠性好、控制功能强。
所以这里我们采用基于AT89C51单片机来进行抢答器的课程设计。
采用51系列的单片机AT89C51作为控制中心,系统可以完成运算控制、信号的控制以及显示的功能。
选手通过按键开关作为输入信号完成输入信号的触发,主持人根据选手的输入信号准确的判断最先按下的选手且屏蔽其他的抢答信号,让选手作答。
使用外部中断方式来实现开始抢答,运用按键复位来实现系统的复位,其系统原理框图如下:
图一系统原理框图
二、
电路设计
2.1、元器件简介
1:
AT89C51单片机,其内部带有4KB的掩膜ROM。
无需扩展外部程序存储器。
其中:
VVC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
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(外部数据存储器读选通)。
RST:
复位输入。
EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器,不管是否有内部程序存储器。
当/EA端保持高电平时,此间内部程序存储器。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
2:
74HC573包含八进制3态非反转透明锁存器,是一种高性能硅CMOS器件。
SL74HC573跟LS/AL573的管脚一样。
器件的输入是和标准CMOS输出兼容的,加上拉电阻他们能和LS/ALSTTL输出兼容。
图二74HC573引脚图
74HC573的八个锁存器都是透明的D型锁存器,当使能(G)为高时,Q输出将随数据(D)输入而变。
当使能为低时,输出将锁存在已建立的数据电平上。
输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时,
新的数据也可以置入。
这种电路可以驱动大电容或低阻抗负载,可以直接与系统总线接口并驱动总线,而不需要外接口。
特别适用于缓冲寄存器,I/O通道,双向总线驱动器和工作寄存器。
当输入的数据消失时,在芯片的输出端,数据仍然保持;这个概念在并行数据扩展中经常使用到。
2.2、系统总电路图
图三总电路图
2.3、单元电路设计
2.3.1、独立式按键电路
如下图四个独立式按键K1—K4分别接在P1口的P1.4—P1.7另外一端接地。
当有一键按下时相应的口线的电平发生变化,单片机进行扫描确定哪个键按下。
当4个键中的其中一个键按下时,数码管显示相应的数值。
图四独立式按键
2.3.2时钟电路设计
如右图示,为时钟电路,单片机必须在时钟驱动下才能正常的工作,在单片机内部有一时钟振荡电路,只需外接一个振荡源就可以一定的时钟信号送到各个单元,采用12MHz的晶振,其时钟周期为1/12us,电路中两个电容C1和C2的作用:
一是帮组振荡器起振;二是对振荡器的频率进行微调,它们的值都为30pF。
图五时钟电路
2.3.3复位电路设计
单片机的第9引脚RST是复位端,只要在复位端保持两个周期以上的高电平,就可以实现复位。
下图采用按键手动复位中的按键电平复位,由复位按键和10uF的电容,以
及一个10KΩ的电阻构成复位电路,当复位键按下就对单片机行复位。
单片机复位完成之后,系统程序将从0000H开始执行。
图六时钟电路
2.3.4数码管显示
下图为数码管显示电路,数码管采用共阴极的方式,这里我们采用7SEG-MPX6-CC-BLUE,我们只是采用其中一位作为显示。
当有一键按下时相应的口线的电平发生变化,单片机进行扫描确定哪个键按下,数码管显示相应的数值。
图七数码管显示
三、软件实际
3.1系统程序设计
在抢答过程中,有多个信号输入主电路中,单片机内部的寄存器工作,并识别、记录第一个抢答的人,在整个抢答过程中,显示电路还要根据现场的实际情况来相应的显示输入信号。
根据课程设计要求,编写如下程序设计流程图。
3.2主程序流程图
主程序流程图如下:
否
3.3程序如下
#include
#defineuintunsignedint
#defineucharunsignedchar
sbitdula=P2^6;
sbitwela=P2^7;
ucharnum;
ucharcodetable[]={0x06,0x5b,0x4f,0x66};
voiddelay(uintz)
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
voidmain(void)
{unsignedcharkeyvalue;
do
{P1=0xf0;
keyvalue=P1;
switch(keyvalue)
{case224:
{
wela=1;
P0=0xfe;
wela=0;
while
(1)
{
dula=1;
P0=table[0];
dula=0;
delay(1000);
}
}
break;
case208:
{
wela=1;//00000001
P0=0xfe;
wela=0;
while
(1)
{
dula=1;
P0=table[1];
dula=0;
delay(1000);
}
}
break;
case176:
{
wela=1;//00000001
P0=0xfe;
wela=0;
while
(1)
{
dula=1;
P0=table[2];
dula=0;
delay(1000);
}
}
break;
case112:
{
wela=1;//00000001
P0=0xfe;
wela=0;
while
(1)
{
dula=1;
P0=table[3];
dula=0;
delay(1000);
}
}
break;
default:
break;
}
}
while
(1);
}
四抢答器的实物设计
1.芯片介绍
单片机STC12C5A60S2
在众多的51系列单片机中,要算国内STC 公司的1T增强系列更具有竞争力,因他不但和8051指令、管脚完全兼容,而且其片内的具有大容量程序存储器且是FLASH工艺的,如STC12C5A60S2单片机内部就自带高达60K FLASH ROM,STC12C5A60S2是8051系列单片机,与普通51单片机相比有以下特点:
1、同样晶振的情况下,速度是普通51的8~12倍
2、有8路10位AD
3、多了两个定时器,带PWM功能
4、有SPI接口
5、有EEPROM
6、有1K内部扩展RAM
7、有WATCH_DOG
8、多一个串口
9、IO口可以定义,有四种状态
10、中断优先级有四种状态可定义
引脚功能:
VCC:
供电电压;
GND:
接地;
P0口:
P0口为一个8位漏级开路双向I/O口,每个管脚可吸收8TTL门电流。
当P1口的管脚写“1”时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FLASH编程时,P0口作为原码输入口,当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口的管脚电位被外部拉低,将输出电流,这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉的优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号;
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入时,由于外部下拉为低电平,P3口将输出电流(ILL),也是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口:
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2INT0(外部中断0)
P3.3INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6WR(外部数据存储器写选通)
P3.7RD(外部数据存储器读选通)
同时P3口同时为闪烁编程和编程校验接收一些控制信号;
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高平时间;
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令时ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效;
PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取址期间,每个机器周期PSEN两次有效。
但在访问内部部数据存储器时,这两次有效的PSEN信号将不出现;
EA/VPP:
当EA保持低电平时,访问外部ROM;注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,访问内部ROM。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP);
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入;
XTAL2:
来自反向振荡器的输出。
CH452是数码管显示驱动和键盘扫描控制芯片。
CH452内置时钟振荡电路,可以动态驱动8位数码管或者64位LED,具有BCD译码、闪烁、移位、段位寻址、光柱译码等功能;同时还可以进行64键的键盘扫描;CH452通过可以级联的4线串行接口或者2线串行接口与单片机等交换数据;并且可以对单片机提供上电复位信号。
单片机(也可以是DSP、微处理器等控制器)通过4线串行接口或者2线串行接口控制CH452芯片,CH452的数码管显示驱动与键盘扫描控制之间相互独立,单片机可以通过操作命令分别启用、关闭、设定这两个功能。
CH452的4线串行接口是由硬件实现的,单片机可以频繁地通过串行接口进行高速操作,而绝对不会降低CH452的工作效率;但是2线串行接口是由软件与硬件共同实现的,所以不适合不间断地频繁操作。
CH452可以动态驱动8个共阴数码管,所有数码管的相同段引脚(段A~段G以及小数点)并联
后通过串接的限流电阻R1(或R12)连接CH452的段驱动引脚SEG0~SEG7,各数码管的阴极分别由CH452的DIG0~DIG7引脚进行驱动。
串接限流电阻的阻值越大则段驱动电流越小,数码管的显示亮度越低,R1(或R12)的阻值一般在100Ω至1KΩ之间,在其它条件相同的情况下,应该优先选择较大的阻值,以降低CH452芯片本身的功耗。
在数码管的面板布局上,建议数码管从左到右的顺序是N1靠左边,N8靠右边,以便匹配字左右移动命令和字左右循环移动命令。
如果数码管不足8个,那么可以优先去掉左边的N1、N2、N3等数码管,并设置相应的扫描极限以获得更大的动态驱动电流提高显示亮度。
4.2
实验结果演示
主持人未宣布开始时,有人按下抢答按钮,抢答无效,实验现象如下图所示:
当主持人宣布抢答开始,实验现象如下图:
主持人宣布开始抢答之后,3号选手最先按下抢答按钮,抢答有效实验现象如下图所示:
当3号选手按下抢答按钮,抢答有效之后,2号选手再次抢答显示无效,实验现象如下图所示:
四、抢答器的使用方法
单片机最小系统板接上电源之后,(以作品真面为例),左上为主持人使用的复位键,左下0按键为主持人使用的开始抢答键,右下的键为供选手使用的抢答键,从右下往上分别为选手一至选手四的按键,在主持人还没有按下开始抢答键是若有选手按下抢答键,则其不显示,当主持人应按下开始键时。
如哪位选手抢答成功之后,其显示选手的号码,而当其他选手再抢答时,数码管依旧显示最先抢到的选手号码。
随后,主持人按下复位键,开始下一轮抢答。
五、心得与体会
为期两周微机原理课程设计就落下了帷幕,在这两个星期中的课程设计中,不仅检验了我们对所学知识的掌握程度,也培养了我们的动手能力。
通过这次的微机原理课程设计,让我对单片机的知识又有了近一步的了解,让我在多方面都有了一定的提高。
通过这次设计,综合运用本专业所学习的课程的理论,设计工作的实际训练从而提高我们的独立的工作能力,巩固我们所学的知识,提高了我们的独立思考能力。
在设计的过程中,我遇上了许多的问题,但是我没有放弃,在不明白的地方,及时的查阅材料,问老师,问同学,顺利地编写程序,仿真,调试。
六、参考文献
【1】、《单片机原理及接口技术》胡健机械工业出版社
【2】、《51系列单片机》实验指导书杜礼霞应用技术学院