新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 第7課 數碼管動態顯示

        第7課 數碼管動態顯示

        作者: 時間:2016-12-01 來源:網絡 收藏
        調用程序的方法如下,
        P0=table[1];
        這里表示將數組中的第2個元素(注意第一個是table[0])0xf9賦給P1口,
        即P0=0xf9;也就是此時位被選通的數碼管會顯示數字2.
        下面利用編碼的方法讓6個數碼管以間隔1秒的時間循環顯示0-f。相應程序如例1.
        例1:6個數碼管循環顯示0-f
        #include
        #define uint unsigned int
        #define uchar unsigned char
        sbit duan=P2^6;
        sbit wei=P2^7;
        uchar num;
        unsigned char code table[]={
        0xc0,0xf9,0xa4,0xb0,
        0x99,0x92,0x82,0xf8,
        0x80,0x90,0x88,0x83,
        0xc6,0xa1,0x86,0x8e };
        void delay(uint);
        void main()
        {
        wei=1;
        P0=0xfe;
        wei=0;
        for(num=0;num<16;num++)
        {
        duan=1;
        P0=table[num];
        delay(150);
        duan=0;
        }
        }
        void delay(uint z)
        {
        uint x,y;
        for(x=z;x>0;x--)
        for(y=500;y>0;y--);
        }
        下載到實驗板后實驗現象如圖3所示。
        圖3 6個數碼管依次從0-f變化
        2、數碼管的動態顯示
        明白了數組編碼后,現在我們正式介紹數碼管的動態顯示,為了更利于大家理解,我們先用前面介紹過的靜態顯示法寫一個程序,功能為:讓6個數碼管間隔一秒依次顯示1、2、3、4、5、6。程序如例2.
        例2數碼管依次顯示1、2、3、4、5、6
        #include
        #define uint unsigned int
        #define uchar unsigned char
        sbit duan=P2^6;
        sbit wei=P2^7;
        uchar num;
        uchar code table[]=
        {0x3f,0x06,0x5b,0x4f,
        0x66,0x6d,0x7d,0x07,
        0x7f,0x6f,0x77,0x7c,
        0x39,0x5e,0x79,0x71};
        void delay(uint);
        void main()
        {
        while(1)
        {
        for(num=1;num<7;num++)
        {
        if(num==1)
        {
        wei=1;
        P0=0xfe;
        wei=0;
        duan=1;
        P0=table[num];
        delay(1000);
        duan=0;
        }
        else if(num==2)
        {
        wei=1;
        P0=0xfd;
        wei=0;
        duan=1;
        P0=table[num];
        delay(1000);
        duan=0;
        }
        else if(num==3)
        {
        wei=1;
        P0=0xfb;
        wei=0;
        duan=1;
        P0=table[num];
        delay(1000);
        duan=0;
        }
        else if(num==4)
        {
        wei=1;
        P0=0xf7;
        wei=0;
        duan=1;
        P0=table[num];
        delay(1000);
        duan=0;
        }
        else if(num==5)
        {
        wei=1;
        P0=0xef;
        wei=0;
        duan=1;
        P0=table[num];
        delay(1000);
        duan=0;
        }
        else if(num==6)
        {
        wei=1;
        P0=0xdf;
        wei=0;
        duan=1;
        P0=table[num];
        delay(1000);
        duan=0;
        }

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 青海省| 西丰县| 香格里拉县| 乌鲁木齐县| 古田县| 柘荣县| 同心县| 锡林浩特市| 花莲市| 嘉黎县| 柞水县| 东阳市| 钟祥市| 天峨县| 岢岚县| 乌兰浩特市| 井冈山市| 绥江县| 瑞丽市| 马尔康县| 黔西县| 钟山县| 怀远县| 北票市| 安顺市| 上犹县| 阿拉善右旗| 绥中县| 兴仁县| 苍南县| 刚察县| 星子县| 南木林县| 南漳县| 子洲县| 永年县| 长泰县| 安岳县| 融水| 海城市| 梅州市|