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一次点亮 循环八次的一个程缺友册序
希望采纳
正好我们做了这个实验你知道的,把数据段中的端口地址改为你的计算机可识别的8255A的端口地址
从键盘接收数字,在七段数码管上显示
data segment
ioport equ 2400h-0280h
io8255a equ ioport+288h
io8255b equ ioport+28bh
led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
mesg1db 0dh,0ah,'Input a num (0--9h):',0dh,0ah,'$'
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov dx,io8255b使8255的A口为输出方式
mov ax,10000000b80h,A组方式0,A口输出,B组方式0,B口输出,C口输出
out dx,al
sss:
mov dx,offset mesg1显示提示信息
mov ah,09h
int 21h
mov ah,01 从键盘接收字符
int 21h
cmp al,'0' 是否小于0
jb sss 若是则退出
cmp al,'9' 是否大于9
ja sss 若是则退出
and al,0fh 将所得字符的ASCII码减银运拆30H
mov bx,offset led bx为数码表的起锋枣始地址
xlat 求出相应的段码
mov dx,io8255a 从8255的A口输出
out dx,al
jmp sss转悄则SSS
exit:
mov ah,4ch 返回DOS
int 21h
code ends
end start
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)