導航:首頁 > 操作系統 > 籃球模擬計分器單片機程序

籃球模擬計分器單片機程序

發布時間:2023-02-11 06:12:35

單片機c51籃球計時器程序

暑假寫的,你參考參考#include#include#include#include#defineucharunsignedchar#defineuintunsignedint#defineoutbitP3#defineoutsegP1ucharsecond;sbitp20=P2^0;//設置sbitp21=P2^1;//+sbitp22=P2^2;//-sbitchange=P2^3;//顯示選擇sbitspeak=P2^4;//蜂鳴器ucharclock[7]={6,6,12,58,12,59,0};//依次為月日時分鬧鍾時鬧鍾分比較量ucharcodeTAB[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};ucharm,n,q,i,h;j=6;k=1;a=0xff;b=0xff;c=0xff;d=0xff;voiddelay(){uinte;for(e=0;e1)clock[j]=clock[j]-1;elseclock[j]=12;break;case1:if(clock[j]>1)clock[j]=clock[j]-1;elseclock[j]=31;break;case2:if(clock[j]>0)clock[j]=clock[j]-1;elseclock[j]=23;break;case3:if(clock[j]>0)clock[j]=clock[j]-1;elseclock[j]=59;break;case4:if(clock[j]>0)clock[j]=clock[j]-1;elseclock[j]=23;break;case5:if(clock[j]>0)clock[j]=clock[j]-1;elseclock[j]=59;break;default:break;}}if(change==1){while(1){P2=0x0f;if((P2&0x0f)==0x0f)break;}}}main(){EA=1;ET0=1;TMOD=0x01;TH0=-20000/256;TL0=-20000%256;TR0=1;while(1){display();keyscan();if(j==6){if(change==1){m=clock[3]%10;//選擇顯示時間n=clock[3]/10;q=clock[2]%10;i=clock[2]/10;outbit=0x08;//顯示秒的點閃動outseg=second;delay();}else{m=clock[1]%10;//選擇顯示日期n=clock[1]/10;q=clock[0]%10;i=clock[0]/10;}}elseif(j==0){q=clock[j]%10;i=clock[j]/10;}elseif(j==1){m=clock[j]%10;n=clock[j]/10;}elseif(j==2){q=clock[j]%10;i=clock[j]/10;}elseif(j==3){m=clock[j]%10;n=clock[j]/10;}elseif(j==4){q=clock[j]%10;i=clock[j]/10;}elseif(j==5){m=clock[j]%10;n=clock[j]/10;}if(clock[2]==clock[4]&&clock[3]==clock[5])//定點報時{if(p20==0||p21==0||p22==0||change==0)//有鍵按下則停止報警k=0;speak=1&k;}elsek=1;}}voidtimer0()interrupt1using1{uchare,f,g,h;TH0=-20000/256;TL0=-20000%256;e=e+1;if(e==50)//1sec{e=0;g=g+1;second=second^0x80;if(g==60)//1min{g=0;if(clock[3]==59)//每過60s改變下時間{if(clock[2]==23){clock[2]=0;clock[3]=0;}else{clock[2]=clock[2]+1;clock[3]=0;}}elseclock[3]=clock[3]+1;if(clock[3]==0&&clock[2]==0)//時間都為0時改變日期{switch(clock[0]){case1:if(clock[1]<31)clock[1]=clock[1]+1;else{clock[1]=1;clock[0]=2;}break;case2:if(clock[1]<29)clock[1]=clock[1]+1;else{clock[1]=1;clock[0]=3;}break;case3:if(clock[1]<31)clock[1]=clock[1]+1;else{clock[1]=1;clock[0]=4;}break;case4:if(clock[1]<30)clock[1]=clock[1]+1;else{clock[1]=1;clock[0]=5;}break;case5:if(clock[1]<31)clock[1]=clock[1]+1;else{clock[1]=1;clock[0]=6;}break;case6:if(clock[1]<30)clock[1]=clock[1]+1;else{clock[1]=1;clock[0]=7;}break;case7:if(clock[1]<31)clock[1]=clock[1]+1;else{clock[1]=1;clock[0]=8;}break;case8:if(clock[1]<31)clock[1]=clock[1]+1;else{clock[1]=1;clock[0]=9;}break;case9:if(clock[1]<30)clock[1]=clock[1]+1;else{clock[1]=1;clock[0]=10;}break;case10:if(clock[1]<31)clock[1]=clock[1]+1;else{clock[1]=1;clock[0]=11;}break;case11:if(clock[1]<30)clock[1]=clock[1]+1;else{clock[1]=1;clock[0]=12;}break;case12:if(clock[1]<31)clock[1]=clock[1]+1;else{clock[1]=1;clock[0]=1;}break;default:break;}}}if(j!=6){f=f+1;if(f!=10)//判斷10s是否到是否有鍵按下{switch(j)//所設置的那位閃動{case0:a=~a;b=~b;c=0;d=0;break;case1:c=~c;d=~d;a=0;b=0;break;case2:a=~a;b=~b;c=0;d=0;break;case3:c=~c;d=~d;a=0;b=0;break;case4:a=~a;b=~b;c=0;d=0;break;case5:c=~c;d=~d;a=0;b=0;break;default:break;}if(clock[6]!=clock[j]||h!=j){f=0;h=j;clock[6]=clock[j];}}else{j=6;f=0;a=0xff;b=0xff;c=0xff;d=0xff;}}else{a=0xff;b=0xff;c=0xff;d=0xff;}}}

