微機原理與接口技術(shù)課程設(shè)計---交通燈顯示系統(tǒng)_第1頁

文檔簡介

1、<p>  微機原理與接口技術(shù)課程設(shè)計</p><p>  題 目: 交通燈顯示系統(tǒng) </p><p>  學(xué) 院: 計算機科學(xué)與技術(shù)學(xué)院 </p><p><b>  設(shè)計任務(wù)</b></p><p>  利用唐都實驗箱,模擬十字路口交通燈顯示系統(tǒng)。</p

2、><p><b>  具體要求如下:</b></p><p>  一:東西與南北的交通燈定時30秒交換紅綠燈一次。</p><p>  二:每次紅綠燈交換之間要求黃色燈閃爍3秒。</p><p>  三:在緊急車輛(如消防車、救護車)通過時,四邊街道均顯示紅燈,以便緊急車輛順利通過,而其它車輛暫停行駛。緊急車輛通過后,交通燈

3、自動恢復(fù)原來的顏色標志。</p><p>  四:當(dāng)一個方向綠燈亮后6秒無車通過則切換到另一路綠燈亮。</p><p>  五:在數(shù)碼管上顯示已計時多少時間。</p><p><b>  二.方案設(shè)計</b></p><p>  本實驗用到的芯片有8253、8255A、8259A,其中8253利用計數(shù)器2來計時,8255

4、A的A、B口作輸出與七段顯示數(shù)碼管和發(fā)光二極管連接,8259A用來中斷控制及緊急情況。</p><p>  三.電路原理圖、接線圖</p><p><b>  1.實物接線圖</b></p><p><b>  2.硬件接線圖</b></p><p>  四.程序流程圖 延時子程

5、序:</p><p><b>  YN</b></p><p><b>  N</b></p><p><b>  N</b></p><p><b>  Y</b></p><p><b>  五.源代碼</b&

6、gt;</p><p>  STACKSEGMENTSTACK</p><p>  DB64DUP(?)</p><p>  STACKENDS</p><p>  DATASEGMENT</p><p>  MSG1DB'START', 0AH, 0DH, 00H</p>

7、<p>  MSG2DB'STOP', 0AH, 0DH, 00H</p><p>  MSG3DB'NO CAR', 0AH, 0DH, 00H</p><p>  MSG4DB'RESTART', 0AH, 0DH, 00H</p><p>  TABLEDB3FH, 06H, 5BH,

8、 4FH, 66H, 6DH, 7DH, 07H, 7FH, 6FH</p><p>  LEDDB4DUP(0)</p><p>  COUNTDB0</p><p>  FLAG1DB1</p><p>  FLAG2DB0</p><p><b>  DATAENDS</b&g

9、t;</p><p>  CODESEGMENT</p><p>  ASSUMECS:CODE, DS:DATA, SS:STACK</p><p>  RUNMACROADDR ;宏調(diào)用,數(shù)碼管兩位顯示</p><p>  LEADI, ADDR</p><p>  MOVAX,[DI]&

10、lt;/p><p>  AAD ;除法非壓縮指令(AH)<-(AH)*10+(AL),(AH)<-0</p><p><b>  DECAL</b></p><p>  CMPAL, 0</p><p>  AAM ;乘法非壓縮指令,將(AL)/0AH,(AH

11、)<-商,(AL)<-余數(shù)</p><p>  MOV[DI], AX</p><p><b>  ENDM</b></p><p>  INFMACROMSG</p><p>  MOVAH, 06H</p><p>  LEABX, MSG</p><

12、p><b>  INT10H</b></p><p><b>  ENDM</b></p><p>  START:MOVAX, DATA</p><p>  MOVDS, AX</p><p>  PUSHDS </p><p>  MOV A

13、X, 0000H</p><p>  MOVDS, AX</p><p>  LEAAX, IRQ7 ;取中斷程序入口地址</p><p>  ADDAX, 2000H ;IP=2000H</p><p>  MOVSI, 003CH ;中斷7的中斷向量</p><p>  MOV[SI], AX

14、 ;填偏移量矢量</p><p>  MOVAX, 0000H ;段地址CS=0000</p><p>  MOVSI, 003EH </p><p>  MOV[SI], AX ;填段地址矢量</p><p>  LEAAX, IRQ6</p><p>  ADDAX, 2000H</p

15、><p>  MOVSI, 0038H</p><p>  MOV[SI], AX</p><p>  MOVAX, 0000H</p><p>  MOVSI, 003AH</p><p>  MOV[SI], AX</p><p>  LEAAX, IRQ2</p>&

16、lt;p>  ADDAX, 2000H</p><p>  MOVSI, 0028H</p><p>  MOV[SI], AX</p><p>  MOVAX, 0000H</p><p>  MOVSI, 002AH</p><p>  MOV[SI], AX</p><p&g

17、t;  LEAAX, IRQ1</p><p>  ADDAX, 2000H</p><p>  MOVSI, 0024H</p><p>  MOV[SI], AX</p><p>  MOVAX, 0000H</p><p>  MOVSI, 0026H</p><p>  MO

