8086課程教學(xué)設(shè)計_第1頁
8086課程教學(xué)設(shè)計_第2頁
8086課程教學(xué)設(shè)計_第3頁
8086課程教學(xué)設(shè)計_第4頁
8086課程教學(xué)設(shè)計_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、學(xué) 號:20130503310034程設(shè)計8086按鍵控制流水燈設(shè)計機(jī)電工程學(xué)院自動化 自動化劉虹宋中冊指導(dǎo)教師2016 年 6 月 30 日微型計算機(jī)簡稱微機(jī),由于具備人腦某些功能,所有又叫做微機(jī)。是由大規(guī) 模集成電路組成的、體積較小的電子計算機(jī)。它是以微處理器為基礎(chǔ),配以內(nèi)存 儲器及輸入輸出接口電路和相應(yīng)的輔助電路構(gòu)成的裸機(jī)。 把微型計算機(jī)集成在一 個芯片上即構(gòu)成單片微型計算機(jī)。學(xué)習(xí)微機(jī)原理與接口技術(shù),主要內(nèi)容包括微型 計算機(jī)體系結(jié)構(gòu)、8086微處理器和指令系統(tǒng)、匯編語言、設(shè)計以及微型計算機(jī) 各個組成部分,而其中很大一塊就是匯編語言的學(xué)習(xí)。匯編語言是面向機(jī)器的程序設(shè)計語言,也是利用計算機(jī)所

2、有硬件特性并能直接控制硬件的語言。用匯編語言編寫的程序由于目標(biāo)程序占用內(nèi)存少,運(yùn)行速度 快,它有著高級語言不可替代的用途。因此,學(xué)習(xí)匯編語言是很必要的,通過學(xué) 習(xí)匯編語言可以體會它的作用。通過本次課程設(shè)計讓我們進(jìn)一步深入?yún)R編語言的學(xué)習(xí), 掌握簡單的接口設(shè)計技術(shù),將理論知識聯(lián)系實(shí)際,進(jìn)一步學(xué)習(xí)微機(jī)原理與接口技術(shù)的相關(guān)知識,為以 后深入學(xué)習(xí)打下良好的基礎(chǔ)。1總體方案論證1.1功能分析此次課程設(shè)計的要求為,設(shè)計微型計算機(jī)最小系統(tǒng),實(shí)現(xiàn)跑馬燈的模擬顯示 功能。具體要求為:(1)、輸入設(shè)備三個啟動按鈕、一個停止按鈕,輸出設(shè)備為八個跑馬燈;(2)、三個啟動按鈕對應(yīng)三種跑馬燈顯示效果, 按下任意一個啟動按鈕

3、,跑馬 燈顯示對應(yīng)的效果,按下停止按鈕則跑馬燈全部熄滅。由上分析可知,我們的硬件的電路需要另行搭建,電路中需包含四個按鈕和 八個跑馬燈以及相關(guān)芯片,既有輸入設(shè)備又有輸出設(shè)備,經(jīng)過分析可以使用芯片8255A來實(shí)現(xiàn)輸入與輸出,再加上鎖存地址芯片74LS273、譯碼芯片 74LS154以及相關(guān)門電路即可構(gòu)成本設(shè)計的硬件電路基礎(chǔ)。進(jìn)一步分析最終決定用8255A 的A 口作為輸出去控制跑馬燈,B 口作為按鈕信號輸入,CPU通過接收輸入信 號從而發(fā)出對應(yīng)命令去控制8255A芯片A 口輸出,從而A 口輸出相應(yīng)電平控制 跑馬燈有規(guī)律的亮滅。連接好硬件電路后的主要任務(wù)就是編寫相應(yīng)程序,通過程 序去控制和調(diào)度硬件

4、電路的輸入與輸出。1.2系統(tǒng)連接圖設(shè)計8255A是一種通過可編程并行I/O接口芯片。廣泛用于幾乎所有系列的微機(jī)系統(tǒng)中,8255A具有三個帶鎖存或緩沖的數(shù)據(jù)端口,可與外設(shè)并行進(jìn)行數(shù)據(jù)交 換,8255A有多種操作方式,通用性較強(qiáng),可為CPU與外設(shè)之間提供輸入/輸出通 道0 8255A和各端口內(nèi)具有中斷控制邏輯,在外設(shè)與CPU之間可用中斷方式進(jìn)行信息交換,使用條件傳輸方式時可用“聯(lián)絡(luò)”線進(jìn)行控制。在本次課程設(shè)計中 我們運(yùn)用8255A為CPU與外設(shè)之間提供輸入輸出輸出通道來實(shí)現(xiàn)對跑馬燈花樣 變換的控制。8086微處理器,選擇最小工作模式,所有的總線控制信號均由8086產(chǎn)生;8086CPU的地址 數(shù)據(jù)總

