標(biāo)題: 單片機動態(tài)數(shù)碼管顯示程序 [打印本頁]

作者: 790116460    時間: 2021-7-19 18:20
標(biāo)題: 單片機動態(tài)數(shù)碼管顯示程序
#include <REGX52.H>

//數(shù)碼管段碼表
unsigned char NixieTable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};

//延時子函數(shù)
void Delay(unsigned int xms)
{
        unsigned char i, j;
        while(xms--)
        {
                i = 2;
                j = 239;
                do
                {
                        while (--j);
                } while (--i);
        }
}

//數(shù)碼管顯示子函數(shù)
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;                                //段碼清0,消影
}

void main()
{
        while(1)
        {
                Nixie(1,1);                //在數(shù)碼管的第1位置顯示1
//                Delay(20);
                Nixie(2,2);                //在數(shù)碼管的第2位置顯示2
//                Delay(20);
                Nixie(3,3);                //在數(shù)碼管的第3位置顯示3
//                Delay(20);
        }
}







歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1