籃球比賽計時計分器(附源程序)_第1頁
籃球比賽計時計分器(附源程序)_第2頁
籃球比賽計時計分器(附源程序)_第3頁
籃球比賽計時計分器(附源程序)_第4頁
籃球比賽計時計分器(附源程序)_第5頁
已閱讀5頁,還剩48頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

煙臺大學機電汽車工程學院單片機課程設計單片機課程設計課題:籃球比賽計時計分器姓名:班級:學號:指導老師:組長:組員:日期:摘要單片機,亦稱單片微電腦或單片微型計算機。它是把中央處理器(CPU)、隨機存取存儲器(RAM)、只讀存儲器(ROM)、輸入/輸出端口(I/0)等主要計算機功能部件都集成在一塊集成電路芯片上的微型計算機。本設計是基于8051單片機的籃球計時計分器,利用7段共陰LED作為顯示器件。在此設計中共接入了兩個個四位一體7段共陰LED顯示器,分別用來用來記錄賽程時間和甲乙兩隊的比分,其中記錄時間的LED中2位用于顯示分鐘,2位用于顯示秒鐘,后者用于記錄甲乙隊的分數(shù),每隊顯示范圍可達到0~99分。賽程計時采用倒計時方式,比賽開始時啟動計時,直至計時到零為止。其次,為了配合計時器和計分器校正調整時間和比分,我們特定在本設計中設立了12個按鍵,用于設置,調整時間,啟動,調整分數(shù)和暫停等功能。采用單片機控制是這個系統(tǒng)按鍵操作使用簡潔,LED顯示,安裝方便。主控芯片采用8051單片機,采用匯編語言進行編程,編程后利用KeiluVision3來進行編譯,再生成的HEX文件裝入芯片中,采用Proteus軟件來仿真,檢驗功能是否能夠正常實現(xiàn)。關鍵詞:8051、LED、時鐘電路、定時器目錄緒論-----------------------------------------------------------------1系統(tǒng)總體方案及硬件設計---------------------------------3總體方案---------------------------------------------------3硬件原理圖------------------------------------------------4軟件設計------------------------------------------------------8軟件總體方案設計---------------------------------------8程序設計--------------------------------------------------10Proteus仿真--------------------------------------------------19軟件介紹--------------------------------------------------19仿真過程--------------------------------------------------19設計心得-------------------------------------------------------21參考文獻-----------------------------------------------------------------22附錄一--------------------------------------------------------------------23第一章緒論當前,在世界范圍內,一個以微電子技術,計算機和通信技術為先導的,以信息技術和信息產(chǎn)業(yè)為中心的信息革命方興未艾。而計算機技術怎樣與實際應用更有效地結合并有效地發(fā)揮其作用是科學界最熱門的話題,也是當今計算機應用中空前活躍的領域?;@球比賽計分計時器是為了解決比賽計分計時的問題,此裝置利用了單片機AT89C51完成比賽的計時計分的功能。本文詳細的介紹了系統(tǒng)硬件與軟件的設計過程,采用該裝置可根據(jù)實際情況進行比分修改和顯示,具有功耗低、可靠性、安全性以及成本低等特點。體育比賽計分系統(tǒng)是對體育過程中所產(chǎn)生的比分進行快速采集記錄,加工處理,傳遞利用的信息系統(tǒng)。根據(jù)不同運動項目的不同比賽規(guī)則要求,體育比賽的計分系統(tǒng)包括測量類、評分類、命中類、制勝類、得分類等多種類型?;@球比賽是根據(jù)運動隊在規(guī)定的比賽時間里得分多少來決定勝負的,因此,籃球比賽的計分系統(tǒng)是一種得分類型的系統(tǒng)?;@球比賽的計分系統(tǒng)由計分器等多種電子設備組成。同時,根據(jù)目前高水平籃球比賽的要求,完善的籃球比賽計分系統(tǒng)設備應能與現(xiàn)場成績處理、現(xiàn)場大屏幕、電視轉播車等多種設備相連,以便實現(xiàn)高比賽現(xiàn)場感等功能目標。由于單片機的集成度高,功能強,通用性好,特別是它具有體積小、重量輕、能耗低、價格便宜、可靠性高、抗干擾能力強和使用方便等獨特的優(yōu)點,使單片機迅速得到了推廣應用,目前已經(jīng)成為測量控制應用系統(tǒng)中優(yōu)選機種和新電子產(chǎn)品的關鍵部位。世界各大電氣廠家、測控技術行業(yè)、機電行業(yè),競相把單片機應用于產(chǎn)品更新,作為實現(xiàn)數(shù)字化、智能化的核心部件,籃球計分計時器就是以單片機為核心的計時計分系統(tǒng)。本系統(tǒng)采用單片機AT89C51作為核心元件,利用7段共陽LED作為顯示器件,在此設計中接入兩個4位7段共陽LED顯示器,其中一個用于記錄時間,一個用于記錄兩隊的分數(shù)。其次,為了配合計時器和計分器校正調整時間和比分,我特定在本設計中設立了11個按鍵,其中8個用于設置,交換場地,啟動和暫停等功能。設計任務:設計一個用于賽場的籃球計時計分器。設計要求:1、能記錄整個賽程的比賽時間,并能修改比賽時間。2、能隨時刷新A、B兩隊在整個過程中的比分。3、中場交換比賽場地時,能交換A、B兩隊比分的位置。4、比賽結束時,能發(fā)出報警聲。第二章系統(tǒng)總體方案及硬件設計2.1總體方案籃球計時計分器主要包括單片機控制系統(tǒng)、計時顯示模塊、計分顯示模塊、定時報警,按鍵控制鍵盤模塊。通過這幾個模塊的協(xié)調工作就可以完成相應的計時計分控制和顯示功能。這四個模塊的相互連接如下圖(圖1)所示:圖1系統(tǒng)結構圖本系統(tǒng)采用單片機AT89C51作為本設計的核心元件。利用7段共陽LED作為顯示器件。在此設計中共接入了2個4位7段共陽LED顯示器,其中1個用于記錄A、B隊的分數(shù),顯示器顯示范圍可達到0~99分,足夠滿足賽程需要,另外1個LED顯示器則用來記錄賽程時間。賽程計時采用到計時方式,即比賽前將時間設置好,比賽開始時啟動計時,直至計時到零為止。計時范圍可達到0~99分鐘,也完全滿足實際賽程的需要。其次,為了配合計時器和計分器校正調整時間和比分,我們特定在本設計中設立了11個按鍵,其中8個用于設置,另外3個用于交換場地、啟動和暫停、調時功能。2.2硬件電路圖2.2.1時鐘電路時鐘電路在單片機系統(tǒng)中起著非常重要的作用,是保證系統(tǒng)正常工作的基礎。在一個單片機應用系統(tǒng)中,時鐘是保障系統(tǒng)正常工作的基準振蕩定時信號,主要由晶振和外圍電路組成,晶振頻率的大小決定了單片機系統(tǒng)工作的快慢。為達到振蕩周期是12MHZ的要求,這里要采用12MHZ的晶振,另外有兩個30p的電容,兩晶振引腳分別連到XTAL1和XTAL2振蕩脈沖輸入引腳。具體連接圖如圖2所示:圖2晶振電路顯示模塊顯示器的顯示原理:根據(jù)設計特點,此顯示選擇是動態(tài)LED顯示,所謂動態(tài)顯示就是一位一位的輪流點亮顯示器的各個位(掃描),對于顯示器的每一位而言,每隔一段時間點亮一次,雖然在同一時刻只有一位顯示器在工作,但由于人眼的視覺暫留效應和發(fā)光二極管熄滅的余輝,我們看到的卻是多個字符“同時”顯示,顯示器亮度既與點亮時的通道電流有關,也與點亮時間長短和時間間隔有關,調整電流和時間參數(shù)即可實現(xiàn)亮度較高穩(wěn)定的顯示。共陰極LED:所有發(fā)光二極管陰極共連后接到引腳G,G叫為控制端,用于控制LED是否點亮。若G腳接地則LED被點亮;若G腳接TTL高電平,則它熄滅。本設計采用共陽極數(shù)碼顯示器,通常,共陰極接低電平(一般接地),其它管腳接段驅動電路輸出端。當某段驅動電路的輸出端為高電平時,該端所連接的字符導通并點亮,根據(jù)發(fā)光字段的不同組合可顯示出各種數(shù)字或字符。同樣,要求段驅動電路能提供額定的段導通電流,還需根據(jù)外接電源及額定段導通電流來確定相應的限流電阻。本次設計在顯示模塊用到的是一個4位一體和2個兩位一體共陰極數(shù)碼管,共有8個代碼輸入口和8個位選輸入口,采用排阻提供上拉電流數(shù)碼管,以保證有足夠大的電流點亮數(shù)碼管,采用動態(tài)驅動,使各位數(shù)碼管逐個輪流受控顯示,這就是動態(tài)驅動。由于掃描速度極快,顯示效果與靜態(tài)驅動相同,其具體圖形如下圖3和圖4所示:圖3時間顯示圖4比分顯示報警模塊蜂鳴器通過一PNP三極管進行驅動,觸發(fā)信號有基極引入,如圖5所示:圖5報警模塊R5電阻的功能是:保護三極管,起到限流作用三極管的功能則是,利用其導通與截止的功能,使得蜂鳴器工作與否。加分開關隊兩隊進行+1、+2、+3和-1操作,如圖6所示:圖6第三章軟件設計在設計程序之前,我們首先要對單片機應用系統(tǒng)預完成的任務進行深入的分析,明確系統(tǒng)的設計任務、功能要求和技術指標。其次,要對系統(tǒng)的硬件資源和工作環(huán)境進行分析。這是單片機應用系統(tǒng)程序設計的基礎和條件。3.1軟件總體設計方案本次單片機課程設計軟件設計部分采用模塊化程序設計,程序部分由主程序、T0中斷程序、掃描顯示子程序、計時加(減)1秒的子程序、暫停子程序、延時子程序等組成。其程序流程圖如圖7和圖8所示:圖7主程序流程圖圖8掃描刷新顯示子程序流程圖程序設計軟件設計部分采用模塊化程序設計,用匯編語言編寫。Keil是美國KeilSoftware公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。

