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亮與不亮要看方...