数码管7seg-mpx2-cc如何同时显示两个数字要用c语言的,第五节 七数码管的使用.doc...

第五节 七数码管的使用

第五节 数码管的使用

5.1 数码管简介

同学们!相信你的流水灯也做的不错了吧,现在能玩出几种花样了?但是工程师们设计这么一个单片机,并不是只为了让它做流水灯的,那样也太浪费点了吧 ... ^_^??数码管的一种是半导体发光器件,7段LED数码管是利用7个LED(发光二极管)外加一个小数点的LED组合而成的显示设备,可以显示0~9等10个数字和小数点,使用非常广泛,它的外观。

图5-1

5.2 数码管的显示原理

数码管可以分为共阳极与共阴极两种,共阳极就是把所有LED的阳极连接到共同接点com,接正5伏电源而每个LED的阴极分别为a、b、c、d、e、f、g及dp(小数点);共阴极则是把所有LED的阴极连接到共同接点com,要将其接地而每个LED的阳极分别为a、b、c、d、e、f、g及dp(小数点),8个LED图中的8个LED分别与上面那个图中的A~DP各段相对应,通过控制各个LED的亮灭来显示数字。那么,实际的数码管的引脚是怎样排列的呢?对于单个数码管来说,从它的正面看进去,左下角那个脚为1脚,以逆时针方向依次为1~10脚,左上角那个脚便是10脚了,上面两个图中的数字分别与这10个管脚一一对应。注意,3脚和8脚是连通的,这两个都是公共脚。数码管的8段,对应一个字节的8位,a对应最低位,dp对应最高位。所以如果想让数码管显示数字0,那么共阴数码管的字符编码即0x3f;共阳数码管的字符编码即0xc0。可以看出两个编码的各位正好相反。如图

图5-4

那么,一位数码管要显示字符0~F,则对应的编码如表2所示。

一个八段数码管称为一位,多个数码管并列在一起可构成多位数码管,它们的段选线(即a,b,c,d,e,f,g,dp)连在一起,而各自的公共端称为位选线。显示时,都从段选线送入字符编码,而选中哪个位选线,那个数码管便会被点亮。

一般情况下,为了计算或取码的方便,我们把a-dp依次接到单片机某个口上的Px.0--Px.7上。x表示0,1,2,3其中的一个。这样我们只要给某个口,赋一个值,则相应的LED段就被点亮,但是在硬件连接上要注意了:单片机可能不能直接驱动LED,所以我们可以通过控制三级管的导通或截止,来控制LED的亮与灭!… P”菜单,从“元件库”中选取元件。依次添加其他元件。其名称和位置见下表。

元件名称CategorySub-CategoryResultsAT89C52Microprocessor ICs8051 FamilyAT89C527SEG-MPX1-CA(注1)Optoelectronics7-Segment Displays7SEG-MPX1-CARX8(注2)ResistorsResistor PacksRX8RESPACK-8(注3)ResistorsResistor PacksRESPACK-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

#define SegPort P0 //定义数码管连接的端口

#define uchar unsigned char //宏定义 将unsigned char 替换为较为简单的uchar写法

#define uint unsigned int//宏定义 将unsigned int 替换为较为简单的uint写法

//用一个数组来定义字符0~f共阳极数码管编码

uchar code seg7ca[]={

0xc0,0xf9,0xa4,0xb0,//0~3

0x99,0x92,0x82,0xf8,//4~7

0x80,0x90,0x88,0x83,//8~b

0xc6,0xa1,0x86,0x8e //c~f

};

//延时函

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值