找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2152|回复: 4
打印 上一主题 下一主题
收起左侧

红外解码在实物,数码管总显示88888888,不显00000000。如何修改??

[复制链接]
跳转到指定楼层
楼主
ID:60515 发表于 2016-4-13 20:20 来自手机 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
unsigned char code smg_du[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};
unsigned char code smg_we[]={0x08,0x18,0x28,0x38,0x48,0x58,0x68,0x78}; uchar irtime; uchar startflag;
uchar irdata[33];
uchar bitnum;
uchar irreceok;
uchar ircode[4];
uchar irprosok;
uchar disp[8];
//************************************************ //延时函数,在12MHz的晶振频率下 //大约50us的延时 //************************************************ void delay_50us(uint t)
{
uchar j;
for(;t>0;t--) for(j=19;j>0;j--);
}
//************************************************ //延时函数,在12MHz的晶振频率下 //大约50ms的延时 //************************************************ void delay_50ms(uint t)
{ uint j; for(;t>0;t--) for(j=6245;j>0;j--); }
void timer0init(void)
{ TMOD=0x02; TH0=0x00; TL0=0x00; ET0=1; EA=1; TR0=1; }
void int0init(void)
{ IT0=1; EX0=1; EA=1; }
void irwork(void)
{ disp[0]=ircode[0]/16;
disp[1]=ircode[0]%16;
disp[2]=ircode[1]/16;
disp[3]=ircode[1]%16;
disp[4]=ircode[2]/16;
disp[5]=ircode[2]%16;
disp[6]=ircode[3]/16;
disp[7]=ircode[3]%16; }
void display(void)
{ uchar i; for(i=0;i<8;i++)
{ P1=smg_du[disp[i]];
P2=smg_we[i];
delay_50us(20); } }
void irpros(void) //0x1c
{ uchar k,i,j; uchar value; k=1;
for(j=0;j<4;j++)
{ for(i=0;i<8;i++)
{ value=value>>1; //7
if(irdata[k]>6) //8
{ value=value | 0x80; }
k++; } ircode[j]=value; }
irprosok=1; }
void main() { timer0init(); int0init();
while(1)
{
if(irreceok)
{ irpros();
irreceok=0; }
if(irprosok)
{ irwork(); irprosok=0; }
display(); } }
void timer0 () interrupt 1
{ irtime++; //255 }
void int0 () interrupt 0
{ if(startflag)
{ if(irtime>32) //检测引导码
{ bitnum=0; }
irdata[bitnum]=irtime;
irtime=0; bitnum++;
if(bitnum==33)
{ bitnum=0; irreceok=1; } }
else { startflag=1; irtime=0; } }

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:96682 发表于 2016-4-13 20:57 | 只看该作者
程序与板子的数码管配对了没有?源码要修改也可以,电路板子有时也要做适当修改。

评分

参与人数 1黑币 +40 收起 理由
admin + 40 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:60515 发表于 2016-4-14 21:14 来自手机 | 只看该作者
wc86110 发表于 2016-4-13 20:57
程序与板子的数码管配对了没有?源码要修改也可以,电路板子有时也要做适当修改。

谢谢!改好了。犯了一个低级的错误,把段选口给弄错了,
回复

使用道具 举报

地板
ID:110866 发表于 2016-4-15 23:27 | 只看该作者
学习了,感谢啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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