導航:首頁 > 操作系統 > 於單片機的籃球計分器的設計

於單片機的籃球計分器的設計

發布時間:2022-10-05 15:13:06

A. c51單片機設計籃球計分器

你好!

四位數碼管,只能用於兩隊計分或時間顯示,因為時間應該是連續顯示可見的!

你的設計,只要需要 8 位數碼管,這樣就會很靈活!

B. 如何用c51單片機編寫一個籃球計分,計時器

#include"reg52.h"

#defineu8unsignedchar
#defineu16unsignedint


sbitUP_1=P1^1; //第一隊加分鍵
sbitDOWN_1=P1^2; //第一隊減分鍵
sbitUP_2=P1^3; //第二隊加分鍵
sbitDOWN_2=P1^4; //第二隊減分鍵
sbitChange=P1^5; //交換鍵
sbitBegin=P1^6; //開始鍵
sbitPause =P1^7; //暫停鍵

sbitBeef=P2^4; //蜂鳴器

sbitan=P2^3; //段選
sbitwei=P2^2; //位選


u8Grate_1=0; //第一隊計分
u8Grate_2=0; //第二隊計分
u8Grate_change=0; //換場標志
u8Time=99; //總時間
u16Flag=0; //計時次數

u8leddata[]={
0x3F,//"0"
0x06,//"1"
0x5B,//"2"
0x4F,//"3"
0x66,//"4"
0x6D,//"5"
0x7D,//"6"
0x07,//"7"
0x7F,//"8"
0x6F,//"9"
};


voidInitTimer1(void)
{
TMOD=0x10; //定時器1設為模式1
TH1=0xFC;
TL1=0x18;//1ms
EA=1;//開總中斷
ET1=1;//開定時器1中斷
//TR1=1;//
}

voiddelay(u8d) //延時
{
u8a,b,c;
for(c=d;c>0;c--)
for(b=17;b>0;b--)
for(a=16;a>0;a--);
}

voidbeef(u8d)//發聲
{
u8a,b,c;
for(c=d;c>0;c--)
for(b=17;b>0;b--)
for(a=16;a>0;a--)
{
Beef=~Beef;
}
}


voiddisplay(u8grate_1,u8grate_2,u8time) //顯示
{
u8w1,w2,w3,w4,w7,w8;
w1=grate_1/10; //計算第一隊分數十位
w2=grate_1%10; //計算第一隊分數個位

w3=grate_2/10; //計算第二隊分數十位
w4=grate_2%10; //計算第二隊分數個位

w7=time/10; //計算時間十位
w8=time%10; //計算時間個位


P0=0xff; //消隱,該段顯示第一隊分數十位
wei=1;
P0=0xfe; //送位碼
wei=0;
P0=0xff;
an=1;
P0=leddata[w1]; //送段碼
an=0;
delay(5);P0=0xff; //顯示第一隊分數個位
wei=1;
P0=0xfd;
wei=0;
P0=0xff;
an=1;
P0=leddata[w2];
an=0;
delay(5);P0=0xff; //顯示第二隊分數十位
wei=1;
P0=0xfb;
wei=0;
P0=0xff;
an=1;
P0=leddata[w3];
an=0;
delay(5);

P0=0xff; //顯示第二隊分數個位
wei=1;
P0=0xf7;
wei=0;
P0=0xff;
an=1;
P0=leddata[w4];
an=0;
delay(5);P0=0xff; //顯示時間十位
wei=1;
P0=0xbf;
wei=0;
P0=0xff;
an=1;
P0=leddata[w7];
an=0;
delay(5);P0=0xff; //顯示時間個位
wei=1;
P0=0x7f;
wei=0;
P0=0xff;
an=1;
P0=leddata[w8];
an=0;
delay(5);
}


