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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

51單片機利用定時器生成10K的PWM,可實際只有2500Hz是怎么回事?

查看數: 4387 | 評論數: 20 | 收藏 1
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2019-4-8 10:00

正文摘要:

源程序如下,用示波器看,PWM頻率是2500Hz,不知道哪里出了問題。晶振設置的是11.0592MHz #include <reg51.h> #define uchar unsigned char #define uint unsigned int sbit PWM=P0^0; sbit k1=P2^0; uc ...

回復

ID:530343 發表于 2019-5-9 08:40
可以用現成的定時器生成器!
void Timer0Init(void)                //100微秒@11.0592MHz
{      EA=1;
        ET0=1;
        AUXR &= 0x7F;                //定時器時鐘12T模式
        TMOD &= 0xF0;                //設置定時器模式
        TMOD |= 0x01;                //設置定時器模式
        TL0 = 0xA4;                //設置定時初值
        TH0 = 0xFF;                //設置定時初值
        TF0 = 0;                //清除TF0標志
        TR0 = 1;                //定時器0開始計時
}

EA=1;
ET0=1;   這兩句在開始位,如在結束位,有什么不同.
ID:468240 發表于 2019-4-11 09:23
hhh402 發表于 2019-4-10 13:30
只是51單片機速度太慢造成的,中斷時間太短還沒有運算完。改成1kHZ頻率,如果仿真正常就說明這個判斷是對的 ...

多謝
ID:491577 發表于 2019-4-10 13:30
只是51單片機速度太慢造成的,中斷時間太短還沒有運算完。改成1kHZ頻率,如果仿真正常就說明這個判斷是對的,或者把單片機晶振改成30MHZ,如果這時示波器檢測的頻率大于2500HZ也能說明是51單片機速度太慢造成的。
ID:468240 發表于 2019-4-10 11:05
LIZHIZHI1 發表于 2019-4-9 20:51
可以用現成的定時器生成器!
void Timer0Init(void)                //100微秒@11.0592MHz
{      EA=1;
...

這個程序放那里?大佬
ID:468240 發表于 2019-4-10 11:05
LIZHIZHI1 發表于 2019-4-9 20:51
可以用現成的定時器生成器!
void Timer0Init(void)                //100微秒@11.0592MHz
{      EA=1;
...

我試試
ID:508245 發表于 2019-4-9 20:51
可以用現成的定時器生成器!
void Timer0Init(void)                //100微秒@11.0592MHz
{      EA=1;
        ET0=1;
        AUXR &= 0x7F;                //定時器時鐘12T模式
        TMOD &= 0xF0;                //設置定時器模式
        TMOD |= 0x01;                //設置定時器模式
        TL0 = 0xA4;                //設置定時初值
        TH0 = 0xFF;                //設置定時初值
        TF0 = 0;                //清除TF0標志
        TR0 = 1;                //定時器0開始計時
}
這個很正確!
ID:468240 發表于 2019-4-9 20:15
robinsonlin 發表于 2019-4-9 13:10
昨天回車鍵敲快了。 圖片沒有貼上去。

我就是定的0.1ms啊
ID:451718 發表于 2019-4-9 13:10
assor 發表于 2019-4-8 21:02
初值怎么不對了,大佬。

昨天回車鍵敲快了。 圖片沒有貼上去。  

STC.jpg (206.75 KB, 下載次數: 64)

STC.jpg
ID:468240 發表于 2019-4-8 21:04
wxxl 發表于 2019-4-8 12:15
可以用現成的定時器生成器!
void Timer0Init(void)                //100微秒@11.0592MHz
{      EA=1;

不太懂
ID:468240 發表于 2019-4-8 21:03

模擬的就做不到10K嗎
ID:468240 發表于 2019-4-8 21:02
robinsonlin 發表于 2019-4-8 12:49
另外,你的計時器初值好像也不對, 試試

初值怎么不對了,大佬。
ID:388197 發表于 2019-4-8 17:55
定時器初值問題吧.下載工具里就有定時器代碼生成器,輸入參數直接復制就行了.
ID:213173 發表于 2019-4-8 16:16
你首先算一下10us的中斷周期,CPU執行中斷里的語句時間夠不夠就明白是怎么回事了。
ID:74585 發表于 2019-4-8 15:19
你這個是模擬PWM
ID:74585 發表于 2019-4-8 15:19
這個你需要考慮下進入中斷的最小時間,如果最小時間計算不能做到10Khz,那就是不可以
ID:451718 發表于 2019-4-8 12:49
另外,你的計時器初值好像也不對, 試試
ID:451718 發表于 2019-4-8 12:40
中斷里面除法運算,你以為這些都不占用時間的么?
ID:46065 發表于 2019-4-8 12:15
可以用現成的定時器生成器!
void Timer0Init(void)                //100微秒@11.0592MHz
{      EA=1;
        ET0=1;
        AUXR &= 0x7F;                //定時器時鐘12T模式
        TMOD &= 0xF0;                //設置定時器模式
        TMOD |= 0x01;                //設置定時器模式
        TL0 = 0xA4;                //設置定時初值
        TH0 = 0xFF;                //設置定時初值
        TF0 = 0;                //清除TF0標志
        TR0 = 1;                //定時器0開始計時
}
ID:468240 發表于 2019-4-8 11:41
飛機翻筋斗 發表于 2019-4-8 10:58
設置成50us電平翻轉試試

設置了其他的,也是一樣的。我程序沒寫錯吧
ID:395176 發表于 2019-4-8 10:58
設置成50us電平翻轉試試

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 伊人精品在线视频 | 一级黄色录像片子 | 亚洲成人av | 玖玖国产精品视频 | 亚州精品天堂中文字幕 | 国产精品激情 | 日韩欧美在线一区 | 超碰美女在线 | 国产精品大片在线观看 | 成人欧美一区二区三区在线观看 | 91大神在线资源观看无广告 | 一级看片 | 爱爱视频日本 | 亚洲一级黄色 | 91网站在线观看视频 | 久久y| 黄色成人免费在线观看 | 91影院在线观看 | 蜜桃免费一区二区三区 | 亚洲中午字幕 | 国产成人精品久久二区二区 | 国产精品一卡二卡三卡 | 在线中文视频 | 国产精品一区二区不卡 | 久久综合伊人 | 中文福利视频 | 久久综合一区二区三区 | 国产精品一区二区视频 | 久久综合伊人 | 日韩一二区 | 欧美成人精品激情在线观看 | 国产伦精品一区二区三毛 | 国产99小视频 | 黄色精品视频网站 | 免费在线观看成人 | 日韩免 | 久久久久国产精品免费免费搜索 | 国产一区二区久久 | 久久久久国产视频 | 午夜欧美日韩 | 国产精品福利网站 |