微機課程設計---帶數(shù)碼管顯示的交通燈模擬控制系統(tǒng)設計_第1頁
已閱讀1頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  微機原理課程設計</b></p><p>  題 目 帶數(shù)碼管顯示的交通燈模擬控制系統(tǒng)設計 </p><p>  課 程 名 稱 微機原理及應用A </p><p>  課題名稱 帶數(shù)碼管顯示的交通燈模擬控制系統(tǒng)設計</p><p><b>  一、概述</b

2、></p><p>  在STAR ES598PCI實驗系統(tǒng)的基礎上,應用可編程并行接口8255、定時/計數(shù)器8253、可編程中斷控制器8259等I/O接口芯片,設計一個十字路口交通信號燈模擬控制系統(tǒng)。</p><p><b>  二、設計目的</b></p><p>  通過設計一個十字路口交通燈系統(tǒng)掌握8255、8253、8259等接

3、口芯片的編程和應用方法,做到理論聯(lián)系實際。</p><p><b>  三、設計要求</b></p><p>  要求繪制流程圖、編寫源程序,并在實驗系統(tǒng)上調(diào)試通過程序。</p><p><b>  四、設計內(nèi)容</b></p><p>  1、十字路口交通信號燈設置</p><

4、p>  某十字路口交通信號燈系統(tǒng)在4個路口均裝設紅、綠2個燈,并裝設數(shù)碼管顯示倒計時。</p><p>  圖1 交通信號燈設置</p><p>  實驗時用LED(發(fā)光二極管)代替十字路口的紅綠燈。</p><p>  2、交通信號燈亮滅規(guī)律</p><p>  交通信號燈系統(tǒng)初始狀態(tài)為所有紅燈閃爍N1秒鐘(不必在數(shù)碼管顯示);之后

5、東西向車行道綠燈亮,車輛放行N秒鐘,此時南北向車行道紅燈亮,之后轉(zhuǎn)為南北向車行道放行N秒鐘,如此循環(huán)重復。要求數(shù)碼管能夠顯示倒計時。</p><p><b>  參數(shù)選擇:</b></p><p>  N=20s/25s…85s/90s(每隔5s取一個秒數(shù))</p><p>  N1≤10s,閃爍次數(shù)為3~8次</p><p

6、>  每組自行選擇N、N1(及閃爍次數(shù))。</p><p><b>  3、參考方案</b></p><p>  采用8255、8253、8259組成系統(tǒng),采用8253產(chǎn)生定時,運用8259采用中斷法編寫程序。</p><p>  如果加入緊急車輛通過功能或其他任何先進功能,可根據(jù)具體情況加創(chuàng)新分。</p><p>

7、;<b>  一、硬件設計</b></p><p><b>  源程序清單</b></p><p>  DATA SEGMENT</p><p>  TAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH</p><p>  COUNT DB ?</p

8、><p>  SCAN DW 485 ;掃描次數(shù)</p><p><b>  DATA ENDS</b></p><p>  CODE SEGMENT</p><p>  ASSUME CS:CODE , DS:DATA,SS:STCK</p&g

9、t;<p>  START:MOV AX,DATA</p><p><b>  MOV DS,AX</b></p><p><b>  MOV ES,AX</b></p><p><b>  NOP</b></p><p>  MOV DX,K8255K

10、 ;寫8255控制字,A,B,C均為輸出,方式0</p><p>  MOV AL,80H</p><p><b>  OUT DX,AL</b></p><p>  START1: MOV DX,K8255C ;C口輸出,控制燈</

11、p><p><b>  MOV CX,4</b></p><p>  FLASH: MOV AL,RED_ON ;紅燈亮</p><p><b>  OUT DX,AL</b></p><p>  CALL DELAY

12、 ;調(diào)延時</p><p>  MOV AL,RED_OFF ;紅燈滅</p><p><b>  OUT DX,AL</b></p><p>  CALL DELAY</p><p>  LOOP FLASH </p>

13、<p>  START2: MOV DX,ADD8253_C ;寫8253控制字</p><p>  MOV AL,37H ;0#計數(shù)器,讀寫16位低高字節(jié),方式三,BCD碼</p><p><b>  OUT DX,AL</b></p><p>  MOV AX,1000H

14、 ;寫0#的計數(shù)初值1000H,根據(jù)輸入設定2M=1000H*2000</p><p>  MOV DX,ADD8253_0</p><p><b>  OUT DX,AL</b></p><p><b>  MOV AL,AH</b></p><p><b>  OUT DX,AL<

15、;/b></p><p>  MOV DX,ADD8253_C ;寫8253控制字</p><p>  MOV AL,77H ;1#計數(shù)器,讀寫16位低高字節(jié),方式三,BCD碼</p><p><b>  OUT DX,AL</b></p><p>  MO

16、V AX,2000H ;寫1#計數(shù)初值2000H,根據(jù)輸入設定,方波頻率1HZ</p><p>  MOV DX,ADD8253_1</p><p><b>  OUT DX,AL</b></p><p><b>  MOV AL,AH</b></p><p><

17、b>  OUT DX,AL</b></p><p>  MOV COUNT,COUNTER ;寫計數(shù)值(紅綠燈變換的間隔時間)</p><p>  CALL Init8259 ;調(diào)8259初始化子程序</p><p>  CALL WriIntver_8

18、 ;調(diào)寫中斷向量表子程序</p><p>  CALL WriIntver_9 ;調(diào)寫中斷向量表子程序</p><p>  MOV CL,E_W</p><p><b>  MOV AL,CL</b></p><p>  MOV DX,K8255C</p><p>

19、;<b>  OUT DX,AL</b></p><p><b>  STI</b></p><p><b>  NOP</b></p><p>  START3: JMP $ ;給出中斷以外CPU的工作</p><p>  Init8

20、259 PROC NEAR ;8259初始化子程序</p><p>  MOV DX,IO8259_0 ;寫ICW1,邊沿觸發(fā),單片,需寫ICW4</p><p>  MOV AL,13H</p><p><b>  OUT DX,AL</b></p>

21、<p>  MOV DX,IO8259_1 ;寫ICW2,確定中斷類型號</p><p>  MOV AL,08H</p><p><b>  OUT DX,AL</b></p><p>  MOV AL,09H ;寫ICW4</p><p>

22、<b>  OUT DX,AL</b></p><p>  MOV AL,0FCH ;寫OCW1,除IR0、IR1全屏蔽</p><p><b>  OUT DX,AL</b></p><p><b>  RET</b></p><p>

23、  Init8259 ENDP</p><p>  WriIntver_9 PROC NEAR ;寫中斷向量表子程序</p><p><b>  PUSH ES</b></p><p><b>  MOV AX,0</b></p><p><b&

24、gt;  MOV ES,AX</b></p><p>  MOV DI,24H ;中斷類型號9,對應24H,25H,26H,27H四個單元</p><p>  LEA AX,INT_9 ;取中斷服務程序IP</p><p><b>  STOSW</b>

25、;</p><p>  MOV AX,CS ;取中段服務程序CS</p><p><b>  STOSW</b></p><p><b>  POP ES</b></p><p><b>  RET</b></p>

26、<p>  WriIntver_9 ENDP</p><p>  WriIntver_8 PROC NEAR ;寫中斷向量表子程序</p><p><b>  PUSH ES</b></p><p><b>  MOV AX,0</b></p>&

27、lt;p><b>  MOV ES,AX</b></p><p>  MOV DI,20H ;中斷類型號8,對應20H,21H,22H,23H四個單元</p><p>  LEA AX,INT_8 ;取中斷服務程序IP</p><p><b>  

28、STOSW</b></p><p>  MOV AX,CS ;取中段服務程序CS</p><p><b>  STOSW</b></p><p><b>  POP ES</b></p><p><b>  RET</b

29、></p><p>  WriIntver_8 ENDP</p><p>  INT_9:MOV AL,COUNT</p><p>  SUB AL,01H</p><p><b>  DAS </b></p><p>  MOV COUNT,AL

30、 ;中斷服務程序</p><p><b>  PUSH AX</b></p><p>  PUSH DX </p><p><b>  PUSH BX</b></p><p><b>  PUSH CX</b></p&g

31、t;<p>  PUSH SCAN ;保護循環(huán)值,否則取數(shù)碼管顯示會破壞</p><p>  LOO: MOV AL,55H</p><p>  MOV DX, K8255A</p><p><b>  OUT DX,AL</b></p><p>  MOV

32、 AL,COUNT ;選高位數(shù)碼管 </p><p>  MOV AH,AL ;暫存AH</p><p><b>  MOV CL,4</b></p><p><b>  SHR AL,CL</b></p>

33、<p>  LEA BX,TAB</p><p>  XLAT ;十進制轉(zhuǎn)數(shù)碼管編碼</p><p>  MOV DX, K8255B</p><p>  OUT DX,AL ;顯數(shù)</p><p>  

