8086 8255A proteus仿真實驗


實驗內容

數碼管循環顯示0123456789abcdef-

電路圖

電路分析

端口地址和控制字地址主要看電路圖,片選信號由譯碼器的\(\overline{IO1}\)引腳給出,即\(A_{12}-A_9\)為0001B時,片選信號有效。

地址線\(A_2A_1\)送給8255,選擇芯片上的寄存器。8255A上有4個寄存器,其中,\(A_2A_1\)為00時選擇端口A,\(A_2A_1\)為01時選擇端口B,\(A_2A_1\)為10時選擇端口C,\(A_2A_1\)為11時選擇控制寄存器。
針對這題,為討論方便,設其他地址線都為0。

端口A地址:\(A_{19}-A_0:0000 0000 0001 0000 0000B = 200H\)
端口B地址:\(A_{19}-A_0:0000 0000 0001 0000 0010B = 202H\)
端口C地址:\(A_{19}-A_0:0000 0000 0001 0000 0100B = 204H\)
控制字地址:\(A_{19}-A_0:0000 0000 0001 0000 0110B = 206H\)

代碼

DATA SEGMENT
    PORTD EQU 0206H
    PORTA EQU 0200H
    REGIS EQU 10000000B ;A OUT A工作方式0
    LED DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0BFH
DATA ENDS

STACK SEGMENT
    DW 128 DUP(0)
STACK ENDS

CODE SEGMENT
    ASSUME CS:CODE,DS:DATA
START:
    MOV AX,DATA
    MOV DS,AX
    
    ;設置8255工作方式
    MOV DX,PORTD
    MOV AL,REGIS
    OUT DX,AL
    
    ;設置輸出端口為端口A
    MOV DX,PORTA

G1:    
    ;取LED數組的首地址
    MOV SI,OFFSET LED 
G2:
    MOV AL,[SI]
    OUT DX,AL;輸出顯示
    
    ;延時操作 
    CALL DELAY
    
    ;如果當前值等於數組最后一個數的值則從頭開始
    CMP AL,0BFH
    JE G1
    
    ;地址加一
    INC SI
   
    ;跳轉到G2 
    JMP G2
    
    MOV AH,4CH
    INT 21H

;延時函數    
DELAY PROC NEAR
    PUSH BX
    PUSH CX
    MOV BX,200H
    FOR1:MOV CX,200H
    FOR2:LOOP FOR2
    DEC BX
    JNZ FOR1
    POP CX
    POP BX
    RET
DELAY ENDP

CODE ENDS
END  START


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM