对于数码管的操作相比于流水灯复杂一点,但也只是一点而已,不必畏惧;
接下来让我们来了解一下数码管的工作原理:
数码管有8位,每位有8段(其实是7段外加一个点),运用代码控制点亮哪一段。
首先数码管分为共阴极和共阳极两种,而我们常用的单片机即51单片机是共阴极的,什么叫共阴极呢?其实从字面就可以想象,就是有一极共同接地(数码管有8个)。
前面我说过,数码管比流水灯麻烦一点,是因为数码管是位选和段选共同控制的。
新手可能会疑惑,为什么会有段选和位选,首先我们来说一下位选和段选的分别作用:
位选是控制选中的是哪个数码管和以及选中了哪一个;
段选是控制选中的数码管的哪一段(一个数码有7段外加一个点);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include<reg52.h>
//头文件中已给出P2^6和P2^7的地址
sbit we = P2^7;sbit du = P2^6;
unsigned int a ;
{
//段选为低电位给1点亮
du = 1;//打开P0 = 0xff;//第一位是最后一个点
du = 0;//关闭
//避免程序混乱,延迟一下
a = 10000;while(a--);
//位选是高电位给0点亮
we = 1; //打开P0 = 0x55;//第一位是最后一个数码
we = 0;//关闭
//暂停在此处,即点亮的会一直处于点亮状态
while(1);}