微機原理課程設(shè)計路燈控制設(shè)計_第1頁
微機原理課程設(shè)計路燈控制設(shè)計_第2頁
微機原理課程設(shè)計路燈控制設(shè)計_第3頁
微機原理課程設(shè)計路燈控制設(shè)計_第4頁
微機原理課程設(shè)計路燈控制設(shè)計_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1 設(shè)計任務(wù)描述1.1設(shè)計題目路燈控制設(shè)計1.2設(shè)計內(nèi)容 1)天黑時路燈電亮,天亮時路燈關(guān)閉。2)用中斷模擬天黑。1.2.1 設(shè)計目的通過課程設(shè)計使學生更進一步掌握微機原理及應(yīng)用課程的有關(guān)知識,提高應(yīng)用微機解決問題的能力,加深對微機應(yīng)用的理解。通過查閱資料,結(jié)合所學知識進行軟、硬件的設(shè)計,使學生初步掌握應(yīng)用微機解決問題的步驟及方法。為以后學生結(jié)合專業(yè)從事微機應(yīng)用設(shè)計奠定基礎(chǔ)1.2.2 設(shè)計要求 1)通過kok7和k+來輸入。2)用led指示燈顯示結(jié)果。3)輸出為1燈亮,輸入為0燈滅。2設(shè)計思路本次微機原理課程設(shè)計我設(shè)計的是路燈控制器。通過中斷信號來使路燈點亮,再經(jīng)延時程序來使燈自動熄滅。然后重

2、新回到初始狀態(tài)。 我們用到的芯片是中斷控制器8259和可編程并行接口8255這兩種芯片再外加一個led顯示單元及開關(guān)單元。用中斷控制器8259的控制字來設(shè)置單片、邊沿觸發(fā)、非緩沖、非自動,用icw4來設(shè)置ir7非屏蔽。設(shè)置中斷控制器8255的控制字,讓它a口輸出來顯示燈亮,。由于我們沒用到口和口,所以讓口輸入c口高低四位均輸出。設(shè)置完控制字后,再使a口輸出全為0(這時路燈初始狀態(tài)為滅),接著讓程序循環(huán)進入空操作。當天黑需要路燈亮時,按下中斷(代表天黑),程序從循環(huán)執(zhí)行空操作中中斷出來,使a口輸出從全為0變成全為1(這時路燈全亮),程序后面連接一個延遲子程序,來控制燈亮的時間。最后到了程序該結(jié)束

3、的時候了,a口輸出從全1再次變?yōu)槿?(這時路燈全滅,代表夜晚已過,天亮了)。這時程序本該結(jié)束了,程序結(jié)束后,又返回到中斷控制器8259這部分,這樣程序又可以通過按中斷來控制燈亮,這樣就簡單又實用。 大體上程序主要分四大部分:輸入部分,中斷部分,延遲部分和輸出部分。結(jié)合所學的知識外加查找相關(guān)資料,把這幾大部分合理的連接起來,從而實現(xiàn)一個完整、功能強大的程序。3 主要元器件介紹3.1 所用芯片8255簡介:3.1.1 外部引線d0d7為雙向數(shù)據(jù)信號線,用來傳送數(shù)據(jù)和控制字。、rd為讀信號線,與其它信號線一起實現(xiàn)對8255接口的讀操作通常接系統(tǒng)總線的ior信號。wr為寫信號線,與其它信號一起實現(xiàn)對8

4、255的寫操作,通常接系統(tǒng)總線的iow。cs為片選信號線,當它為低電平(有效)時,才能選中該8255芯片,也才能對8255進行操作。、a0,a1為口地址選擇信號線。8255內(nèi)部有3個口;a口,b口,c 口,還有一個控制寄存器,它們可由程序?qū)ぶ?。a0,a1上的不同編碼可分別尋址上述3個口和一個控制寄存器,具體規(guī)定如下: a1 a0 選擇 0 0 a口0 1 b口1 0 c口1 1 控制寄存器通常 a0,a1分別接系統(tǒng)總線a0和 a1,它們與cs一起來決定8255的接口地址。reset為復位輸入信號。此端上的高電平可使8255復位。復位后,8255的a口,b口,c 口均被定為輸入狀態(tài)。pa0pa7

