《單片機原理及接口技術課程設計報告-跑馬燈,跑馬燈,方波,交通燈.doc》由會員分享,可在線閱讀,更多相關《單片機原理及接口技術課程設計報告-跑馬燈,跑馬燈,方波,交通燈.doc(24頁珍藏版)》請在裝配圖網上搜索。
1、 單片機應用設計報告系別 電 子 信 息 與 電 氣 工 程 系 專 業(yè) 自動化 班 級 09 級 (1) 班 姓名 老 師 完成 時間 2012年5月18日 單片機原理及接口技術課程設計報告摘 要: 單片機是一種集成在電路芯片,是采用超大規(guī)模集成電路技術把具有數(shù)據(jù)處理能力的中央處理器CPU隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統(tǒng)、定時器/計時器等功能(可能還包括顯示驅動電路、脈寬調制電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊硅片上構成的一個小而完善的計算機系統(tǒng)。MCS-51單片機是使用極為廣泛的一款8位單片機,在此次實訓中所用的單片機是美國Atmel公司生產的以8
2、031為內核的AT89S52單片機。實訓分別以構建單片機最小系統(tǒng)版、74HC138流水燈、8255交通燈、8253方波、6N137光耦控制繼電器等幾個實驗關鍵詞:AT89S52 74HC138 8255A 8253 6N137 交通燈目錄單片機原理及接口技術課程設計報告1實驗一 構建單片機最小系統(tǒng)和實驗環(huán)境熟悉21.1單片機的工作原理21.1.1單片機最小系統(tǒng)圖21.1.2運算器簡介31.1.3控制器簡介41.1.4實驗解析與總結6實驗二跑馬燈實驗及74HC138譯碼器62.1實驗內容62.1.1實驗原理72.1.2實驗原理圖72.1.3實驗程序流程圖82.1.4實驗程序代碼82.1.5完成后
3、的效果圖92.2實驗總結9實驗三 8255控制交通燈實驗103.1實驗內容103.1.3實驗原理103.1.2實驗原理電路圖123.1.3程序流程圖133.1.4實驗程序代碼133.1.5系統(tǒng)實現(xiàn)圖153.2 8255A尋址原理153.3實驗總結16實驗四 8253方波實驗174.1實驗內容174.1.1實驗原理圖174.1.2實驗原理電路圖184.1.3程序流程圖194.1.4程序流程代碼194.1.4系統(tǒng)仿真214.2實驗總結21實訓總結22附錄231仿真系統(tǒng)電路原理圖232硬件實物照片24實驗一 構建單片機最小系統(tǒng)和實驗環(huán)境熟悉1.1單片機的工作原理1.1.1單片機最小系統(tǒng)圖單片機最小系
4、統(tǒng)主要有外部晶振電路,系統(tǒng)復位電路以及供電電源組成。在構建單片機最小系統(tǒng)板是在VCC引腳出加上10uF和0.1uF的濾波電容,可以有效的提高系統(tǒng)工作的穩(wěn)定性。單片機最小系統(tǒng)圖1.1.2運算器簡介運算器包括算術邏輯運算、累加器ACC、單元ALU、寄存器B、暫存器TMP、程序狀態(tài)字寄存器PSW、十進制調整電路等。它能實現(xiàn)數(shù)據(jù)的算術邏輯運算、位變量處理和數(shù)據(jù)傳送操作。1. 算術邏輯單元ALUALU在控制器根據(jù)指令發(fā)出的內部信號控制下,對8位二進制數(shù)據(jù)進行加、減、乘、除運算和邏輯與、或、非、異或、清零等運算。它具有很強的判跳、轉移、豐富的數(shù)據(jù)傳送、提供存放中間結果以及常用數(shù)據(jù)寄存器的功能。MCS-51
5、中位處理具有位處理功能,特別適用于實時邏輯控制。2. 累加器ACC累加器ACC是8位寄存器,是最常用的專用寄存器,它既可存放操作數(shù),又可存放運算的中間結果。MCS51系列單片機中許多指令的操作數(shù)來自累加器ACC。累加器非常繁忙,在與外部存儲器或I/O接口進行數(shù)據(jù)傳送時,都要經過A來完成。4. 程序狀態(tài)字PSW程序狀態(tài)字是8位寄存器,用于指示程序運行狀態(tài)信息。其中有些位是根據(jù)程序執(zhí)行結果由硬件自動設置的,而有些位可由用戶通過指令方法設定。PSW中各標志位名稱及定義如下:位序D7D6D5D4D3D2D1D0位標志CYACF0RS1RS0OVPCY(PSW.7):進(借)位標志位,也是位處理器的位累
6、加器C。在加減運算中,若操作結果的最高位有進位或有借位時,CY由硬件自動置1,否則清“0”。在位操作中,CY作為位累加器C使用,參于進行位傳送、位與、位或等位操作。另外某些控制轉移類指令也會影響CY位狀態(tài)。AC(PSW.6):輔助進(借)位標志位。在加減運算中,當操作結果的低四位向高四位進位或借位時此標志位由硬件自動置1,否則清“0”。F0(PSW.5):用戶標志位,由用戶通過軟件設定,決定程序的執(zhí)行方式。RS1(PSW.4),RS0(PSW.3):寄存器組選擇位。用于設定當前通用寄存器組的組,其對應關系如下:RS1RS0寄存器組R0R7地址00組00007H01組1080FH10組21017
7、H11組3181FHOV(PSW.2):溢出標志位。它反映運算結果是否溢出,溢出時OV=1;否則OV=0。OV可作為條件轉移指令中的條件。PSW.1:未定義位。P(PSW.1):奇偶標志位。P=1,表示ACC中1的個數(shù)為奇數(shù);否則P=0。P也可以作為條件轉移指令中的條件。1.1.3控制器簡介控制器包括時鐘電路、復位電路、指令寄存器、指令譯碼器程序計數(shù)器PC、堆棧指針SP、數(shù)據(jù)指針寄存器DPTR以及信息傳送控制部件等。時鐘電路是計算機的心臟,他控制著計算機的工作節(jié)奏,CPU就是通過復雜的時序電路完成不同的指令功能,MCS-51的時鐘信號可以有兩種方式產生,一種是內部方式,利用芯片內部的振蕩電路,
8、產生時鐘信號;另一種是外部方式,時鐘信號由外部引入,MCS-51單片機有HMOS和CHMOS型,他們的時鐘電路有一定區(qū)別,在實際使用時應該注意,下面是這兩種時鐘電路的電路圖。 (A)內部時鐘電路 (B)外部振蕩源2. 復位電路對于使用12MHZ的晶振的單片機,復位信號持續(xù)時間應超過4s才能完成復位操作。產生復位信號的電路有上電自動復位電路和按鍵手動復位電路兩種方式。上電自動復位是通過外部復位電路的電容充電來實現(xiàn)的,該電路通過電容充電在RST引腳上加了一個高電平完成復位操作。上電自動復位電路如圖(a)所示。按鍵手動復位電路。按鍵手動復位是通過按鍵實現(xiàn)人為的復位操作,按鍵手動復位電路如圖(b)所示
9、。復位后內部暫存器的狀態(tài)如下:PC0000HTCON00HACC00HTL000HPSW00HTH000HSP07HTL100HDPTR0000HTH100HP0P3FFHSCON00HIP000000BSBUF不定IE0000000BPCON00000BTMOD00H1.1.4實驗解析與總結本次實驗的內容是熟悉單片機最小系統(tǒng)的組成和工作原理,熟悉Keil C51集成環(huán)境軟件的安裝和使用方法。同時也是為接下來的幾個實驗打下基礎,所以很好地完成第一個實驗,有助于下面的幾個實驗順利展開。該實驗中,單片機系統(tǒng)電路的基本模塊有:復位電路,晶振電路,JTAG下載口等主要模塊。其中P0口作為輸出使用必須對
10、單片機的I/O口,因為P0為集電極開路,可以提高其功率和電平轉換。在單片機最小系統(tǒng)的構建中,EA腳拉高是非常必要的,它可以影響單片機的正常工作。在檢測單片機是否正常工作,可以通過檢測晶振兩端的信號的波形形狀。在單片機正常工作條件下,其信號為正弦波。通過本次試驗我了解了單片機的工作原理,知道了硬件部分的重要性,單片機最小系統(tǒng)板的焊接最主要是晶振部分的焊接,它為單片機提供了做工作的頻率,是單片機的心臟。實驗二跑馬燈實驗及74HC138譯碼器2.1實驗內容跑馬燈實驗:1、熟悉集成環(huán)境軟件或熟悉Keil C51集成環(huán)境軟件的安裝和使用方法。2、照接線圖編寫程序:使用P1口控制G6區(qū)的8個指示燈,循環(huán)點
11、亮,瞬間只有一個燈亮。3、觀察實驗結果,驗證程序是否正確。74HC138譯碼器實驗:1、設計74HC138接口電路,編寫程序:使用單片機的P1.0、P1.1、P1.2控制74HC138的數(shù)據(jù)輸入端,通過譯碼產生8選1個選通信號,輪流點亮8個LED指示燈。2、運行程序,驗證譯碼的正確性。2.1.1實驗原理根據(jù)74S138譯碼器的工作原理,當G1 G2A G2B口分別致高電平時,譯碼器工作,根據(jù)74LS138的3個譯碼信號A、B、C來選擇Y0、Y1、Y2、Y3、Y4、Y5、Y6作為輸出,例如,ABC為001時選擇Y0口,以此類推,實現(xiàn)譯碼。各輸出為低電平時,當共陽極的LED燈節(jié)高電平時,就會使相應
12、的燈亮。A、B、C三個信號由單片機的P1.0、P1.1和P1.2來提供,而P1.0、P1.1和P1.2口的值是通過程序設置初始值后,然后根據(jù)P1.0、P1.1和P1.2的值加1和循環(huán)就可以實現(xiàn)LED燈的循環(huán)點亮。2.1.2實驗原理圖74HC138跑馬燈電路原理圖2.1.3實驗程序流程圖74HC138跑馬燈實驗程序流程圖2.1.4實驗程序代碼void yimaqi()/譯碼器 uchar bb; uint m; cs2=0; bb=0 x00; delayms(600); for(m=0;m0;i-) for(j=110;j0;j-);4.1.4系統(tǒng)仿真8253方波實驗系統(tǒng)仿真圖4.2實驗總結本
13、實驗是方波實驗,使用8253的計數(shù)器0得到一個周期為1秒的方波。然后用此方波控制LED的閃亮和蜂鳴器的發(fā)聲。是驗證單片機定時器產生一個250Hz的方波,作為8253的時鐘信號。將此方波作為時鐘信號送給8253的通道0,通過分頻產生需要的方波的頻率。在實際電路中單片機產生的時鐘頻率為244Hz,所以8253預裝的初值是244。 通過本次試驗,我熟悉了8253的連線和程序的編寫,熟悉了8253芯片的使用方法。本次試驗對于我們兩個組的成員來說都是一種鍛煉和提高,最終我們完成了實驗,是我們受益匪淺。實訓總結本次的單片機實訓歷時八周,老師給了我們充分的時間去完善和學習。這也是我們覺得很好的一個方面。避免
14、了考試單一的書面答題。從實訓開始,單片機最小系統(tǒng)板的設計和焊接到實驗電路的焊接和程序編寫,調試,我得到系統(tǒng)的鍛煉。在動手能力方面有了很大的提高。在設計程序之前,務必要對所用單片機的內部結構有一個系統(tǒng)的了解,知道該單片機片內有哪些資源。設計程序采用什么編程語言并不是非常重要,關鍵要有一個清晰的思路和一個完整的軟件流程圖。在設計程序時,不能妄想一次就將整個程序設計好,設計的程序要經過反復修改,結合硬件不斷的調試。這樣才能讓設計出一個合格的程序。在寫程序的時候,要養(yǎng)成注釋程序的好習慣,一個程序的完美與否不僅僅是實現(xiàn)功能,而應該讓人一看就能明白你的思想,這樣也為程序的移植,資料的保存和交流提供了方便。在設計程序過程中遇到問題是很正常的,但我們應該將每次遇到的問題記錄下來,并分析清楚,以免下次再碰到同樣的問題.。通過這次實踐我知道了理論和時間之間還是有差距的,必須在不斷的印證和摸索下才可以完善好實驗。最終我們雖然只完成了四個實驗,但是每一個實驗都保質保量的完成,效果很好,也學到了很多的知識。在這里我要感謝老師的悉心指導,也感謝組員之間的相互配合。正是這些,才讓我們的實驗最終順利完成!附錄1仿真系統(tǒng)電路原理圖2硬件實物照片 23