求四路抢答器电路原理图

求四路抢答器电路原理图,第1张

原理图:

工作原理 

抢答器由74LS148、74LS279、74LS48组成,LED显示器 开始时,当支持人按钮还未按是,CLR为0,所以输出Q1~Q4为0;

放光二极管全为灭的,当主持人按钮按下时CLR为1,可以输入,谁先抢答,相应的谁的灯亮,利用74LS279和74LS148输出的是cp等于0,锁存其他的,不能使其他的输出。

扩展资料:

利用51单片机建立四路抢答器

单片机,当然不只是51,51单片机是一种稍通用型的单片机,通过I/O口的定义,可以实现多种控制功能。

抢答器,原理:如果为四路,当其中任一路控下后,其他几路即失效,结果为第一次按下的,可以用数码管或是LED灯来显示,当然这里只是讲原理与编程,具体可以根据抢答器路数及显示方式更改程序即可。

源程序如下:

<div class="blockcode"><blockquote>/*用的是AT89S52开发板,独立按键接口如下,就用这四路。先按下的用LED灯来显示,对应第一个到第四个LED灯,其他再按无效,如果想再次实现,可手动复位单片机*/

#include <reg52.h>

sbit key1=P3^0    //定义按键,根据需要连接线路,如独立按键(4路)

sbit key2=P3^1

sbit key3=P3^2

sbit key4=P3^3

/*void delay(unsigned int cnt)       //如果有抖动或是干扰,可以用个小延时去抖

{

while(--cnt)

}*/

void main()

{

bit Flag

while(!Flag)

{

if(!key1)

{

P1=0xFE

Flag=1

}             

/*LED灯来显示按下的键,第一个灯,我这里是8位LED灯,即:0111 1111,反过来读数为:1111 1110      即:0xFE *,P1口对应LED灯,给P1赋值*/

else if(!key2)

{

P1=0xFD

Flag=1

}       

//第二个灯亮 

else if(!key3)

{P1=0xFBFlag=1}     

//第三个灯亮 

else if(!key4)

{

P1=0xF7

Flag=1

}   

//第四个灯亮,意味着第四路首先按下

}

while(Flag)        //可以再加个I/O,控制Flag,这样初始化,继续抢答,还可以设计按下时的声音

}

先来个汇编的程序,P1接一个共阳极数码管,P0低4位接4个抢答按键,主持人复位采用单片机复位按钮实现。

ORG 0000H

START: MOV A,P0

ORL A,#0F0H

CJNE A,#0FFH,PL0

SJMP START

PL0: LCALL DELAY

MOV A,P0

ORL A,#0F0H

CJNE A,#0FFH,PL1

SJMP START

PL1:JNB ACC.0,K1

JNB ACC.1,K2

JNB ACC.2,K3

JNB ACC.3,K4

LJMP START

K1:MOV P1,#0F9H

SJMP $

K2:MOV P1,#0A4H

SJMP $

K3:MOV P1,#0B0H

SJMP $

K4:MOV P1,#99H

SJMP $

DELAY:MOV R6,#15

DEL2: MOV R7,#200

DJNZ R7,$

DJNZ R6,DEL2

RET

END


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/yw/11157385.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-14
下一篇2023-05-14

发表评论

登录后才能评论

评论列表(0条)

    保存