红外线遥控解码接收程序-C语言123

上传人:飞*** 文档编号:47861774 上传时间:2018-07-05 格式:PDF 页数:9 大小:43.77KB
返回 下载 相关 举报
红外线遥控解码接收程序-C语言123_第1页
第1页 / 共9页
红外线遥控解码接收程序-C语言123_第2页
第2页 / 共9页
红外线遥控解码接收程序-C语言123_第3页
第3页 / 共9页
红外线遥控解码接收程序-C语言123_第4页
第4页 / 共9页
红外线遥控解码接收程序-C语言123_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《红外线遥控解码接收程序-C语言123》由会员分享,可在线阅读,更多相关《红外线遥控解码接收程序-C语言123(9页珍藏版)》请在金锄头文库上搜索。

1、红外线遥控解码接收程序-C 语言#include #define uchar unsigned char #define uint unsigned int #define IR_RE P3_2 bit k=0; /红外解码判断标志位,为0 则为有效信号,为1则为无效uchar date4=0,0,0,0; /date 数组为存放地址原码,反码,数据原码,反码/*-延时 1ms 程子程序 -*/ delay1000() uchar i,j; i=5; doj=95; doj-; while(j); i-; while(i); /*-延时 882us 子程序 -*/ delay882() uch

2、ar i,j; i=6; doj=71; doj-; while(j); i-; while(i); /*-延时 2400us程子程序 -*/ delay2400() uchar i,j; i=5; doj=237; doj-; while(j); i-; while(i); /* /* /*-*/ /*-红外解码程序(核心 )-*/ /*-*/ void IR_decode() uchar i,j; while(IR_RE=0); delay2400(); if(IR_RE=1) /延时 2.4ms 后如果是高电平则是新码 delay1000(); delay1000(); for(i=0;

3、i=1; datei=datei|0x00; else if(IR_RE=1) delay1000(); datei=1; datei=datei|0x80; /1 位数据接收结束 /32 位二进制码接收结束 /* /* /*-外部中断0 程序 -*/ /*-主要用于处理红外遥控键值-*/ void int0() interrupt 0 uchar i; k=0; EX0=0; /检测到有效信号关中断,防止干扰for(i=0;i里的评论有很好的诠释. 以上程序段可以应用在51/52 单片机里 .下面的程序可以应用在STC12C5410/STC12C2052 型号的单片机里面. /在 STC12

4、C5410 上运用红外线解码程序.主要的问题在于延迟上。#include #define uchar unsigned char #define uint unsigned int #define IR_RE P3_2 bit k=0; /红外解码判断标志位,为0 则为有效信号,为1则为无效uchar date4=0,0,0,0; /date 数组为存放地 址原码,反码,数据原码,反码/*-延时 1ms 程子程序 -*/ delay1000() uchar i,j; i=200; doj=13; doj-; while(j); i-; while(i); /* /*-延时 882us 子程序

5、-*/ delay882() uchar i,j; i=84; doj=30; doj-; while(j); i-; while(i); /*-延时 2400us程子程序 -*/ delay2400() uchar i,j; i=200; doj=34; doj-; while(j); i-; while(i); /* /* /*-*/ /*-红外解码程序(核心 )-*/ /*-*/ void IR_decode() uchar i,j; while(IR_RE=0); delay2400(); if(IR_RE=1) /延时 2.4ms 后如果是高电平则是新码 delay1000(); d

6、elay1000(); for(i=0;i=1; datei=datei|0x00; else if(IR_RE=1) delay1000(); datei=1; datei=datei|0x80; /1 位数据接收结束 /32 位二进制码接收结束 /* /* /*-外部中断0 程序 -*/ /*-主要用于处理红外遥控键值-*/ void int0() interrupt 0 uchar i; k=0; EX0=0; /检测到有效信号关中 断,防止干扰for(i=0;i #define uchar unsigned char #define uint unsigned int #define

7、IR_RE P3_2 bit k=0; /红外解码判断标志位,为 0 则为有效信号,为1 则为无效uchar date4=0,0,0,0; /date 数组为存放地址原码,反码,数据原码,反码/*-延时 1ms 程子程序 -*/ delay1000() uchar i,j; i=5; doj=95; doj-; while(j); i-; while(i); /*-延时 882us 子程序 -*/ delay882() uchar i,j; i=6; doj=71; doj-; while(j); i-; while(i); /*-延时 2400us程子程序 -*/ delay2400() u

8、char i,j; i=5; doj=237; doj-; while(j); i-; while(i); /* /* /*-*/ /*-红外解码程序(核心 )-*/ /*-*/ void IR_decode() uchar i,j; while(IR_RE=0); delay2400(); if(IR_RE=1) /延时 2.4ms 后如果是高电平则是新码 delay1000(); delay1000(); for(i=0;i=1; datei=datei|0x00; else if(IR_RE=1) delay1000(); datei=1; datei=datei|0x80; /1 位数据接收结束 /32 位二进制码接收结束 /* /* /*-主要用于处理红外遥控键值-*/ void jiema() uchar i; k=0; for(i=0;i8;i+) delay1000(); if(IR_RE=1) /刚开始为9ms 的引导码 . k=1; break; if(k=0) IR_decode(); /如果接收到的是有效信号,则调用解码程序P0=date3; delay2400(); delay2400(); delay2400(); /* /* void main() SP=0x60; /堆栈指针while(1) while(IR_RE=0) jiema(); /*

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号