目的: 一共有8位数码管,只让前四位显示数字2
// lighy the nixie tube #include<reg52.h> //这里的位声明必须在main函数之外,为什么呢? sbit du = P2^6; sbit wei = P2^7; //函数声明 void delay(unsigned int); void main() { //注意, 一下是先打开段选,在打开的位选。 //打开段选,即输入高电压 du = 1; //设置一个数码管显示什么数 //显示一个数字1 P0 = 0x5b; //关闭段选,即输入低电压 du = 0; //延时 5毫秒 delay(50); //打开位选 wei = 1; //选择打开哪一位,这里了点亮与段选的点亮是不一样的 P0 = 0xf0;//将所有位都打开 //锁存位选 wei = 0; //这里如果没有while循环,会一闪而过。 while(1); } void delay(unsigned int x) { //ab 用不了太大的数 unsigned char a, b; for(a=x;a>0;a--) { for(b=120;b>0;b--); } }