這是我上微機原理課時寫過的一些8086 Proteus仿真設計,分享給大家。
1KQUIOW)CP`~E_4N04J]J[7.png (12.5 KB, 下載次數(shù): 184)
下載附件
8086設計
2018-11-20 18:56 上傳
汽車車燈系統(tǒng)設計: 用四個發(fā)光二極管分別模擬車頭左右燈和車尾左右燈。用五個按鍵控制五個狀態(tài):左轉、右轉、剎車、雙閃、夜車。 左轉:(判斷狀態(tài):日間、夜間) (1)左燈閃爍(0.5s)(日間) (2)左燈雙閃(0.5s)后閃爍(0.5s)(夜間) 左轉:(判斷狀態(tài):日間、夜間) (1)右燈閃爍(0.5s)(日間) (2)右燈雙閃(0.5s)后閃爍(0.5s)(夜間) 剎車:(判斷狀態(tài):日間、夜間) (1)所有燈常亮(0.5s)(日間) (2)所有燈雙閃(0.5s)后閃爍(0.5s)(夜間) 雙閃:所有燈閃爍兩次(0.5s) 夜車:所有燈常亮
程序:
- ;;;===汽車尾燈設計===;;;
- ;定義8255的地址
- PA8255 EQU 0200H
- PB8255 EQU 0202H
- PC8255 EQU 0204H
- CON8255 EQU 0206H
- ;定義8253的部分地址
- P8253T0 EQU 0400H
- P8253CON EQU 0406H
- STACK SEGMENT
- STK DB 200 DUP(0)
- TOP DW $-STACK
- STACK ENDS
- CODE SEGMENT
- ASSUME CS:CODE,SS:STACK
- START:
-
- MOV DX,STACK
- MOV SS,DX
- MOV SP,TOP
- ;8255初始化
- MOV AL,82H ;1000 0010
- MOV DX,CON8255
- OUT DX,AL
- MOV DX,PA8255
- MOV AL,0FFH
- OUT DX,AL
- ;;;===每種狀態(tài)輸出對應的數(shù)據(jù)===
- ;;;===例如(0200H)=1111 0101 左轉時,先是前后左燈亮0.5s
- ;;;===然后燈全滅0.5s。高四位保存全滅狀態(tài),低四位保存前后左燈亮狀態(tài)
- ;;;===所以左轉時,只要把 (0200H)=1111 0101左移四位即可。
- MOV SI,0200H
- MOV AL,0FAH
- MOV [SI],AL
- MOV [SI+1],0F5H
- MOV [SI+2],0F0H
- MOV [SI+3],00H
- MOV [SI+4],50H
- MOV [SI+5],0A0H
- BEGIN:
- MOV DX,PB8255
- IN AL,DX
- AND AL,1FH
- CMP AL,1EH
- JZ NEXT1 ;左轉
- CMP AL,1DH
- JZ NEXT2 ;右轉
- CMP AL,1BH
- JZ NEXT3 ;雙閃
- CMP AL,17H
- JZ NEXT4 ;剎車
- CMP AL,0FH
- JZ NEXT5 ;夜間
- CMP AL,0EH
- JZ NEXT6 ;夜間+左轉
- CMP AL,0DH
- JZ NEXT7 ;夜間+右轉
-
- INIT:
- MOV DX,PA8255
- MOV AL,0FFH
- OUT DX,AL
- JMP BEGIN
- NEXT1:
- CALL LEFT
- JMP BEGIN
- NEXT2:
- CALL RIGHT
- JMP BEGIN
- NEXT3:
- CALL SHUAN_SHAN
- JMP BEGIN
- NEXT4:
- CALL SHA_CHE
- JMP BEGIN
- NEXT5:
- CALL NIGHT
- JMP BEGIN
- NEXT6:
- CALL NIGHT_LEFT
- JMP BEGIN
- NEXT7:
- CALL NIGHT_RIGHT
- JMP BEGIN
- ;;;===左轉右轉等子程序
- LEFT PROC
- MOV DX,PA8255
- MOV AL,[SI]
- OUT DX,AL
- CALL DELAY
- ROL AL,4
- MOV [SI],AL
- RET
- LEFT ENDP
- RIGHT PROC
- MOV DX,PA8255
- MOV AL,[SI+1]
- OUT DX,AL
- CALL DELAY
- ROL AL,4
- MOV [SI+1],AL
- RET
- RIGHT ENDP
- SHUAN_SHAN PROC
- MOV DX,PA8255
- MOV AL,[SI+2]
- OUT DX,AL
- CALL DELAY
- ROL AL,4
- MOV [SI+2],AL
- RET
- SHUAN_SHAN ENDP
- SHA_CHE PROC
- MOV DX,PA8255
- MOV AL,[SI+3]
- OUT DX,AL
- CALL DELAY
- ROL AL,4
- MOV [SI+3],AL
- RET
- SHA_CHE ENDP
- NIGHT PROC
- MOV DX,PA8255
- MOV AL,[SI+3]
- OUT DX,AL
- CALL DELAY
- ROL AL,4
- MOV [SI+3],AL
- RET
- NIGHT ENDP
- NIGHT_LEFT PROC
- MOV DX,PA8255
- MOV AL,[SI+4]
- OUT DX,AL
- CALL DELAY
- ROL AL,4
- MOV [SI+4],AL
- RET
- NIGHT_LEFT ENDP
- NIGHT_RIGHT PROC
- MOV DX,PA8255
- MOV AL,[SI+5]
- OUT DX,AL
- CALL DELAY
- ROL AL,4
- MOV [SI+5],AL
- RET
- NIGHT_RIGHT ENDP
- ;;;===延時程序
- DELAY PROC
- PUSH AX
- MOV AL,10H ;0001 0000,8位計數(shù)器,方式0,BCD碼計數(shù)
- MOV DX,P8253CON ;寫入工作方式控制字
- OUT DX,AL
- MOV AL,5H ;給T0賦初值
- MOV DX,P8253T0
- OUT DX,AL
-
- L2:
- MOV DX,PB8255
- IN AL,DX
- AND AL,20H
- CMP AL,00H
- JZ L2
- POP AX
- RET
- DELAY ENDP
- CODE ENDS
- END START
復制代碼
可控時間間隔流水燈仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png (21.46 KB, 下載次數(shù): 145)
下載附件
2018-11-21 01:26 上傳
0.png (13.72 KB, 下載次數(shù): 130)
下載附件
2018-11-21 01:26 上傳
單片機源程序如下:
- ;;;=== Create By XuHe 2018 1.18 ===;;;
- ;;;===可加速、減速流水燈===;;;
- ;;;===初始時,時間間隔為一秒,按加速鍵加速
- ;;;===按減速鍵減速
- ;定義8255的地址
- PA8255 EQU 0200H
- PB8255 EQU 0202H
- PC8255 EQU 0204H
- CON8255 EQU 0206H
- ;定義8253的部分地址
- P8253T2 EQU 0404H
- P8253CON EQU 0406H
- STACK SEGMENT
- STK DB 200 DUP(0)
- TOP DW $-STACK
- STACK ENDS
- CODE SEGMENT
- ASSUME CS:CODE,SS:STACK
- START:
-
- MOV DX,STACK
- MOV SS,DX
- MOV SP,TOP
- ;8255初始化
- MOV AL,82H
- MOV DX,CON8255
- OUT DX,AL
-
- MOV SI,0200H
- MOV AL,0AH
- MOV [SI],AL
- MOV AL,7FH
- BEGIN:
- CALL DISPLAY
- PUSH AX
- MOV DX,PB8255
- IN AL,DX
- AND AL,02H
- CMP AL,00H
- JNZ NEXT
- MOV AL,[SI]
- DEC AL
-
- CMP AL,0
- JZ NEXT
- MOV [SI],AL
- NEXT:
- MOV DX,PB8255
- IN AL,DX
- AND AL,04H
- CMP AL,00H
- JNZ NEXT1
- MOV AL,[SI]
- INC AL
-
- CMP AL,14H
- JZ NEXT1
- MOV [SI],AL
- NEXT1:
- POP AX
- JMP BEGIN
- DISPLAY PROC
- L1:
-
- MOV DX,PA8255
- OUT DX,AL
- CALL DELAY
- ROL AL,1
-
- RET
- DISPLAY ENDP
-
- DELAY PROC
- PUSH AX
-
- MOV AL,90H ;1001 0000,8位計數(shù)器,方式0,BCD碼計數(shù)
- MOV DX,P8253CON ;寫入工作方式控制字
- OUT DX,AL
- MOV SI,0200H
- MOV AL,[SI] ;給T0賦初值
- MOV DX,P8253T2
- OUT DX,AL
-
- L2:
- MOV DX,PB8255
- IN AL,DX
- CMP AL,0FEH
- JZ L2
-
- POP AX
-
- RET
- DELAY ENDP
- CODE ENDS
- END START
復制代碼
所有資料51hei提供下載:
|