资源预览内容
第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
亲,该文档总共4页全部预览完了,如果喜欢就下载吧!
资源描述
/=/ 红外遥控器解码程序演示 / 本程序主要将现在比较常用TX1300遥控器进行解码,将解码后的数据通过P2端/口的数码管显示出来,为了更好的看到运行过程,特加了三个指示灯用来指示当 /前运行状态.P10主要用来闪亮,表示程序正在运行,P11则用来表示接收到数据, /P12表示触发内部的定时器操作.P13的闪亮表示正确接收完一个数据. / 程序运行效果: 打开本机电源开关,可以看到P10不停的闪动,按下遥控器的数/字键,数码管则显示相应的数字键(1-9).可以看到P11,P12在显示后呈亮状态.则/可以接收下一个数据,在上面过程中可以看到P13闪亮了一下.表明上次正确接收/到数据. /-/ 开发日期: 2009/01/30 研发单位:上海腾芯实业有限公司 /#include /包含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,9uchar code RecvData=0x07,0x0A,0x1B,0x1F,0x0C,0x0D,0x0E,0x00,0x0F,0x19;uchar IRCOM7;static unsigned int LedFlash; /定义闪动频率计数变量unsigned char RunFlag=0; /定义运行标志位bit EnableLight=0; /定义指示灯使能位/*完成基本数据变量定义*/sbit S1State=P10; /定义S1状态标志位sbit S2State=P11; /定义S2状态标志位sbit B1State=P12; /定义B1状态标志位sbit IRState=P13; /定义IR状态标志位sbit RunStopState=P14; /定义运行停止标志位sbit FontIRState=P15; /定义FontIR状态标志位sbit LeftIRState=P16; /定义LeftIR状态标志位sbit RightIRState=P17; /定义RightIRState状态标志位/*完成状态指示灯定义*/sbit S1=P32; /定义S1按键端口sbit S2=P34; /定义S2按键端口/*完成按键端口的定义*/ sbit LeftLed=P20; /定义前方左侧指示灯端口sbit RightLed=P07; /定义前方右侧指示灯端口/*完成前方指示灯端口定义*/sbit LeftIR=P35; /定义前方左侧红外探头sbit RightIR=P36; /定义前主右侧红外探头sbit FontIR=P37; /定义正前方红外探头/*完成红外探头端口定义*/sbit M1A=P00; /定义电机1正向端口sbit M1B=P01; /定义电机1反向端口sbit M2A=P02; /定义电机2正向端口sbit M2B=P03; /定义电机2反向端口/*完成电机端口定义*/sbit B1=P04; /定义话筒传感器端口sbit RL1=P05; /定义光敏电阻端口sbit SB1=P06; /定义蜂鸣端口/*完成话筒,光敏电阻,蜂鸣器.端口定义*/sbit IRIN=P33; /定义红外接收端口/*完成红外接收端口的定义*/#define ShowPort P2 /定义数码管显示端口extern void ControlCar(uchar CarType); /声明小车控制子程序void delayms(unsigned char x) /0.14mS延时程序 unsigned char i; /定义临时变量 while(x-) /延时时间循环 for (i = 0; i13; i+) /14mS延时 void Delay() /定义延时子程序 uint DelayTime=30000; /定义延时时间变量 while(DelayTime-); /开始进行延时循环 return; /子程序返回void IR_IN() interrupt 2 using 0 /定义INT2外部中断函数 unsigned char j,k,N=0; /定义临时接收变量 EX1 = 0; /关闭外部中断,防止再有信号到达 delayms(15); /延时时间,进行红外消抖 if (IRIN=1) /判断红外信号是否消失 EX1 =1; /外部中断开 return; /返回 while (!IRIN) /等IR变为高电平,跳过9ms的前导低电平信号。 delayms(1); /延时等待 for (j=0;j4;j+) /采集红外遥控器数据 for (k=0;k8;k+) /分次采集8位数据 while (IRIN) /等 IR 变为低电平,跳过4.5ms的前导高电平信号。 delayms(1); /延时等待 while (!IRIN) /等 IR 变为高电平 delayms(1); /延时等待
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号