当前位置:首页 > 红外光通信装置-电赛报告
uchari,temp;
for(i=0;i<8;i++) //每个码有8位数字 {
temp=temp>>1; //temp中的各数据位右移一位,因为先读出的是低位数据
TH0=0; //定时器清0 TL0=0; //定时器清0 TR0=1; //开启定时器T0
while(re==0) ;//如果是低电平就等待 低电平计时 TR0=0; //关闭定时器T0
LowTime=TH0*256+TL0; //保存低电平宽度 TH0=0; //定时器清0 TL0=0; //定时器清0 TR0=1; //开启定时器T0
while(re==1); //如果是高电平就等待 TR0=0; //关闭定时器T0
HighTime=TH0*256+TL0; //保存高电平宽度 if((LowTime<800)||(LowTime>1600))
return 0; //如果低电平长度不在合理范围,则认为出错,停止解码
if((HighTime>1200)&&(HighTime<1850)) //如果高电平时间在600微秒左右, {
temp=temp&0x7f; //则该位是0 }
if((HighTime>2000)&&(HighTime<3000)) //如果高电平时间在1000微秒左右, {
temp=temp|0x80; //则该位是1 } }
mess=temp; return 1; }
void Delay999ms() //@30.000MHz {
unsigned char i, j, k;
_nop_(); _nop_(); i = 114;
33
j = 226; k = 60; do {
do {
while (--k); } while (--j); } while (--i); }
/***********************************************main*********************************************/ void main() {
init_Lcd(); mess=0;
Eraseeeprom(); //擦除EEPROM flag = 0; j =0;
tem = 29;
TMOD = 0x01; TR0=0;
init_ex0(); while (1) {
// display(tem); // Delay999ms(); } }
/**********************红外线触发中断处理函数**********************/ void ex0() interrupt 0 {
// display(mess); EX0=0; //关闭外中断0,不再接收二次红外信号的中断,只解码当前红外信号
34
TH0=0; //定时器T0的高8位清0 TL0=0; //定时器T0的低8位清0 TR0=1; //开启定时器T0
while(re==0);//如果是低电平就等待
TR0=0;
LowTime=TH0*256+TL0; //保存低电平时间
TH0=0; //定时器T0的高8位清0 TL0=0; //定时器T0的低8位清0 TR0=1; //开启定时器T0
while(re==1); //如果是高电平就等待 // test1=0;
TR0=0; //关闭定时器T0
HighTime=TH0*256+TL0; //保存引导码的高电平长度 // test=0;
if((LowTime>3000)&&(LowTime<4500)) {
//P0=0xaa;
if((HighTime>4500&&HighTime<5600)) {
if(flag == 0) {
DeCode(); // 执行遥控解码功能 P0=mess;
IapProgramByte(j, mess); ////写EEPROM j++;
if(j == 20000) {
flag = 1; j = 0; } }
if(flag == 1) {
while(1) {
while(j!=20000) {
DAC(IapReadByte(j)); //读EEPROM并DAC转化
35
Delay120us(); j++; }
j=0; // P0=0xaa; }
Eraseeeprom(); //擦除EEPROM flag = 0; j = 0; } }
else if((HighTime>6800&&HighTime<8300)) {
if(flag==0) {
DeCode(); tem=mess;
display(tem); // Delay999ms(); } } }
EX0=1; //开启外中断EX0 }
//*************************程序END******************************//
36
共分享92篇相关文档