5、為a口的8條輸入輸出信號線。pb0pb7為b口的8條輸入輸出信號線。pc0pc78條線根據(jù)其工作方式可作為數(shù)據(jù)的輸入或輸出線,也可以用作控制信號的輸出或狀態(tài)信號的輸入線。3.1.2 8255有三種工作方式:方式0、方式1和方式2。 :方式0-基本輸入/輸出在此工作方式下,每個口都作為基本的輸入輸出口,c口的高4位和低4位以及a口和b口都可獨立地設(shè)置為輸入口和輸出口。在此工作方式下:輸出的數(shù)據(jù)被鎖存,而輸入的數(shù)據(jù)不被鎖存。 而且,在方式0之下,c口還有按位置位和復位的能力。 :方式1-選通輸入/輸出 此工作方式下,三個端口分為a、b兩組,a、b兩個口仍用作數(shù)據(jù)輸入輸出口,而c口分成兩部分,分別作

6、為a口和b口的聯(lián)絡(luò)信號。在8255a中,聯(lián)絡(luò)信號是3位,兩個數(shù)據(jù)口,共用去c口的6位,剩余的兩位仍可作為數(shù)據(jù)位使用。:方式2-雙向選通輸入/輸出此工作方式只限于a組使用,在a口工作于雙向輸入輸出方式時,要利用c口的5條線才能實現(xiàn)此時b口子能工作在方式0或方式1,而c口剩下的3條線可作為輸入輸出線使用或用作b口方式1之下的控制線。當a口工作在方式2時,b口可以在方式0或方式1工作。 8255方式0之下的輸入輸出組合a 組b組a口(pa0-pa7)c口(pc4-pc7)b口(pb0-pb7)c口(pc0-pc3)入入入入入入入出入入出入入入出出入出入入入出入出入出出入入出出出出入入入出入入出出入出

7、入出入出出出出入入出出入出出出出入出出出出3.1.3 8255的尋址:8255占外設(shè)編址的4個地址,即a口,b口,c口和控制寄存器各占一個外設(shè)接口地址。對同一個地址分別可以進行讀寫操作。例如,讀a口可將a口的數(shù)據(jù)讀出;寫a口可將cpu的數(shù)據(jù)寫入a口并輸出。8255的尋址_csa1a0_ior_iow操作00001讀a口00101讀b口01001讀c口00010寫a口00110寫b口01010寫c口01110寫控制寄存器1xx11d0d7三態(tài)8255方式0基本功能 :方式0是基本輸入輸出方式。其功能如下: 進行數(shù)據(jù)傳送時不需要聯(lián)絡(luò)信號。 任一設(shè)置成方式0的端口均可設(shè)置成輸入或輸出。 輸出具有鎖存

8、功能。 輸入沒有鎖存功能。 每一個8位口和4位口均可設(shè)置成方式0。如果所有的8位口和4位口都設(shè)置成方端口是否具有鎖存功能是需要注意的。如果具有鎖存功能,則8255a可作為cptj與外設(shè)之間數(shù)據(jù)傳送的中轉(zhuǎn)站。這時,cpu與外設(shè)之間數(shù)據(jù)傳送是異步的。如果沒有鎖存功能,則8255a作為數(shù)據(jù)通道,僅起單向三態(tài)門的作用。這時,cpu與外設(shè)之間數(shù)據(jù)傳送是同步的。方式0的輸出具有鎖存功能,而輸入沒有鎖存功能。1 405 358255a10 3015 2520 21pa3 pa4pa2 pa5pa1 pa6pa0 pa7rd wrcs reset地 d0a1 d1a0 d2pc7 d3pc6 d4pc5 d5

9、pc4 d6pc0 d7pc1 vccpc2 pb7pc3 pb6pb0 pb5pb1 pb4pb2 pb3可編程并行接口8255引線圖d7 d6 d5 d4 d3 d2 d1 d0xxx 無關(guān) 置/復位 0 0:復位1:置位c口的位選擇d3 d2 d1選擇000pc0001pc1010 pc2011 pc3100 pc4101 pc5110 pc6111 pc7c口的按位操作控制字格式a組控制 b組控制76543210控制c口低四位1:輸入0:輸出控制b口八位1:輸入0:輸出方式選擇0:方式01:方式1控制c口高四位0:輸出1:輸入控制a口8位0:輸出1:輸入方式選擇00:方式010:方式1