5、線 AD15-AD0和地址 狀態(tài)總線 A16/S3-A19/S6是復(fù)用 的,必須通過地址鎖存器把地址總線和數(shù)據(jù)總線分離。跑馬燈硬件電路如圖1所示。電路包括8個LED彩燈、三片74LS273、 片74LS154、一片8086CPU、一片8255A以及若干導(dǎo)線和電阻。用 LED可以觀測在不同按鍵輸入下,跑馬燈花樣的變化效果。如圖1所示我們利用啟動按鈕作為輸入信號,通過 8255A端口擴(kuò)展芯片, 調(diào)節(jié)輸出端口的電平變化,來控制共陽極的 LED燈的亮與滅,實(shí)現(xiàn)跑馬燈不同 的花樣變化。圖1跑馬燈硬件電路圖1.2.1鎖存控制電路鎖存控制電路電路如圖2所示,在微控制器單元(MCU )中,寄存器是十 分重要的

6、資源。寄存器的主要作用是快速寄存算術(shù)邏輯運(yùn)算單元(ALU)運(yùn)算過程中的數(shù)據(jù),其鎖存功能利用 74LS273來實(shí)現(xiàn),74LS273是一種帶清除功能的 8D觸發(fā)器,1D8D為數(shù)據(jù)輸入端,1Q8Q為數(shù)據(jù)輸出端,正脈沖觸發(fā),低電 平清除,常用作數(shù)據(jù)鎖存器,地址鎖存器。D0D7:輸入,Q0Q7:輸出;第一腳WR :主清除端,低電平觸發(fā),即當(dāng)為低電平時,芯片被清除,輸出全為0 (低電平);CP (CLK ):觸發(fā)端,上升沿觸發(fā),即當(dāng) CP從低到高電平時,D0D7的數(shù)據(jù)通過芯片,為0時將數(shù)據(jù)鎖存,D0D7的數(shù)據(jù)不變。CPU向外部發(fā)出地址鎖存允許信號,從而使74LS273鎖存地址信號,在通過譯碼芯片74LS1

