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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2689|回復: 8
打印 上一主題 下一主題
收起左側

單片機定時器0中斷 控制LED亮滅 有幾個問題想不清楚!求解答

[復制鏈接]
跳轉到指定樓層
樓主
ID:645415 發表于 2020-7-25 17:47 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
疑問:
1.模塊一不是給定時器設定了初值了嘛?模塊三的重新設定是在中斷之后將溢出的數值重新設定????
2.去除模塊三的定時器賦初值為什么下載程序后不能達到LED亮滅??
3.主函數中的while(1)是讓程序停在那里一直掃描???


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

typedefunsigned int u16;          //對數據類型進行聲明定義
typedef unsignedchar u8;

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



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


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


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

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

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


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

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:332444 發表于 2020-7-25 23:59 | 只看該作者
1不要把函數稱為模塊,2應該去學一下定時器內容,3除去中斷重新賦值會使計時變得很長,4while(1);無限空循環,因為不需要做任何事情。
回復

使用道具 舉報

板凳
ID:332444 發表于 2020-7-26 05:39 | 只看該作者
補充一下while(1);空循環不做任何別的事情,只負責讓單片機運行起來。
回復

使用道具 舉報

地板
ID:782419 發表于 2020-7-26 10:17 | 只看該作者
你可能是從PLC轉過來的吧!模塊的概念用于理解程序還行,與大家溝通就不太方便了,定時器每次溢出進入中斷都會讓定時器寄存器的值清零,即TL0,TH0=0,如果要保證下次定時器進入中斷的時間,需要再次給TH0和TH0賦值。你也可以理解為定時器在工作模式1時的記性不太好,一進入中斷就忘了自己在哪兒了,你需要提醒它一下,也就是通過TH0和TH1的賦值實現。
回復

使用道具 舉報

5#
ID:782419 發表于 2020-7-26 10:20 | 只看該作者
你需要對中斷的概念加深一下理解。
while(1);你也可以理解為無條件等待,直到發生中斷并執行中斷程序。執行完中斷繼續等待。
回復

使用道具 舉報

6#
ID:395706 發表于 2020-7-26 11:14 | 只看該作者
你對中斷的應有還有點不熟悉,可以加深學習一下。
while(1); 對于MCU來講,只是在等待,不處理任何事務,直到發生中斷并執行中斷程序。執行完中斷繼續等待。
回復

使用道具 舉報

7#
ID:716656 發表于 2020-7-26 15:50 | 只看該作者
http://www.zg4o1577.cn/bbs/dpj-103111-1.html
我覺得還是把這篇文章細研究下。要不以后遇到定時中斷還是不會。要每一句都知道怎么回事
回復

使用道具 舉報

8#
ID:808700 發表于 2020-7-28 09:58 | 只看該作者
while(1),這個是等待,如果沒有這個,程序很可能只執行一次
回復

使用道具 舉報

9#
ID:645415 發表于 2020-7-28 16:06 | 只看該作者
壓著我頭發啦 發表于 2020-7-26 15:50
http://www.zg4o1577.cn/bbs/dpj-103111-1.html
我覺得還是把這篇文章細研究下。要不以后遇到定時中斷還是不 ...

謝謝!!!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 黄色香蕉视频在线观看 | h小视频| av中文字幕在线 | 999久久久久久久 | 羞羞视频在线观看免费观看 | 国产精品一区在线 | 国产精品亚洲一区 | 国产精品视频一区二区三区不卡 | 91精品久久久久久久久 | 免费一区二区三区 | 国产玖玖 | 高清欧美性猛交 | 中文字幕亚洲专区 | 涩爱av一区二区三区 | 五月天婷婷激情 | 国产精品视频网 | 一级片av| 伊人久操 | 亚洲成人自拍 | 久久一区二区三区免费 | 亚洲一区二区三区视频 | 国产成人免费在线 | 91 久久| 午夜精品久久久久久久久久久久久 | 亚洲精品一区二区在线观看 | 欧美高清性xxxxhd | 欧美久久精品 | h片在线观看免费 | 亚洲国产精品成人 | 一区二区成人 | 成人免费视频一区二区 | 色综合中文 | 男人天堂色 | 久久99精品国产 | 国产精品久久久久久久久久了 | 一区二区在线免费观看 | 久久精品国产亚洲一区二区三区 | 国产第一页在线观看 | 欧美性受xxxx | 激情毛片 | 男女性毛片 |