|
設計要求:
1、電路使用7個發光二極管表示拔河的“電子繩”,開機后只有中間一個發亮,此即拔河的中心點。游戲甲乙雙方各持一個按鈕,迅速地、不斷地按動產生脈沖,誰按得快,亮點向誰方向移動,每按一次,亮點移動一次。亮點移到任一方終端二極管,這一方就獲勝,此時雙方按鈕均無作用,輸出保持,只有復位后才使亮點恢復到中心。
2、用數碼管顯示獲勝者的盤數,每次比賽結束自動給獲勝方加分。
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit K1=P1^0; //主持操作按鍵人顯示開始
sbit K2=P1^1; //參賽者1按鍵
sbit K3=P1^2; //參賽者2按鍵
uchar count=3; //兩人按鍵處理該參數作為自加或者自減運算 0 1 2《==自減3==》自加 4 5 6
uchar k=0,M=0; //分別記錄兩人勝的次數
uchar flag; //每局勝出標志位
//uchar code DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
//單個共地數碼管段碼0到9
uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //段碼表段位,共陽數碼管顯示0到9
uchar code DSY_IDX[]={0x01,0x02,0x04,0x08,0x10,0x20}; //位碼表 第6位為控制LED位碼
uchar code DSY_IDC[]={0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
void delayms(uchar n) //延時ms函數
{
uchar i;
while(n--)
for(i=0;i<120;i++);
}
void delay(uchar t) //延時函數
{
uchar i,p,j;
for(i=0;i<t;i++)
{
for(p=13;j>0;j--);
{ ;
}
}
}
void main()
{
while(1)
{
P2=DSY_IDX[0];P0=DSY_CODE[k];delay(50);
P2=DSY_IDX[1];P0=DSY_CODE[M];delay(50);
flag=1;
if(!K1) //主持人按鍵開始后參賽者按鍵才有效
{
delayms(20);//延時20ms按鍵消抖
if(!K1)//再次確認按鍵是否真的被按下
{
while(!K1);
while(flag)
{
if(!K2)
{
delayms(20);//延時20ms按鍵消抖
if(!K2)//再次確認按鍵是否真的被按下
{
count--;
while(!K2);
}
}
if(!K3)
{
delayms(20);//延時20ms按鍵消抖
if(!K3)//再次確認按鍵是否真的被按下
{
count++;
while(!K3);
}
}
switch(count)
{
case 0:k=k+1;P2=DSY_IDX[5]; P0=DSY_IDC[0];delayms(10); flag=0; count=3;
break;
case 1:P2=DSY_IDX[5]; P0=DSY_IDC[1];delayms(10);
break;
case 2:P2=DSY_IDX[5]; P0=DSY_IDC[2]; delayms(10);
break;
case 3: P2=DSY_IDX[5]; P0=DSY_IDC[3];delayms(10);
break;
case 4:P2=DSY_IDX[5]; P0=DSY_IDC[4]; delayms(10);
break;
case 5:P2=DSY_IDX[5]; P0=DSY_IDC[5]; delayms(10);
break;
case 6:M=M+1;P2=DSY_IDX[5]; P0=DSY_IDC[6];delayms(10);flag=0; count=3;
break;
}
if(!K1) //主持人按鍵開始后參賽者按鍵才有效
{
delayms(20);//延時20ms按鍵消抖
if(!K1)//再次確認按鍵是否真的被按下
{
flag=0;
count=3;
P2=DSY_IDX[5];
P0=DSY_IDC[3];//中間那盞燈亮對應P13口
while(!K1); //確認按鍵松開
}
}
}
}
}
}
}
設計者吳柱俊,微信:wu-zhu-jun ,貼吧號:wife101
|
-
-
單片機設計的電子拔河比賽.rar
2019-5-2 20:52 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
147.58 KB, 下載次數: 74, 下載積分: 黑幣 -5
評分
-
查看全部評分
|