籃球賽場計時計分器的51單片機課程設(shè)計報告_第1頁
籃球賽場計時計分器的51單片機課程設(shè)計報告_第2頁
籃球賽場計時計分器的51單片機課程設(shè)計報告_第3頁
籃球賽場計時計分器的51單片機課程設(shè)計報告_第4頁
籃球賽場計時計分器的51單片機課程設(shè)計報告_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

籃球賽場計時計分器

班級:學(xué)號:姓名:設(shè)計背景籃球比賽是根據(jù)籃球運發(fā)動在規(guī)定時間里得分多少來決定勝負(fù)的。設(shè)計要求設(shè)計制作一個籃球賽場計時計分牌,功能如下:具有計分分功能〔+1、+2、+3、-1分〕,并在LCD1602上顯示雙方比分。具有計時功能,每節(jié)總時間倒計時,24S倒計時,倒計時結(jié)束蜂鳴器報警。具有暫停、24秒復(fù)位、24秒結(jié)束自動暫停、系統(tǒng)復(fù)位等功能。系統(tǒng)方案設(shè)計硬件設(shè)備單片機AT89C51簡介:在一塊芯片中集成了CPU、RAM、ROM、定時/計數(shù)器和多功能I/O口等計算機所需要的根本部件的大規(guī)模集成電路,又稱MCU。其以體積小、功能全、性價比等諸多優(yōu)點而獨具特色,在工業(yè)控制、尖端武器、通信設(shè)備、家用電器等嵌入式應(yīng)用領(lǐng)域中獨占鰲頭。如果說C語言程序設(shè)計課程設(shè)計的根底課,那么單片機以其系統(tǒng)硬件構(gòu)架完整、價格低廉、學(xué)生能動手等特點,成為工科學(xué)生硬件設(shè)計根底課。AT89C51管腳說明VCC:供電電壓GND:接地P0口:P0口作為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1緩沖器能接收輸出4TTL門電流。P2口:P2口為一個內(nèi)部上拉電阻的8為雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1〞時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。P3口:P3口管腳是8個帶內(nèi)部上拉斯電阻的雙向I/O口,可接收輸出4個TTL門電流。P3口也可作為AT89C51的一些特殊功能LCD1602介紹

本設(shè)計采用LCD1602實現(xiàn)顯示功能,1602是16字符*2行的字符型LCD顯示器,它由32個字符點陣塊組成,每個字符點陣塊由5×7或5×10個點陣組成,可以顯示ASCII碼表中的所有可視的字符。它內(nèi)置了字符產(chǎn)生器ROM(CGROM)、字符產(chǎn)生器RAM(CGRAM)和顯示數(shù)據(jù)RAM〔DDRAM〕。1602液晶顯示器以其微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧的諸多優(yōu)點,在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中得到越來越廣泛的應(yīng)用。系統(tǒng)電路原理圖(仿真圖〕Protel設(shè)計電路PCB電路板制作工程分析本次工程的設(shè)計首先需要我們了解C中各種語句的使用方法,單片機定時器的結(jié)構(gòu)及定時器的工作方式、初始值設(shè)置、1602的使用等根本技能,其次我們必須分配好硬件資源,不要太浪費。程序流程圖NY定時器0,1,LCD初始化顯示倒計時時間讀取P1口的值開始是否有按鍵按下哪個按鍵按下加一加二加三減一暫停復(fù)位復(fù)位經(jīng)P0,P2.7口輸出LCD顯示時間、分?jǐn)?shù)、節(jié)次,蜂鳴器報警?函數(shù)聲明#include<reg51.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedint#defineLcd_PortP0#defineKEY_IOP1sbitRS=P2^0;sbitRW=P2^1;sbitE=P2^2;sbitBusy=P0^7;sbitspeaker=P2^7;uchardatakeytemp,key;ucharc=0;uintb=0;ucharj=0;uchare=1;uchard=0;ucharer=240;ucharmin=12;ucharsec=0;uchardataflag=0x00;bitflag_key=0;ucharcodeLcddata[]={"0123456789:."};voidDelay(intt){ uchara; while(t--) { for(a=0;a<120;a++); }}延時函數(shù)

