找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

对于工人大哥发的红外遥控程序问题求解(附上部分代码)

[复制链接]
admin 发表于 2012-9-2 05:09:12 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
程序中类似下面红色的是怎么算出来的,set_count=575;的话不应该是575*13us=7.475ms吗?
还有如果我用11.0592的晶振,定时器初值改成0XF4不行吗?
/*******************************************
发送红外数据
*******************************************/
void sendcode(void)
{
set_count=575;//发送9ms 38K红外光
flag=1;
count=0;
TR0=1;
while(count<set_count);
TR0=0;
set_count=320;//间隔4.5ms
flag=0;
count=0;
TR0=1;
while(count<set_count);
TR0=0;
ircode=irsys[0];//发送26位系统码的前1-8位
sendcode_8();
ircode=irsys[1];//发送26位系统码的前9-16位
sendcode_8();
ircode=irsys[2];//发送26位系统码的前17-24位
sendcode_8();
ircode=irsys[3];//发送26位系统码的前24-26位
sendcode_2();
ircode=irdata;//发送8位数据码
sendcode_8();
ircode=~irdata; //发送8位数据反码
sendcode_8();
set_count=28;//发送0.56ms 38k红外波(编码中的0.56ms低电平)
flag=1;
count=0;
TR0=1;
while(count<set_count);
TR0=0;
ir=1;
delay(23);//延时23ms(编码中的23ms高电平)
set_count=575;//发送9ms 38k红外波
flag=1;
count=0;
TR0=1;
while(count<set_count);
TR0=0;
set_count=330;//间隔4.5ms
flag=0;
count=0;
TR0=1;
while(count<set_count);
TR0=0;
set_count=30;//发送0.56ms 38k红外波(编码中的0.56ms低电平)
flag=1;
count=0;
TR0=1;
while(count<set_count);
TR0=0;
ir=1;
}
/*******************************************
定时器初始化
*******************************************/
void init_timer()
{
EA=1;
TMOD=0X02;//8位自动重载模式
ET0=1;
TH0=0XE8;//定时13us,38K红外波,晶振22.1184
TL0=0XE8;
}
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-11-23 23:17 , Processed in 0.058521 second(s), 12 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表