計數器,在微控制器P1 0口線上產生連續週期性矩形波,週期為

2021-04-18 03:19:15 字數 3564 閱讀 6563

1樓:做而論道

51 微控制器:

org   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如此即

內可容。

求微控制器彙編程式:用定時器/計數器在p1.0口線上產生週期為500微秒,佔空比為2:5的連續矩形波?

2樓:匿名使用者

;500us週期方抄波 ,佔空比 2:5 。即高電平bai200us,低du電zhi平300usorg 0000h

ajmp start

org 000bh

ajmp t0int

org 0030h

start: mov sp,#60h

setb ea

setb et0

mov tmod,#01 ;t0為工作

方式1clr p1.0 ;先低電平

mov th0,#0feh

mov tl0,#0d4h ;300us 定時daosetb tr0;啟動定時

ajmp $

t0int: cpl f0

cpl p1.0

jb f0,high1

low0: mov th0,#0feh

mov tl0,#0d4h

reti

high1: mov th0,#0ffh

mov tl0,#38h ;200us 定時retiend

在微控制器p1.0口線上產生連續週期性矩形波,週期為200微妙,佔空比2:5。假設晶振頻率12

3樓:匿名使用者

程式不難編,bai題目有問題,

du因為佔空

zhi比2:5,一個週期就是7個單dao位,週期又為200us,200怎麼被

專7整除?

我這段程式屬在微控制器p1.0口線上產生連續週期性矩形波,週期為400us,佔空比1:7。假設晶振頻率6mhz,你參考一下。

org 0000h

ljmp start

org 0200h

start: mov tmod,#20hmov th0, #231

mov tl0, #231

setb tr1

loop: setb p1.0

mov r2,#7

lop1: jbc tf1,lp1sjmp lop1

lp1: clr p1.0

lop2: jbc tf1,lp2sjmp lop2

lp2: djnz r2,lop2

sjmp loopend

4樓:匿名使用者

請問微控制器型號是什麼?謝謝!

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

5樓:學而_無止境

由於你沒說用什麼微控制器,所以我用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()

6樓:匿名使用者

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

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

7樓:

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

8樓:依米

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

9樓:

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

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

10樓:匿名使用者

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

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

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

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

11樓:匿名使用者

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

編寫從微控制器的p1.0 產生頻率為50khz等寬矩形波的執行程式.要求使用定時器/計數

12樓:q是

50000hz,也就是1/50000=20us,所以,在定時器中定義初始值

th0=(65535-200)/256;

tl0=(65535-200)%256;

然後開ea=1;

tr0=1;

就可以了哦。

13樓:匿名使用者

用中斷設定好時間到時候翻轉就可以了

微控制器的計數器是幹什麼的

以51微控制器16位定時 計數器1 t1 來講,通俗解釋 計數是t1是一個能盛65536 十六位時 滴水的水盆,在水龍頭下水一滴滴地滴入盆中。如果盆是空的那水在滴完65536滴水時盆子的水就滿了再滴一滴的時候就溢位了。這時就會產生中斷。如果盆裡面已經裝入65500滴水 即初裝值 那麼只需要36滴水後...

傾家蕩產求微控制器C語言程式 0 99秒計數器獨立按鍵控制,P1 1開始P1 2暫停P1 3清零數碼管顯示

我應該有源 應該和你要求的一樣。我回家看看,在我電腦上呢。這個可以找我啊,也不要你傾家蕩產的啦呵呵 求高手修改微控制器c語言程式 0 59秒計數器 1個獨立按鍵控制,2個數碼管顯示 給你一個方法的。就是在你按第一次之後,你就可以暫停定時器的執行,關掉定時器或者aa不進行自加的。這樣的話,你送出去結果...

微控制器P1 0是低電平,此時電壓低為什麼LED還可以點亮?高電平5V反而點不亮

你的應該是這樣的電路,微控制器採用灌電流方式,發光二極體正極端接正5v,負極端接微控制器i o。這樣只要微控制器輸出低電平r0 0v 燈就亮了。輸出高電平1 5v 時燈滅。這個微控制器的灌電流20ma,拉電流能力是200ua 普通51微控制器,帶負載能力極差。所以它燒壞這種功能,led亮與不亮要看方...