<tfoot id="ygvxt"><menuitem id="ygvxt"></menuitem></tfoot>
    • <kbd id="ygvxt"></kbd>
      <th id="ygvxt"><progress id="ygvxt"></progress></th>

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

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

      文章出處:?jiǎn)纹瑱C(jī) 責(zé)任編輯:上海意泓電子科技有限責(zé)任公司 發(fā)表時(shí)間:
      2020
      11-10

      51單片機(jī)用定時(shí)器0實(shí)現(xiàn)流水燈的代碼如下,用P1口接led燈,代碼如下都有注釋就不具體解釋了,英語(yǔ)不怎么好,有的地方將就一下嘍,本次主要講一下P1口怎么賦值。原先寫的都是用查表來(lái)移位的,個(gè)人感覺(jué)不怎么好,麻煩。直接用位運(yùn)算的比較好。 n初始值為0,然后n每次循環(huán)都加1,P1口賦值語(yǔ)句為: 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;                   //開(kāi)總中斷

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

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

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

                  TL0=(65526-50000)%256;

                  TR0=1;                  //開(kāi)啟定時(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.hljhgw.com All rights reserved   滬ICP備2021005866號(hào)

      国产强伦姧在线观看,…中文天堂在线一区,亚洲欧洲精品污网站在线观看,在线视频综合站
      <tfoot id="ygvxt"><menuitem id="ygvxt"></menuitem></tfoot>
        • <kbd id="ygvxt"></kbd>
          <th id="ygvxt"><progress id="ygvxt"></progress></th>