王東升籃球比賽計時計分系統(tǒng)的設(shè)計_第1頁
王東升籃球比賽計時計分系統(tǒng)的設(shè)計_第2頁
王東升籃球比賽計時計分系統(tǒng)的設(shè)計_第3頁
王東升籃球比賽計時計分系統(tǒng)的設(shè)計_第4頁
王東升籃球比賽計時計分系統(tǒng)的設(shè)計_第5頁
已閱讀5頁,還剩42頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、畢業(yè)設(shè)計(報告)畢業(yè)設(shè)計(報告)課題: 基于藍球比賽計分器的設(shè)計學(xué)生: 王東升 系部: 電子信息系班級: 應(yīng)用電技術(shù) 1101 班 學(xué)號: 2011110664指導(dǎo)教師: 彭克發(fā)裝訂交卷日期:2014 年 3 月 10 日 鄭重申明鄭重申明本人呈交的畢業(yè)實習(xí)報告(設(shè)計) ,是在導(dǎo)師的指導(dǎo)下,獨立進行實習(xí)和研究工作所取得的成果,所有數(shù)據(jù)、圖片資料真實可靠。盡我所知,除文中已經(jīng)注明引用的內(nèi)容外,本畢業(yè)實習(xí)報告(設(shè)計)的成果不包含他人享有著作權(quán)的內(nèi)容。對本畢業(yè)實習(xí)報告(設(shè)計)所涉及的實習(xí)和研究工作做出貢獻的其他個人和集體,均已在文中以明確的方式標(biāo)明。本畢業(yè)實習(xí)報告(設(shè)計)的知識產(chǎn)權(quán)歸屬于作者與培養(yǎng)單

2、位。學(xué)生簽名學(xué)生簽名簽字蓋章日期0000.00 摘要籃球比賽是每所院校都會開展的一項體育運動,學(xué)生之間、教師之間或是師生之間都可以開展。計分方式也比較多,體育館里可以由大屏幕計分器進行計時、計分,但是在運動場上還主要靠翻牌式的計分方式。為了增強校園內(nèi)比賽的便捷性,可以利用單片機進行控制實現(xiàn)計時、計分。atmel 公司生產(chǎn)的 at89c51 系類的單片機就非常適合此類產(chǎn)品制作,可以利用直流穩(wěn)壓電源或是電池盒直接供電,因此攜帶和移動方便,計時、計分準(zhǔn)確。本設(shè)計主要利用單片機 at89c51作為核心元件,利用 3 組 4 位共陽極的數(shù)碼管作為顯示器件,以 c 語言作為編程語言,在protues 和

3、keil 搭建的軟件仿真平臺下進行仿真,本設(shè)計包含了 at89c51 系列單片機的最小系統(tǒng)的構(gòu)成,同時在此基礎(chǔ)上擴展了一些實用性強的外圍接口,可以進一步了解譯碼器74ls247 的應(yīng)用,led 七段數(shù)碼管的結(jié)構(gòu)和工作原理,主要實現(xiàn)了計時和顯示 a/b 隊的分數(shù),并能及時進行加分,減分,鳴笛警示等功能。系統(tǒng)設(shè)計完成后應(yīng)有成本低廉、性能穩(wěn)定、高準(zhǔn)確度顯示、操作方便且易攜帶等特點。廣泛適合各類學(xué)校和小團體作為賽程計分。關(guān)鍵詞: at89s52 單片機, 籃球比賽計時 ,籃球比賽計分 目錄目錄1 1 概述概述 . 6 61.1 國內(nèi)外籃球比賽計分器的現(xiàn)狀分析 . 62 2 設(shè)計任務(wù)和要求設(shè)計任務(wù)和要求

4、.62.1 設(shè)計意義.72.2 設(shè)計任務(wù).72.3 設(shè)計要求.73 3 設(shè)計原理與方案選擇設(shè)計原理與方案選擇.83.1 系統(tǒng)硬件方案設(shè)計原理.83.2 系統(tǒng)軟件方案設(shè)計原理. .83.3 系統(tǒng)總體設(shè)計框圖.93.4 系統(tǒng)總體電路圖.103.5 顯示模塊的選擇.113.6 計時方案的選擇.124 4 系統(tǒng)硬件設(shè)計系統(tǒng)硬件設(shè)計.134.1 系統(tǒng)設(shè)計概述.134.2 at89s52 單片機簡介.134.3 系統(tǒng)總體原理圖.174.4 各部分硬件簡介.174.4.1 按鍵部分.174.4.2 顯示部分.184.4.3 復(fù)位電路部分.214.4.4 元器件的選擇. . . .225 5 系統(tǒng)軟件設(shè)計系統(tǒng)

5、軟件設(shè)計.235.1 軟件總體設(shè)計方案.235.2 系統(tǒng)設(shè)計框圖.245.3 軟件介紹.255.3.1 keil.255.3.2 proteus.275.4 時間顯示設(shè)計. . 27 5.5 積分顯示設(shè)計. . 296 6 系統(tǒng)調(diào)試系統(tǒng)調(diào)試.326.1 軟件調(diào)試.326.2 硬件調(diào)試.346.3 故障預(yù)測及解決辦法.346.4 籃球比賽計時計分系統(tǒng)的功能實現(xiàn).357 7 課程設(shè)計體會課程設(shè)計體會.368 8 附錄附錄.379 9 參考文獻參考文獻.461010 致致 謝謝. . 471 1 1 概述概述1.11.1國內(nèi)外籃球比賽計分器的現(xiàn)狀分析國內(nèi)外籃球比賽計分器的現(xiàn)狀分析 籃球比賽在中國越來

6、越被人們關(guān)注,同時也被更多青少年所喜愛?;@球賽記時計分器是對比賽過程中所產(chǎn)生的時間、比分等數(shù)據(jù)進行快速采集記錄、加工處理、傳遞利用的工具。根據(jù)不同運動項目的不同比賽規(guī)則要求,籃球賽記時計分器包括評分類、命中類、制勝類、得分類等多種類型。 籃球比賽是根據(jù)運動隊在比賽時間里得分多少來決定勝負的。因此,籃球比賽的記時計分器是一種得分類型的工具?;@球比賽的記時計分器由計時器、計分器等多種電子設(shè)備組成。同時,根據(jù)目前高水平藍球比賽要求,完善的藍球比賽計時計分系統(tǒng)設(shè)備應(yīng)該能夠與現(xiàn)場成績處理、現(xiàn)場大屏幕、電視轉(zhuǎn)播車等多種設(shè)備相聯(lián),以便實現(xiàn)提高比賽現(xiàn)場感、表演娛樂觀眾等功能。 籃球賽記時計分器的設(shè)計具有賽程時

