久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
關于如何實現單片機六路搶答器,希望前輩大佬幫忙看看電路圖和程序錯在哪里
[打印本頁]
作者:
gwy666
時間:
2020-4-28 10:51
標題:
關于如何實現單片機六路搶答器,希望前輩大佬幫忙看看電路圖和程序錯在哪里
`UU~67`V0Z6%}N9LC7{W.png
(22.03 KB, 下載次數: 11)
下載附件
電路圖
2020-4-28 10:47 上傳
要求:
其中主持人操控兩個按鍵。選手共六位,分別操控一個按鍵。當主持人按下搶答開始按鍵后,倒計時開始,計時5s。此后最先按下按鍵的選手號碼將顯示在數碼管上。后來按下的將無顯示。若五秒計時結束后,再按下按鍵也不會顯示。若主持人沒有按開始鍵,就有選手搶答,則視為犯規。此時犯規的選手號碼將被顯示于數碼管上(最多顯示五位犯規選手)。同時,蜂鳴器發出長笛聲報警,數碼管全亮。
單片機源程序如下:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit dula=P2^0;
sbit wela=P2^1;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07};
sbit key1=P1^0;
sbit key2=P1^1;
sbit key3=P1^2;
sbit key4=P1^3;
sbit key5=P1^4;
sbit key6=P1^5;
sbit start=P1^6;
sbit beep=P1^7;
int num=0;
uchar count;
uchar second=5;
//延時子函數
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
//定時器函數
void timer()
{
TMOD=0x01;//選定工作方式
TH0=(65536-45872)/256;//裝初值11.0592M晶振定時50ms數為45872
TL0=(65536-45872)%256;
EA=1;//開總中斷
ET0=1;//開定時器0中斷
}
//定時中斷函數
void timer0()interrupt 1 using 1
{
TH0=(65536-45872)/256;//裝初值11.0592M晶振定時50ms數為45872
TL0=(65536-45872)%256;
TR0=1;//啟動定時器0
count++;//計數一次50ms,20次為1秒
if (count==20)
{
count=0;
if (second>=1)
{
second--;//秒減1
if(second==0)
{
wela=0;
dula=0;
delayms(5);
}
}
}
}
//倒計時顯示函數
void djsxs()
{
dula=1;
P0=table[second];
dula=0;
P0=0xff;
wela=1;
P0=0xfe;
wela=0;
}
//按鍵檢測程序
void keyscan()
{
if(key1==0)
{
dula=1;
P0=0x06;
dula=0;
beep=1;
P0=0xff;
wela=1;
P0=0xfe;
wela=0;
delayms(5);
}
else if(key2==0)
{
dula=1;
P0=0x5b;
dula=0;
P0=0xff;
wela=1;
P2=0xfd;
wela=0;
delayms(5);
}
else if(key3==0)
{
dula=1;
P0=0x4f;
dula=0;
P0=0xff;
beep=1;
wela=1;
P2=0xfb;
wela=0;
delayms(5);
}
else if(key4==0)
{
dula=1;
P0=0x66;
dula=0;
P0=0xff;
beep=1;
wela=1;
P2=0xf7;
wela=0;
delayms(5);
}
else if(key5==0)
{
dula=1;
P0=0x6d;
dula=0;
P0=0xff;
beep=1;
wela=1;
P2=0xEF;
wela=0;
delayms(5);
}
else if(key6==0)
{
dula=1;
P0=0x7d;
dula=0;
P0=0xff;
beep=1;
wela=1;
P2=0xDF;
wela=0;
delayms(5);
}
}
//主函數
main()
{
if (start==0)
timer();
djsxs();
{
bit flag=0;//定義flag,方便跳出
while(!flag)
if(key1==0)//如果一號選手按下搶答器
{
dula=1;//打開鎖存端
P0=table[1];//數碼管顯示一號選手
dula=0;//關閉鎖存端
P0=0xff;
wela=1;//打開鎖存端(開頭記得聲明鎖存端)
P0=0xFE;//送入位選信息,選擇第一位
wela=0;//關閉鎖存端
flag=1;//使flag等于一,跳出程序
delayms(5);
}
else if(key2==0)
{
dula=1;
P0=table[2];
dula=0;
P0=0Xff;
wela=1;
P0=0xFE
wela=0
flag=1;
delayms(5);
}
else if(key3==0)
{
dula=1;
P0=table[3];
dula=0;
P0=0Xff;
wela=1;
P0=0xFE;
wela=0;
flag=1;
delayms(5);
}
else if(key4==0)
{
dula=1;
P0=table[4];
dula=0;
P0=0Xff;
wela=1;
P0=0xFE
wela=0;
flag=1;
delayms(5);
}
else if(key5==0)
{
dula=1;
P0=table[5];
dula=0;
P0=0xff;
wela=1;
P0=0xFE;
wela=0;
flag=1;
delayms(5);
}
else if(key6==0)
{
dula=1;
P0=table[6];
dula=0;
P0=0Xff;
wela=1;
P0=0xFE;
wela=0;
flag=1;
delayms(5);
}
if(start==1)
{
keyscan();
if (key1==0)
{
num++;
}
else if (key2==0)
{
num++;
}
else if (key3==0)
{
num++;
}
else if (key4==1)
{
num++;
}
else if (key5==0)
{
num++;
}
else if (key6==0)
{
num++;
}
if (num>5)
{
num=0;
wela=0;
dula=0;
}
}
}
}
復制代碼
作者:
xxpp2011
時間:
2020-4-28 20:54
本站有很多8路搶答器的例子可以參考,功能應該都差不多。
作者:
wc86110
時間:
2020-4-29 01:44
看仿真圖這硬件電路肯定有問題
作者:
boxbox123
時間:
2020-4-29 07:56
可以去網上參考下
作者:
凌某
時間:
2020-4-30 08:19
可以參考論壇里的 一些設計
作者:
77777770
時間:
2023-12-20 11:03
有的分號都沒加,下到單片機了也沒用,根本沒有用
作者:
77777770
時間:
2023-12-20 11:03
有的分號都沒加,下到單片機了也沒用,根本沒有用
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
国产精品一区二区三区99
|
欧美日韩1区2区3区 欧美久久一区
|
高清一区二区三区
|
91精品国产一区二区三区蜜臀
|
天天爽夜夜爽精品视频婷婷
|
亚洲一区视频在线
|
欧美一区日韩一区
|
国产乱码一二三区精品
|
狠狠干天天干
|
国产欧美在线观看
|
亚洲精品在线看
|
欧美一区二区三
|
视频在线亚洲
|
亚洲人在线观看视频
|
91毛片在线观看
|
日韩电影免费在线观看中文字幕
|
成人a免费
|
91精品久久久久久久久久
|
国精日本亚洲欧州国产中文久久
|
激情一区
|
中文字幕亚洲精品在线观看
|
人人性人人性碰国产
|
成人二区
|
久草免费在线视频
|
国产一区二区三区久久久久久久久
|
国产欧美视频一区二区
|
91免费版在线观看
|
黑人精品xxx一区一二区
|
av在线一区二区三区
|
理论片免费在线观看
|
国产精品亚洲一区二区三区在线观看
|
在线观看免费福利
|
久久精品国产免费看久久精品
|
精品免费在线
|
毛片一级片
|
日日噜噜夜夜爽爽狠狠
|
日韩成人在线播放
|
777毛片
|
亚洲国产情侣自拍
|
国产一区二区三区在线
|
日韩成人免费在线视频
|