智能红外遥控器的设计(毕业论文) - 图文(6)

2019-05-24 15:24

第20页 共43页

}

}

{ }

//定时器1关闭计数

RX_flag = 0; break;

TR1=0;

PW_data[PW_pt++] = TH1;//定时器1计数值,负脉宽计数值 PW_data[PW_pt++] = TL1; TH1 = 0; TL1 = 0;

//清零

//步骤五:对功能码的测量。 PW_pt = 0;//调整指针值

for (u8_i=0; u8_i<16; u8_i++)//功能码------这里有16个脉冲,用掉64个存储单元

//步骤六:假如数据已经传完,结束帧是怎么样的。

for (u8_i=0; u8_i<2; u8_i++)//功能码------这里有16个脉冲,用掉64个存储单元

下来。

/

if (Head_flag) { } EX0=1; }

4.2.2数据压缩编码

在软件设计时采用了脉宽测量技术,但在数据存储时发现数据占用的内存容量太大,读写EEPROM时间很长,应寻求一种数据无损压缩的方法,既可降低内存和E PROM占用容量,又能提高系统运行速度。经研究发现,尽管各种被控设备存在标准不一,帧格

//数据处理部分:对数据帧的正脉宽判断,是0还是1。同时把数据和脉宽值存

Data_Process();

第21页 共43页

式、码型、编码长短、发送方式不同等问题,但对于某一个特定的被控设备还是有一定的规律,即表示“0”和“1”的方式在一个设备中是相同的。在系统设计时,只要选择合理的设计方案,就能解决这个问题。通过对不同被控设备的红外遥控命令进行分析,发现长的遥控信号为150 ms,这样最多的高低信号码的数据可达数百个。

数据压缩编码部分程序设计:

/********************************************************************** ** 函数名称:Data_Process ** 入口参数: 缓冲区 ** 出口参数: 缓冲区

** 功能描述:处理脉宽缓冲数据

**********************************************************************/ void Data_Process(void)

{

uchar i;

uint L_time=0, H_time=0, temp;

write_com(0x80+0x40+12);//地址 //write_date('W'); //write_date('I');

EndBit=0; System_Code = 0;

//系统码 //功能码 //功能反码

Funtion_Code = 0; length=4;

//先存好数据低脉冲的脉宽。 //L_time = PW_data[4]; //L_time <<= 8; //L_time |= PW_data[5]; //算好系统码 for(i=0; i<26; i++) {

L_time = PW_data[length]; L_time <<= 8;

L_time |= PW_data[length+1];

Funtion_Anti_Code = 0;

第22页 共43页

}

H_time = PW_data[length+2]; H_time <<= 8;

H_time |= PW_data[length+3];

if (H_time>L_time) { } else { }

length = length + 4;

System_Code=(System_Code<<1);// //length++;

HZ_time = PW_data[length+2]; LZ_time = PW_data[length+3]; temp = H_time - L_time; if (temp>COMP_NUM)//\{ } else { }

System_Code=(System_Code<<1);// //length++;

HZ_time = PW_data[length+2]; LZ_time = PW_data[length+3];

System_Code=(System_Code<<1)|0x00000001;// //length++;

HO_time = PW_data[length+2]; LO_time = PW_data[length+3];

//算出功能码 length = 0; EndBit = 0; for(i=0; i<8; i++)

第23页 共43页

{

L_time = PW_data2[length++]; L_time <<= 8;

L_time |= PW_data2[length++]; H_time = PW_data2[length++]; H_time <<= 8;

H_time |= PW_data2[length++]; if (H_time>L_time) { } else {

Funtion_Code=(Funtion_Code<<1);// temp = H_time - L_time; if (H_time>5000) { }

if (temp>COMP_NUM)//\{ } else { }

Funtion_Code=(Funtion_Code<<1);//

Funtion_Code=(Funtion_Code<<1)|0x00000001;// EndBit = 1;

//结束码高电平

PW_data[16] = PW_data2[length-2];//高位 PW_data[17] = PW_data2[length-1];//低位

第24页 共43页

}

}

//算出功能反码 for(i=0; i<8; i++) { } length = 0; //显示功能码

L_time = PW_data2[length++]; L_time <<= 8;

L_time |= PW_data2[length++]; H_time = PW_data2[length++]; H_time <<= 8;

H_time |= PW_data2[length++]; if (H_time>L_time) { } else { }

Funtion_Anti_Code=(Funtion_Anti_Code<<1);// temp = H_time - L_time; if (temp>COMP_NUM)//\{ } else { }

Funtion_Anti_Code=(Funtion_Anti_Code<<1);//

Funtion_Anti_Code=(Funtion_Anti_Code<<1)|0x00000001;//


智能红外遥控器的设计(毕业论文) - 图文(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:人大社会学导师

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: