1樓:網友
利用微控制器的口接入乙個連續脈衝訊號,寫一段程式測量用來測量高電平寬度,儲存;緊接著測低電平寬度,儲存;然後比較兩個脈衝大小(這裡還有個問題就是:th、tl都是8位的 怎麼賦值給乙個unsigned int 型?)就寫到 前兩個連續脈衝也可以,要是能寫成取前兩個脈衝大的和測量的下乙個比較就更好了!
2樓:網友
void main(void)//你的脈衝寬度是us級的,晶振uint time_h=0;//高電平時間儲存單元。
uint time_l=0;//低電平時間儲存單元。
uint result=0;//比較結果儲存單元。
tmod=0x01;//timer0為16位定時器模式。
th0=0xff;//初值65536us
tl0=0xff;
tr0=1;//開定時器0
while(1)
while(
time_h=th0&0x00ff;
time_h=(time_h<<8)|tl0;
time_h=65536-time_h; /計算得出高電平時間。
th0=0xff;//再裝初值65536us,對低電平時間定時。
tl0=0xff;
while(
time_l=th0&0x00ff;
time_l=(time_l<<8)|tl0;
time_l=65536-time_l; /計算得出高電平時間。
th0=0xff;//再裝初值65536us,重新對高電平時間定時。
tl0=0xff;
if(time_h>time_l)//判斷高低電平時間大小,大的進入結果儲存。
result=time_h;
else{result=time_l;
3樓:網友
void main(void)//你的脈衝寬度是us級的,晶振。
time_h=th0&0x00ff;
time_h=(time_h<<8)|tl0;
time_h=65536-time_h; //計算得出高電平時間。
th0=0xff;//再裝初值65536us,對低電平時間定時。
tl0=0xff;
while(
time_l=th0&0x00ff;
time_l=(time_l<<8)|tl0;
time_l=65536-time_l; //計算得出高電平時間。
th0=0xff;//再裝初值65536us,重新對高電平時間定時。
tl0=0xff;
if(time_h>time_l)//判斷高低電平時間大小,大的進入結果儲存。
else}}
這樣處理有一點誤差,誤差就是電平跳變時的時間計算那幾條指令佔用的時間。
微控制器測量脈衝頻率問題
4樓:網友
不用的!微控制器有晶振!
一般測量頻率有2中方法:\
1,你用t1定時1s(只用t1是無法達到定時1s的目的的,因為時間太長,你還可以藉助別的單元+1,+1的形式),然後用t0記數在這1s內通過的方波個數,這個方法不是很精確。
2,用外部中斷,選擇下降沿觸發,程式響應中斷後馬上開啟定時器,在下個下降沿來臨的時候關掉定時器就可以了(記得定時器先清零)
5樓:物理老師李傳國
訊號幅度和頻率的測量。
51微控制器測量正脈衝寬度
6樓:添牙帥哥
建議你在int1引腳上,加乙個反相器。這樣,可以使用中斷功能來完成。程式如下:
org 0000h
sjmp main
org 000bh
ljmo i_t0
org 00013h
ljmp i_int1
main:mov r0,#
mov tmod,#02h
mov th0,#
mov tl0,#
setb it1
setb ea
setb ex1
setb et0
sjmp $
i_int1:
setb tr0
jnb ,$
mov 60h,tl0
mov 61h,r0
mov r0,#
mov tl0,#
clr tr0
retii_t0:
clr tf0
inc r0
retiend最後正脈衝的寬度為:[(61h)×256+(60h)]×t
其中:t為機器週期,如果是6mhz的話就是2us,如果是12mhz的話就是2us。
我評經驗,你要測量正脈衝寬度是要計算佔空比。這個程式,實現該功能沒問題。
附帶說一句,你這樣的問題才30分,少了點哇。呵呵,寫程式很辛苦的啦~!:呵呵。
7樓:網友
注意:一樣的,6m的計數初值也是取最大值。
org 0mov tmod,#90h
mov tl0,#00h;設定計數初值為最大值。
mov th0,#00h
mov r0,#60h
jb ,$setb tr0
jnb ,$
jb ,$clr tr0
mov @r0,tl0
inc r0
mov @r0,th0
sjmp $end
8樓:網友
你都存進去了,不知還能幫你做什麼??還是你想存進去但存不進去呀??
9樓:volcanol的技術窩
我看你太懶了,我考試都不及格,你還問。。。我 微控制器得了59分,你說慘吧??
51微控制器測量脈衝問題
10樓:網友
頻率多大呢?不高的話。用51微控制器的計數器可以實現。
脈衝的頻率範圍。要是慢的話直接用ad去取樣得了。高的話加個單向導通的2極管,加個電容。
充電電路用ad取樣。不過得設計個開關放電電路。用矽管就是取樣值加,鍺管加。
為啥要這個呢,要是不是標準脈衝訊號加個比較器就得了。
微控制器怎樣測量「脈衝串」的寬度?
11樓:**飄渺迷人
找我吧,我教你,很易的。一點你就醒了。
12樓:科爾
你要測量的是什麼能具體一點嗎?脈衝串的和間隔的寬度?
微控制器發脈衝,為什麼測量地時有同頻率的干擾
13樓:網友
請把測量方法明確一下。你是怎麼測到地上的干擾訊號??
1、考慮電源是否穩壓?
2、考慮微控制器的退藕情況。
3、考慮脈衝放大電路的濾波。
如何用51微控制器測量兩個脈衝之間的時間間隔?
14樓:公益勵磁通
可以用定時器 兩個脈衝乙個用於啟動定時器,乙個用於停止定時器,然後 cpu讀出時間資料。
15樓:網友
樓上很有才。
用上公升沿記數,記上1000次停止,用時間除以次數;算個次,取平均值。
或者記多久(如一分鐘)用一分鐘除以多少次。。。
其他的不用說了吧,定時器,外部中斷什麼的。。。
16樓:網友
可以用定時器和外部中斷啊。
通分並比較分數的大小。用中文哦,親
六分之五大來於七分之三 通自分後是四十二分之三十五與四十二分之十八。九分之五小於 四分之三。通分後是三十六分之二十與三十六分之二十七。十八分之十一大於十二分之七。通分後是三十六分之二十二與三十六分之二十一。十分之三小於八分之五。通分後是四十分之十二與四十分之二十五 六分之五和七分bai之三 四十二分...
微控制器是怎樣發脈衝的呢?怎麼設定它發多少個脈衝
設一個時鐘脈衝發生器,再加一個脈衝計數器,配合工作,就可以按一定要求發脈衝,並控制傳送脈衝的數量了。脈衝可以理解為方波,想想如何用微控制器產生方波吧,就可以結局問題了,如果有佔空比的問題,那就採用一個flag,判斷去為定時器給不同的初值就可以了,試試吧。微控制器的脈衝電路,通過底層暫存器的標誌位控制...
LED燈管的好壞怎樣測量,用萬用表可以測量嗎?
我覺得led燈管的好壞主要還是要看它的使用壽命以及光通量來判斷吧。但是一般來說用萬用表不是很好測量出這幾個引數。可以的,可以用萬用表測量led燈管有沒有電。如果沒有電的話,就說明燈管損壞了。led燈管的好壞要看發出來的光的色溫和有沒有頻閃這些,用萬用表不可以測量。電工知識 led燈怎樣知道它的好壞,...