7、間計時、 調(diào)整及暫停和比賽計分顯示的功能。一方面,方便了人們比賽時的計時計分工作,在某種程度上可促進籃球賽的開展,既有利于發(fā)展這項體育活動,又有利于增強人們的體質(zhì),另一方面,隨著參與籃球運動的人數(shù)的增多,也有利于籃球運動的選拔,對我國的籃球事業(yè)也具有促進作用。 雖然籃球比賽中很早就開始研究應(yīng)用了計時計分器,但通常都是利用模擬電子器件、數(shù)字電子器件或是模擬、數(shù)字混合組成的,其穩(wěn)定性和高準(zhǔn)確度計時計分扔存在一些問題。隨著科學(xué)技術(shù)的發(fā)展和電子技術(shù)的不斷更新,對其穩(wěn)定和高準(zhǔn)確度計時計分的實現(xiàn)至今仍是生產(chǎn)和科研的課題。 隨著單片機在各領(lǐng)域的廣泛應(yīng)用,許多用單片機做控制的球賽計時計分系統(tǒng)也就應(yīng)運產(chǎn)生,如單

8、片機控制 led 液晶顯示器計時計分器,用單片機控制 led 七段顯示器記時計分器等。同時單片機在此領(lǐng)域的廣泛應(yīng)用,也大大提高了比賽中記時計分的穩(wěn)定性和準(zhǔn)確性。2 2 2 設(shè)計任務(wù)和要求設(shè)計任務(wù)和要求2.12.1 設(shè)計意義設(shè)計意義在籃球比賽中,計時計分系統(tǒng)是必不可少的。隨著比賽規(guī)則的進一步完善,相應(yīng)的計時計分系統(tǒng)也必須隨之改進?;@球計時計分系統(tǒng)是一個負責(zé)籃球比賽的數(shù)據(jù)采集和分配的專用系統(tǒng),它負責(zé)對比賽結(jié)果、成績信息的采集處理、傳輸分配,即將籃球比賽比分數(shù)據(jù)通過專用的技術(shù)接口分別傳送給裁判員、教練員、計算機信息系統(tǒng)和現(xiàn)場觀眾等。由于比賽的不可重復(fù)性,決定了籃球計時計分系統(tǒng)是一個實時性很強、可靠性

9、要求極高的電子服務(wù)系統(tǒng),所以計時計分設(shè)備是籃球比賽中不可缺少的電子設(shè)備,計時計分系統(tǒng)設(shè)計是否合理,關(guān)系到比賽系統(tǒng)運行的穩(wěn)定和可靠,并直接影響到比賽的順利進行。通過此次基于單片機設(shè)計的籃球計時計分系統(tǒng),我們可以更方便、快捷地了解籃球比賽的當(dāng)前信息,并對籃球比賽的時間和比分做出更準(zhǔn)確的記錄2.22.2設(shè)計任務(wù)設(shè)計任務(wù)設(shè)計并制作一個用于賽場的籃球比賽的計時計分系統(tǒng),記錄臺能監(jiān)控、調(diào)節(jié)。2.32.3 設(shè)計要求設(shè)計要求1)比賽采用倒計時方式,計時系統(tǒng)能夠完成籃球比賽的所有計時及顯示要求。2)能設(shè)置比賽時間,具有比賽暫停功能。3)比分顯示范圍為 0 到 99 分,能滿足一般的比賽的計分。4)能隨時刷新甲.

10、乙兩隊在整個賽程中的比分。3 3 3 設(shè)計原理與方案選擇設(shè)計原理與方案選擇3.13.1 系統(tǒng)硬件方案設(shè)計原理系統(tǒng)硬件方案設(shè)計原理 該系統(tǒng)硬件電路包括:單片機 at89c51、時鐘電路、復(fù)位電路、電源電路、按鍵控制電路、計分電路、計時電路、報警電路。軟件包括用 keil 進行 c 語言編程,用 protues 進行仿真,具體系統(tǒng)硬件結(jié)構(gòu)框圖如圖 1 所示。at89c52計分顯示時鐘電路計分電路報警電路計時電路計時顯示鳴笛警示按鍵控制復(fù)位電路電源電路3.23.2 系統(tǒng)軟件方案設(shè)計系統(tǒng)軟件方案設(shè)計原理原理軟件部分要求實現(xiàn)的功能有:開始時所有顯示屏都顯示 0;有預(yù)置比賽時間的功能;具有 ab 兩隊分別

11、計分的功能;有鳴笛警示功能;只有當(dāng)預(yù)置時間后,并按開始按鈕,計時器才4 能開始計時,只有當(dāng)開始計時后,ab 兩隊才能加分等。結(jié)合數(shù)碼管以及 51 單片機計數(shù)器的工作實現(xiàn)方式、接口應(yīng)用、中斷控制等可設(shè)計出程序流程圖如圖 2 所示:ny將 bcd 碼轉(zhuǎn)化為 7 段碼顯示出來,并確認比賽是否結(jié)束將當(dāng)前的分數(shù)轉(zhuǎn)化為 bcd 碼確認按下的是哪個鍵鳴笛休息a 隊減 1 分a 隊加 1 分等待按鍵釋放b 隊加 1 分b 隊減 1 分確認是否有按鍵按下讀取功能鍵讀 p3 口的值取出 p3.6啟動按鍵是否按下去抖比賽開始,并初始化nn3.33.3 系統(tǒng)總體設(shè)計框圖系統(tǒng)總體設(shè)計框圖比賽結(jié)束停止5 cpu4kb r

12、om128 字節(jié)的 ram定時器計數(shù)器并行 io 接口串行接口中斷系統(tǒng)時鐘源圖 3 系統(tǒng)總體設(shè)計框圖3.43.4 系統(tǒng)總體電路圖系統(tǒng)總體電路圖6 ea/vpp31xtal119xtal218rst9p3.7(rd)17p3.6(wr)16p3.2(int0)12p3.3(int1)13p3.4(t0)14p3.5(t1)15p1.01p1.12p1.23p1.34p1.45p1.56p1.67p1.78(ad0)p0.039(ad1)p0.138(ad2)p0.237(ad3)p0.336(ad4)p0.435(ad5)p0.534(ad6)p0.633(ad7)p0.732(a8)p2.02

13、1(a9)p2.122(a10)p2.223(a11)p2.324(a12)p2.425(a13)p2.526(a14)p2.627(a15)p2.728psen29ale/prog30(txd)p3.111(rxd)p3.010gnd205v40u1at89s5230pfc130pfc2s1sw-pbs3sw-pbs0sw-pb12my1xtal1kr15v10kr2d140010.33ufc40.1ufc5123jp1header 35vds1led1330r35vs2sw-pbs4sw-pb10ufc3s1s2s3s4vss1vdd2vl3rs4rw5e6d07d18d29d310d41

