日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]#includesbit P1_0 = P1^0;void Delay(); // 下面引用時(shí)一定要和這里的大小寫一致否則會(huì)有警告或錯(cuò)誤void Main(){while (1) // 開始一直循環(huán){P1_0 = 0;Delay(); // 沒有參數(shù)也要加 () 否則會(huì)有WarningP1_0 = 1;Delay

#include

sbit P1_0 = P1^0;

void Delay(); // 下面引用時(shí)一定要和這里的大小寫一致否則會(huì)有警告或錯(cuò)誤

void Main()

{

while (1) // 開始一直循環(huán)

{

P1_0 = 0;

Delay(); // 沒有參數(shù)也要加 () 否則會(huì)有Warning

P1_0 = 1;

Delay();

}

}

void Delay() // 12M晶振1s延時(shí)

{

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--); // 最后個(gè)要有 ; 號

}

//=======以下非代碼==========//

原理,利用h,i,j,k循環(huán)指令消耗掉一定時(shí)間來達(dá)到延時(shí),為什么利用循環(huán)延時(shí)的做法,在12M晶振延時(shí)1秒中需要h,i,j,k四個(gè)變量,且各變量的值是上面代碼中那樣呢?這要從單片機(jī)的周期說起,單片機(jī)有指令周期,機(jī)器周期,狀態(tài)周期,時(shí)鐘周期;

時(shí)鐘周期:也就晶振的振蕩周期,以12MHz為例,時(shí)鐘周期為 1/ 12000000 = 1/12us;

機(jī)器周期:1個(gè)機(jī)器周期=6個(gè)狀態(tài)周期=12個(gè)時(shí)鐘周期=1us;

指令周期:單片機(jī)執(zhí)行一條指令所需要的時(shí)間稱為指令周期,指令周期是以機(jī)器周期為單位的,不同的指令所需要的機(jī)器周期不一定相同(1-4個(gè)),單片機(jī)執(zhí)行一條單周期指令需要1us,執(zhí)行一條雙周期指令需要2us,for循環(huán)需要8個(gè)指令周期;

具體執(zhí)行for循環(huán)消耗的時(shí)間,可以在Keil里通過代碼測量:

#include

sbit P1_0 = P1^0;

void Delay();

void Main()

{

while (1) // 開始一直循環(huán)

{

P1_0 = 0;

Delay();

P1_0 = 1;

Delay();

}

}

void Delay()

{

unsigned char h;

for (h = 1000; h > 0; h--); // 此處下斷點(diǎn)

}

 

循環(huán)1000次執(zhí)行完后的時(shí)間點(diǎn)

 

1000次循環(huán)耗時(shí) 0.00042850s - 0.00019600s = 0.00023250s = 232.5us;1次循環(huán)耗時(shí)約 0.2us,

1s = 1000000us,1000000us / 0.2us = 500000次,而 5 * 4 * 116 * 214 = 496480;因?yàn)闊o符號字符型unsigned char 大小為1 byte,范圍為0~255,所以只能通過循環(huán)嵌套,近似的得到一個(gè)1s延時(shí)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