用51单片机产生38kHz脉冲的程序怎么写

11.0几的就是一般用的最小系统... 11.0几的 就是 一般用的
最小系统
展开
 我来答
因贝特工作
2010-05-21 · TA获得超过283个赞
知道小有建树答主
回答量:489
采纳率:0%
帮助的人:327万
展开全部
11.0592M,产生38kHz脉冲将有误差。
11059200/12=921600/38000=24.3=23
static void timer0_isr(void) interrupt 1 using 0 //中断函数
{
TR0=0;
TL0=0xe9;
TH0=0xff;
TR0=1;
timer0_tick++;
if(timer0_tick++==23)
{
timer0_tick=0;

}
if (timer0_tick==0)
{
P3_7=~P3_7;
}

}
static void timer0_initialize(void)//中断初始化
{
EA=0;
timer0_tick=0;
TR0=0;
TMOD=0x01;
TL0=0xe9;
TH0=0xff;
PT0=0;
ET0=1;
TR0=1;
EA=1;
}
void main(void)
{

timer0_initialize();
while(1);
}
兰才艺寒姮
2019-02-01 · TA获得超过3万个赞
知道小有建树答主
回答量:1.1万
采纳率:28%
帮助的人:591万
展开全部
你这个适用于一体化红外收发二极管把?可以用定时器定时26us也可以直接用for循环实现
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
程范左希慕
2019-07-23 · TA获得超过1201个赞
知道小有建树答主
回答量:1330
采纳率:100%
帮助的人:5.9万
展开全部
用定时器就可以产生38k的方波,比如
#include
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);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式