找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2119|回復: 4
打印 上一主題 下一主題
收起左側(cè)

求助,為什么定時1ms,用cnt計數(shù)100次后led會以1s閃爍

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:661513 發(fā)表于 2020-1-25 08:43 來自手機 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include "reg52.h"

sbit led1 = P2^0;
unsigned int cnt = 0;

void Timer0Init();

void main()
{
        Timer0Init();
        while(1)
        {
               
        }
}


void Timer0Init()           //定時1ms,11.0592M
{
        TMOD = 0X01;
        TL0 = 0XCD;
        TH0 = 0XD4;
        TR0 = 1;
        TF0 = 0;
        ET0 = 1;
        EA = 1;
}


void Timer0() interrupt 1
{
        TL0 = 0XCD;
        TH0 = 0XD4;
        cnt++;
        if(cnt>=100)
        {
                cnt = 0;
                led1 = ~led1;
        }
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:661513 發(fā)表于 2020-1-25 12:23 來自手機 | 只看該作者
我知道了,我定時器T0配置錯了,我把定時器時鐘弄成了1T弄錯了
回復

使用道具 舉報

板凳
ID:213173 發(fā)表于 2020-1-25 14:09 | 只看該作者
樓主定時器設置錯誤,你這個TL0 = 0XCD;TH0 = 0XD4;接近10ms,11.0592MHz設置1ms:TL0 = 0x66;TH0 = 0xFC;
       
回復

使用道具 舉報

地板
ID:235200 發(fā)表于 2020-1-25 14:14 | 只看該作者
TL0 = 0X66; TH0 = 0XFC; 是12T的初值,TL0 = 0XCD; TH0 = 0XD4; 是1T的初值,程序中需用AUXR設置1T還是12T模式
回復

使用道具 舉報

5#
ID:123289 發(fā)表于 2020-1-26 21:02 | 只看該作者
定時器也就是一個加法計數(shù)器,每個CLK+1!
你要看看定時器的原理框圖(書上定時器章節(jié)中找),看看CLK取自何處?它的頻率是多少?一看就明白你錯在哪里了。
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表