基于单片机的多功能抢答器设计

上传人:hs****ma 文档编号:458941858 上传时间:2023-05-14 格式:DOC 页数:17 大小:235.01KB
返回 下载 相关 举报
基于单片机的多功能抢答器设计_第1页
第1页 / 共17页
基于单片机的多功能抢答器设计_第2页
第2页 / 共17页
基于单片机的多功能抢答器设计_第3页
第3页 / 共17页
基于单片机的多功能抢答器设计_第4页
第4页 / 共17页
基于单片机的多功能抢答器设计_第5页
第5页 / 共17页
点击查看更多>>
资源描述

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

1、1 前言能够实现抢答器功能的方式有多种,可以采用前期的模拟电路、数字电路或模拟与数字电路相结合的方式。近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月异更新。2 系统整体方案设计本电路中的51单片机是控制的主体,起到识别按键,对数据做出相应的处理(复位,清零,锁存,报警等)。而数码管主要显示倒计时与选手按键号码。报警时间的长短也可以调节。在整个实验中调节按键然后观察显示同步,完成实验。单 片机 主控 制倒 计 时模 块显示模块主持人控制开关抢答按钮报警电路图2.1单片机控制系统方框图3 硬件电路设计3.1单片机主控电路设计3.1.1单片机最小系统设计单片机倒

2、计时系统思路:主持人按抢答开始键,会有提示音,并立刻进入抢答倒计时(预设10s抢答时间),如有选手抢答,会有提示音,并会显示其号数并立刻进入回答倒计时(预设30s抢答时间),不进行抢答查询,所以只有第一个按抢答的选手有效。倒数时间到小于5s会每秒响一下提示音。 3.1.2 单片机引脚资源分配图3.1.2单片机引脚图单片机P1口是一个内部提供上拉电阻的8位双向I/O口,P1口的输出缓冲器可驱动4个TTL逻辑门电路。p1.0p1.3口接四个按钮;XTAL1,XTAL2分别通过电容并联晶振; P0口是一组8位漏极开路双向I/O口,每位引脚可驱动8个逻辑门路。对P0口的管脚写“1”时,被定义为高阻抗输

3、入。在访问外部数据存储器或程序存储器时,它可以被定义为数据总线和地址总线的低八位。P0.0p0.6口外部必须接上拉电阻,再接一个7SEG-MPX4CC显示器。P3口是一个内部提供上拉电阻的8位双向I/O口,P3口的输出缓冲器可驱动4个TTL逻辑门电路。P3口除了一般I/O线的功能外,还具有更为重要的第二功能,p3.0p3.4口接五个按钮,p3.6口(外部数据存储器写选通)接一个报警器。3.2显示模块设计显示模块用的是7SEG-MPX4CC,1、3、4口是用来控制数码管显示数的。本数码管采用的是动态显示。图3.2 7SEG-MPX4CC图4软件流程设计4.1系统流程图图4.1 系统流程图4.2倒

4、计时程序流程图开始载入倒计时初值开定时器中断T=0显示子程序定时寄存器减 1结束图4.2 倒计时流程图4.3显示程序流程图开始查表P2赋值P2值送p0口延时P0口做段选码口输出/P2低三位做位选码输出结束P2减1图4.3 显示程序流程图4.4 四路抢答器程序org 0ok equ 20hrequ 22hljmp startorg 0003hljmp interruptedorg 000bhljmp t0intorg 0013h ljmp int1sub org 001bh ljmp t1int org 0040hstart: mov r1,#10 mov r2,#30 mov tmod,#11

5、h mov th0,#0f0h mov tl0,#0ffh mov th1,#3ch mov tl1,#0b0h setb ea setb et0 setb et1setb ex0setb ex1 clr ok clr r setb tr1setb tr0inquire: mov r5,#0bh;查询 mov r4,#0bh mov r3,#0bh acall display;未开始抢答时候显示FFF jb p3.0,key acall delay jb p3.0,key;去抖动,如果开始键按下就向下执行,否者跳到非法抢答查询 acall bark mov a,r1mov r6,a setb

6、ok mov r7,#01h ;读抢答键数据信号标志,这里表示只读一次有用信号 mov r3,#0ah;抢答只显示计时,灭号数 ljmp countkey: jnb p1.0,f1jnb p1.1,f2jnb p1.2,f3jnb p1.3,f4ljmp inquiref1: mov r3,#01h;非法抢答 ljmp errorf2: mov r3,#02h ljmp errorf3: mov r3,#03h ljmp errorf4:mov r3,#04h ljmp errorinterrupted:mov a,r1;抢答时间R1调整 mov b,#0ah div a mov r5,a m

7、ov r4,b mov r3,#0ah acall display jnb p3.4,inc0 jnb p3.5,dec0 jnb p3.1,back0 ljmp interruptedinc0: mov a,r1cjne a,#63h,add0;如果不是99,R2加1,如果加到99,R1就置0,重新加起。 mov r1,#00h acall delay1ljmp interruptedadd0: inc r1 acall delay1 ljmp interrupteddec0: mov a,r1 jz setr1;如果R1为r, R1就置99, dec r1 acall delay1 ljm

8、p interruptedsetr1: mov r1,#63h acall delay1 ljmp interruptedback0: reti int1sub:mov a,r2;回答时间R2调整 mov b,#0ah div abmov r5,a mov r4,b mov r3,#0ah acall display jnb p3.4,inc1 jnb p3.5,dec1 jnb p3.1,back1 ljmp int1subinc1: mov a,r2 cjne a,#63h,add1 mov r2,#00h acall delay1ljmp int1subadd1: inc r2 acal

9、l delay1 ljmp int1subdec1: mov a,r2 jz setr2 dec r2 acall delay1 ljmp int1subsetr2: mov r2,#63h acall delay1 ljmp int1subback1: reti repeat:mov a,r2;倒计时 mov r6,a clr r count: mov r0,#00h mov th1,#3ch mov tl1,#0b0hrecount:mov a,r6;r6保存了倒计时的时间,之前先将抢答时间或回答时间给R6 mov b,#0ah div ab mov 30h,a mov 31h,b mov

10、 r5,30h mov r4,31h mov a,r6 subb a,#07h jnc larger;大于5s跳到larger,小于等于5s会提醒 mov a,r0 cjne a,#0ah,full;1s中0.5s向下运行 clr r ljmp checkfull: cjne a,#14h,check;下面是1s的情况,响并显示号数并清R0,重新计 setb r mov a,r6 jz quit;计时完毕 mov r0,#00h dec r6;一秒标志减1 ljmp checklarger: mov a,r0 cjne a,#14h,check;如果1s向下运行,否者跳到查停/显示 dec r

11、6;计时一秒R6自动减1 mov r0,#00hcheck: jnb p3.1,quit;如按下停止键退出 jnb ok,checkk;只在回答倒计时才有效 ljmp keytcheckk:jnb p3.0,repeat;判断是否使用锦囊keyt: acall display jb ok,accout;如果是抢答倒计时,如是则查询抢答,否者跳过查询继续倒数 ljmp recountaccout:mov a,36h jnb acc.0,true1 jnb acc.1,true2 jnb acc.2,true3 jnb acc.3,true4 ljmp recounttz1:jmp true3tz2:jmp true4quit: clr ok;如果按下了停止键执行的程序 clr r ljmp inquiretrue1: acall bark;开始抢答 mov a,r2 mov r6,a mov r3,#01h clr ok;因为答题的计时不再查询抢答,所以就锁了抢答 ljmp co

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

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