微機(jī)課設(shè)(紅綠燈)_第1頁
微機(jī)課設(shè)(紅綠燈)_第2頁
微機(jī)課設(shè)(紅綠燈)_第3頁
微機(jī)課設(shè)(紅綠燈)_第4頁
微機(jī)課設(shè)(紅綠燈)_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、二一五二一六學(xué)年 第一學(xué)期信息科學(xué)與工程學(xué)院自動(dòng)化系課程設(shè)計(jì)報(bào)告書班 級(jí): 自動(dòng)化2013級(jí)1班 課程名稱: 微機(jī)原理與應(yīng)用課程設(shè)計(jì) 學(xué)時(shí)學(xué)分: 1 周 1 學(xué)分 指導(dǎo)教師: 2015年 12月 日1、課程設(shè)計(jì)內(nèi)容及要求(三題任選其一): 題目三 交通信號(hào)燈的控制(1) 通過8255A并口來控制LED發(fā)光二極管的亮滅。(2) A口控制紅燈,B口控制黃燈,C口控制綠燈。(3) 輸出為0則亮,輸出為1則滅。(4) 用8253定時(shí)來控制變換時(shí)間 。設(shè)計(jì)要求:設(shè)有一個(gè)十字路口,1、3為南,北方向,2、4為東西方向,初始態(tài)為4個(gè)路口的紅燈全亮。之后,1、3路口的綠燈亮,2、4路口的紅燈亮,1、3路口方向

2、通車。延遲30秒后,1、3路口的綠燈熄滅,而1,3路口的黃燈開始閃爍(1HZ)。閃爍5次后,1、3路口的紅燈亮,同時(shí)2、4路口的綠燈亮,2、4路口方向開始通車。延遲30秒時(shí)間后,2、4路口的綠燈熄滅,而黃燈開始閃爍。閃爍5次后,再切換到1、3路口方向。之后,重復(fù)上述過程。2,實(shí)驗(yàn)裝置介紹:8086,在本實(shí)驗(yàn)中工作在最小組態(tài),用于傳輸數(shù)據(jù)和地址,它的地址鎖存端ALE接在地址鎖存器74LS373的LE端,而他的RD和WR端分別接在74LS373和8253以及8255的RD和WR端,ready端接高位,reset接低位。74LS373,這次試驗(yàn)我采用了3片74LS373但是僅僅只用了一片74LS37

3、3做為地址鎖存端,這塊芯片的輸入端為AD0-AD7(8086的低地址八位)該地址線通過分時(shí)復(fù)用,先送出地址,通過地址鎖存器74LS373鎖存以后,再送出數(shù)據(jù)。其中A7、A6通過一個(gè)與門產(chǎn)生一個(gè)信號(hào),A5、A4通過一個(gè)與門產(chǎn)生一個(gè)信號(hào),將這兩個(gè)信號(hào)再通過一個(gè)與非門產(chǎn)生一個(gè)信號(hào)送往74LS138的C位,A3與譯碼器A相連,作為片選信號(hào)。而A2、A1則直接與8255和8253的A1,A0相連。而8255和8253的片選信號(hào)CS分別接38譯碼器的輸出端Y2和Y1。由上述可知A7A6A5A4=1111由此可得各端口地址 8255的A口00F8H 8255的B口00FAH 8255的C口00FCH 825

4、5控制字寄存器00FEH 8253的A口00F0H 8253的B口00F2H 8253的C口00F4H 8253控制字寄存器00F6H 為了方便讀寫,在數(shù)據(jù)段定義為PA8255 EQU 00F8H PB8255 EQU 00FAHPC8255 EQU 00FCH CON8255 EQU 00FEHCLK08253 EQU 00F0H CLK18253 EQU 00F2HCLK28253 EQU 00F4H CON8253 EQU 00F6H地址端的接法如下圖由圖可知A3產(chǎn)生信號(hào)來輸出Y0 或 Y1,產(chǎn)生片選信號(hào),判斷是送給8255還是8253,而A2,A1接在8255和8253的A1,A0上面

5、,用于方式控制字的選擇,A0沒有賦予意義,因而賦值為0另外兩個(gè)74LS373的做用在8255里解釋8255 作為本實(shí)驗(yàn)的核心環(huán)節(jié),a b c端口均采用0方式,方式控制字為80H是對(duì)程序進(jìn)行正常輸入輸出,方式控制字為88H時(shí)是從8253的clk1信號(hào)進(jìn)行讀入,但是我發(fā)現(xiàn)在對(duì)8253的clk1信號(hào)進(jìn)行讀入時(shí),會(huì)使8255的輸出端發(fā)生變化,所以引入了兩個(gè)74LS373芯片對(duì)輸出段進(jìn)行鎖存,74LS373的OE端接低電平,是否鎖存靠LE端的輸入值,LE端接的是PC3,PC3端在c端口做為寫數(shù)據(jù)端時(shí)高電平使得輸入輸出相同,而當(dāng)c端口做為讀數(shù)據(jù)端時(shí)低電平而將數(shù)據(jù)進(jìn)行鎖存,這樣使得從C端口讀數(shù)據(jù)時(shí)不會(huì)改變輸

