导航:首页 > 操作系统 > 单片机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载波相关的资料

热点内容
幽冥诡匠漫画全集用什么app可以看 浏览:1001
租用服务器为什么越来越慢 浏览:960
算法创新就业方向 浏览:423
算法最优解作者 浏览:867
通达信红绿宝塔线指标源码 浏览:666
app是什么东西合法吗 浏览:231
怎么锁app视频教程 浏览:841
迅捷pdf注册码生成器 浏览:748
androidsdkosx 浏览:302
压缩面膜纸荧光 浏览:841
app怎么分身三个 浏览:744
电影bt下载源码 浏览:421
iwatch屏幕加密芯片 浏览:570
公安主题网站源码 浏览:986
天津市服务器供应商云服务器 浏览:115
数控车床子程序编程 浏览:110
floydwarshall算法 浏览:717
丢失微信app怎么找 浏览:252
php能写前端吗 浏览:9
服务器如何更改raid模式 浏览:92