主函數(shù)voidmain(void){ Init_LCD(); Timer0Init(); Write_Comm(0x80); Write_Data('L'); Write_Data('B'); Write_Data('J'); Write_Data(':'); Write_Comm(0x80+0x4e); Write_Data('S'); Write_Data('T'); Write_Comm(0x80+0x40); Write_Data('K'); Write_Data('O'); Write_Data('B'); Write_Data(':'); while(1){ Show_Time(); keyscan();}}voidShow_Time(void){ Write_Comm(0x80+0x48); Write_Char(er/100); Write_Char(er/10%10); Write_Char(11); Write_Char(er%10); Write_Comm(0x80+0x4d); Write_Char(e%10); Write_Comm(0x80+0x0a); Write_Char(min/10);//顯示倒計時分鐘 Write_Char(min%10); Write_Char(10);//顯示":" Write_Char(sec/10);//顯示倒計時秒 Write_Char(sec%10); Write_Comm(0x80+0x44); Write_Char(d/100); Write_Char(d/10%10); Write_Char(d%10%10); Write_Comm(0x84); Write_Char(c/100); Write_Char(c/10%10); Write_Char(c%10%10);}顯示函數(shù)voidWrite_Char(uintnum){ Read_Busy(); RS=1;RW=0;E=1; Lcd_Port=Lcddata[num]; E=0;}voidWrite_Data(ucharlcddata){ Read_Busy(); RS=1;RW=0;E=1;Lcd_Port=lcddata; E=0;}voidInit_LCD(void){ Delay(400);Write_Comm(0x38) Write_Comm(0x0c); Write_Comm(0x01); Write_Comm(0x06); Write_Comm(0x02);}}voidRead_Busy(void){ uchari=50; Lcd_Port=0xff; RS=0; RW=1; E=1; while((i--)&&Busy); E=0;}voidWrite_Comm(ucharlcdcomm){Read_Busy();RS=0;RW=0;E=1;Lcd_Port=lcdcomm;E=0;}LCD1602控制函數(shù)按鍵掃描函數(shù)voidkeyscan(){uchari,t=0xef;KEY_IO=0x0f;keytemp=(~KEY_IO)&0x0e;if(keytemp!=0) {Delay(20);for(i=0;i<3;i++){KEY_IO=t;keytemp=(~KEY_IO)&0x0e;if(keytemp!=0&flag_key==0){flag_key=1;switch(keytemp){case0x08:key=0*3+i;break;case0x04:key=1*3+i;break;case0x02:key=2*3+i;break;default:break;}switch(key){case0:{d++;j=1;b=0;}break;case1:{d++;d++;j=1;b=0;}break;case2:{d++;d++;d++;j=1;b=0;}break;case3:{c++;b=1;j=0;}break;case4:{c++;c++;b=1;j=0;}break;case5:{c++;c++;c++;b=1;j=0;}break;case6:{if(j==1&&(d!=0))d--;if(b==1&&(c!=0))c--;}break;case7:TR0=~TR0;TR1=~TR1;speaker=0;Delayms(1500);speaker=1;break;case8:TR1=1;TR0=1;er=240;break;default:break;}}t=(t<<1)|0x01;}}elseflag_key=0;}中斷0函數(shù) TR0=0; TR1=0; speaker=0; Delay(1500); speaker=1; e++; min=12; sec=0; er=240; } else { sec=60; min--; } } sec--; }}voidIsrTimer0()interrupt1using1//T050mS中斷程序{ staticucharcount=0; TH0=0x3c; TL0=0xb0; count++; if(count==20) { count=0; if(sec==0) { if(min==0) {中斷1函數(shù)voidIsrTimer1(void)interrupt3using3//T150mS中斷程序{ staticuchart24ms=0;TH1=0x3c; TL1=0xb0; t24ms++; if(t24ms==2) { t24ms=0; er--; if(er==0) { TR1=0;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論