用微控制器和內部定時器來產生矩形波

2021-03-07 00:27:57 字數 2645 閱讀 9454

1樓:學而_無止境

由於你沒說用什麼微控制器,所以我用51的寫的(12t),鍾頻率為12mhz是不可能完成頻率為100khz,佔空比為2:1(高電平時間較長),因為你的機器週期是1us

是中斷裡面最少都要花上7us,按你的提意高電平為6.6666....us,低電平為3.3333.....us,所以無法完成,而且用晶振算出來還有小數,更不能過到了。

下面的程式請用48m的晶振,高電平為約6.us,低電平為約3.us,頻率為100khz,佔空比為約為2:

1,用51(12t)微控制器是很難達到你要值的。除非的要的頻率再低。cpu頻率再加高。

現在應該明白了吧!

#include

sbit pwm=p2^0;

void t0_t() interrupt 1else

}void main()

2樓:匿名使用者

使用atmega16-16ai微控制器,晶振為12mhz,讓微控制器工作於fpwm模式,icr1=120,這樣pwm的頻率就是100khz了,然後設定ocr1a=80,這樣佔空比就是66.6%,即高電平時間是低電平時間的2倍。

所以1l和2l說的都很正確,用51微控制器來實現時很困難的,需要換個微控制器。

3樓:

100khz的週期是10us,12mhz晶振51的指令週期是1us,所以很緊張,你的微控制器不能在幹別的了,只能執行如下的程式(假設從p1.0輸出脈衝):

lab1: clr p1.0 ;1us

nop ;1us

nop ;1us

setb p1.0 ;1us

nop ;1us

nop ;1us

nop ;1us

nop ;1us

jmp lab1 ;2us

因為只能精確到1us,所以佔空比沒那麼準,大約7:3

4樓:依米

如果用pic微控制器就好多了,自帶pwm和分頻器,四行程式就夠了!

5樓:

週期為10us,分3份,51那有那麼精確的?

用c51微控制器和內部定時器來產生矩形波,要求頻率為100hz,佔空比為2:1,如何理解?

6樓:匿名使用者

矩形波就是邏輯電平0和1的轉換。用術語說你要做的就是一個簡單的pwm訊號發生器。頻率很好理解,就是週期的倒數。

其週期為1/100s,是10ms。那麼10ms完成一個波形的變換。佔空比2:

1,那麼高電平與低電平的時間佔週期的比例為2:1,就是高電平為2/3*10 ms,低電平時間為1/3*10ms,這樣就完成了一個完整的波形。如此往復就可以達到要求。

利用定時器完成高低電平的時間定時,用io口進行高低的電平的轉換就可以了!

7樓:匿名使用者

100hz的矩形波,週期就是10ms,佔空比2:1,就是高的部分佔10ms的2/3,低的部分佔10ms的1/3。理解了嗎?

程式設計用微控制器和定時器產生矩形波 要求頻率50khz 佔空比2:1 設微控制器的fosc

8樓:阿挺時代

是什麼微控制器假設是51,

sbit led=p1^0;

void main()

void t0_time() interrupt 1if(b==3)}

利用定時器/計數器,在微控制器p1.0口線上產生連續週期性矩形波,週期為2 10

9樓:做而論道

51 微控制器:

***   0000h

mov   tmod, #02h  ;t0定時方式2mov   th0, #216   ;40us@12mhzmov   tl0, #216   ;40us@12mhzsetb  tr0

loop:

setb  p1.0

jnb   tf0, $

clr   tf0

jnb   tf0, $

clr   tf0

clr   p1.0

jnb   tf0, $

clr   tf0

jnb   tf0, $

clr   tf0

jnb   tf0, $

clr   tf0

jmp   loop

end如此即

內可容。

微控制器內部定時產生頻率為100khz等寬矩形波,晶振頻率為12mhz,如何程式設計?

10樓:匿名使用者

晶振頻率fsoc = 12mhz

也就是bai機器周du期為1us

要產生100khz的等寬矩形zhi波,也就是t=10us,即5us定時器溢dao出專一次,然後改變屬引腳電平,從而產生等寬矩形波。

則定時器在遞增n之後溢位,n=5us/1us =5,所以**的數為 n=(2^16-1)-n = 65530

即th0 = n/256 = 0xff;

tl0 = n%256 = 0xfa;

#include

sbit pin = p0^0;

void main()

}void t0_int(void) interrupt 1

微控制器定時器計算問題,一個微控制器 定時器 計算 問題

12m的晶振每秒可產生1m個機器週期,50ms就需要50000個機器週期,定時器在方 式1工作,是版16位計數器,最大值權為65536,所以需設定初值15536,即3cb0h,所以th0 0x3c,tl0 0xb0。11.0592m的晶振每秒可產生0.9216m個機器週期,50ms就需要46080個...

微控制器頻率的計算求解,微控制器中用定時器 和計數器來求頻率 計算公式是怎麼寫的???

1000hz 就是不知道這些頻率是怎麼計算出來的 微控制器的晶振是12mhz,微控制器初學者,請求用你通俗易懂的語言解釋,謝謝,非常感謝,鬱悶好幾天了。不是算的,是試驗出來的。想要輸出不同的頻率,就需要改變週期。改變延時時間,即可 yanshi 7 yanshi 10 要想得到準確的時間,就應該用組...

STC89C52微控制器中斷和定時器問題 TMOD

這些暫存器實 bai際試幾次就能深刻明du白他們的用途了,說的話zhi擔心你可能還是不dao能完全理解。內ea是總中斷開關,當容ea 0時,微控制器不執行任何中斷,因此如果想要微控制器進入中斷,ea必須賦值為1。et0 et1是定時 計數器t0 t1的中斷開關,其值為0時對應的中斷失效 有爭議 tr...