打印

单片机控制红外发射管

[复制链接]
5130|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我想用单片机控制红外发射管发射信号,无奈调试很久都没有成功。故发帖请各位前辈帮忙看看。
电路图:


51单片机程序:
#include<reg51.h>
sbit infrared=P1^5;
unsigned char i,signal,infrared_flag;
void delay9us(unsigned int n)
{
while(n--);
}
void main()
{
TMOD=0X10;
EA=1;
ET1=1;
TR1=0;
P1=0;
signal=0xff;
infrared=1;
TR1=1;
delay9us(1000);//发射红外线9ms
TR1=0;
infrared=0;
delay9us(500);//不发射红外线4.5ms
//引导码。
for(i=0;i<8;i++)
{
  signal=signal<<1;
  if(CY)
  {
   infrared=1;
   TR1=1;
   delay9us(62);
   TR1=0;
   infrared=0;
   delay9us(63);//发射红外线0.56ms,不发红外线0.565ms,表示“1”。
  }
  else
  {
   infrared=1;
   TR1=1;
   delay9us(62);
   TR1=0;
   infrared=0;
   delay9us(188);//发射红外线0.56ms,不发红外线1.69ms,表示“0”。
  }
}
infrared=1;
TR1=1;
delay9us(500);
TR1=0;
infrared=0;
delay9us(500);
//结束码。
}
void infrared_timer1() interrupt 3
{
infrared_flag=~infrared_flag;
if(infrared_flag)
{
  infrared=1;
  TH1=255;
  TL1=248;//定时8us。
}
else
{
  infrared=1;
  TH1=255;
  TL1=238;//定时18us。
}
}
//用定时器1产生38kHz,占空比为1:3的红外线。

我想用单片机产生红外信号,用另一块单片机控制一体化红外接收头将接收到的信号显示在LCD12864上。接收部分应该没有问题,因为我用学习板配送的那种红外遥控器来发射信号,就能正常接收显示。
希望各位前辈帮忙看看,谢过了。

相关帖子

沙发
天浪1990| | 2012-4-21 12:26 | 只看该作者
猛猛的顶起

使用特权

评论回复
板凳
心静自然凉| | 2012-4-21 12:45 | 只看该作者
有示波器吗?观察输出波形

使用特权

评论回复
地板
aaron96031| | 2012-4-21 14:28 | 只看该作者
示波器不会骗人的,仔细观察就成了

使用特权

评论回复
5
风溪香士|  楼主 | 2012-4-21 14:45 | 只看该作者
3# 心静自然凉
由示波器看大概是1kHz,占空比1:2。

使用特权

评论回复
6
风溪香士|  楼主 | 2012-4-21 14:47 | 只看该作者
3# 心静自然凉
检测的是红外发射管两端的电压。

使用特权

评论回复
7
心静自然凉| | 2012-4-21 16:03 | 只看该作者
你可以这么调试
首先,你要确保你的程序能正确输出频率为38KHz的载波信号,然后再根据编码相关规定,把数据加载到载波信号上

使用特权

评论回复
8
心静自然凉| | 2012-4-21 16:11 | 只看该作者
要注意理解“载波”的概念,在p1.5端测出的波形大概应类似下图所示

使用特权

评论回复
9
cjseng| | 2012-4-22 01:36 | 只看该作者
P1.5输出的信号要加上调制才行的,否则都被接收头过滤掉了,不过不加调制的话,你可以将发射与接收靠在一起试试,距离小于2cm。

使用特权

评论回复
10
Tinnal| | 2012-4-22 01:39 | 只看该作者
5# 风溪香士
1K就错了麻,要38K!不然一体化接收管去给你过滤掉。

使用特权

评论回复
11
wangwang3008| | 2012-4-22 08:09 | 只看该作者
发射接收不匹配  怎么会接到信号  。。

使用特权

评论回复
12
apple| | 2012-4-22 11:37 | 只看该作者
下载这个文件,第28页有说明
http://www.mcusky.com/YG-802/YG-802.pdf

使用特权

评论回复
13
mohanwei| | 2012-4-22 17:41 | 只看该作者
51单片机?在9013基极上加个4.7K的上拉电阻吧……

使用特权

评论回复
14
heyuqi| | 2012-4-22 21:18 | 只看该作者
反向

使用特权

评论回复
15
风溪香士|  楼主 | 2012-4-29 14:00 | 只看该作者
8# 心静自然凉
我用的是STC89C52,怎么弄也弄不出来38KHz,就算是把TH1和TL1均置为255也达不到38KHz,后来换为STC12C5A32S2就能调出38KHz的载波了。

使用特权

评论回复
16
yinlitansuo| | 2012-5-1 22:28 | 只看该作者
我最近也要帮别人做个红外发射和接受不妨一起交流。。。

使用特权

评论回复
17
风溪香士|  楼主 | 2012-5-2 00:41 | 只看该作者
16# yinlitansuo
你是用单片机实现还是用专用芯片?

使用特权

评论回复
18
wangpeng59| | 2012-5-2 08:28 | 只看该作者
学习了

使用特权

评论回复
19
zhl100| | 2012-5-2 11:41 | 只看该作者
瞬间电流比较大,自己想办法吧

使用特权

评论回复
20
afei9527| | 2012-5-2 12:25 | 只看该作者
如果是脉冲行肯定不行

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

82

帖子

1

粉丝