② 求用單片機寫個籃球計分器的程序

與MCS-51單片機產品兼容 、8K位元組在系統可編程Flash存儲器、 1000次擦寫周期、 全靜態操作:0Hz~33Hz 、 三級加密程序存儲器 、 32個可編程I/O口線 、三個16位定時器/計數器 八個中斷源 、全雙工UART串列通道、 低功耗空閑和掉電模式 、掉電後中斷可喚醒 、看門狗定時器 、雙數據指針 、掉電標識符 。

功能特性描述
At89s52 是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統可編程Flash 存儲器。使用Atmel 公司高密度非 易失性存儲器技術製造,與工業80C51 產品指令和引腳完 全兼容。片上Flash允許程序存儲器在系統可編程,亦適於 常規編程器。在單晶元上,擁有靈巧的8 位CPU 和在系統 可編程Flash,使得AT89S52為眾多嵌入式控制應用系統提 供高靈活、超有效的解決方案。 AT89S52具有以下標准功能: 8k位元組Flash,256位元組RAM, 32 位I/O 口線,看門狗定時器,2 個數據指針,三個16 位 定時器/計數器,一個6向量2級中斷結構,全雙工串列口, 片內晶振及時鍾電路。另外,AT89S52 可降至0Hz 靜態邏 輯操作,支持2種軟體可選擇節電模式。空閑模式下,CPU 停止工作,允許RAM、定時器/計數器、串口、中斷繼續工 作。掉電保護方式下,RAM內容被保存,振盪器被凍結, 單片機一切工作停止,直到下一個中斷或硬體復位為止。8 位微控制器 8K 位元組在系統可編程 Flash AT89S52

P0 口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅動8個TTL邏
輯電平。對P0埠寫「1」時,引腳用作高阻抗輸入。
當訪問外部程序和數據存儲器時,P0口也被作為低8位地址/數據復用。在這種模式下,
P0具有內部上拉電阻。
在flash編程時,P0口也用來接收指令位元組;在程序校驗時,輸出指令位元組。程序校驗
時,需要外部上拉電阻。
P1 口:P1 口是一個具有內部上拉電阻的8 位雙向I/O 口,p1 輸出緩沖器能驅動4 個
TTL 邏輯電平。對P1 埠寫「1」時,內部上拉電阻把埠拉高,此時可以作為輸入
口使用。作為輸入使用時,被外部拉低的引腳由於內部電阻的原因,將輸出電流(IIL)。
此外,P1.0和P1.2分別作定時器/計數器2的外部計數輸入(P1.0/T2)和時器/計數器2
的觸發輸入(P1.1/T2EX),具體如下表所示。
在flash編程和校驗時,P1口接收低8位地址位元組。
引腳號第二功能
P1.0 T2(定時器/計數器T2的外部計數輸入),時鍾輸出
P1.1 T2EX(定時器/計數器T2的捕捉/重載觸發信號和方向控制)
P1.5 MOSI(在系統編程用)
P1.6 MISO(在系統編程用)
P1.7 SCK(在系統編程用)
P2 口:P2 口是一個具有內部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅動4 個
TTL 邏輯電平。對P2 埠寫「1」時,內部上拉電阻把埠拉高,此時可以作為輸入
口使用。作為輸入使用時,被外部拉低的引腳由於內部電阻的原因,將輸出電流(IIL)。
在訪問外部程序存儲器或用16位地址讀取外部數據存儲器(例如執行MOVX @DPTR)
時,P2 口送出高八位地址。在這種應用中,P2 口使用很強的內部上拉發送1。在使用
8位地址(如MOVX @RI)訪問外部數據存儲器時,P2口輸出P2鎖存器的內容。
在flash編程和校驗時,P2口也接收高8位地址位元組和一些控制信號。
P3 口:P3 口是一個具有內部上拉電阻的8 位雙向I/O 口,p2 輸出緩沖器能驅動4 個
TTL 邏輯電平。對P3 埠寫「1」時,內部上拉電阻把埠拉高,此時可以作為輸入
口使用。作為輸入使用時,被外部拉低的引腳由於內部電阻的原因,將輸出電流(IIL)。
P3口亦作為AT89S52特殊功能(第二功能)使用,如下表所示。
在flash編程和校驗時,P3口也接收一些控制信號。

