位选锁存器口为:P2^7;打开P0为8个数码管
打开位选:we=1;
关闭位选:we=0;
段选锁存器口为:P2^6;打开P0为一个数码管上的8个位置
打开段选:du=1;
关闭段选:du=0;
a-dp,从低八位到高八位;且1为亮,0为暗;
[0-9]对应的数组是:
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}
//静态数码管代码
//静态数码管
#include <reg52.h>
sbit we=P2^7;
sbit du=P2^6;
void delay(unsigned int z)
{
unsigned int i ,j;
for(i=z;i>0;i--)
for(j=114;j>0;j--);
}
void main()
{
int a[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
int i;
for(i=0;i<10;i++)
{
we=1;
P0=0xfe;
we=0;
du=1;
P0=a[i];
delay(200);
du=0;
}
}
//动态数码管
#include <reg52.h>
#include <intrins.h>
sbit we=P2^7;
sbit du=P2^6;
void delay(unsigned int z)
{
unsigned int i ,j;
for(i=z;i>0;i--)
for(j=114;j>0;j--);
}
void main()
{
int a[9]={0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
int i;
int x=0xfe;
for(i=0;i<9;i++)
{
we=1;
P0=x;
we=0;
du=1;
P0=a[i];
delay(200);
du=0;
x=_crol_(x,1);
}
}