欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 單片機(jī)定時(shí)器0中斷 控制LED亮滅 有幾個(gè)問題想不清楚!求解答 [打印本頁]

作者: 22854qq    時(shí)間: 2020-7-25 17:47
標(biāo)題: 單片機(jī)定時(shí)器0中斷 控制LED亮滅 有幾個(gè)問題想不清楚!求解答
疑問:
1.模塊一不是給定時(shí)器設(shè)定了初值了嘛?模塊三的重新設(shè)定是在中斷之后將溢出的數(shù)值重新設(shè)定????
2.去除模塊三的定時(shí)器賦初值為什么下載程序后不能達(dá)到LED亮滅??
3.主函數(shù)中的while(1)是讓程序停在那里一直掃描???


#include"reg52.h"                        //此文件中定義了單片機(jī)的一些特殊功能寄存器

typedefunsigned int u16;          //對(duì)數(shù)據(jù)類型進(jìn)行聲明定義
typedef unsignedchar u8;

sbitled=P2^0;         //定義P20口是led



/*******************************************************************************
模塊一
* 函 數(shù) 名         : Timer0Init
* 函數(shù)功能        :定時(shí)器0初始化
* 輸    入         : 無
* 輸    出         : 無
*******************************************************************************/


voidTimer0Init()  //外部中斷0的函數(shù)
{
TMOD|=0X01;  //選擇為定時(shí)器0模式,工作方式1,僅用TR0打開啟動(dòng)。
TH0=0XFC;        //給定時(shí)器賦初值,定時(shí)1ms
TL0=0X18;     
ET0=1;//打開定時(shí)器0中斷允許
EA=1; //打開總中斷
        TR0=1;//打開定時(shí)器        //定時(shí)器0的運(yùn)行開關(guān)               
}


/*******************************************************************************
模塊二:主函數(shù)
* 函 數(shù) 名       : main
* 函數(shù)功能                : 主函數(shù)
* 輸    入       : 無
* 輸    出            : 無
*******************************************************************************/

void main()
{        
Timer0Init(); //定時(shí)器0初始化
while(1);        //  等待中斷發(fā)生????     
}

  
/*******************************************************************************
模塊三:中斷服務(wù)函數(shù)
* 函 數(shù) 名         : void Timer0()interrupt 1
* 函數(shù)功能                   : 定時(shí)器0中斷函數(shù)
* 輸    入         : 無
* 輸    出         : 無
*******************************************************************************/


void Timer0()interrupt 1
{
staticu16 i;
TH0=0XFC;        //給定時(shí)器賦初值,定時(shí)1ms
TL0=0X18;
i++;
if(i==1000)
{
i=0;
led=~led;        
}        
}


作者: xianfajushi    時(shí)間: 2020-7-25 23:59
1不要把函數(shù)稱為模塊,2應(yīng)該去學(xué)一下定時(shí)器內(nèi)容,3除去中斷重新賦值會(huì)使計(jì)時(shí)變得很長,4while(1);無限空循環(huán),因?yàn)椴恍枰鋈魏问虑椤?hr noshade size="2" width="100%" color="#808080"> 作者: xianfajushi    時(shí)間: 2020-7-26 05:39
補(bǔ)充一下while(1);空循環(huán)不做任何別的事情,只負(fù)責(zé)讓單片機(jī)運(yùn)行起來。
作者: wufeng391    時(shí)間: 2020-7-26 10:17
你可能是從PLC轉(zhuǎn)過來的吧!模塊的概念用于理解程序還行,與大家溝通就不太方便了,定時(shí)器每次溢出進(jìn)入中斷都會(huì)讓定時(shí)器寄存器的值清零,即TL0,TH0=0,如果要保證下次定時(shí)器進(jìn)入中斷的時(shí)間,需要再次給TH0和TH0賦值。你也可以理解為定時(shí)器在工作模式1時(shí)的記性不太好,一進(jìn)入中斷就忘了自己在哪兒了,你需要提醒它一下,也就是通過TH0和TH1的賦值實(shí)現(xiàn)。
作者: wufeng391    時(shí)間: 2020-7-26 10:20
你需要對(duì)中斷的概念加深一下理解。
while(1);你也可以理解為無條件等待,直到發(fā)生中斷并執(zhí)行中斷程序。執(zhí)行完中斷繼續(xù)等待。
作者: fsmith    時(shí)間: 2020-7-26 11:14
你對(duì)中斷的應(yīng)有還有點(diǎn)不熟悉,可以加深學(xué)習(xí)一下。
while(1); 對(duì)于MCU來講,只是在等待,不處理任何事務(wù),直到發(fā)生中斷并執(zhí)行中斷程序。執(zhí)行完中斷繼續(xù)等待。
作者: 壓著我頭發(fā)啦    時(shí)間: 2020-7-26 15:50
http://www.raoushi.com/bbs/dpj-103111-1.html
我覺得還是把這篇文章細(xì)研究下。要不以后遇到定時(shí)中斷還是不會(huì)。要每一句都知道怎么回事
作者: lxbhcy    時(shí)間: 2020-7-28 09:58
while(1),這個(gè)是等待,如果沒有這個(gè),程序很可能只執(zhí)行一次
作者: 22854qq    時(shí)間: 2020-7-28 16:06
壓著我頭發(fā)啦 發(fā)表于 2020-7-26 15:50
http://www.raoushi.com/bbs/dpj-103111-1.html
我覺得還是把這篇文章細(xì)研究下。要不以后遇到定時(shí)中斷還是不 ...

謝謝!!!




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1