• <label id="gmp5l"></label>

    <li id="gmp5l"></li>
      • 您好,歡迎訪問上海意泓電子科技有限責(zé)任公司網(wǎng)站!
        4新聞資訊
        您的位置: 首頁 ->  新聞資訊 -> 單片機(jī)

        ?51單片機(jī)用定時(shí)器0實(shí)現(xiàn)流水燈

        文章出處:單片機(jī) 責(zé)任編輯:上海意泓電子科技有限責(zé)任公司 發(fā)表時(shí)間:
        2020
        11-10

        51單片機(jī)用定時(shí)器0實(shí)現(xiàn)流水燈的代碼如下,用P1口接led燈,代碼如下都有注釋就不具體解釋了,英語不怎么好,有的地方將就一下嘍,本次主要講一下P1口怎么賦值。原先寫的都是用查表來移位的,個(gè)人感覺不怎么好,麻煩。直接用位運(yùn)算的比較好。 n初始值為0,然后n每次循環(huán)都加1,P1口賦值語句為: P1=~(0x01<< n) ; 此處注意和P1=~(0xfe<< n) ; 的區(qū)別。

        /*********調(diào)用頭文件*****************/

            #include

            #include


            /***********宏定義*******************/

            #define uint unsigned int   

            #define uchar unsigned char 

            #define long_time0 10    //定時(shí)器0定時(shí)時(shí)間,每次50ms


            /************定義全局變量************/

            uint n=0;                //循環(huán)移位變量


            /************子函數(shù)聲明**************/

            void init_time0(void);   //定時(shí)器0初始化子函數(shù)


            /*************主函數(shù)*****************/

            void main(void)

            {

                init_time0();


            }


            /*********定時(shí)器0初始化函數(shù)**********/

            void init_time0(void)

            {

                    EA=1;                   //開總中斷

                    ET0=1;                  //開定時(shí)器0中斷

                    TMOD=0X01;              //選擇方式1

                    TH0=(65536-50000)/256;  //每次定時(shí)50秒

                    TL0=(65526-50000)%256;

                    TR0=1;                  //開啟定時(shí)器

                    while(1);               //等待定時(shí)器0中斷

            }

            /************定時(shí)器中斷函數(shù)**********/

            void time0(void) interrupt 1 using 0

            {

                static uint i=0;

                i++;

                if(long_time0==i)

                {

                    P1=~(0x01<

                    if(++n==8)n=0;

                    i=0;                    //定時(shí)時(shí)間到清零

                }

                TH0=(65536-50000)/256;      //重新裝入初值

                TL0=(65526-50000)%256;

            }




        上海意泓電子科技有限責(zé)任公司 版權(quán)所有 未經(jīng)授權(quán)禁止復(fù)制或鏡像

        CopyRight 2020-2025 www.jlodreman.com All rights reserved   滬ICP備2021005866號

        亚洲人成影院在线观看,91综合永久在线观看,欧洲亚洲日韩国产AV一级,中文字幕在线视频播放
      • <label id="gmp5l"></label>

        <li id="gmp5l"></li>