新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 數(shù)碼管(STC89C52): 第一個(gè)數(shù)碼管循環(huán)顯示0~F

        數(shù)碼管(STC89C52): 第一個(gè)數(shù)碼管循環(huán)顯示0~F

        作者: 時(shí)間:2016-11-22 來(lái)源:網(wǎng)絡(luò) 收藏
        一.硬件設(shè)計(jì)


        本文引用地址:http://www.104case.com/article/201611/319912.htm

        說(shuō)明:

        選通一個(gè)數(shù)碼管分兩步,

        第一步是位選,即選擇哪個(gè)數(shù)碼管亮,這里位選是通過(guò)鎖存器U2的WE1~WE6來(lái)選擇第一個(gè)數(shù)碼管到第六個(gè)數(shù)碼管,由于數(shù)碼管為共陰極(相對(duì)于8位數(shù)碼管),那么這里WE端為0代表位選選通,

        第二步是段選,即選擇數(shù)碼管的哪位亮,這里段選是通過(guò)鎖存器U1的a~h來(lái)選擇數(shù)碼管的8位管子,這里DUAN端為1代表段選選通.

        二.程序設(shè)計(jì)

        1.程序功能

        第一個(gè)數(shù)碼管循環(huán)顯示0~F

        2. 程序源碼

        #include

        #define uchar unsigned char

        #define uint unsigned int

        sbit duan = P2 ^ 6;

        sbit wela = P2 ^ 7;

        uchar code led1[] = {

        0x3f,0x06,0x5b,0x4f,

        0x66,0x6d,0x7d,0x07,

        0x7f,0x6f,0x77,0x7c,

        0x39,0x5e,0x79,0x71

        };

        lenLed1 = sizeof(led1)/sizeof(led1[0]);

        void delayms(uint xms);

        void main()

        {

        uchar i;

        wela = 1;

        P0 = 0xfe;

        wela = 0;

        while (1)

        {

        for (i = 0; i < lenLed1; i++)

        {

        duan = 1;

        P0 = led1[i];

        duan = 0;

        delayms(1000);

        }

        }

        }

        void delayms(uint xms)

        {

        uint i, j;

        for (i = xms; i > 0; i--)

        for (j = 110; j > 0; j--)

        ;

        }



        評(píng)論


        技術(shù)專(zhuān)區(qū)

        關(guān)閉
        主站蜘蛛池模板: 夏津县| 内丘县| 视频| 射阳县| 平遥县| 永川市| 青岛市| 翁源县| 峨山| 高密市| 万山特区| 永年县| 闽清县| 宜阳县| 新野县| 习水县| 古蔺县| 常宁市| 郯城县| 武邑县| 斗六市| 蒲江县| 洛阳市| 卢湾区| 南宫市| 米林县| 吉首市| 塘沽区| 梅州市| 宝坻区| 安溪县| 南丹县| 墨玉县| 汨罗市| 习水县| 赤城县| 香港| 潮安县| 山东| 满城县| 广灵县|