基于单片机八路抢答器设计报告

上传人:第*** 文档编号:61593278 上传时间:2018-12-05 格式:DOCX 页数:18 大小:78.20KB
返回 下载 相关 举报
基于单片机八路抢答器设计报告_第1页
第1页 / 共18页
基于单片机八路抢答器设计报告_第2页
第2页 / 共18页
基于单片机八路抢答器设计报告_第3页
第3页 / 共18页
基于单片机八路抢答器设计报告_第4页
第4页 / 共18页
基于单片机八路抢答器设计报告_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《基于单片机八路抢答器设计报告》由会员分享,可在线阅读,更多相关《基于单片机八路抢答器设计报告(18页珍藏版)》请在金锄头文库上搜索。

1、八路抢答器设计报告设计课题: 八路抢答器 专业班级: 学生姓名: 学号:指导教师: 设计时间: 一、系统设计内容1.1系统设计依据 抢答器由计数器、寄存器、集成定时器和译码显示等组合、时序电路组成。可分为抢答电路,定时电路,报警电路等几个单元部分。每个单元电路分别可以处理一些抢答竞赛中的基本问题。 本次课程设计设计的是一个多路定时抢答器,是一个多于两位选手参赛的一个抢答器,具有锁存和显示功能。同时有主持人控制系统的清零和抢答的开始。抢答开始后,若有任何一名选手按动抢答按钮,抢答器就会显示该选手编号直至系统被主持人清零,并有扬声器发出提示,同时其他人再抢答就无效了。这次设计的抢答器还有自动定时功

2、能,主持人可以设定选手答题的时间。当主持人启动“开始”键后,定时器会自动减计时,这个会显示在显示器上。选手只有在抢答时间内抢答才有效,若在答题时间内没有选手答题,时间到时,报警电路就会发出警报亮灯并且禁止抢答。1.2设计任务和要求设计一个八路抢答器要求:(1)设计出硬件电路; (2)设计出软件编程方法,并写出源代码; (3)用PROTEUS进行仿真; (4)论文格式要符合学院的统一规定,结构要合符逻辑,表达要得体。1.3 设计目的通过设计学习单片机最小系统的基本设计方法,掌握单片机应用系统的开发调试过程。(1)学习单片机开发工具功能、特点和使用方法。(2)学会单片机控制系统程序的编制和编制和调

3、试方法。(3)设计单片机抢答器硬件电路,绘制出电路原理图。(4)编制并调试出键盘扫描程序和显示驱动程序。(5)掌握单片机定时器的基本用法,编制出定时器的中断程序。第2章 硬件设计2.1 单片机控制原理单片机(SCM)是单片微型计算机(Single Chip Microcomputer)的简称。它是把中央处理器CPU、随机存储器RAM、只读存储器ROM、I/O接口电路、定时/计数器以及输入输出适配器都集成在一块芯片上,构成一个完整的微型计算机。它的最大优点是体积小,可放在仪表内部。但存储量小,输入输出适配器简单,功能较低。目前,单片机在民用和工业测控领域得到最广泛的应用,早已深深地融入人们的生活

4、中。简单的说,用单片机系统来设计抢答器,实现两组的抢答时间即使是相差几微秒,也可分辨出哪组优先答题。P0端口(P0.0-P0.7):P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1端口(P1.0-P1.7):P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高电平,可用作输入,P1口被外部下拉

5、为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2端口(P2.0-P2.7):P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地

6、址信号和控制信号。P3端口(P3.0-P3.7):P3口管脚是一个带有内部上拉电阻的8位的双向I/O端口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入端时,由于外部下拉为低电平,P3口将输出电流(ILL)。2.2 抢答器的原理抢答器的工作原理是采用单片机最小系统,用程序查询方式采用动态显示组号。主持人按下开始抢答键才可以抢答。主持人没有按下开始抢答按纽(P3.0),有人抢答则抢答违规,报警并显示组号,主持人按下开始抢答开关重新抢答。主持人按下开始抢答按纽(P3.0),蜂鸣响声提示,数码管30秒倒计时抢答,蜂鸣器响声提示并显示他的组号,30秒内有

