
如何让c51产生38khz的频率信号,用于做红外收发器
我用定时器每13us产生一个溢出,就是TH0=0xff,TL0=0xf3,为什么最后输出信号只有19khz左右?...
我用定时器每13us产生一个溢出,就是TH0=0xff, TL0=0xf3,为什么最后输出信号只有19khz左右?
展开
若以下回答无法解决问题,邀请你更新回答
1个回答
展开全部
晶振多少,单片机那款型号
追问
c51单片机的晶振一般都为11.0592M,不过都近似为12M的!单片机型号为89c52rc
追答
把你的程序发过来才好分析,不然只言片语真的很难发现问题所在。
还有你的单片机是 STC89C52RC 的话,可以用“定时器2可编程时钟输出”产生38khz的频率信号,STC89C52RC一共有3个定时器(定时器0、1、2),其中定时器2功能最多,可编程时钟输出就是其中之一。定时器2可编程时钟输出是独立的硬件,单片机只需控制 开和关,不占用CPU时间。
void TT2(uint i) // i 赫兹
{
TR2=0;
RCAP2H=(65536-12000000/4/i)>>8;
RCAP2L=(65536-12000000/4/i);
}
void main(void)
{
T2MOD=0x02; //0000, 0010 允许 定时器2 可编程时钟输出(由 P1.0 输出)
TT2(38000); //设置38KHz
while(1)
{
……
}
}
此时只要启动定时器2(TR2=1; ),P1.0 就会输出占空比为50%的38KHz方波,
关闭只需加2个语句:
TR2=0;
P1^0=1; //使用PNP三极管驱动发射管,关闭时 PNP三极管基极 应为高电平
缺点:占空比=50%不可调,发射引脚只能是P1.0。
“软程序”产生38khz的频率信号。
优点:
①可以随意调节38khz载波的占空比,可以实现低功耗高峰值电流发射,提高发射接收距离。
②发射引脚任意定义。
……字数超限就不发实例了……
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询