基于proteus8的8086与8255控制8位数码管显示

PS:课设,随便写写,不严谨或者有错误见谅 ,希望有帮助

电路图       

元件表

代码

    
DATA    SEGMENT        ;数据段
;此处输入数据段
LED DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
;0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH   阳极
;3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH  ;阴极
OUTBUFF DB 1,2,3,4,5,6,7,8    ;改成相应数字即可显示

PORTA EQU 60H
PORTB EQU 62H
PORTC EQU 64H
CS8255 EQU 66H
; A口工作方式0 输入  B口工作方式0 输出
REGIS EQU 10000000B
; REGIS EQU 10000001B
BUF DB 01H
DATA    ENDS

EXTRA    SEGMENT    ;    ;附加段
EXTRA    ENDS
;
STACK    SEGMENT  PARA  STACK  ‘STACK’   ;堆栈段
STAPN    DB     100 DUP (00H)    ;定义100字节空间
TOP    EQU  LENGTH  STAPN
STACK    ENDS

CODE    SEGMENT
;MAIN    PROC   FAR            ;过程定义语句
;说明4个段寄存器分别与哪些段有关
ASSUME  CS:CODE, DS:DATA,ES:EXTRA,SS:STACK

START:
MOV AX,DATA
MOV DS,AX

MOV AX, EXTRA
MOV ES,AX

MOV AX,STACK
MOV SS,AX

;主要程序
MOV DX, CS8255
MOV AL, REGIS
OUT DX,AL

LOP1:   CALL DISP
        JMP LOP1
        DISP PROC NEAR

AGAIN:  MOV CL,80H
        LEA SI,OUTBUFF

LEDDISP:MOV AL,CL
        MOV DX,PORTA
        OUT DX,AL
        ;LEA BX,LED  
        MOV BX,OFFSET LED
        MOV AL,[SI]
        XLAT
        MOV DX,PORTB
        OUT DX,AL
        CALL DELAY_1S
        MOV AL,0FFH
        MOV DX,PORTB
        OUT DX,AL 
        CALL DELAY_1S
        CMP CL,01H
        JZ NEXT
        INC SI
        ROR CL,1
        JMP LEDDISP
NEXT:RET
DISP ENDP

DELAY_1S PROC
    PUSH CX
    PUSH BX
    MOV BX,0FH
D1: MOV CX,0CH
D2: LOOP D2
    DEC BX
    JNZ D1
    POP BX
    POP CX
    RET
DELAY_1S ENDP


CODE     ENDS                  ;代码段结束
END   START    ;整个源代码结束

 运行实例

 关注8255片选引脚cs是否亮蓝色(此为选中)

附:如果想要详细的搭建步骤或者软件报错,可去B站搜索相关关键词,有大佬做了视频讲述

  • 6
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无聊:”

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值