解决昨天的问题:消影(视觉暂留)
显示会有位选 段选 位选 段选....由于单片机速度很快,这样就会导致上一位的数据串位到下一位数据
解决方法:清零上一位数据
先Delay1ms(不然数码管会变暗)
#include <REGX52.H>
unsigned char NixieTable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
void Delay(xms) //@12.000MHz
{
unsigned char i, j;
while(xms--)
{
i = 2;
j = 239;
do
{
while (--j);
} while (--i);
}
}
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;
}
P0=NixieTable[number];
Delay(1);
P0=0x00;
}
void main()
{
while(1)
{
Nixie(1,1);
Delay(1);
Nixie(2,2);
Delay(1);
Nixie(3,3);
Delay(1);
}
}
2023/11/17 补充:
果然,让我给拍到了
完整的是这个()