14、1d512d613d714bla15blk16lcd16025v5v123456789rp110k5vp00p01p02p03p04p05p06p07p00p01p02p03p04p05p06p07p00p01p02p03p04p05p06p07p24p25p26p24p25p26s1s2s3s412345678910ispispjack5vp15p16p17rstp15p16p175v10kr5123inputgndoutput78059vds2led0330r4圖 4 系統(tǒng)總體電路圖3.53.5 顯示模塊的選擇顯示模塊的選擇7 方案一:采用數(shù)碼管 led 顯示,led 顯示器是由發(fā)光二極管

15、構(gòu)成的 led 數(shù)碼管、led 點陣顯示器等。led 發(fā)光器件一般常用的有兩類:數(shù)碼管和點陣。方案二:采用液晶電路來顯示,lcd1602 是工業(yè)字符型液晶,能夠同時顯示 16x02 即 32個字符。對以上兩個方案加以比較,可以發(fā)現(xiàn) led 雖然使用簡單,但是顯示內(nèi)容有限,顯示效果不是很直觀,硬件連接電路較為復(fù)雜,而且穩(wěn)定性不高;而 lcd1602 連接線路簡單,顯示內(nèi)容豐富,易于硬件電路實現(xiàn),可靠性較好。綜上所述:顯示模塊采用第二種方案,采用 lcd1602 來實現(xiàn)本設(shè)計的顯示功能。3.63.6計時方案的選擇計時方案的選擇方案一:采用芯片 74ls192(十進制同步加/減計數(shù)器) 、ne555

16、(秒脈沖發(fā)生器)以及輔助電路等組成。設(shè)計中秒脈沖發(fā)生器是采用 555 集成電路組成的多諧振蕩器構(gòu)成,通過計算來產(chǎn)生比較準(zhǔn)確的 1 秒脈沖。譯碼顯示電路用 cd4511 和共陰極七段 led 數(shù)碼管組成,報警電路在實驗中用發(fā)光二極管代替。該方案能較準(zhǔn)確的顯示比賽時間和比分,但是有眾多的不足。例如:電路中用到的芯片較多,無法簡化設(shè)計方案。方案二:采用計時芯片,針對計算機系統(tǒng)對計時芯片的要求,各大芯片廠家推出了鍵時鐘/倒計時/正計時各種芯片,可采用自動控制計時芯片,通過觸發(fā)控制電路使計時器自動地計時,達到預(yù)定時間后芯片重新開始計時(實現(xiàn)倒計時功能) ;也可以通過觸發(fā)控制電路使計時器不計時,達到預(yù)定時

17、間后芯片重新開始計時(實現(xiàn)暫停功能) ,不需要程序干預(yù)。計算機可通過中斷或查詢方式讀取計時器數(shù)據(jù),實現(xiàn)計時的暫停的功能,并進行顯示,計時功能的實現(xiàn)就無需占用 cpu 的時間,程序簡單,控制精度高,因此在工業(yè)控制系統(tǒng)中多采用這一類專用芯片來實現(xiàn)計時功能。方案三:軟件控制,利用 at89s52 內(nèi)部的定時器/計數(shù)器進行中斷定時,配合軟件延時實現(xiàn)計時。該方案節(jié)省硬件成本,并且可綜合運用定時器/計數(shù)器、中斷以及程序設(shè)計的知識,因此本系統(tǒng)采用方案三軟件方法來實現(xiàn)計時。8 4 4 系統(tǒng)硬件設(shè)計系統(tǒng)硬件設(shè)計4.14.1 系統(tǒng)設(shè)計概述系統(tǒng)設(shè)計概述本設(shè)計中,系統(tǒng)采用 at89s52 單片機為控制核心,由倒計時模

18、塊、比分顯示模塊、人機接口模塊、報警模塊等部分組成。其中比賽時間倒計時和 24 秒進攻倒計時分別采用單片機at89s52 的定時器 1 和定時器 2 實現(xiàn);人機接口模塊由鍵盤和 lcd1602 液晶組成,可實現(xiàn)比賽時間、24 秒倒計時設(shè)置和顯示、比分顯示和比賽節(jié)數(shù)顯示等功能。本設(shè)計采用 3*3 矩陣式鍵盤作為輸入,記錄臺可分別對兩隊比分進行加 1、加 2 和減 1 操作。其中加 1、2 可以通過加 1 分和 2 分的按鍵直接實現(xiàn),減 1 分、2 分、3 分通過按下減 1 分按鍵的次數(shù)完成。比分通過 lcd1602 顯示器進行顯示,每隊比分顯示 2 位。4.24.2at89s52at89s52

19、單片機簡介單片機簡介at89s52 是 51 系列單片機的一個型號,它是 atmel 公司生產(chǎn)的。at89s52 是一個低電壓,高性能 cmos 8 位單片機,片內(nèi)含 8k bytes 的可反復(fù)擦寫的 flash 只讀程序存儲器和 256 bytes 的隨機存取數(shù)據(jù)存儲器(ram) ,器件采用 atmel 公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn) mcs-51 指令系統(tǒng),片內(nèi)置通用 8 位中央處理器和 flash 存儲單元,功能強大的at89s52 單片機可為您提供許多較復(fù)雜系統(tǒng)控制應(yīng)用場合。at89s52 有 40 個引腳,32 個外部雙向輸入/輸出(i/o)端口,同時內(nèi)含 2 個外中斷

20、口,3 個 16 位可編程定時計數(shù)器,2 個全雙工串行通信口,2 個讀寫口線,at89s52 可以按照常規(guī)方法進行編程,但不可以在線編程(s 系列的才支持在線編程)。其將通用的微處理器和 flash 存儲器結(jié)合在一起,特別是可反復(fù)擦寫的 flash 存儲器可有效地降低開發(fā)成本。at89s52 有 pdip、pqfp/tqfp 及 plcc 等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。主要功9 能特性:兼容 mcs51 指令系統(tǒng) 8k 可反復(fù)擦寫(1000 次)flash rom 32 個雙向 i/o 口 256x8bit 內(nèi)部 ram 3 個 16 位可編程定時/計數(shù)器中斷 時鐘頻率 0-24mhz

21、 2 個串行中斷 可編程 uart 串行通道 2 個外部中斷源 共 6 個中斷源 2 個讀寫中斷口線 3 級加密位 低功耗空閑和掉電模式 軟件設(shè)置睡眠和喚醒功能圖 5 at89s52 的外部引腳10 圖 6 at89s52 內(nèi)部結(jié)構(gòu)主要特性:與 mcs-51 兼容4k 字節(jié)可編程 flash 存儲器壽命:1000 寫/擦循環(huán)數(shù)據(jù)保留時間:10 年全靜態(tài)工作:0hz-24mhz三級程序存儲器鎖定1288 位內(nèi)部 ram32 可編程 i/o 線兩個 16 位定時器/計數(shù)器5 個中斷源可編程串行通道低功耗的閑置和掉電模式片內(nèi)振蕩器和時鐘電路管腳說明:vcc:供電電壓。gnd:接地。p0 口:p0 口

