• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

基于51單片機的籃球計分【2隊,數(shù)碼管,獨立按鍵】(仿真)

2024/12/06
2011
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

有需要資料的可了解一下.docx

共1個文件

籃球比賽賽場的計時計分器。

1.在整個比賽過程中記錄比賽時間和改變比賽時間。

2.可以在比賽期間隨時更新A和B隊的比分。

3中場休息期間交換場地,交換A隊和B隊的位置。

4.當添加比賽分數(shù)時,如果有錯誤,可以手動更改賽場分數(shù)。

5.賽事結(jié)束時可以觸發(fā)警報。

bit k4=P3^3;
sbit k5=P3^4;
sbit k6=P3^6;
sbit k7=P3^7;
sbit beep=P3^5;//蜂鳴器
sbit led1=P1^6;//LED
sbit led2=P1^7;
sbit smg1=P2^0;//數(shù)碼管
sbit smg2=P2^1;
sbit smg3=P2^2;
sbit smg4=P2^3;
sbit smg5=P2^4;
sbit smg6=P2^5;
sbit smg7=P2^6;
sbit smg8=P2^7;

//數(shù)碼管編碼
uchar code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar time=0,mode=0;//系統(tǒng)變量
uchar fena=0,fenb=0,flag=0;//分數(shù)
uchar start=0;//啟動
uchar fen=0,miao=0;//計時
uchar beep_time=0;//蜂鳴器計時

//延時
void delay(uint i)
{
	while(i--);
}

void main()//主函數(shù)
{
	uchar k=0;
	beep=0;
	TMOD|=0X11;//定時器設(shè)置
	TH0=0X3C;
	TL0=0XB0;
	TH1=(65536-1000)/256;
	TL1=(65536-1000)%256;
	ET1=1;	
	ET0=1;//打開定時器0中斷允許
	EA=1;//打開總中斷
	TR0=1;//打開定時器
	while(1)
	{
		//點亮LED
		if(start==0)
		{
			led1=1;
			led2=1;
		} 
		if(start==1)
		{
			led1=0;
			led2=1;
		}
		if(start==2)
		{
			led1=1;
			led2=0;
		}
		//顯示時間
		P0=smgduan[fen/10];
		smg1=0;
		delay(100);
		smg1=1;
		P0=smgduan[fen%10]+0x80;
		smg2=0;
		delay(100);
		smg2=1;
		P0=smgduan[miao/10];
		smg3=0;
		delay(100);
		smg3=1;
		P0=smgduan[miao%10];
		smg4=0;
		delay(100);
		smg4=1;
		//顯示分數(shù)
		if(flag==0)
			P0=smgduan[fena/10];
		else
			P0=smgduan[fenb/10];
		smg5=0;
		delay(100);
		smg5=1;
			if(flag==0)
			P0=smgduan[fena%10];
		else
			P0=smgduan[fenb%10];
		smg6=0;
		delay(100);
		smg6=1;

		if(flag==1)
			P0=smgduan[fena/10];
		else
			P0=smgduan[fenb/10];
		smg7=0;
		delay(100);
		smg7=1;
			if(flag==1)
			P0=smgduan[fena%10];
		else
			P0=smgduan[fenb%10];
		smg8=0;
		delay(100);

資料借鑒于此紛傳

  • 有需要資料的可了解一下.docx
    下載

相關(guān)推薦