|
單片機8位搶答器及仿真和源程序 希望對大家有用
0.png (21.24 KB, 下載次數(shù): 61)
下載附件
2017-6-14 17:39 上傳
0.png (45.57 KB, 下載次數(shù): 78)
下載附件
2017-6-14 17:40 上傳
單片機源程序如下:
- //名稱:八路搶答器
- //功能:主持人按下按鍵開始搶答,此時搶答燈閃爍
- //十秒內(nèi)搶答,如果沒有搶答的則直接復(fù)位
- //如果有人搶答成功,則其他人搶答無效,60s內(nèi)答完超過60s自動復(fù)位
- //回答期間搶答燈常亮,回答的人方燈閃爍,直到回答完畢,燈常亮表明回答有效
- //如果超過60s自動復(fù)位,回答結(jié)束主持人打開按鍵,復(fù)位。
- #include<reg51.H>
- sbit Presenter=P2^0;
- sbit K=P3^2;
- bit Presenter_flag=0,flag;//主持人按鍵標(biāo)志位,僅允許一個數(shù)據(jù)通過標(biāo)志位
- unsigned char Timer=0,i; //時間標(biāo)志
- unsigned char ren=0xff;
- bit x=0;
- void System_Init();
- void System_Rest();
- void main()
- {
- System_Init();
- while(1)
- {
- if(Presenter_flag) //主持人按鍵按下時開始系統(tǒng)
- {
- K=1;
- if(K==1) //主持人按鍵起開
- {break;
- Presenter_flag=0;
- }
- }
- else
- System_Rest();
- }
- }
- void System_Init()
- {
- EA=1; //打開中斷
- EX0=1;
- IT0=1;
- TMOD=0x01;
- ET0=1;
- TH0=(65535-50000)/256; //50ms
- TL0=(65535-50000)%256;
- Presenter=0;
- TR0=0;
- }
- void System_Rest()
- {
- P0=0xff; //復(fù)位設(shè)置:在主持人按鍵起開或者,搶答時間超過10s或者答題時間超過60s
- P1=0xff;
- TR0=0;
- Presenter=0;
- flag=1;
- i=0;
- Timer=0;
- }
- void into() interrupt 0
- {
- Presenter_flag=1;//主持人按鍵按下
- TR0=1;
- }
- void Timer0() interrupt 1
- {
- TH0=(65535-50000)/256;
- TL0=(65535-50000)%256;
- i++;
- if(i==20) //1s鐘
- {
- i=0;
- Timer++;
- P1=0xff;
- if((Timer<10)&&(P1==0xff)&&(flag==1)) //10s搶答時間,10s內(nèi)如果無人搶答則復(fù)位
- {
- Presenter=~Presenter; //搶答指示燈閃爍
- }
- else if((Timer>=10)&&(P1==0xff)&&(flag==1))
- {
- Presenter_flag=0;
- Timer=0;
- i=0;
- }
- P1=0xff;
- if((Timer<=60)&&(P1!=0xff)&&(flag==1)) //答題時間,60s沒答完則復(fù)位
- {
- ren=P1;
- Presenter=1;
- flag=0;
- }
- if(flag==0)
- {
- if(x==0)
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
八位搶答器.zip
(72.99 KB, 下載次數(shù): 34)
2017-6-14 16:07 上傳
點擊文件名下載附件
仿真及程序 下載積分: 黑幣 -5
|
評分
-
查看全部評分
|