02实验二:数码管动态显示程序设计
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
10.1.2 LED显示器工作原理 LED显示器工作原理
1、LED静态显示方式 LED静态显示方式 静态
LED显示器工作于静态显示方式时, LED显示器工作于静态显示方式时,各位的共阴 显示器工作于静态显示方式时 极(或共阳极)连接在一起,每位的段码线分别与1 或共阳极)连接在一起,每位的段码线分别与1 个8位的锁存器输出相连。之所以称为静态显示,是 位的锁存器输出相连。之所以称为静态显示, 因为各个LED的显示字符一经确定, 因为各个LED的显示字符一经确定,相应锁存器锁存 LED的显示字符一经确定 的段码输出将维持不变, 的段码输出将维持不变,直到送入另一个字符的段码 为止。正因为如此,静态显示的亮度都较高。 为止。正因为如此,静态显示的亮度都较高。
字符 字形
共阳 共阴
理论上,八段可以 理论上, 显示128种不同的字符, 128种不同的字符 显示128种不同的字符, 扣除其中没有意义的组 合状态后,八段LED LED显示 合状态后,八段LED显示 器可以显示的字符如表 所示。 所示。 10(P195 表10-2)
八段LED段码表 八段LED段码表 LED
实验二: 数码管动态显示程序设计
实验目的要求: 实验目的要求:
1、熟练掌握LED显示器的结构特点(共阳极和共阴极的 、熟练掌握LED显示器的结构特点( LED显示器的结构特点 区别) 区别)。 2、掌握LED动态显示方式的工作特点(电路的构成与编 、掌握LED动态显示方式的工作特点( LED动态显示方式的工作特点 程应用) 程应用)。 3、掌握利用数据口扩展LED显示器的方法。 、掌握利用数据口扩展LED显示器的方法。 LED显示器的方法 4、了解单片机实验系统的基本功能,掌握其使用方法。 、了解单片机实验系统的基本功能,掌握其使用方法。 5、掌握仿真软件Wave的使用及 、掌握仿真软件Wave的使用及ISP(在系统可编程)技术。 仿真软件Wave的使用及 (在系统可编程)技术。
LED显示器的译码: LED显示器的译码:硬件译码 显示器的译码
AT89C51
P1.3 P1.2 P1.1 P1.0
74LS48
D C B A
共阴LED 共阴
g f e d c b a
f e
a g d
b c dp
74LS48是 BCD码 七段共阴译码/驱动” 共阴译码 74LS48是“BCD码→七段共阴译码/驱动”IC 74LS47是 BCD码 七段共阳译码/驱动” 共阳译码 74LS47是“BCD码→七段共阳译码/驱动”IC 硬件译码特点:采用专用的译码芯片,驱动功率较大; 硬件译码特点:采用专用的译码芯片,驱动功率较大; 增加了硬件的开销;字型固定(比如只可译数字) 增加了硬件的开销;字型固定(比如只可译数字) ;但 软件编程简单 编程简单。 软件编程简单。
动态显示特点: 动态显示特点:
用元器件少, I/O线少,有闪烁,必须扫描,花费CPU时间, 用元器件少,占I/O线少,有闪烁,必须扫描,花费CPU时间, 线少 CPU时间 编程复杂。 有多个LED时尤为突出) LED时尤为突出 编程复杂。(有多个LED时尤为突出)
动态显示中延时时间的选择
在动态显示方式中, LED显示器轮流工作, 在动态显示方式中,各LED显示器轮流工作,为了防止产 显示器轮流工作 生闪烁现象,每个LED数码管刷新频率必须大于 Hz, 生闪烁现象,每个LED数码管刷新频率必须大于 25 Hz,即相 LED ms。LED显示器的位数越多 显示器的位数越多, 邻两次点亮的时间间隔要小于 40 ms。LED显示器的位数越多, 每一位的显示时间越短,在驱动电流一定的情况下,亮度越 每一位的显示时间越短,在驱动电流一定的情况下, 低(正因如此,在动态LED显示电路中,要适当增大驱动电流, 正因如此,在动态LED显示电路中,要适当增大驱动电流, LED显示电路中 mA~ mA(正常情况下的工作电流一般在10 10~ 一般取 20 mA~35 mA(正常情况下的工作电流一般在10~20 mA之间) 以抵消因显示时间短造成亮度下降)。为了保证一 mA之间),以抵消因显示时间短造成亮度下降)。为了保证一 之间 )。 定的亮度,实验表明: mA的情况下 的情况下, 定的亮度,实验表明:在驱动电流取 30 mA的情况下,每位 显示时间不能小于 1 ms。 ms。
LED显示器静态显示结构 LED显示器静态显示结构 显示器静态
+5V VCC TxD RxD
A B CLK A B CLK A B CLK
CLR
CLR
CLR
dp g f e d c b a
74LS164
dp g f e d c b a
74LS164
dp g f e d c b a
74LS164
AT89C51
共阳LED 共阳 显示器
+5V
有几个LED就要几个74LS164,但只要数据不变, 有几个LED就要几个74LS164,但只要数据不变, LED就要几个74LS164 送一次就保持住了,且不闪烁,编程十分简单。 送一次就保持住了,且不闪烁,编程十分简单。
2、LED动态显示方式 LED动态显示方式 动态
思路二的显示子程序流程图: 思路二的显示子程序流程图:
实验示例程序:(任务一) 实验示例程序: 任务一)
ORG 0000H AJMP MAIN ORG 0030H MAIN: MOV 30H,#01H MOV 31H,#02H MOV 32H,#03H MOV 33H,#04H MOV 34H,#05H MOV 35H,#06H LOOP: ACALL DISPLAY AJMP LOOP DISPLAY:PUSH 00H MOV 36H,#06H MOV R0,#30H MOV 37H,#01111111B NEXT:MOV A,@R0 MOV DPTR,#TAB MOVC A,@A+DPTR MOV P0,A INC R0 MOV P2,37H MOV A,37H RR A MOV 37H,A ACALL DELAY DJNZ 36H,NEXT POP 00H RET
DELAY: MOV 7FH,#5 DELAY1: MOV 7EH,#250 DJNZ 7EH,$ DJNZ 7FH,DELAY1 RET TAB:
;2.5ms延时程序 2.5ms延时程序
DB 3FH,06H,5BH,4FH,66H,6DH,7DH
END
任务二:如何在上述基础上,让数码管显示的字符滚动起来? 任务二:如何在上述基础上,让数码管显示的字符滚动起来? 思路: 思路: 任务二和任务一的区别在于,任务一每个数码管显示相 任务二和任务一的区别在于, 同的内容,而任务二的每个数码管显示的内容在不断变化, 同的内容,而任务二的每个数码管显示的内容在不断变化, 大家可从修改待显示数据区(显存区域)或修改显示段码表 大家可从修改待显示数据区(显存区域) 修改待显示数据区 的思路来入手。 的思路来入手。
在多位LED显示时,为了简化硬件电路,通常将所有 在多位LED显示时,为了简化硬件电路, LED显示时 位的段码线相应段并联在一起, 位的段码线相应段并联在一起,由1个8位I/O口控制,形成 I/O口控制, 口控制 段码线的多路复用,而各位的共阳极或共阴极分别由相应 段码线的多路复用, 的I/O线控制,形成各位的分时选通。 I/O线控制,形成各位的分时选通。 线控制
LED显示器的译码: LED显示器的译码:软件译码 显示器的译码
AT89C51
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
+5V
f e
a g d
共阳LED 共阳
b c dp
软件译码特点: 软件译码特点: 不用专用的译码芯片,驱动功率较小 不增加硬 功率较小; 不用专用的译码芯片,驱动功率较小;不增加硬 编程较复杂; 灵活( 件的开销;软件编程较复杂 字型灵活 件的开销;软件编程较复杂;字型灵活(比如既可 译数字又可译字母) 译数字又可译字母)。
10.1 LED显示器接口原理 LED显示器接口原理
LED( Light Emitting Diode )是发光二极管英文 名称的缩写。LED显示器是由发光二极管构成的能够 显示字段的显示器件。在单片机应用系统中通常使 用的是8段LED显示器(又常称为LED数码管)。这种 显示器有共阴极与共阳极两种,如后图所示。
公共阳极
接高电平
dp g f e d c b a
高电平点亮 dp g f …… a
f e
a g d
b c dp dp
g f …… a 低电平点亮
f e
a g d
b c dp
接地
dp g f e d c b a
公共阴极
思考:如果要在8段显示器上显示P. 思考:如果要在8段显示器上显示P. ,那么共阳极 和共阴极段码分别是什么? 和共阴极段码分别是什么? 共阳极段码是:0CH ;共阴极段码是:F3H 共阳极段码是: 共阴极段码是:
各显示器在显示过程中轮流得到送显信号, 各显示器在显示过程中轮流得到送显信号,与各显示器接口 轮流得到送显信号 I/O口线 共用的 口线是 的I/O口线是共用的。
静态显示特点: 静态显示特点:
无闪烁,无须扫描,节省CPU时间,编程简单,用元器件多, 无闪烁,无须扫描,节省CPU时间,编程简单,用元器件多, CPU时间 I/O线多 线多。 占I/O线多。
... ...
将6的段码送L6 的段码送L6 调用延时子程序 结束
思路二: 思路二: 将显示部分设计成子程序的结构, 将显示部分设计成子程序的结构,在子程序中利用查 表的方法来获得相应的段码,这种思路经常用于显示变化 表的方法来获得相应的段码,这种思路经常用于显示变化 的字符。 的字符。 但需要注意以下问题: 但需要注意以下问题: 1、主程序、子程序各自要求独立成块,千万不能混淆。 主程序、子程序各自要求独立成块,千万不能混淆。 2、待转换的数据的存储区间的合理选择问题。 待转换的数据的存储区间的合理选择问题。
10.1.1 LED显示器的结构 LED显示器的结构
LED显示器的结构: LED显示器的结构: 显示器的结构 ①共阳与共阴 共阳与共阴
g f Vcc a b
接高电平
f
公共阳极
e
a g d
b c dp
dp g f …… a
低电平点亮
c d Vcc e dp
10.1.1 LED显示器的结构 LED显示器的结构
LED显示器的结构: LED显示器的结构: 显示器的结构 共阳与共阴 ①共阳与共阴
g f GND a b
高电平点亮
dp g f …… a
f
公共阴极
e
a g d
b c dp
c d GND e dp
接地
单片机系统扩展LED显示器时多用共阳LED。 单片机系统扩展LED显示器时多用共阳LED。共阳 LED显示器时多用共阳LED 显示器每个段笔画是用低电平( 0 )点亮的, 显示器每个段笔画是用低电平(“0”)点亮的,要求驱动 功率很小;而共阴显示器段笔画是用高电平( 1 ) 功率很小;而共阴显示器段笔画是用高电平(“1”)点 亮的,要求驱动功率较大。 亮的,要求驱动功率较大。 通常每个段笔画要串一个数百欧姆的降压电阻。 通常每个段笔画要串一个数百欧姆的降压电阻。 降压电阻
பைடு நூலகம்
实验原理图
共阴LED 共阴LED数码管 LED数码管
实验内容: 实验内容:
任务一:如何让6个数码管同时亮,且分别显示654321? 任务一:如何让6个数码管同时亮,且分别显示654321? 思路一: 思路一:
开始 将1的段码送L1 的段码送L1 调用延时子程序 将2的段码送L2 的段码送L2 调用延时子程序
实验示例程序:(任务二) 实验示例程序: 任务二)
ORG 0000H AJMP MAIN ORG 0030H MAIN: MOV 30H,#01H MOV 31H,#02H MOV 32H,#03H MOV 33H,#04H MOV 34H,#05H MOV 35H,#06H MOV MOV MOV MOV MOV MOV 36H,#00H 37H,#00H 38H,#00H 39H,#00H 3AH,#00H 3BH,#00H MOV MOV MOV MOV MOV MOV 3CH,#01H 3DH,#02H 3EH,#03H 3FH,#04H 40H,#05H 41H,#06H
LED显示器的显示方式:(静态与动态) LED显示器的显示方式: 静态与动态) 显示器的显示方式 静态显示: 静态显示:
各显示器在显示过程中持续得到送显信号, 各显示器在显示过程中持续得到送显信号,与各显示器接口 持续得到送显信号 I/O口线 专用的 口线是 的I/O口线是专用的。
动态显示: 动态显示: