(完整word版)六位LED八段数码管显示
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
八段数码管显示
1.实验目的:
(1)了解数码管动态显示的原理。
(2)了解74LS164 扩展端口的方法。
2.实验内容:
利用实验仪提供的显示电路,动态显示一行数据。
3.实验线路:
PB0 数据输入
PB1 时钟输入
说明:这里只是显示草图,详细原理参见"8155 接口实验"
4.实验器材:
(1)QTH2008下载式综合实验仪 1 台(2)QTH2008仿真器 1 台
(3)计算机 1 台
5.实验说明:
(1)本实验仪提供了8 段码LED 显示电路,学生只要按地址输出相应数据,就可以实现对显示器的控制。显示共有6 位,用动态方式显示。8 段码是由8155 的PB0、PB1 经74LS164“串转并”后输出得到。6 位位码由8155(或8255) 的PA0-5 口输出,经uA2003 反向驱动后,选择相应显示位。
74LS164 是串行输入并行输出转换电路,串行输入的数据位由8155 的PB0 控制,时钟位由8155 的PB1 控制输出。写程序时,只要向数据位地址输出数据,然后向时钟位地址输出一高一低两个电平就可以将数据位置到74LS164 中,并且实现移位。向显示位选通地址输出高电平就可以点亮相应的显示位。
本实验仪中数据位输出地址为0e102H,时钟位输出地址为0e102H,位选通输出地址为0e101H。本实验涉及到了8155 I0/RAM 扩展芯片的工作原理以及
74LS164 器件的工作原理。
7.参考程序(SY10.ASM):
OUTBIT equ 0e101h ; 位控制口
CLK164 equ 0e102h ; 段控制口(接164 时钟位) DAT164 equ 0e102h ; 段控制口(接164 数据位) IN equ 0e103h ; 键盘读入口
LEDBuf equ 60h ; 显示缓冲
Num equ 70h ; 显示的数据
DelayT equ 75h
org 0000h
ljmp Start
LEDMAP: ; 八段管显示码
db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h Delay: ; 延时子程序
mov r7, #0
DelayLoop:
djnz r7, DelayLoop
djnz r6, DelayLoop
ret
DisplayLED:
mov r0, #LEDBuf
mov r1, #6 ; 共6 个八段管
mov r2, #00100000b ; 从左边开始显示Loop:
mov dptr, #OUTBIT
mov a, #00h
movx @dptr, a ; 关所有八段管
mov a, @r0
mov B, #8 ; 送164
DLP:
rlc a
mov r3, a
mov acc.0, c
ANL A, #0FDH
mov dptr, #DAT164
movx @dptr, a
mov dptr, #CLK164
orl a,#02h
movx @dptr, a
anl a,#0fDh
movx @dptr, a
mov a, r3
djnz B, DLP
mov dptr, #OUTBIT
mov a, r2
movx @dptr, a ; 显示一位八段管
mov r6, #1
call Delay
mov a, r2 ; 显示下一位
rr a
mov r2, a
inc r0
djnz r1, Loop
mov dptr, #OUTBIT
mov a, #0
movx @dptr, a ; 关所有八段管
ret
Start: mov dptr,#0e100h
mov a,#03h
movx @dptr,a
mov sp, #40h
mov Num, #0
MLoop:
inc Num
mov a, Num
mov b, a
mov r0, #LEDBuf
FillBuf:
mov a, b
anl a, #0fh
mov dptr, #LEDMap
movc a, @a+dptr ; 数字转换成显示码
mov @r0,a ; 显示在码填入显示缓冲
inc r0
inc b
cjne r0, #LEDBuf+6, FillBuf
mov DelayT,#30
DispAgain:
call DisplayLED ; 显示
djnz DelayT,DispAgain
ljmp MLoop
END
八位数码管显示:8155控制
参考程序2:对8155初始化,使I/O口控制LED的显示情况。
ORG 0000H
MOV DPTR,#4400H ;指向8155命令寄存器
MOV A,#03H
MOVX @DPTR,A ;写入控制字。A口、B口为输出,C口为输入
INC DPTR ;指向8155A口
MOV A,#00H
MOVX @DPTR,A ;向A口写入00H,
;输出选中所有8个LED
INC DPTR ;指向8155B口
MOV A,#0FFH
MOVX @DPTR,A ;向B口写入某个字型
码,输出点亮8个LED
SJMP $