




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、畢業設計(報告)畢業設計(報告)課題: 基于藍球比賽計分器的設計學生: 王東升 系部: 電子信息系班級: 應用電技術 1101 班 學號: 2011110664指導教師: 彭克發裝訂交卷日期:2014 年 3 月 10 日 鄭重申明鄭重申明本人呈交的畢業實習報告(設計) ,是在導師的指導下,獨立進行實習和研究工作所取得的成果,所有數據、圖片資料真實可靠。盡我所知,除文中已經注明引用的內容外,本畢業實習報告(設計)的成果不包含他人享有著作權的內容。對本畢業實習報告(設計)所涉及的實習和研究工作做出貢獻的其他個人和集體,均已在文中以明確的方式標明。本畢業實習報告(設計)的知識產權歸屬于作者與培養單
2、位。學生簽名學生簽名簽字蓋章日期0000.00 摘要籃球比賽是每所院校都會開展的一項體育運動,學生之間、教師之間或是師生之間都可以開展。計分方式也比較多,體育館里可以由大屏幕計分器進行計時、計分,但是在運動場上還主要靠翻牌式的計分方式。為了增強校園內比賽的便捷性,可以利用單片機進行控制實現計時、計分。atmel 公司生產的 at89c51 系類的單片機就非常適合此類產品制作,可以利用直流穩壓電源或是電池盒直接供電,因此攜帶和移動方便,計時、計分準確。本設計主要利用單片機 at89c51作為核心元件,利用 3 組 4 位共陽極的數碼管作為顯示器件,以 c 語言作為編程語言,在protues 和
3、keil 搭建的軟件仿真平臺下進行仿真,本設計包含了 at89c51 系列單片機的最小系統的構成,同時在此基礎上擴展了一些實用性強的外圍接口,可以進一步了解譯碼器74ls247 的應用,led 七段數碼管的結構和工作原理,主要實現了計時和顯示 a/b 隊的分數,并能及時進行加分,減分,鳴笛警示等功能。系統設計完成后應有成本低廉、性能穩定、高準確度顯示、操作方便且易攜帶等特點。廣泛適合各類學校和小團體作為賽程計分。關鍵詞: at89s52 單片機, 籃球比賽計時 ,籃球比賽計分 目錄目錄1 1 概述概述 . 6 61.1 國內外籃球比賽計分器的現狀分析 . 62 2 設計任務和要求設計任務和要求
4、.62.1 設計意義.72.2 設計任務.72.3 設計要求.73 3 設計原理與方案選擇設計原理與方案選擇.83.1 系統硬件方案設計原理.83.2 系統軟件方案設計原理. .83.3 系統總體設計框圖.93.4 系統總體電路圖.103.5 顯示模塊的選擇.113.6 計時方案的選擇.124 4 系統硬件設計系統硬件設計.134.1 系統設計概述.134.2 at89s52 單片機簡介.134.3 系統總體原理圖.174.4 各部分硬件簡介.174.4.1 按鍵部分.174.4.2 顯示部分.184.4.3 復位電路部分.214.4.4 元器件的選擇. . . .225 5 系統軟件設計系統
5、軟件設計.235.1 軟件總體設計方案.235.2 系統設計框圖.245.3 軟件介紹.255.3.1 keil.255.3.2 proteus.275.4 時間顯示設計. . 27 5.5 積分顯示設計. . 296 6 系統調試系統調試.326.1 軟件調試.326.2 硬件調試.346.3 故障預測及解決辦法.346.4 籃球比賽計時計分系統的功能實現.357 7 課程設計體會課程設計體會.368 8 附錄附錄.379 9 參考文獻參考文獻.461010 致致 謝謝. . 471 1 1 概述概述1.11.1國內外籃球比賽計分器的現狀分析國內外籃球比賽計分器的現狀分析 籃球比賽在中國越來
6、越被人們關注,同時也被更多青少年所喜愛。籃球賽記時計分器是對比賽過程中所產生的時間、比分等數據進行快速采集記錄、加工處理、傳遞利用的工具。根據不同運動項目的不同比賽規則要求,籃球賽記時計分器包括評分類、命中類、制勝類、得分類等多種類型。 籃球比賽是根據運動隊在比賽時間里得分多少來決定勝負的。因此,籃球比賽的記時計分器是一種得分類型的工具。籃球比賽的記時計分器由計時器、計分器等多種電子設備組成。同時,根據目前高水平藍球比賽要求,完善的藍球比賽計時計分系統設備應該能夠與現場成績處理、現場大屏幕、電視轉播車等多種設備相聯,以便實現提高比賽現場感、表演娛樂觀眾等功能。 籃球賽記時計分器的設計具有賽程時
7、間計時、 調整及暫停和比賽計分顯示的功能。一方面,方便了人們比賽時的計時計分工作,在某種程度上可促進籃球賽的開展,既有利于發展這項體育活動,又有利于增強人們的體質,另一方面,隨著參與籃球運動的人數的增多,也有利于籃球運動的選拔,對我國的籃球事業也具有促進作用。 雖然籃球比賽中很早就開始研究應用了計時計分器,但通常都是利用模擬電子器件、數字電子器件或是模擬、數字混合組成的,其穩定性和高準確度計時計分扔存在一些問題。隨著科學技術的發展和電子技術的不斷更新,對其穩定和高準確度計時計分的實現至今仍是生產和科研的課題。 隨著單片機在各領域的廣泛應用,許多用單片機做控制的球賽計時計分系統也就應運產生,如單
8、片機控制 led 液晶顯示器計時計分器,用單片機控制 led 七段顯示器記時計分器等。同時單片機在此領域的廣泛應用,也大大提高了比賽中記時計分的穩定性和準確性。2 2 2 設計任務和要求設計任務和要求2.12.1 設計意義設計意義在籃球比賽中,計時計分系統是必不可少的。隨著比賽規則的進一步完善,相應的計時計分系統也必須隨之改進。籃球計時計分系統是一個負責籃球比賽的數據采集和分配的專用系統,它負責對比賽結果、成績信息的采集處理、傳輸分配,即將籃球比賽比分數據通過專用的技術接口分別傳送給裁判員、教練員、計算機信息系統和現場觀眾等。由于比賽的不可重復性,決定了籃球計時計分系統是一個實時性很強、可靠性
9、要求極高的電子服務系統,所以計時計分設備是籃球比賽中不可缺少的電子設備,計時計分系統設計是否合理,關系到比賽系統運行的穩定和可靠,并直接影響到比賽的順利進行。通過此次基于單片機設計的籃球計時計分系統,我們可以更方便、快捷地了解籃球比賽的當前信息,并對籃球比賽的時間和比分做出更準確的記錄2.22.2設計任務設計任務設計并制作一個用于賽場的籃球比賽的計時計分系統,記錄臺能監控、調節。2.32.3 設計要求設計要求1)比賽采用倒計時方式,計時系統能夠完成籃球比賽的所有計時及顯示要求。2)能設置比賽時間,具有比賽暫停功能。3)比分顯示范圍為 0 到 99 分,能滿足一般的比賽的計分。4)能隨時刷新甲.
10、乙兩隊在整個賽程中的比分。3 3 3 設計原理與方案選擇設計原理與方案選擇3.13.1 系統硬件方案設計原理系統硬件方案設計原理 該系統硬件電路包括:單片機 at89c51、時鐘電路、復位電路、電源電路、按鍵控制電路、計分電路、計時電路、報警電路。軟件包括用 keil 進行 c 語言編程,用 protues 進行仿真,具體系統硬件結構框圖如圖 1 所示。at89c52計分顯示時鐘電路計分電路報警電路計時電路計時顯示鳴笛警示按鍵控制復位電路電源電路3.23.2 系統軟件方案設計系統軟件方案設計原理原理軟件部分要求實現的功能有:開始時所有顯示屏都顯示 0;有預置比賽時間的功能;具有 ab 兩隊分別
11、計分的功能;有鳴笛警示功能;只有當預置時間后,并按開始按鈕,計時器才4 能開始計時,只有當開始計時后,ab 兩隊才能加分等。結合數碼管以及 51 單片機計數器的工作實現方式、接口應用、中斷控制等可設計出程序流程圖如圖 2 所示:ny將 bcd 碼轉化為 7 段碼顯示出來,并確認比賽是否結束將當前的分數轉化為 bcd 碼確認按下的是哪個鍵鳴笛休息a 隊減 1 分a 隊加 1 分等待按鍵釋放b 隊加 1 分b 隊減 1 分確認是否有按鍵按下讀取功能鍵讀 p3 口的值取出 p3.6啟動按鍵是否按下去抖比賽開始,并初始化nn3.33.3 系統總體設計框圖系統總體設計框圖比賽結束停止5 cpu4kb r
12、om128 字節的 ram定時器計數器并行 io 接口串行接口中斷系統時鐘源圖 3 系統總體設計框圖3.43.4 系統總體電路圖系統總體電路圖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 系統總體電路圖3.53.5 顯示模塊的選擇顯示模塊的選擇7 方案一:采用數碼管 led 顯示,led 顯示器是由發光二極管
15、構成的 led 數碼管、led 點陣顯示器等。led 發光器件一般常用的有兩類:數碼管和點陣。方案二:采用液晶電路來顯示,lcd1602 是工業字符型液晶,能夠同時顯示 16x02 即 32個字符。對以上兩個方案加以比較,可以發現 led 雖然使用簡單,但是顯示內容有限,顯示效果不是很直觀,硬件連接電路較為復雜,而且穩定性不高;而 lcd1602 連接線路簡單,顯示內容豐富,易于硬件電路實現,可靠性較好。綜上所述:顯示模塊采用第二種方案,采用 lcd1602 來實現本設計的顯示功能。3.63.6計時方案的選擇計時方案的選擇方案一:采用芯片 74ls192(十進制同步加/減計數器) 、ne555
16、(秒脈沖發生器)以及輔助電路等組成。設計中秒脈沖發生器是采用 555 集成電路組成的多諧振蕩器構成,通過計算來產生比較準確的 1 秒脈沖。譯碼顯示電路用 cd4511 和共陰極七段 led 數碼管組成,報警電路在實驗中用發光二極管代替。該方案能較準確的顯示比賽時間和比分,但是有眾多的不足。例如:電路中用到的芯片較多,無法簡化設計方案。方案二:采用計時芯片,針對計算機系統對計時芯片的要求,各大芯片廠家推出了鍵時鐘/倒計時/正計時各種芯片,可采用自動控制計時芯片,通過觸發控制電路使計時器自動地計時,達到預定時間后芯片重新開始計時(實現倒計時功能) ;也可以通過觸發控制電路使計時器不計時,達到預定時
17、間后芯片重新開始計時(實現暫停功能) ,不需要程序干預。計算機可通過中斷或查詢方式讀取計時器數據,實現計時的暫停的功能,并進行顯示,計時功能的實現就無需占用 cpu 的時間,程序簡單,控制精度高,因此在工業控制系統中多采用這一類專用芯片來實現計時功能。方案三:軟件控制,利用 at89s52 內部的定時器/計數器進行中斷定時,配合軟件延時實現計時。該方案節省硬件成本,并且可綜合運用定時器/計數器、中斷以及程序設計的知識,因此本系統采用方案三軟件方法來實現計時。8 4 4 系統硬件設計系統硬件設計4.14.1 系統設計概述系統設計概述本設計中,系統采用 at89s52 單片機為控制核心,由倒計時模
18、塊、比分顯示模塊、人機接口模塊、報警模塊等部分組成。其中比賽時間倒計時和 24 秒進攻倒計時分別采用單片機at89s52 的定時器 1 和定時器 2 實現;人機接口模塊由鍵盤和 lcd1602 液晶組成,可實現比賽時間、24 秒倒計時設置和顯示、比分顯示和比賽節數顯示等功能。本設計采用 3*3 矩陣式鍵盤作為輸入,記錄臺可分別對兩隊比分進行加 1、加 2 和減 1 操作。其中加 1、2 可以通過加 1 分和 2 分的按鍵直接實現,減 1 分、2 分、3 分通過按下減 1 分按鍵的次數完成。比分通過 lcd1602 顯示器進行顯示,每隊比分顯示 2 位。4.24.2at89s52at89s52
19、單片機簡介單片機簡介at89s52 是 51 系列單片機的一個型號,它是 atmel 公司生產的。at89s52 是一個低電壓,高性能 cmos 8 位單片機,片內含 8k bytes 的可反復擦寫的 flash 只讀程序存儲器和 256 bytes 的隨機存取數據存儲器(ram) ,器件采用 atmel 公司的高密度、非易失性存儲技術生產,兼容標準 mcs-51 指令系統,片內置通用 8 位中央處理器和 flash 存儲單元,功能強大的at89s52 單片機可為您提供許多較復雜系統控制應用場合。at89s52 有 40 個引腳,32 個外部雙向輸入/輸出(i/o)端口,同時內含 2 個外中斷
20、口,3 個 16 位可編程定時計數器,2 個全雙工串行通信口,2 個讀寫口線,at89s52 可以按照常規方法進行編程,但不可以在線編程(s 系列的才支持在線編程)。其將通用的微處理器和 flash 存儲器結合在一起,特別是可反復擦寫的 flash 存儲器可有效地降低開發成本。at89s52 有 pdip、pqfp/tqfp 及 plcc 等三種封裝形式,以適應不同產品的需求。主要功9 能特性:兼容 mcs51 指令系統 8k 可反復擦寫(1000 次)flash rom 32 個雙向 i/o 口 256x8bit 內部 ram 3 個 16 位可編程定時/計數器中斷 時鐘頻率 0-24mhz
21、 2 個串行中斷 可編程 uart 串行通道 2 個外部中斷源 共 6 個中斷源 2 個讀寫中斷口線 3 級加密位 低功耗空閑和掉電模式 軟件設置睡眠和喚醒功能圖 5 at89s52 的外部引腳10 圖 6 at89s52 內部結構主要特性:與 mcs-51 兼容4k 字節可編程 flash 存儲器壽命:1000 寫/擦循環數據保留時間:10 年全靜態工作:0hz-24mhz三級程序存儲器鎖定1288 位內部 ram32 可編程 i/o 線兩個 16 位定時器/計數器5 個中斷源可編程串行通道低功耗的閑置和掉電模式片內振蕩器和時鐘電路管腳說明:vcc:供電電壓。gnd:接地。p0 口:p0 口
22、的 8 位皆為漏極開路輸出簡稱 od;內部無上拉電阻,所以執行輸出功能時,外部必須接上拉電阻;若要實現輸入功能,必須先輸入高電平“1” ,才能讀取該端口所連接的外部數據;若系統連接外部存儲器,則p0 可作為地址總線和數據總線的多功能引腳,此時11 內部具有上拉電阻,無需外接上拉電阻。p1 口:p1 口為 8 位,可位尋址的雙向 i/o 口;內部具備約 30 千歐姆的上拉電阻,實現輸出功能時,不需要連接外部上拉電阻;實現輸入功能時,必須先輸入高電平“1” ,才能讀取該端口所連接的外部數據;p1 口的 8 位類似漏極開路輸出,但內部已接上上拉電阻,每個引腳可驅動 4 個 ls 型 ttl 負載。p
23、2 口:p2 口為 8 位、可位尋址的雙向輸入/輸出口,內部具備約 30 千歐姆的上拉電阻,實現輸出功能時,不需要連接外部上拉電阻;實現輸入功能時,必須先輸入高電平“1” ,才能讀取該端口所連接的外部數據;p2 口的 8 位類似漏極開路輸出,但內部已接上上拉電阻,每個引腳可驅動 4 個 ls 型 ttl 負載;若系統連接外部存儲器,而外部存儲器的地址線超過了 8根時,則 p2 可作為地址總線(a8-a15)的引腳。p3 口:p3 口為 8 位,可位尋址的雙向 i/o 口;內部具備約 30 千歐姆的上拉電阻,實現輸出功能時,不需要連接外部上拉電阻;實現輸入功能時,必須先輸入高電平“1” ,才能讀
24、取該端口所連接的外部數據;p3 口的 8 位類似漏極開路輸出,但內部已接上上拉電阻,每個引腳可驅動 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外部數據存儲器寫選通p3.7/rd外部數據存儲器讀選通4.34.3系統總體原理圖系統總體原理圖12 圖 7 系統原理圖4.44.4
25、各部分硬件簡介各部分硬件簡介4.4.14.4.1 按鍵部分按鍵部分鍵盤電路:鍵盤在單片機應用系統中,實現輸入數據、傳送命令的功能,是人工干預的主要手段。鍵盤分兩大類:編碼鍵盤和非編碼鍵盤。鍵盤是實現人機對話的必要設備,用戶可用鍵盤向計算機輸入數據或命令。本系統采用 3*3 矩陣鍵盤接口,矩陣連接又稱行列式連接,它是指每個按鍵按行列式的形式排列,每一行公用一根 i/o 口線,每一列也共有一根 i/o 口線,從而減少 i/o 口線的效果。我們規定,行線作為輸入,列線作為輸出,電路中,通過單片機i/o 口給行線一直輸入低電平。如果沒有按鍵按下,則列線上輸出的都是高電平;如果有鍵按下,則列線上肯定會輸
26、出低電平。單片機只要檢測到列線上不都為高,則說明有鍵被按下。按鍵功能介紹:k0 鍵:實現對 a 隊加 1 分的功能;k1 鍵:實現對 a 隊加 2 分的功能;13 k2 鍵:實現對 a 隊減 1 分的功能;k3 鍵:實現對 b 隊加 1 分的功能;k4 鍵:實現對 b 隊加 2 分的功能;k5 鍵:實現對 b 隊減 1 分的功能;k6 鍵:實現對比賽的開始和暫停;k7 鍵:實現對犯規的比賽暫停和 24 秒重置;k8 鍵:實現對比賽時間的設置。圖 8 按鍵控制電路4.4.24.4.2 顯示部分顯示部分本設計采用 lcd1602 實現顯示功能, 1602 是 16 字符*2 行的字符型 lcd 顯
27、示器,它由 32個字符點陣塊組成,每個字符點陣塊由 57 或 510 個點陣組成,可以顯示 ascii 碼表中的所有可視的字符。它內置了字符產生器 rom(cgrom)、字符產生器 ram(cgram)和顯示數據ram(ddram) 。1602 液晶顯示器以其微功耗、體積小、顯示內容豐富、超薄輕巧的諸多優點,在袖珍式儀表和低功耗應用系統中得到越來越廣泛的應用。1) lcd1602 引腳及功能 表 2 lcd1602 引腳功能 14 1、2 組電源,一組是模塊的電源,一組是背光板的電源,均為 5v 供電。2、vl 是調節對比度的引腳調節此腳上的電壓可以改變黑白對比度。3、rs 是很多液晶上都有的
28、引腳,是命令/數據選擇引腳,腳電平為高時表示將進行數據操作,為低時表示進行命令操作。4、r/w 也是很多液晶上都有的引腳,是讀寫選擇端,該腳電平為高是表示要對液晶進行讀操作,為低時表示要進行寫操作。5、e 同樣很多液晶模塊有此引腳,通常在總線上信號穩定后給一正脈沖通知把數據讀走,在此腳為高電平的時候總線不允許變化。6、d0d7 8 位雙向并行總線,用來傳送命令和數據。7、bla 是背光源正極,blk 是背光源負極。2)lcd1602 基本操作時序。表 3 lcd1602 基本操作時序讀狀態輸入rs=l,r/w=h,e=h輸出d0d7=狀態字寫指令輸入rs=l,r/w=l,d0d7=指令碼,e=
29、高脈沖輸出無讀數據輸入rs=h,r/w=h,e=h輸出d0d7=數據寫數據輸入rs=h,r/w=l,d0d7=數據,e=高脈沖輸出無對此液晶操作主要有以下幾種方法。編號符號引腳說明編號符號引腳說明1vss電源地9d2data i/o2vdd電源正極10d3data i/o3vl液晶顯示偏壓信號11d4data i/o4rs數據/命令選擇端(h/l)12d5data i/o5r/w讀/寫選擇端(h/l)13d6data i/o6e使能信號14d7data i/o7d0data i/o15bla背光源正極8d1data i/o16blk背光源負極15 1 寫命令(包括但不限于初始化、調節顯示位置、
30、清除顯示)2 寫數據 (把一個字符的 asc 碼寫入液晶使其顯示)3 讀忙信號(液晶乃低速設備,每次操作前應該測試忙信號,確定其不忙時再操作3)1602lcd 的指令碼(命令碼)此液晶上電的時候需要初始化,典型的指令碼是 38h,也就是上電的時候需要 調用 void write_cmd(unsigned char command)這個函數寫指令碼,用法是 write_cmd(0 x38);執行完這個函數可以把液晶初始化成 16x2 顯示 5x7 的點陣 8 位總線接口。它的讀寫操作、屏幕和光標的操作都是通過指令編程來實現的。 (說明:1 為高電平、0 為低電平) 。 指令 1:清顯示,指令碼
31、01h,光標復位到地址 00h 位置。 指令 2:光標復位,光標返回到地址 00h。 指令 3:光標和顯示模式設置 i/d:光標移動方向,高電平右移,低電平左移 s:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效。 指令 4:顯示開關控制。 d:控制整體顯示的開與關,高電平表示開顯示,低電平表示關顯示 c:控制光標的開與關,高電平表示有光標,低電平表示無光標 b:控制光標是否閃爍,高電平閃爍,低電平不閃爍。 指令 5:光標或顯示移位 s/c:高電平時移動顯示的文字,低電平時移動光標。指令 6:功能設置命令 dl:高電平時為 4 位總線,低電平時為 8 位總線 n:低電平時為單行顯
32、示,高電平時雙行顯示 f: 低電平時顯示 5x7 的點陣字符高電時顯示 5x10 的點陣字符。 , 指令 7:字符發生器 ram 地址設置。 指令 8:ddram 地址設置。 指令 9:讀忙信號和光標地址 bf:為忙標志位,高電平表示忙,此時模塊不能接收命令或者數據,如果為低電平表示不忙。 指令 10:寫數據。 指令 11:讀數據。 液晶顯示模塊是一個慢顯示器件,所以在執行每條指令之前一定要確認模塊的忙標志為低電平,表示不忙,否則此指令失效。液晶 lcd 指令見表 3:表 4 液晶 lcd 指令16 指令rsrwd7d6d5d4d3d2d1d0清楚顯示0000000001光標返回0000000
33、01*置輸入模式00000001i/ds顯示開關顯示0000001dcb光標和字符移位000001s/cr/l*置功能00001dlnf*置字符發生寄存器地址0001字符發生存儲器地址 agg置數據存儲器器地址001顯示數據存儲器地址 add讀忙標志或地址01bf計數器地址 ac寫數 cgram 或 ddram10要寫的數據從 cgram 或 ddram 讀數11讀出的數據4.4.34.4.3 系統復位電路部分系統復位電路部分mcs-51 單片機通常采用上電復位、按鈕電平復位、外部脈沖復位、上電加按鈕電平復位、程序運行監視復位等方式。本設計采用的是上電加按鈕電平復位,電路圖如圖所示,是上電自動
34、復位與按鈕電平復位的組合。上電復位利用電容充電來實現,即上電瞬間 rst/vpd 端的電位與 vcc 相同,隨著充電電流的減少, rst/vpd 的電位下降,最后被鉗位在 0 伏,按鈕電平復位,當按鈕按下后,電源 vcc 同過電阻施加在單片機復位端 rst/vpd 上,實現單片機的復位。17 圖 9 復位電路4.4.44.4.4 元器件的選擇元器件的選擇硬件部分的設計是整個設計的一個很重要的部分。在進行硬件設計時,首先要確定元器件,并且知道這些元器件的工作原理和功能,然后才可以進行設計。本設計的主要硬件電路包括三個部分:計時顯示電路、計分顯示電路、鳴笛警示電路。一般來說,對硬件部分的設計都應包
35、括繪制 sch 原理圖和 pcb 印刷圖,由于本次設計我主要負責軟件部分的設計,硬件參與得不是很多,所以硬件部分元器件的功能就不詳細介紹了。本設計主要選擇了以下元器件:如表 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 系統軟件設計系統軟件設計5.15.1 軟件總體設計方案軟件總體設計方案籃球比賽計時計分器軟件設計部分采用模塊化程序設計,程序部分由主程序、t0 中斷程序、t1 中斷程序、計時計分刷新顯示子程序、鍵盤掃描控制子程序、延時子程序等組成。s2鍵按下光標標志位gb調整a隊分數 調
37、整b隊分數 s3按下加1 s4按下減1gb=1gb=2圖 10 分數刷新子程序19 開始初始化顯示設置時間key3按下與否n刷新顯示、暫停、等待開始key0等于1n倒計時開始定時定時時間到否n暫停鍵按下ys2/s3/s4是否按下對應兩隊分數調整顯示n報警顯示y第四節結束?結束ynyyy 圖 11 主程序流程圖5.25.2 系統軟件框圖系統軟件框圖本系統軟件采用模塊化設計方法。整個系統由初始化模塊、倒計時模塊、液晶顯示模塊以及鍵盤模塊組成程序流程圖如圖 4 所示:20 圖 12 系統程序流程圖此設計由按鍵控制系統的開始,當系統開始時,由單片機控制開始進行每節 12m 的倒計時,當比賽出現犯規或其
38、它要求請求暫停時,由按鍵控制比賽暫停,此時,時間暫停,當出現 24s違例時,系統自動暫停計時,并發出報警;比賽比分的加減完全有按鍵控制;另外,當每節比賽結束后,自動跳至休息時間倒計時,第一節結束有 2m 的休息時間,第二節結束有 10m 的休息時間,第三節結束有 2m 的休息時間。此設計的功能完全符合現實中的籃球比賽的計時計分要求,設計更加合理。5.35.3 軟件介紹軟件介紹5.3.15.3.1 keilkeil21 單片機開發中除必要的硬件外,同樣離不開軟件,我們寫的匯編語言源程序要變為 cpu 可以執行的機器碼有兩種方法,一種是手工匯編,另一種是機器匯編,目前已極少使用手工匯編的方法了。機
39、器匯編是通過匯編軟件將源程序變為機器碼,用于 mcs-51 單片機的匯編軟件有早期的 a51,隨著單片機開發技術的不斷發展,從普遍使用匯編語言到逐漸使用高級語言開發,單片機的開發軟件也在不斷發展,keil 軟件是目前最流行開發 mcs-51 系列單片機的軟件,這從近年來各仿真機廠商紛紛宣布全面支持 keil 即可看出。keil 提供了包括 c 編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器等在內的完整開發方案,通過一個集成開發環境(uvision)將這些部份組合在一起。運行 keil 軟件需要 pentium 或以上的 cpu,16mb 或更多ram、20m 以上空閑的硬盤空間、wi
40、n98、nt、win2000、winxp 等操作系統。掌握這一軟件的使用對于使用 51 系列單片機的愛好者來說是十分必要的,如果你使用 c 語言編程,那么 keil 幾乎就是你的不二之選,即使不使用 c 語言而僅用匯編語言編程6,其方便易用的集成環境、強大的軟件仿真調試工具也會令你事半功倍。(1)系統概述keil c51 是美國 keil software 公司出品的 51 系列兼容單片機 c 語言軟件開發系統,與匯編相比,c 語言在功能上、結構性、可讀性、可維護性上有明顯的優勢,因而易學易用。用過匯編語言后再使用 c 來開發,體會更加深刻。keil c51 軟件提供豐富的庫函數和功能強大的集
41、成開發調試工具,全 windows 界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到 keil c51 生成的目標代碼效率非常之高,多數語句生成的匯編代碼很緊湊,容易理解。在開發大型軟件時更能體現高級語言的優勢。下面詳細介紹 keil c51 開發系統各部分功能和使用。(2)keil c51 單片機軟件開發系統的整體結構c51 工具包的整體結構,如圖(1)所示,其中 uvision 與 ishell 分別是 c51 for windows 和 for dos 的集成開發環境(ide),可以完成編輯、編譯、連接、調試、仿真等整個開發流程。開發人員可用 ide 本身或其它編輯器編輯
42、 c 或匯編源文件。然后分別由 c51 及 a51編譯器編譯生成目標文件(.obj)。目標文件可由 lib51 創建生成庫文件,也可以與庫文件一起經 l51 連接定位生成絕對目標文件(.abs)。abs 文件由 oh51 轉換成標準的 hex 文件,以供調試器 dscope51 或 tscope51 使用進行源代碼級調試,也可由仿真器使用直接對目標板進行調試,也可以直接寫入程序存貯器如 eprom 中。使用獨立的 keil 仿真器時,應該注意:* 仿真器標配 11.0592mhz 的晶振,但用戶可以在仿真器上的晶振插孔中換插其他頻22 率的晶振。 * 仿真器上的復位按鈕只復位仿真芯片,不復位目
43、標系統。 * 仿真芯片的 31 腳(/ea)已接至高電平,所以仿真時只能使用片內 rom,不能使用片外rom;但仿真器外引插針中的 31 腳并不與仿真芯片的 31 腳相連,故該仿真器仍可插入到擴展有外部 rom(其 cpu 的/ea 引腳接至低電平)的目標系統中使用。5.3.25.3.2 proteusproteusproteus 軟件4是一種低投資的電子設計自動化軟件,提供可仿真數字和模擬、交流和直流等數千種元器件和多達 30 多個元件庫。proteus 軟件提供多種現實存在的虛擬儀器儀表。此外,proteus 還提供圖形顯示功能,可以將線路上變化的信號,以圖形的方式實時地顯示出來。這些虛擬
44、儀器儀表具有理想的參數指標,例如極高的輸入阻抗、極低的輸出阻抗,盡可能減少儀器對測量結果的影響,proteus 軟件提供豐富的測試信號用于電路的測試。這些測試信號包括模擬信號和數字信號。提供 schematic drawing、spice 仿真與 pcb 設計功能,同時可以仿真單片機和周邊設備,可以仿真 51 系列、avr、pic 等常用的 mcu,并提供周邊設備的仿真,例如 373、led、示波器等。proteus 提供了大量的元件庫,有 ram、rom、鍵盤、馬達、led、lcd、ad/da、部分 spi 器件、部分 iic 器件,編譯方面支持 keil 和 mplab 等編譯器。該軟件的
45、特點: 全部滿足我們提出的單片機軟件仿真系統的標準,并在同類產品中具有明顯的優勢。具有模擬電路仿真、數字電路仿真、單片機及其外圍電路組成的系統的仿真、rs-232 動態仿真、c 調試器、spi 調試器、鍵盤和 lcd 系統仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發生器等。 目前支持的單片機類型有:68000 系列、8051 系列、avr 系列、pic12 系列、pic16 系列、pic18 系列、z80 系列、hc11 系列以及各種外圍芯片。 支持大量的存儲器和外圍芯片。總之該軟件是一款集單片機和 spice 分析于一身的仿真軟件,功能極其強大 ,可仿真 51、avr、pic。5
46、.45.4 時間顯示設計時間顯示設計23 系統要實現時間的計時功能,所以要用定時/計數器的定時功能進行時間處理,在本程序設計中,用一個定時 50ms 的時間中斷函數 void js_50ms(void) ,一個時間處理函數 void ptime(uchar) 。由于時間顯示屏用的是 4 位的數碼管進行顯示,用動態掃描顯示驅動,用 void js_scan(void)處理動態掃描顯示。時間預置用按鍵實現,首先進行按鍵判斷處理,用 void key_y(void)函數處理。嵌入式籃球計分屏實現時間顯示屏的部分源程序如下:/*設置場次比賽時間*/void key_y(void)if(yk1=0) /
47、初始狀態,分鐘的十位為 0delay(1); /延時去抖動fs=fs+1; /分十位加 1 分fy=fs*10+fg; /求出預置時間的分鐘值f=fy; /中間變量if(yk2=0) /初始狀態,分鐘的個位為 0delay(1); /延時去抖動fg=fg+1; /分個位加 1 分fy=fs*10+fg; /求出預置時間的分鐘值f=fy; /中間變量js_scan();/*t0 中斷服務函數,每隔 50ms 產生一次中斷*/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); /調用時間處理函數/*時間處理函數*/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-; /分鐘開始在預設的比賽時間基礎上倒計時fs=f
49、/10; /分鐘的十位fg=f%10; /分鐘的個位if(f=0) /分鐘數倒計時到 0tr0=0; /時間到,停止計時/*數碼管動態掃描顯示*/void js_scan(void)uchar j;for(j=0;j=5;j+)s4=0;p0=led_nummg;delay(1);s4=1; /*將秒鐘的個位傳遞給譯碼器,通過按鍵,實現邊沿跳變,并把結果譯成相應的段碼顯示出來*/s3=0;p0=led_numms;delay(1);s3=1; /*將秒鐘的十位傳遞給譯碼器,通過按鍵,實現邊沿跳變,并把結果譯成相應的段碼顯示出來*/s2=0;p0=led_numfg;delay(1);s2=1;
50、 /*將分鐘的個位傳遞給譯碼器,通過按鍵,實現邊沿跳變,并把結果譯成相應的段碼顯示出來*/s1=0;p0=led_numfs;delay(1);s1=1; /*將分鐘的十位傳遞給譯碼器,通過按鍵,實現邊沿跳變,并把結果譯成相應的段碼顯示出來*/5.55.5 計分顯示設計計分顯示設計本系統是利用按鍵來實現兩隊的計分功能的,當按一次加分鍵,在程序中要用兩個整形的變量作為 a、b 隊的分值計分器,程序里用 sum 及 sum1 分別表示 b 和 a 隊的分值。如分別要在數碼管的每位上動態掃描顯示出來,就必須對兩隊所得的分數進行分位計算。程序里分別用 q、b、s、g 表示 b 隊顯示屏的千位、百位、十
51、位、個位;用 q1、b1、s1、g1 表示 a 隊顯示屏的千位、百位、十位、個位。通過按鍵判斷處理,判斷是加分還是減分,用函數void key_if(void)來實現,用 void jf_scan(void)函數進行動態掃描顯示分值。嵌入式籃球計分屏計分顯示的部分實現程序如下:/*數碼管動態掃描顯示*/void jf_scan(void)uchar j;25 for(j=0;j=1) /減分按鍵按下并且中得分不得少于 1 分delay(1); /延時去抖動sum=sum-1; /b 隊減 1 分if(key3=0) /當按鍵按下時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 系統調試系統調試系統調試分
53、為軟件調試和硬件調試,單片機系統的硬件調試和軟件調試是不能分開的,許多硬件錯誤是在軟件調試中被發現和糾正的。但通常是先排除明顯的硬件故障以后,再和軟件結合起來調試以進一步排除故障。可見硬件的調試是基礎,如果硬件調試不通過,軟件設計則是無從做起。6.16.1 軟件調試軟件調試軟件調試主要是運用 keil 和 proteus 完成。在寫好源程序,畫出原理圖之后,在電腦上進行軟件仿真。keil 的使用簡介:先建一個新的工程,選擇處理器,這里選擇 at89s52;接下來可以新建一個文檔用來編輯程序,編輯完存為.asm(匯編源文件)或 .h(c 語言頭文件)或.c(c 語言實現文件)即可;接下來把保存的
54、.asm, .c 或.h 文件加入到工程里即可。然后進行工程配置。點擊 project 菜單下的 options for target target 1 。 在彈出對話框的 target 項里輸入晶振為 12m,然后勾上 use on-chip rom。在 output 項里勾上 create hex file。最后編譯程序,keil 會自動為你生成.hex 文件。將系統原理圖在 proteus 環境下畫好,然后運用 proteus 進行仿真,觀察其功能實現情況。設計仿真圖如下:proteus 軟件設計仿真原理圖如下圖所示:28 29 圖 13 proteus 仿真圖啟動籃球計時計分器,運行,
55、計時部分立即開始工作計時,proteus 軟件仿真計時顯示如下計分(甲隊 23 分、乙隊 13 分):3、復位操作:按復位鍵,復位后即可進行新一輪比賽計時計分工作。圖 14 復位電路圖6.26.2 硬件調試硬件調試 硬件方面主要是對電路板焊接技術以及布線的整體把握,電路板做好后,經過對單片機燒寫程序、調試等一系列工序,硬件達到了預期的效果,各個按鈕均能實現其預期功能。6.36.3 故障預測及解決辦法故障預測及解決辦法1即使通過了 protel 軟件的電路原理圖設計,但在整個系統焊制過程中,發現顯示器在工作過程中溫度過高,而且產生很大熱量。原因分析:電路中通過顯示器的電流過大,是導致產生過多熱的
56、原因。解決方法:可以在顯示器接地端口接入適當電阻,起到限流作用。2在調試系統過程中,發現當有按鍵按下的時候,會產生很多信號,例如,在加分時,按下按鍵會有多個輸入信號,這樣和期望值不符。原因分析:由于機械按鍵有彈性,在按下或者彈起時會出現抖動,從最初按下到穩定要經30 過幾毫秒的時間,會產生前沿抖動和后沿抖動。解決辦法:解除抖動有硬件和軟件解抖:硬件消抖是利用加支抖動電路避免產生抖動信號;短劍消抖是利用數字濾波技術來消抖。本設計中采用軟件消抖技術,在采集按鍵信號時,加如10ms 的延時程序,即可消除抖動。3硬件電路板顯示器顯示亂碼。原因分析:可能是顯示器損壞,也可能是焊接的問題,又或者是單片機信
57、號錯誤。解決辦法:檢測了電路之后發現電路的焊接有虛焊,重新焊接還是發現亂碼。繼續檢查才發現原來程序編寫時字型碼編寫錯誤,改正后顯示正確。6.46.4 籃球比賽計時計分系統的功能實現籃球比賽計時計分系統的功能實現一場正規的籃球賽分為 4 小節,每節 12 分鐘。打開電源,此時 lcd1602 第一行分別顯示ab 兩隊的計分欄“00 vs 00” ,24 秒倒計時, lcd1602 顯示第二行為事先設置好的籃球比賽的比賽時間“12:00:00” , 當前節數“no.1” ,3*3 矩陣鍵盤中分別設置有為 a 和 b 隊加分和減分的按鍵,開始/暫停按鍵。(1)比賽加分:當按下鍵盤第一行鍵值為“0”
58、、 “1”的鍵時,對應的分別為 a 隊加上 1 分、2 分。同樣,當按下鍵盤第二行的鍵值為“3” 、 “4”的鍵時,對應的分別為 b 隊加上 1 分、2分。(2)比賽減分:鍵值為“2”和“5”的鍵則是分別為 a 隊和 b 隊的減分的鍵,根據按鍵的次數,減去相應的分數。(3)開始/暫停:鍵值為“6”的鍵為比賽開始/暫停計時按鈕,按下“6”鍵之后,比賽時間和 24 秒將以倒計時的方式呈現,再次按下,則為暫停狀態。(4)對犯規的比賽暫停和 24 秒重置:鍵值為“7”的鍵為對犯規的比賽暫停和 24 秒重置按鈕,按下“7”鍵后,比賽時間暫停,并且 24 秒倒計時復位(5)設置比賽時間:鍵值為“8”的鍵為
59、比賽時間設置鍵,按下“8”鍵后,lcd1602 顯示”st:” ,可根據情況自行設置比賽時間,或為加時賽設置時間。(6)復位:“reset”為復位鍵,按下可以實現復位。復位后,lcd1602 顯示初始狀態。31 7 7 課程設計體會課程設計體會本次單片機課程設計我選擇了“籃球計時計分器”這一題目,通過這次課程設計,自己認真復習單片機,查閱和瀏覽了很多的相關資料, 并且提高了使用 kile3 和 proteus 軟件的熟練程度。通過這次課程設計的學習與思考,認真總結,我覺得單片機課程設計主要包括四方面的內容:軟件部分設計、硬件部分設計、運用 kile3 及 proteus 軟件仿真及寫出課程設計
60、報告。這四部分內容看似簡單,但實際操作起來卻實不輕松。在單片機應用系統設計時,必須先確定該系統的技術要求,這是系統設計的依據和出發點,整個設計過程都必須圍繞這個技術要求來工作。軟件部分的設計,我按照模塊化的思想,一塊一塊的疊加。在這次單片機系統的課程設計中,我學到了很多,尤其是在調試程序的過程中,我遇到了很多問題,自己摸索并一個一個的克服,自信心進一步得到了加強,證明我并不是只會學課本而不會用的那種學生。我學會了更多的查錯方法和仿真知識。這次課程設計,我又一次的學習了 c 語言的編程,發現自己的確很喜歡編程,也更清楚的認識到自己所學的不足,我學到了很多新的知識,同時也加深了對以前所學知識的理解
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業設計與制造技術創新
- 工業領域的能源管理培訓教程
- 工作中的目標管理與實現路徑
- 工作生活的平衡技巧探討與應用實例
- 工業領域新能源技術的推廣
- 工作與生活平衡的技巧
- 工程流體力學中的數學模型與數值模擬方法研究
- 工作匯報的快速制作技巧
- 工程索道設計與施工技術管理
- 工程機械的冷卻系統設計與研究
- 后羅拉過橋搖臂-課程設計說明書
- 《Python少兒編程》PPT課件(共11章)第二章 Python 編程基礎
- 配對樣本t檢驗表格
- GB/T 91-2000開口銷
- 青花瓷中國風ppt
- 2021年汽車吊載人吊籃作業安全專項措施
- 質量管理之CAPA教學課件
- 泌尿外科健康教育2膀胱沖洗健康宣教
- 焊接件通用技術要求
- 星子港件雜貨港區總平面布置與碼頭結構設計
- 水墨印刷機操作規程
評論
0/150
提交評論