色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 51單片機C語言延時函數(shù)

          51單片機C語言延時函數(shù)

          作者: 時間:2013-01-30 來源:網(wǎng)絡 收藏

          四. 1s延時子程序

          程序:

          void delay1s(void)

          {

          unsigned char h,i,j,k;

          for(h=5;h>0;h--)

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

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

          for(k=214;k>0;k--);

          }

          關于單片機的精確延時,網(wǎng)上很多都是大約給出延時值沒有準確那值是多少,也就沒有達到精確高的要求,而本函數(shù)克服了以上缺點,能夠精確計數(shù)出要延時值且精確達到1us,本舉例所用CPU為STC12C5412系列12倍速的單片機,只要修改一下參數(shù)值其它系例單片機也通用,適用范圍寬。

          共有三條說明如下:

          函數(shù)調(diào)用分兩級:一級是小于10US的延時,二級是大于10US的延時

          //====================小于10US的【用1US級延時】====================

          //----------微秒級延時---------

          for(i=X;i>X;i--) 延時時間=(3+5*X)/12 提示(單位us, X不能大于255)

          //================大于10US小于21.9955Ms的可用【10US級】===========

          void Delay10us(uchar Ms)

          {

          uchar data i;

          for(;Ms>0;Ms--)

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

          }

          i=[(延時值-1.75)*12/Ms-15]/4

          如想延時60US則 i=[(60-1.75)*12/6-15]/4=25.375≈26; 修改i的值=26,再調(diào)用上面的【10US級】Delay10us(6); 則就精確延時60US;

          如果想延時64US可以用這二種函數(shù)組合來用: Delay10us(6); for(i=9;i>X;i--) 共延時64US

          51單片機相關文章:51單片機教程


          c語言相關文章:c語言教程


          單片機相關文章:單片機教程


          單片機相關文章:單片機視頻教程


          單片機相關文章:單片機工作原理


          晶振相關文章:晶振原理

          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