6、出值,使得發(fā)光二極管變化8253 8253共有3個(gè)相同的計(jì)數(shù)器。考慮到最小頻率要求為1Hz,當(dāng)輸入為1Mz時(shí),要求計(jì)數(shù)器的初始值為1000000,而8253計(jì)數(shù)值最大值只能為65536,因而考慮將1Mz的時(shí)鐘輸入計(jì)數(shù)器0,再將計(jì)數(shù)器0的輸出信號(hào)作為計(jì)數(shù)器1和計(jì)數(shù)器2的輸入,則可以產(chǎn)生最小為1Hz的信號(hào)。而計(jì)數(shù)器1和計(jì)數(shù)器2可以分別用于30s定時(shí)和黃燈閃爍?;谝陨戏治?,計(jì)數(shù)器0應(yīng)工作于方式3,計(jì)數(shù)初始值為10000,則輸出信號(hào)周期為0.01s;再以此作為輸入,讓計(jì)數(shù)器1工作于方式0,在每次用到計(jì)數(shù)器1時(shí)均重新寫方式控制字,計(jì)數(shù)初值為3000,也即定時(shí)30s(但是在實(shí)際運(yùn)行時(shí)計(jì)數(shù)初值設(shè)為1000

7、,恰好為30秒)供綠燈向黃燈轉(zhuǎn)換的定時(shí)之用而黃燈要求以1Hz的頻率閃爍5次,則計(jì)數(shù)初值為100,工作方式為3。則用OUT2口的1HZ信號(hào)和8255的PC6口信號(hào)一起通過一個(gè)非門來控制黃燈的熄滅,達(dá)到閃爍的目的,頻率為1Hz,具體接法入下圖所示整體結(jié)構(gòu)圖如下圖所示3實(shí)際運(yùn)行過程初態(tài)1,3通車,2,4不通車1.3黃燈開始閃爍1,3不通車,2,4通車2.4黃燈開始閃爍在此次試驗(yàn)中,需要用到proteus,由于這個(gè)軟件以前用過并沒有太多疑問,而這次新用到的軟件是debug,由于電腦時(shí)win8的所以必須使用DOSBOX,再打開Dosbox時(shí)首先需要敲一段代碼,然后就是錄入Asm文件,Asm由輕松匯編編寫

8、,代碼段在后面,然后就是通過,masm,link,debug等幾個(gè)指令產(chǎn)生exe文件將產(chǎn)生的EXE文件加載到proteus的8086中單機(jī)運(yùn)行就可以了4,實(shí)驗(yàn)原理此方案是通過并行接口芯片8255A和8086計(jì)算機(jī)的硬件連接,以及通過8253延時(shí)的方法,來實(shí)現(xiàn)十字路口交通燈的模擬控制。硬件連接參考方案:紅燈(RLED),黃燈(YLEDD)和綠燈(GLED)分別接在8255的A,B,C口的低四位端口,PA0,PA1,PA2,PA3分別接1,2,3,4路口的紅燈,B,C口類推。8086工作在最小模式,低八位端口AD0AD7接到8255和8253的D0D7,和74LS373的AD0AD7,74LS37

9、3的輸出端為A0A7其中A7、A6通過一個(gè)與門產(chǎn)生一個(gè)信號(hào),A5、A4通過一個(gè)與門產(chǎn)生一個(gè)信號(hào),將這兩個(gè)信號(hào)再通過一個(gè)與非門產(chǎn)生一個(gè)信號(hào)送往74LS138的C位,A3與譯碼器A相連,作為片選信號(hào)。而A2、A1則直接與8255和8253的A1,A0相連。而8255和8253的片選信號(hào)CS分別接38譯碼器的輸出端Y2和Y1。8253的三個(gè)門控端接+5V,CLOCK0接由分頻器產(chǎn)生的1MHZ的時(shí)鐘脈沖,OUT0接到CLOCK1和CLOCK2;OUT1產(chǎn)生30秒定時(shí)信號(hào);OUT2產(chǎn)生1MHZ方波通過或門和8255的C口共同控制黃燈的閃爍。8255三個(gè)口全部工作在方式0,即基本輸入輸出方式,紅綠燈的轉(zhuǎn)換

