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一次点亮 循环八次的一个程缺友册序
希望采纳
//流水灯
#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 位元),以及固定的向量中断。大部分的指激燃册令只能够存取一个内存位址,所以其中一个 *** 作数必须是一个寄存器。运算结果会储存在 *** 作数中的一个寄存器。
参考资料来源:百度百科-汇编程序
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)