KeilC51軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調試工具,全Windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到KeilC51生成的目標代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。程序部分由主程序、T0中斷程序、掃描顯示子程序、計時加(減)1秒的子程序、暫停子程序、延時子程序等組成。主程序ORG0000HLJMPMAINORG0003HLJMPCHANGE;CHANGE為INT0中斷0003H為INT0中斷的入口地址;ORG000BHLJMPTIME;TIME為T0中斷,000BH為T0中斷的入口地址;ORG0013HLJMPTIAOSHI;TIAOSHI為INT1中斷,0013H為INT1 中斷的入口地址;MAIN:MOVSP,#50H;數(shù)據(jù)指針賦值;MOVTCON,#04H;INT1為負邊沿觸發(fā);MOV20H,#00H;秒MOV21H,#0CH;分MOV22H,#00H;;;;;;;;;A隊分數(shù);;;;;;;;;;;;;;;;;MOV23H,#00H;;;;;;;;;;B隊分數(shù);;;;;;;;;;;MOV24H,#02H;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MOV25H,#01HMOV26H,#0CH;;;;;;;;;;;分鐘定時區(qū),起始定時12分鐘;;MOV30H,#00H;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MOV31H,#00H;;;;;;;;;時間緩沖區(qū);;;;;;;;;;MOV32H,#02H;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MOV33H,#01H;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MOV34H,#00H;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MOV35H,#00H;;;;;;;;分數(shù)顯示緩沖區(qū);;;;;;;MOV36H,#00H;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MOV37H,#00H;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MOVTMOD,#01H;定時器方式控制寄存器,為方式1工作,16位計數(shù)器;MOVTH0,#03CHMOVTL0,#0B0H;在方式1下,定時50毫秒;MOVIE,#10000111B;開中斷EA=1,EX1=1,ET0=1,EX0=1,開INT0,T0,INT1;MOVIP,#05H;設置中斷優(yōu)先級INT0,INT1,T0,T1;MOVR2,#0AHSTART:LCALLDISPT;調用時間顯示程序;LCALLDISPF;調用比分顯示程序;JNBP1.0,PP1;A隊加一分JNBP1.1,PP2;A隊加兩分JNBP1.2,PP3;A隊加三分JNBP1.3,PP4;A隊減一分JNBP1.4,PP55;B隊加一分JNBP1.5,PP66;B隊加兩分JNBP1.6,PP77;B隊加三分JNBP1.7,PP88;B隊減一分JBP3.0,STARTLCALLDELAY;調用延時程序;JBP3.0,STARTSTOP1:JNBP3.0,STOP1LCALL悠DELAYJNB!P3.0,STOP1??CPL?R0;按鍵奇數(shù)次開始,偶數(shù)次暫停,TR0為T0計數(shù)器的啟停位;LJMPS?ART?P55:LJMPPP?PP66:LJMPPQ6PP77:РLJmPPP7PP88?LJMPPP8PP1:LCALLńELAY;;;;лA隊加1;;;;;;;?;;;;?JB?1.0,PPBSTяP11:KNBP1.0,STOP11LCALLDELAYJNBP1.0,STOP11INC22HMOVA,22HLJMPSTOREAPP2:LCALLDELAYJBP1.1,PPBSTOP22:JNBP1.1,STOP22;;;;A隊加2;;;;;;;;;;;;;;LCALLDELAYJNBP1.1,STOP22MOVA,22HADDA,#02MOV22H,ALJMPSTOREAPP3:LCALLDELAY;;;;;;A隊加3;;;;;;;;;;;JBP1.2,PPBSTOP33:JNBP1.2,STOP33LCALLDELAYJNBP1.2,STOP33MOVA,22HADDA,#03MOV22H,ALJMPSTOREAPP4:LCALLDELAY;;;;;A隊減1;;;;;;;;;;JBP1.3,PPBSTOP44:JNBP1.3,STOP44LCALLDELAYJNBP1.3,STOP44DEC22HMOVA,22HSTOREA:MOVB,#0AH;;;;將A隊的分數(shù)轉化為十進制數(shù),34H顯示個位,35H顯示十位;DIVABMOV34H,BMOV35H,APPB:LJMPSTARTPP5:LCALLDELAY;;B隊加1;;;;;JBP1.4,PPCSTOP55:JNBP1.4,STOP55LCALLDELAYJNBP1.4,STOP55INC23HMOVA,23HLJMPSTOREBPP6:LCALLDELAY;;;B隊加2;;;;;;JBP1.5,PPCSTOP66:JNBP1.5,STOP66LCALLDELAYJNBP1.5,STOP66MOVA,23HADDA,#02MOV23H,ALJMPSTOREBPP7:LCALLDELAY;;;;B隊加3;;;;;;JBP1.6,PPCSTOP77:JNBP1.6,STOP77LCALLDELAYJNBP1.6,STOP77MOVA,23HADDA,#03MOV23H,ALJMPSTOREAPP8:LCALLDELAY;;;;B隊減1;;;;;;JBP1.7,PPCSTOP88:JNBP1.7,STOP88LCALLDELAYJNBP1.7,STOP88DEC23HMOVA,23HSTOREB:MOVB,#0AH;;;;;;;將A隊的分數(shù)轉化為十進制數(shù),36H顯示個位,37H顯示十位;DIVABMOV36H,BMOV37H,APPC:LJMPSTARTDELAY:MOVR4,#5H;;;;;延時程序2.5ms;;;;DL00:MOVR5,#0FFHDL11:DJNZR5,DL11DJNZR4,DL00RET時間中斷程序TIME:PUSHACC;;保護現(xiàn)場;;;;PUSHPSWMOVTH0,#03CH;;;;重新裝入初值;;;;MOVTL0,#0B0HDJNZR2,RET0;;;;等待1秒到;;;;MOVR2,#0AH;;;重新給定R2值;;;;MOVA,20HCLRCDECAMOV20H,AMOVA,21HCJNEA,#00H,PFF;;;;;;;;;非0分跳轉;;;;;;;;;;;;;;;;;MOVA,20HCJNEA,#00H,PFF;;;;;;;;;非0分0秒情況跳轉;;;;;;;;;;CLRTR0;;;;;;;;;比賽結束停止計時;;;;;;;;;;MOV20H,#00H;;;;顯示器清零;;;;;;MOV21H,#00HMOV32H,#00HMOV33H,#00HLCALLMINGYIN;;;調用MINGYIN子程序;;;;;MOV21H,26HMOV30H,#00HMOV31H,#00HMOV32H,24HMOV33H,25HLJMPRET0PFF:MOVA,20HCJNEA,#0FFH,OUT;;不是0秒則OUT;;MOV20H,#59;是0秒則給秒賦值59;;MOV30H,#09HMOV31H,#05HMOVA,21HDECAMOV21H,AOUT:MOVA,20H;;將秒轉化為十進制,輸出;;;MOVB,#0AHDIVABMOV30H,BMOV31H,AMOVA,21HMOVB,#0AHDIVABMOV32H,BMOV33H,ARET0:POPPSWPOPACCRETI鳴音子程序MINGYIN:SETBP3.6;;;將P3.6口置1,為高電平;MOVR4,#0FFH;;;鳴音延時;;;MOVR7,#4XU2:MOVR6,#50XU1:MOVR5,#50XU:DJNZR5,XUDJNZR6,XU1CPLP3.6DJNZR4,XU2DJNZR7,XU2RETI時間顯示子程序DISPT:MOVR0,#30H;;段碼偏移位地址;MOVR3,#08H;位選地址位;MOVA,R3PLAYT:MOVP2,AMOVA,@R0;給地址偏移量;MOVDPTR,#DSEG1MOVCA,@A+DPTR;;查表;;;MOVP0,ALCALLDL1MOVP2,#00HMOVA,R3RRA;;循環(huán)右移,選下一位;;JBACC.7,LD1;;;判斷顯示完沒有;;;INCR0;;段碼偏移位地址加1;;;MOVR3,ALJMPPLAYTLD1:RET3.2.5比分顯示子程序DISPF:MOVR0,#34H;段碼偏移位地址;MOVR3,#80H;位選地址位;MOVA,R3PLAYF:MOVP2,AMOVA,@R0MOVDPTR,#DSEG1MOVCA,@A+DPTR;查表;MOVP0,ALCALLDL1MOVP2,#00HMOVA,R3RRA;;循環(huán)右移,選下一位;;JBACC.3,LD1;;;判斷顯示完沒有;;;INCR0;;段碼偏移位地址加1;;;MOVR3,ALJMPPLAYFAJMPLD13.2.6調時時間顯示程序:DISPW:MOVR0,#24H;段碼偏移位地址;MOVR3,#08H;;位選地址位;MOVA,R3PLAYW:MOVP2,AMOVA,@R0MOVDPTR,#DSEG1MOVCA,@A+DPTRMOVP0,ALCALLDL1MOVP2,#00HMOVA,R3RRA;;循環(huán)右移,選下一位;;JBACC.1,LD1;;;判斷顯示完沒有;;;INCR0;;段碼偏移位地址加1;;;MOVR3,ALJMPPLAYWDL1:MOVR7,#05HDL:MOVR6,#0FFHDL6:DJNZR6,DL6DJNZR7,DLRETDSEG1:DB0C0H,0F9H,0A4H,0B0H,99H;段碼表;;DB92H,82H,0F8H,80H,90H;;;;;;;;;調時子程序;;;;;;;;;;;;;TIAOSHI:PUSHACC;;保護現(xiàn)場;;;PUSHPSWJBP3.3,CHULCALLDELAYJBP3.3,CHUSTOPQ:JNBP3.3,STOPQLCALLDELAYJNBP3.3,STOPQIF10:LCALLDISPWLCALLDISPFJNBP1.3,DECTJBP1.0,WHAIT2LCALLDELAYJBP1.0,WHAIT2STOPE:MOVC,P1.0;;;時間分加1;;;;JNCSTOPELCALLDELAYMOVC,P1.0JNCSTOPEINC26HLJMPSTOREDECT:MOVC,P1.3LCALLDELAYJCWHAIT2STOPY:MOVC,P1.3;;;;時間分減1;;;;;JNCSTOPYLCALLDELAYMOVC,P1.3JNCSTOPYDEC26HSTORE:MOV21H,26H;;;將時間轉化為十進制數(shù)顯示;;;;MOV20H,#00HMOVA,26HMOVB,#0AHDIVABMOV24H,BMOV25H,AMOV30H,#00HMOV31H,#00HMOV32H,24HMOV33H,25HLJMPIF10WHAIT2:JBP3.3,IF10LCALLDELAYJBP3.3,IF10STOPG:JNBP3.3,STOPGLCALLDELAYJNBP3.3,STOPGCHU:POPPSWPOPACCRETI3.2.7交換場地程序:CHANGE:PUSHPSW;;保護現(xiàn)場;;;PUSHACCJBP3.2,QULCALLDELAYJBP3.2,QUSTOPCH:JNBP3.2,STOPCHLCALLDELAYJNBP3.2,STOPCHMOVA,22H;;;將AB兩隊分數(shù)存儲交換;;;XCHA,23HMOV22H,AMOVA,34H;;;分別將AB的分十位,分個位進行交換;;;XCHA,36HMOV34H,AMOVA,35HXCHA,37HMOV35H,AQU:POPACCPOPPSWRETIEND第四章Proteus仿真4.1軟件介紹Proteus是英國Labcenter公司開發(fā)的電路分析與實物仿真軟件。它運行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路,該軟件的特點是:

