阅读背景:

利用8255A实现四位数据的显示输出

来源:互联网 

利用8255A实现四位数据的显示输出

DATAS SEGMENT
    ;此处输入数据段代码 
    TAB DB 0C0H,0F9H,0A4H,0B0H,99H
        DB 92H,82H,0F8H,80H,90H
        DB 88H,83H,0C6H,0A1H,86H,8EH
DISP_BUFF DB 2,0,1,6 
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    ;此处输入代码段代码
    MOV AL,10000001B;8255A的初始化
    OUT 36H,AL
    
DISPLAY: MOV AH,01H
         MOV SI,0
         LEA BX,TAB
   NEXT: MOV AL,DISP_BUFF[SI];把DISP_BUFF的数据取出
         XLAT
         OUT 30H,AL 
    
         MOV AL,AH;把位控信号输入到PB口
         OUT 32H,AL
         MOV CX,500
  WAIT1: NOP
         NOP
         LOOP WAIT1
         MOV AL,0;每位LED灯亮一段时间后在显示时下一位需要关闭LED
         OUT 32H,AL
         INC  SI;下一位显示输出
         ROL  AH,1;位控改变
         CMP  AH,10H;查看四位数据是否都全显示输出
         JZ DISPEND
         JMP NEXT
DISPEND: JMP DISPLAY
         MOV AH,4CH
         INT 21H
CODES ENDS
    END START
DATAS SEGMENT
    ;此处输入



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: