欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
單片機(jī)搶答器程序
[打印本頁]
作者:
晨小小小
時間:
2016-6-25 11:53
標(biāo)題:
單片機(jī)搶答器程序
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit key9=P2^0; //主持人清除鍵
sbit key10=P2^1; //主持人非定時搶答開啟鍵
sbit key11=P2^2; //主持人定時搶答開啟鍵
sbit wei1=P2^4; //數(shù)碼管位選段
sbit wei2=P2^5;
sbit wei3=P2^6;
sbit wei4=P2^7;
sbit contr=P2^3;
uchar code seg7[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71
}; //共陰極數(shù)碼管顯示編碼
//定義搶答時間,中斷次數(shù),選手編號三個全局變量
uchar time=30,count,playernum;
//存儲8個選手按鍵狀態(tài),若對應(yīng)選手按鍵被按下,則
//相應(yīng)存儲位置存儲選手編號,否則對應(yīng)存儲位置存儲數(shù)字0
uchar num[8];
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void display(uchar time,uchar num) //數(shù)碼管顯示函數(shù)
{
uchar shi,ge;
shi=time/10; //顯示搶答時間
ge=time%10;
P0=seg7[shi]; //段選數(shù)據(jù)
wei1=0; //位選數(shù)據(jù)
delayms(10);
wei1=1;
P0=seg7[ge];
wei2=0;
delayms(10);
wei2=1;
shi=num/10; //顯示選手編號
ge=num%10;
P0=seg7[shi];
wei3=0;
delayms(10);
wei3=1;
P0=seg7[ge];
wei4=0;
delayms(10);
wei4=1;
}
void keyscan()
{
if(key9==0) //主持人清除鍵
{
delayms(2);
if(key9==0)
{
while(!key9) ;
P3=0xff; //關(guān)閉和被按下?lián)尨疰I對應(yīng)的發(fā)光二極管
time=0; //清除搶答時間
contr=1; //開發(fā)搶答按鈕輸入
playernum=0; //清除選手編號
TR0=0; //關(guān)閉定時器
}
}
if(key10==0) //非定時搶答開始鍵
{
delayms(2);
if(key10==0)
{
while(!key10);
contr=0; //只允許首先按下?lián)尨疰I者的狀態(tài)輸入
time=0; //清除時間
TR0=0; //關(guān)閉定時器
}
}
if(key11==0) //定時搶答開啟鍵
{
delayms(2);
if(key11==0)
{
while(!key11);
contr=0; //只允許首先按下?lián)尨疰I者的狀態(tài)輸入
time=30; //初始化搶答時間
TR0=1; //開啟定時器
}
}
}
void getplayernum() //獲取搶答鍵被按下編號
{
uchar i,temp;
temp=P1;
P3=P1; //將被按下的搶答鍵對應(yīng)二極管點(diǎn)亮
for(i=0;i<8;i++)
{
temp=temp>>1;
if(CY==0) //該選手按下?lián)尨疰I
{
num[i]=(i+1);
}
else
num[i]=0;
}
}
void main()
{
uchar i;
P2=0xFF;
TMOD=0x01; //定時器0工作在方式1
TH0=(65536-50000)/256; //定時時間50ms
TL0=(65536-50000)%256;
EA=1;
ET0=1;
while(1)
{
keyscan();
getplayernum();
for(i=0;i<8;i++)
{
if(num[i]!=0)
{
playernum=num[i];
}
display(time,playernum); //顯示搶答鍵被按下編號和時間
}
}
}
void timer0_int() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
count++;
if(count==20)
{
time--;
if(time==0)
time=30;
count=0;
}
TR0=1;
}
復(fù)制代碼
作者:
MX安心
時間:
2016-6-26 19:19
ww位學(xué)習(xí)了最好弄個圖
作者:
wangpanbest
時間:
2017-9-19 10:21
求大神哥哥給個圖啊
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1