微機原理交通燈控制實驗及其詳細.doc

(5頁)

'微機原理交通燈控制實驗及其詳細.doc'
? 交通燈信號控制實驗一、實驗目的1、掌握并行接口8253的基本原理2、掌握8253的編程方法二、實驗內容如圖,L7、L6、L5作為南北路口的交通燈與PC7、PC6、PC5相連,L2、L1、L0作為東西路口的交通燈與PC2、PC1、PC0相連。編程使六個燈按交通變化規律亮滅。三、編程提示1、8255控制寄存器地址: 28BH—0C40BH A口地址: 288H—04C408H C口地址: 28AH—04C40AH2、十字路口交通燈的變化規律要求(1) 南北路口的綠燈、東西路口的紅燈同時亮三秒;(2) 南北路口的黃燈閃爍三次,同時東西路口的紅燈繼續亮;(3) 南北路口的紅燈、東西路口的綠燈同時亮三秒;(4) 南北路口的紅燈繼續亮、同時東西路口的黃燈亮閃爍三次;(5) 轉(1)重復。3、程序設計流程開始返回DOS設置8255C口輸出南北路口的綠燈、東西路口的紅燈亮長延時南北路口的黃燈閃爍,東西路口紅燈亮南北路口的紅燈、東西路口的綠燈亮長延時南北路口紅燈亮、東西路口黃燈亮閃爍是否有鍵按下下?嗎?YN四、程序設計及實驗調試程序設計的思想及注意事項:1.首先是在選擇程序時是選用軟件延時還是硬件延時。我采用的是C口方式0輸入,所以選用了軟件延時。2.在選擇循環的時間上,老師上課時說過,長延時可以采用雙層嵌套,外層嵌套為0FFFFH,內層嵌套為4000H,我在編程時外層送進了0,相當于初值為65536,內層送進了4000H。為了達到閃爍和延時的區別,我在編閃爍的程序時,給外層嵌套送入初值3000H,內層0100H(這是我通過實驗的結果)。人眼感覺閃爍的效果只是短延時的結果。3.最后程序調用了6號功能鍵執行鍵盤輸入,當有輸入改變標志位時,則返回操作系統。南北紅南北黃南北綠東西紅東西黃東西綠亮亮閃爍亮亮亮亮閃爍亮亮實驗程序:CODE SEGMENTASSUME CS:CODE START: MOV DX,0C40BH MOV AL,10010000B ;C口方式0輸入 OUT DX,ALFIRST: MOV DX,0C40AH MOV AL,00100100B OUT DX,AL ;南北綠,東西紅寫入C口 MOV CX,0 ;送入初值65536 MOV AX,4000H ;軟件長延時,由經驗值確定DELAY1: DEC AX JNZ DELAY1 LOOP DELAY1 MOV BL,4 ;控制黃燈亮的次數SECOND:MOV DX,0C40AH MOV AL,01000100B OUT DX,AL ;南北黃,東西紅 MOV CX,3000H MOV AX,0100H LI1: DEC AX JNZ LI1 LOOP LI1 MOV DX,0C40AH ;軟件短延時 MOV AL,00000100B ;南北黃滅 OUT DX,AL MOV CX,3000H MOV AX,0100HWEN1: DEC AX JNZ WEN1 ;軟件短延時 LOOP WEN1 DEC BL JNZ SECOND ;黃燈閃爍4次THIRD: MOV DX,0C40AH ;寫入C口 MOV AL,10000001B OUT DX,AL ;南北紅,東西綠 MOV CX,0 MOV AX,4000HDELAY2: DEC AX ;軟件長延時 JNZ DELAY2 LOOP DELAY2 MOV BL,4 ;控制黃燈亮的次數FORTH: MOV DX,0C40AH ;寫入C口 MOV AL,10000010B OUT DX,AL ;南北紅,東西黃 MOV CX,3000H MOV AX,0100HLI2: DEC AX JNZ LI2 ;軟件短延時 LOOP LI2 MOV DX,0C40AH MOV AL,10000000B OUT DX,AL ;東西黃滅 MOV CX,3000H MOV AX,0100HWEN2: DEC AX JNZ WEN2 LOOP WEN2 DEC BL JNZ FORTH ;黃燈閃爍4次 MOV DL,0FFH MOV AH,06H INT 21H ;執行鍵盤輸入操作 JZ FIRST MOV AH,4CH INT 21H ;返回操作系統CODE ENDSEND START實驗中遇到問題及分析:1.首先,實驗出現的問題是在編程方面。由于自己使用了LOOP語句,而開始自己沒有注意LOOP WEN2相當于DEC CX JNZ WEN2,而自己在賦值時,對CX賦值有點混亂。編程時由于粗心,寫如C口的初值有錯,導致二極管沒能按預定結果亮,通過硬件結果,我很快發現了問題所在。2.實驗課上,自己認真聽老師說怎樣對六個燈進行賦值達到控制的結果,所以在編程時沒有將燈的順序搞混,在寫入8255的C口時比較順利。3.實驗時遇到了一些問題,有一個是按鍵下去返回操作系統。自己運行完執行文件,當按鍵下去返回操作系統時,卻發現執行文件沒有反應,而交通燈也在繼續亮。我查看了自己的程序,發現有MOV AH,06H INT 21H JZ FIRST MOV AH,4CH INT 21H 幾條語句,后來又試驗了幾次,并增加了停留時間,我最后發現是電腦運行較的問題。 4.對交通燈黃燈閃爍的時間控制問題上,我一次換了幾個值 外層嵌套 內層嵌套 0FFFFH 300H 3000H 300H 3000H 100H五、實驗結果及分析:程序執行后實驗板上首先是南北綠燈和東西紅燈亮,幾秒后南北向的黃燈閃爍兩次,東西向紅燈亮,之后南北向的紅燈和東西向的綠燈同時亮幾秒鐘,之后東西黃燈閃爍四次,南北紅燈亮。然后LED繼續以上循環,若在執行文件中有按鍵按下,則結束程序。本次編程中為了達到長延時的效果,我使用了雙層嵌套的方法,通過嵌套編程,我熟悉了子程序的編寫和調用。在延時語句的編寫時,可以使用執行指令和定時器定時兩種方法,我采用了執行指令(即軟件延時)的方法。在處理黃燈閃爍的問題時,我令黃燈在短延時情況下交替亮滅,并可通過設置BL的值控制黃燈閃爍次數,達到了預期目的。實驗時遇到了按鍵很慢才返回操作系統的問題。運行完執行文件,按鍵下去交通燈也在繼續亮。而程序中有MOV AH,06H INT 21H JZ FIRST MOV AH,4CH INT 21H 幾條語句,感覺這就是對毅力的考驗,通過反復實驗,發現可以返回,只是電腦反應較慢。六、實驗總結:本次實驗為8255A并行接口實驗,這次實驗在代碼編寫階段一開始找到了入手點。我在程序中使用了軟件延時,時長取決與循環次數和計算機的速度,一開始編制的程序中短延時采用了兩層循環,由于自己沒有實踐經驗,所以最后通過實驗結果確定了最后的數據。 通過此次程序設計,我認識到畫軟件流程圖的重要性,畫好流程圖后可以很清晰的看清邏輯,不僅加快了編寫過程,而且有利于出錯時查找問題所在。雖然這次實驗我是一步一步編程下來的,但是在調試結果時,仍發現了紅燈錯亮的問題,最后發現時寫程序時的粗心所致。
關 鍵 詞:
控制 實驗 及其 交通 原理 詳細 微機
 天天文庫所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:微機原理交通燈控制實驗及其詳細.doc
鏈接地址: http://www.476824.live/p-50982490.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服點擊這里,給天天文庫發消息,QQ:1290478887 - 聯系我們

本站為“文檔C2C交易模式”,即用戶上傳的文檔直接賣給(下載)用戶,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有【成交的100%(原創)】。本站是網絡服務平臺方,若您的權利被侵害,侵權客服QQ:1290478887 歡迎舉報。

[email protected] 2017-2027 http://www.476824.live 網站版權所有

粵ICP備19057495號 

收起
展開
球探网即时蓝球比分 广西快乐双彩今晚开奖号码 管家婆四肖精选期期了准 湖北11选5选号技巧 股票软件怎么玩 辽宁快乐12手机版投注 河北福彩快三中奖技巧 007真人娱乐城现金百家乐 北京快3直播玩法 什么股票短线 浙江快乐12走势图下载