22、的 8 位皆為漏極開路輸出簡稱 od;內(nèi)部無上拉電阻,所以執(zhí)行輸出功能時,外部必須接上拉電阻;若要實現(xiàn)輸入功能,必須先輸入高電平“1” ,才能讀取該端口所連接的外部數(shù)據(jù);若系統(tǒng)連接外部存儲器,則p0 可作為地址總線和數(shù)據(jù)總線的多功能引腳,此時11 內(nèi)部具有上拉電阻,無需外接上拉電阻。p1 口:p1 口為 8 位,可位尋址的雙向 i/o 口;內(nèi)部具備約 30 千歐姆的上拉電阻,實現(xiàn)輸出功能時,不需要連接外部上拉電阻;實現(xiàn)輸入功能時,必須先輸入高電平“1” ,才能讀取該端口所連接的外部數(shù)據(jù);p1 口的 8 位類似漏極開路輸出,但內(nèi)部已接上上拉電阻,每個引腳可驅(qū)動 4 個 ls 型 ttl 負載。p

23、2 口:p2 口為 8 位、可位尋址的雙向輸入/輸出口,內(nèi)部具備約 30 千歐姆的上拉電阻,實現(xiàn)輸出功能時,不需要連接外部上拉電阻;實現(xiàn)輸入功能時,必須先輸入高電平“1” ,才能讀取該端口所連接的外部數(shù)據(jù);p2 口的 8 位類似漏極開路輸出,但內(nèi)部已接上上拉電阻,每個引腳可驅(qū)動 4 個 ls 型 ttl 負載;若系統(tǒng)連接外部存儲器,而外部存儲器的地址線超過了 8根時,則 p2 可作為地址總線(a8-a15)的引腳。p3 口:p3 口為 8 位,可位尋址的雙向 i/o 口;內(nèi)部具備約 30 千歐姆的上拉電阻,實現(xiàn)輸出功能時,不需要連接外部上拉電阻;實現(xiàn)輸入功能時,必須先輸入高電平“1” ,才能讀

24、取該端口所連接的外部數(shù)據(jù);p3 口的 8 位類似漏極開路輸出,但內(nèi)部已接上上拉電阻,每個引腳可驅(qū)動 4 個 ls 型 ttl 負載。p3 口也可作為 at89c51 的一些特殊功能口,如下表 3-1 所示:表 1 at89c51 的一些特殊功能口i/o 口備選功能/特殊功能p3.0/rxd串行輸入口p3.1/txd串行輸出口p3.2/into外部中斷 0p3.3/int1外部中斷 1p3.4/t0計時器 0 外部輸入p3.5/t1計時器 1 外部輸入p3.6/wr外部數(shù)據(jù)存儲器寫選通p3.7/rd外部數(shù)據(jù)存儲器讀選通4.34.3系統(tǒng)總體原理圖系統(tǒng)總體原理圖12 圖 7 系統(tǒng)原理圖4.44.4

25、各部分硬件簡介各部分硬件簡介4.4.14.4.1 按鍵部分按鍵部分鍵盤電路:鍵盤在單片機應(yīng)用系統(tǒng)中,實現(xiàn)輸入數(shù)據(jù)、傳送命令的功能,是人工干預(yù)的主要手段。鍵盤分兩大類:編碼鍵盤和非編碼鍵盤。鍵盤是實現(xiàn)人機對話的必要設(shè)備,用戶可用鍵盤向計算機輸入數(shù)據(jù)或命令。本系統(tǒng)采用 3*3 矩陣鍵盤接口,矩陣連接又稱行列式連接,它是指每個按鍵按行列式的形式排列,每一行公用一根 i/o 口線,每一列也共有一根 i/o 口線,從而減少 i/o 口線的效果。我們規(guī)定,行線作為輸入,列線作為輸出,電路中,通過單片機i/o 口給行線一直輸入低電平。如果沒有按鍵按下,則列線上輸出的都是高電平;如果有鍵按下,則列線上肯定會輸

26、出低電平。單片機只要檢測到列線上不都為高,則說明有鍵被按下。按鍵功能介紹:k0 鍵:實現(xiàn)對 a 隊加 1 分的功能;k1 鍵:實現(xiàn)對 a 隊加 2 分的功能;13 k2 鍵:實現(xiàn)對 a 隊減 1 分的功能;k3 鍵:實現(xiàn)對 b 隊加 1 分的功能;k4 鍵:實現(xiàn)對 b 隊加 2 分的功能;k5 鍵:實現(xiàn)對 b 隊減 1 分的功能;k6 鍵:實現(xiàn)對比賽的開始和暫停;k7 鍵:實現(xiàn)對犯規(guī)的比賽暫停和 24 秒重置;k8 鍵:實現(xiàn)對比賽時間的設(shè)置。圖 8 按鍵控制電路4.4.24.4.2 顯示部分顯示部分本設(shè)計采用 lcd1602 實現(xiàn)顯示功能, 1602 是 16 字符*2 行的字符型 lcd 顯

27、示器,它由 32個字符點陣塊組成,每個字符點陣塊由 57 或 510 個點陣組成,可以顯示 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)用。1) lcd1602 引腳及功能 表 2 lcd1602 引腳功能 14 1、2 組電源,一組是模塊的電源,一組是背光板的電源,均為 5v 供電。2、vl 是調(diào)節(jié)對比度的引腳調(diào)節(jié)此腳上的電壓可以改變黑白對比度。3、rs 是很多液晶上都有的

28、引腳,是命令/數(shù)據(jù)選擇引腳,腳電平為高時表示將進行數(shù)據(jù)操作,為低時表示進行命令操作。4、r/w 也是很多液晶上都有的引腳,是讀寫選擇端,該腳電平為高是表示要對液晶進行讀操作,為低時表示要進行寫操作。5、e 同樣很多液晶模塊有此引腳,通常在總線上信號穩(wěn)定后給一正脈沖通知把數(shù)據(jù)讀走,在此腳為高電平的時候總線不允許變化。6、d0d7 8 位雙向并行總線,用來傳送命令和數(shù)據(jù)。7、bla 是背光源正極,blk 是背光源負極。2)lcd1602 基本操作時序。表 3 lcd1602 基本操作時序讀狀態(tài)輸入rs=l,r/w=h,e=h輸出d0d7=狀態(tài)字寫指令輸入rs=l,r/w=l,d0d7=指令碼,e=

