关于51单片机红外线控制解码的问题 10

#include"reg52.h"#defineucharunsignedchar#defineuintunsignedintsbitirin=P3^2;//红外接收器数... #include"reg52.h"
#define uchar unsigned char
#define uint unsigned int
sbit irin = P3 ^ 2; //红外接收器数据线
sbit wela=P2^7;
sbit dula=P2^6;
uchar bitnum,irtime,startflag,irreceok;
uchar irdata[33];
uchar ircode[4];
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void delay(uint z)
{
uint i,j;
for(i=z;i>0;i--)
for(j=110;j>0;j--);
}
void display()
{
dula=1;
P0=table[ircode[0]/16];
dula=0;
P0=0xff;
wela=1;
P0=0xfe;
wela=0;
delay(1);

dula=1;
P0=table[ircode[0]%16];
dula=0;
P0=0xff;
wela=1;
P0=0xfd;
wela=0;
delay(1);

dula=1;
P0=table[ircode[1]/16];
dula=0;
P0=0xff;
wela=1;
P0=0xfb;
wela=0;
delay(1);

dula=1;
P0=table[ircode[1]%16];
dula=0;
P0=0xff;
wela=1;
P0=0xf7;
wela=0;
delay(1);

dula=1;
P0=table[ircode[2]/16];
dula=0;
P0=0xff;
wela=1;
P0=0xef;
wela=0;
delay(1);

dula=1;
P0=table[ircode[2]%16];
dula=0;
P0=0xff;
wela=1;
P0=0xdf;
wela=0;
delay(1);
}
void proce()
{
uchar i,k,j,value;
k=1;
for(j=0;j<4;j++)
{
for(i=0;i<8;i++)
{
value=value>>1;
if(irdata[k]>5)
{
value=value|0x80;
}
k++;
}
ircode[j]=value;
}

}
void int0_init()
{
EA=1;
IT0=1;
EX0=1;
}
void timer0_init()//定时器0工作方式2
{
TMOD=0x02;
TL0=0x00;
TH0=0x00;
EA=1;
ET0=1;
TR0=1;

}
void main()
{
int0_init();
timer0_init();
while(1)
{
if(irreceok)
{
irreceok=0;
proce(); EX0=1;
}
display();
}
}
void timer0() interrupt 1
{
irtime++;
}
void int0() interrupt 0
{
//EX0=0;
//delay(15);
if(startflag)
{
if(irtime>53)
{
bitnum=0;
}
irdata[bitnum]=irtime;
irtime=0;
bitnum++;
if(bitnum==33)
{
bitnum=0;
irreceok=1;
EX0=0;
delay(100);
}
}
else
{
startflag=1;
irtime=0;
}
// EX0=1;

}
每一次按键 第一次数码管上出现的是真确的字符 但再按一下就会出现乱码 按其他按键也是乱码
展开
 我来答
610095871
2012-02-19 · TA获得超过455个赞
知道小有建树答主
回答量:380
采纳率:100%
帮助的人:272万
展开全部
不用按键 直接用程序切换 看下字摸是不是去错了
追问
我刚入手单片机 不太懂 可不可以详细一点
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
希卓
2024-10-17 广告
分布式光纤声音传感(DAS)技术是一种先进的光纤传感解决方案,它利用光纤的瑞利散射特性来连续监测沿光纤长度的声音或振动信号。这一技术通过高精度测量声波引起的光纤相位变化,实现了对外界物理量的定量测量。DAS技术因其高灵敏度、长距离监测以及抗... 点击进入详情页
本回答由希卓提供
liyuzhiliyu
2012-02-23 · TA获得超过353个赞
知道答主
回答量:638
采纳率:0%
帮助的人:338万
展开全部
你在程序上先跑一下数码管程序,从0-9亮一遍 看看是不是乱码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式