用编程怎么变出七段数码管显示从a——f
发布网友
发布时间:2022-04-19 18:55
我来回答
共1个回答
热心网友
时间:2022-06-01 20:14
正好我们做了这个实验
你知道的,把数据段中的端口地址改为你的计算机可识别的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
mesg1 db 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,10000000b ;80h,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