29、高脈沖輸出無讀數(shù)據(jù)輸入rs=h,r/w=h,e=h輸出d0d7=數(shù)據(jù)寫數(shù)據(jù)輸入rs=h,r/w=l,d0d7=數(shù)據(jù),e=高脈沖輸出無對此液晶操作主要有以下幾種方法。編號符號引腳說明編號符號引腳說明1vss電源地9d2data i/o2vdd電源正極10d3data i/o3vl液晶顯示偏壓信號11d4data i/o4rs數(shù)據(jù)/命令選擇端(h/l)12d5data i/o5r/w讀/寫選擇端(h/l)13d6data i/o6e使能信號14d7data i/o7d0data i/o15bla背光源正極8d1data i/o16blk背光源負極15 1 寫命令(包括但不限于初始化、調(diào)節(jié)顯示位置、

30、清除顯示)2 寫數(shù)據(jù) (把一個字符的 asc 碼寫入液晶使其顯示)3 讀忙信號(液晶乃低速設(shè)備,每次操作前應(yīng)該測試忙信號,確定其不忙時再操作3)1602lcd 的指令碼(命令碼)此液晶上電的時候需要初始化,典型的指令碼是 38h,也就是上電的時候需要 調(diào)用 void write_cmd(unsigned char command)這個函數(shù)寫指令碼,用法是 write_cmd(0 x38);執(zhí)行完這個函數(shù)可以把液晶初始化成 16x2 顯示 5x7 的點陣 8 位總線接口。它的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實現(xiàn)的。 (說明:1 為高電平、0 為低電平) 。 指令 1:清顯示,指令碼

31、01h,光標(biāo)復(fù)位到地址 00h 位置。 指令 2:光標(biāo)復(fù)位,光標(biāo)返回到地址 00h。 指令 3:光標(biāo)和顯示模式設(shè)置 i/d:光標(biāo)移動方向,高電平右移,低電平左移 s:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效。 指令 4:顯示開關(guān)控制。 d:控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示 c:控制光標(biāo)的開與關(guān),高電平表示有光標(biāo),低電平表示無光標(biāo) b:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍。 指令 5:光標(biāo)或顯示移位 s/c:高電平時移動顯示的文字,低電平時移動光標(biāo)。指令 6:功能設(shè)置命令 dl:高電平時為 4 位總線,低電平時為 8 位總線 n:低電平時為單行顯

32、示,高電平時雙行顯示 f: 低電平時顯示 5x7 的點陣字符高電時顯示 5x10 的點陣字符。 , 指令 7:字符發(fā)生器 ram 地址設(shè)置。 指令 8:ddram 地址設(shè)置。 指令 9:讀忙信號和光標(biāo)地址 bf:為忙標(biāo)志位,高電平表示忙,此時模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。 指令 10:寫數(shù)據(jù)。 指令 11:讀數(shù)據(jù)。 液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。液晶 lcd 指令見表 3:表 4 液晶 lcd 指令16 指令rsrwd7d6d5d4d3d2d1d0清楚顯示0000000001光標(biāo)返回0000000

33、01*置輸入模式00000001i/ds顯示開關(guān)顯示0000001dcb光標(biāo)和字符移位000001s/cr/l*置功能00001dlnf*置字符發(fā)生寄存器地址0001字符發(fā)生存儲器地址 agg置數(shù)據(jù)存儲器器地址001顯示數(shù)據(jù)存儲器地址 add讀忙標(biāo)志或地址01bf計數(shù)器地址 ac寫數(shù) cgram 或 ddram10要寫的數(shù)據(jù)從 cgram 或 ddram 讀數(shù)11讀出的數(shù)據(jù)4.4.34.4.3 系統(tǒng)復(fù)位電路部分系統(tǒng)復(fù)位電路部分mcs-51 單片機通常采用上電復(fù)位、按鈕電平復(fù)位、外部脈沖復(fù)位、上電加按鈕電平復(fù)位、程序運行監(jiān)視復(fù)位等方式。本設(shè)計采用的是上電加按鈕電平復(fù)位,電路圖如圖所示,是上電自動

34、復(fù)位與按鈕電平復(fù)位的組合。上電復(fù)位利用電容充電來實現(xiàn),即上電瞬間 rst/vpd 端的電位與 vcc 相同,隨著充電電流的減少, rst/vpd 的電位下降,最后被鉗位在 0 伏,按鈕電平復(fù)位,當(dāng)按鈕按下后,電源 vcc 同過電阻施加在單片機復(fù)位端 rst/vpd 上,實現(xiàn)單片機的復(fù)位。17 圖 9 復(fù)位電路4.4.44.4.4 元器件的選擇元器件的選擇硬件部分的設(shè)計是整個設(shè)計的一個很重要的部分。在進行硬件設(shè)計時,首先要確定元器件,并且知道這些元器件的工作原理和功能,然后才可以進行設(shè)計。本設(shè)計的主要硬件電路包括三個部分:計時顯示電路、計分顯示電路、鳴笛警示電路。一般來說,對硬件部分的設(shè)計都應(yīng)包

35、括繪制 sch 原理圖和 pcb 印刷圖,由于本次設(shè)計我主要負責(zé)軟件部分的設(shè)計,硬件參與得不是很多,所以硬件部分元器件的功能就不詳細介紹了。本設(shè)計主要選擇了以下元器件:如表 3-3 所示:表 4 元器件列表元器件名稱所屬類所屬子類at89c51(單片機)microprocessor ics8051 family7seg-mpx4-ca-bkueoptoelectrionics7-segment-display7seg-mpx4-caoptoelectrionics7-segment-displaysw-spdtswitchs&relays74ls247ttl 74lsseriesallsub-

36、categoriesminres4.7k(電阻 4.7k)resistorsallsubbuttonall-categoriesallsub-categories7404ttl 74lsseriesallsub-categoriessounderspeakers&soundersallsub-categories18 5 5 系統(tǒng)軟件設(shè)計系統(tǒng)軟件設(shè)計5.15.1 軟件總體設(shè)計方案軟件總體設(shè)計方案籃球比賽計時計分器軟件設(shè)計部分采用模塊化程序設(shè)計,程序部分由主程序、t0 中斷程序、t1 中斷程序、計時計分刷新顯示子程序、鍵盤掃描控制子程序、延時子程序等組成。s2鍵按下光標(biāo)標(biāo)志位gb調(diào)整a隊分數(shù) 調(diào)

37、整b隊分數(shù) s3按下加1 s4按下減1gb=1gb=2圖 10 分數(shù)刷新子程序19 開始初始化顯示設(shè)置時間key3按下與否n刷新顯示、暫停、等待開始key0等于1n倒計時開始定時定時時間到否n暫停鍵按下ys2/s3/s4是否按下對應(yīng)兩隊分數(shù)調(diào)整顯示n報警顯示y第四節(jié)結(jié)束?結(jié)束ynyyy 圖 11 主程序流程圖5.25.2 系統(tǒng)軟件框圖系統(tǒng)軟件框圖本系統(tǒng)軟件采用模塊化設(shè)計方法。整個系統(tǒng)由初始化模塊、倒計時模塊、液晶顯示模塊以及鍵盤模塊組成程序流程圖如圖 4 所示:20 圖 12 系統(tǒng)程序流程圖此設(shè)計由按鍵控制系統(tǒng)的開始,當(dāng)系統(tǒng)開始時,由單片機控制開始進行每節(jié) 12m 的倒計時,當(dāng)比賽出現(xiàn)犯規(guī)或其

