良多伴侣在操纵单片机DIY的时辰 , 都有接触过红外线遥控 , 有时辰出格想本身界说遥控的某个按键来节制单片机做特定的输出 , 好比节制一个LED , 或者一个继电器 , 进而节制外部电路 , 例如家里的电灯 , 今天我给大师一个方式 , 轻松获取通用红外遥控器的键码值 , 下面我们起头吧
需要这些哦
你
电脑
单片机最小系统版(带红外领受头的)
USB转TTL下载器一个
MP3遥控器一个
keil软件
电脑串口调试助手
方式/
1起首 , 我们将单片机和USB转TTL下载器用杜邦线准确地毗连起来 , 并插入电脑的USB口 , 看到最小系统版的电源指示灯亮起 , 申明板子通电正常
文章插图
2接下来打开电脑上的keil , 并新建一个工程 , 定名为“红外遥控解码测试”
文章插图
3工程成立好今后 , 为工程添加一个C文件 , 双击打开C文件 , 复制下面的代码粘贴上去
#include <REG52.H>
#define uchar unsigned char //宏界说
#define uint unsigned int
#define uchar unsigned char
sbit IRIN=P3^2;//红外线接口
sbit d=P2^0;//解码指示
uchar IRCOM[7],a;
bit Flag;
void delay(uchar x);//红外线用延迟
void fasong()
{
if(Flag==1)
{ ES=0;//封闭串口
Flag=0;//发送一次
SBUF=IRCOM[2];//把a发送给本家儿机
while(!TI);//当TI为1的时辰 , 也就是期待数据发送竣事
TI=0;//软件清零
ES=1;//打开串口
}
}
void main (){
SM0=0;//体例1
SM1=1;
REN = 1;//REN=1许可串行接管状况 , 串口工作模式1
TMOD|= 0x20;//按时器工作体例2
PCON|= 0x80;//波特率提高一倍
TH1=0xFA;
TL1=0xFA;//9600波特率 ,按倍频算
TR1 = 1;
ES = 1; //开串口间断
EA = 1; // 开总间断
EX0 =1;//外部间断0许可
IRIN=1;
while(1)
{ fasong();}
}
/****************************************************
串口间断程序
******************************************************/
void ser ()interrupt 4
{
//if(RI == 1) //RI接管间断标记
推荐阅读
- 电脑出现花屏怎么办
- 阿瓦隆矿机“树莓派”怎么设置
- 电脑开机忘记密码怎么办?U盘破解教程
- 更新完win10后屏幕显示变得特别大怎么办
- 老虎怎么画简笔画 卡通老虎的画法
- 羊蝎子火锅怎么做?
- 孜然牛肉怎么做?啊啊啊
- 飞镖怎么折
- 肉蟹煲怎么做?
- 中国梦手抄报怎么画