八路数显抢答器工作原理

八路数显抢答器工作原理,第1张

控制器是由可控硅和IC1的控制端构成。当任意按下一个按键时,可控硅都会被触发导通,使IC1的控制端始终保持有一个高电平的输入。因此所按的数字得以锁存。这样,后按下的按键就不能起作用,数码管就只显示先按下的键号。

这里的可控硅另一端与音乐片的正极相连,当可控硅导通时,使音乐片得以通电发声,从而完成整个抢答功能。该音乐片上电即能触发,也能自动停止,因此无需设暂停键。当按下复位键时,可控硅被切断电源而截止,IC1的控制端则由高电平转变为低电平而清零,为下一次抢答做准备。

扩展资料

功能

1、题目编辑:对现有格式的题目导入。

2、题目删除:删除已经导入且不要的题目。

3、显示、隐藏面板

4、抢答模式

5、显示主界面

6、硬件设置

7、软件设置

8、扫描台号

9、抢答组设置

10、奖项设置

11、进入抢答

12、赛后统计:抢答比赛所得到结果进行导出。。

参考资料来源:百度百科-抢答器

八路抢单器,一般而言需要的功能有:抢答按钮(八个),指示灯(至少八个),显示(至少一位数码管),警报提示(蜂鸣器),复位按钮(或开始按钮,由主持人控制)。

扩展功能,倒计时数码显示。

#include<reg52h>

#define uchar unsigned char

#define uint unsigned int

sbit kai=P2^2;

sbit ting=P2^3;

sbit hao1=P1^0;

sbit hao2=P1^1;

sbit hao3=P1^2;

sbit hao4=P1^3;

sbit hao5=P1^4;

sbit hao6=P1^5;

sbit hao7=P1^6;

sbit hao8=P1^7;

sbit wela=P2^1;

sbit dela=P2^0;

sbit P2_6=P2^6;

sbit P2_7=P2^7;

uchar code table[]=

{0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x40};

uchar a,a1,num,shi,ge,hao,

aa,num1,flag1,flag2,flag3,flag4,

flag5,flag6,flag7,flag8,flag9,flag10;

void display(uchar hao,uchar aa,uchar shi,uchar ge);

void init();

void delay(uint z);

void keyscan();

void main()

{

init();

while(1)

{

keyscan();

if(flag1==1)

{

display(hao,10,shi,ge);

}

else

{

display(hao,10,0,0);

}

}

}

void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

void keyscan()

