版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 單片機系統(tǒng)課程設計報告學 院(部): 電氣與信息工程學院 專 業(yè): 電氣工程及其自動化 學 生姓 名: 指 導老 師: 班 級: 學號 2013年12月單片機系統(tǒng)課程設計報告一:系統(tǒng)設計要求:1最大計數(shù)值為:99時59分59秒9/10秒,約100小時。2系統(tǒng)采用2個按鍵控制輸入,其中一個按鍵用作系統(tǒng)清0,另一個按鍵用作秒表的啟動/停止。3. 系統(tǒng)采用7個LED數(shù)碼管實現(xiàn)計時顯示。4. 電路原理圖:使用protel或visio或proteus 繪制。 5. 編程思路,用visio畫程序設計流程圖,且用文字描述二:系統(tǒng)設計: 1:總體方案的設計數(shù)字秒表具有顯示直觀、讀取方便、精度高等優(yōu)點,在計時
2、中廣泛應用。本設計中用單片機和數(shù)碼管組成數(shù)字秒表,力求結構簡單。設計中包括硬件電路的設計和系統(tǒng)程序的設計。硬件電路主要有主控制器、控制按鈕與顯示電路組成。主控制器采用單片機AT89C51,顯示電路采用七位共陽極數(shù)碼管顯示計時時間。2.硬件設計2.1.:輸出設計: 設計要求在數(shù)碼管上進行數(shù)據(jù)顯示,輸出硬件設計可以采用1個BCD七段譯碼器74LS47驅動數(shù)碼管的段選端,輸出字形信息,采用38譯碼器輸出作為動態(tài)掃描時數(shù)碼管的位選痛信號。這樣在一定程度上節(jié)約了單片機的硬件資源,也簡化了軟件設計時的任務量。在硬件設計時還應當注意一下問題:(1) 數(shù)碼管接口方法與動態(tài)掃描原理;(2) 時、分、秒計數(shù)單元地
3、址的分配及BCD碼的調整方法;(3) 按鍵識別與消除抖動的方法。2.2:顯示設計: 數(shù)碼管顯示可以分為靜態(tài)顯示和動態(tài)顯示兩種。由于本設計需要采用數(shù)碼管顯示時間,如果靜態(tài)顯示則占用的口線多,硬件電路復雜,所以采用動態(tài)顯示。 秒表設計原理圖如圖1.0所示。單片機采用通用的AT89C51芯片,顯示器為7個共陽極LED數(shù)碼管,用1個BCD七段譯碼器74LS47驅動數(shù)碼管(74LS47的輸入為BCD碼,其輸出級為集電極開路輸出,可直接驅動七段數(shù)碼管,具有首尾消零等特點),用38譯碼器74LS138的輸出作為動態(tài)掃描時數(shù)碼管的選通信號。因為采用了上述兩個芯片,所以在對數(shù)碼管進行掃描顯示時,只需要單片機的7
4、條I/O線就能完成顯示功能。 電路圖中采用P1.0P1.3作為顯示數(shù)據(jù)值的輸出,連接在BCD七段譯碼器74LSs4的1310管腳上(譯碼器74LS47的BCD碼輸入端);P1.4P1.6作為掃描值的輸出端連接在3874LS138譯碼器的輸入端(74LS138的A,B,C)。因此,寫程序應將P1口的高四位為掃描值,低四位為顯示數(shù)據(jù)值(分離BCD碼)。單片機的P0.0P0.1分別接在兩個開關上,以控制啟動/停止和清零。秒表系統(tǒng)功能如下:(1) 開機時,秒表顯示從00:00:00:0開始計時。(2) 按鍵S1控制秒表的啟動/停止。(3) 按鍵S2控制秒表的清零。硬件電路按總體框圖進行設計:74LS4
5、7AT89C51單片機控制開關七位數(shù)碼管74LS138 圖1:硬件電路總體框圖三:系統(tǒng)總體電路的設計 AT89C51單片機為主電路的核心部分,各個電路均與單片機相連,由單片機統(tǒng)籌協(xié)調各個電路的運行工作。開始鍵和暫停鍵使用了檢測的方法,所以需要連到單片機的P0.0和P0.1引腳上,對這兩個I/O口進行循環(huán)掃描,檢測是否按下。顯示電路由七位數(shù)碼管組成,采用動態(tài)顯示方式,因此有8位段控制和7位位控制,并且通過74LS47譯碼器進行控制8位段控制,接P1口,P1.0P1.3分別控制數(shù)碼管的a b c d e f g 顯示,位控制有38段譯碼器74LS138進行位控制接在P1.4P1.6的I/O口上,對
6、數(shù)碼管實現(xiàn)位控制。系統(tǒng)總體電路如下圖所示: 圖2: 總體電路圖四:軟件設計4.1主程序設計本系統(tǒng)程序主要模塊由主程序、定時中斷服務程序、顯示子程序和掃描子程序組成。其中主程序是整個程序的主體??梢詫Ω鱾€中斷程序進行調用。協(xié)調各個子程序之間的關系。 主程序:首先進行初始化。設置秒表的計時初值為00:00:00:0,設置T0高低位初值,且允許T0中斷。然后檢測S1S2是否按下,當S1按下時,啟動T0進行4ms定時,開始進行計時。系統(tǒng)主程序流程圖: N主程序置顯示初值:00.00.00.0置T0為4ms定時開T0中斷Y 啟動,停止,清零S1S2按下 圖3: 主程序流程圖4.2:定時器T0中斷服務子程
7、序: 中斷服務子程序的作用是進行“時”、“分”、“秒”的計時與顯示。定時器T0用于定時,定時周期設為4ms,中斷累計25次(即0.1秒),對0.1秒計數(shù)單元進行加1操作。時間計數(shù)值分別存放在2DH(0.1秒)、2CH(秒)、2BH(分)、2AH(時)內存單元中。在計數(shù)單元中采用組合BCD碼計數(shù),0.1秒是滿10進位,時、分、秒滿60進位。0.1S計時采用內部中斷方式計時,通過內部中斷設置4ms的定時溢出中斷,單片機的頻率為12MHz,則機器周期為1us,要實現(xiàn)4ms的定時,在4ms內需要計數(shù)N次: :N=4ms1us=4000次令定時器/計數(shù)器0工作方式1下,此時計數(shù)初值X為: :X=最大計數(shù)
8、值M-計數(shù)次數(shù)N =65536-4000=61536=0F060H即向TH0寫入計數(shù)初值0F0H,向TL0寫入計數(shù)計數(shù)初值60H。TMOD初始化:TMOD=00000001B=01H。GATE=0,C/T=0,M1=0,M0=1.TCON初始化:TR0=1,啟動T0。IE初始化:開放中斷EA=1,允許定時器T0中斷ET0=1。定時器T0中斷服務程序流程圖如圖所示:定時器中斷入口重裝計數(shù)初值中斷次數(shù)加1中斷次數(shù)到25嗎中斷次數(shù)清零,0.1秒位加一0.1秒位到10嗎0.1秒位清零,秒鐘位加一秒鐘位到60嗎 秒鐘位清零,分鐘位加一分鐘位到60嗎分鐘位清零,小時位加一小時位到99嗎時位清零中斷返回 圖
9、4:TO中斷服務流程圖顯示子程序DISP:DISP子程序的作用是分別將時間計數(shù)單元2DH(0.1秒)、2CH(秒)、2BH(分)、2AH(時)中的十進制時間值(組合BCD碼)轉化為個位和十位(分離BCD碼)并分別存放在顯示緩沖中。顯示緩沖區(qū)的地址為20H26H。其中20H中存放0.1秒數(shù)據(jù),21H22H中存放秒數(shù)據(jù),23H24H中存放分鐘數(shù)據(jù),25H26H中存放小時數(shù)據(jù)。由于每一個地址單元內均為分離BCD碼,用BCD七段譯碼器74LS47直接進行譯碼,因此不需要軟件方式對BCD碼數(shù)據(jù)進行譯碼。 掃描子程序SCAN:SCAN的作用是把顯示緩沖區(qū)中的數(shù)據(jù)依次送往顯示器顯示。把掃描值作為高4位,顯示
10、數(shù)值作為低4位,輸出到P1口,以完成顯示。因為采用38譯碼器74LS138作為掃描輸出,故用28H單元存放掃描指針,即28H單元中存放的是數(shù)碼管的序號。顯示時,只需取出20H26H某一地址中的數(shù)據(jù),并從P1口的低4位輸出,同時P1口的高四位作為掃描值輸出,這樣就能保證數(shù)碼管正常工作。4.3 系統(tǒng)調試Proteus ISIS是英國Labcenter公司開發(fā)的電路分析與實物仿真軟件,它可以仿真、分析各種模擬器件和集成電路。該軟件的主要特點為:實現(xiàn)了單片機仿真和SPICE電路仿真相結合的功能,支持目前主流單片機系統(tǒng)的仿真,提供了軟件調試的功能,具有強大的原理圖繪制功能??傊撥浖且豢罴瘑纹瑱C和S
11、PICE分析于一身的仿真軟件,功能極其強大。在電子領域中起到了很大的作用,它的出現(xiàn)仿真不需要先焊接電路板,可以先仿真調試通過之后再焊接電路,節(jié)省了不少在硬件調試上花費的時間。打開已經畫好的Proteus DSN文件,雙擊圖中的AT89C51芯片,就彈出一個窗口,在program file項中通過路徑選擇在keil中生成hex文件,雙擊選中后確定,這樣仿真圖中的AT89C51芯片就已經讀取了本設計中的hex文件。然后進行仿真,仿真圖如下所示: 圖5:proteus仿真圖五:源程序ORG 0000HJMP STARTORG 000BHJMP TIM0START:MOV SP,#70HMOV 28H
12、,#00MOV 2AH,#00HMOV 2BH,#00MOV 2CH,#00MOV 2DH,#00 MOV P1,#0F0HMOV R5,#1MOV TMOD,#01HMOV TH0,#0F0HMOV TL0,#60HMOV IE,#82HMOV R4,#25LOOP:JB P0.0,N2CALL DELAYSETB TR0MOV A,R5CPL AMOV R5,AN1:JNB P0.0,$CALL DELAYN2:JB P0.1,LOOPCALL DELAYCJNE R5,#0,LOOPCLR TR0JMP START N3:JNB P0.1,$CALL DELAYJMP LOOPTIM0:
13、MOV TH0,#0F0HMOV TL0,#60HPUSH ACC PUSH PSWDJNZ R4,X2MOV R4,#25CALL CLOCK CALL DISPX2:CALL SCANPOP PSWPOP ACCRETISCAN:MOV R0,#28HCJNE R0,#7,X3MOV R0,#00X3:MOV A,R0ADD A,#20HMOV R1,AMOV A,R0SWAP A ORL A,R1MOV P1,AINC R0RETCLOCK:CJNE R5,#1,X4MOV A,2DHADD A,#1DA AMOV 2DH,ACJNE A,#10H,X4MOV 2DH,#00MOV A,
14、2CHADD A,#1DA AMOV 2CH,ACJNE A,#60H,X4MOV 2CH,#00MOV A,2BHADD A,#1DA A MOV 2BH,ACJNE A,#60H,X4MOV 2BH,#00MOV A,2AHADD A,#1MOV 2AH,ACJNE A,#99H,X4MOV 2AH,#00X4:RETDISP:MOV R1,#20HMOV A,2DHMOV R1,2DHINC R1MOV A,2CHMOV R1,AMOV B,#10DIV ABMOV R1,BINC R1MOV R1,AINC R1INC R1MOV A,2BHMOV B,#10HDIV ABMOV R1
15、,BINC R1MOV R1,AINC R1MOV A,2AHMOV B,#10HDIV ABMOV R1,BINC R1MOV R1,ARETDELAY:MOV R6,#60HD1:MOV R7,#248DJNZ R7,$DJNZ R6,D1RETEND六:總結 經過兩個星期緊張而充實的單片機實訓,老師所要求的程序最終在自己的努力下調試出來了,并且通過了老師的驗收,這次實訓讓我有了很大的收獲。從剛開始接到課題:一個計數(shù)到99小時59分59秒0.9秒的計時秒表如何實現(xiàn)。所需的數(shù)碼管有七位,直接利用單片機的I/O口顯然很難實現(xiàn),通過老師的指導,通過利用掃描方式來控制八段數(shù)碼管,這樣既能節(jié)省很多硬
16、件資源,又可以在排線布局方面節(jié)省很多時間,使整體電路簡潔明了。因此:如何實現(xiàn)掃描控制成為了本次課題的重點突破目標。在前期的準備過程之中,通過認真翻閱課本,分析單片機的內部工作原理和每條語句的功能。對單片機內部的組成結構和單片機指令運用上應當注意的問題,認真查找參考書,翻閱資料。有些指令雖然能夠使用,但比較復雜,如何更的使用指令,并且更加合理的利用指令方面有所欠缺。因此,我從圖書館借來許多單片機設計方面的書籍來看,認真分析程序,從程序中結合自己所學過的知識認真分析,如何把指令更好的運用到自己到自己的設計之中去。在秒表設計的另一設計中:中斷計時功能也十分重要。如何正確使用指令完成所需要的功能,都需
17、要對程序進行很好的分析。通過認真調試才能更好的運用。平時書上所學的零碎的只是進行整理,各種語句的功能和使用方法,只有通過多學多調試,進行仿真才能真正掌握。在設計過程中出現(xiàn)的問題也是挺多的:首先由于對程序的編寫設計量不足,容易出現(xiàn)不知如何入手的情況,通過對程序多分析,然后自己從一些簡單的程序開始編譯調試,逐漸熟悉,由簡單到復雜,每個程序都是有很多語句組合在一起來實現(xiàn)其功能的,這樣在編寫時可以減少很多的麻煩。其次:有時候,在理論上編程沒有什么錯誤,但是在調試和仿真的時候出現(xiàn)錯誤,通過查閱資料得知,單片機內部執(zhí)行程序的有些區(qū)域是有限制的,超出區(qū)域會出現(xiàn)運行錯誤。在仿真時與在理論上也有很多的差別,因為
18、要考慮硬件部分的因素。通過查找問題出現(xiàn)在哪一部分,并且近一步分析一些相同指令的功能,進行替換之后進行仿真是是否符合仿真電路,解決問題。在使用proteus繪制電路圖示,如何布局才能使整體更合理,如何更好地使用各個單片機的I/O口都需要知曉其原理。另外,在proteus中如何快速查找各種元件,節(jié)約時間繪制電路圖時間,都是需要多查閱資料的。第三:在編寫軟件過程中,如何運用編程思想去解決問題,也十分關鍵。剛開始編程是,對于如何實現(xiàn)一個鍵控制秒表的啟動和停止,我想了許久,最后想到利用計數(shù)奇、偶的不同來控制。后來在其他資料上看到利用奇偶校驗和取反等許多中方法,能夠實現(xiàn)相同的功能,但是程序要簡潔很多。讓我在學習中不對積累,不斷豐富自己的知識。通過自己的努力,最終實現(xiàn)了軟件仿真調試的成功。雖然在答辯的時候我的表現(xiàn)不夠好,說明我的知識還很多欠缺。但是,通過自己編寫程序并進行調試,讓我的單片機知識有了很大的提升。看到只有兩位同學采用匯編編寫的程序,而我是其中之一,讓我為我的努力和收獲而高興。在很多時候,調試出問題時,自己也想放棄,但是堅持下來才可能成功,我這樣告誡自己。通過本次設計,不僅讓我的自主的學習能力有了很大的提升,鍛煉了我查閱資
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 做門店衛(wèi)生管理制度
- 衛(wèi)生院人防工作制度
- 衛(wèi)生院辦文辦會制度
- 物業(yè)值班室衛(wèi)生管理制度
- 小學生個人衛(wèi)生管理制度
- 延吉市衛(wèi)生管理制度
- 區(qū)域內環(huán)境衛(wèi)生管理制度
- 混凝土泵車衛(wèi)生管理制度
- 衛(wèi)生間歸誰管理制度
- 環(huán)衛(wèi)職業(yè)衛(wèi)生制度
- 漁民出海前安全培訓課件
- 危貨押運證安全培訓內容課件
- DBJT15-60-2019 建筑地基基礎檢測規(guī)范
- 湖南雅禮高一數(shù)學試卷
- CNAS-GC25-2023 服務認證機構認證業(yè)務范圍及能力管理實施指南
- 入伍智力測試題及答案
- 竣工驗收方案模板
- 企業(yè)安全生產內業(yè)資料全套范本
- 安全生產標準化與安全文化建設的關系
- DL-T5054-2016火力發(fā)電廠汽水管道設計規(guī)范
- 耳部刮痧治療
評論
0/150
提交評論