38、它要求請求暫停時,由按鍵控制比賽暫停,此時,時間暫停,當(dāng)出現(xiàn) 24s違例時,系統(tǒng)自動暫停計時,并發(fā)出報警;比賽比分的加減完全有按鍵控制;另外,當(dāng)每節(jié)比賽結(jié)束后,自動跳至休息時間倒計時,第一節(jié)結(jié)束有 2m 的休息時間,第二節(jié)結(jié)束有 10m 的休息時間,第三節(jié)結(jié)束有 2m 的休息時間。此設(shè)計的功能完全符合現(xiàn)實中的籃球比賽的計時計分要求,設(shè)計更加合理。5.35.3 軟件介紹軟件介紹5.3.15.3.1 keilkeil21 單片機開發(fā)中除必要的硬件外,同樣離不開軟件,我們寫的匯編語言源程序要變?yōu)?cpu 可以執(zhí)行的機器碼有兩種方法,一種是手工匯編,另一種是機器匯編,目前已極少使用手工匯編的方法了。機

39、器匯編是通過匯編軟件將源程序變?yōu)闄C器碼,用于 mcs-51 單片機的匯編軟件有早期的 a51,隨著單片機開發(fā)技術(shù)的不斷發(fā)展,從普遍使用匯編語言到逐漸使用高級語言開發(fā),單片機的開發(fā)軟件也在不斷發(fā)展,keil 軟件是目前最流行開發(fā) mcs-51 系列單片機的軟件,這從近年來各仿真機廠商紛紛宣布全面支持 keil 即可看出。keil 提供了包括 c 編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uvision)將這些部份組合在一起。運行 keil 軟件需要 pentium 或以上的 cpu,16mb 或更多ram、20m 以上空閑的硬盤空間、wi

40、n98、nt、win2000、winxp 等操作系統(tǒng)。掌握這一軟件的使用對于使用 51 系列單片機的愛好者來說是十分必要的,如果你使用 c 語言編程,那么 keil 幾乎就是你的不二之選,即使不使用 c 語言而僅用匯編語言編程6,其方便易用的集成環(huán)境、強大的軟件仿真調(diào)試工具也會令你事半功倍。(1)系統(tǒng)概述keil c51 是美國 keil software 公司出品的 51 系列兼容單片機 c 語言軟件開發(fā)系統(tǒng),與匯編相比,c 語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學(xué)易用。用過匯編語言后再使用 c 來開發(fā),體會更加深刻。keil c51 軟件提供豐富的庫函數(shù)和功能強大的集

41、成開發(fā)調(diào)試工具,全 windows 界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到 keil c51 生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。下面詳細介紹 keil c51 開發(fā)系統(tǒng)各部分功能和使用。(2)keil c51 單片機軟件開發(fā)系統(tǒng)的整體結(jié)構(gòu)c51 工具包的整體結(jié)構(gòu),如圖(1)所示,其中 uvision 與 ishell 分別是 c51 for windows 和 for dos 的集成開發(fā)環(huán)境(ide),可以完成編輯、編譯、連接、調(diào)試、仿真等整個開發(fā)流程。開發(fā)人員可用 ide 本身或其它編輯器編輯

42、 c 或匯編源文件。然后分別由 c51 及 a51編譯器編譯生成目標(biāo)文件(.obj)。目標(biāo)文件可由 lib51 創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng) l51 連接定位生成絕對目標(biāo)文件(.abs)。abs 文件由 oh51 轉(zhuǎn)換成標(biāo)準(zhǔn)的 hex 文件,以供調(diào)試器 dscope51 或 tscope51 使用進行源代碼級調(diào)試,也可由仿真器使用直接對目標(biāo)板進行調(diào)試,也可以直接寫入程序存貯器如 eprom 中。使用獨立的 keil 仿真器時,應(yīng)該注意:* 仿真器標(biāo)配 11.0592mhz 的晶振,但用戶可以在仿真器上的晶振插孔中換插其他頻22 率的晶振。 * 仿真器上的復(fù)位按鈕只復(fù)位仿真芯片,不復(fù)位目

43、標(biāo)系統(tǒng)。 * 仿真芯片的 31 腳(/ea)已接至高電平,所以仿真時只能使用片內(nèi) rom,不能使用片外rom;但仿真器外引插針中的 31 腳并不與仿真芯片的 31 腳相連,故該仿真器仍可插入到擴展有外部 rom(其 cpu 的/ea 引腳接至低電平)的目標(biāo)系統(tǒng)中使用。5.3.25.3.2 proteusproteusproteus 軟件4是一種低投資的電子設(shè)計自動化軟件,提供可仿真數(shù)字和模擬、交流和直流等數(shù)千種元器件和多達 30 多個元件庫。proteus 軟件提供多種現(xiàn)實存在的虛擬儀器儀表。此外,proteus 還提供圖形顯示功能,可以將線路上變化的信號,以圖形的方式實時地顯示出來。這些虛擬

44、儀器儀表具有理想的參數(shù)指標(biāo),例如極高的輸入阻抗、極低的輸出阻抗,盡可能減少儀器對測量結(jié)果的影響,proteus 軟件提供豐富的測試信號用于電路的測試。這些測試信號包括模擬信號和數(shù)字信號。提供 schematic drawing、spice 仿真與 pcb 設(shè)計功能,同時可以仿真單片機和周邊設(shè)備,可以仿真 51 系列、avr、pic 等常用的 mcu,并提供周邊設(shè)備的仿真,例如 373、led、示波器等。proteus 提供了大量的元件庫,有 ram、rom、鍵盤、馬達、led、lcd、ad/da、部分 spi 器件、部分 iic 器件,編譯方面支持 keil 和 mplab 等編譯器。該軟件的

45、特點: 全部滿足我們提出的單片機軟件仿真系統(tǒng)的標(biāo)準(zhǔn),并在同類產(chǎn)品中具有明顯的優(yōu)勢。具有模擬電路仿真、數(shù)字電路仿真、單片機及其外圍電路組成的系統(tǒng)的仿真、rs-232 動態(tài)仿真、c 調(diào)試器、spi 調(diào)試器、鍵盤和 lcd 系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等。 目前支持的單片機類型有:68000 系列、8051 系列、avr 系列、pic12 系列、pic16 系列、pic18 系列、z80 系列、hc11 系列以及各種外圍芯片。 支持大量的存儲器和外圍芯片??傊撥浖且豢罴瘑纹瑱C和 spice 分析于一身的仿真軟件,功能極其強大 ,可仿真 51、avr、pic。5