{

if(kai==0)

{

delay(5);

if(kai==0)

{

while(!kai);

hao=0;

num=30;

shi=3;

ge=0;

TR0=1;

flag1=1;

P2_7=0;

P2_6=1;

}

}

if(ting==0)

{

delay(5);

if(ting==0)

{

while(!ting)

{

a=0;

num=30;

num1=0;

hao=0;

shi=3;

ge=0;

TR0=0;

TR1=0;

flag1=0;

P2_6=0;

P2_7=1;

P3=0xff;

}

}

}

if(flag1==1)

{

if(hao==0&&hao1==0)

{

delay(5);

if(hao1==0)

{

while(!hao1);

P2_6=1;

P2_7=1;

P3=0xfe;

flag2=1;

shi=0;

ge=0;

hao=1;

TR1=1;

TR0=0;

}

}

if(hao==0&&hao2==0)

{

delay(5);

if(hao2==0)

{

flag3=1;

while(!hao2);

P2_6=1;

P2_7=1;

P3=0xfd;

shi=0;

ge=0;

hao=2;

TR0=0;

TR1=1;

}

}

if(hao==0&&hao3==0)

{

delay(5);

if(hao3==0)

{

flag4=1;

while(!hao3);

P2_6=1;

P2_7=1;

P3=0xfb;

shi=0;

ge=0;

TR0=0;

TR1=1;

hao=3;

}

}

if(hao==0&&hao4==0)

{

delay(5);

if(hao4==0)

{

flag5=1;

while(!hao4);

P2_6=1;

P2_7=1;

P3=0xf7;

shi=0;

ge=0;

TR0=0;

TR1=1;

hao=4;

}

}

if(hao==0&&hao5==0)

{

delay(5);

if(hao5==0)

{

flag6=1;

while(!hao5);

P2_6=1;

P2_7=1;

P3=0xef;

shi=0;

ge=0;

TR0=0;

TR1=1;

hao=5;

}

}

if(hao==0&&hao6==0)

{

delay(5);

if(hao6==0)

{

flag7=1;

while(!hao6);

P2_6=1;

P2_7=1;

P3=0xdf;

shi=0;

ge=0;

hao=6;

TR0=0;

TR1=1;

}

}

if(hao==0&&hao7==0)

{

delay(5);

if(hao7==0)

{

flag8=1;

while(!hao7);

P2_6=1;

P2_7=1;

P3=0xbf;

shi=0;

ge=0;

hao=7;

TR0=0;

TR1=1;

}

}

if(hao==0&&hao8==0)

{

delay(5);

if(hao8==0)

{

flag9=1;

while(!hao8);

P2_6=1;

P2_7=1;

P3=0x7f;

shi=0;

ge=0;

hao=8;

TR0=0;

TR1=1;

}

}

if(!hao==0)

{

if(flag2==1)

{

if(hao1==0)

{

delay(5);

if(hao1==0)

{

TR1=0;

}

}

}

if(flag3==1)

{

if(hao2==0)

{

delay(5);

if(hao2==0)

{

TR1=0;

}

}

}

if(flag4==1)

{

if(hao3==0)

{

delay(5);

if(hao3==0)

{

TR1=0;

}

}

}

if(flag5==1)

{

if(hao4==0)

{

delay(5);

if(hao4==0)

{

TR1=0;

}

}

}

if(flag6==1)

{

if(hao5==0)

{

delay(5);

if(hao5==0)

{

TR1=0;

}

}

}

if(flag7==1)

{

if(hao6==0)

{

delay(5);

if(hao6==0)

{

TR1=0;

}

}

}

if(flag8==1)

{

if(hao7==0)

{

delay(5);

if(hao7==0)

{

TR1=0;

}

}

}

if(flag9==1)

{

if(hao8==0)

{

delay(5);

if(hao8==0)

{

TR1=0;

}

}

}

}

}

}

void display(uchar hao,uchar aa,uchar shi,uchar ge)

{

P0=0xff;

wela=1;

P0=0xfe;

wela=0;

P0=0;

dela=1;

P0=table[hao];

dela=0;

delay(5);

P0=0xff;

wela=1;

P0=0xfd;

wela=0;

P0=0;

dela=1;

P0=table[aa];

dela=0;

delay(5);

P0=0xff;

wela=1;

P0=0xfb;

wela=0;

P0=0;

dela=1;

P0=table[shi];

dela=0;

delay(5);

P0=0xff;

wela=1;

P0=0xf7;

wela=0;

P0=0;

dela=1;

P0=table[ge];

dela=0;

delay(5);

}

void init()

{

TMOD=0X11;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

EA=1;

ET0=1;

TH1=(65536-50000)/256;

TL1=(65536-50000)%256;

ET1=1;

num=30;

num1=0;

a1=0;

a=0;

shi=3;

ge=0;

flag1=0;

P2_6=0;

}

void timer0() interrupt 1

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

a++;

if(a==18)

{

a=0;

num--;

if(num==0)

{

num=0;

TR0=0;

}

shi=num/10;

ge=num%10;

}

}

void timer1() interrupt 3

{

TH1=(65536-50000)/256;

TL1=(65536-50000)%256;

a1++;

if(a1==18)

{

a1=0;

num1++;

if(num1==60)

{

P3=0xff;

P2_6=0;

P2_7=1;

TR1=0;

}

shi=num1/10;

ge=num1%10;

}

}

《基于74系列八路抢答器的设计》

>

以上就是关于八路数显抢答器工作原理全部的内容,包括:八路数显抢答器工作原理、八路抢答器怎么用单片机去实现,它需要哪些功能希望能给我一些实现八路抢答器的清晰思路,我不甚感激!!、求基于单片机的八路抢答器设计,要用到74LS47N和共阳led,求电路图和程序(最好是C),加急!!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/10006763.html

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

发表评论

登录后才能评论

评论列表(0条)

保存