導航:首頁 > 編程語言 > 搶答器c程序編程

搶答器c程序編程

發布時間:2025-01-31 01:58:30

A. 求一個由AT89C52單片機控制的八路搶答器的C語言程序設計

#include<reg51.h>
#define uchar unsigned char
uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f};
sbit rstkey=P2^2;
sbit speaker=P2^0;
void delay()//延時約400毫秒
{
uchar i,j;
for(i=0;i<200;i++)
for(j=0;j<250;j++);
}
main()
{
uchar i,key;
P2=0xff;
while(1)
{
i=0;
P1=table[i];
while(1)
{
key=P3;
if(key!=0)break;
}
switch(key)
{
case 0x01:i=1;break;
case 0x02:i=2;break;
case 0x04:i=3;break;
case 0x08:i=4;break;
case 0x10:i=5;break;
case 0x20:i=6;break;
case 0x40:i=7;break;
case 0x80:i=8;break;
default:break;
}
P1=table[i];//顯示按下搶答器的號
P0=key;//顯示按下鍵號的LED
while(1)
{
if(rstkey==0)break;//主持人按下復位鍵則重新開始
speaker=~speaker;//否則蜂鳴器報警
delay();
}
}
}

B. 幫我設計單片機課程設計實驗,用c語言程序寫,題目是:搶答器,要求製作一個四人搶答器,4個燈跑馬循環

#define PlayerKey1_IO (P0.1)
#define PlayerKey2_IO (P0.2)
#define PlayerKey3_IO (P0.3)
#define PlayerKey4_IO (P0.4)
#define PlayerLED1_IO (P1.1)
#define PlayerLED2_IO (P1.2)
#define PlayerLED3_IO (P1.3)
#define PlayerLED4_IO (P1.4)
#define BuzzerEnable_IO (P1.5)
void SysInit(void)
{
//設置Key_io為上拉輸入
//設置LED_io為通用輸出
//設置BuzzerEnable_io為通用輸出
}
unsigned char KeyScan(void)
{
if (PlayerKey1_IO == 0) return 1;
if (PlayerKey2_IO == 0) return 2;
if (PlayerKey3_IO == 0) return 3;
if (PlayerKey4_IO == 0) return 4;
return 0;
}
void Delay_Ms(unsigned char Nms)
{
volatile unsigned short tempcnt;
while (Nms--)
for (tempcnt = 0; tempcnt < 500; tempcnt++);//按照相應的參數配置計數上限,此處設為500
}
void main(void)
{
unsigned char MarqueeStep=0;
unsigned char KeyValue=0;
SysInit();
while (1)
{
Delay_Ms(400);
KeyValue = KeyScan(); //無按鍵去抖
if (KeyValue == 0)
{
MarqueeStep++;
if (MarqueeStep > 4) MarqueeStep = 0;
BuzzerEnable_IO = 0; // 按鍵取消停止蜂鳴器發聲
}
else
{
MarqueeStep = KeyValue;
BuzzerEnable_IO = 1; //蜂鳴器發聲
}
PlayerLED1_IO = 0;
PlayerLED2_IO = 0;
PlayerLED3_IO = 0;
PlayerLED4_IO = 0;
if (MarqueeStep == 0)
PlayerLED1_IO = 1;
else if (MarqueeStep == 1)
PlayerLED2_IO = 1;
else if (MarqueeStep == 2)
PlayerLED3_IO = 1;
else if (MarqueeStep == 3)
PlayerLED4_IO = 1;
}
}
基礎框架是這樣。

C. 求proteus單片機c語言程序代碼,四路搶答器

能把問題描述清楚看來程序實現對你來說不成問題,我用偽代碼給你寫出來你自己補充完整即可。
void main()
{
unsigned char key,cont;
bit flag = 0;
初始化IO口;\\關閉紅燈點亮綠燈,數碼管顯示0
while(1)
{
key = P1&0xF;
if(key!=0xF)
{
/*按下的按鍵相應綠燈關閉*/
LED_G1 = (bit)(key&0x1);
LED_G2 = (bit)(key&0x2);
LED_G3 = (bit)(key&0x4);
LED_G4 = (bit)(key&0x8);
/*按下的按鍵相應紅色LED閃爍*/
for(cont=0;cont<5;cont++)
{
LED_R1 = (~LED_G1)|flag;
LED_R2 = (~LED_G2)|flag;
LED_R3= (~LED_G3)|flag;
LED_R4 = (~LED_G4)|flag;
Delay();//延時
flag = ~flag;
}
關閉所有紅色LED並開啟所有綠色LED;
}
}
}

注意:代碼是允許有同時按下的情況,當然也可以改為不允許同時按下的情況發生,即如果發生同時按下則隨便選擇一個按鍵,這樣覺得有點不公平。

D. Verilog編寫四人搶答器

mole dj(a,b,c,d,clk,res,led1,led2,led3,led4);
input a,b,c,d;
input clk,res;
output led1,led2,led3,led4;
reg led1,led2,led3,led4;
reg k;

always @(clk)
begin
if(res==0)
begin
led1<=0;
led2<=0;
led3<=0;
led4<=0;
k<=0;
end
else
begin
if(k==0)
begin
if(a)
begin
led1<=1;
k<=1;
end
else
if(b)
begin
led2<=1;
k<=1;
end
else
if(c)
begin
led3<=1;
k<=1;
end
if(d)
begin
led4<=1;
k<=1;
end

end
end
end
endmole

E. 怎麼設計基於51單片機的八位搶答器課程設計用c語言

你的描述不詳:下面我給出方法,自已參考:
1:主持人端有一個單片機設備 且設備有一個或多個按鍵,單個按鍵,那麼就做成按鍵復用,如果是多個按鍵,那就可以按要求設置按鍵功能和數量。參賽隊每隊一個設備,如果不方便能過連線來通訊,就採用無線通訊,搶答端只需一個按鍵按鍵,同時在按鍵里或邊上用指示燈來指示狀誠。
2:邏輯,當主持人按下搶答鍵時,主持人端設備向8個參賽隊發送搶答開始信號數據,參賽隊8個設備向主持端應答,判斷收到應答後,開始計時10秒,某一隊按下按鍵時,這隊會向主持端發送本隊的編號即可,說到這里,後面的基本上都是一樣的原理,就是收發數據,應答,判斷數據類型和功能。即可達到你的要求。

閱讀全文

與搶答器c程序編程相關的資料

熱點內容
php正整數驗證 瀏覽:363
有個腹黑程序員男友是什麼體驗 瀏覽:110
pdf添加文本框 瀏覽:770
系統文件夾很大沒有文件 瀏覽:74
蘇寧電器app如何還分期 瀏覽:635
蘋果怎麼在主屏幕創建文件夾 瀏覽:627
河南雲伺服器租用虛擬主機 瀏覽:361
centos修改ip命令 瀏覽:779
租用伺服器屬於什麼服務類型 瀏覽:135
英雄聯盟說沒有網路連接到伺服器地址 瀏覽:28
單片機周期信號波形識別 瀏覽:42
演算法驅動的成長史 瀏覽:936
好又省APP怎麼用 瀏覽:576
pdf在線格式轉換jpg格式轉換器 瀏覽:868
中興捧月演算法大賽第二場 瀏覽:15
穿雲伺服器 瀏覽:394
單片機核心電壓表 瀏覽:151
最強大逃頂通達信指標源碼 瀏覽:441
java程序員面試寶典歐立奇 瀏覽:457
cad命令不要跟著游標 瀏覽:200