ARM技术论坛
直播中

wangka

13年用户 5636经验值
擅长:基础元器件 模拟与电源 操作系统/软件
私信 关注
[经验]

基于EasyARM2103的DIY方案一:74HC595驱动数码管设计

`1.1 LED数码管简介
发光二极管LED是能将电信号转换成光信号的发光器件,7段LED数码管则是在一定形状的绝缘材料上,利用单只LED组合排列成的“8”字型,分别引出它们的电极,点亮相应的笔段来显示出0-9的数字。
1.1.1 LED数码管的结构与特性
LED数码管根据LED的接法不同分为共阴和共阳两类,了解这些特性,对编程是很重要的,不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。共阴和共阳极数码管的外形及内部电路如图1.1所示,它们的发光原理是一样的,只是电源极性不同。
基于EasyARM2103的DIY方案一:74HC595驱动数码管设计
图1.1 数码管外形和内部电路

将多只LED的阴极连在一起即为共阴式,而将多只LED的阳极连在一起即为共阳式。以共阴式为例,若把阴极接地,在相应段的阳极接上正电源,该段即会发光。

LED数码管的主要特点如下:
l)能在低电压、小电流条件下驱动发光,能与CMOS、TTL电路兼容;
2)发光响应时间极短(<0.1μs),高频特性好,单色性好,亮度高;
3)体积小,重量轻,抗冲击性能好;
4)寿命长,使用寿命在10万小时以上,甚至可达100万小时,成本低。
LED数码管被广泛用作数字仪器仪表、数控装置、计算机的数显器件。

1.1.2 LED数码管原理说明
LED数码管中各段发光二极管的伏安特性和普通二极管类似,只是正向压降较大,正向电阻也较大。在一定范围内,其正向电流与发光亮度成正比。由于常规的数码管用电电流只有1~2 mA,最大极限电流也只有10~30 mA,所以它的输入端在5 V电源或高于TTL高电平(3.5 V)的电路信号相接时,一定要串加限流电阻,以免损坏器件。

1.2 74HC595简介
74HC595是具有8位移位寄存器和一个存储器,三态输出功能。移位寄存器和存储器是分别的时钟。数据在SHCP的上升沿输入,在STCP的上升沿进入到存储寄存器中去。如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。移位寄存器有一个串行移位输入(DS),和一个串行输出(Q7’),和一个异步的低电平复位(MR),存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线。
基于EasyARM2103的DIY方案一:74HC595驱动数码管设计
图1.2 74HC595引脚图

74HC595引脚排布如图1.2所示,引脚功能见表1.1。

表1.1 74HC595引脚功能

1.3 设计原理
本设计采用LPC2103自带的硬件SPI接口与74HC595进行数据传输。74HC595将LPC2103发送过来的8位串行数据转换成8位并行数据,用以驱动数码管。本设计中采用共阳数码管。原理图如图1.3所示。
基于EasyARM2103的DIY方案一:74HC595驱动数码管设计
图1.3 原理图
1.4 电路制作流程
1.4.1 元器件选择
1.4.2 布局
分析原理图,需要仔细考虑元器件的布局与走线,合理的布局会减少走线的难度。本设计为了方便走线,数码管和74HC595采用自由连接方式(如图1.4所示),而没有采用顺序连接方式(如图1.5所示)。这大大降低了走线难度。但一定程度上会增加软件设计的工作量,后文将对此进行说明。
基于EasyARM2103的DIY方案一:74HC595驱动数码管设计
图1.4 自由连接
基于EasyARM2103的DIY方案一:74HC595驱动数码管设计
图1.5 顺序连接

1.4.3 焊接
在合理布局的基础,焊接相对容易很多。本设计中数码管和74HC595采用自由连接的方式,避免了交叉线焊接的麻烦,这样在整个板子焊接完成后没有用到跳线或者飞线。万能板焊接时可采用“拖锡”的方式,可使得整体效果美观,同时也保证了硬件连接的可靠性,如图1.6所示。

基于EasyARM2103的DIY方案一:74HC595驱动数码管设计
板子焊接完成后,实物如图1.7所示。
基于EasyARM2103的DIY方案一:74HC595驱动数码管设计
图1.7 完成效果
HC595电路与EasyARM2103开发板连接,实物如图1.8所示。
基于EasyARM2103的DIY方案一:74HC595驱动数码管设计
图1.8 整体效果图
上述布局和焊接的思想可合理的应用在单面电路板的设计中。

1.5 程序设计
在前面的电路设计时,数码管和74HC595采用自由连接的方式(如图1.4所示),所以段码不能采用标准段码,需另行设计。下面介绍一种生成段码表的简单方法。

? 1)测试步骤一
首先发送字符‘0xFE’,参考代码如下文所示。
基于EasyARM2103的DIY方案一:74HC595驱动数码管设计
实验现象:数码管笔段a被点亮。
实验现象分析:当向74HC595发送‘0xFE’时,Q0引脚输出低电平,Q1~Q7输出高电平。可以得出Q0引脚在硬件上对应数码管笔段a,低电平驱动数码管笔段发光。

? 2)测试步骤二
发送字符‘0xFD’,更改上文代码为:
基于EasyARM2103的DIY方案一:74HC595驱动数码管设计

实验现象:数码管笔段a熄灭,笔段b被点亮。
实验现象分析:当向74HC595发送‘0xFD’时,Q1引脚输出低电平,Q0、Q2~Q7输出高电平。从而可以判断出Q1引脚硬件上对应数码管笔段b,低电平驱动笔段发光。

? 3)测试步骤三
在了解如何驱动a、b笔段发光的基础之上,更改测试字符,依次向74HC595发送0xBF、0xDF、0xEF、0xFB、0xF7、0x7F六个数据,即可分别点亮c、d、e、f、g、dp六个笔段。

? 4)测试结论
参考以上测试方法,用户在不清楚硬件电路连接的情况下,逐次向74HC595发送测试数据,即可理清74HC595引脚与数码管笔段的对应关系。同时,也可得出数码管笔段与测试字符的对应关系,如表1.2所列。
基于EasyARM2103的DIY方案一:74HC595驱动数码管设计
表1.2 段码表数值

注意:不同的硬件电路,段码表的测试数据有所区别,表1.2仅适合本文的硬件电路,但笔段测试方法是相同的。
为了在7端数码管显示数字或者字符,控制器送出的字符需要进行转换,真值表的计算如表1.3所列。表中列出了7段数码管上能够显示的常用字符的真值表。如果用户需要显示其它字符,可跟根据表中所示的方法设置。
基于EasyARM2103的DIY方案一:74HC595驱动数码管设计
表1.3 七段共阳数码管真值表

本示例程序使用LPC2103的硬件SPI接口,设置LPC2103为SPI主机模式,与74HC595进行通讯。SPI初始化见程序清单1.1。

程序清单1.1 SPI初始化程序

LPC2103通过硬件SPI接口把数据发送给74HC595,数据发送程序见程序清单1.2。

基于EasyARM2103的DIY方案一:74HC595驱动数码管设计
程序清单1.2 数据发送程序

实验现象:数码管循环显示0~F,LPC2103字样,参见程序清单1.3。

基于EasyARM2103的DIY方案一:74HC595驱动数码管设计
程序清单1.3 main函数
` 基于EasyARM2103的DIY方案一:74HC595驱动数码管设计

回帖(15)

刘浩

2012-3-30 10:26:00
看看
举报

六六六

2012-3-30 10:58:48
举报

gk320830

2012-3-30 16:09:59
d顶
举报

cslgfxzy

2012-3-30 17:03:06
谢谢分享 真心顶起!~~
举报

六六六

2012-3-31 08:40:57
举报

1058459755

2012-3-31 14:16:28
谢谢
举报

liuxu19920224

2012-4-4 14:58:55
举报

2012转折

2012-4-9 20:52:11
顶起。
举报

changjianqiyuan

2012-5-12 23:09:49
这个刚好可以用到
举报

郭建颖

2012-7-18 15:58:25
{:soso__16984349925490629196_1:}
举报

杨文琦

2012-10-13 20:27:58
顶了。
举报

陈辉

2012-10-13 22:48:55
谢谢分享
举报

855243

2012-11-11 15:41:41
举报

许立

2013-5-5 10:10:12
.............................
举报

笑龙仔

2013-11-25 21:01:55
图片 有点不清。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分