18、V[SI], AX</p><p><b>  CLI</b></p><p><b>  POPDS</b></p><p>  INAL, 21H</p><p>  ANDAL, 39H</p><p>  OUT21H, AL</p><

19、p><b>  INFMSG1</b></p><p>  MOVAL, 80H ;A、B輸出,方式0</p><p>  OUT63H, AL ;8255A控制寄存器</p><p>  MOVAL, 0B6H ;計數(shù)器2,方式3,二進制</p><p>  OUT43H, AL

20、 ;8253控制寄存器</p><p>  MOVAX, 0000H</p><p>  OUT42H, AL</p><p>  MOVAL, AH</p><p>  OUT42H, AL</p><p><b>  STI</b></p><p>  A0:

21、CALLGO1</p><p><b>  CALLGO2</b></p><p><b>  CALLGO3</b></p><p><b>  CALLGO4</b></p><p><b>  JMPA0</b></p>

22、<p>  GO1PROCNEAR </p><p>  LEADI, LED</p><p>  MOVAX, 0207H</p>

23、<p>  MOV[DI], AX</p><p>  MOVAX, 0300H</p><p>  MOV[DI+2], AX</p><p>  A1:CMPFLAG1, 0</p><p><b>  JZA2</b></p><p>  MOVAL, 1011110

24、1B ;紅燈2:27秒 綠燈1:30秒</p><p>  OUT61H, AL </p><p><b>  CALLDISP</b></p><p>  CMPCOUNT, 15</p><p><b>  JLA1</b></p><p>  MOV

25、COUNT, 0</p><p><b>  RUNLED</b></p><p><b>  CMPAX, 0</b></p><p><b>  JZA2</b></p><p><b>  RUNLED+2</b></p>&l

26、t;p><b>  CMPAX, 0</b></p><p><b>  JZA2</b></p><p><b>  JMPA1</b></p><p>  A2:MOVFLAG1, 0</p><p><b>  RET</b><

27、;/p><p><b>  GO1ENDP</b></p><p>  GO2PROCNEAR</p><p>  LEADI, LED</p><p>  MOVAX, 0003H </p><p>  MOV[DI], AX</p><p>  MOV

28、AX, 0003H</p><p>  MOV[DI+2], AX</p><p>  A3:CALLDISP</p><p>  CMPCOUNT, 15</p><p><b>  JLA3</b></p><p>  MOVCOUNT, 0</p><p>

29、;  MOVAL, 11111001B ; 黃燈2:3秒 綠燈1:3秒</p><p>  OUT61H, AL </p><p>  CALLDELLY</p><p>  MOVAL, 11111101B</p><p>  OUT61H, AL </p><p><b>  RUNL

30、ED</b></p><p><b>  CMPAX, 0</b></p><p><b>  JZA4</b></p><p><b>  RUNLED+2</b></p><p><b>  JMPA3</b></p>

31、<p><b>  A4:RET</b></p><p><b>  GO2ENDP</b></p><p>  GO3PROCNEAR </p><p>  LEADI, LED</p><p>  MOVAX, 0300H</p>&l

32、t;p>  MOV[DI], AX</p><p>  MOVAX, 0207H</p><p>  MOV[DI+2], AX</p><p>  A5:CMPFLAG1, 1</p><p><b>  JZA6</b></p><p>  MOVAL, 01111110B

33、 ;綠燈2:30秒 紅燈1:27秒</p><p>  OUT61H, AL </p><p><b>  CALLDISP</b></p><p>  CMPCOUNT, 15</p><p><b>  JLA5</b></p><p>  MOV

34、COUNT, 0</p><p><b>  RUNLED</b></p><p><b>  CMPAX, 0</b></p><p><b>  JZA6</b></p><p><b>  RUNLED+2</b></p>&

35、lt;p><b>  CMPAX, 0</b></p><p><b>  JZA6</b></p><p><b>  JMPA5</b></p><p>  A6:MOVFLAG1, 1</p><p><b>  RET</b>&l

36、t;/p><p><b>  GO3ENDP</b></p><p>  GO4PROCNEAR</p><p>  LEADI, LED</p><p>  MOVAX, 0003H</p><p>  MOV[DI], AX</p><p>  MOVAX,

37、 0003H</p><p>  MOV[DI+2], AX</p><p>  A7:CALLDISP</p><p>  CMPCOUNT, 15</p><p><b>  JLA7</b></p><p>  MOVCOUNT, 0</p><p>  

38、MOVAL, 11101110B ;綠燈2:3秒 黃燈1:3秒</p><p>  OUT61H, AL </p><p>  CALLDELLY</p><p>  MOVAL, 11111110B</p><p>  OUT61H, AL </p><p><b>  RUNLED

39、</b></p><p><b>  CMPAX, 0</b></p><p><b>  JZA8</b></p><p><b>  RUNLED+2</b></p><p><b>  JMPA7</b></p>&

40、lt;p><b>  A8:RET</b></p><p><b>  GO4ENDP</b></p><p>  IRQ1:MOVFLAG2, 1 ;重新開始</p><p>  MOVAL, 20H </p><p>  OUT20H, AL</p>

