点亮数码管,显示具体的数字

目的: 一共有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--);
    
    }

}

原文地址:https://www.cnblogs.com/zijidefengge/p/13771959.html