<dl id="xausj"></dl>
    1. <ul id="xausj"><th id="xausj"></th></ul>

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

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

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

      51單片機(jī)用定時器0實(shí)現(xiàn)流水燈的代碼如下,用P1口接led燈,代碼如下都有注釋就不具體解釋了,英語不怎么好,有的地方將就一下嘍,本次主要講一下P1口怎么賦值。原先寫的都是用查表來移位的,個人感覺不怎么好,麻煩。直接用位運(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    //定時器0定時時間,每次50ms


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

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


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

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


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

          void main(void)

          {

              init_time0();


          }


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

          void init_time0(void)

          {

                  EA=1;                   //開總中斷

                  ET0=1;                  //開定時器0中斷

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

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

                  TL0=(65526-50000)%256;

                  TR0=1;                  //開啟定時器

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

          }

          /************定時器中斷函數(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;                    //定時時間到清零

              }

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

              TL0=(65526-50000)%256;

          }




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

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

      国产中文欧美日韩,色播在线永久免费视频,另类专区亚洲无码,亚洲中文字无码av

      <dl id="xausj"></dl>
      1. <ul id="xausj"><th id="xausj"></th></ul>

        <b id="xausj"></b>
        <cite id="xausj"></cite>
        <b id="xausj"><meter id="xausj"></meter></b>
        <dl id="xausj"><noframes id="xausj"></noframes></dl>