- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五节 数码管的使用
5.1 数码管简介
同学们!相信你的流水灯也做的不错了吧,现在能玩出几种花样了?但是工程师们设计这么一个单片机,并不是只为了让它做流水灯的,那样也太浪费点了吧 ... ^_^??。
数码管的一种是半导体发光器件,7段LED数码管是利用7个LED(发光二极管)外加一个小数点的LED组合而成的显示设备,可以显示0~9等10个数字和小数点,使用非常广泛,数码管可以分为一位和多位它的外观如图5-1所示。
图5-1
5.2 数码管的显示原理
数码管可以分为共阳极与共阴极两种,共阳极就是把所有LED的阳极连接到共同接点com,使用时com接正5伏电源,而每个LED的阴极分别为a、b、c、d、e、f、g及dp(小数点);共阴极则是把所有LED的阴极连接到共同接点com,使用时com要将其接地。而每个LED的阳极分别为a、b、c、d、e、f、g及dp(小数点),8个LED的分布方式如图5-2所示。图中的8个LED分别与上面那个图中的A~DP各段相对应,通过控制各个LED的亮灭来显示数字。
那么,实际的数码管的引脚是怎样排列的呢?对于单个数码管来说,从它的正面看进去,左下角那个脚为1脚,以逆时针方向依次为1~10脚,左上角那个脚便是10脚了,上面两个图中的数字分别与这10个管脚一一对应。注意,3脚和8脚是连通的,这两个都是公共脚。它对应的引脚分布为图5-3所示。
图5-2 图5-3
数码管的8段,对应一个字节的8位,a对应最低位,dp(小数点)对应最高位。所以如果想让数码管显示数字0,那么共阴数码管的字符编码即0x3f;共阳数码管的字符编码即0xc0。可以看出两个编码的各位正好相反。如图5-4所示。
图5-4
那么,一位数码管要显示字符0~F,则对应的编码如表2所示。
一个八段数码管称为一位,多个数码管并列在一起可构成多位数码管,它们的段选线(即a,b,c,d,e,f,g,dp)连在一起,而各自的公共端称为位选线。显示时,都从段选线送入字符编码,而选中哪个位选线,那个数码管便会被点亮。
5.3 一位数码管的显示
请实现:让一位数码管依次显示字符0~F,每个字符显示1秒,如此反复。
一般情况下,为了计算或取码的方便,我们把a-dp依次接到单片机某个口上的Px.0--Px.7上。x表示0,1,2,3其中的一个。这样我们只要给某个口,赋一个值,则相应的LED段就被点亮,但是在硬件连接上要注意了:单片机可能不能直接驱动LED,所以我们可以通过控制三级管的导通或截止,或者使用共阳极数码管(以灌电流的方式)、或者使用锁存器来驱动。来控制LED的亮与灭!
5.3.1硬件的选择与仿真电路的设计
1.打开Proteus,选择“File/NewDesign”菜单选项,新建一个“设计项目”。并将项目保存为“SEG7_1”。
2.选择“P”按钮或菜单“Library/Pick Divice/Symbol… P”菜单,从“元件库”中选取元件。依次添加其他元件。其名称和位置见下表。
元件名称
Category
Sub-Category
Results
AT89C52
Microprocessor ICs
8051 Family
AT89C52
7SEG-MPX1-CA(注1)
Optoelectronics
7-Segment Displays
7SEG-MPX1-CA
RX8(注2)
Resistors
Resistor Packs
RX8
RESPACK-8(注3)
Resistors
Resistor Packs
RESPACK-8
注1:7SEG表示7段数码管(Proteus还提供了14段和16段数码管)
MPX1表示1位(Proteus还提供了2位、4位、6位和8位数码管)
CA表示共阳极(CC表示共阴极)
注2:RX8表示电阻排,它实际相当于8个电阻并排摆放在一个容器内。在这里是作为限流电阻来使用的。
注3:RESPACK-8表示电阻排,它实际相当于8个电阻并排摆放在一个容器内,但是这8个电阻的一段是连接在一起作为公共端的。在这里是作为P0口的上拉电阻来使用的。
依次从备选元件库中摆放器件,连线,画出仿真电路图,如图5-5所示。
图5-5
注意:在Proteus中,实际上,51单片机是不需要晶振、复位电路和电源就可以仿真的,因此,为了方便我们教学,以后,我们将不再画上述51的外围电路。
5.3.2程序的设计
1.新建一个keil项目,并命名为“SEG7_1”并添加一个名为“main.c”的源代码文件,然后键入如下代码。如代码5.1所示。
//代码5.1
#include reg52.h
#define SegPort P0 //定义数码管连接
文档评论(0)