7304|13

15

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

初来乍到。。。发个遥控器(发送)程序代码 [复制链接]

感兴趣的朋友可以看看。。。。

另外今天把接受的发了上来,不足之处忘多多关照!!!

[ 本帖最后由 fhm12351 于 2011-6-3 12:19 编辑 ]

遥控器程序代码.rar

28.58 KB, 下载次数: 238

红外遥控器发送程序

红外.rar

954 Bytes, 下载次数: 155

此帖出自51单片机论坛

最新回复

我找M多了可是不能主机能上了。  详情 回复 发表于 2011-11-19 20:46
点赞 关注
 

回复
举报

1万

帖子

16

TA的资源

版主

沙发
 

谢谢楼主

此帖出自51单片机论坛
 
个人签名http://shop34182318.taobao.com/
https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
 
 

回复

6

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

回复 楼主 fhm12351 的帖子

有配套的接收程序吗,我最近在搞红外发送和接收,我准备用两片单片机实现,一个发射,一个接收,搞了一阵子,总没反应,感觉是发射出了问题,但又找不到具体哪有错误
此帖出自51单片机论坛
 
 
 

回复

15

帖子

0

TA的资源

一粒金砂(中级)

4
 

回复 板凳 ljw123 的帖子

接收的。。。。看看吧!!!!!
/*******************************************************
红外解码
********************************************************/
#include
#include
#include
#define uint unsigned int
#define uchar unsigned char
extern unsigned char ir_code[4]; /*遥控接收数据*/
unsigned char ir_liangfa=0;      /*连发码位*/
sbit          ir_port=P3^2;      /*遥控输入脚*/
uint tt,flag,flag1;
extern unsigned char ir_bit;            /*遥控接收成功*/
/*void Delay_M(unsigned int a)                 //主函数延时函数 1MS/次
{       
        uchar i;
        while(--a!=0)
        {               
           for(i=0;i<125;i++);
        }                                     
}*/
void open_yaokong(void) /*开启遥控接收*/
{
        uchar i,j;
        //EX0=1;
        ir_port=1;
        while(ir_port);               
        while(!ir_port)
        {
                tt=0;        //TMOD=0x01;
                TH1=0xff;
                TL1=0xa3;
                TR1=1;
                 while(!ir_port);
                if(tt>75)
                {
                        tt=0;
                        TR1=0;
                        flag=1;
                 }  
         }
        if(flag==1)
            {
                flag=0;
                while(ir_port==0); /*等待高电平避开9毫秒低电平引导脉冲*/
                TH1=0xff;
                TL1=0xa3;
                TR1=1;
                tt=0;
                  while(ir_port);        //>4.5ms
                if(tt>35)
                        {
                                tt=0;
                                TR1=0;
                            flag1=1;
                        }
                }               
       
        if(flag1==1)
        {
                flag1=0;
                while(ir_port==1);         //等高电平4.5ms
                /*以下32数据码的读取,0和1的识别*/
                for(i=4;i>0;i--)
               {
                        for(j=0;j<8;j++)
                    {
                                        //Nop();
                                         while(ir_port==0); /*等待地址码第一位的高电平信号*/
                                         TH1=0xff;
                                         TL1=0xa3;
                                         tt=0;
                                         TR1=1;
                                       
                                        ir_code[i-1]=(ir_code[i-1]<<1);
                                           while(ir_port==1);//等待高电平       
                                        if(tt>11)
                                        {
                                         ir_code[i-1]=(ir_code[i-1]|0x01);
                                         //while(ir_port==1);
                                        }       
                                }
                        tt=0;TR1=0;
                        }
                if(ir_code[1]==(~ir_code[0]))
                {
                         ir_liangfa=0; /*连发码位置0*/
                         ir_bit=1;     /*遥控接收正确,置位1*/
                        }
        //return;
                //while(ir_port);
  }
}
void interru() interrupt 3   //延时0.1ms
{
        TH1=0xff;
        TL1=0xa3;
        tt++;
}
希望对你有所帮助
此帖出自51单片机论坛
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(中级)

5
 
谢谢!
此帖出自51单片机论坛
 
 
 

回复

37

帖子

0

TA的资源

一粒金砂(中级)

6
 
学习了,楼主
此帖出自51单片机论坛
 
 
 

回复

22

帖子

0

TA的资源

一粒金砂(中级)

7
 
楼主好样的!
此帖出自51单片机论坛
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(初级)

8
 
谢谢楼主共享~~~
此帖出自51单片机论坛
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(初级)

9
 
不错的资料
此帖出自51单片机论坛
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

10
 
谢楼主哈
此帖出自51单片机论坛
 
 
 

回复

50

帖子

0

TA的资源

一粒金砂(高级)

11
 
正需要
此帖出自51单片机论坛
 
 
 

回复

219

帖子

0

TA的资源

纯净的硅(初级)

12
 
关于红外解码的程序确实可以提高编程的水平, 如果自己可以独立完成,编程能力肯定有很大的提高,而且在红外解码的基础上,可以衍生出很多无线作品,我们寝室的同学就做出了无线遥控小车
此帖出自51单片机论坛
 
 
 

回复

4008

帖子

0

TA的资源

版主

13
 

回复 楼主 fhm12351 的帖子

看过了,恰巧以前做过类似的东西,几点经验欢迎讨论

1.接收程序尽量提高精度注意要保证变量计数不溢出,精度不高时有时也能用但发送距离受影响
2.接收函数启动最好中断触发以提高效率,启动后最好关闭所有中断
3.如果要支持通用的遥控器数据缓冲还要大很多,另外有的按键是连发的接收端取码时比较麻烦

发送程序一般不会有问题,只要码对电流够大就行了.

[ 本帖最后由 huo_hu 于 2011-10-27 17:59 编辑 ]
此帖出自51单片机论坛
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(初级)

14
 

红外程序

我找M多了可是不能主机能上了。
此帖出自51单片机论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表