基于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站搜索相关关键词,有大佬做了视频讲述
基于proteus8的8086与8255控制8位数码管显示相关推荐
- 8255总线实验 编写程序利用8255扩展单片机的IO口,控制8位数码管显示1-8。
8255总线实验 编写程序利用8255扩展单片机的IO口,控制8位数码管显示1-8. 程序: #include<reg51.h> #include<absacc.h> #def ...
- 两个74HC595D驱动芯片控制三位数码管显示
两个74HC595D驱动芯片控制三位数码管显示 概述 一.数码管引脚及使用概述 1.1位数码管显示方式 2.3位数码管 3.3位数码管电路图 二.74HC595D引脚及使用概述 1. 74HC595引 ...
- c语言键盘控制数码管显示,3*4矩阵键盘控制4位数码管显示的C程序
这个很简单 ;******************************************************************************** ;* 标题: 伟纳电 ...
- 使用定时器的中断方式。具体功能描述如下:使用定时器控制三位数码管显示时间,也可以轻易改为两位数码管显示时间
#include <REGX52.H> unsigned char NixieTable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0 ...
- C#+Arduino控制4位数码管
上一篇介绍了如何控制1位数码管,接下来就是控制4位数码管,其实就是4个一位数码管拼起来构成的,但是4位数码管的引脚只比一位数码管多了2个.通过查找资料可知,4位数码管中的a.b.c.d.e.f.g.d ...
- 基于51单片机的8位数码管显示的可调时电子时钟
基于51单片机的8位数码管显示的可调时电子时钟 本人大二本科生,第一次发东西,功能比较简单,代码有点复杂,希望能有大神指正. 基于51单片机的不可调时间的时钟显示,晶振为11.0592MHZ,60H ...
- 基于6位数码管显示的数字钟
//基于6位数码管显示的数字钟 #include<reg51.h> sbit no_off = P1^0; //该按键用于暂停计时,设置时间 sbit select = P1^1; //该 ...
- proteus仿真arduino控制两位数码管
前面我们用arduino控制一位数码管,知道了控制数码管的原理.这里我们增加了一位,其显示的原理基本一样.只不过本质上不是两位同时点亮,而是轮换点亮.下面是原理图: 我们来看看代码的实现: int P ...
- protues用一片74hc595控制两位数码管
前面的博文中我们介绍了一个arduino中用一片595来控制一位数码管,这里我们介绍一个595来控制两位数码管.两位数码管是应用最广泛的,如交通灯倒计时,计数器等都将用到两位数码管. 两位数码管的动态 ...
最新文章
- AI工程师面试知识点:神经网络相关
- 19_Android中图片处理原理篇,关于人脸识别网站,图片加载到内存,图片缩放,图片翻转倒置,网上撕衣服游戏案例编写...
- 【错误记录】生成 Java 文档错误 ( Xxx.java:xx: 错误: 编码GBK的不可映射字符 )
- FCoE 不是×××
- 对现有的所能找到的DDOS代码(攻击模块)做出一次分析----UDP篇
- nodejs的启动方式
- yum 出错,提示Segmentation Fault (core Dumped) 的解决办法
- matlab dtft的函数,DTFT的Matlab矩阵计算的理解
- L2-002 链表去重 (25 分) 船新方法
- GitHub进一步了解
- MyEclipse6.5安装SVN插件的三种方法
- Linux系统架构与目录解析 pdf版,Linux系统架构与目录解析
- 90.根据指令修改发往上游的请求
- 培训linux好吗,参加linux专业培训好还是自学linux好
- Qt编写可视化大屏电子看板系统31-模块9视频监控
- SFDC中的DEBUG
- 【python爬虫学习】cookie模拟登陆
- JPEG压缩算法详解(转载)
- 工信部信息技术发展司谢少锋司长高度评价华云数据“自主创新”的钻研精神
- 详解音视频直播中的低延时 1