本文目錄一覽:
AT89C51單片機8路搶答器C語言代碼怎麼寫,急用,謝謝了
這個代碼沒有問題,我模擬過:
#includereg51.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;i200;i++)
for(j=0;j250;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();
}
}
}
設計一個8位競賽搶答器 求c語言程序,thank you
代碼如下:
i=2;break;
if(key==0)break;250;
sbit rstkey=P2^2;/
case 0x08:break;
case 0x04;200;j++);
default;/
#define uchar unsigned char
uchar table[]={0x3f,0x4f;break,0x06;/
P2=0xff:i=8,0x6d:i=6;
}
switch(key)
{
case 0x01,0x7f};i
case 0x80;reg51:i=7:i=1:i=3;
void delay()/,0x66;
case 0x40,0x7d:i=4;break;
}
P1=table[i];break;
case 0x10:i=5,0×07,j;
P1=table[i];break;
while(1)
{
i=0;jbreak;
case 0x02,0x5b;延時約400毫秒
{
uchar i;
for(i=0;break;
while(1)
{
key=P3,key;
case 0x20;i++)
for(j=0;/.hbreak;否則蜂鳴器報警
delay();顯示按下鍵號的LED
while(1)
{
if(rstkey==0)break;/
sbit speaker=P2^0;主持人按下複位鍵則重新開始
speaker=~speaker#include顯示按下搶答器的號
P0=key;
}
main()
{
uchar i
怎麼設計基於51單片機的八位搶答器課程設計用c語言?
你的描述不詳:下面我給出方法,自已參考:
1:主持人端有一個單片機設備 且設備有一個或多個按鍵,單個按鍵,那麼就做成按鍵復用,如果是多個按鍵,那就可以按要求設置按鍵功能和數量。參賽隊每隊一個設備,如果不方便能過連線來通訊,就採用無線通訊,搶答端只需一個按鍵按鍵,同時在按鍵里或邊上用指示燈來指示狀誠。
2:邏輯,當主持人按下搶答鍵時,主持人端設備向8個參賽隊發送搶答開始信號數據,參賽隊8個設備向主持端應答,判斷收到應答後,開始計時10秒,某一隊按下按鍵時,這隊會向主持端發送本隊的編號即可,說到這裡,後面的基本上都是一樣的原理,就是收發數據,應答,判斷數據類型和功能。即可達到你的要求。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/183282.html