7、人抢答则开始60秒倒计时(60秒内必须回答完问题),最后五秒倒计时警报。单片机最小系统、抢答按键模块(四位并行数码显示)、显示模块、显示驱动模块、抢答开关模块、蜂鸣器音频输出模块。2.2.1 原理及电路总框图图2.2.1抢答器总原理图2.3 功能模块电路2.3.1晶振复位及开始抢答电路晶振的频率为12MHZ,提供89C51的时钟脉冲使89C51工作,复位电路是单片机初始化,使单片机重新开始执行程序。当复位开关按下RST由低电平变为高电平,则程序从头开始执行,在此次课程设计电路中当一个问题结束主持人后按下复位开关后进行下一题的准备。图2.3.1 晶振复位电路图2.3.1开始抢答电路2.3.2 选

8、手抢答键(矩阵式键盘)89C51的P1口做一个为选手抢答的输入按键引脚,P1.0至P1.7轮流输出低电位,给每一个选手编号1至8,当选手按下按钮时,P1口个端口的电平变化从P1口输入,经单片机处理后从P0输出由数码管显示抢答者编号。图2.3.2 选手抢答电路2.3.3 显示与显示驱动电路此电路包括显示和驱动,显示采用数码管,驱动用P2口, 违规者编号、抢答30秒倒计时、正常抢答者编号和回答问题时间60秒倒计时,数码管采用动态显示。驱动电路P2口,查询显示程序利用P0口做段选码口输出P2低3位做位选码输出,当为低电平则能驱动数码管使其显示数字。在+5V电压下接10k的电阻,保证正常压降。图2.3

9、.3 示与显示驱动电路2.3.4蜂鸣器音频输出电路通过控制不同频率的矩形脉冲来控制蜂鸣器发声。此次课程设计中只需要一些简单的提示声音和稍微显眼的灯控,有抢答违规,开始抢答,抢答时间结束和回答时间到得提示声和亮灯提醒。图2.3.4蜂鸣器音频输出电路第3章 软件设计3.1程序设计3.1.1 系统流程图3.1.2显示抢答违规流程图3.1.3抢答成功流程图3.2 程序代码3.2.1 主程序#include#define uchar unsigned char#define uint unsigned intsbit m1=P31; /主持人按键答对加分,按一下加一分sbit m2=P32; /答错减分

10、sbit k1=P10;sbit k2=P11;sbit k3=P12;sbit k4=P13;sbit k5=P14;sbit k6=P15; sbit k7=P16; sbit k8=P17; /选手按键 sbit k=P30; /主持人按键开始sbit beep=P37; /蜂鸣器uchar code tab=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77; /0-9代码uchar shiwei,gewei,xuanshou,count,i,second;uchar score1,score2,score3,score4,sc

11、ore5,score6,score7,score8;/选手18的分数uint t,m,n,a,a1,a2,a3,a4,a5,a6,a7,a8;void Timer()TMOD|=0x01;TH0=0xd8; /初值55536,计数10000次,每次1US,总计10msTL0=0xf0;IE=0x82; /这里是中断优先级控制EA=1(开总中断),ET0=1(定时器0允许中断),这里用定时器0来定时TR0=1; void tim(void) interrupt 1 using 1 /为定时中断TR0TH0=0xd8; /重新赋值TL0=0xf0;count+;if(count=100) /100

12、*10ms=1秒count=0;second-; /秒减1void delay(uint z) /延时函数uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void display (uchar shiwei,gewei,xuanshou) /显示函数P2=0xfe; /打开显示时间十位的位选P0=shiwei;/显示十位delay(5);P2=0xfd;/个位位选P0=gewei;delay(5);P2=0xf7; /选手位选P0=xuanshou;delay(5);void dis(void)shiwei=tabsecond/10; gewei=tabseco

13、nd%10;xuanshou=tabi;display (shiwei,gewei,xuanshou);void init() /初始化函数 P2=0x04;P0=0x3f;t=0;beep=0;i=0;second=29;score1=60;score2=60;score3=60;score4=60;score5=60;score6=60;score7=60;score8=60;a1=1;a2=1;a3=1;a4=1;a5=1;a6=1;a7=1;a8=1;void main() init();if(k=0) /主持人按下开始键Timer();delay(10);while(!k);while(1)dis();m=0;n=0;if(second=10)beep=1;delay(500);beep=0;if(second=0) TR0=0;n=1;if(k=0)beep=1;delay(500);beep=0;second=29;TR0=1;m=1; if(n=0) if(k1=0) delay(5);if(k1=0);while(!k1);t=1;else if(k2=0) delay(5);if(k2=0);while(!k2);t=2;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号