您的位置 首页 解答

一位数码管驱动

*******************************过程**********************************先认识下数码管管脚图共阳共阴数码管脚管图:共阳数码管:VCC(

*******************************进程**********************************

先知道下数码管管脚图

共阳/共阴数码管脚管图:

共阳数码管:VCC(位选)衔接在一同,外部(段选)低电平点亮

这种7段数码管其实其实里边有7个LED,共阳管就把7个LED的“+”级接在一同上图中的公共脚便是他们的“+”级,剩余的8个脚便是7个LED的“-”级,“-”级就等于脚管:a、b、c、d、e、f、g、h 他们是分隔的,没接在一同。

共阴数码管:GND(位选)衔接在一同,外部(段选)高电平点亮

共阴管就跟上面的反过来,“-”级接在一同,“+”级等于a、b、c、d、e、f、g、h

将a、b、c、d、e、f、g、h八个引脚接到单片机

P1口:P1.0←a、P1.1←b、P1.2←c、P1.3←d、P1.4←e、P1.5←f、P1.6←g、P1.7←h

如图:

**************************************************************************************

点亮数码管只需”P1″调用字形码数组”tab”

P1包含了:P1.0、P1.1、P1.2、P1.3、P1.4、P1.5、P1.6、P1.7
“b”代表”tab”数组的元素,元素便是下面的字形码
程序因为”while (1)”的效果下不断循环,每循环一次,”b”的值主动”+1″,循环10次
后”b”的值主动归”0″

0x3F对应的元素是0、0x06对应元素是1、……………………..0x71对应的元素是15

**************************************************************************************

字形码

h

g

f

e

d

c

b

a

共阳

1

0

0

1

0

0

0

0

共阴

0

1

1

0

1

1

1

1

字形码“9”编码示例:

共阴极:0x6F “0”平息“1”点亮

共阳极:0x90 “1”平息“0”点亮

**************************************************************************************

因为单片机I/O口输出电流很小,所以一起驱动一个七段的数码管则需求加强端口的输出才能

办法:(1)运用三极管(2)接上拉电阻(3)设置端口推挽输出

下面只介绍推挽输出:

推挽输出:一般用于需求更大驱动电流的状况

I/O口各种不同作业形式及装备

P1M0 P1M1 I/O口形式(P1.x如做A/D运用,需求将其设置成 开漏或许高阻输入

0

0

准双向(传统8051 I/O口形式)

灌电流可达20mA,拉电流为230μA

因为制作差错,实践为250μA~150μA

0

1

推挽输出(强上拉输出,可达20mA,要加限流 电阻)

1

0

仅为输入(高阻),假如该I/O口需求作为A/D使 用,可选此形式

1

1

开漏(Open Drain),假如该I/O口需求作为 A/D 运用,可选此形式

举例:

I/O口 P1M0 P1M1 形式
P1.0 0 0 准双向/弱上拉
P1.1 0 1 强推挽输出
P1.2 1 0 高阻输入
P1.3 1 1 开漏输出
P1.4 0 1 强推挽输出
P1.5 0 1 强推挽输出
P1.6 0 1 强推挽输出
P1.7 0 1 强推挽输出

举例(C代码):

P1M0 = 0x30; //转化二进制后:0011 0000

P1M1 = 0x5F; //转化二进制后:0101 1111

所以,主函数的这两句代码的效果便是把单片机一切P1的I/O口(包含:P1.0、P1.1、P1.2、P1.3、P1.4、P1.5、P1.6、P1.7)设置为强推挽形式输出

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/jieda/256703.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部