voidmain()
{
InitTimer1(); //初始化定時器1
UP_1=1; //以下初始化IO口
DOWN_1=1;
UP_2=1;
DOWN_2=1;
Change=1;
Begin=1;
while(1)
{
if(UP_1==0) //如果第一隊加分鍵按下
{
ET1=0; //關閉定時器1中斷
delay(5); //稍加延時
while(UP_1==0);//等待按鍵抬起
Grate_1++; //第一隊分數加1
ET1=1; //開啟定時器1中斷
}
if(DOWN_1==0) //如果第一隊減分鍵按下
{
ET1=0;
delay(5);
while(DOWN_1==0);
Grate_1--; //第一隊分數減1
ET1=1;
}
if(UP_2==0) //如果第二隊加分鍵按下
{
ET1=0;
delay(5);
while(UP_2==0);
Grate_2++; //第二隊分數加1
ET1=1;
}
if(DOWN_2==0) //如果第二隊減分鍵按下
{
ET1=0;
delay(5);
while(DOWN_2==0);
Grate_2--; //第二隊分數減1
ET1=1;
}
if(Change==0) //如果換場鍵按下
{
ET1=0;
delay(5);
while(Change==0);
Grate_change=Grate_1;//一下三行語句完成分數交換顯示
Grate_1=Grate_2;
Grate_2=Grate_change;
ET1=1;
}
if(Begin==0) //如果開始鍵按下
{
delay(5);
while(Begin==0);
TR1=1;//開啟定時器1
}
if(Pause==0)
{
delay(5);
while(Pause==0);
TR1=0;
}
if(Time<=0) //如果時間計數到0
{
Time=99; //恢復初始時間
TR1=0; //關閉定時器1
beef(100); //發聲
}
display(Grate_1,Grate_2,Time);//顯示分數、時間
}
}
voidTimer1Interrupt(void)interrupt3 //定時器1中斷函數
{
TH1=0xFC; //重賦初值
TL1=0x18;
Flag++; //中斷次數加1
if(Flag>=1000)//1000次也就是1秒到
{
Flag=0;
Time--; //秒變數減1
}

}

C. 基於單片機的籃球計分器設計

一個單片機+lcd顯示器+按鈕 就搞定 具體hi我

D. 單片機課程設計 籃球比賽計分器

你好!
是c語言寫代碼嗎?原理圖確定了嗎?程序什麼時間要

E. 基於單片機籃球記分板設計

於單片機籃球記分板設計
這個是要寫,程序
認真,探討

F. 基於單片機的籃球比賽計分器

