微机原理与应用实验报告-实验三 七段数码管显示实验

实验三 七段数码管显示实验
1. 实验目的
掌握数码管显示数字的原理
2. 实验内容
1) 静态显示:按图7(a)连接电路,将8255的A口PA0~PA6分别与七段数码管的段码驱动输入端a~g相连,位码驱动输入端S0接+5V (选中),S1、S2、S3、dp接地(关闭)。编程从键盘输入一位十进制数字 (0~9),在七段数码管上显示出来。

3. 编程提示
1) 实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。

2) 参考流程图(见图8)

程序清单(注意中英文标点符号)

data segment
Io8255k equ 28Bh
io8255a equ 288h
io8255c equ 28Ah

led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
A 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,io8255k;将8255设为A口输出
mov al,80h
out dx,al

L1:
lea dx,A ;显示提示信息
mov ah,09h
int 21h
mov ah,01;从键盘接收字符
int 21h
cmp al,'0';是否小于0
jl exit;若是则退出
Cmp al,'9';是否大于9
jg exit;若是则退出
Sub al,30h;将所得字符的ASCII码减30H
lea bx,led;bx为数码表的起始地址
xlat;求出相应的段码
mov dx,io8255a;从8255的A口输出
out dx,al
jmp L1;转L1

exit:
mov ah,4ch;返回DOS
int 21h
code ends
end start

发表回复