加入星計劃,您可以享受以下權益:

  • 創(chuàng)作內容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入

基于51單片機籃球計時器計分器設計(源碼+原理圖+PCB+仿真+設計報告+講解視頻)

10/01 13:51
5111
服務支持:
技術交流群

完成交易后在“購買成功”頁面掃碼入群,即可與技術大咖們分享疑惑和經(jīng)驗、收獲成長和認同、領取優(yōu)惠和紅包等。

虛擬商品不可退

當前內容為數(shù)字版權作品,購買后不支持退換且無法轉移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論
放大
實物圖
相關方案
  • 方案介紹
    • 講解視頻
    • 1 設計要求:
    • 講解視頻
    • 2 仿真圖:
    • 3 原理圖:
    • 4 程序:
    • 5 報告:
    • 6 資料清單&&網(wǎng)盤下載鏈接:
  • 相關文件
  • 相關推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

仿真:proteus 7.8

程序編譯器:keil 4/keil 5

編程語言:C語言

編號C0004

電路采用單片機作為核心元件,利用兩個供陰的三位一體數(shù)碼管來顯示兩隊的分數(shù),一個四位一體數(shù)碼管顯示時間的計時。顯示分數(shù)范圍可達0~999分,足夠賽程計分的需要。四位一體數(shù)碼管中2個用于顯示分鐘,2個用于顯示秒鐘。

該系統(tǒng)具有賽程定時設置,賽程時間暫停,及時刷新甲、乙雙方的成績等功能。設計分為軟件設計和硬件設計兩部分。主控芯片采用AT89C51,使用C語言編寫軟件程序,主體分為計時顯示模塊、計分顯示模塊、定時報警、按鍵控制模塊。編程后利用Keil C51軟件來進行編譯,再將生成的HEX文件裝入芯片中,檢驗功能是否能夠正常實現(xiàn)。

講解視頻


51單片機籃球計分器(程序+仿真+原理圖+報告)

1 設計要求:

1、能記錄整個賽程的比賽時間,并能修改時間,暫停比賽時間。

2、能隨時刷新甲、乙兩隊在整個賽程中的比分。

3、場中交換比賽場地時,能交換甲、乙兩隊比分的位置。

4、比賽時間結束時,能發(fā)出報警指令。

5、有24秒倒計時功能,可通過按鍵隨時復位24秒,如果24秒違例會啟動蜂鳴器報警,同時比賽時間暫停,處理好后按一下24秒復位鍵,比賽繼續(xù)。

二、實現(xiàn)功能:

1、一個四位一體數(shù)碼管顯示比賽時間,時間格式如:15:00,兩個三位一體數(shù)碼管顯示甲乙兩對的比分,比分格式如:008。

2、比賽時間采用倒計時方式,以一秒的頻率減時,上電時默認初值為15:00,在沒有開始比賽時,可以修改時間,比賽開始后不能修改。

3、甲乙隊比分采用三位數(shù),上電初值為000,最大值為999,滿足常理要求,未開始比賽以及比賽結束后比分無法加減,

4、比賽未開始之前,可以通過ADD1、DEC1鍵對比較時間的分鐘進調時,通過ADD2、DEC2鍵對比較時間的秒進行調時。

5、可隨時暫停/啟動比賽時間。

6、比賽進行時,可以通過ADD1、DEC1鍵對甲隊比分加、減,可以通過ADD2、DEC2對乙隊比分加、減。每按一次鍵,加/減1分。

7、當一節(jié)比賽完后,可以通過(EXCHANGE)換場鍵換場,換場后,比分交換顯示,交換后,下一節(jié)比賽開始時,相應的比分加減鍵也隨之交換。

8、當比賽結束時,發(fā)出報警。

三、作用說明:

1、調整比賽時間:插上電源后,系列默認比賽時間為15:00,甲乙隊比分默認000,此時按下ADD1鍵,可以對比賽時間分鐘加1,按下DEC1鍵,可以對比賽時間的分鐘減1,按下ADD2鍵,可以對比賽時間秒加1,按下DEC2鍵,可以對比賽時間秒減1。

2、啟動比賽:按下RUN/STOP鍵,計時開始,比賽時間以1秒的頻率倒計時。

3、暫停比賽:比賽運行的狀態(tài)下,按RUN/STOP鍵,比賽暫停,計時暫停。

4、比分加減,在比賽進行的狀態(tài)下按ADD1,DEC1鍵,可以對甲隊比分加、減1,按ADD2、DEC2鍵,可以對乙隊比分加、減1.

5、交換場地:在一節(jié)比賽時間結束后,按下EXCHANGE鍵,比賽時間重新預置為15:00,同時左右兩邊數(shù)碼管的比分交換顯示。此時按下啟動鍵可以開始新一節(jié)的比賽。

6、報警提示:在一節(jié)比賽時間倒計時到00:00時,蜂鳴器發(fā)出報警提示。