埠引腳 第二功能
P3.0 RXD(串列輸入口)
P3.1 TXD(串列輸出口)
P3.2 INTO(外中斷0)
P3.3 INT1(外中斷1)
P3.4 TO(定時/計數器0)
P3.5 T1(定時/計數器1)
P3.6 WR(外部數據存儲器寫選通)
P3.7 RD(外部數據存儲器讀選通)
此外,P3口還接收一些用於FLASH快閃記憶體編程和程序校驗的控制信號。
RST——復位輸入。當振盪器工作時,RST引腳出現兩個機器周期以上高電平將是單片機復位。
ALE/PROG——當訪問外部程存儲器或數據存儲器時,ALE(地址鎖存允許)輸出脈沖用於鎖存地址的低8位位元組。一般情況下,ALE仍以時鍾振盪頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時鍾或用於定時目的。要注意的是:每當訪問外部數據存儲器時將跳過一個ALE脈沖。
對FLASH存儲器編程期間,該引腳還用於輸入編程脈沖(PROG)。
如有必要,可通過對特殊功能寄存器(SFR)區中的8EH單元的D0位置位,可禁止ALE操作。該位置位後,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會被微弱拉高,單片機執行外部程序時,應設置ALE禁止位無效。
PSEN——程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當AT89C52由外部程序存儲器取指令(或數據)時,每個機器周期兩次PSEN有效,即輸出兩個脈沖,在此期間,當訪問外部數據存儲器,將跳過兩次PSEN信號。
EA/VPP——外部訪問允許,欲使CPU僅訪問外部程序存儲器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復位時內部會鎖存EA端狀態。
如EA端為高電平(接Vcc端),CPU則執行內部程序存儲器的指令。
FLASH存儲器編程時,該引腳加上+12V的編程允許電源Vpp,當然這必須是該器件是使用12V編程電壓Vpp。

③ 籃球計分器程序(單片機匯編語言編寫,不要C語言)

用C語言寫的可以幫你,如果是用匯編編寫的我可沒辦法了幫助你

④ 單片機籃球計分器編程

看板子是無法編程的,必須原理圖才可以,這里有一個籃球計分程序,供參考。

UP1EQUP1.1
DOWN1EQUP1.2
UP2EQUP1.3
DOWN2EQUP1.4
CHANGEEQUP1.5
BEGINEQUP1.6
BEEFEQUP2.4
DUANEQUP2.3
WEIEQUP2.2

GRATE1EQU30H
GRATE2EQU31H
GRATE_CHGEQU33H
TIMEEQU34H
CNTEQU35H

ORG0000H
LJMPMAIN
ORG001BH
LJMPT1ISR
ORG0030H
MAIN:
LCALLINITTIMER1
SETBUP1
SETBDOWN1
SETBUP2
SETBDOWN2
SETBCHANGE
SETBBEGIN
LOOP:
JBUP1,LOOP1
CLRET1
MOVR7,#5
LCALLDELAY
JNBUP1,$
INCGRATE1
SETBET1
SJMPLOOP6
LOOP1:
JBDOWN1,LOOP2
CLRET1
MOVR7,#5
LCALLDELAY
JNBDOWN1,$
MOVA,GRATE1
DECA
MOVGRATE1,A
SETBET1
SJMPLOOP6
LOOP2:
JBUP2,LOOP3
CLRET1
MOVR7,#5
LCALLDELAY
JNBUP2,$
INCGRATE2
SETBET1
SJMPLOOP6
LOOP3:
JBDOWN2,LOOP4
CLRET1
MOVR7,#5
LCALLDELAY
JNBDOWN2,$
MOVA,GRATE2
DECA
MOVGRATE2,A
SETBET1
SJMPLOOP6
LOOP4:
JBCHANGE,LOOP5
CLRET1
MOVR7,#5
LCALLDELAY
JNBCHANGE,$
MOVGRATE_CHG,GRATE1
MOVGRATE1,GRATE2
MOVGRATE2,GRATE_CHG
SETBET1
SJMPLOOP6
LOOP5:
JBBEGIN,LOOP6
MOVR7,#5
LCALLDELAY
JNBBEGIN,$
SETBTR1
LOOP6:
MOVA,TIME
JNZLOOP7
MOVTIME,#99
CLRTR1
MOVR7,#100
LCALLBEEFE
LOOP7:
LCALLDISPLAY
LJMPLOOP

T1ISR:
CLRTR1
MOVTH1,#HIGH(65536-50000)
MOVTL1,#LOW(65536-50000)
SETBTR1
DJNZCNT,T0E
MOVCNT,#20
DECTIME
T0E:
RETI

INITTIMER1:
MOVTMOD,#10H
MOVTH1,#HIGH(65536-50000)
MOVTL1,#LOW(65536-50000)
SETBEA
SETBET1
MOVCNT,#20
MOVTIME,#99
RET
DELAY:
MOVR2,#17
DLY:
MOVR3,#26
DJNZR3,$
DJNZR2,DLY
DJNZR7,DELAY
RET
BEEFC:
MOVR2,#17
BEEFD:
MOVR3,#16
BEEFE:
CPLBEEF
DJNZR3,BEEFE
DJNZR2,BEEFD
DJNZR7,BEEFC
RET
DISPLAY:
MOVA,GRATE1
MOVB,#10
DIVAB
MOV40H,A
MOV41H,B

MOVA,GRATE2
MOVB,#10
DIVAB
MOV42H,A
MOV43H,B

MOVA,TIME
MOVB,#10
DIVAB
MOV46H,A
MOV47H,B

MOVP0,#0FFH
SETBWEI
MOVP0,#0FEH
CLRWEI
MOVP0,#0FFH
SETBDUAN
MOVDPTR,#LEDTAB
MOVA,40H
MOVCA,@A+DPTR
MOVP0,A
CLRDUAN
MOVR7,#5
LCALLDELAY

MOVP0,#0FFH
SETBWEI
MOVP0,#0FDH
CLRWEI
MOVP0,#0FFH
SETBDUAN
MOVDPTR,#LEDTAB
MOVA,41H
MOVCA,@A+DPTR
MOVP0,A
CLRDUAN
MOVR7,#5
LCALLDELAY

MOVP0,#0FFH
SETBWEI
MOVP0,#0FBH
CLRWEI
MOVP0,#0FFH
SETBDUAN
MOVDPTR,#LEDTAB
MOVA,42H
MOVCA,@A+DPTR
MOVP0,A
CLRDUAN
MOVR7,#5
LCALLDELAY

MOVP0,#0FFH
SETBWEI
MOVP0,#0F7H
CLRWEI
MOVP0,#0FFH
SETBDUAN
MOVDPTR,#LEDTAB
MOVA,43H
MOVCA,@A+DPTR
MOVP0,A
CLRDUAN
MOVR7,#5
LCALLDELAY

MOVP0,#0FFH
SETBWEI
MOVP0,#0BFH
CLRWEI
MOVP0,#0FFH
SETBDUAN
MOVDPTR,#LEDTAB
MOVA,46H
MOVCA,@A+DPTR
MOVP0,A
CLRDUAN
MOVR7,#5
LCALLDELAY

MOVP0,#0FFH
SETBWEI
MOVP0,#07FH
CLRWEI
MOVP0,#0FFH
SETBDUAN
MOVDPTR,#LEDTAB
MOVA,47H
MOVCA,@A+DPTR
MOVP0,A
CLRDUAN
MOVR7,#5
LCALLDELAY

RET

LEDTAB:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END

⑤ 求單片機籃球計分器程序

這么特殊的程序需要定製開發,重點是時鍾晶元、按鍵處理和數碼管顯示程序段。

⑥ 求籃球計分器的程序啊

我有用AT89C51做的籃球計時計分器

中間是時間 兩邊是分數

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

這個程序 起始也就是 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接片選

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

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

⑨ 求一份關於籃球計分器的51單片機C語言程序

這是一個數碼管顯示的籃球計分程序,你可以參考一下:
#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=0xf7;
wei=0;
P0=0xff;
an=1;
P0=leddata[w3];
an=0;
delay(5);

P0=0xff; //顯示第二隊分數個位
wei=1;
P0=0xef;
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
}

}

閱讀全文

與籃球模擬計分器單片機程序相關的資料

熱點內容
lk4102加密晶元 瀏覽:586
怎麼更改app店面 瀏覽:487
設備部門如何做好伺服器 瀏覽:847
androido下載 瀏覽:476
神奇高量戰法副圖源碼 瀏覽:828
匯編語言設計凱撒密碼加密器 瀏覽:390
主次梁加密是加在哪裡 瀏覽:662
模板匹配演算法matlab 瀏覽:823
外地程序員去北京 瀏覽:22
安卓機換蘋果12如何轉移數據 瀏覽:418
互聯網ntp伺服器地址及埠 瀏覽:613
pdf到word轉換器 瀏覽:267
飛行解壓素材 瀏覽:498
51單片機指令用背嗎 瀏覽:936
unityai演算法 瀏覽:834
我的世界ice伺服器如何打開pvp 瀏覽:975
c語言編程如何做標記 瀏覽:884
python數據分析實戰pdf 瀏覽:985
u盤插入文件夾 瀏覽:918
華為amd雲伺服器 瀏覽:497