如何让c51产生38khz的频率信号,用于做红外收发器

我用定时器每13us产生一个溢出,就是TH0=0xff,TL0=0xf3,为什么最后输出信号只有19khz左右?... 我用定时器每13us产生一个溢出,就是TH0=0xff, TL0=0xf3,为什么最后输出信号只有19khz左右? 展开
 我来答
若以下回答无法解决问题,邀请你更新回答
百度网友701e1b1
2011-06-29 · TA获得超过1017个赞
知道小有建树答主
回答量:522
采纳率:100%
帮助的人:586万
展开全部
晶振多少,单片机那款型号
追问
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载波的占空比,可以实现低功耗高峰值电流发射,提高发射接收距离。
②发射引脚任意定义。
……字数超限就不发实例了……
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式