10、11:方式2功能控制0:位操作1:方式選擇8255的控制字格式3.2 所用芯片8259簡介:3.2.1 8259的外部引線d0d7為雙向數(shù)據(jù)信號線,與系統(tǒng)總線的數(shù)據(jù)線相連接。wr、rd為寫和讀控制信號,與系統(tǒng)總線的讀寫信號相連接。cs為片選信號,只有cs為低電平時,才能實現(xiàn)cpu對8259的寫或讀操作。a0是8259內(nèi)部寄存器的選擇信號。它的不同狀態(tài),對應(yīng)不同的內(nèi)部寄存器。int為8259的中斷請求輸出信號。可直接接到cpu的intr輸入端。inta為中斷響應(yīng)輸入信號。在中斷響應(yīng)過程中cpu的中斷響應(yīng)信號由此端進入8259.cas0cas2為級聯(lián)控制線。當多片8259級聯(lián)工作時,其中一片為主控

11、級聯(lián)芯片,其他均為從屬級芯片。主控級芯片的cas0cas2作為輸出,連接到個從屬級芯片的cas0cas2上。當某從屬8259提出中斷請求時,主控級8259通過cas0cas2送出相應(yīng)的編碼給從屬級,是從屬級中斷被允許。sp/en為雙功能引線。當工作在緩沖模式時,它為輸出,用以控制緩沖傳送;在非緩沖模式時,它用作輸入。當sp=1時,指定8259芯片為主控級;sp=0時,指定它為從屬級。ir0ir7中斷請求輸入端。其他外設(shè)中斷請求可加在8259的ir0ir7的任一端上。該信號可以使上升沿有效,也可以時高電平有效。8259的內(nèi)部有多個寄存器,其中包括:中斷請求寄存器(irr),其內(nèi)部保存著所有外部中

12、斷源ir0ir7的中斷請求狀態(tài)。任何一個中斷源發(fā)生請求,其相應(yīng)位為1;一旦得到響應(yīng),則相應(yīng)位復位。中斷服務(wù)寄存器(isr),用來保存所有正在服務(wù)的中斷源。當8259受到中斷結(jié)束命令時,其寄存的狀態(tài)進行調(diào)整。中斷屏蔽寄存器(imr),保存著被屏蔽的所有中斷源。其屏蔽功能可用命令修改。1 282 273 264 255 246 237 8259 228 219 2010 1911 1812 1713 1614 15cs vccwr a0rd intad7 ir7d6 ir6d5 ir5d4 ir4d3 ir3d2 ir2d1 ir1d0 ir0cas0 intcas1 sp/en地 cas2825

13、9引線圖3.2.2 8259的內(nèi)部控制字cpu命令分為兩大類:一類時初始化命令字(icw),主要使8259處于初始狀態(tài);另一類是操作命令字(ocw),使處于初始狀態(tài)的8259去執(zhí)行具體的某種操作方式。操作命令字可在8259初始化后的任何時刻寫入。(1) 初始化命令字初始化命令字icw1a0=0為偶地址。在a0=0,d4=1時為寫入。a00d7 d6 d5 d4 d3 d2 d1 d01ltimasic4 1:需要icw4 0:不需要icw4 低8編程位 1:單片8259下,中斷低口 0:多片8259級聯(lián)8080/85模式 1:間隔為4 0:間隔為8 僅用于8080、85模式 1:電平觸發(fā) 0:

14、邊沿觸發(fā)初始化命令字icw1初始化命令字icw2a0=1為奇地址。初始化命令字icw3a0=1為奇地址。該字是用于多片8259級聯(lián)的。在主控8259中,icw3的每一位對應(yīng)一個ir輸入。哪一位為1,表示相應(yīng)的ir接從屬8259.從屬8259的icw3的最低三位的編碼用以表示該從屬8259接至主控8259的ir編號。主控icw3a01d7 d6 d5 d4 d3 d2 d1 d0 1:相應(yīng)ir接從屬8259 0:不接8259 從屬icw3a0 1d7 d6 d5 d4 d3 d2 d1 d000000 3位編碼對應(yīng)從屬8259 接主控的ir編號初始化命令字icw3初始化命令字icw4 a0=1為