①實現(xiàn)了單片機仿真和SPICE電路仿真相結合。具有模擬電路仿真、數(shù)字電路仿真、單片機及其外圍電路組成的系統(tǒng)的仿真、RS232動態(tài)仿真、I2C調試器、SPI調試器、鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等。

②支持主流單片機系統(tǒng)的仿真。目前支持的單片機類型有:ARM7(LPC21xx)、AT89C51/52系列、AVR系列、PIC10/12/16/18系列、HC11系列以及多種外圍芯片。

③提供軟件調試功能。在硬件仿真系統(tǒng)中具有全速、單步、設置斷點等調試功能,同時可以觀察各個變量、寄存器等的當前狀態(tài),因此在該軟件仿真系統(tǒng)中,也必須具有這些功能;同時支持第三方的軟件編譯和調試環(huán)境,如KeilC51uVision3、MPLAB等軟件。

④具有強大的原理圖繪制功能??傊撥浖且豢罴瘑纹瑱C和SPICE分析于一身的仿真軟件,功能極其強大。4.2仿真過程進入比賽,先設置時間為一節(jié)或著半場。默認是12分鐘(按下“A+1”進行分鐘加1,按下“A-1”進行分鐘減1),如圖9所示:圖9按下“START/PAUSE”開始比賽或者暫停,如圖10所示:圖10上面的液晶顯示為計時顯示。下面的液晶顯示為分數(shù)顯示“左側為B隊分數(shù),右側為A隊分數(shù)。”換場后依然如此。按下“CHANGEFIELD”交換場地,重新計時。A+1,A+2,A+3,A-1,B+1,B+2,B+3,B-1進行A,B隊分數(shù)調整。時間到,自動將計時歸零,分數(shù)還可以調整。如下圖11所示:圖11設計心得這次實習讓我受益匪淺,無論從知識上還是其他的各個方面。上課的時候的學習從來沒有見過真正的單片機,只是從理論的角度去理解枯燥乏味。但在實習中見過甚至使用了單片機及其系統(tǒng),能夠理論聯(lián)系實際的學習,開闊了眼界,提高了對單片機知識的理解。在這次課程設計中又讓我體會到了合作與團結的力量,當遇到不會或是設計不出來的地方,我們就會互相討論、相互幫助。團結就是力量,無論在現(xiàn)在的學習中還是在以后的工作中,團結都是至關重要的,有了團結會有更多的理念、更多的思維、更多的情感。通過單片機課程設計,不但讓我掌握了KeiluVision3、ProteusISIS7這些應用程序的簡單運用,讓我懂得了如何編寫一些簡單的程序,學會了如何制作單片機應用程序以及程序下載,而且也加深了我對單片機理論的理解,學會了怎樣將理論很好地應用到實際當中去,而且還學會了如何去培養(yǎng)我們的不畏困難的挑戰(zhàn)精神,從而不斷地戰(zhàn)勝自己,超越自己。我在這一設計過程中,學會了堅持不懈,不輕易言棄。設計過程也好比是我們人類成長的歷程,常有一些不如意,也許這就是在對我們提出了挑戰(zhàn),勇敢過,也戰(zhàn)勝了,勝利的鐘聲也就一定會為我們而敲響。最后感謝老師對我們的精心指導和幫助,感謝同學們對我的幫助。對于此設計的改進意見:若比賽出現(xiàn)錯誤加分,應予以相應減分,為此設置減分裝置(本設計已完成此項內容)。兩對交換場地后相應的分數(shù)應交換位置(本設計已完成此項內容)。其他籃球比賽規(guī)則如24秒等也加入此設計(本設計未實現(xiàn)此項內容)。比分范圍應該擴大,以滿足比賽要求,當前為0-99分,建議改為0-999分(本設計未實現(xiàn)此項內容)。參考文獻:【1】汪貴平新編單片機原理及應用機械工業(yè)出版社2012【2】張齊單片機原理與應用系統(tǒng)設計電子工業(yè)出版社2010【3】藍和慧全國大學生電子設計競賽之單片機應用技能電子工業(yè)出版社2009【4】劉法治常用電子器件及典型芯片應用技術機械工業(yè)出版2007附錄一源程序ORG0000HLJMPMAINORG0003HLJMPCHANGE;CHANGE為INT0中斷0003H為INT0中斷的入口地址;ORG000BHLJMPTIME;TIME為T0中斷,000BH為T0中斷的入口地址;ORG0013HLJMPTIAOSHI;TIAOSHI為INT1中斷,0013H為INT1 中斷的入口地址;MAIN:MOVSP,#50H;數(shù)據(jù)指針賦值;MOVTCON,#04H;INT1為負邊沿觸發(fā);MOV20H,#00H;秒MOV21H,#0CH;分MOV22H,#00H;;;;;;;;;A隊分數(shù);;;;;;;;;;;;;;;;;MOV23H,#00H;;;;;;;;;;B隊分數(shù);;;;;;;;;;;MOV24H,#02H;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MOV25H,#01HMOV26H,#0CH;;;分鐘定時區(qū),起始定時12分鐘;;MOV30H,#00H;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MOV31H,#00H;;;;;;;;;時間緩沖區(qū);;;;;;;;;;MOV32H,#02H;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MOV33H,#01H;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MOV34H,#00H;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MOV35H,#00H;;;;;;;;分數(shù)顯示緩沖區(qū);;;;;;;MOV36H,#00H;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MOV37H,#00H;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MOVTMOD,#01H;定時器方式控制寄存器,為方式1工作,16位計數(shù)器;MOVTH0,#03CHMOVTL0,#0B0H;在方式1下,定時50毫秒;MOVIE,#10000111B;開中斷EA=1,EX1=1,ET0=1,EX0=1,開INT0,T0,INT1;MOVIP,#05H;設置中斷優(yōu)先級INT0,INT1,T0,T1;MOVR2,#0AHSTART:LCALLDISPT;調用時間顯示程序;LCALLDISPF;調用比分顯示程序;JNBP1.0,PP1;A隊加一分JNBP1.1,PP2;A隊加兩分JNBP1.2,PP3;A隊加三分JNBP1.3,PP4;A隊減一分JNBP1.4,PP55;B隊加一分JNBP1.5,PP66;B隊加兩分JNBP1.6,PP77;B隊加三分JNBP1.7,PP88;B隊減一分JBP3.0,STARTLCALLDELAY;調用延時程序;JBP3.0,STARTSTOP1:JNBP3.0,STOP1LCALLDELAYJNBP3.0,STOP1CPLTR0;按鍵奇數(shù)次開始,偶數(shù)次暫停,TR0為T0計數(shù)器的啟停位;LJMPSTARTPP55:LJMPPP5PP66:LJMPPP6PP77:LJMPPP7PP88:LJMPPP8PP1:LCALLDELAY;;;;;A隊加1;;;;;;;;;;;;JBP1.0,PPBSTOP11:JNBP1.0,STOP11;防抖動延時程序;LCALLDELAYJNBP1.0,STOP11INC22HMOVA,22HLJMPSTOREAPP2:LCALLDELAYJBP1.1,PPBSTOP22:JNBP1.1,STOP22;;;;A隊加2;;;;;;;;;;;;;;LCALLDELAYJNBP1.1,STOP22MOVA,22HADDA,#02MOV22H,ALJMPSTOREAPP3:LCALLDELAY;;;;;;A隊加3;;;;;;;;;;;JBP1.2,PPBSTOP33:JNBP1.2,STOP33LCALLDELAYJNBP1.2,STOP33MOVA,22HADDA,#03MOV22H,ALJMPSTOREAPP4:LCALLDELAY;;;;;A隊減1;;;;;;;;;;JBP1.3,PPBSTOP44:JNBP1.3,STOP44LCALLDELAYJNBP1.3,STOP44DEC22HMOVA,22HSTOREA:MOVB,#0AH;;;;將A隊的分數(shù)轉化為十進制數(shù),34H顯示個位,35H顯示十位;DIVABMOV34H,BMOV35H,APPB:LJMPSTARTPP5:LCALLDELAY;;B隊加1;;;;;JBP1.4,PPCSTOP55:JNBP1.4,STOP55LCALLDELAYJNBP1.4,STOP55INC23HMOVA,23HLJMPSTOREBPP6:LCALLDELAY;;;B隊加2;;;;;;JBP1.5,PPCSTOP66:JNBP1.5,STOP66LCALLDELAYJNBP1.5,STOP66MOVA,23HADDA,#02MOV23H,ALJMPSTOREBPP7:LCALLDELAY;;;;B隊加3;;;;;;JBP1.6,PPCSTOP77:JNBP1.6,STOP77LCALLDELAYJNBP1.6,STOP77MOVA,23HADDA,#03MOV23H,ALJMPSTOREAPP8:LCALLDELAY;;;;B隊減1;;;;;;JBP1.7,PPCSTOP88:JNBP1.7,STOP88LCALLDELAYJNBP1.7,STOP88DEC23HMOVA,23HSTOREB:MOVB,#0AH;;;;;;;將A隊的分數(shù)轉化為十進制數(shù),36H顯示個位,37H顯示十位;DIVABMOV36H,BMOV37H,APPC:LJMPSTARTDELAY:MOVR4,#5H;;;;;延時程序2.5ms;;;;DL00:MOVR5,#0FFHDL11:DJNZR5,DL11DJNZR4,DL00RETTIME:PUSHACC;;保護現(xiàn)場;;;;PUSHPSWMOVTH0,#03CH;;;;重新裝入初值;;;;MOVTL0,#0B0HDJNZR2,RET0;;;;等待1秒到;;;;MOVR2,#0AH;;;重新給定R2值;;;;MOVA,20HCLRCDECAMOV20H,AMOVA,21HCJNEA,#00H,PFF;;;;;;;;;非0分跳轉;;;;;;;;;;;;;;;;;MOVA,20HCJNEA,#00H,PFF;;;;;;;;;非0分0秒情況跳轉;;;;;;;;;;CLRTR0;;;;;;;;;比賽結束停止計時;;;;;;;;;;MOV20H,#00H;;;;顯示器清零;;;;;;MOV21H,#00HMOV32H,#00HMOV33H,#00HLCALLMINGYIN;;;調用MINGYIN子程序;;;;;MOV21H,26HMOV30H,#00HMOV31H,#00HMOV32H,24HMOV33H,25HLJMPRET0PFF:MOVA,20HCJNEA,#0FFH,OUT;;不是0秒則OUT;;MOV20H,#59;是0秒則給秒賦值59;;MOV30H,#09HMOV31H,#05HMOVA,21HDECAMOV21H,AOUT:MOVA,20H;;將秒轉化為十進制,輸出;;;MOVB,#0AHDIVABMOV30H,BMOV31H,AMOVA,21HMOVB,#0AHDIVABMOV32H,BMOV33H,ARET0:POPPSWPOPACCRETIMINGYIN:SETBP3.6;;;將P3.6口置1,為高電平;MOVR4,#0FFH;;;鳴音延時;;;MOVR7,#4XU2:MOVR6,#50XU1:MOVR5,#50XU:DJNZR5,XUDJNZR6,XU1CPLP3.6DJNZR4,XU2DJNZR7,XU2RETIDISPT:MOVR0,#30H;;段碼偏移位地址;MOVR3,#08H;位選地址位;MOVA,R3PLAYT:MOVP2,AMOVA,@R0;給地址偏移量;MOVDPTR,#DSEG1MOVCA,@A+DPTR;;查表;;;MOVP0,ALCALLDL1MOVP2,#00HMOVA,R3RRA;;循環(huán)右移,選下一位;;JBACC.7,LD1;;;判斷顯示完沒有;;;INCR0;;段碼偏移位地址加1;;;MOVR3,ALJMPPLAYTLD1:RETDISPF:MOVR0,#34H;段碼偏移位地址;MOVR3,#80H;位選地址位;MOVA,R3PLAYF:MOVP2,AMOVA,@R0MOVDPTR,#DSEG1MOVCA,@A+DPTR;查表;MOVP0,ALCALLDL1MOVP2,#00HMOVA,R3RRA;;

溫馨提示

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

評論

0/150

提交評論