7、比賽時,24秒會以1秒的速度減,可隨時按下24秒復位鍵重置24秒。

講解視頻

包含仿真講解和代碼講解,詳情見壓縮包內

2 仿真圖:

img

3 原理圖:

img

4 程序:

顯示函數(shù)

void display(void)
{
//-----------顯示時間分--------------
	LEDData=LEDCode[minit/10];
	led1=0;
	Delay5ms();
	led1=1;
	LEDData=LEDCode[minit%10];
	led2=0;
	Delay5ms();
	led2=1;
//-------------秒點閃動------------
	if(halfsecond==1)
		LEDData=0x7f;
	else
		LEDData=0xff;
	led2=0;
	Delay5ms();
	led2=1;
	secondpoint=0;
//-----------顯示時間秒------------
	LEDData=LEDCode[second/10];
	led3=0;
	Delay5ms();
	led3=1;
	LEDData=LEDCode[second%10];
	led4=0;
	Delay5ms();
	led4=1;
//-----------顯示1組的分數(shù)百位-------
	if(AorB==0)
		LEDData=LEDCode[scoreA/100];
	else
		LEDData=LEDCode[scoreB/100];
	led5=0;
	Delay5ms();
	led5=1;
//---------------顯示1組分數(shù)的十位-----------
	if(AorB==0)
		LEDData=LEDCode[(scoreA%100)/10];
	else
		LEDData=LEDCode[(scoreB%100)/10];
	led6=0;
	Delay5ms();
	led6=1;

//---------------顯示1組分數(shù)的個位-----------
	if(AorB==0)
		LEDData=LEDCode[scoreA%10];
	else
		LEDData=LEDCode[scoreB%10];
	led7=0;
	Delay5ms();
	led7=1;

//-----------顯示2組分數(shù)的百位-------
	if(AorB==1)
		LEDData=LEDCode[scoreA/100];
	else
		LEDData=LEDCode[scoreB/100];
	led8=0;
	Delay5ms();
	led8=1;
//-----------顯示2組分數(shù)的十位-----------
	if(AorB==1)
		LEDData=LEDCode[(scoreA%100)/10];
	else
		LEDData=LEDCode[(scoreB%100)/10];
	led9=0;
	Delay5ms();
	led9=1;

//-----------顯示2組分數(shù)的個位-----------
	if(AorB==1)
		LEDData=LEDCode[scoreA%10];
	else
		LEDData=LEDCode[scoreB%10];
	led10=0;
	Delay5ms();
	led10=1;

//-----------顯示時間分--------------
	LEDData=LEDCode[sec24/10];
	led11=0;
	Delay5ms();
	led11=1;
	LEDData=LEDCode[sec24%10];
	led12=0;
	Delay5ms();
	led12=1;
}

main函數(shù)

//******************************主函數(shù)*************************************************
void main(void)
{
	TMOD=0x11;
 	TL0=0xb0;
 	TH0=0x3c;
 	TL1=0xb0;
 	TH1=0x3c;
	minit=min;				//初始值為15:00
	second=sec;
 	EA=1;
	ET0=1;
	ET1=1;
 	TR0=0;
	TR1=0;
	EX0=1;
	IT0=1;
	IT1=1;
//	EX1=1;
	PX0=1;
//	PX1=1;
	PT0=0;
	P1=0xFF;
	P3=0xFF;
	alam=1;
 	while(1)
 	{
		keyscan();
		display();			
    }
}


void PxInt0(void) interrupt 0
{
	Delay5ms();
	EX0=0;
	alam=1;
	TR1=0;
	if(timeover==1)
	{
		timeover=0;
	}

	if(playon==0)
	{
		playon=1;				//開始標志位
		TR0=1;					//開啟計時
		
		if((minit+second)==0)
		{
			sec24=24;
			minit=min;			
			second=sec;
		}
	}
	else
	{
		playon=0;				//開始標志位清零,表示暫停
		TR0=0;					//暫時計時
	}	
	EX0=1;						//開中斷	
}

image-20231031010452699

5 報告:

8615字設計報告附贈開題報告

image-20231031010459882

器件清單:

籃球計分器元件清單

1) 萬用板9*15

2) stc89C51單片機

3) 40腳IC座

4) 0.36四位一體共陽數(shù)碼管

5) 0.36三位一體共陽數(shù)碼管*2

6) 0.36兩位一體共陽數(shù)碼管

7) 10K排阻(103)

8) 2.2K電阻*13

9) 10K電阻

10) 10uF電容

11) 按鍵*7

12) 12M晶振

13) 30P電容 *2

14) 9012三極管*13

15) 蜂鳴器

16) DC電源插座

17) 自鎖開關

18) 導線若干

19) 焊錫若干

USB電源線(電池盒+DC插頭)

6 資料清單&&網(wǎng)盤下載鏈接:

資料下載地址

image-20231031010536344

  • 設計資料獲取聯(lián)系方式.doc

相關推薦

電子產(chǎn)業(yè)圖譜