日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Delay软件延时

發(fā)布時間:2024/3/13 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Delay软件延时 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Delay軟件延時是什么?

讓單片機等待一段時間再繼續(xù)往下執(zhí)行之后的代碼,在此期間不能執(zhí)行除了中斷的任何操作,在此期間單片機就一直數(shù)數(shù)

為什么要用Delay軟件延時?

可以讓單片機等待固定時間,在進行別的操作

但是不能亂使用Delay延時,不然會使單片機執(zhí)行效率下降,也會浪費大量單片機資源。(解決方案:用定時器做資源分配,短延時(小于10ms)使用Delay,如果是長延時就需要使用定時器了)

怎么使用Delay延時

1.使用STC-ISP生成Delay軟件延時函數(shù)

1)在選項卡中選中軟件延時計算器

2)選擇系統(tǒng)頻率,比賽時應(yīng)該看題目具體要求是12MH還是11.0592MH,然后將用戶程序運行時IRC頻率與系統(tǒng)頻率進行同步

3)選擇想要的定時長度

4)選擇8051指令集,藍橋杯比賽要選擇Y5,因為藍橋杯板是15系列的板,如果使用89系列的板就要選擇Y1了。

5)復(fù)制生成的代碼,到程序里進行復(fù)制

?2.Delay函數(shù)在程序中的運用

/************************************************* 程序功能:在P34口上輸出方波:周期是2ms(頻率500Hz),高電平時間1ms,低電平時間1ms。注意:1. 用STC-ISP生成固定的Delay軟件延時;生成時,8051指令集選擇STC-Y52. _nop_() 函數(shù)需要#include "intrins.h"3. 本程序運行時鐘:12MHz *************************************************/ #include <STC15F2K60S2.H> #include "intrins.h"void Delay1ms() //@12.000MHz {unsigned char i, j;i = 12;j = 169;do{while (--j);} while (--i); }void main(void) {while(1){P34 = 1;Delay1ms();P34 = 0;Delay1ms();} }

?通用Delay函數(shù)

如果需要進行延時時間不一樣的延時,按照上面的方法,就需要生成很多個不同的延時函數(shù),所以我們可以使用通用延時函數(shù)來進行延時。

但是這種延時的方法,帶來的誤差比較大,因為本身STC-ISP生成的延時函數(shù)就產(chǎn)生了一定的誤差,又在通用延時函數(shù)又寫入了for循環(huán),循環(huán)的執(zhí)行是需要消耗一定時間的,所以導(dǎo)致的誤差會比較大。

//通用毫秒延時函數(shù) void vDelay_Ms(unsigned int ms) //@12.000MHz {unsigned char i, j;unsigned char k;for(k=0;k<ms;k++){i = 12;j = 169;do{while (--j);} while (--i);} }//通用微秒延時函數(shù) void vDelay_Us(unsigned int us) //@12.000MHz {unsigned int k;for(k=0;k<us;k++){_nop_();_nop_();_nop_();_nop_();} }

總結(jié)

以上是生活随笔為你收集整理的Delay软件延时的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。