动态数码管
3-8译码器用3位二进制生成8位选择。
即000->0,001->1,010->2,…,111->7
选择哪个动态数码管选中
8个数码管共用一个输入端
3-8译码器输出端连接到J1端,J6是显示数据的输入端
#include <reg52.h>
#define NUM P0
//delay
void delay(int n)
{
while(n--);
}
sbit LA = P1^0;
sbit LB = P1^1;
sbit LC = P1^2;
unsigned char c[10]={
0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09
};
void show()
{
int i=0;
for(i=0;i<8;i++)
{
switch(i)
{
case 0:
LA=LB=LC=0;
break;
case 1:
LA=1,LB=0,LC=0;
break;
case 2:
LA=0,LB=1,LC=0;
break;
case 3:
LA=1,LB=1,LC=0;
break;
case 4:
LA=0,LB=0,LC=1;
break;
case 5:
LA=1,LB=0,LC=1;
break;
case 6:
LA=0,LB=1,LC=1;
break;
case 7:
LA=LB=LC=1;
break;
}
NUM = ~c[i+1];
P2=~P0;
delay(10000);
NUM=0x00;
}
}
void main()
{
while(1)
{
show();
}
}