8段数码管显示实验
8段数码管显示实验报告
一.设计目的
1 .掌握数码管动态显示的原理
2 .学习通过总线方式控制数字代码的显示;
3 .熟悉用单片机驱动数码管的电路和编程原理。
2 .设计内容
利用实验箱提供的显示电路,设计了一种可动态显示一行数据的系统。 实验箱一般准备6位8段的LED显示电路,只要输出对应于每个地址的数据,就可以控制显示器。 一共显示6位,动态显示。 数据可以正常显示后,请改变数字的变化速度或LED显示的方向。
三.实验原理
1 .原理:采用总线方式驱动八级显示管时,应将八级驱动方式选择开关置于"内驱"位置; 用I/O方式驱动八段显示管时,请将开关置于“外驱”位置。
本实验机提供6位8段LED显示电路,学生只需输出对应于每个地址的数据即可控制显示器。 一共显示6位,动态显示。 8位段、6位代码从2张74LS374输出。 位代码由MC1413或ULN2003反转驱动后,选择相应的显示位。
本实验装置中8位段的代码输出地址为0X004H,位代码输出地址为0X002H。 其中x由KEY/LED CS决定。 请参见地址解码。 进行键盘和LED实验时,需要将KEY/LED CS连接到正确的地址解码器。 允许用合适的地址访问。 例如,如果将KEY/LED CS连接到CS0,则段代码地址为08004H,位代码地址为08002H。
7段字体代码表如下表所示。
a
f b
g
电商
d。 dp
字形的gfedcba段代码0011111113 FH 100011006 h 210110115 BH 310011114 FH 4110011066 h511011016 DH 611100001107 DH 8111111111117 FH 9111111111111116 FHA
2 .程序框图
3 .程序
OUTBIT equ 08002h; 位控制端口
OUTSEG equ 08004h; 段控制端口
IN equ 08001h; 键盘读取
LEDBuf equ 60h; 显示缓冲区
Num equ 70h; 显示的数据
DelayT equ 75h;
ljmp Start
LEDMAP: 八段管显示代码
db 3fh、06h、5bh、4fh、66h、6dh、7dh、07h
db 7fh、6fh、77h、7ch、39h、5eh、79h、71h
延迟: 延迟子程序
mov r7,#0
延迟锁定:
djnz r7,DelayLoop
djnz r6,DelayLoop
回复
显示led :
mov r0,#LEDBuf
mov r1,#6; 一共六个八段管
mov r2; 从左开始显示
Loop:
mov dptr,#OUTBIT
mov a,#0
movx @dptr,a; 关闭所有八段管
mov a,@r0
mov dptr,#OUTSEG
movx @dptr,a
mov dptr,#OUTBIT
mov a,r2
movx @dptr,a; 显示一位数的八段管
mov r6,#01
科尔德雷
mov a、r2; 显示下一位
rr a
mov r2,a
inc r0
djnz r1,Loop
mov dptr,#O