一、静态显示
1.共阳极:
需要亮的给低电势:0,不需要亮的给高电势:1
共阴极:
需要亮的给低电势:1,不需要亮的给高电势:0
2.定位数位管:
eg.亮LED2:10进制2→转化为二进制,输入010
代码:
//第五个LED亮6
P2_4=1;
P2_3=0;
P2_2=1;
P0=0x7D;
对应到不同的LED:
void Nixie(unsigned char Location,Number)
{
switch(Location)
{
case 1:P2_4=1;P2_3=1;P2_2=1;break;
case 2:P2_4=1;P2_3=1;P2_2=0;break;
case 3:P2_4=1;P2_3=0;P2_2=1;break;
case 4:P2_4=1;P2_3=0;P2_2=0;break;
case 5:P2_4=0;P2_3=1;P2_2=1;break;
case 6:P2_4=0;P2_3=1;P2_2=0;break;
case 7:P2_4=0;P2_3=0;P2_2=1;break;
case 8:P2_4=0;P2_3=0;P2_2=0;break;
}
}
3.dir
接高电频,左边数据传到右边
对应相应的笔画,相应的abcd等会亮
高位对高位,1→20对应P00→P07
4.使某一位显示某个数:
1)输入相应的二进制代码,使控制三个口让某一位选中(第几个LED)
2)给P0口一个断码的数据,送到公共的断码端
5.数码管断码表
0:0x3F,1:0x06,2:0x5B,4:0x66,5:0x6D,6:0x7D,7:0x07,8:0x7F,9:0x6F
A:0x77,B:0x7C,C:0x39,D:0x5E,E:0x79,F:0x71,空:0x00
unsigned char NixieTable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}
二、动态显示
1.消影:
防止上一个数据窜到下一个数据里→delay
代码:
P0=NixieTable[Number];
Delay(1);
P0=0x00;