15、奇地址。a01d7 d6 d5 d4 d3 d2 d1 d0000sfnmbufm/saeoipm 1:8086/88模式 0:8088/85模式 1:自動eoi 0:非自動結(jié)束 0x:非緩沖方法 10:緩沖方式從屬片 11:緩沖方式主控片 1:特殊全嵌套方式 0:一般嵌套方式初始化命令字icw4(2)操作命令字ocw 操作命令字ocw1。當這個8位的操作命令字的某一位置1時,它就屏蔽相對的ir輸入。操作命令字ocw2。a00d7 d6 d5 d4 d3 d2 d1 d0rsleoi00l2l1l0 編碼對應(yīng)ir的最低優(yōu)先級0 0 1 一般eoi 中斷結(jié)束命令0 1 1 特殊eoi 1 0 1

16、 循環(huán)優(yōu)先級的一般eoi命令 1 0 0 在自動eoi下置循環(huán)優(yōu)先級 自動循環(huán)0 0 0 在自動eoi下清循環(huán)優(yōu)先級 1 1 1 循環(huán)優(yōu)先級的特殊eoi命令 1 1 0 設(shè)置優(yōu)先級 特殊循環(huán) 0 1 0 無效操作命令字ocw2該命令字用來設(shè)置優(yōu)先級是否循環(huán)、循環(huán)的方式及中斷結(jié)束的方式。r為優(yōu)先級循環(huán)控制位,r=1為循環(huán)優(yōu)先級;r=0為固定優(yōu)先級。l2、l1、l0為系統(tǒng)最低優(yōu)先級編碼,用它們來指定哪個ir優(yōu)先級最低。eoi是中斷結(jié)束命令。ocw2控制格式d7 d6 d5 d4 d3 d2 d1 d0功能r sl eoi 0 0 l2 l1 l00 0 1 0 0 - 一般中斷結(jié)束eoi命令,使正

17、執(zhí)行的is復位0 1 1 0 0 l2 l1 l0特殊結(jié)束seio命令,使l2 l1 l0指定的is復位1 0 1 0 0 -一般自動循環(huán)命令,使正執(zhí)行的is復位且優(yōu)先級最低1 0 0 0 0 -設(shè)置自動循環(huán)的命令0 0 0 0 0 -清除自動循環(huán)的命令,變?yōu)楣潭▋?yōu)先級1 1 0 0 0 l2 l1 l0優(yōu)先級設(shè)置命令,l2 l1 l0所指定的ir優(yōu)先級最低1 1 1 0 0 l2 l1 l0使l2 l1 l0所指定的is復位并變?yōu)樽畹蛢?yōu)先級0 1 0 -無效操作命令字ocw3。a00d7 d6 d5 d4 d3 d2 d1 d00esmmsmm01prrris 0x:無效0x:無效 10:可

18、讀irr10:復位特殊屏蔽 11:可讀isr11:設(shè)置特殊屏蔽 1:允許查詢 0:不查詢操作命令字ocw38259寄存器及命令的訪問控制a0d4d3rdwrcs操作0010讀出isr、irr的內(nèi)容1010讀出imr的內(nèi)容000100寫入ocw2001100寫入ocw301x100寫入icw11xx100寫入ocw1、icw2、icw3、icw43.2.3 8259的初始化順序?qū)懭雐cw1寫入icw2寫入icw4是級聯(lián)工作?寫入icw3需要icw4?yynn準備好接收中斷請求4 源程序清單及注釋sstack segment stackdw 32 dup(?)sstack endscode seg

19、mentassume cs:codestart: push dsmov ax, 0000h ;初始化中斷向量表mov ds, axmov si, 003chmov dx, offset light ;送偏移量 mov si,dxmov ax,seg light ;送段地址mov si,003eh mov si,axcli ;關(guān)中斷pop ds;初始化主片8259set8259: mov al, 13hout 20h, al ;icw1 邊沿觸發(fā) 單片 要icw4mov al, 08hout 21h, al ;icw2 中斷向量碼mov al, 01hout 21h, al ;icw3 非緩沖

20、非自動 8088mov al, 7fhout 21h, al ;icw4 ocw1 ir7非屏蔽sti ;開中斷;初始化芯片8255set8255: mov dx,0646h mov al,82h out dx,al ;a口輸出,b口輸入,c口輸出 mov dx,0640h mov al,00h out dx,al;路燈初始都是滅的aa1: nop jmp aa1light: push dx push ax ;保護現(xiàn)場ldct: mov dx,0642h ;路燈點亮程序 in al,dx cmp al,01h mov al,0ffh mov dx,0640h out dx,al ;天黑路燈全亮 mov cx,3cet3: call softdly ;點亮時間模擬 loop cet3 jmp sto

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論