久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

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

單片機·延時程序小結

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

在單片機實驗中,有一個很重要也是很基本的子程序必須要求我們掌握,那就是延時程序。下面我憑記憶來講解延時程序。

課本上講,1個機器周期=6個狀態周期=12個時鐘周期,而這個時鐘周期與晶振頻率有關。我們接下來要上的實驗基本都是以12MHz的晶振。12M的頻率,得其周期為1/12乘10的-6方s,那么1個機器周期就是它的12倍,即1us,而一般語句需要2個機器周期,例如

MOV R6,#20

DNJZ R6,$

每一次執行時,每一個過程就需要2個機器周期,為1us乘2。.同樣C語言中for循環語句沒執行一次也是2個機器周期,即2us。下面我會以每個語句執行一次用時的2us為基本單位,不會再細化了。

匯編語言最基本延時:

        MOV R6,#20

D1:MOV R7,#248

        DNJZ R7,$//循環248次,共用248X2us,

        DNJZ R6,D1

我開始也是搞不懂怎么算它到底延時多少,現在給大家寫它表達式:

我覺得應該從最后往前算,在MOR R7,#248執行一次前提下,用時1X2us,然后循環減248,用時248X2us,故共用時[2+2X248]us。

然而又由于DNJZ R6,D1,上面的過程又循環20次,故上面的循環最終用時20X[2+2X248]us。

接著注意到單純DNJZ R6,D1會用時20X2=40us。

最后注意過執行唯一一次的  MOV R6,#20會用時1X2us。

所有,最終表達式為:1X2us+20X[2+2X248]us+20X2=10002us=10ms=0.01s。

 

同理,用c51編的延時程序要了解它必須也要寫出它的表達式,下面的C51延時程序可以試著自己寫出表達式:

void delay02s(void)
{
unsigned char i,j,k;
for(i=20;i>0;i--)
for(j=20;j>0;j--)
for(k=248;k>0;k--);
}

我還是把表達式寫在這,[(248X2+2)X20+2]X20=199240=199.24ms=0.2s

再給一個我驗證過的程序,這是個比較典型和基本的延時程序應用例子:

#include<reg51.h>
sbit L1=P0^0;
void delay02s(void)
{
unsigned char i,j,k;
for(i=20;i>0;i--)
for(j=20;j>0;j--)
for(k=248;k>0;k--);
}
void main(void)
{
while(1)
{
L1=0;
delay02s();
L1=1;
delay02s();
}
}

能看出它的功能么?他就是讓一個燈不停的閃啊閃,亮個0.2s,又熄個0.2s,如此反復。

關閉窗口

相關文章

主站蜘蛛池模板: 毛片黄片免费看 | 日韩久久久久久久 | 看av网| 在线视频中文字幕 | 91成人免费看 | 男女搞网站 | 午夜一级黄色片 | 国产精品久久久久久久久久久免费看 | 午夜视频精品 | 在线视频国产一区 | 精品国产一二三区 | 日韩电影在线一区 | 成人在线一区二区 | 国产精品久久久久久一级毛片 | 综合色在线| 国产乱码久久久久久 | 在线视频亚洲 | 成人做爰www免费看 午夜精品久久久久久久久久久久 | 国产成人免费视频网站高清观看视频 | 国产精品色 | 97影院在线午夜 | 天堂一区在线观看 | 亚洲国产精品一区二区第一页 | 国产a视频 | av资源网站 | 亚洲一区 中文字幕 | 亚洲视频在线免费 | 一区二区在线观看免费视频 | 国产精品爱久久久久久久 | 国产精品一区三区 | 日本午夜免费福利视频 | 国产成人在线视频播放 | 精品久久香蕉国产线看观看亚洲 | 成人在线视频免费观看 | 国产一区二区精品在线观看 | 日韩欧美在线免费观看视频 | 免费在线观看一区二区 | 国产精品久久久久久妇女6080 | 国产精品免费高清 | 欧美精品一区二区三区在线 | 狠狠的干狠狠的操 |