41、<p><b>  IRET</b></p><p>  IRQ2:MOVAL, 00111111B ;暫停</p><p>  OUT61H, AL</p><p><b>  INFMSG2</b></p><p><b>  STI</b>&

42、lt;/p><p>  MOVFLAG2, 0</p><p>  I3:CALLDISP</p><p>  CMPFLAG2, 0</p><p><b>  JZI3</b></p><p><b>  INFMSG4</b></p><p&

43、gt;  MOVAL, 20H</p><p>  OUT20H, AL</p><p><b>  IRET</b></p><p>  IRQ6:INFMSG3 ;在LED顯示到計時24秒以下(6秒內(nèi)某一方向無車</p><p>  STI 輛通過),按動K0切換到另

44、一方向綠燈車輛通過</p><p>  LEADI, LED</p><p>  MOVAX, 0205H</p><p>  CMPFLAG1,0</p><p><b>  JZI4</b></p><p>  CMP[DI+2], AX</p><p>&l

45、t;b>  JGI5</b></p><p>  MOVFLAG1, 0</p><p><b>  JMPI5</b></p><p>  I4:CMP[DI], AX</p><p><b>  JGI5</b></p><p>  MOV

46、FLAG1, 1</p><p>  I5:MOVAL, 20H</p><p>  OUT20H, AL</p><p><b>  IRET</b></p><p>  IRQ7:INCCOUNT</p><p>  MOVAL, 20H</p><p> 

47、 OUT20H, AL</p><p><b>  IRET</b></p><p>  DISPPROCNEAR</p><p>  LEADI,LED</p><p>  MOVCL, 0FEH</p><p>  D1:MOVAL, CL</p><p>

48、;  TESTAL, 10H ;測試指令,最高位為1則轉(zhuǎn)移,否則順序執(zhí)行</p><p><b>  JZD2</b></p><p>  OUT62H, AL</p><p>  ROLAL, 01H</p><p>  MOVCL, AL</p><p>  MOVAL, [

49、DI]</p><p>  LEABX, TABLE</p><p>  XLAT ;換碼指令,將TABLE中的數(shù)顯示到數(shù)碼管上</p><p>  OUT60H, AL</p><p>  CALLDELLY</p><p><b>  INCDI</b></p&g

50、t;<p><b>  JMPD1</b></p><p><b>  D2:RET</b></p><p><b>  DISPENDP</b></p><p>  DELLYPROCNEAR ;延時子程序</p><p><b>  

51、PUSHCX</b></p><p>  MOVCX, 1000</p><p>  D3:LOOPD3</p><p><b>  POPCX</b></p><p><b>  RET</b></p><p>  DELLYENDP</p&g

52、t;<p><b>  CODEENDS</b></p><p><b>  ENDSTART</b></p><p><b>  六.實驗結(jié)果分析 </b></p><p>  在8259A芯片中,所用的中斷有IRQ1、IRQ2、IRQ6、IRQ7,其中IRQ1與KK1+連接來控制

53、繼續(xù),IRQ2與KK2+連接控制暫停,IRQ6與K0連接控制緊急情況時的切換,IRQ7與8253的OUT2相連來控制延時。剛開始設(shè)定十字路口東西方向為紅燈27秒,南北方向綠燈30秒,因為在紅燈轉(zhuǎn)為綠燈時,要經(jīng)過黃燈緩沖的3秒,接下來東西方向為黃燈3秒,而南北方向還是綠燈3秒;然后變換為東西方向綠燈30秒,南北方向紅燈27秒,接著東西方向不變還是綠燈3秒,南北方向為黃燈3秒,最后返回到開始。在這一過程中,按動KK2實現(xiàn)暫停功能,再按KK1

54、交通燈繼續(xù)恢復(fù)原來的狀態(tài)。</p><p>  如果在十字路口出現(xiàn)緊急情況,如消防車、救護車要通過,可以按動KK2暫停,使東西南北其他車輛不允許通過,等到緊急情況結(jié)束后,按動KK1開關(guān)恢復(fù)。</p><p>  如果在某一方向(綠燈)6秒內(nèi)無車輛通過,我們觀察七段顯示數(shù)碼管,當(dāng)時間倒計時為24秒以下,此時按動開關(guān)K0,可以變換為另一方向綠燈車輛通過,同時黃燈閃爍3秒;如果在某一方向(綠燈)

55、倒計時還沒到24秒以下,按動開關(guān)K0不起作用,直到6秒內(nèi)確認無車輛通過時才具有此功能。</p><p><b>  七.總結(jié)與體會</b></p><p>  這次的交通燈顯示系統(tǒng)的設(shè)計對我們來說是一大挑戰(zhàn),通過近一周的努力,我們更加熟悉8253、8255A、8259A這些芯片,對它們的理解也進一步提高。在設(shè)計過程中,我們查閱了許多資料,得到了老師及其他同學(xué)的指導(dǎo),通

溫馨提示

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

評論

0/150

提交評論