10、由軟件編程實(shí)現(xiàn)。5. 程序的流程圖開始初始化控制寄存器(8255控制字與8253控制字)初始化各燈狀態(tài)(紅燈全亮,黃燈全滅,綠燈全滅)1、3路口綠燈亮,2、4路口紅燈亮,8253CLK1開始計(jì)時(shí)30s延時(shí)是否已到?(檢測(cè)PC7口是否有高電平)1、3路口綠燈滅而黃燈開始閃爍(8253CLK2開始輸出方波)閃爍5次是否已到(檢測(cè)PC6口高電平的次數(shù)是否有5次)2、4路口綠燈亮,1、3路口紅燈亮,黃燈滅。8253CLK1開始計(jì)時(shí)30s延時(shí)是否已到?(檢測(cè)PC7口是否有高電平)2、4路口綠燈滅而黃燈開始閃爍(8253CLK2開始輸出方波)閃爍5次是否已到(檢測(cè)PC6口高電平的次數(shù)是否有5次)6. 詳細(xì)

11、程序運(yùn)行過程30s延時(shí)檢測(cè)程序程序如下:LPO30_1:MOV AL,0 ;掃描PC7口是否有高電平輸入 MOV DX,CON8255 MOV AL,88H OUT DX,AL ;改PC口為輸入方式,準(zhǔn)備讀入PC7的值 MOV DX,PC8255 IN AL,DX AND AL,80H ;取最高位即PC7的值 CMP AL,80H JNZ LOP30_1 ;未檢測(cè)到高電平則繼續(xù)循環(huán)檢測(cè) 延時(shí)程序執(zhí)行前,應(yīng)該先將8255的控制字更改,即將PC口改為輸入方式,以便下一時(shí)刻讀取。用AND AL,80H將除PC7口之外的七位清零,并將其與80H比較,如果PC7為髙位則繼續(xù),就是延時(shí)直到計(jì)數(shù)的數(shù)字為05

12、次閃爍檢測(cè)程序程序如下:LOP5_1:MOV DX,CON8255 ;檢測(cè)PC6高電平 MOV AL,88H OUT DX,AL ;改PC口為輸入方式,準(zhǔn)備讀入PC6 MOV DX,PC8255 IN AL,DX AND AL,40H ;取PC6 CMP AL,40H JNZ LOP5_1 ;檢測(cè)PC6是否為高電平,沒有高電平則不延時(shí)繼續(xù)掃描 MOV DX,1000 ;延時(shí)約一秒,實(shí)際比一秒略小DELAY1:MOV BX,10000DELAY2:DEC BX CMP BX,0 JNZ DELAY2 DEC DX CMP DX,0 JNZ DELAY1 INC CX CMP CX,05H JNZ

13、 LOP5_1 ;是否檢測(cè)到5次高電平,有則結(jié)束循環(huán),黃燈5次OUT2的方波有一定的寬度,而且只檢測(cè)5次,可以保證每次都在高電平時(shí)候進(jìn)行檢測(cè),也即每次高電平都可以檢測(cè)到。而且若未檢測(cè)高電平,則不進(jìn)行延時(shí),立即進(jìn)行下一次循環(huán)。而檢測(cè)到高電平次數(shù)的計(jì)數(shù)則通過計(jì)數(shù)器CX自增實(shí)現(xiàn),若未檢測(cè)到高電平,直接跳轉(zhuǎn)回標(biāo)號(hào)LOP30_1處,不延時(shí)CX也不自增。5次計(jì)滿,則退出循環(huán)。這樣,通過對(duì)PC6口高電平的檢測(cè)就可以記錄黃燈閃爍的次數(shù),實(shí)現(xiàn)黃燈的5次閃爍。7.程序清單原程序STACK SEGMENT STACK 'STACK' DW 128 DUP(?) STACK ENDS DATA SEG

14、MENT ;定義8255和8253各端口地址數(shù)據(jù) PA8255 EQU 00F8H PB8255 EQU 00FAH PC8255 EQU 00FCH CON8255 EQU 00FEH CLK08253 EQU 00F0H CLK18253 EQU 00F2H CLK28253 EQU 00F4H CON8253 EQU 00F6H DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START: PUSH DS SUB AX,AX PUSH AX MOV AX,DATA MOV DS,AX MOV DX,CON8253 ;初始化82

15、53通道0 MOV AL,36H ;0011 0110 OUT DX,AL MOV DX,CLK08253 MOV AX,2710H OUT DX,AL MOV AL,AH OUT DX,AL ;通道0初始化完成,工作方式3,初始計(jì)數(shù)值為10000,則其周期為0.01s MOV DX,CON8253 ;通道2初始化完成,工作方式3,計(jì)數(shù)初值為100,由 CLK0輸入以后周期為1s MOV AL,96H ;1001 0110 OUT DX,AL MOV DX,CLK28253 MOV AL,64H OUT DX,AL MOV DX,CON8255 MOV AL,80H OUT DX,AL ;82

