• 方案介紹
    • 1.? 簡(jiǎn)介
    • 2.? 主要功能
    • 3.? 源程序(Keil5)
    • 4.? 仿真proteus8.6
    • 5.? 設(shè)計(jì)報(bào)告
    • 6.? 資料清單
    • 7.? 資料獲取鏈接
  • 附件下載
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

基于51單片機(jī)的多功能籃球積分計(jì)時(shí)器設(shè)計(jì)(二)!!!

04/08 09:23
580
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

單片機(jī)仿真設(shè)計(jì)合集資料獲取.pdf

共1個(gè)文件

資料清單:C程序+仿真+設(shè)計(jì)報(bào)告+使用說明+元件清單+操作視頻

仿真版本:Proteus8.6及以上版本

程序編譯:Keil5 C51

編程語言:C語言

設(shè)計(jì)編號(hào):【D07】

1.? 簡(jiǎn)介

? 本文介紹一種用AT89C51作為核心部件進(jìn)行邏輯控制及信號(hào)產(chǎn)生的單片機(jī)技術(shù)和C語言編程設(shè)計(jì)的籃球比賽計(jì)時(shí)器。此籃球計(jì)時(shí)計(jì)分器在硬件方面主要采用AT89C51單片機(jī)作為主控核心,由矩陣鍵盤、蜂鳴器數(shù)碼管顯示屏顯示。具有靈活方便、適用范圍廣的特點(diǎn),基本能夠滿足實(shí)踐需求。

2.? 主要功能

a.支持按鍵設(shè)置開始、暫停、24S倒計(jì)時(shí)復(fù)位、A隊(duì)加分、B隊(duì)加分。

b.支持?jǐn)?shù)碼管顯示A隊(duì)、B隊(duì)分?jǐn)?shù)、比賽時(shí)間、比賽節(jié)數(shù)、24S倒計(jì)時(shí)。

c.支持比賽結(jié)束后蜂鳴器告警。

3.? 源程序(Keil5)

本設(shè)計(jì)采用keil5 C51軟件(內(nèi)附安裝包)實(shí)現(xiàn)程序設(shè)計(jì)。如需用keil4打開程序,可自行通過.c和.h文件新建工程即可。

#include<reg52.h>
#include<absacc.h>

#define uchar unsigned char 
#define uint unsigned int

sbit A8=P2^0;  
sbit A9=P2^1;
sbit A10=P2^2;
sbit A11=P2^3;
sfr P00=0x80;


uchar code wei_1[]={0X01,0X02,0X04,0X08,0X10,0X20,0X40,0X80};
uchar code table[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0x77,0x7c,0x39,0x5e,0x79,0x71,0X00,0X40};

uchar minute=12;  //分
uchar second=0;   //秒
uchar key_status=0;		//按鍵狀態(tài)值
uchar scoreA=0;		//A隊(duì)得分
uchar scoreB=0;		//B隊(duì)得分
uchar count1=20;	//記錄定時(shí)器時(shí)間
uchar match=1;		//比賽節(jié)數(shù)
uchar rule_time=24;	//記錄24秒規(guī)則
uchar rule_flag=0;			//記錄24秒規(guī)則是否啟用


/*
初始化IO口
*/
void IO_init(){
	A8=0;
	A9=0;
}
/*
初始化時(shí)間
*/

void time_init(){
	TMOD = 0x01;
	TH0 = (65536-50000)/256;
	TL0 = (65536-50000)%256;
	TH1=(65536-2000)/256;		
	TL1=(65536-2000)%256;	
	EA = 1;
	ET0 = 1;
}
/*
延時(shí)函數(shù)
*/
void delay_ms(uint z){
  uint i;
	uchar j;
	for(i=0;i<z;i++){
		
		for(j=0;j<100;j++);
	}
}

/*
計(jì)時(shí)函數(shù)
*/
void T0_Time() interrupt 1 using 1{
	if (count1-- == 0) 
	{
		second--;
		rule_time--;
		count1 = 18; 
	}
	TH0 = (65536-50000)/256;
	TL0 = (65536-50000)%256;
	TH1=(65536-2000)/256;		
	TL1=(65536-2000)%256;
}

/*
時(shí)間顯示函數(shù)
*/
void time_display(uchar w2,uchar d2){
	uchar shi1,ge1;
	shi1=d2/10;
	ge1=d2%10;
	
	P00=wei_1[w2];
	A10=1;
	A10=0;
	P00=table[shi1];;
	A8=1;
	A8=0;
	delay_ms(5);
	P00=0;
	A10=1;
	A10=0;
	A8=1;
	A8=0;
	
	P00=wei_1[w2+1];
	A10=1;
	A10=0;
	P00=table[ge1];
	A8=1;
	A8=0;
	delay_ms(5);
	P00=0;
	A10=1;
	A10=0;
	A8=1;
	A8=0;	
}

/*
分?jǐn)?shù)顯示函數(shù)
*/
void score_dispaly(uchar w2,uchar d2){
	uchar qian2,shi2,ge2;
	qian2=d2/100;
	shi2=d2%100/10;
	ge2=d2%100%10;
	
	P00=wei_1[w2];
	A9=1;
	A9=0;
	P00=table[qian2];;
	A8=1;
	A8=0;
	delay_ms(10);
	P00=0;
	A9=1;
	A9=0;
	A8=1;
	A8=0;
	
	P00=wei_1[w2+1];
	A9=1;
	A9=0;
	P00=table[shi2];
	A8=1;
	A8=0;
	delay_ms(10);
	P00=0;
	A9=1;
	A9=0;
	A8=1;
	A8=0;	
	
	P00=wei_1[w2+2];
	A9=1;
	A9=0;
	P00=table[ge2];
	A8=1;
	A8=0;
	delay_ms(10);
	P00=0;
	A9=1;
	A9=0;
	A8=1;
	A8=0;
}

4.? 仿真proteus8.6

本設(shè)計(jì)采用proteus8.6軟件(內(nèi)附安裝包)實(shí)現(xiàn)仿真設(shè)計(jì),如下圖所示。proteus軟件一般存在高低版本兼容問題,該仿真是通過proteus8.6導(dǎo)出的,所以請(qǐng)盡量使用proteus8.6打開文件,低于proteus8.6的版本不能夠正常使用,高于proteus8.6的版本除了proteus8.8/8.9理論上可以正常使用。

開始:

加分:

5.? 設(shè)計(jì)報(bào)告

設(shè)計(jì)報(bào)告主要包括硬件電路、軟件設(shè)計(jì)、仿真調(diào)試等等,僅供參考。

6.? 資料清單

設(shè)計(jì)資料主要包括C程序+仿真+設(shè)計(jì)報(bào)告+使用說明+元件清單+操作視頻等。

7.? 資料獲取鏈接

百度網(wǎng)盤下載鏈接:【D07】百度網(wǎng)盤下載鏈接

更多單片機(jī)仿真設(shè)計(jì)合集:單片機(jī)仿真設(shè)計(jì)合集

  • 單片機(jī)仿真設(shè)計(jì)合集資料獲取.pdf
    下載

相關(guān)推薦