您的位置 首页 IC

单片机红外遥控程序beta

千辛万苦,终于把这个完成了。不错不错。现在的问题就在上板子上测试了。刚才发了,发现**居然被屏蔽了。标注只能用两个杠杠表示

含辛茹苦,总算把这个完成了。不错不错。现在的问题就在上板子上测试了。方才发了,发现”/””*””*””/”竟然被屏蔽了。标示只能用两个杠杠表明。为了今后更好的发布,我写程序注释的时分尽量用双斜杠。

#include
#define uchar unsigned char
#define uint unsigned int

uchar code table[]={
0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71}; //界说数字显现

sbit remote=P3^3;//界说中止源外中止3.3

int count=0;//界说全局变量计数计时器
bit get_over;//界说读取数据完毕
int dat[33],ircode[4]; //第一个是直接读取数据,第二个是解码之后的数据

void ini_rem(void); //遥控器的初始化
void ini_other(void); //其他设定初始化
void exchange(void); //编码转化
//void timer0(void) interrupt 0 //计时器0中止,计时核算上升沿个数来测定1,0,和开端完毕码
//void ex_rem(void) interrupt 4 //外中止1,经过上升沿来让定时器计时
void dis(void);//显现函数
void delay(uint z); //显现延时函数
main()
{
ini_other();
ini_rem();
while(1)
{
if(get_over==1)
{
exchange();
dis();
get_over=0;
}
}
}

void ini_other()
{
EA=1; //总中止



ET0=1; //定时器0中止
TR0=1; //定时器0中止
TMOD=0X01; //定时器状况 定时器0方法1,16位计数器
TH0=(65535-300)/256; //初值设定为300us=0.30ms
TL0=(65535-300)%6;



EX1=1; //敞开外部中止 1
IT1=1; // 设置成 下降沿触发方法 (为0时为低电平触发)
PX1=1;//将外中止设置为高优先级
}

ex_rem(void) interrupt 2
{
bit flag;
int i=0;
EX1=0;


if(flag)
{

if(count>=27&&count<=33)// 引导码承受成功
{
i=0;//给计数标志位
}

dat[i]=count;//将计时数存入,备用处理
count=0;//计数清零
i++;//下一次的计时数

if(i==33)//假如一次信号32位悉数OK
{
i=0;//给计数标志位
get_over=1;//置计数标志
}
else
{
count=0;//不然计数清零,置标志位,持续
flag=1;
}
}
EX1=1;
}

void timer0(void) interrupt 1
{
TH0=(65535-500)/256;
TL0=(65535-500)%6;
//TMOD=0X01;
count++;

}

void exchange(void) //编码子程序从第三个数据开端
{
unsigned char i,j,k,val,tmp1;

k=1;


for(i=0;i<4;i++)
{
for(j=0;j<8;j++)

{
tmp1=dat[k];

if(tmp1>4)
val=val|0x80;
else val=val;

if(j<8)
val=val>>1;

k++;
}

ircode[i]=val;
val=0;
}
}

void dis() //显现子程序 OK
{
P1=0XF0;
P2=table[ircode[2]/10];
delay(1);
P1=0xF1;
P2=table[ircode[2]];
delay(1);

}

void delay(uint z) //延时子函数
{
uint x,y;
for(x=z;x>0;x–)
for(y=110;y>0;y–);
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/259945.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部