栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

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

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

基于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站搜索相关关键词,有大佬做了视频讲述

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/529071.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号