標(biāo)題: 51單片機(jī)的籃球計分器課程設(shè)計報告 [打印本頁]
作者: junjieferry 時間: 2018-7-3 22:17
標(biāo)題: 51單片機(jī)的籃球計分器課程設(shè)計報告
課程設(shè)計實驗報告
一、題目:
籃球記分器
STC89C52 12M晶振 四位一體數(shù)碼管 兩位數(shù)碼管2個 4.7K歐排阻2個 極性電容 電容22pF 電阻10K歐 開關(guān)8個 導(dǎo)線若干
1.12分鐘倒計時
- 分別給A、B隊加1、2、3分并顯示
- 換場A、B兩隊分?jǐn)?shù)交換
- 暫停
初始化定時器T0,并開啟T0中斷,十二分鐘倒計時開始工作,每隔20uS數(shù)碼管顯示分、秒,循環(huán)檢查各開關(guān)是否按下并做相應(yīng)處理。判斷是aa還是bb按下,再按one則給相應(yīng)的隊加一分,按two加兩分,按three加三分;如果exchange按下,則交換AB兩隊分?jǐn)?shù);如果stop按下,則暫停工作。
六、體會
通過這次設(shè)計制作,進(jìn)一步了解到單片機(jī)最小系統(tǒng)和工作原理,掌握了定時器和數(shù)碼管的使用。真心體會到數(shù)碼管的引腳連線是個復(fù)雜的過程,第一次連接好后由于線接的太亂,有斷開和連上的地方,沒有成功,第二次重新規(guī)整了連線,終于使單片機(jī)正常工作了。
- #include<reg51.h>
- unsigned char code seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x00,0x90 };
- int i=11,j=59,a=0,b=0,m=0,n=0,temp,s=0,r=24,k;
- sbit aa=P0^0;
- sbit bb=P0^1;
- sbit one=P0^2;
- sbit two=P0^3;
- sbit three=P0^4;
- sbit exchange=P0^5;
- sbit stop=P0^6;
- sbit led=P3^6;
- sbit tt=P3^7;
-
- void delay(int x)
- {
- int w,q;
- for(w=0;w<x;w++)
- for(q=0;q<120;q++);
- }
-
- void display(int i,int j,int a,int b)
- {
- P2 = 0x01;
- P1 = seg[i/10];
- delay(1);
- P2 = 0x00;
-
- P2 = 0x02;
- P1 = seg[i%10];
- delay(1);
- P2 = 0x00;
-
- P2 = 0x04;
- P1 = seg[j/10];
- delay(1);
- P2 = 0x00;
-
-
- P2 = 0x08;
- P1 = seg[j%10];
- delay(1);
- P2 = 0x00;
-
-
- P2= 0x10;
- P1 = seg[a/10];
- delay(1);
- P2= 0x00;
-
- P2= 0x20;
- P1 = seg[a%10];
- delay(1);
- P2 = 0x00;
-
-
- P2 = 0x40;
- P1 = seg[b/10];
- delay(1);
- P2 = 0x00;
-
-
- P2= 0x80;
- P1 = seg[b%10];
- delay(1);
- P2 = 0x00;
-
- }
-
- void time0() interrupt 1
- {
- TH0 = 0xb1;
- TL0 = 0xe0;
- m++;
- if(m==50)
- {
- m=0;
- j--;
- if(j==-1)
- j = 59;
- n++;
- if(n==60)
- {
- n=0;
- i--;
- if(i==0&&j==0){
- ET0=1;
- TR0 = 1;
- }
- }
- }
- display(i,j,a,b);
- }
-
-
- void main()
- {
- P0 = 0x00;
- display(12,0,0,0);
- TMOD = 0x01;
- TH0 = 0xb1;
- TL0 = 0xe0;
- IE = 0x82;
- TR0 = 1;
- while(1)
- {
- if(aa==1&&one==1)
- {a++;display( i, j, a, b);while(one==1);}
- else if(aa==1&&two==1)
- { a=a+2;display( i, j, a, b);while(two==1);}
- else if(aa==1&&three==1)
- {a=a+3;display( i, j, a, b);while(three==1);}
- else if(bb==1&&one==1)
- {b++;display( i, j, a, b);while(one==1);}
- else if(bb==1&&two==1)
- { b=b+2;display( i, j, a, b);while(two==1);}
- else if(bb==1&&three==1)
- { b=b+3;display( i, j, a, b);while(three==1);}
- else if(exchange==1)
- {temp = a;a = b;b = temp;delay(500);}
- else if(stop==1) {ET0=0;TR0=0;while(stop==1);while(stop==0);while(stop==1){ET0=1;TR0=1;}}
- }
- }
復(fù)制代碼
完整的Word格式文檔51黑下載地址:
作者: 2955147153 時間: 2018-10-23 14:30
黃色的代表什么意思為什么我的仿真圖沒有黃色的標(biāo)志
作者: fengjixu 時間: 2018-11-29 18:34
數(shù)碼管是用的什么數(shù)碼管
作者: 她的魚塘 時間: 2018-11-29 20:45
四位一體數(shù)碼管用的是共陰極還是共陽極
作者: 她的魚塘 時間: 2018-11-29 21:17
兄弟你的程序有一處錯誤
作者: zzz1014 時間: 2018-11-30 01:28
厲害了
作者: 她的魚塘 時間: 2018-11-30 12:39
運(yùn)行不了啊樓主
作者: sunhaossa 時間: 2018-12-3 08:46
樓主能私發(fā)下嗎?
作者: zzjay 時間: 2018-12-24 13:58
那個數(shù)碼管下面一排引腳看不到連線,急啊
作者: 壞小子科技 時間: 2019-6-20 13:34
哪里錯啦
作者: 壞小子科技 時間: 2019-6-20 13:35
明明運(yùn)行不了,不懂樓主截圖哪來的
作者: 姨媽且痛經(jīng) 時間: 2020-10-26 16:01
仿真圖有高清嗎
作者: 君莫問 時間: 2020-12-8 08:10
哪里錯了,運(yùn)行不了?
作者: 啦啦啦啦000128 時間: 2021-1-7 23:23
您好,請問那2個7sge燈前面8個引腳接嗎
作者: jockli 時間: 2021-3-23 09:59
要是能把24秒倒計時加進(jìn)去就好了
| 歡迎光臨 (http://www.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |