学习红外线遥控好几天,看了很多教程,感觉还是一头雾水,最后自己估摸着写了一个最小发射程序,不出意外,没有任何动静,请大家帮忙看一下,这个程序错在哪儿,如果错的实在太多,能不能麻烦帮忙写一个这样的小程序,让我学习一下,谢谢!(不要写大的遥控器程序,我的智商,根本看不懂) 单片机源程序如下: #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; } |
共1条
1/1 1 跳转至页
单片机MCU制作学习红外遥控,但无法工作。。。
关键词: 红外遥控 学习红外遥控 51单片机 遥控
共1条
1/1 1 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| 基于ArduinoUNO开发板的AT24C02读写测试被打赏¥16元 | |
| TCS3472S传感器及其色彩检测被打赏¥19元 | |
| 【S32DS】S32K3 RTD7.0.1 HSE 组件配置报错问题解决被打赏¥27元 | |
| 【S32K3XX】MCME 启动 CORE1被打赏¥23元 | |
| AG32VH407下温度大气压传感器及其检测被打赏¥20元 | |
| AG32VH407下光照强度传感器BH1750及其检测被打赏¥22元 | |
| AT32VH407下使用温湿度传感器DHT22进行检测被打赏¥20元 | |
| DIY一个婴儿澡盆温度计被打赏¥34元 | |
| 【FreeRtos】FreeRtos+MPU region 配置规则被打赏¥23元 | |
| 【分享开发笔记,赚取电动螺丝刀】三分钟快速上手驱动墨水屏(ArduinoIDE)被打赏¥28元 | |
我要赚赏金
