用8086汇编写一个流水灯的程序

用8086汇编写一个流水灯的程序,第1张

程序段代码:

MOV AL,80H80H是8255的控制字

MOV DX,010EH010EH是8255的控制端口的地址具体告前的根据你的电路连接的方法计算出来替换就可以了

OUT DX,AL

MOV BX,8

MOV XC,8

A2:

MOV AL,01H

MOV DX,010AH010AH是8255的A口或者B口的地址 根据你的图而定

A1:

OUT DX,AL

CALL DEKAY

SHL AL,1

LOOP A1

DEC BX

JNZ A2

DELAY PROC NEAR

PUSH CX

MOV CX,0FFFFH修改0FFFFH的值可以改变跑马灯的时间间隔

LOOP $

POP CX

RET

DELAY ENDP

HLT

上面的程序是一个跑马灯的程序 跑马灯效果伏宏是D0--D7一次点亮 循环八次的一个程缺友册序

希望采纳

微机原理课程设计

流水灯控制系统 姓名:XX 学院:物理电气信息学院 班级:2010电子 姓名:…

流水轿桥灯控制系统

一、设计内容:

本课程设计选用8086对8255A的A口控制来实现模拟流水灯功能的实现。编写相关程序,通过proteus仿真软件来实现我名字“安亮”两个字的闪烁,“安”字接8255的A口的P0,“亮”字接A口的P1。先让“安”字和“亮”字同时点亮,再让两个字同时暗,接着让“安”字点亮,再让“亮”字点亮,然后让“安”字和“亮”字同时亮暗闪烁八次,再跳到开始,以此循环。

二、设计目的: 1、了解流水灯的基本工作原理 2、熟悉8255A并行接口的各种工作方式和应用 3、利用8255A接口,LED发光二极管,设计一个流水灯模拟系统,让我的名字“安亮”两个字按一定规律点亮。 三、实验原理 在8086系统中,采用16位数据总线,进行数据传输时,CPU总是将低8位数据线上的数据送往偶地址端口,而过高8位数据线上的数据送往奇地址端口反过来,从偶地址端口取得的数据总是通过低8位数据线传送到CPU,从奇地址端口取得的数据总是通过高8位数据线送到CPU。在8086系统中,将8255A的A1端和地址总线的A2相连,而将8255A的A0端和地址总线的A1相连闭差猛,并且,CPU在对9255A的端口进行访问时,将地址总线的A0位总是设置为庆山0。本课程设计通过对8255A的A口控制来实现模拟流水灯功能的实现。“安”接A口的P0,“亮”接A口的P1,实现两个字按一定规律的一个闪烁。

8255的内部结构

255A内部结构由以下四部分组成: 数据端口A、B、C;A组控制和B组控制;读/写控制逻辑电路;数据总线缓冲器。 端口A:包括一个8位的数据输出锁存/缓冲器和一个8位的数据输入锁存器,可作为数据输入或输出端口,并工作于三种方式中的任何一种。 端口B:包括一个8位的数据输出锁存/缓冲器和一个8位的数据输

//流水灯

#include "reg52.h"

#define LED_PORT P3void

delay(unsigned char time)

{

unsigned char i,j,kfor(i=0i>1

halfbytel=halfbytel<<1delay(10)} }}

例如:

1、亮4个灯、暗4个灯,1亮1暗均匀分布且稳定不变;

2、亮1个灯,暗7个灯段旁,从上到下轮流点亮每一个灯,每次只亮一个灯,循环间隔约2秒;

3、亮2个灯,暗6个灯,一个灯从上往中间轮流点亮,另一个灯从下往中间轮流点亮,循环间隔约1秒。

4、采用ROR、ROL循环移位语句(p77)及 LOOP语句(p81),实现一个灯从第1个循环点亮到第8个,从第8个循环点亮至第1个,一直上下循环。

扩展资料:

Intel 8086拥有四个16位的通用寄存器,也能够当作八个8位寄存器来存取,以及四个16位索引寄存器(包含了堆栈指标)。资料寄存器通常由指令隐含地使用,针对暂存值需要复杂的寄存器配置。它提供64K8位明宏元的输出输入(或32K 16 位元),以及固定的向量中断。大部分的指激燃册令只能够存取一个内存位址,所以其中一个 *** 作数必须是一个寄存器。运算结果会储存在 *** 作数中的一个寄存器。

参考资料来源:百度百科-汇编程序


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12392878.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存