有關用單片測量脈衝並比較的的問題

2025-01-02 19:30:13 字數 3752 閱讀 8348

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燈怎樣知道它的好壞,...