8255与多位LED数码管的显示
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验2 8255与多位LED数码管的显示实验
一、实验目的
掌握8255A的编程原理与多位LED数码管的显示方法。
二、实验设备
MUT—Ⅲ型实验箱、8086CPU模块。
三、实验内容
把待显示字符的LED代码组成一个七段代码表,存放在存储器中。通过对8255编写程序在多位LED 数码管上显示输出。
1、设计出8255与8086接口对应硬件电路,并完成相应的连接
2、设计出8255与LED数码管的对应硬件接口电路,并完成相应的连接
3、编写程序,在数码管上显示相应字符或数字
4、写出习题部分要求的程序
四、实验原理介绍
本实验用到两部分电路:8255可编程并口电路和LED数码管的显示电路。实验箱数码管采用共阴极形式。
五、实验步骤
1、实验接线
CS0↔CS8255
(输出)PA0~PA7↔ LED-A~LED-DP(段控)
(输出)PB0~PB5↔ LED-1~LED-6(位控)
2、编程并全速或单步运行。
3、全速运行时观察数码管的变化。
六、实验提示
1.8255A是比较常用的一种并行接口芯片,其特点在许多教科书中均有介绍。本实验中用到8255A
的A口和B口两个端口,A口和B口均作为输出口。实验中,8255A工作于基本输入输出方式(方式
0)。
2.用8255A端口B的PB0~PB5,控制LED的显示位,即8255A的端口B为LED数码显示器
的位控制端口。当B口中一位输出为“0”时,便在相应数码管的阴极加上了低电平,这个数码管就可
以显示数据。但具体显示什么数码,则由另一个端口,即段控制端口决定。段控制端口由6个数码
管共用,因此当CPU送出一个显示代码时,各数码管的阳极都收到了此代码。但是,只有位控制码
中低位对应的数码管才会导通而显示数字,其他管子并不发光。
3.对显示器采用动态扫描法控制显示。所谓动态扫描,就是逐个接通6位LED,把端口A送出
的代码送到相应的位上去显示。此时,8255A的端口A送出的一个七段码,虽然各位LED都能接收
到,但由于端口B只有一位输出低电平,所以只有一个LED的相应段导通显示数字,其他LED不
亮。这样,端口A依次输出LED七段代码,端口B依次选中一位LED,便可以在各位上显示不同
的数据。每个数码管显示数字,并不断地重复显示,由于人的视觉惯性作用,当重复频率达到一定
程度,不断地向8位LED输送显示代码和扫描各位时,就可以实现相当稳定的数字显示。显而易见,
重复频率越高,每位数码管延时显示的时间越长,数字显示得就越稳定,显示亮度也就越高。
七、实验结果
程序全速运行后,待显示字符应能在LED上显示出来。
八、程序源代码清单
assume cs:code
code segment
org 100h
start: nop
nop
start1: mov cx,06h
mov bx,00feh
mov dx,04a6h
mov ax,80h
out dx,ax
disp: mov di,offset segcod
mov dx,04a0h
mov al, bh
mov ah, 00h
add di,ax
mov al,cs:[di]
out dx,al
mov dx, 04a2h
mov al, bl
out dx, al
push cx
call delay
pop cx
inc bh
rol bl,1
loop disp
jmp start1
delay: mov cx,45h ;延时常数可以自己定义
delay1: n op
nop
nop
nop
loop delay1
ret
segcod db 6dh,7dh,07h,7fh,6fh,77h(每个学生都要自己定义)
code ends
end start
九、实验要求:熟悉8255A的相关知识,写出实验预习报告(主要包括8255A的基础内容、实验电路连接、程序代码),否则不允许进入实验室。
十、习题:重新定义待显示字符,将自己学号的后6位显示出来。