7、54控制接口芯片8255A,在此系統(tǒng)中充當(dāng)一個橋梁的作用。這部分電路將相應(yīng)信號傳送給 8255A的A0、A1和CS片選,進(jìn)而CPU開始控制8255A從而驅(qū)動發(fā)光二極管顯示不同的樣式。LN- <尸A7門耳IA14-1?jwr131ftEAjf 41S.I5(1A*lA.i53 LiSTITS細(xì)IMTF HDL 咆2BLEWpTB MlQLKMJEUEd ro I IT/P Ttifla wr PWUBfiR lwBSTMOT.IBd * 123*3s7 O GQ O d 0 A QrL17境一: 常was器"圖2鎖存控制電路1.2.2可編程并行通信接口芯片8255A芯片8255A

8、有三種工作方式,他們分別是方式 0、方式1、方式2,電路如圖 3所示。方式0為簡單I/O,查詢方式,端口 A、端口 B、端口 C均可使用;方式1為選通I/O,中斷方式,端口 A、端口 B可以使用,選通的輸入/輸出方式;方式2為雙向I/O,中斷方式,只有端口 A可以使用,雙向的傳輸方式。方式0也叫基本輸入/輸出方式。一種方式,不需要應(yīng)答聯(lián)絡(luò)信號,端口端口 B和端口 C的高4位及低4位都可以作為輸入或輸出端口。方式0的應(yīng)用場合有無條件傳送和查詢傳送 2種;故根據(jù)我們系統(tǒng)設(shè)計的要求,綜上可知,選擇8255A為工作方式0, A 口作為輸出、B 口作為輸入。8255A的3種基本工作方式由方式控制字來決定

9、,D7= 1 (特征位)表明是設(shè)定方式選擇控制字;D7=0,則表示是端口 C按位置位/復(fù)位控制字。端口 C分 成高4位(PC7PC4)和低4位(PC3PC0),可分別設(shè)置成輸入端口或輸出端口; 端口 C的高4位與端口 A配合組成A組,端口 C的低4位與端口 B配合組成B 組。綜上可得此系統(tǒng)需要滿足 A端口為輸出,輸出數(shù)據(jù)給到8個LED彩燈;端 口 B為輸入,需要檢測按鍵的輸入情況。Ln114 ArErE11 U uHKZ3AilMnwDDb卜D IJd »咗亠 n drkfhw 工A " Ax 貝A 乩 A BI4HBHU H CCOC4C cc圖3芯片8255A接口電路1

10、.3算法說明本程序涉及芯片8255A的初始化,因此首先需要確定端口地址,CPU向8255A 送出方式控制字,進(jìn)而8255A的A 口作為輸出、B 口作為輸入;定義控制LED 燈的相應(yīng)數(shù)據(jù)段,由于需要 LED亮后持續(xù)一段時間這就需要一個相應(yīng)的延時程序片段,需要確定B 口那個按鈕開關(guān)按下,這就需要一個掃描B 口開關(guān)按下的 子程序,從而CPU發(fā)出相應(yīng)控制等操作給 A 口送出相應(yīng)電平,LED顯示相應(yīng)的 亮火。因此,主要要點(diǎn)就是找對端口地址,這個是程序能夠運(yùn)行的必需品,通過分 析硬件線路可以正確找到 A 口、B 口以及控制口的地址。2程序流程圖設(shè)計及其說明主程序流程圖如圖4所示:圖4主程序流程圖檢測按鍵延

11、時控制LED子程序流程圖如圖5所示:圖5子程序流程圖3關(guān)鍵程序段洛說明3.1數(shù)據(jù)段定義dseg segme ntnumdw 0dataldata2dbdb 0FEh,0FCh,0F8h,0F0h,0E0h,0C0h,80h,00h,00h00h,00h,0FFh,00h,0FFh,00h,0FFh,00h,80h,0C0h,0E0h,0F0h,0F8h,0FCh,0FEh,0FFh data3 db 7Eh,3Ch,18h,00h,0FFh,00h,0FFh,00h,0FFh,00h,18h,3Ch,7Eh,0FFh dseg ends三種燈光變幻組合為: 第一種為每隔1s依次亮起8個燈后保持

12、2s然后全部熄滅 第二種為8個燈全亮2s后閃爍3次,然后依次熄滅 第三種為每個1s從兩頭同時依次亮起(即先亮 1、8,然后2、7,然后3、6,然后4、5), 8個燈全部亮起后閃爍3次,然后向兩頭依次熄滅 dw為燈光循環(huán)的控制次數(shù)。3.2程序初始化cseg segme nt para p ublic 'code'assume ss:sseg,cs:cseg,ds:dseg start:mov ax,dseg mov ds,ax初始化程序。3.3芯片初始化mov dx,0206h;取8255A的控制端口的地址mov al,82h;初始化8255A的A 口為輸出模式,B 口為輸入模式

13、out dx,al82h 即為 10000010b,也就是說將A 口定義在方式0下并且作為輸出,B 口定義 在方式0下并且作為輸入,因此這個方式控制字不是唯一的,其通用形式為mov dx,0200h;取 8255的端口 A的地址mov al,0FFh;使 8255 的 PA0-PA7 全為 11000X01X,C 口沒有定義故可以為任意二進(jìn)制數(shù)。out dx,al上邊這個程序段是往外送數(shù)據(jù)置 LED亮滅的。mov dx,0202h;取 8255的端口 B的地址in al,dx;檢測B 口輸入信號這個是將B 口開關(guān)閉合信息讀回來的,從而發(fā)出相應(yīng)控制命令。3.4初始LED亮滅狀態(tài)mov dx,02

14、00h取8255的端口 A的地址mov al,0FFh使8255的PA0-PA7全為1out dx,al使所有的燈LED全滅電路上電工作后首先要使所有的 LED燈全滅,防止對后面的顯示造成影響。3.5檢測按鍵開關(guān)子程序ledflash proc;檢測開關(guān)閉合,以便確定哪種閃爍方式mov dx,0202h;取8255A的端口 B的地址in al,dx;檢測B 口輸入信號choicel:cmp al,0fehjne choice2mov si,offset data1置第一種燈光變幻組合jmp herechoice2:cmp al,0fdhjne choice3mov si,offset data

15、2置第二種燈光變幻組合jmp herechoice3:cmp al,0fbh jne choice4 mov si,offset data3置第三種燈光變幻組合 jmp herechoice4:;每盞燈亮完檢測開關(guān),如果停止開關(guān)沒有按下跳到choice5,如果停止開關(guān)按下燈全滅cmp al,0f7h jne choice5 jmp exutchoice5:cmp num,0h檢測num是否為0,若為0掃描開關(guān),若不為0繼續(xù)執(zhí)行 jne here jmp ledflashhere:mov bx,nummov al,si+bxmov dx,0200h;取8255的端口 A的地址out dx,al;

16、輸出加電數(shù)據(jù)到端口 Ainc num;改變數(shù)字變量的值cmp num ,09hje exitmov cx,005fhdl4:mov bx,00ffhdl3:dec bxjnz dl3dec cxjnz dl4jmp ledflashexit:mov num,0retledflash endp檢測到開關(guān)閉合置相應(yīng)燈光變換。3.6延時程序片段mov cx,04c9hdl4:mov bx,04c9hdl3:dec bxjnz dl3dec cxjnz dl4通過雙層循環(huán)從而實(shí)現(xiàn)軟件延時,延時計算公式為(cx)*(bx)/f ,f為CPU的頻率,CPU頻率為1500kHz,可以計算得到程序大致延時為

17、1s。3.7燈光變換控制here:mov bx,nummov al,si+bxmov dx,0200h;取8255的端口 A的地址out dx,al;輸出加電數(shù)據(jù)到端口 Ainc num;改變數(shù)字變量的值cmp num ,09hje exit通過指針移動,逐個選中相應(yīng)的數(shù)據(jù)置相應(yīng)的燈光變換,共八種即一輪LED顯示完成。4程序調(diào)試說明(1)、內(nèi)存空間分配,匯編語言的重要特點(diǎn)之一是能夠直接利用機(jī)器指令或者偽指令為數(shù)據(jù)或者代碼程序分配內(nèi)存空間,86系列(如8086微處理器)的存儲器 結(jié)構(gòu)是分段的,有代碼段,數(shù)據(jù)段,堆棧段或附加段,在程序設(shè)計時要充分考慮 分段結(jié)構(gòu),要執(zhí)行的程序段應(yīng)設(shè)在當(dāng)前段(活動段)

18、中;分配內(nèi)存空間:直接在Proteus里面將8086CPU的internal memory size設(shè)置成一個足夠用的空間大小, 如0x1000,默認(rèn)的空間大小是0x00000,如不改則仿真不成功。程序在運(yùn)行時所需要的工作單元應(yīng)盡可能的設(shè)在 CPU寄存器中,這樣存取速度快,而且操作方便;在此系統(tǒng)源程序中都采用8086CPU的全部通用寄存器:累加器AX,基數(shù)寄存器BX,基數(shù)寄存器CX,數(shù)據(jù)寄存器DX ;和堆棧指針寄存 器SI。(2 )、調(diào)試過程 中出現(xiàn)了 問題,UNKOWN 2-BYTE OPCODE AT 1010: 0192(EXTRA P ART IS DECO MP OSED)!FE07

19、.檢查了無數(shù)次后無果,憑我目前的能力并無法解決。(3)、8255A隱藏引腳問題,需要設(shè)置芯片 Hidden Pins里的GND改為VSS,(4)、程序一開始是將延時環(huán)節(jié)作為一個獨(dú)立子程序, 運(yùn)行過程中由于部分情況F不滿足題設(shè),故將延時子程序改為程序段落寫到檢測按鍵的子程序中冋題得以解決。5結(jié)果記錄及分析無數(shù)次的失敗之后我并沒有得到想要的結(jié)果, 為此我請教了已經(jīng)就業(yè)的親戚,也 沒能徹底解決問題。最終我選擇將我的所有目前成果上交, 雖然沒能運(yùn)行到最后步,但我確實(shí)沒有更多的時間去改變。希望老師看到我的作業(yè)能夠給我提出建 議并改正我的錯誤,在此感謝!程序清單sseg segme ntdw 200 du

20、p (?) sseg endsdseg segme ntnumdw 0;初始化數(shù)字變量為0;3種不同的燈光變幻組合 datal db 0FEh,0FCh,0F8h,0F0h,0E0h,0C0h,80h,00h,00h data2 db 00h,00h,0FFh,00h,0FFh,00h,0FFh,00h,80h,0C0h,0E0h,0F0h,0F8h,0FCh,0FEh,0FFh data3 db 7Eh,3Ch,18h,00h,0FFh,00h,0FFh,00h,0FFh,00h,18h,3Ch,7Eh,0FFh dseg ends cseg segme nt para p ublic 'code'assume ss:sseg,cs:cseg,ds:dseg start:mov ax,dseg mov ds,axexut:mov dx,0206hmov al,82hout dx,almov num ,0hmov dx,0200hmov al,0FFh;取8255的控制端口的地址;初始化8255的A 口為輸出模式,B 口為輸入模式;取8255的端口 A的地址;使 8255 的 PA0-PA7 全為 1out dx,al;使所有的燈LED全

溫馨提示

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

評論

0/150

提交評論