今天总算是看到了一点单片机实在的东西了,经过今天的学习,我知道了单片机数码管的简单控制,总体说来,还是挺简单的,只是不知道的时候觉得难,真正的去学习的时候,又变得简单起来。
单片机数码管的原理大概是这样的,分别对一个字节进行编码,暂且将其叫a,b,c,d,e,f,g,h,当她们取不同的值时,将会得到不同的显示,那为什么是八位呢,因为在计算机里8位刚好是一个字节,这样就使其变的合理起来,可以把一个字节的数据送到某个寄存器里面,然后再送给数码管,得到相应的显示。编码如下:
----------------------------------------------------
0x3f , 0x06 , 0x5b , 0x4f , 0x66 , 0x6d ,
0 1 2 3 4 5
0x7d , 0x07 , 0x7f , 0x6f , 0x77 , 0x7c ,
6 7 8 9 A B
0x39 , 0x5e , 0x79 , 0x71 , 0x00
C D E F 无显示
------------------------------------------------------
为了节约资源,又引入了2个锁存器(74HC573),这样就可以使用少的单片机引脚达到完全控制数码管的目的。为什么会选择锁存器呢,,其实,我模电学的太菜了,里面的原理还不明白,以后有空的话,会去看看补充一下。
再说说锁存器的功能,就是锁存器有一个控制位,当她的高位电位不同,会有不同的效果,当是高电平的时候,导通,当是低电平的时候,就断开了,并且保持右边的电位状态。所以利用这一功能,就可以达到控制数码管的目的。
因此,可以如下示例程序:效果是点亮2个数码管,显示0
单片机数码管的原理大概是这样的,分别对一个字节进行编码,暂且将其叫a,b,c,d,e,f,g,h,当她们取不同的值时,将会得到不同的显示,那为什么是八位呢,因为在计算机里8位刚好是一个字节,这样就使其变的合理起来,可以把一个字节的数据送到某个寄存器里面,然后再送给数码管,得到相应的显示。编码如下:
----------------------------------------------------
0x3f , 0x06 , 0x5b , 0x4f , 0x66 , 0x6d ,
0 1 2 3 4 5
0x7d , 0x07 , 0x7f , 0x6f , 0x77 , 0x7c ,
6 7 8 9 A B
0x39 , 0x5e , 0x79 , 0x71 , 0x00
C D E F 无显示
------------------------------------------------------
为了节约资源,又引入了2个锁存器(74HC573),这样就可以使用少的单片机引脚达到完全控制数码管的目的。为什么会选择锁存器呢,,其实,我模电学的太菜了,里面的原理还不明白,以后有空的话,会去看看补充一下。
再说说锁存器的功能,就是锁存器有一个控制位,当她的高位电位不同,会有不同的效果,当是高电平的时候,导通,当是低电平的时候,就断开了,并且保持右边的电位状态。所以利用这一功能,就可以达到控制数码管的目的。
因此,可以如下示例程序:效果是点亮2个数码管,显示0
#include<reg52.h>
sbit wela=P2^7;
sbit dula=P2^6;
void main()
{
wela=0;
P0=0xc0;
wela=1;
dula=0;
P0=0x06;
dula=1;
}