46、.45.4 時間顯示設(shè)計時間顯示設(shè)計23 系統(tǒng)要實現(xiàn)時間的計時功能,所以要用定時/計數(shù)器的定時功能進行時間處理,在本程序設(shè)計中,用一個定時 50ms 的時間中斷函數(shù) void js_50ms(void) ,一個時間處理函數(shù) void ptime(uchar) 。由于時間顯示屏用的是 4 位的數(shù)碼管進行顯示,用動態(tài)掃描顯示驅(qū)動,用 void js_scan(void)處理動態(tài)掃描顯示。時間預(yù)置用按鍵實現(xiàn),首先進行按鍵判斷處理,用 void key_y(void)函數(shù)處理。嵌入式籃球計分屏實現(xiàn)時間顯示屏的部分源程序如下:/*設(shè)置場次比賽時間*/void key_y(void)if(yk1=0) /

47、初始狀態(tài),分鐘的十位為 0delay(1); /延時去抖動fs=fs+1; /分十位加 1 分fy=fs*10+fg; /求出預(yù)置時間的分鐘值f=fy; /中間變量if(yk2=0) /初始狀態(tài),分鐘的個位為 0delay(1); /延時去抖動fg=fg+1; /分個位加 1 分fy=fs*10+fg; /求出預(yù)置時間的分鐘值f=fy; /中間變量js_scan();/*t0 中斷服務(wù)函數(shù),每隔 50ms 產(chǎn)生一次中斷*/void js_50ms(void)interrupt 1 using 1 /定時器 t0 中斷,用工作寄存器組 1 th0=(65535-50000)/256; /定時器

48、t0 的高 8 位tl0=(65535-50000)%256; /定時器 t0 的低 8 位num+; /每 50ms 累加一次ptime(num); /調(diào)用時間處理函數(shù)/*時間處理函數(shù)*/void ptime(uchar time) if(time=20) /如果為 1s(50ms*20=1s)num=0;m+; /每到 1s,計時器累加 1 次ms=m/10; /秒的十位 mg=m%10; /秒的個位if(m=60) /如果為 1min24 m=0; /秒鐘置 0 mg=m%10; /秒鐘的個位置 0ms=m/10; /秒鐘的十位置 0f-; /分鐘開始在預(yù)設(shè)的比賽時間基礎(chǔ)上倒計時fs=f

49、/10; /分鐘的十位fg=f%10; /分鐘的個位if(f=0) /分鐘數(shù)倒計時到 0tr0=0; /時間到,停止計時/*數(shù)碼管動態(tài)掃描顯示*/void js_scan(void)uchar j;for(j=0;j=5;j+)s4=0;p0=led_nummg;delay(1);s4=1; /*將秒鐘的個位傳遞給譯碼器,通過按鍵,實現(xiàn)邊沿跳變,并把結(jié)果譯成相應(yīng)的段碼顯示出來*/s3=0;p0=led_numms;delay(1);s3=1; /*將秒鐘的十位傳遞給譯碼器,通過按鍵,實現(xiàn)邊沿跳變,并把結(jié)果譯成相應(yīng)的段碼顯示出來*/s2=0;p0=led_numfg;delay(1);s2=1;

50、 /*將分鐘的個位傳遞給譯碼器,通過按鍵,實現(xiàn)邊沿跳變,并把結(jié)果譯成相應(yīng)的段碼顯示出來*/s1=0;p0=led_numfs;delay(1);s1=1; /*將分鐘的十位傳遞給譯碼器,通過按鍵,實現(xiàn)邊沿跳變,并把結(jié)果譯成相應(yīng)的段碼顯示出來*/5.55.5 計分顯示設(shè)計計分顯示設(shè)計本系統(tǒng)是利用按鍵來實現(xiàn)兩隊的計分功能的,當(dāng)按一次加分鍵,在程序中要用兩個整形的變量作為 a、b 隊的分值計分器,程序里用 sum 及 sum1 分別表示 b 和 a 隊的分值。如分別要在數(shù)碼管的每位上動態(tài)掃描顯示出來,就必須對兩隊所得的分數(shù)進行分位計算。程序里分別用 q、b、s、g 表示 b 隊顯示屏的千位、百位、十

51、位、個位;用 q1、b1、s1、g1 表示 a 隊顯示屏的千位、百位、十位、個位。通過按鍵判斷處理,判斷是加分還是減分,用函數(shù)void key_if(void)來實現(xiàn),用 void jf_scan(void)函數(shù)進行動態(tài)掃描顯示分值。嵌入式籃球計分屏計分顯示的部分實現(xiàn)程序如下:/*數(shù)碼管動態(tài)掃描顯示*/void jf_scan(void)uchar j;25 for(j=0;j=1) /減分按鍵按下并且中得分不得少于 1 分delay(1); /延時去抖動sum=sum-1; /b 隊減 1 分if(key3=0) /當(dāng)按鍵按下時delay(1); /延時去抖動sum1=sum1+1; /a

52、隊加 1 分 if(key4=0 & sum1=1) /減分按鍵按下并且中得分不得少于 1 分delay(1); /延時去抖動sum1=sum1-1; /a 隊減 1 分q=0; / a 隊分值的千位默認為 0b=sum/100; /求出 a 隊分值的百位26 s=sum/10-b*10; /求出 a 隊分值的十位g=sum%10; /求出 a 隊分值的個位q1=0; / b 隊分值的千位默認為 0b1=sum1/100; /求出 b 隊分值的百位s1=sum1/10-b1*10; /求出 b 隊分值的十位g1=sum1%10; /求出 b 隊分值的個位27 6 6 系統(tǒng)調(diào)試系統(tǒng)調(diào)試系統(tǒng)調(diào)試分

