找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

请高手看看一键学习型遥控器程序有没问题啊

[复制链接]
admin 发表于 2012-9-2 13:54:54 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
#include<reg52.h>
#define uchar unsigned char
sbit s1=P1^4;
sbit s2=P1^5;
sbit u=P3^2;
sbit ir_out=P1^1;
sbit led1=P1^2;
sbit led2=P1^3;
uchar ldata[33];hdata[33];
uchar count;buf_count;
uchar ir_state=0;i;
int bufdata;
/* 学习 */
void ir_learn(void)
{
IP=0x02;
IT0=1;
EX0=1;
EA=1;
TMOD=0X01;//模式1
TH0=0XFF;//定时50微秒
TL0=0XCE;
TR0=1;
ET0=1;
}

void time0() interrupt 1
{
count++;
TH0=0XFF;
TL0=0xCE;

void isr() interrupt 0
{
count=0;
if(ir_state==0) //之前未收到引导码
{
while(u==0);
buf_count=count;
count=0;
if(buf_count<200&&buf_count>150) //判断引导码
{
ldata[0]=buf_count;
}
while(u==1);
hdata[0]=count;
count=0;
ir_state=1;
}
else if(ir_state==1)
{
while(u==0);
buf_count=count;
count=0;

ldata[i]=buf_count;

while(u==1);
hdata[i]=count;
count=0;
i++;
}
}
////发射
void ir_launch(void)
{
TMOD=0x11;
EA=1;
ET0=0;
ET1=1;
TH1=0xff;
TL1=0XE6;
ir_out=0;

for(i=0;i<33;i++)
{
bufdata=50*ldata[i];
TH0=~(bufdata/256);
TL0=~(bufdata%256);

TR0=1;
TR1=1;
ir_out=1;
while(TF1==0);
TR0=0;
ir_out=0;
bufdata=hdata[i]*50;
TH0=~(bufdata/256);
TL0=~(bufdata%256);
TR0=1;
while(TF1==0);
}
}
void time1(void) interrupt 2
{
ir_out=~ir_out;
TH1=0XFF;
TL1=0XE6;
}
//主程序
void main()
{
s1=1;
s2=1;
led1=1;
led2=1;


if(s1==0)
{
ir_learn();
led1=0;
}
else if (s2==0)
{
ir_launch();
led2=0;
}
}
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-11-25 03:36 , Processed in 0.051883 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表