学习红外线遥控好几天,看了很多教程,感觉还是一头雾水,最后自己估摸着写了一个最小发射程序,不出意外,没有任何动静,请大家帮忙看一下,这个程序错在哪儿,如果错的实在太多,能不能麻烦帮忙写一个这样的小程序,让我学习一下,谢谢!(不要写大的遥控器程序,我的智商,根本看不懂) 单片机源程序如下: #include <intrins.h> #define u8 unsigned char #define u16 unsigned int sbit plflag=P1^0; //定义红外发射口 sbit key=P1^1; //定义一个发射开关 void time_init(); //定时器初始化, void s0(); //发射一位0, void s1(); //发射一位1, void main() { plflag=0; //P1.0口先置0, time_init(); while(1) { if(key==0) { TL1 = 0x9A; //定时器1延时9毫秒设定, TH1 = 0xDF; // TR0 = 1; //打开定时器0, TR1 = 1; //打开定时器1, while(!TF1); //等待9毫秒 TR0 = 0; //关闭定时器0 TR1 = 0; //关闭定时器1, plflag=0; //P1.0口归0, TL1 = 0xCD; //定时器一延时4.5毫秒, TH1 = 0xEF; // TF1 = 0; //清空定时器1标志位, TR1 = 1; //打开定时器1, while(!TF1); //等待4.5毫秒, TR1 = 0; //关闭定时器1, s0();s0();s0();s0();s0();s0();s0();s0(); //测试写三个字节,0x00,0xff,0xff s1();s1();s1();s1();s1();s1();s1();s1(); s1();s1();s1();s1();s1();s1();s1();s1(); } } } void s0() //写一位0的函数, { TL1 = 0xFC; //定时560微秒设置, TH1 = 0xFD; TF1 = 0; TR0 = 1; TR1 = 1; while(!TF1); TR0 = 0; TR1 = 0; plflag=0; TL1 = 0xFC; TH1 = 0xFD; TF1 = 0; TR1 = 1; while(!TF1); TR1 = 0; } void s1() //写一位1的函数, { TL1 = 0xFC; //定时560微秒设置, TH1 = 0xFD; TF1 = 0; TR0 = 1; TR1 = 1; while(!TF1); TR0 = 0; TR1 = 0; plflag=0; TL1 = 0xEF; //定时器1.685毫秒设置, TH1 = 0xF9; TF1 = 0; TR1 = 1; while(!TF1); TR1 = 0; } void time_init() 定时器初始化函数,定时器零产生38khz { TMOD = 0x11; //定时器0定时器1,设置为工作模式1, TL0 = 0xF4; // TH0 = 0xFF; TF0 = 0; TF1 = 0; ET0 = 1; EA = 1; } void Timer0() interrupt 1 //定时器0中断服务函数 { TL0 = 0xf4; TH0 = 0xFF; plflag=~plflag; } |
共6条
1/1 1 跳转至页
单片机MCU制作学习红外遥控,但无法工作。。。

关键词: 红外遥控 学习红外遥控 51单片机 遥控

共6条
1/1 1 跳转至页
回复
打赏帖 | |
---|---|
分享博世的两种不同的喷射系统模式被打赏5分 | |
汽车+开路实验与短路实验被打赏10分 | |
多点式电子控制汽油喷射系统知识分享被打赏10分 | |
分享机械控制式汽油喷射系统被打赏5分 | |
汽车显示屏——第2部分:TFTLCD、OLED和micro-LED显示屏电源技术被打赏50分 | |
汽车+汽车电路板的走线规则被打赏20分 | |
五一劳动节快乐被打赏5分 | |
【分享开发笔记,赚取电动螺丝刀】s32k146适配zephyr(六)使用Ozone调试镜像被打赏29分 | |
【分享开发笔记,赚取电动螺丝刀】s32k146适配zephyr(五)添加设备树节点被打赏33分 | |
【分享开发笔记,赚取电动螺丝刀】s32k146适配zephyr(四)使用I2C总线驱动RA8900CE芯片被打赏23分 |