本程序主要将现在比较常用 TX1300 遥控器进行解码,将解码后的数据通过 P2 端口的数码管
显示出来,为了更好的看到运行过程,特加了三个指示灯用来指示当前运行状态.P10 主要用来
闪亮,表示程序正在运行,P11 则用来表示接收到数据,P12 表示触发内部的定时器操作.P13 的
闪亮表示正确接收完一个数据. 程序运行效果: 打开本机电源开关,可以看到 P10 不停的闪动,
按下遥控器的数字键,数码管则显示相应的数字键(1-9).可以看到 P11,P12 在显示后呈亮状态.
则可以接收下一个数据,在上面过程中可以看到 P13 闪亮了一下.表明上次正确接收到数据.
#include <reg52.h> //包含 51 单片机相关的头文件
#define uint unsigned int //重定义无符号整数类型
#define uchar unsigned char //重定义无符号字符类型
uchar code LedShowData[]={0x03,0x9F,0x25,0x0D,0x99, //定义数码管显示数据
0x49,0x41,0x1F,0x01,0x19};//0,1,2,3,4,5,6,7,8,9
uchar code RecvData[]={0x07,0x0A,0x1B,0x1F,0x0C,0x0D,0x0E,0x00,0x0F,0x19};
uchar IRCOM[7];
static unsigned int LedFlash; //定义闪动频率计数变量
unsigned char RunFlag=0; //定义运行标志位
bit EnableLight=0; //定义指示灯使能位
/***********完成基本数据变量定义**************/
sbit S1State=P1^0; //定义 S1 状态标志位
sbit S2State=P1^1; //定义 S2 状态标志位
sbit B1State=P1^2; //定义 B1 状态标志位
sbit IRState=P1^3; //定义 IR 状态标志位
sbit RunStopState=P1^4; //定义运行停止标志位
sbit FontIRState=P1^5; //定义 FontIR 状态标志位
sbit LeftIRState=P1^6; //定义 LeftIR 状态标志位
sbit RightIRState=P1^7; //定义 RightIRState 状态标志位
/*************完成状态指示灯定义*************/
sbit S1=P3^2; //定义 S1 按键端口
sbit S2=P3^4; //定义 S2 按键端口
/*************完成按键端口的定义*************/
sbit LeftLed=P2^0; //定义前方左侧指示灯端口
sbit RightLed=P0^7; //定义前方右侧指示灯端口
/*************完成前方指示灯端口定义*********/
sbit LeftIR=P3^5; //定义前方左侧红外探头
sbit RightIR=P3^6; //定义前主右侧红外探头
sbit FontIR=P3^7; //定义正前方红外探头
/*************完成红外探头端口定义***********/
sbit M1A=P0^0; //定义电机 1 正向端口
sbit M1B=P0^1; //定义电机 1 反向端口
评论0