要求
1、接收红外遥控指令
2、通过指令控制直流电机转速
3、将转速等级显示在数码管上
提示:
红外模块需要一个定时器(无需中断函数)
直流电机也需要一个定时器(需要中断函数)
效果
资源
工程文件压缩包
链接:https://pan.baidu.com/s/1Mj9yek156DhBQ6YqWyThrQ
提取码:8xlt
main函数
#include <REGX52.H>
#include "Nixie.h"
#include "Motor.h"
#include "IR.h"
void main(){
unsigned char Command,Speed;
Motor_Init();
IR_Init();
while(1){
if(IR_GetDataFlag()) //如果收到数据帧
{
Command=IR_GetCommand(); //获取遥控器命令码
if(Command==IR_0){Speed=0;} //根据遥控器命令码设置速度
if(Command==IR_1){Speed=1;}
if(Command==IR_2){Speed=2;}
if(Command==IR_3){Speed=3;}
if(Speed==0){Motor_SetSpeed(0);} //速度输出
if(Speed==1){Motor_SetSpeed(50);}
if(Speed==2){Motor_SetSpeed(75);}
if(Speed==3){Motor_SetSpeed(100);}
}
Num_Nixie(Speed,1); //数码管显示速度
}
}