资源简介
51单片机上面调试通过
M3或者430也可以自己移植上去

代码片段和文件信息
#include
#include “Ir.h“
char code Tab[16]=“0123456789ABCDEF“;
unsigned char irtime = 0 ir_ok = 0;
unsigned char ir_timedata[33];
unsigned char ircode[4];
unsigned char irdata[8];
unsigned char Irnum;
sbit IR = P3^2;
void Time0_Init()
{
TMOD |= 0x02;
TL0 = 0;
TH0 = 0;
ET0 = 1;
}
void EX0_Init()
{
IT0 = 1;
EX0 = 1;
}
void Time_Isr() interrupt 1
{
irtime++;
}
void EX0_Isr() interrupt 0
{
static unsigned char i; /*接收红外信号处理*/
static bit start_flag; /*开始处理标志*/
if (start_flag)
{
if (irtime>=33) /*引导码和结果码 9ms+4.5ms*/
{
i = 0;
}
ir_timedata[i] = irtime;
irtime = 0;
i++;
if (i==33)
{
i = 0;
ir_ok = 1;
}
}
else
{
irtime = 0;
start_flag = 1;
}
}
void Ir_GetCode()
{
unsigned char i j k;
unsigned char cord value=0;
k=1;
for(i=0;i<4;i++) /*处理4个字节*/
{
for(j=1;j<=8;j++) /*处理1个字节8位*/
{
cord=ir_timedata[k];
if(cord>7) /*大于某值为1,这个和晶振有绝对关系,这里使用12M计算 */
{
value|=0x80;
}
if(j<8)
{
value>>=1;
}
k++;
}
ircode[i]=value;
value=0;
}
irdata[0] = Tab[ircode[0]/16]; /*处理客户码*/
irdata[1] = Tab[ircode[0]%16];
irdata[2] = Tab[ircode[1]/16]; /*处理客户码*/
irdata[3] = Tab[ircode[1]%16];
irdata[4] = Tab[ircode[2]/16]; /*处理数据码*/
irdata[5] = Tab[ircode[2]%16];
irdata[6] = Tab[ircode[3]/16]; /*处理数据反码*/
irdata[7] = Tab[ircode[3]%16];
Irnum = irdata[4]*16+irdata[5]-‘0‘;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2013-10-30 19:47 mb1504\
目录 0 2013-04-29 01:16 mb1504\lst\
文件 4824 2012-10-23 17:48 mb1504\lst\Ir.lst
文件 32555 2012-10-23 17:48 mb1504\lst\lcd.lst
文件 8915 2012-10-23 17:48 mb1504\lst\main.lst
文件 4638 2012-10-23 17:48 mb1504\lst\mb1504.lst
文件 42029 2012-10-23 17:48 mb1504\lst\mb1504.m51
文件 2562 2013-10-30 19:47 mb1504\mb1504.Opt
文件 164 2012-05-03 11:11 mb1504\mb1504.plg
文件 2247 2012-05-03 15:35 mb1504\mb1504.Uv2
文件 2561 2013-05-27 19:53 mb1504\mb1504_Opt.Bak
文件 0 2012-05-03 11:11 mb1504\mb1504_Uv2.Bak
目录 0 2013-04-29 01:16 mb1504\output\
文件 5251 2012-10-23 17:48 mb1504\output\Ir.obj
文件 31346 2012-10-23 17:48 mb1504\output\lcd.obj
文件 13598 2012-10-23 17:48 mb1504\output\main.obj
文件 48270 2012-10-23 17:48 mb1504\output\mb1504
文件 26713 2012-10-23 17:48 mb1504\output\mb1504.hex
文件 151 2012-10-23 17:48 mb1504\output\mb1504.lnp
文件 5552 2012-10-23 17:48 mb1504\output\mb1504.obj
文件 166 2013-10-30 19:47 mb1504\output\mb1504.plg
目录 0 2013-04-29 01:16 mb1504\src\
文件 45143 2009-12-02 11:54 mb1504\src\8x16.h
文件 7430 2009-12-02 17:48 mb1504\src\GB1616.h
文件 11487 2011-12-04 00:50 mb1504\src\GB2525.h
文件 6439 2011-12-04 00:17 mb1504\src\GB3232.h
文件 1696 2011-12-04 06:05 mb1504\src\Ir.c
文件 204 2012-10-23 17:48 mb1504\src\Ir.h
文件 16901 2011-12-04 10:55 mb1504\src\lcd.c
文件 2901 2011-12-04 06:12 mb1504\src\lcd.h
文件 3182 2012-05-12 09:53 mb1504\src\main.c
............此处省略3个文件信息
- 上一篇:联轴器SW模型
- 下一篇:03_模块使用说明_CAN恒润科技协议栈CAN模块
相关资源
- 2018西门子杯中国智能制造挑战赛逻辑
- 自已写的 自习室预约小程序微信125
- 基于stm32f103ve的程序——跑马灯实验
- 基于STM32RCT6的步进电机驱动程序
- E4A无障碍跨程序操作类库(带源码、
- labview魔方程序
- 程序员专用字体YaHei.Consolas.1.11b42517
- scratch3.0 源程序(说相声)
- 欧姆龙CP1系列单轴定位PLC程序.cxp
- SVR算法程序可运行
- labview编程软件滤波器以及编写程序设
- 电力系统潮流计算程序集合
- 仿知乎界面小程序源代码
- STM32蓝牙和串口程序
- elantech触控板驱动程序 v13.6.11 官方最
- 根据硬件ID和程序ID生成注册码
- 用python编写的移动彩信的发送程序
- TCL-S1916 ,1924交换机管理程序
- 51单片机PWM程序,占空比、周期可调整
- 嵌入式图形界面MiniGUI的示例程序9例
- 数字频率合成dds正弦波基于FPGA的DDS产
- 28335CAN调试程序
- 导线测量平差程序 很实用
- USB转串口驱动,FT232R驱动程序,最新
- 改进的BP神经网络算法
- 通风网络解算程序 fortran90
- 编写简单的RMI程序 多线程web 服务器
- 图论软件包(图论里的程序)
- A星算法_原理讲解_例子
- MFC程序-碰撞的小球
评论
共有 条评论