




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
基于單片機的籃球計時計分器設(shè)計摘要隨著科技的日益發(fā)展進步,單片機技術(shù)已經(jīng)被廣泛應(yīng)用在科研、工作等重要領(lǐng)域內(nèi),目前也已經(jīng)普及到我們的日常生活中,扮演著十分重要的角色。本次設(shè)計是基于單片機的籃球計分器,以基本籃球規(guī)則為依據(jù),設(shè)計結(jié)構(gòu)簡單且方便操作,對籃球比賽實現(xiàn)實時控制。此次設(shè)計的計分器總共包括四個模塊,他們是24秒顯示、計時器、記分器、計節(jié)器。實現(xiàn)的功能是:24秒顯示能按鍵控制24秒計時器,當控球時間超過24秒時,可發(fā)出報警信號。計時器可按鍵調(diào)節(jié),可以隨時暫停計時,暫停比賽,在每節(jié)結(jié)束和全場結(jié)束時報警。記分器記錄兩隊的積累分數(shù),可通過按鍵分別加1、2、3分。設(shè)計分為硬件設(shè)計和軟件設(shè)計。硬件設(shè)計的主要包括的是:LED數(shù)碼管顯示、按鍵控制系統(tǒng)設(shè)計以及輔助功能的設(shè)計。軟件設(shè)計包括:功能選擇、倒計時的實現(xiàn)。本文主要介紹了用單片機設(shè)計實現(xiàn)籃球計分器的整個流程,采用C語言編寫程序。設(shè)計引用MAX7219專用LED驅(qū)動芯片,解決了多位LED數(shù)碼管同時顯示的問題。其中時間顯示和比分顯示部分由兩組共陰極LED數(shù)碼管顯示。時間顯示部分可以以分為單位進行計時調(diào)整。比分顯示部分可以實現(xiàn)在半場結(jié)束后手動換場,兩個顯示模塊均采用動態(tài)掃描方式進行顯示。按鍵控制部分采用獨立按鍵,共設(shè)八個按鍵,實現(xiàn)調(diào)整分數(shù)、調(diào)整時間、比賽的開始/暫停、復(fù)位鍵和交換場地鍵等功能。報警部分由蜂鳴器加三級管驅(qū)動,實現(xiàn)了發(fā)出按鍵聲音和結(jié)束報警的功能。采用單片機控制使這個系統(tǒng)按鍵操作使用簡單,安裝方便。解決了籃球比賽計數(shù)器的安裝問題,節(jié)約了線材,適合在各種規(guī)模的體育場館使用,完全可以代替?zhèn)鹘y(tǒng)的用鐘表進行計時的方法,當然稍加改動也可以用于其他球類比賽,是體育器材向智能化發(fā)展的一個實例。
關(guān)鍵詞:STC89C51單片機;溫度控制;恒溫箱;DS18B20
目錄TOC\o"1-2"\u\t"標題3,3"1概述 12籃球計數(shù)器系統(tǒng)總體設(shè)計 22.1基本功能介紹 22.2系統(tǒng)構(gòu)成框圖 32.3籃球計時器的工作過程 33系統(tǒng)的硬件設(shè)計 43.1系統(tǒng)硬件部分組成 43.2時鐘頻率電路設(shè)計 63.3復(fù)位電路的設(shè)計 73.4顯示電路的設(shè)計 83.5開關(guān)鍵盤的設(shè)計 94系統(tǒng)的軟件設(shè)計 104.1軟件任務(wù)分析 104.2主程序設(shè)計 104.3鍵盤識別及處理程序設(shè)計 114.4顯示子程序設(shè)計 124.5復(fù)位程序設(shè)計 135系統(tǒng)的調(diào)試 145.1軟件模擬調(diào)試 145.2硬件接線 155.3實物調(diào)試 165.4調(diào)試總結(jié) 19結(jié)論與展望 20附錄A系統(tǒng)原理圖 23附錄B系統(tǒng)仿真圖 24附錄C實物圖 25附錄D系統(tǒng)源程序 261概述單片機將我們帶入了智能的電子領(lǐng)域,許多復(fù)雜的系統(tǒng)若用單片機進行設(shè)計,便能達到電路更簡單、功能更齊全的效果。若把經(jīng)典的電子系統(tǒng)當作一個僵硬的電子系統(tǒng),那么智能的現(xiàn)代電子系統(tǒng)則是一個具有“生命”的電子系統(tǒng)。單片機的使用領(lǐng)域已十分廣泛,幾乎很難找到哪個領(lǐng)域沒有單片機的蹤跡。智能儀表、實時工控、通訊設(shè)備、導航系統(tǒng)、家用電器等,各種產(chǎn)品一旦用上了單片機,就能起到使產(chǎn)品升級換代的功效。單片機具有集合程度非常高、外形小、系統(tǒng)控制功能強與擴展空間大等特點,而且能快速地處理指令,有很高的穩(wěn)定性,因此在儀器儀表的制造領(lǐng)域占有一席之地【1】。就其應(yīng)用性而言,單片機改變了傳統(tǒng)的測量方式、引領(lǐng)了儀器儀表制造應(yīng)與用技術(shù)的浪潮。使用此項技術(shù)使儀器儀表實現(xiàn)了更加智能、應(yīng)用更加廣泛、適用場景更加多變的功能。本設(shè)計是由STC89C52RC單片機編程控制LCD1602顯示器做顯示的籃球計時計分系統(tǒng)。本系統(tǒng)具有比賽定時設(shè)置、賽程時間暫停、甲、乙雙方比分以及比賽節(jié)數(shù)。它具有價格低廉、性能穩(wěn)定、操作方便且易攜帶等特點。本設(shè)計是基于單片機的計時計分系統(tǒng),通過串口通信動態(tài)傳輸數(shù)據(jù),使計時計分系統(tǒng)有了更多更完善的功能。單片機系統(tǒng)的硬件結(jié)構(gòu)給了籃球計分器系統(tǒng)“身軀”,而單片機的應(yīng)用程序賦予其新的“生命”。2籃球計數(shù)器系統(tǒng)的總體設(shè)計2.1基本功能介紹(1)賽程時間設(shè)置在計時電路中,按鍵開關(guān)K1、K4、K5、K6用來設(shè)置時間。比如:比賽時上半場時間為10分,在上電顯示開機畫面,則通過按K1鍵,進入節(jié)時間調(diào)整;再分別按K5、K6鍵對時間加減,默認為12分鐘一節(jié),設(shè)置好后按K4鍵退出時間設(shè)置,等待比賽開始。當比賽規(guī)定時間結(jié)束時,雙方分數(shù)仍然相同,這時系統(tǒng)默認再進行5分鐘加時,不可調(diào)整。(2)賽程時間啟/停設(shè)置時間設(shè)置好后按K8鍵開始進行比賽時間倒計時,倒計時開始后再按一次,比賽時間暫停。可隨時進行時間暫停。(3)比分刷新控制由于在比賽中,甲、乙兩隊的比分是不斷變化的,所以需設(shè)置比分刷新控制裝置;此功能由K1-K6完成:K1鍵:完成甲隊加1分操作K2鍵:完成甲隊減1分操作K3鍵:完成甲隊局數(shù)比分加1分操作K4鍵:完成甲隊局數(shù)比分減1分操作K5鍵:完成乙隊加1分操作K6鍵:完成乙隊減1分操作K7鍵:完成乙隊局數(shù)比分加1分操作K8鍵:完成乙隊局數(shù)比分減1分操作另外通過K8可以開始比賽(4)賽程結(jié)束報警當比賽結(jié)束時,系統(tǒng)會自動發(fā)出報警聲,提示比賽結(jié)束,之后報警結(jié)束。2.2系統(tǒng)構(gòu)成框圖系統(tǒng)的主要功能模塊方框圖如圖2-1所示。圖2-1系統(tǒng)構(gòu)成框圖2.3籃球計時計分器的工作過程整個籃球比賽計時計分器的工作過程如下:首先在比賽之前,接通電源,系統(tǒng)自動復(fù)位,此時第一行顯示雙方總分數(shù)為000和000;第二行依次顯示:節(jié)數(shù)、節(jié)倒計時時間、24秒倒計時時間。開機后顯示W(wǎng)elcometouse,如果不需要設(shè)定單節(jié)比賽時間的話直接按下K2按鍵,默認12分鐘每節(jié)比賽時間,進入比賽界面,如果需要需要設(shè)定按下K1按鍵后顯示set-time:00,按K5+,K6-,設(shè)定完成后按K4即可進入比賽界面。進入比賽界面后,按K8開始計時比賽,此時可以加2分和3分,加分后自動暫停,重新24秒計時,需再次按下K8繼續(xù)比賽,比賽期間不可加1分,1分只有罰球可得,罰球時是暫停的,所以在暫停時A隊和B隊加一分才管用,兩罰不進按下k5之后重新計時繼續(xù)比賽。24秒內(nèi)如果沒有加分,進攻違例報警2秒,按K8繼續(xù)開始比賽。如果四節(jié)比賽時間到后比分相同自動進入加時賽。加時賽5分鐘,時間不可修改。由于對于各隊的分數(shù)加減是利用系統(tǒng)中的中斷程序完成,并且在將計時電路的中斷優(yōu)先級設(shè)計成大于加減分的中斷優(yōu)先級,故而計時程序電路在此過程中可以正常工作。比賽的中途,假如有一支隊伍因換人而請求暫停比賽,得到裁判的同意,操作員即可對應(yīng)的按鍵,就可以實現(xiàn)對比賽暫停計時的功能,恢復(fù)比賽時,再次按下對應(yīng)的按鍵就可實現(xiàn)對比賽的繼續(xù)計時的功能。至本場比賽結(jié)束,蜂鳴器會發(fā)出2秒鐘響聲,表示比賽結(jié)束。3系統(tǒng)的硬件設(shè)計3.1系統(tǒng)硬件部分組成:系統(tǒng)硬件主要是由單片機STC89C52RC、顯示電路、報警電路和按鍵開關(guān)四個部分組成。(1)器件的選擇本系統(tǒng)在設(shè)計過程中主要選取了以下一些器件:單片機:STC89C52RC。顯示器件:LCD1602顯示器。報警器件:5V有源蜂鳴器。按鍵:獨立式按鍵。(2)顯示部分硬件的設(shè)計1.LCM1602的接口信號說明如表3-1:編號引腳符號功能說明編號引腳符號功能說明1VSS電源地9D2DATAI/O2VDD電源正極10D3DATAI/O3VL液晶顯示偏壓信號11D4DATAI/O4RS數(shù)據(jù)/命令選擇端(H/L)12D5DATAI/O5R/W讀/寫選擇端(H/L)13D6DATAI/O6E使能信號14D7DATAI/O7D0DATAI/O15BLA背光正極8D1DATAI/O16BLK背光負極表3-1LCM1602的接口信號2.基本操作時序如下:1)讀狀態(tài):RS=L,RW=H,E=H2)寫指令:RS=L,RW=L,D0~D7=指令碼,E=高脈沖3)讀數(shù)據(jù):RS=H,RW=H,E=H4)寫數(shù)據(jù):RS=H,RW=L,D0~D7=數(shù)據(jù),E=高脈沖3.初始化設(shè)置1)顯示模式設(shè)置如表3-2:表3-2顯示模式設(shè)置2)顯示開/關(guān)及光標設(shè)置如表3-3:表3-3顯示開/關(guān)及光標設(shè)置3.2時鐘頻率電路設(shè)計時鐘電路的作用在于能夠發(fā)生單片機在運行時的時間單位的時鐘脈沖,這種脈沖式控制其工作的信號,可以監(jiān)管單片機按照指揮進行運作。在此過程中,中央處理器會先從數(shù)據(jù)寄存器中提取所參照的指令的代碼,緊接著對指令進行翻譯,然后會根據(jù)時序電路發(fā)出的信號去實現(xiàn)指令所指導的步驟任務(wù)【2】。CPU發(fā)出的時序信號有兩類,一類用于內(nèi)部對各個實現(xiàn)不同功能的組件的控制,另一類用于對片外存儲器或I/O端口的控制外部時鐘方式外部時鐘方式是使用外部振蕩器產(chǎn)生的脈沖信號,常用于多片單片機同時工作,以便于多片單片機之間的同步,一般為低于12MHz的方波,常見的89C52單片機的外部接法:外部的時鐘源直接連接到XTAL1端,XTAL2端懸空NC外部振蕩信號輸入.至于內(nèi)部接法,在單片機的組成部分中有一個可以實現(xiàn)提高增益的組件,該組件為反向放大器【3】。其輸入端單片機的引腳XTAL1輸出為XTAL2。電路如下圖圖3-4所示。圖3-4振蕩電路XTAL2XTALGND內(nèi)部時鐘電路的電路中所使用的電容C1和C2的典型值通常取為30pF左右,對在外部連接的電容的值雖然沒有具體的規(guī)格上限值,可是所使用的電容的規(guī)格大小還是對晶體振蕩器頻率及其穩(wěn)定程度、產(chǎn)生振蕩的速度都具有很大的影響。晶體振蕩器的頻率范圍通常是在1.2MHz-12MHz之間,晶振的頻率提高,系統(tǒng)時鐘時鐘頻率也會隨之而提高,單電容必須安置在得與單片機芯片靠近的位置,為了防止產(chǎn)生對應(yīng)的附加電容,并以此來提高振蕩器的穩(wěn)定程度、可靠程度【4】。3.3復(fù)位電路的設(shè)計單片機在開始運行到正常工作的過程中時或正在工作時由于外部的干擾而導致程序失去控制,或工作中由于程序錯誤導致單片機處于一種死循環(huán)的狀態(tài),每當在此種情況下都需要通過復(fù)位電路來實現(xiàn)系統(tǒng)的復(fù)位操作。復(fù)位電路的作用是使系統(tǒng)的處理器CPU以及外部電路與系統(tǒng)的其他部分的功能部件能迅速地恢復(fù)到一正常的初始運行狀態(tài),而且可以從此狀態(tài)正常開始工作下去。以下給大家介紹一種名為看門狗的復(fù)位電路:圖3-5看門狗型復(fù)位電路對于系統(tǒng)的軟件程序設(shè)計是使電路穩(wěn)定工作的主要原因,即是按一定時間發(fā)送給復(fù)位電路的相應(yīng)信號的寄存位置,在通常情況下,這個程序都會被安置在系統(tǒng)內(nèi)部的定時器的內(nèi)部中斷子程序中。但是,經(jīng)常會因為電路的設(shè)計導致程序不能正常工作,其產(chǎn)生的緣由是:每當系統(tǒng)產(chǎn)生錯誤時系統(tǒng)的定時器恢復(fù)到初始狀態(tài)以及斷開之時,產(chǎn)生的錯誤狀態(tài)不能被此電路糾正回來。這是由于系統(tǒng)定時斷開信號會可以持續(xù)的發(fā)送,就算在錯誤的情況下,此復(fù)位電路也能被正常復(fù)位【5】。為了應(yīng)對這種情況,在系統(tǒng)中添加了定時的預(yù)定的設(shè)計程序。是在系統(tǒng)初始狀態(tài)時加入一個可尋信號地址,使程序在這個地址里面運行一個預(yù)設(shè)的系統(tǒng)的斷開程序與另外的一個死循環(huán)的程序。如此,即是在程序發(fā)生錯誤的時候,它進入之前預(yù)定的程序的概率會變大,并且只要進入預(yù)定的程序,系統(tǒng)起定時脈沖作用的功能就會停止工作,此時,此復(fù)位電路就會產(chǎn)生一種可以將中央處理器復(fù)位的脈沖信號。即達到復(fù)位的效果,實現(xiàn)復(fù)位的功能。3.4顯示電路的設(shè)計同鍵盤一樣,顯示器也是人機交流的重要組成部分。計算機的運行結(jié)果和運行狀態(tài)可以通過顯示器顯示出來。單片機應(yīng)用系統(tǒng)中常用的顯示器有LED和LCD兩種方式。LED顯示最為普遍,發(fā)光二極管LED(LightEmittingDiode)是一種通電后能發(fā)光的半導體器件,其導電性質(zhì)與普通二極管類似。LED數(shù)碼顯示器就是由發(fā)光二極管組合而成的一種新型顯示器件,但是由于低功耗的要求,LCD顯示器越來越被廣泛地使用。LED數(shù)碼管顯示器是由若干個發(fā)光二極管組成的,當發(fā)光二極管導通時,相應(yīng)的點或線段發(fā)光,將這些發(fā)光二極管排成一定的圖形,控制不同組合的二極管導通,就可以顯示出不同的字形和符號。單片機系統(tǒng)中常用的LED顯示器為七段顯示器,再加上一個小數(shù)點,因此也可以把它稱之為八段數(shù)碼管顯示器【6】。其機構(gòu)形式有共陰極和共陽極兩種。共陰極是把所有組成八段數(shù)碼管的發(fā)光二極管的陰極連在一起,通常接地,通過控制每一只發(fā)光二極管的陽極電平來使其發(fā)光或熄滅,陽極為高電平則發(fā)光,陽極為低電平則熄滅;共陽極是把組成八段數(shù)碼管的所有發(fā)光二極管的陽極連起來,通常為高電平(如+5V),通過控制每一只發(fā)光二極管的陰極電平的高低來使其發(fā)光或是熄滅,陰極為低電平發(fā)光,為高電平則熄滅。圖中的com端在應(yīng)用的時候可以作為位選端,8只發(fā)光二極管被分成兩組所以有兩個com端,在使用的時候它們并聯(lián)起來。(1)共陰極接法剛好與共陽極相反,對于共陰極LED顯示器,當公共端接地時(為0電平),而陽極dp、g、f、e、d、c、b、a各段位01110011時,顯示“P”字符,也就是說對于共陰極LED顯示器,“P”字符的字形代碼是073H。(2)LED數(shù)碼顯示器的顯示段碼為了顯示字符,要為LED顯示器提供顯示段碼(或字形代碼),組成一個“8”字形字符的7段,再加上1個小數(shù)點位,共8段,因此提供給LED顯示器的顯示段碼為1的字符,各段碼的對應(yīng)關(guān)系如圖3-6所示。圖3-6數(shù)碼管的引腳結(jié)構(gòu)圖3.5開關(guān)鍵盤的設(shè)計按鈕開關(guān)的本質(zhì)屬于機械、有彈性的開關(guān)。當開啟開關(guān)按鈕時,即按下按鈕,按鈕內(nèi)置的復(fù)位彈簧被壓縮,使靜片觸點與動片觸點相接觸,接通了鍵盤引腳,當松開按鈕時,按鈕內(nèi)置的復(fù)位彈簧彈開動片觸點,使靜片觸點與動片觸點相分離,斷開鍵盤引腳。由于按鈕內(nèi)的彈簧具有彈性,使按鍵從按下到穩(wěn)定接觸要經(jīng)歷一段時間,并在這段時間內(nèi)會發(fā)生抖動。按鍵抖動波形如圖3-7所示。圖3-7按鍵抖動電壓波形常見的電子控制裝置中都可以實現(xiàn)對數(shù)據(jù)的輸入或操作設(shè)置特殊功能。因為它有按鍵輸入電路的設(shè)計,在整個控制系統(tǒng)電路中,如果按鍵數(shù)不多可以采用獨立式按鍵的方法。單穩(wěn)態(tài)鎖存器常常是獨立式按鍵用來消除抖動的方式,所以判定按下了哪個鍵可以通過檢測輸入線的電平狀態(tài)就可以實現(xiàn)【4】。當在按鍵較多的時候常采用軟件的方法消除抖動,按鍵開關(guān)輸入目前面臨的問題是如何針對按鍵抖動采取合適措施處理,和確定是否按下了按鍵。判定是否有按下按鍵主要取決于跟按鍵相連接的引腳狀態(tài)是處于高電平狀態(tài)還是低電平狀態(tài)。一般來說分為硬件和軟件兩種消除按鍵抖動的方法。4系統(tǒng)軟件設(shè)計4.1軟件任務(wù)分析顯示部分軟件的設(shè)計根據(jù)硬件單位連接然后進行軟件的編寫。開關(guān)電路時間長短與開關(guān)的機械性有關(guān),一般為5-10ms。單片機對非編碼鍵盤的控制方式:獨立式鍵盤的編程。復(fù)位電路:復(fù)位的作用是使中央處理器CPU以及其他功能部件都恢復(fù)到一個確定的初始狀態(tài),并從這個狀態(tài)重新開始工作。4.2主程序設(shè)計主程序主要由系統(tǒng)初始化段、開中斷、鍵盤識別、鍵值處理、兩個4位共陰極LED顯示器掃描顯示子程序和中斷處理子程序等組成。通過對以上各段和子程序的結(jié)合,以實現(xiàn)系統(tǒng)功能。該系統(tǒng)主程序流程圖如下圖4-1所示。圖4-1主程序流程圖4.3鍵盤識別及處理程序設(shè)計按鍵識別及處理程序主要由鍵盤識別和鍵值處理組成。其中鍵盤識別子程序不斷地對鍵盤進行判斷是否有鍵按下。當有鍵按下時則轉(zhuǎn)到鍵碼處理即甲、乙總分處理子程序?qū)ο鄳?yīng)按鍵進行相應(yīng)處理,即可實現(xiàn)對甲、乙兩隊總分的計算與處理。鍵盤識別即依次判斷第一列、第二列、第三列、第四列是否有鍵按下。如果有鍵按下,先得出列,再反向賦值得出行,最后得出所在行和列的位置。鍵值處理即先定義0~9這九個按鍵,再對三次按鍵值進行保存,再來判斷是甲隊還是乙隊加減分,再判斷是加還是減,最后判斷加或減多少分,實現(xiàn)分別給甲、乙總分進行加分和減分。鍵值處理即甲、乙總分處理子程序流程圖如下圖4-2所示。圖4-2鍵值處理子程序流程圖4.4顯示子程序設(shè)計由于該系統(tǒng)使用的是8位LED顯示器顯示計分器比分,因此顯示采用動態(tài)掃描顯示方法,即由顯示器掃描顯示子程序控制顯示器逐個循環(huán)從左至右依次點亮各個顯示器。這樣雖然在任一時刻只要一個顯示器點亮,但是由于人眼具有視覺殘留效應(yīng),看起來與全部顯示器持續(xù)點亮效果一樣。顯示器掃描顯示子程序顯示每一位用如圖4-3所示流程方法完成。圖4-3顯示子程序流程圖4.5復(fù)位程序設(shè)計按鈕與單片機P0.6/AD6引腳相連,當每次按下該按鈕后,系統(tǒng)將通過軟件實現(xiàn)對計分復(fù)位功能。在主程序運行過程中,只要系統(tǒng)識別到與單片機P0.6/AD6引腳相連的按鍵按下,程序則會轉(zhuǎn)去執(zhí)行復(fù)位程序,完成對甲、乙總分寄存單元的清零,顯示器各位的顯示數(shù)寄存單元的復(fù)位,執(zhí)行完畢后,返回主程序。流程圖如4-4所示。圖4-4復(fù)位程序流程圖第5章系統(tǒng)調(diào)試5.1軟件模擬調(diào)試本設(shè)計主要是用proteus軟件繪圖以及偉福軟件進行編程仿真的。調(diào)試步驟由兩個部分組成:首先,確定程序中錯誤的確切性質(zhì)和位置;然后,對程序代碼進行分析,確定問題的原因,并設(shè)法改正這個錯誤。具體地說,由以下步驟組成:1.從仿真顯示出來的結(jié)果來深入,進行逆向的思考,找出軟件程序中有問題的部分;2.仔細分析調(diào)試所使用的程序代碼,發(fā)現(xiàn)程序有誤的部分;3.對找到的錯誤或者不當?shù)拇a進行從新編寫,訂正程序;4.對于修改過的程序進行重新的測試,若測試結(jié)果正常,達到修改的目的,可以實現(xiàn)預(yù)期的功能,則進行下一步奏,否則回到上一步奏,繼續(xù)修改。5.2硬件接線這個電路是在老師的指導下設(shè)計的,電路的設(shè)計在理論上完全行得通,不過接線是設(shè)計中最關(guān)鍵的一步,我的接線原則是從全局出發(fā),逐個模塊連接調(diào)試,最后總體調(diào)試。在這個指導思想下,我的安裝還算是是成功的。逐個模塊接線再調(diào)試,可以為總體調(diào)試省去很多時間,只要每個模塊正常運行,幾個模塊通過地址總線連接之后,就不會出現(xiàn)太大的問題了。調(diào)試前的直觀檢查:1、連線是否正確,在通電之前應(yīng)先檢查一下電路的連線是否正確,包括錯線,少線和多線的情況。查找的方法有:按照電路圖檢查安裝的線路,這種方法的特點是,根據(jù)電路圖來確定,按一定的順序逐一檢查安裝好的線路,由此,可容易查出錯線和少線的情況,還有一種方法就是按照實際的線路來對照原理電路進行查線,這是一種以元件為中心進行查線的方法。把每個元件引腳的連線一次查清,檢查每個接線處在電路圖上是否存在,這種方法不但可以查出錯線和少線,還容易查處多線的情況。2、元器件安裝時情況檢查元、器見引腳之間有無短路;連接處有無接觸不良;二極管和電容極性等是否連接有誤。電源、信號源連接是否正確。3、電源端對地是否存在短路,在通電前,斷開一根電源線,用萬用表檢查電源對地端是否存在短路模擬調(diào)試結(jié)果記錄如下:通電后,顯示器初始顯示“000--000”。按照鍵盤分布說明按鍵,分布給甲、乙加1分、2分和3分,顯示器跟蹤顯示出總分,然后模擬比賽細節(jié),隨意給甲、乙加分或是減分,均達到預(yù)期效果。在甲、乙均有一定總分的情況下對甲、乙進行減分處理,當減到0后便不能夠再進行減分操作,與程序設(shè)計相符。在甲、乙均有一定總分的情況下,按清零按鈕,顯示結(jié)果清零。重復(fù)進行上面操作,結(jié)果均符合設(shè)計要求。5.3實物調(diào)試(1)在進行過硬件調(diào)試之后,就要進行最后一步的實物調(diào)試,如圖5-1示,是第一步進行的比分調(diào)節(jié)測試,通過對TeamA和TeamB的加分調(diào)節(jié)來二所加減分按鍵是否正常工作,圖5-1-a是顯示兩隊比分為初始值0:0,圖5-1-b是在進行加分以后的比分為5:10,。測試結(jié)果顯示兩隊的加分按功能正常。圖5-1-a圖5-1-b(2)第二步的測試是對單節(jié)倒計時及單次進攻24秒倒計時功能是否正常工作的測試,如圖5-2-a顯示的時間是距離本節(jié)比賽結(jié)束還有12分00秒,離單次進攻結(jié)束還有24秒的初始狀態(tài);圖5-2-b顯示的則是距離本節(jié)比賽結(jié)束還有11分50秒,離單詞進攻結(jié)束還有14秒的狀態(tài)。測試結(jié)果顯示單節(jié)倒計時及單次進攻24秒倒計時功能正常。圖5-2-a圖5-2-b(3)第三步測試的是對已經(jīng)比賽結(jié)束的局數(shù)顯示的測試,如圖5-3-a顯示的是局數(shù)比為2:2,圖5-3-b顯示的局數(shù)比為3:2,測試結(jié)果顯示比賽結(jié)束的局數(shù)顯示功能正常。圖5-3-a圖5-3-b(4)最后一步的測試時對設(shè)定單節(jié)時間的測試,如圖5-4-a所示,設(shè)定單節(jié)比賽時間為10分鐘,圖5-4-b顯示的則是定義的時間為12分鐘,測試結(jié)果顯示設(shè)定單節(jié)比賽時間功能正常。圖5-4-a圖5-4-b 5.4調(diào)試總結(jié)本節(jié)對硬件及軟件的各項功能均進行了測試,測試的結(jié)果令人滿意,基本上實現(xiàn)了各種所具備的的功能,運行過程完整流暢,達到了預(yù)期的效果,圓滿成功。結(jié)論與展望經(jīng)過這段時間的不懈努力,畢業(yè)設(shè)計總算結(jié)束了。雖然不是什么大不了的事情,卻也讓自己學會了很多東西,尤其是做事的態(tài)度。無論做任何事情都要有一定的耐心和毅力,態(tài)度端正了,事情也就成功一半了,不能因為遇到一點困難就想著放棄,而是要堅持找到問題所在并想辦法解決問題,另外在學習過程中要虛心請教,學會與人交流合作,認真聽取老師和同學們的意見。開始抱著應(yīng)付的態(tài)度,心里只是為了完成學校布置的任務(wù),但是隨著后來自己的深入,逐漸發(fā)現(xiàn)自己對單片機產(chǎn)生了興趣。而興趣指引著我去完成以前從沒有真正去思考過完成過的任務(wù)。當然,不僅僅只是在做事的態(tài)度上有所感悟,相關(guān)知識也重新學習和鞏固了一下,通過畢業(yè)設(shè)計對之前在書本上那些似懂非懂的專業(yè)知識加深了理解,真正體驗了理論與實際相結(jié)合的重要性,只有自己親自動手操作,才能體會其中的奇妙與不易。從最開始的似懂非懂到對電路設(shè)計的大致了解,再到自己親自動手完成簡單的電路設(shè)計、制板及調(diào)試等一系列過程,很好地鍛煉了自己的動手操作能力,也讓自己深刻的體會到了紙上讀來終覺淺,絕知此事要躬行的道理。通過此次的磨練,我認為在將來在這個單片機應(yīng)用于生活各個領(lǐng)域的將來,我必須更加努力的學習單片機相關(guān)的知識,讓自己跟得上時代的步伐,追隨前沿科學的腳步才能不被淘汰,才能讓自己發(fā)揮出自己的全部潛力,體現(xiàn)自我的價值。附錄A:系統(tǒng)原理圖附錄B:系統(tǒng)仿真圖附錄C:實物圖附錄D:系統(tǒng)源程序#include<reg52.h> //調(diào)用單片機頭文件#defineucharunsignedchar//無符號字符型宏定義 變量范圍0~255#defineuintunsignedint //無符號整型宏定義 變量范圍0~65535#include<intrins.h>#include"eeprom52.h"http://這三個引腳參考資料sbitrs=P1^0; //1602數(shù)據(jù)/命令選擇引腳H:數(shù)據(jù) L:命令sbitrw=P1^1; //1602讀寫引腳 H:數(shù)據(jù)寄存器 L:指令寄存器sbite=P1^2; //1602使能引腳下降沿觸發(fā)ucharcodetable_num[]="0123456789abcdefg";sbitbeep=P2^0;//蜂鳴器IO口定義bitflag_200ms;ucharflag_start;//開始計時ucharmiao,fen,m_24;//時間ucharax_fen,bx_fen;// ab隊的小比分ucharaj_fen,bj_fen;// ab隊的局數(shù)比分ucharset_time;ucharmenu_1;//菜單設(shè)計的變量uchara_a;/***********************1ms延時函數(shù)*****************************/voiddelay_1ms(uintq){ uinti,j; for(i=0;i<q;i++) for(j=0;j<120;j++);}/******************把數(shù)據(jù)保存到單片機內(nèi)部eepom中******************/voidwrite_eeprom() //保存數(shù)據(jù){ SectorErase(0x2000); byte_write(0x2000,ax_fen); byte_write(0x2001,bx_fen); byte_write(0x2002,aj_fen); byte_write(0x2003,bj_fen); byte_write(0x2004,miao); byte_write(0x2005,fen); byte_write(0x2006,m_24); byte_write(0x2007,set_time); byte_write(0x2058,a_a); }/******************把數(shù)據(jù)從單片機內(nèi)部eepom中讀出來*****************/voidread_eeprom() //讀出保存數(shù)據(jù){ ax_fen=byte_read(0x2000); bx_fen=byte_read(0x2001); aj_fen=byte_read(0x2002); bj_fen=byte_read(0x2003); miao=byte_read(0x2004); fen=byte_read(0x2005); m_24=byte_read(0x2006); set_time=byte_read(0x2007); a_a=byte_read(0x2058);}///**************開機自檢eeprom初始化*****************/voidinit_eeprom() //開始初始化保存的數(shù)據(jù){ read_eeprom(); //讀出保存數(shù)據(jù) if(a_a!=2) //新的單片機初始單片機內(nèi)問EEPOM { miao=0;fen=set_time=12;m_24=24;//時間 ax_fen=0;bx_fen=0;// ab隊的小比分 aj_fen=0;bj_fen=0;// ab隊的局數(shù)比分 a_a=2; write_eeprom(); //保存數(shù)據(jù) } }/*********************************************************************名稱:delay_uint()*功能:小延時。*輸入:無*輸出:無***********************************************************************/voiddelay_uint(uintq){ while(q--);}/*********************************************************************名稱:write_com(ucharcom)*功能:1602命令函數(shù)*輸入:輸入的命令值*輸出:無***********************************************************************/voidwrite_com(ucharcom){ e=0; rs=0; rw=0; P0=com; delay_uint(25); e=1; delay_uint(100); e=0;}/*********************************************************************名稱:write_data(uchardat)*功能:1602寫數(shù)據(jù)函數(shù)*輸入:需要寫入1602的數(shù)據(jù)*輸出:無***********************************************************************/voidwrite_data(uchardat){ e=0; rs=1; rw=0; P0=dat; delay_uint(25); e=1; delay_uint(100); e=0; }/*********************************************************************名稱:write_string(ucharhang,ucharadd,uchar*p)*功能:改變液晶中某位的值,如果要讓第一行,第五個字符開始顯示"abcdef",調(diào)用該函數(shù)如下 write_string(1,5,"abcdef;")*輸入:行,列,需要輸入1602的數(shù)據(jù)*輸出:無***********************************************************************/voidwrite_string(ucharhang,ucharadd,uchar*p){ if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); while(1) { if(*p=='\0')break; write_data(*p); p++; } }/***********************lcd1602上顯示兩位十進制數(shù)************************/voidwrite_sfm2(ucharhang,ucharadd,uintdate){ if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); write_data(table_num[date/10%10]); write_data(table_num[date%10]); }/***********************lcd1602上顯示1位十進制數(shù)************************/voidwrite_sfm1(ucharhang,ucharadd,uintdate){ if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); write_data(table_num[date%10]); }/***********************lcd1602上顯示3位十進制數(shù)************************/voidwrite_sfm3(ucharhang,ucharadd,uintdate){ if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); write_data(table_num[date/100%10]); write_data(table_num[date/10%10]); write_data(table_num[date%10]); }///**************顯示函數(shù)*****************/voiddisplay() //顯示函數(shù){ write_sfm2(2,7,fen); //顯示分 write_sfm2(2,10,miao); //顯示秒 write_sfm2(2,13,m_24); //顯示秒 write_sfm1(2,1,aj_fen); //顯示A隊的局數(shù)比分 write_sfm1(2,3,bj_fen); //顯示B隊的局數(shù)比分 write_sfm3(1,4,ax_fen); //顯示A隊每節(jié)的比分 write_sfm3(1,13,bx_fen); //顯示B隊的局數(shù)比分 }/*********************************************************************名稱:init_1602()*功能:初始化1602液晶*輸入:無*輸出:無***********************************************************************/voidinit_1602()//1602初始化{ write_com(0x38); write_com(0x0c); write_com(0x06); delay_uint(1000); write_string(1,0,"T-A:000T-B:000"); write_string(2,0,"0:0S-00:0000");}ucharkey_can;/***************按鍵程序****************/voidkey() //{ staticucharkey_new=0,key_l; key_can=20;//按鍵值還原 P3=0x0f; if((P3&0x0f)!=0x0f) //按鍵按下 { delay_1ms(1); //按鍵消抖動 if(((P3&0x0f)!=0x0f)&&(key_new==1)) { //確認是按鍵按下 key_new=0; key_l=(P3|0xf0);//矩陣鍵盤掃描 P3=key_l; switch(P3) { case0xed:key_can=10;break;//得到按鍵值 case0xdd:key_can=7;break;//得到按鍵值 case0xbd:key_can=4;break;//得到按鍵值 case0x7d:key_can=1;break;//得到按鍵值 case0xeb:key_can=11;break;//得到按鍵值 case0xdb:key_can=8;break;//得到按鍵值 case0xbb:key_can=5;break;//得到按鍵值 case0x7b:key_can=2;break;//得到按鍵值 case0xe7:key_can=12;break;//得到按鍵值 case0xd7:key_can=9;break;//得到按鍵值 case0xb7:key_can=6;break;//得到按鍵值 case0x77:key_can=3;break;//得到按鍵值 } // write_sfm2(1,0,key_can); } } else { key_new=1; }}/****************按鍵處理數(shù)碼管顯示函數(shù)***************/voidkey_with(){ if(key_can==6) //設(shè)置鍵 { menu_1++; if(menu_1>=2) { menu_1=0; init_1602();//1602初始化 } if(menu_1==1) { write_string(1,0,"set_fen:00"); write_string(2,0,""); } } if(menu_1==1) { if(key_can==9) if(set_time<99) //設(shè)置每節(jié)的時間 set_time++; if(key_can==12) if(set_time!=0) //設(shè)置每節(jié)的時間 set_time--; write_sfm2(1,9,set_time); //顯示設(shè)置的時間 fen=set_time; } if(menu_1==0) { if(key_can==3) //開始鍵 { flag_start++; if(flag_start==1) { if(m_24==0) //當秒為0時時間重新為24秒 m_24=24; if(fen==0) { m_24=24; fen=set_time; miao=0; } } if(flag_start>=2) flag_start=0; } if(key_can==1) ax_fen++; //A隊每節(jié)的比分加1 if(key_can==4) if(ax_fen!=0) ax_fen--; //A隊每節(jié)的比分減1 if(key_can==2) bx_fen++; //B隊每節(jié)的比分加1 if(key_can==5) if(bx_fen!=0) bx_fen--; //B隊每節(jié)的比分減1 if(key_can==
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年農(nóng)業(yè)用地長期租賃合同樣本
- 2025年已簽訂解除勞動合同是否還需開具離職證明
- 管理理論萌芽時期
- 護理風險防范意識
- 河南省TOP20二十名校2024-2025學年高二下學期5月調(diào)研考試歷史試卷
- 2025年貴州省貴陽市青巖貴璜中學中考一模數(shù)學試題
- 2025年年財務(wù)管理試題及答案
- 2024年-2025年學年度第二學期小班德育工作總結(jié)模版
- 煤礦安全生產(chǎn)活動月工作總結(jié)模版
- 湖南省部分學校2024-2025學年高二下學期4月期中聯(lián)考生物試題 含解析
- CJJ 36-2016 城鎮(zhèn)道路養(yǎng)護技術(shù)規(guī)范
- 直臂式高空作業(yè)車安全管理培訓課件-
- 之江實驗室:生成式大模型安全與隱私白皮書
- 靈芝孢子油的作用
- 免疫組織化學檢驗技術(shù)(免疫學檢驗課件)
- 世界文明史學習通課后章節(jié)答案期末考試題庫2023年
- 某石料廠年產(chǎn)10萬噸石灰?guī)r開采建設(shè)項目可行性研究報告
- 養(yǎng)老院安全工作會議記錄范本
- DB21∕T 3275-2020 企業(yè)安全風險分級管控和隱患排查治理通則
- 胸腔鏡下肺癌根治的手術(shù)配合
- 護理查房肺結(jié)核護理查房
評論
0/150
提交評論