微機原理交通信號燈課程設計
㈠ 微機原理交通指示燈的課程設計
電路設計的思路:
1、計時功能實現邏輯:
通過8253計數器0和計數器1級聯實現准確定時;用8255的A口低六位控制東西、南北路口交通燈的狀態;燈的亮滅可直接由8086輸出0,1控制。用8259A管理可屏蔽中斷即開機初始化。
採用兩個計數器級聯的方式, 並且計數器0工作於方式3用於產生方波信號,計數器1工作方式0,計數到時高電平信號。計數器1的輸出端OUT1接入8255晶元的PC0口,通過查詢8255的C口的值,以完成計時功能。將計數器0的輸出OUT0接到計數器1的輸入端CLK1,而CLK0的輸入採用1.19MHZ的時鍾頻率, 計數器0計數初值為59499=0E86BH,則OUT0=20HZ, 即計數器1的時鍾頻率為20HZ。
當計數器1的記數初值為9時,0.5S後OUT1輸出一高電平。8086通過讀取8255C口的值,來決定對A口寫入的數據。因此每隔0.5秒8086變換燈的狀態,持續6次即完成3秒的閃爍功能。
當計數器1的記數初值為899時,45S後OUT1輸出一高電平。通過查詢8255的C口PC0的狀態改變,達到延時45秒的作用。同理計數器1的計數初值分別為59、799時,分別為3、40秒的延時。
2、 解碼電路設計
通過分析8259、8253、8255各埠地址,設計合理的地址解碼電路。8259的地址為20H、21H,8253的地址為40H、41H、42H、43H,8255的埠地址為0F0H、0F1H、0F2H、0F3H。故晶元的地址只與8086的地址的低8位有聯系,不妨設高十二為全為1將它們相與後作為38解碼器的始能信號E3。再分析發現8259、8253、8255各埠地址的低八位其中D2、D3均為0,將8086的地址匯流排的D2、D3作為38解碼器的始能信號E1、E2。將8086的地址匯流排的D0、D1分別與8253和8255的A0、A1連接,利用D4、D5、D6、D7構成解碼電路。將8086的地址匯流排的D0與8259的A0連接,利用D2、D4、D5、D6、D7通過38解碼器構成解碼電路。
程序代碼:
*****************************************************************
MY8259_ICW1 EQU 20H ;實驗系統中 8259的ICW1埠地址
MY8259_ICW2 EQU 21H ;實驗系統中8259的ICW2埠地址
MY8259_ICW3 EQU 21H ;實驗系統中8259的ICW3埠地址
MY8259_ICW4 EQU 21H ;實驗系統中8259的ICW4埠地址
MY8259_OCW1 EQU 21H ;實驗系統中8259的OCW1埠地址
MY8259_OCW2 EQU 20H ;實驗系統中8259的OCW2埠地址
MY8259_OCW3 EQU 20H ;實驗系統中8259的OCW3埠地址
MY8253_COUNT0 EQU 40H ;實驗系統中8253計數器0埠地址
MY8253_COUNT1 EQU 41H ;實驗系統中8253計數器1埠地址
MY8253_COUNT2 EQU 42H ;實驗系統中8253計數器2埠地址
MY8253_MODE EQU 43H ;實驗系統中8253控制寄存器埠地址
MY8255_A EQU 0F0H ;實驗系統中8255的A口地址
MY8255_B EQU 0F1H ;實驗系統中8255的B口地址
MY8255_C EQU 0F2H ;實驗系統中8255的C口地址
MY8255_MODE EQU 0F3H ;實驗系統中8255的控制寄存器地址
*****************************************************************
DATA SEGMENT
CS_BAK DW ? ;保存INTR原中斷處理程序入口段地址的變數
IP_BAK DW ? ;保存INTR原中斷處理程序入口偏移地址的變數
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE ,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV AX,3508H
INT 21H
MOV IP_BAK, ES ;保存INTR原中斷處理程序入口偏移地址
MOV CS_BAK, BX ;保存INTR原中斷處理程序入口段地址
MOV AX,SEG INITIAL
MOV DS,AX
MOV DX,OFFSET INITIAL
MOV AX,2508H
INT 21H ;設置中斷向量
MOV DX,MY8259_ICW1 ; 初始化實驗系統中8259的ICW1
MOV AL,13H ;邊沿觸發、單片8259、需要ICW4
OUT DX,AL
MOV DX, MY8259_ICW2 ;初始化實驗系統中8259的ICW2
MOV AL,08H ;IR0中斷類型號
OUT DX,AL
MOV DX,MY8259_ICW4 ;初始化實驗系統中8259的ICW4
MOV AL,03H ;自動結束EOI
OUT DX,AL
MOV DX,MY8259_OCW1 ;初始化實驗系統中8259的OCW1
MOV AL,0FEH ;打開IR0的屏蔽位
OUT DX,AL
MOV AL,00H
MOV DX, MY8259_OCW2 ;初始化實驗系統中8259的OCW2,完成8259的初始化
OUT DX,AL
QUERY: MOV DX,MY8259_OCW3 ;向8259的OCW3發送查詢命令
MOV AL,0CH
OUT DX,AL
IN AL,DX ;讀出查詢字
TEST AL,80H ;判斷中斷是否已響應
JZ QUERY ;沒有響應則繼續查詢
AND AL,01H
CMP AL,00H
JNE QUERY ;若不是IR0請求,繼續查詢
L4: INT 08H ;調用08H中斷程序
CALL DELAY3S ;延時3秒
MOV DX,MY8255_A ;寫8255的A口
MOV AL,12H
OUT DX,AL ; L2、L5亮
CALL DELAY45S ;延時45秒
MOV CX, 03H ;周期1S,循環三次完成燈閃爍
L2: MOV DX,MY8255_A ;寫8255的A口
MOV AL,02H
OUT DX,AL ; L2亮 、L5滅
CALL DELAYHALFS ;延時0.5秒
MOV DX,MY8255_A
MOV AL,12H
OUT DX,AL ; L2、L5亮
CALL DELAYHALFS ;延時0.5秒
DEC CX
JNZ L2 ;L2亮,L5閃爍
MOV DX,MY8255_A ;寫8255的A口
MOV AL,06H
OUT DX,AL ; L2、L3亮
CALL DELAY3S ;延時3秒
MOV DX,MY8255_A ;寫8255的A口
MOV AL,21H
OUT DX,AL ; L1、L6亮
CALL DELAY45S ;延時40秒
MOV CX,03H ;周期1S,循環三次完成燈閃爍
L3: MOV DX,MY8255_A ;寫8255的A口
MOV AL,01H
OUT DX,AL ; L1亮 、L6滅
CALL DELAYHALFS ;延時0.5秒
MOV DX,MY8255_A ;寫8255的A口
MOV AL,21H
OUT DX,AL ; L1、L6亮
CALL DELAYHALFS ;延時0.5秒
DEC CX ;L1亮,L6閃爍
JNZ L3
MOV DX,MY8255_A ;寫8255的A口
MOV AL,09H
OUT DX,AL ; L1、L4亮
CALL DELAY3S ;延時3秒
JMP L4 ;循環一次完成,跳到L4重新開始循環
MOV AH,4CH
INT 21H ;返回DOS
INITIAL PROC ;中斷類型號08H的中斷子程序
MOV DX,MY8253_MODE ;對8253初始化
MOV AL,36H
OUT DX,AL
MOV AX, 0E86BH
MOV DX,MY8253_COUNT0
OUT DX,AL
MOV AL,AH
OUT DX,AL ;計數器0工作方式3 ,OUT0為頻率20HZ的方波
MOV DX, MY8255_MODE
MOV AL,89H
OUT DX,AL ;8255初始化完成 A口輸出,C口輸入
MOV DX,MY8255_A
MOV AL,03H
OUT DX,AL ;兩個紅燈L1、L2亮,燈初始化完成
IRET
INITIAL ENDP ;開機初始化完成
DELAY3S PROC ;延時3S子程序
MOV AL,51H
MOV DX,MY8253_MODE
OUT DX,AL
MOV AL,59H
MOV DX,MY8253_COUNT1
OUT DX,AL ;計數器1工作方式0 ,計數初值為59
L1: MOV DX, MY8255_C
IN AL,DX
CMP AL,01H
LOOPNZ L1
RET
DELAY3S ENDP
DELAY45S PROC ;延時45S子程序
MOV AL,71H
MOV DX,MY8253_MODE
OUT DX,AL
MOV AX,0899H
MOV DX,MY8253_COUNT1
OUT DX,AL
MOV AL,AH
OUT DX,AL ;計數器1工作方式0 ,計數初值為899
L5: MOV DX, MY8255_C
IN AL,DX
CMP AL,01H
LOOPNZ L5
RET
DELAY45S ENDP
DELAYHALFS PROC ;延時0.5S子程序
MOV AL,51H
MOV DX,MY8253_MODE
OUT DX,AL
MOV AL,09H
MOV DX,MY8253_COUNT1
OUT DX,AL ;計數器1工作方式0 ,計數初值為9
L6: MOV DX, MY8255_C
IN AL,DX
CMP AL,01H
LOOPNZ L6
RET
DELAYHALFS ENDP
DELAY40S PROC ;延時40S子程序
MOV AL,71H
MOV DX,MY8253_MODE
OUT DX,AL
MOV AX,0799H
MOV DX,MY8253_COUNT1
OUT DX,AL
MOV AL,AH
OUT DX,AL ;計數器1工作方式0 ,計數初值為799
L7: MOV DX, MY8255_C
IN AL,DX
CMP AL,01H
LOOPNZ L7
RET
DELAY40S ENDP
CODE ENDS
END START
㈡ 微機原理及應用課程設計--交通信號燈的控制
ORG 0000H
LJMP STAR1
A_BIT EQU 20H;數字的管店的內存位置
B_BIT EQU 21H個位數字數碼管的十位數字的存儲空間位置
TEMP EQU 22H;計數器的值存儲位置
STAR1:MOV TEMP,#20;初始化計數器60
CLR P1.0;南北方向的紅燈
CLR P1 0.5,東西方向綠燈
STLOP1:由ACALL和DISPLAY1;調用顯示子程序
DEC的TEMP 1
MOV A計數器減的TEMP;
CJNE A,#0,STLOP1;判斷計數器滿了嗎?「
SETB P1.0;南北方向的紅燈熄滅
SETB P1.5 ACALL和山綠色
由東向西方向的呼叫閃爍的黃燈過程 BR /> STAR2:MOV TEMP,#20;重新開始60秒倒計時
CLR P1.2;南北方向的綠燈
CLR P1.3;東方紅西方向
STLOP2:ACALL並顯示2;調用數碼管子程序
DEC TEMP;計數器減
MOV A,TEMP
CJNE A,#0,STLOP2以確定是否計數器?
SETB P1.2
SETB P1.3
ACALL山,子程序調用黃燈閃爍?
由SJMP STAR1;
DISPLAY1:MOV A,TEMP
MOV B,#10
DIV AB
MOV B_BIT,B位B BR /> MOV A_BIT,A;十
MOV DPTR,#NUMTAB;指定查找表啟起始地址
MOV R0,#12;
DPL1: MOV R1,#250;
DPLOP1:MOV A,A_BIT;個位數
MOVC A,@ A + DPTR;調查位數的7段碼
MOV P0,A;發送出去位7段碼
CLR P2.3;打開一個數字顯示
ACALL和D1MS所; 162微秒
SETB P2.3;關閉了一下,以防止鬼影
MOV A,B_BIT,以十位數
MOVC A _at_ A + DPTR;調查10位,7段碼
MOV P0,A;發送10七段碼
CLR至P2.2,開放的10顯著?
CLR P2.0
CLR P2.1
ACALL D1MS顯示
SETB P2.2 162微秒;近10個,以防止重影
> DJNZ R1 DPLOP1循環執行250次
DJNZ R0,DPL1流通實施250X4 = 1000
RET
DISPLAY2:MOV A,TEMP TEMP中的十六進制數轉換成十進制數 BR /> MOV B,#10; 10進制/ 10 =十進制
DIV AB;
MOV A_BIT,B,在B
MOV B_BIT 10,A;一個
MOV DPTR,#NUMTAB,
MOVC A指定的查找表的起始地址
MOV R0,#12;
DPL2:MOV R1,#250;
DPLOP2:MOV A,A_BIT帶數字,@ A + DPTR;調查數字的7段碼
MOV P0,A;發送的位7段碼
CLR P2。 0;打開一個位
ACALL和D1MS;
顯示162微秒SETB P2.0;關閉位,防止重影
MOV A,B_BIT十位數</ MOVC A _at_ A + DPTR;調查的10位數字的7段碼
MOV P0,A,派出10個7段碼
CLR P2.1,開放的十個重大
CLR P2.2 CLR P2.3
ACALL D1MS顯示
SETB P2.1,162微秒;關閉10
DJNZ R1 DPLOP2,防止重影;循環執行250次
DJNZ R0,DPL2循環執行250X4 = 1000
RET
山:MOV R3,#5;
ROUND:CLR P1.1; /> CLR P1.4;
ACALL DELAY;黃燈閃爍5
SETB P1.1,每次間隔一秒鍾
SETB P1.4;
ACALL延遲
DJNZ R3輪;
RET;
D1MS:MOV R7,#80; 2 +2 X80 = 162微秒的延遲計算12MHZ
DJNZ R7,美元;
RET;
DELAY:MOV R6,#10;
YL3:MOV R4,#100;
XL2:MOV R5,#71;
DL1:NOP;秒的延時子程序
NOP
NOP
NOP
NOP
DJNZ R5,DL1;
DJNZ R4,XL2;
DJNZ R6,YL3的; <br / RET;
共陰極數碼管顯示的代碼
NUMTAB一個:DB 03FH 0
END
㈢ 微機原理交通信號燈控制系統
摘要:[資料下載][字數: 311296 ] [目錄]一. 設計任務及要求: 二. 方案比較及評估論證:三.系統原理四.硬體原理及電路圖五.軟體思想六.總結:七.參考資料[原文]一.設計任務及要求: 交通信號燈的控制:1.通過8255A並口來控制LED發光二極體的亮滅。2.A口控制紅燈,B口控制黃燈,C口控制綠燈。3.輸出為0則亮,輸出為1則滅。4.用8253定時來控制變換時間 。要求:設有一個十字路口,1、3為南,北方向,2、4為東西方向,初始態為4個路口的紅燈全亮。之後,1、3路口的綠燈亮,2、4路口的紅燈亮,1、3路口方向通車。延遲30秒後,1、3路口的綠燈熄滅,而1,3路口的黃燈開始閃爍(1HZ)。閃爍5次後,1、3路口的紅燈亮,同時2、4路口的綠燈亮,2、4路口方向開始通車。延遲30秒時間後,2、4路口的綠燈熄滅,而黃燈開始閃爍。閃爍5次後,再切換到1、3路口方向。之後,重復上述過程。二.方案比較及評估論證: 分析題意,紅,黃,綠燈可分別接在8255的A口,B口和C口上,燈的亮滅可直接由8086輸出0,1控制,30秒延時及閃爍由8253控制。方案內容:黃燈閃爍的頻率為1HZ,所以想到由8253產生一個1HZ的方波, 8255控制或門打開的時間,在或門打開的時間內,8253將方波信號輸入或門使黃燈閃爍。由於計數值最大為65535,1MHZ/65536的值遠大於2HZ,所以採用兩個計數器級聯的方式,8253通道0的clock0輸入由分頻器產生的1MHZ時鍾脈沖,工作在方式 3即方波發生器方式,理論設計輸出 周期為0.01s的方波。1MHZ的時鍾脈沖其重復周期為T=1/1MHZ=1 s,因此通道0的計數初值為10000=2710H。由此方波分別作為clock1和clock2的輸入時鍾脈沖,所以通道1和通道2的輸入時鍾頻率為100HZ,通道1作計數器工作在方式1,計數初值3000=BB8H既30s,計數到則輸出一個高電平到8255的PA7口,8255將A口數據輸入到8086,8086檢測到高電平既完成30s定時。通道2工作在方式3需輸出一個1HZ的方波,通過一個或門和8086共同控制黃燈的閃爍,因此也是工作在方波發生器方式,其計數初值為100=64H,將黃燈的狀態反饋到8055的埠PB7和PC7,同樣輸入到8086,8086通過兩次檢測埠狀態可知黃燈的狀態變化,計9次狀態變化可完成5次閃爍。三個通道的門控信號都未用,均接+5V即可
㈣ 《微機原理及應用》交通燈控制系統課程設計
AND AL,0FH
XOR AL,AH
ADD CL,AL
CMP CL,9
JNZ TEST2;閃爍5次
CODE ENDS
END ST設計總結.1 設計體會 通過這次關於交通燈的課程設計,我認真查閱了相關資料。使我更加清楚地,更加深刻地了解了這方面的知識。讓我明白了8086晶元中的各個引腳的功能如 引腳通常用來產生片選信號,CLK為CPU和匯流排控制器提供基本的定時脈沖,QS0ALE(Address Latch Enable)地址鎖存允許信號,輸出高電平有效;RESET復位信號,輸入,高電平有效。如何使用8253定時及輸出一定頻率的脈沖;何如使用8282這個地址鎖存器來存儲高位地址,怎麼樣去使用8255這個可編程並行介面晶元與及時鍾發生器8284晶元的相關知識以及更加清楚的了解了交通有哪些規則。在學習了理論的基礎上,又經過了一次實踐。使我明白了設計一個系統是需要許多的時間和精力的。同時也使我明白了,成功的設計好一個系統不是只要有堅實的專業基礎就可以了的,而是需要更加系統的知識。如果沒有一個准確的概念就不可能也搞好一個設計。換句話說,只要有了准確的概念,也就知道哪些資料能為自己的設計服務。這樣也就有了方向。不過,我還是覺得自己在晶元和編程這兩個方面都存在著許多不足之處。我每找到一塊晶元就得去翻閱其相關的功能介紹的資料。同時編程也是我的一個頭痛的問題。我只能藉助相關的資料,去查看相對應指令的作用和功能。不過,這樣不但使我掌握了更多的晶元的功能,同時讓我對匯編語言的了解更加深刻了。經過這次課程設計,我體會到了學了理論知識當然是很重要的,但是如果學完了卻不能在實踐中運用已學的知識那麼學過的知識就等於沒學一樣。因為是時間長了也就會忘得一干二凈。所以如果我們能在實踐中學習知識的話,那麼我們也就會努去找尋自己想要的資料,即使過了一段時間後,我們也會想起我們曾經為了這個知識而努力過,這樣那個知識點也就不那麼容易被我們遺忘了。6.2 存在問題與建議本電路沒有設置顯示倒計時的七段LED數碼管,如果應用到街道上,不利於司機、行人把握。在上機調試中發現,由於此軟體延時的時間均為估算時間,不是特別准確,對於交通要求特別高的地方不宜採用。如果是放到一個大的交通燈系統中,會影響到各個交通燈的運行時間,可能整個系統對交通的指揮調度會大大偏離理論計算,不能有效地防止和消除交通堵塞現象。當出現緊急情況,在特種車(如消防車、救護車)正要通過時,這種編程方式就不能完成。但是,可以看到以上方案的一般性,只要將程序里的數據排列或規律稍加修改就可應用到任何一個路口的某一個方向上的交通燈上了,可移植性很強。
參考文獻
[1]王元珍, 韓宗芬. IBM-PC宏匯編語言程序設計(第二版). 武漢:華中科技大學出版社, 1996.9:88-120,198-200.
[2]揚立, 鄧振傑, 荊淑霞. 微型計算機原理與介面技術(第二版). 北京:中國鐵道出版社, 2006.8:29-31,221-232,255-27
㈤ 微機原理課程設計:交通燈控制系統設計
寫完了
也不長
CODE SEGMENT
FLASHTIME EQU 01H
;黃燈閃爍三次
OUT 00H,AL
MOV 03H,BL
START:
OUT 12h,AL;點亮黃燈
MOV AX,02H
CALL Delay
OUT 00h,AL;熄滅所有燈
MOV AX,02H
CALL Delay
OUT 12h,AL;點亮黃燈
MOV AX,02H
CALL Delay
OUT 00h,AL;熄滅所有燈
MOV AX,02H
CALL Delay
OUT 12h,AL;點亮黃燈
MOV AX,02H
CALL Delay
OUT 00h,AL;熄滅所有燈
MOV AX,02H
CALL Delay
MAIN:
OUT 21h,AL
MOV AX,0AH
CALL Delay
OUT 22H,AL
MOV AX,FLASHTIME
CALL Delay
OUT 20H,AL
MOV AX,FLASHTIME
CALL Delay
OUT 22H,AL
MOV AX,FLASHTIME
CALL Delay
OUT 20H,AL
MOV AX,FLASHTIME
CALL Delay
OUT 22H,AL
MOV AX,FLASHTIME
CALL Delay
OUT 20H,AL
MOV AX,FLASHTIME
CALL Delay
OUT 0CH,AL
MOV AX,10H
CALL Delay
OUT 14H,AL
MOV AX,FLASHTIME
CALL Delay
OUT 04H,AL
MOV AX,FLASHTIME
CALL Delay
OUT 14H,AL
MOV AX,FLASHTIME
CALL Delay
OUT 04H,AL
MOV AX,FLASHTIME
CALL Delay
OUT 14H,AL
MOV AX,FLASHTIME
CALL Delay
OUT 04H,AL
MOV AX,FLASHTIME
CALL Delay
JMP MAIN
CODE ENDS
Delay:
CALL Delay1S
DEC AX
CMP AX,0
JNZ Delay
RET
Delay1S:
MOV CX,04FFFH
Delayloop:
DEC CX
CMP CX,0
JNZ Delayloop
RET
END
㈥ 微機原理與介面技術課程設計:交通燈控制系統
您好,我看到您的問題很久沒有人來回答,但是問題過期無人回答會被扣分的並且你的懸賞分也會被沒收!所以我給你提幾條建議:一,你可以選擇在正確的分類下去提問,這樣知道你問題答案的人才會多一些,回答的人也會多些。二,您可以到與您問題相關專業網站論壇里去看看,那裡聚集了許多專業人才,一定可以為你解決問題的。三,你可以向你的網上好友問友打聽,他們會更加真誠熱心為你尋找答案的,甚至可以到相關網站直接搜索.四,網上很多專業論壇以及知識平台,上面也有很多資料,我遇到專業性的問題總是上論壇求解決辦法的。五,將你的問題問的細一些,清楚一些!讓人更加容易看懂明白是什麼意思!謝謝採納我的建議
㈦ 微機原理課程設計--交通信號燈的控制
交通信號燈的控制具體的說多長的篇幅。
㈧ 微機原理課程設計:交通燈控制系統 (一)任務: 設計一個普通十字路口,交通燈的控制可分東西向和南北
http://..com/question/212884551.html
參考。