16、55初始化完成,A、B、C均工作在方式0,即基本的輸入輸出 MOV AL,0 ;初始化各燈的狀態(tài) MOV DX,PA8255 OUT DX,AL ;紅燈全亮 MOV DX,PB8255 MOV AL,0FH OUT DX,AL ;黃燈全滅 MOV DX,PC8255 MOV AL,0FH OUT DX,AL ;綠燈全滅 CALL DELAY BEGIN: MOV DX,CON8255 MOV AL,80H OUT DX,AL MOV AL,0 MOV DX,PB8255 OUT DX,AL MOV DX,PA8255 MOV AL,05H OUT DX,AL ;05H=00000101,2、4

17、紅燈亮 MOV DX,PB8255 MOV AL,0FH OUT DX,AL ;0FH=00001111,黃燈全滅 MOV DX,PC8255 MOV AL,0AH OUT DX,AL ;0AH=00001010,1、3綠燈亮 CALL DELAY MOV DX,CON8253 MOV AL,70H ; OUT DX,AL ;通道1初始化完成,工作方式0 0111 0000 MOV DX,CLK18253 MOV AX,03E8H OUT DX,AL MOV AL,AH OUT DX,AL ;03e8H=1000,即通道1的計(jì)數(shù)值為1000,也就是10s(與實(shí)際有出入,實(shí)際為30秒) LOP3

18、0_1: MOV AL,0 ;掃描PC7口是否有高電平輸入 MOV DX,CON8255 MOV AL,88H ;88 OUT DX,AL ;改PC口為輸入方式,準(zhǔn)備讀入PC7的值 MOV DX,PC8255 IN AL,DX AND AL,80H ;取最高位即PC7的值 CMP AL,80H JNZ LOP30_1 ;未檢測(cè)到高電平則繼續(xù)循環(huán)檢測(cè) MOV DX,CON8255 MOV AL,80H OUT DX,AX MOV DX,PA8255 MOV AL,05H ;05H=00000101 OUT DX,AL MOV DX,PC8255 MOV AL,0FH ;0FH=00001111

19、OUT DX,AL ;1、3綠燈滅 MOV DX,PB8255 MOV AL,0AH ;0AH=00001010 OUT DX,AL ;1、3黃燈開始閃 MOV CX,0 LOP5_1: MOV DX,CON8255 ;檢測(cè)PC6高電平 MOV AL,88H OUT DX,AL ;改PC口為輸入方式,準(zhǔn)備讀入PC6 MOV DX,PC8255 IN AL,DX AND AL,40H ;取PC6 CMP AL,40H JNZ LOP5_1 ;如果不是高電平則不需要進(jìn)行延時(shí) CALL DELAY INC CX CMP CX,05H JNZ LOP5_1 MOV DX,CON8255 MOV AL,

20、80H OUT DX,AL MOV AL,0 MOV DX,PB8255 OUT DX,AL MOV DX,PA8255 MOV AL,0AH OUT DX,AL ;05H=00000101,2、4紅燈亮 MOV DX,PB8255 MOV AL,0FH OUT DX,AL ;0FH=00001111,黃燈全滅 MOV DX,PC8255 MOV AL,0DH OUT DX,AL ;0AH=00001010,1、3綠燈亮 CALL DELAY MOV DX,CON8253 ;重新寫入方式控制字,0方式, MOV AL,70H OUT DX,AL MOV DX,CLK18253 MOV AX,0

21、3E8H OUT DX,AL MOV AL,AH OUT DX,AL ;03e8H=1000,即通道1的計(jì)數(shù)值為1000,也就是10s(與實(shí)際有出入,實(shí)際為30秒) LOP30_2: MOV AL,0 ;掃描PC7口是否有高電平輸入 MOV DX,CON8255 MOV AL,88H ;88 OUT DX,AL ;改PC口為輸入方式,準(zhǔn)備讀入PC7的值 MOV DX,PC8255 IN AL,DX AND AL,80H ;取最高位即PC7的值 CMP AL,80H JNZ LOP30_2 ;未檢測(cè)到高電平則繼續(xù)循環(huán)檢測(cè) MOV DX,CON8255 MOV AL,80H OUT DX,AX MOV DX,PA8255 MOV AL,0AH ;0FH=00001111 OUT DX,AL MOV DX,PC8255 MOV AL,0FH ;0FH=00001111 OUT DX,AL ;1、3綠燈滅 MOV DX,PB8255 MOV AL,0DH ;0AH=00001010 OUT DX,AL ;1、3黃燈開始閃爍 MOV CX,0 LOP5_2: MOV DX,CON8255 ;檢測(cè)PC6高電平 MOV AL,88H

溫馨提示

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

評(píng)論

0/150

提交評(píng)論