<acronym id="xonnx"></acronym>
      <td id="xonnx"></td>
    1. <pre id="xonnx"></pre>

      1. 專注電子技術學習與研究
        當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

        精確延時整理(12T單片機)

        作者:佚名   來源:本站原創   點擊數:  更新時間:2014年04月10日   【字體:

        注:1.編譯軟件為"Keil uVision3"(Keil uVision2也試用)。用其他編譯軟件的話就不準了。
               2.需要包含頭文件<intrins.h>
               3.所有函數的延時時間都是在12Mhz晶振下計算的,如用其他晶振需進行換算。
               4.函數的執行時間為“函數的參數”乘以精確到的時間。例如delayms(unsigned char n)函數,其精確度為1ms,如果寫入語句delayms(4),那就是延時4ms。
               5.計算出來的延時時間不包括函數調用與返回的時間。如果函數的精確度較高,且參數較小,那么實際延時時間就可能與計算的時間差很遠。
         
        (1)精確到2us的延時(12MHz)
        void delayus(unsigned char n)
        { while(--n);
        }
         
        (2)精確到100us的延時(12MHz)
        void delay100us(unsigned char n) 
        { unsigned char i;
          for(;n;n--)
           { _nop_();
             for(i=46;i;i--);
           }
        }
         
        (3)精確的半毫秒延時函數(12MHz)
        void delay1_2ms(unsigned char n)
        { unsigned char i;
          for(;n!=0;n--)
           { _nop_();
             for(i=246u;i!=0;i--);
           }
        }
         
        (4)精確的毫秒延時函數(12MHz)
        void delayms(unsigned char n)
        { unsigned char i;
          for(;n!=0;n--)
           { for(i=248u;i!=0;i--);
             for(i=248u;i!=0;i--);
           }
        }
         

        關閉窗口
        欧美性色欧美精品视频,99热这里只有精品mp4,日韩高清亚洲日韩精品一区二区,2020国自产拍精品高潮