53、為軟件調(diào)試和硬件調(diào)試,單片機系統(tǒng)的硬件調(diào)試和軟件調(diào)試是不能分開的,許多硬件錯誤是在軟件調(diào)試中被發(fā)現(xiàn)和糾正的。但通常是先排除明顯的硬件故障以后,再和軟件結(jié)合起來調(diào)試以進一步排除故障??梢娪布恼{(diào)試是基礎(chǔ),如果硬件調(diào)試不通過,軟件設(shè)計則是無從做起。6.16.1 軟件調(diào)試軟件調(diào)試軟件調(diào)試主要是運用 keil 和 proteus 完成。在寫好源程序,畫出原理圖之后,在電腦上進行軟件仿真。keil 的使用簡介:先建一個新的工程,選擇處理器,這里選擇 at89s52;接下來可以新建一個文檔用來編輯程序,編輯完存為.asm(匯編源文件)或 .h(c 語言頭文件)或.c(c 語言實現(xiàn)文件)即可;接下來把保存的

54、.asm, .c 或.h 文件加入到工程里即可。然后進行工程配置。點擊 project 菜單下的 options for target target 1 。 在彈出對話框的 target 項里輸入晶振為 12m,然后勾上 use on-chip rom。在 output 項里勾上 create hex file。最后編譯程序,keil 會自動為你生成.hex 文件。將系統(tǒng)原理圖在 proteus 環(huán)境下畫好,然后運用 proteus 進行仿真,觀察其功能實現(xiàn)情況。設(shè)計仿真圖如下:proteus 軟件設(shè)計仿真原理圖如下圖所示:28 29 圖 13 proteus 仿真圖啟動籃球計時計分器,運行,

55、計時部分立即開始工作計時,proteus 軟件仿真計時顯示如下計分(甲隊 23 分、乙隊 13 分):3、復(fù)位操作:按復(fù)位鍵,復(fù)位后即可進行新一輪比賽計時計分工作。圖 14 復(fù)位電路圖6.26.2 硬件調(diào)試硬件調(diào)試 硬件方面主要是對電路板焊接技術(shù)以及布線的整體把握,電路板做好后,經(jīng)過對單片機燒寫程序、調(diào)試等一系列工序,硬件達到了預(yù)期的效果,各個按鈕均能實現(xiàn)其預(yù)期功能。6.36.3 故障預(yù)測及解決辦法故障預(yù)測及解決辦法1即使通過了 protel 軟件的電路原理圖設(shè)計,但在整個系統(tǒng)焊制過程中,發(fā)現(xiàn)顯示器在工作過程中溫度過高,而且產(chǎn)生很大熱量。原因分析:電路中通過顯示器的電流過大,是導(dǎo)致產(chǎn)生過多熱的

56、原因。解決方法:可以在顯示器接地端口接入適當(dāng)電阻,起到限流作用。2在調(diào)試系統(tǒng)過程中,發(fā)現(xiàn)當(dāng)有按鍵按下的時候,會產(chǎn)生很多信號,例如,在加分時,按下按鍵會有多個輸入信號,這樣和期望值不符。原因分析:由于機械按鍵有彈性,在按下或者彈起時會出現(xiàn)抖動,從最初按下到穩(wěn)定要經(jīng)30 過幾毫秒的時間,會產(chǎn)生前沿抖動和后沿抖動。解決辦法:解除抖動有硬件和軟件解抖:硬件消抖是利用加支抖動電路避免產(chǎn)生抖動信號;短劍消抖是利用數(shù)字濾波技術(shù)來消抖。本設(shè)計中采用軟件消抖技術(shù),在采集按鍵信號時,加如10ms 的延時程序,即可消除抖動。3硬件電路板顯示器顯示亂碼。原因分析:可能是顯示器損壞,也可能是焊接的問題,又或者是單片機信

57、號錯誤。解決辦法:檢測了電路之后發(fā)現(xiàn)電路的焊接有虛焊,重新焊接還是發(fā)現(xiàn)亂碼。繼續(xù)檢查才發(fā)現(xiàn)原來程序編寫時字型碼編寫錯誤,改正后顯示正確。6.46.4 籃球比賽計時計分系統(tǒng)的功能實現(xiàn)籃球比賽計時計分系統(tǒng)的功能實現(xiàn)一場正規(guī)的籃球賽分為 4 小節(jié),每節(jié) 12 分鐘。打開電源,此時 lcd1602 第一行分別顯示ab 兩隊的計分欄“00 vs 00” ,24 秒倒計時, lcd1602 顯示第二行為事先設(shè)置好的籃球比賽的比賽時間“12:00:00” , 當(dāng)前節(jié)數(shù)“no.1” ,3*3 矩陣鍵盤中分別設(shè)置有為 a 和 b 隊加分和減分的按鍵,開始/暫停按鍵。(1)比賽加分:當(dāng)按下鍵盤第一行鍵值為“0”

58、、 “1”的鍵時,對應(yīng)的分別為 a 隊加上 1 分、2 分。同樣,當(dāng)按下鍵盤第二行的鍵值為“3” 、 “4”的鍵時,對應(yīng)的分別為 b 隊加上 1 分、2分。(2)比賽減分:鍵值為“2”和“5”的鍵則是分別為 a 隊和 b 隊的減分的鍵,根據(jù)按鍵的次數(shù),減去相應(yīng)的分數(shù)。(3)開始/暫停:鍵值為“6”的鍵為比賽開始/暫停計時按鈕,按下“6”鍵之后,比賽時間和 24 秒將以倒計時的方式呈現(xiàn),再次按下,則為暫停狀態(tài)。(4)對犯規(guī)的比賽暫停和 24 秒重置:鍵值為“7”的鍵為對犯規(guī)的比賽暫停和 24 秒重置按鈕,按下“7”鍵后,比賽時間暫停,并且 24 秒倒計時復(fù)位(5)設(shè)置比賽時間:鍵值為“8”的鍵為

59、比賽時間設(shè)置鍵,按下“8”鍵后,lcd1602 顯示”st:” ,可根據(jù)情況自行設(shè)置比賽時間,或為加時賽設(shè)置時間。(6)復(fù)位:“reset”為復(fù)位鍵,按下可以實現(xiàn)復(fù)位。復(fù)位后,lcd1602 顯示初始狀態(tài)。31 7 7 課程設(shè)計體會課程設(shè)計體會本次單片機課程設(shè)計我選擇了“籃球計時計分器”這一題目,通過這次課程設(shè)計,自己認真復(fù)習(xí)單片機,查閱和瀏覽了很多的相關(guān)資料, 并且提高了使用 kile3 和 proteus 軟件的熟練程度。通過這次課程設(shè)計的學(xué)習(xí)與思考,認真總結(jié),我覺得單片機課程設(shè)計主要包括四方面的內(nèi)容:軟件部分設(shè)計、硬件部分設(shè)計、運用 kile3 及 proteus 軟件仿真及寫出課程設(shè)計

60、報告。這四部分內(nèi)容看似簡單,但實際操作起來卻實不輕松。在單片機應(yīng)用系統(tǒng)設(shè)計時,必須先確定該系統(tǒng)的技術(shù)要求,這是系統(tǒng)設(shè)計的依據(jù)和出發(fā)點,整個設(shè)計過程都必須圍繞這個技術(shù)要求來工作。軟件部分的設(shè)計,我按照模塊化的思想,一塊一塊的疊加。在這次單片機系統(tǒng)的課程設(shè)計中,我學(xué)到了很多,尤其是在調(diào)試程序的過程中,我遇到了很多問題,自己摸索并一個一個的克服,自信心進一步得到了加強,證明我并不是只會學(xué)課本而不會用的那種學(xué)生。我學(xué)會了更多的查錯方法和仿真知識。這次課程設(shè)計,我又一次的學(xué)習(xí)了 c 語言的編程,發(fā)現(xiàn)自己的確很喜歡編程,也更清楚的認識到自己所學(xué)的不足,我學(xué)到了很多新的知識,同時也加深了對以前所學(xué)知識的理解

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論