34、CALL DL1ms ;調(diào)延時</p><p><b>  MOV AL,0</b></p><p>  OUT DX,AL ;清除</p><p>  MOV AL,0AAH </p><

35、;p>  MOV DX, K8255A</p><p>  OUT DX,AL ;選低位數(shù)碼管 </p><p>  MOV AL,AH </p><p><b>  SHL AL,CL</b></p><p&g

36、t;  SHR AL,CL </p><p>  XLAT ;十進制轉(zhuǎn)數(shù)碼管編碼</p><p>  MOV DX, K8255B</p><p>  OUT DX,AL ;顯數(shù) </p><p>  CALL

37、 DL1ms</p><p><b>  MOV AL,0</b></p><p>  OUT DX,AL ;清除</p><p>  DEC SCAN </p><p>  CMP SCAN,0</p>

38、;<p>  JNZ LOO ;循環(huán)掃描</p><p><b>  POP SCAN</b></p><p><b>  POP CX</b></p><p>  CMP COUNT,0</p><p>  

39、JNZ STOP ;計數(shù)到零則重新置數(shù),并將燈取反,未到零則直接結(jié)束中斷子程序</p><p>  MOV COUNT,COUNTER</p><p><b>  NOT CL</b></p><p><b>  MOV AL,CL</b></p><p>  MOV DX,K

40、8255C</p><p><b>  OUT DX,AL</b></p><p>  STOP: MOV DX,IO8259_0 ;結(jié)束中斷服務,寫OCW2,給8259送EOI命令,LSR1清零</p><p>  MOV AL,20H</p><p><b>  OUT DX,AL</b>&l

41、t;/p><p><b>  POP BX</b></p><p><b>  POP DX</b></p><p><b>  POP AX</b></p><p><b>  IRET</b></p><p>  INT_8:PUS

42、H DX</p><p><b>  PUSH AX</b></p><p><b>  PUSH CX</b></p><p>  MOV DX,K8255C ;C口輸出,控制燈</p><p><b>  MOV CX,4</b></p>&

43、lt;p>  A: MOV AL,RED_ON ;紅燈亮</p><p><b>  OUT DX,AL</b></p><p>  CALL DELAY ;調(diào)延時</p><p>  MOV AL,RED_OFF ;紅燈滅</p><p

44、><b>  OUT DX,AL</b></p><p>  CALL DELAY</p><p><b>  LOOP A</b></p><p>  MOV DX,IO8259_0 ;結(jié)束中斷服務,寫OCW</p><p><b>  POP CX</b></

45、p><p>  MOV DX,K8255C</p><p><b>  MOV AL,CL</b></p><p><b>  OUT DX,AL</b></p><p><b>  POP AX</b></p><p><b>  POP DX&

46、lt;/b></p><p><b>  IRET</b></p><p>  DELAY PROC;延時子程序</p><p><b>  PUSH BX</b></p><p><b>  PUSH CX</b></p><p>  MOV B

47、X,04H</p><p>  DELAY1:MOV CX,0FFFFH</p><p><b>  LOOP $</b></p><p><b>  DEC BX</b></p><p>  JNZ DELAY1</p><p><b>  POP CX</

48、b></p><p><b>  POP BX</b></p><p><b>  RET </b></p><p>  DELAY ENDP </p><p>  DL1ms PROC NEAR</p><p><b>  PUSH AX</b&g

49、t;</p><p><b>  PUSH CX</b></p><p>  MOV AX,0100H</p><p>  MOV CX,AX</p><p><b>  LOOP $</b></p><p><b>  POP CX</b><

50、;/p><p><b>  POP AX</b></p><p><b>  RET</b></p><p>  DL1ms ENDP</p><p><b>  CODE ENDS</b></p><p>  END START </p>

51、;<p><b>  三、調(diào)試現(xiàn)象</b></p><p>  程序調(diào)試時,交通信號燈系統(tǒng)初始狀態(tài)為所有紅燈閃爍4次,數(shù)碼管此時不顯示;系統(tǒng)初始狀態(tài)之后東西向車行道綠燈亮,南北向車道紅燈亮,此時數(shù)碼管從60秒倒計時;當數(shù)碼管數(shù)字減為0時,東西向、南北向紅綠燈交換亮,即南北向車行道綠燈亮,東西向車道紅燈亮,此時數(shù)碼管重新從60秒開始計數(shù),數(shù)碼管數(shù)字減為0秒后,紅綠燈再次交換,如此

溫馨提示

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

評論

0/150

提交評論