這個程序 起始也就是 3個按鍵控制 +1 +2+ 3 1個按鍵控制 紅方藍方的電路 很簡單
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
// 段碼
uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
// 待顯示的6位緩沖
uchar Num_Buffer[]={0,0,0,0,0,0};
// 按鍵代碼,按鍵計數
uchar Key_Code,Key_Counts1=0; Key_Counts2=0;//1 2分別是紅 藍方
// 延時
void DelayMS(uint x)
{
uchar i;
while(x--) for(i=0;i<120;i++);
}
// 顯示函數
void Show_Counts_ON_DSY()
{
uchar i,j=0x01;
Num_Buffer[2]=Key_Counts1/100;
Num_Buffer[1]=Key_Counts1/10%10;
Num_Buffer[0]=Key_Counts1%10;
Num_Buffer[5]=Key_Counts1/100;
Num_Buffer[4]=Key_Counts1/10%10;
Num_Buffer[3]=Key_Counts1%10;
for(i=0;i<6;i++)
{
j=_cror_(j,1);
P0=0xff;
P0=DSY_CODE[Num_Buffer[i]];
P2=j;
DelayMS(1);
}
}
// 主程序
void main()
{
uchar i;
P0=0xff;
P1=0xff;
P2=0x00;
Key_Code=0xff;
while(1)
{
Show_Counts_ON_DSY();
P1=0xff;
Key_Code=P1;
//有鍵按下時,數碼管刷新顯示 30 次,該行代碼同時起到延時作用
if(Key_Code!=0xff)
for(i=0;i<30;i++) Show_Counts_ON_DSY();
switch(Key_Code)
{
case 0xfe: if(color==1)Key_Counts1++; else Key_Counts2++; //左邊加1還是右邊加1
break;
case 0xfd: Key_Counts1=Key_Counts1+2; else Key_Counts2=Key_Counts2+2;
break;
case 0xfb: Key_Counts=Key_Counts1+3; else Key_Counts2=Key_Counts2+3;

case 0xf7; color=!color;//左邊還是右邊
}
Key_Code=0xff;
}
//P1接數碼官段碼 P2接片選

G. 籃球比賽計時計分器設計

1.1背景知識介紹 單片機又稱單片微控制器,它不是完成某一個邏輯功能的晶元,而是把一個計算機系統集成到一個晶元上。概括的講:一塊晶元就成了一台計算機。它的體積小、質量輕、價格便宜、為學習、應用和開發提供了便利條件。同時,學習使用單片機是了解計算機原理與結構的最佳選擇。單片機自20世紀70年代問世以來,以極其高的性價比受到人們的重視和關注,所以應用很廣,發展很快。單片機的優點是體積小、重量輕、抗干擾能力強,對環境要求不高,價格低廉,可靠性高,靈活性好,開發較為容易。例如,80C51系列單片機已有十多年的生命期,如今仍保持著上升的趨勢,就充分證明了這一點。單片機以其一系列優點,近幾年得到迅猛發展和大范圍推廣,廣泛應用於工業控制系統,數據採集系統、智能化儀器儀表,及通訊設備、日常消費類產品、玩具等。並且已經深入到工業生產的各個環節以及人民生活的各層次中,如車間流水線控制、自動化系統等、智能型家用電器等。而美國ATMEL公司開發生產了新型的8位單片機——AT89系列單片機。他不但具有一般MCS-51單片機的所有特性,而且還擁有一些獨特的優點,此次設計中所用到的AT89C51就是其中典型的代表。單片機內部也用和電腦功能類似的模塊,比如CPU,內存,並行匯流排,還有和硬碟作用相同的存儲器件,用它來做一些控制電器一類不是很復雜的工作足矣了。我們現在用的全自動滾筒洗衣機,排煙罩VCD等等的家電裡面都可以看到它的身影。 單片機是靠程序實現功能的,並且可以修改。通過不同的程序實現不同的功能,尤其是特殊的獨特的一些功能。一個不是很復雜的功能要是用美國50年代開發的74系列,或者60年代的CD4000系列這些純硬體的話,電路一定是一塊大PCB板。但是如果要是用美國70年代成功投放市場的系列單片機,結果就會有天壤之別。只因為單片機的通過你編寫的程序可以實現高智能,高效率,以及高可靠性。1.2 設計意義 單片機的應用是具有高度現實意義的。單片機極高的可靠性,微型性和智能性(我們只要編寫不同的程序後就能夠完成不同的控制工作),單片機已成為工業控制領域中普遍採用的智能化控制工具,已經深深地滲入到我們的日常生活當中通過此次基於單片機設計的籃球計時計分系統,我們可以更清楚詳細的了解單片機程序設計的基本指令功能、編程步驟和技巧來講述單片機編程,並對MCS-51單片機的結構和原理進行講述,以及基於單片機開發應用的相關晶元的工作原理,並且可以在將來的工作和學習中加以應用。1.3 設計目的 隨著單片機在各個領域的廣泛應用,許多用單片機做控制的球賽計時計分系統也應運而產生,如用單片機控制LCD液晶顯示器計時計分器,用單片機控制LED七段顯示器計時計分器等。本次設計用由AT89C51編程式控制制LED七段數碼管作顯示的球賽計時計分系統。該系統具有賽程定時設置,賽程時間暫停,及時刷新甲、乙雙方的成績以及賽後成績暫存等功能。它具有價格低廉,性能穩定,操作方便並且易於攜帶等特點。廣泛適合各類學校或者小型團體作為賽程計時計分。通過本次基於C51系列籃球計時計分器的設計,可以了解、熟悉有關單片機開發設計的過程,並加深對單片機的理解和應用以及掌握單片機與外圍介面的一些方法和技巧,這主要表現在以下一些方面:(1) 籃球賽計時計分系統包含了8051系列單片機的最小應用系統的構成,同時在此基礎上擴展了一些使用性強的外圍介面。(2) 可以了解到LED顯示器的結構、工作原理以及這種顯示器的介面實例與具體連接與編程方法。(3) 怎樣利用串列口來擴展顯示介面等。

閱讀全文

與於單片機的籃球計分器的設計相關的資料

熱點內容
程序員用得到數字區嗎 瀏覽:174
python求商 瀏覽:477
ipad能用c語言編譯器嗎 瀏覽:561
軟泥解壓球最新版 瀏覽:998
4萬程序員辭職創業 瀏覽:759
thinkingphp 瀏覽:597
安卓相冊移動文件夾 瀏覽:6
耳朵清潔解壓聲控99的人都睡得著 瀏覽:205
叉車出租網站源碼 瀏覽:874
共享單車的app是什麼 瀏覽:408
不帶gui的伺服器什麼意思 瀏覽:373
金剛經及PDF 瀏覽:102
php中冒號 瀏覽:358
php5432 瀏覽:352
命令在哪使用 瀏覽:172
php獲取網頁元素 瀏覽:708
為什麼需要硬體驅動編譯 瀏覽:885
pm編程怎樣看導柱孔對不對稱 瀏覽:138
農業大學選課找不到伺服器怎麼辦 瀏覽:659
路由配置網關命令 瀏覽:935