8255和LED数码管显示实验

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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位的状态,来区分是输入中断还是输出中断,并采取相应操作.

七、编程提示

相关文档
最新文档