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

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

  1. 8255总线实验 编写程序利用8255扩展单片机的IO口,控制8位数码管显示1-8。

    8255总线实验 编写程序利用8255扩展单片机的IO口,控制8位数码管显示1-8. 程序: #include<reg51.h> #include<absacc.h> #def ...

  2. 两个74HC595D驱动芯片控制三位数码管显示

    两个74HC595D驱动芯片控制三位数码管显示 概述 一.数码管引脚及使用概述 1.1位数码管显示方式 2.3位数码管 3.3位数码管电路图 二.74HC595D引脚及使用概述 1. 74HC595引 ...

  3. c语言键盘控制数码管显示,3*4矩阵键盘控制4位数码管显示的C程序

    这个很简单 ;******************************************************************************** ;*  标题:  伟纳电 ...

  4. 使用定时器的中断方式。具体功能描述如下:使用定时器控制三位数码管显示时间,也可以轻易改为两位数码管显示时间

    #include <REGX52.H> unsigned char NixieTable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0 ...

  5. C#+Arduino控制4位数码管

    上一篇介绍了如何控制1位数码管,接下来就是控制4位数码管,其实就是4个一位数码管拼起来构成的,但是4位数码管的引脚只比一位数码管多了2个.通过查找资料可知,4位数码管中的a.b.c.d.e.f.g.d ...

  6. 基于51单片机的8位数码管显示的可调时电子时钟

     基于51单片机的8位数码管显示的可调时电子时钟 本人大二本科生,第一次发东西,功能比较简单,代码有点复杂,希望能有大神指正. 基于51单片机的不可调时间的时钟显示,晶振为11.0592MHZ,60H ...

  7. 基于6位数码管显示的数字钟

    //基于6位数码管显示的数字钟 #include<reg51.h> sbit no_off = P1^0; //该按键用于暂停计时,设置时间 sbit select = P1^1; //该 ...

  8. proteus仿真arduino控制两位数码管

    前面我们用arduino控制一位数码管,知道了控制数码管的原理.这里我们增加了一位,其显示的原理基本一样.只不过本质上不是两位同时点亮,而是轮换点亮.下面是原理图: 我们来看看代码的实现: int P ...

  9. protues用一片74hc595控制两位数码管

    前面的博文中我们介绍了一个arduino中用一片595来控制一位数码管,这里我们介绍一个595来控制两位数码管.两位数码管是应用最广泛的,如交通灯倒计时,计数器等都将用到两位数码管. 两位数码管的动态 ...

最新文章

  1. AI工程师面试知识点:神经网络相关
  2. 19_Android中图片处理原理篇,关于人脸识别网站,图片加载到内存,图片缩放,图片翻转倒置,网上撕衣服游戏案例编写...
  3. 【错误记录】生成 Java 文档错误 ( Xxx.java:xx: 错误: 编码GBK的不可映射字符 )
  4. FCoE 不是×××
  5. 对现有的所能找到的DDOS代码(攻击模块)做出一次分析----UDP篇
  6. nodejs的启动方式
  7. yum 出错,提示Segmentation Fault (core Dumped) 的解决办法
  8. matlab dtft的函数,DTFT的Matlab矩阵计算的理解
  9. L2-002 链表去重 (25 分) 船新方法
  10. GitHub进一步了解
  11. MyEclipse6.5安装SVN插件的三种方法
  12. Linux系统架构与目录解析 pdf版,Linux系统架构与目录解析
  13. 90.根据指令修改发往上游的请求
  14. 培训linux好吗,参加linux专业培训好还是自学linux好
  15. Qt编写可视化大屏电子看板系统31-模块9视频监控
  16. SFDC中的DEBUG
  17. 【python爬虫学习】cookie模拟登陆
  18. JPEG压缩算法详解(转载)
  19. 工信部信息技术发展司谢少锋司长高度评价华云数据“自主创新”的钻研精神
  20. 详解音视频直播中的低延时 1

热门文章

  1. css画横线箭头_css 画带边框的箭头的问题
  2. 阿里云服务器没有公网IP
  3. CPU、程序和设备三者的关系
  4. 通过GRUB引导U盘为引导活动区,从硬盘安装win8 64bit
  5. CSS首字母下沉怎么设置?
  6. prometheus监控预警之AlertManager邮箱报警
  7. iPhone升级系统 死机了怎么办
  8. 戒浮戒躁!一个“假程序员”的心里话
  9. 第四章 Caché 设计模式 代理模式
  10. L2-039 清点代码库