下面是我的程序,是不是只有时钟和中断才能实现呢?
#include <REGX52.H>
void Delay(unsigned int xms)//@11.0592MHz
{
unsigned char data i, j;
while(xms--)
{i = 2;
j = 199;
do
{
while (--j);
} while (--i);
}
}
unsigned char NixieTable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x67};//数码管显示数字断码
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(8,6);Nixie(7,6);Nixie(6,6);
//第八个晶体管,显示6//第七个晶体管,显示6//第六个晶体管,显示6
}
}
/*********************************************************
是普中的A2单片机开发板
89c52rc
下面是数码管和译码器的原理图
|