8255和LED数码管显示实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验八 8255和LED数码管显示实验
二、实验电路
实验电路如图2及图3所示。
图2 静态显示电路图3 动态显示电路
五、实验项目
1.静态显示:按图2连接好电路,将8255A的A口PA0~PA6分别与七段数码管的段码驱动输入端a~g相连,位码驱动输入端S1接+5V(选中),S0、dp接地(关闭)。编程从键盘输入一位十进制数字(0~9),在七段数码管上显示出来。
程序框图、源代码(含注释)及实验结果如下:
1、静态显示
;0-9程序:
data segment
ioport equ2400h-280h
io8255a equ ioport+288h
io8255ctr equ ioport+28bh
led db3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
mesg1 db0dh,0ah,'Input a num (0--9),other key is exit:',0dh,0ah,'$' data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
mov dx,io8255ctr ;使8255的A口为输出方式
mov ax,80h
out dx,al
sss: mov dx,offset mesg1 ;显示提示信息
mov ah,9
int21h
mov ah,1;从键盘接收字符
int21h
cmp al,'0' ;是否小于0
jb exit ;若是则退出
cmp al,'9' ;是否大于9
ja exit ;若是则退出
sub al,30h;将所得字符的ASCII码减30H
mov bx,offset led ;bx为数码表的起始地址
xlat ;求出相应的段码
mov dx,io8255a ;从8255的A口输出
out dx,al
jmp sss ;转SSS
exit: mov ax,4c00h;返回
int21h
code ends
end start
2.动态显示(选做):按图3连接好电路,七段数码管段码连接不变,位码驱动输入端S1S0接8255C口的PC1、PC0。编程在两个数码管上显示56。
程序框图、源代码(含注释)及实验结果如下:
data segment
ioport equ 2400h-280h
io8255a equ ioport+288h
io8255c equ ioport+28Ah
io8255ctr equ ioport+28bh
mesg1 db 0dh,0ah,' Press any key to exit!',0dh,0ah,'$'
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
mov dx,offset mesg1 ;显示提示信息
mov ah,9
int 21h
mov dx, io8255ctr ;将8255设为A口输出
mov al,80h
out dx,al
loop1: mov dx, io8255a
mov al,6Dh
out dx,al
mov dx, io8255c
mov al,2
out dx,al
mov cx,3000h
delay: loop delay ;延时
mov dx, io8255c ;关数码管
mov al,0
out dx,al
mov dx, io8255a
mov al, 7Dh
out dx,al
mov dx, io8255c
mov al,1
out dx,al
mov cx,3000h
delay1:loop delay1 ;延时
mov ah,0bh
int 21h
cmp al,0
jnz exit ;按任意键退出
jmp loop1
exit: mov dx, io8255c
mov al,0 ;关掉数码管显示
out dx,al
mov ax,4c00h ;返回DOS
int 21h
code ends
end start
六、思考题
1、8255A的三个端口在使用时有什么差别?
答:端口A和端口B常常作为独立的输入端口或者输出端口,端口C则配合端口A 和端口B工作。
2、8255A的方式0一般使用在什么场合?在方式0时,如果使用应答信号进行联络,应该怎么办?
答:方式0的特点是只要WR,RD信号有效,就有数据传送,一般使用在可随时传送数据的场合.若使用应答信号进行联络,可用C口作为联络,对C口位操作,一般上C口用作选通(STB)线,下C口作状态输入(RDY)线.
3、当8255A工作在中断方式2时,CPU是如何来区分输入或输出的?
答案:在输入,输出均允许中断的情况下,可在中断服务程序中查询状态字,判断OBF 和IBF位的状态,来区分是输入中断还是输出中断,并采取相应操作.
七、编程提示