找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3383|回復(fù): 13
打印 上一主題 下一主題
收起左側(cè)

單片機呼吸燈程序為什么周期測得的是8ms

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:582255 發(fā)表于 2022-3-12 23:30 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
單片機程序如下
定時器設(shè)為4ms,每4ms 變量“dd”的值加1,加到11后(44ms),max和min的值變化一次,為什么最后測量到的周期是8ms?
#include "reg51.h"
#include<intrins.h>
unsigned int cd,dd;
unsigned char min=0,max=0x50;

sbit LED=P2^0;
void led_int() interrupt 1 using 0
{
        TH0=0xf1;           //延時約3.905ms初值
        TL0=0xf1;
        TR0=1;
        dd++;
        if(dd==11)
        {
                if((min==0x50)&&(max==0)){cd=0;}
                if((min==0)&&(max==0x50)){cd=1;}
                if(cd){min++;max--;}
                else {min--;max++;}
                dd=0;
        }
}
void delay(unsigned int i)
{

        unsigned int j;
        while(i--)
        {
                for(j=0;j<0x20;j++);
        }

}

void main()
{

        TMOD=0x01;          //模式0
        TH0=0xf1;          //3.905ms高位
        TL0=0xf1;          //3.905ms低位
        EA=1;
        ET0=1;
        TR0=1;
        while(1)
        {
                LED=0;
                delay(max);
                LED=1;
                delay(min);
        }
}

51hei圖片20220314233815.png (9.64 KB, 下載次數(shù): 53)

51hei圖片20220314233815.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:342822 發(fā)表于 2022-3-13 10:23 | 只看該作者
沒看到8ms    只看到32.25ms
回復(fù)

使用道具 舉報

板凳
ID:776619 發(fā)表于 2022-3-13 10:30 | 只看該作者
TMOD=0x01;          //模式0    它是模式0么?
回復(fù)

使用道具 舉報

地板
ID:582255 發(fā)表于 2022-3-13 18:28 | 只看該作者
taotie 發(fā)表于 2022-3-13 10:23
沒看到8ms    只看到32.25ms

哪個地方?用仿真看了嗎
回復(fù)

使用道具 舉報

5#
ID:401564 發(fā)表于 2022-3-13 19:28 | 只看該作者
1,那是模式1,不是模式0
2,3.905+3.905=7.81,這難道不是大約8mS的周期嗎?沒有錯呀
3,你要4mS的周期,不是應(yīng)該要2mS的中斷嗎?
回復(fù)

使用道具 舉報

6#
ID:342822 發(fā)表于 2022-3-13 20:20 | 只看該作者
aktuan007 發(fā)表于 2022-3-13 18:28
哪個地方?用仿真看了嗎


回復(fù)

使用道具 舉報

7#
ID:582255 發(fā)表于 2022-3-13 22:47 | 只看該作者

哪個地方可以看到是32.5ms啊啊
求賜教
回復(fù)

使用道具 舉報

8#
ID:342822 發(fā)表于 2022-3-14 09:16 | 只看該作者
只有P2^0咋眼睛當(dāng)然測他了。
方波的上升沿到下一個上升沿為1個周期,
回復(fù)

使用道具 舉報

9#
ID:161164 發(fā)表于 2022-3-14 10:48 | 只看該作者
1. taotie兄用的是12MHz, 樓主用的是11.0592MHz
2. TMOD=0x01;定時器0是模式1,定時器1是模式0
3. TR0=1;樓主用的是定時器0
4. 樓主說的周期是什么周期?
定時器0的溢出周期是3.905ms
LED的PWM周期是delay(max);+delay(min);
35.25ms(Protues 11.059zMhz)
回復(fù)

使用道具 舉報

10#
ID:582255 發(fā)表于 2022-3-14 23:39 | 只看該作者

大哥我還是不明白啊,為什么我測的是8.2ms
回復(fù)

使用道具 舉報

11#
ID:582255 發(fā)表于 2022-3-14 23:44 | 只看該作者

我不會在回復(fù)里傳圖片,又加到原文后面了
回復(fù)

使用道具 舉報

12#
ID:582255 發(fā)表于 2022-3-15 00:13 | 只看該作者
delay函數(shù)又是延時多少?不是440us?
回復(fù)

使用道具 舉報

13#
ID:582255 發(fā)表于 2022-3-15 09:42 | 只看該作者
明白了,原來是我的proteus晶振設(shè)置的不對,應(yīng)該和單片機保持一致都設(shè)為11.0592
回復(fù)

使用道具 舉報

14#
ID:342822 發(fā)表于 2022-3-15 11:01 | 只看該作者
aktuan007 發(fā)表于 2022-3-15 09:42
明白了,原來是我的proteus晶振設(shè)置的不對,應(yīng)該和單片機保持一致都設(shè)為11.0592

12M 32.50    11.0592   32.25
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表