標題:
[微機]建立在8086CPU 8253與8255芯片之上的交通燈控制系統(tǒng) Proteus仿真
[打印本頁]
作者:
likesnow
時間:
2025-1-9 02:39
標題:
[微機]建立在8086CPU 8253與8255芯片之上的交通燈控制系統(tǒng) Proteus仿真
這是我上個月做的單片機交通燈設計,用了一個星期的時間,
附件里面包含交通燈的單片機源代碼,
和proteus(proteus)仿真工程文件以及設計的文檔都是自己原創(chuàng)的,
請大家多多指教
最終呈現(xiàn)的結果是:通行時間30s,間隔時間 3s,在間隔時間里黃燈閃爍3次每0.5s閃爍一次
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei截圖_20250109023638.png
(607.77 KB, 下載次數(shù): 0)
下載附件
proteus原理圖
2025-1-9 02:36 上傳
單片機源程序如下:
;8255的地址
PA EQU 08H
PB EQU 0AH
PC EQU 0CH
CONW EQU 0EH
;8253的地址
AD82530 EQU 10H
AD82531 EQU 12H
AD82532 EQU 14H
AD8253CONW EQU 16H
;============================
STACK SEGMENT STACK
DB 200 DUP(0)
STACK ENDS
;============================
DATA SEGMENT
;延時
ONE DB 6 ;燈組1延時
TWO_1 DB 1 ;燈組2亮延時
TWO_2 DB 1 ;燈組2滅延時
THREE DB 6 ;燈組3延時
FOUR_1 DB 1 ;燈組4亮延時
FOUR_2 DB 1 ;燈組4滅延時
;閃爍次數(shù)
C2 DB 2 ;閃爍3次
C4 DB 2
;燈組定義
TF1 BYTE 081h ;第一組燈
TF2 BYTE 082h ;第二組燈亮(黃燈亮)
TF3 BYTE 080h ;第二組燈滅(黃燈滅)
TF4 BYTE 024h ;第三組燈
TF5 BYTE 044h ;第四組燈亮(黃燈亮)
TF6 BYTE 004h ;第四組燈滅(黃燈滅)
DATA ENDS
;=============================
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
PUSH DS
MOV AX, DATA
MOV DS, AX
;=================
;設置中斷向量8253
CLI
MOV AX, 0
MOV ES, AX
MOV SI, 08H
MOV AX, OFFSET TIME_INT
MOV ES:[SI], AX
MOV AX, CS
MOV ES:[SI+2], AX
;=================
;初始化8255A
MOV AL, 80H
OUT CONW, AL
;初始化8253
MOV AL, 36H
OUT AD8253CONW, AL
MOV AX, 32500 ;計數(shù)初值,0.5s
OUT AD82530, AL
MOV AL, AH
OUT AD82530, AL
;===============
W:
JMP W ;循環(huán)等待中斷
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;第一組燈判斷
DENG1: MOV AL, ONE
CMP AL, 0 ;中斷判斷
JNE DENG1ON ;跳轉第一組燈
JE DENG2 ;跳轉第二組燈判斷
DENG1ON:
DEC ONE ;定時減1
MOV DX,PC
MOV AL,TF1 ;第一組燈亮
OUT DX,AL
RET
;第二組燈判斷
DENG2:
;第二組燈亮判斷
DENG2_1:
MOV AL, TWO_1
CMP AL, 0 ;中斷判斷
JNE DENG2ON ;跳轉第二組燈亮
JE DENG2_2 ;跳轉第二組燈滅判斷
DENG2ON:
DEC TWO_1 ;定時減1
MOV DX,PC
MOV AL,TF2 ;第二組燈亮
OUT DX,AL
RET
;第二組燈暗判斷
DENG2_2:
MOV AL, TWO_2
CMP AL, 0 ;中斷判斷
JNE DENG2OFF ;跳轉第二組燈滅
CMP C2,0 ;判斷閃爍次數(shù)
JE DENG3 ;跳轉第三組燈判斷
DENG2OFF:
DEC TWO_2
MOV DX,PC
MOV AL,TF3 ;第二組燈滅
OUT DX,AL
CMP C2,0 ;閃爍次數(shù)未到
JNE RE_DENG2 ;重置第二組燈
RET
;第二組燈重置
RE_DENG2:
DEC C2
MOV AL,1
MOV TWO_1,AL
MOV TWO_2,AL
RET
;第三組燈判斷
DENG3: MOV AL, THREE
CMP AL, 0 ;中斷判斷
JNE DENG3ON ;跳轉第三組燈
JE DENG4 ;跳轉第四組燈
DENG3ON:
DEC THREE
MOV DX,PC
MOV AL,TF4 ;第三組燈亮
OUT DX,AL
RET
;第四組燈判斷
DENG4:
DENG4_1:
MOV AL, FOUR_1
CMP AL, 0 ;中斷判斷
JNE DENG4ON ;跳轉第四組燈亮
JE DENG4_2 ;跳轉第四組燈滅判斷
DENG4ON:
DEC FOUR_1
MOV DX,PC
MOV AL,TF5 ;第四組燈亮
OUT DX,AL
RET
DENG4_2:
MOV AL, FOUR_2
CMP AL, 0 ;中斷判斷
JNE DENG4OFF ;跳轉第四組燈滅
CMP C4,0 ;判斷閃爍次數(shù)
JE RE_ALL ;重置所有燈組
DENG4OFF:
DEC FOUR_2
MOV DX,PC
MOV AL,TF6 ;第四組燈滅
OUT DX,AL
CMP C4,0 ;閃爍次數(shù)未到
JNE RE_DENG4 ;重置第四組燈
RET
;重置第四組燈
RE_DENG4:
DEC C4
MOV AL,1
MOV FOUR_1,AL
MOV FOUR_2,AL
RET
;重置所有燈組
RE_ALL:
MOV AL,6
MOV ONE,AL
MOV THREE,AL
MOV AL,2
MOV C2,AL
MOV C4,AL
MOV AL,1
MOV TWO_1,AL
MOV TWO_2,AL
MOV FOUR_1,AL
MOV FOUR_2,AL
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TIME_INT: ;定時器中斷處理函數(shù)
CALL DENG1
IRET
CODE ENDS
END START
復制代碼
仿真工程:
交通燈控制系統(tǒng).rar
(26.93 KB, 下載次數(shù): 0)
2025-1-9 02:38 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1