搜索
bottom↓
回复: 8

求助-89C51红外发射程序

[复制链接]

出0入0汤圆

发表于 2010-9-18 02:42:25 | 显示全部楼层 |阅读模式

发射电路图 (原文件名:F08FA415-E4D2-43D3-89BA-AAEA476B4ADA.jpg)

程序:


#include "regx52.h"


#define IR_OUT P3_4
#define _MHz_ 12


//T1 13us产生一次中断 用于产生38K载波
//T0 方式1 16位  用于定时
void Init_Timer(void)
{
        TMOD=0x21;                //T0 mode 1      T1 mode 2

        TH1=256-(1000*_MHz_/38.0/12)/2+0.5;
        TL1=TH1;

        ET1=1;
        EA=1;
}

//发送引导码  发送方:9ms高电平 4.5ms低电平
void Send_Start_Bit(void)    //TR1的值=发送的电平
{
//9ms 0
                TH0=(65536-9000/12*_MHz_)/256;
                TL0=(65536-9000/12*_MHz_)%256;
                TR0=1;
                TR1=0;

                while(!TF0);

                TR1=0;
                TF0=0;

                IR_OUT=0;
//4.5ms 1
                TH0=(65536-4500/12*_MHz_)/256;
                TL0=(65536-4500/12*_MHz_)%256;
                TR0=1;
                TR1=1;

                while(!TF0);

                TR1=0;
                TF0=0;

                IR_OUT=0;
}

//发送0
void Send_Bit_0(void)
{
//0.565ms 0
                TH0=(65536-565/12*_MHz_)/256;
                TL0=(65536-565/12*_MHz_)%256;
                TR0=1;
                TR1=0;

                while(!TF0);

                TR1=0;
                TF0=0;

                IR_OUT=0;
//0.565ms 1
                TH0=(65536-565/12*_MHz_)/256;
                TL0=(65536-565/12*_MHz_)%256;
                TR0=1;
                TR1=1;

                while(!TF0);

                TR1=0;
                TF0=0;

                IR_OUT=0;
}

//发送1
void Send_Bit_1(void)
{
//1.685ms 0
                TH0=(65536-1685/12*_MHz_)/256;
                TL0=(65536-1685/12*_MHz_)%256;
                TR0=1;
                TR1=0;

                while(!TF0);

                TR1=0;
                TF0=0;

                IR_OUT=0;
               
//0.565ms 1
                TH0=(65536-565/12*_MHz_)/256;
                TL0=(65536-565/12*_MHz_)%256;
                TR0=1;
                TR1=1;

                while(!TF0);

                TR1=0;
                TF0=0;

                IR_OUT=0;
}

//发送一字节 8位
void Send_Char(unsigned char ir_data)
{
unsigned char i,j;
        j=ir_data;
        Send_Start_Bit();
        for(i=0;i<8;i++)
        {
                if(j&0x80)
                        Send_Bit_1();
                else
                        Send_Bit_0();
                j<<=1;
        }


}

void Delay10ms(void)
{
                TH0=(65536-10000/12*_MHz_)/256;
                TL0=(65536-10000/12*_MHz_)%256;
                TR0=1;
                while(!TF0);
                TF0=0;
}

void main(void)
{
        Init_Timer();
        while(1)
        {
                Send_Char(0x55);
                Delay10ms();
        }
}


//-----------------------------------------------------------------------
//T1 ISR
void T1_ISR(void) interrupt TF1_VECTOR using 1
{
        IR_OUT=!IR_OUT;
}




这是我用遥控器 在学习板上解的码      

(原文件名:图像11.jpg)


现在我把板子焊好了 结果 学习板上就 是接受不到数据 .  板子检查过了 线路没有问题      

我想应该是没有错的   在仿真上用示波器  可以发射的到 有波形出来的     现在很迷茫不知道 哪里出错了

各位大虾 帮忙看看 电路图  和  程序有没有错       谢谢!

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

 楼主| 发表于 2010-9-18 21:01:31 | 显示全部楼层
那位大虾能救救小弟阿 ..小弟感激不尽 !

出0入0汤圆

发表于 2010-9-19 15:25:17 | 显示全部楼层
把8050 发射极电阻挪到集电极去。

出0入0汤圆

发表于 2011-4-9 12:05:09 | 显示全部楼层
mark 下程序

出0入0汤圆

发表于 2011-4-9 17:52:39 | 显示全部楼层
1.检查发射部分的程序,载波信号约为38KHZ,不要偏差太大。
2.检查一下红外发射管是否有输出红外信号,这个很简单,找一个数码相机(手机上的相机也行),镜头对着红外管,如果有红外光射出,相机画面中红外管的位置会出现很亮的现象。
3.检查一下接收管是否有问题,发射管对着接收管一直发射红外线,用示波器观察接收管引脚的信号。
4.检查接收部分程序。

出0入0汤圆

发表于 2011-6-2 23:13:59 | 显示全部楼层
现在怎么样了楼主,成功了吗?

出0入0汤圆

发表于 2011-7-17 02:12:15 | 显示全部楼层
可以的

出0入0汤圆

发表于 2011-8-5 16:32:48 | 显示全部楼层
楼主好了么,我也正需要用单片机发射红外的程序!!!嘻嘻!!!

出0入0汤圆

发表于 2011-8-8 11:25:17 | 显示全部楼层
在参考楼主的代码下,我改动了一些东西(例如编码方式),现在实现了!大家可以参考一下!!!
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4945774&bbs_id=9999
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 10:22

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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