熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂(lè)園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
|
發(fā)布時(shí)間: 2021-1-26 09:54
正文摘要:本帖最后由 明日香 于 2021-1-29 10:53 編輯 用定時(shí)器0,任選一管腳P21,使其輸出頻率50HZ,周期20ms,輸出1500us的高電平時(shí)間 具體單片機(jī)程序如下: #include <stc12c5a.h> #include <stdio.h> #i ... |
| 使用方式2八位自動(dòng)重裝模式的話,中斷程序里不需要再設(shè)置初值了吧 |
SPEAR 發(fā)表于 2021-1-28 00:02 老哥,發(fā)一下你完整的程序吧,謝謝了,我改了之后仿真仍然是連續(xù)波形,多謝多謝 |
SPEAR 發(fā)表于 2021-1-28 00:02 我知道了,我用的是定時(shí)器0模式1 |
SPEAR 發(fā)表于 2021-1-28 00:02 是我表述的不清楚,周期20ms其中高電平為1.5ms(也就是1500us) 老哥,請(qǐng)問(wèn) “周期20ms,分成兩百份,按照11.0592MHZ,每份92us” 為什么92us初值是164呢? 不是按照65536-92+1=FFA5嗎? 然后TH0=FF,TL0=A5,請(qǐng)問(wèn)這種算法為什么不對(duì)呢? |
| 好像看錯(cuò)了,應(yīng)該把30改成15,按照題目的意思占空比應(yīng)該是7.5%不是15% |
感覺(jué)你的思路有些混亂啊,晶振是11.0592MHZ,時(shí)鐘周期不是1/11.0592us嗎,怎么又在注釋里寫了1/12us呢?這個(gè)算錯(cuò)了之后的定時(shí)時(shí)間肯定是錯(cuò)的。照你的意思,應(yīng)該是輸出50HZ,周期0.02s的方波,把每個(gè)周期分為200份,其中15%輸出高電平,既然是這樣,高電平不應(yīng)該是200*0.15=30份嗎,或者說(shuō)一個(gè)pwm周期20ms,其中高電平時(shí)間應(yīng)該是3ms,才符合15%的占空比,程序里咋寫了個(gè)1500us。。周期0.02s,分成200份,按照11.0592MHZ晶振,每一份差不多是92us,就是定時(shí)器中斷一次花的時(shí)間,用定時(shí)器0模式2就夠了,初值設(shè)為164,正常的波形應(yīng)該是圖片那樣。中斷里的程序應(yīng)該這樣寫才對(duì)
|
pwm.png (93.81 KB, 下載次數(shù): 120)
| 參與人數(shù) 1 | 黑幣 +40 | 收起 理由 |
|---|---|---|
|
| + 40 | 回帖助人的獎(jiǎng)勵(lì)! |
| 個(gè)人習(xí)慣,不管是什么單片機(jī),設(shè)定定時(shí)后在定時(shí)中斷里用一個(gè)IO口取反,然后看一下定時(shí)時(shí)間對(duì)不對(duì) |
| 參與人數(shù) 1 | 黑幣 +20 | 收起 理由 |
|---|---|---|
|
| + 20 | 回帖助人的獎(jiǎng)勵(lì)! |
| 它為什么會(huì)出現(xiàn)連續(xù)的波形呢?應(yīng)該是一段持續(xù)的高電平才對(duì)? |
| STC各類單片機(jī)的應(yīng)用文檔寫的還可以,各種應(yīng)用例程都有,當(dāng)下來(lái)看看就可以了,大學(xué)畢業(yè)就應(yīng)該會(huì)學(xué)習(xí)了。 |
| 參與人數(shù) 1 | 黑幣 +20 | 收起 理由 |
|---|---|---|
|
| + 20 | 回帖助人的獎(jiǎng)勵(lì)! |
| 可以看看這個(gè)貼子:http://m.raoushi.com/bbs/dpj-200820-1.html |
Powered by 單片機(jī)教程網(wǎng)