導航:首頁 > 操作系統 > 單片機38k載波

單片機38k載波

發布時間:2022-08-29 05:09:45

『壹』 自帶PWM功能的STC單片機,在使用內部時鍾的前提下能否產生精度高的38KHz PWM信號

不可以,因為內部RC振盪隨著溫度變化,其振盪頻率是變化的,其實紅外線的載波38K不需要太精確

『貳』 如何使用單片機產生38KHz的載波,求原理及C語言簡單代碼,晶振11.0592,請高手指點。

f=38KHz 那麼周期T約等於26uS,如果這個載波是方波的話,那麼輸出高電平13uS,另外13uS輸出低電平。
你的晶振是11.0592MHz,那麼機器周期是近似為1uS。
所以隔13uS,對輸出口取反即可。
#include<reg51.h>
#include<intrins.h> //用於_nop_();指令
void main{
while(1){
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); //13個空指令,每個空指令耗費1uS
P0^1=~P0^1;
}
}

『叄』 單片機產生38kHz信號的問題

首先,樓主的分析是正確的,確實是指令佔用了時間,而且這與軟體編譯時的優化有關。下面從理論上分析一下(事實其實如此)原因:

中斷產生的一瞬間,TH0和TL0都為0,但由於其定時計數並未停止,所以直到下一次重裝前TL0依舊在計數,也就是說直到TL0=(65536-13)%256執行後,計數值才被重裝。那麼這段時間有什麼情況發生呢:
1、如果程序中還使用了別的中斷:定時中斷產生後,單片機開始執行中斷服務程序。一般情況下,首先是要執行中斷入口0x000B處的跳轉指令,12M12T下跳轉指令LJMP等的執行周期為2us,重復一下,此時TL0和TH0已經為0了;然後執行TH0和TL0賦值指令,各需2us(匯編中:立即數賦值給直接地址),這就增加了6個us,所以事實上是13+6=19us取反一次,大約28KHz。
2、同上,但如果將TL0賦值語句放到TH0前,由於方式1下TH0TL1相當於一個INT型數據來計數的,TL0是低8位,所以事實上TL0被賦值後基本可以說被重裝,計數這時才恢復正常,由於TH0的賦值被放到後面,所以事實上就減少了2個us,即13+4=17,大約30KHz。
3、如果程序中的中斷只使用了這一個:那麼編譯器編譯時,就會將中斷程序從000BH開始放置,這樣就又少了一條跳轉指令的周期,時間上就變為13+2=15,大約33KHz。我想這應該屬於是樓主的實際情況。
所以,正如你所說,這種方式指令本身占據了時間,所以產生誤差不足為奇。這里關鍵是TL0重裝指令的位置。

解決的辦法無外乎兩種:
1、將初值中的13改成11,TL0重裝前提,減掉2us賦值時間。
2、採用方式2,初值設為256-13。由於方式2初值的重裝是自動的,不佔指令時間,所以很准確。

不過照理樓主現在應該檢測到的是30K才對,為什麼會測到35K我不敢妄斷,也許是其它誤差,比如頻率計、晶振等、也許是編譯器原因,需要看一下實際的匯編指令才能確定。

『肆』 單片機,硬體,紅外遙控編碼問題。38KHz是幹嘛用的

學習型遙控常用的載波頻率為38kHz,這是由發射端編碼晶元所使用的455kHz晶振來決定的。

在信號傳輸的過程中,並不是將信號直接進行傳輸,而是將信號負載到一個固定頻率的波上,這個過程稱為載入,這樣的一個固定頻率的波稱為載波頻率。
嚴格的講,就是把一個較低的信號頻率調制到一個相對較高的頻率上去,這被低頻調制的較高頻率就叫載波頻率,也叫基頻。

『伍』 單片機自己產生38khz載波發射紅外是不是不行啊.

行是行的不過用51單片機產生38khz頻率那麼中斷的頻率是相當高的,中1秒內要產生70000次左右的中斷,這樣來單片機就沒時間去處理其它任務了,建議用外部電路產生

『陸』 38K載波單片機軟體設計 C語言 ,如何將定時器產生的38K的載波和信號調制起來

單片機的調制一般都是數字調制,一般就是2FSK。可以有二種方法。。
第一:把待調制信數字信號和載波接到一個二輸入與門上。當調制信號是一時,與門開啟,載波可以發送出去。當調制信號是0時,與門關閉,載波不發送。。
第二:產生二種不同的方波(可以是引導碼不同,或者載波頻率不同)。。調制信號1和0分別對應其中的一種即可。。
希望能幫到你。。
再看看別人怎麼說的。

『柒』 51單片機產生38K占空1:3載波

12M的晶振不能產生准確的38K,只能是38.462K。

才8us的周期,不用定時器也行
LOOP:
CPL P3^1
NOP
NOP
NOP
NOP
NOP
NOP
NOP
CLR P3^1
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
LJMP LOOP:

『捌』 單片機輸出一個38KHZ的信號之後,如何這個38KHz的高電平上在進行調制一次(頻率可為100Hz或200Hz。

你這個是紅外的編碼吧,直接在產生38KHZ那個引腳輸出你要調制的信號即可
就是同一個引腳同時發出38KHZ和包含信息的頻率(你的100HZ或200HZ)

『玖』 51單片機怎麼產生38khz方波

用定時器就可以產生38K的方波,比如
#include<reg51.h>
sbit pluse=P1^0;
void t0isr() interrupt 1
{
pluse=~pluse;
}
main()
{
TMOD=0x02;
TH0=256-13;
TL0=256-13;
ET0=1;
TR0=1;
EA=1;
while(1);
}

閱讀全文

與單片機38k載波相關的資料

熱點內容
linux中命令大全 瀏覽:36
pic單片機學習網站 瀏覽:163
843除6的演算法 瀏覽:376
arduino編程視頻 瀏覽:744
pdf背景綠色 瀏覽:612
記事本dos命令 瀏覽:274
伺服器如何搭建多個節點 瀏覽:326
acx演算法 瀏覽:258
幽冥詭匠漫畫全集用什麼app可以看 瀏覽:1001
租用伺服器為什麼越來越慢 瀏覽:960
演算法創新就業方向 瀏覽:423
演算法最優解作者 瀏覽:869
通達信紅綠寶塔線指標源碼 瀏覽:668
app是什麼東西合法嗎 瀏覽:232
怎麼鎖app視頻教程 瀏覽:842
迅捷pdf注冊碼生成器 瀏覽:750
androidsdkosx 瀏覽:304
壓縮面膜紙熒光 瀏覽:842
app怎麼分身三個 瀏覽:746
電影bt下載源碼 瀏覽:424