用定時器能使微控制器的兩個輸出口產生不同的pwm脈衝嗎??懂得話給個程式。。佔空比要可調的

時間 2021-09-06 20:13:10

1樓:匿名使用者

提供一種思路,程式沒時間寫。

1、pwm需要週期,因此定時器必須得設定匹配值,達到週期計數時間後復位tc值;

2、兩個pwm波形需要產生可調的pwm,那麼就需要讓定時器知道什麼時刻該讓這個io口輸出高低電平。可以讓兩個輸出提供引數,比如數值是多少後出現高電平,高電平持續多長數值?

3、最後就是關鍵點了,即將定時器tc值(週期值)細化,比如我脈寬週期設定tc值是3000時候復位,那麼我可以將這個定時器定時300時候出現一次中斷,600時候中斷一次,900時候出現一次中斷,一次類推,這樣就可以得到很多的時間片段,即標誌位count。

4、我希望io口在週期內出現可調節脈寬那麼可以實現了,比如count==io1的時候讓其出現高電平,持續多長時間後出現低電平(中斷裡面完成);

簡單的示意程式:

void timer_handle(void)

}估計精度不怎麼好。

2樓:匿名使用者

樓上說的就可以了,簡單點說就是增加幾個count變數,每次定時中斷增1,在中斷一定次數後將輸出反向,count清0重記,這程式應該很簡單吧,加不了幾行的。

3樓:匿名使用者

可以用stc12c5204ad,增強型的51系列,帶雙路pwm輸出,兩個的佔空比可以不一樣

4樓:

是的51微控制器是不可以的。

去學習一下別的微控制器。絕對有你需要的結果的,甚至更好的都有。

5樓:匿名使用者

一個定時器不能,51是不能,呵。

6樓:視角與時間

用c還是彙編,微控制器的型號?

51微控制器用一個定時器可以輸出頻率一定,佔空比可調的pwm脈衝嗎?

誰給一個51微控制器用一個定時器可以輸出頻率一定,佔空比可調的pwm脈衝例子給我參考一下啊

7樓:匿名使用者

一.51沒有這樣的抄

功能,襲stc12微控制器才有這樣的功能,不過你可以用延時函式來產生pwm波形,但比較浪費cpu時間。

二.還有一種方法可以用51來實現,但要消耗兩個定時器,一個t0定時器控制pwm週期,另一個t1定時器控制pwm佔空比。(t0裝的初值要大於t1的初值)在定時器中斷的時候都是對i/o口進行取反就可以了。

一個定時器產生pwm波形,做不出來,要兩個的(不過只賞0分太少了吧!!!)

8樓:匿名使用者

只給個我認為對的思路吧,把定時器的定時時間初值用變數實現,在中斷程式裡對輸出口取反操作,通過給變數賦不同的初值來實現佔空比的調節!應該不難的~~

關於51微控制器定時器的問題,關於51微控制器使用兩個定時器進行控制的問題

工作方式1是16位的自動重灌定時計數器,能裝的最大數為65536 0 65535 那麼初值為65536 50000 15536 0x3cb0 就是你說的50ms溢位一次 12m的晶振,一個時鐘週期剛好1us,50000us 50ms 如果你需要1秒的定時,可以在定時器計數器中斷裡設一個計數變數x,進...

51微控制器定時器初始值的問題,51微控制器定時器初值公式

從本質上看,你根本不瞭解定時器的工作,你就只看 又豈能看懂。51微控制器的定時器0是16位,當然,這個模式是可以改變的。我就假設工作在16位模式下,因為大部分時候,也工作在這個模式下。16位的定時器,但只能用微控制器是8位的,所以,就拆分成了兩個位元組,高八位和低八位。th0表示定時器0的高八位,t...

微控制器的定時器計數器以查詢方式工作

都用定時器中斷,然後定時時間20us。p1.0口每經過5箇中斷進行翻轉,p1.1經過6個。這樣能滿足嗎?微控制器的定時器 計數器 以查詢方式工作,在p1.0口線上產生週期為200 s的連續方波,以中斷方式工作,在p1.1口線上產生週期為240 s的連續方波,假設晶振頻率為 12mhz,用組合語言程式...