问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

红外线遥控 单片机

发布网友 发布时间:2022-05-06 14:15

我来回答

4个回答

热心网友 时间:2022-06-30 22:11

      这个程序我之前写过一个,解码用单片机接收NEC遥控器32编码和电视遥控器42位编码,程序里面自动识别32和42位的编码用数码管进行显示对应的数值,我还写过红外发射,模拟NEC协议发射红外编码和电视机、奥克斯空调、卫星接收机都能控制,需要的可以百度私信!

追问焊接的真厉害- -!
只是程序呢? music_mc ! qq.com

追答通过百度私信发给你!

热心网友 时间:2022-06-30 22:11

以下文件是51单片机实现遥控解码,通过数码管显示键码的程序,P0口驱动数码管段选,p2.6和p2.7为数码管位选,接收头连到P3.2口。此程序以通过验证,可以直接编译使用,另外还有一个继电器和蜂鸣器的控制,不用可以屏蔽掉。

;********************************************************************************
;* 描述: *
;* 遥控键值读取器 *
;* 数码管显示, P0口为数码管的数据口 *
;* *
;********************************************************************************
;遥控键值解码-数码管显示 *
;********************************************************************************/

#include <reg51.h>
#include <intrins.h>

void IR_SHOW();
void delay(unsigned char x);//x*0.14MS
void delay1(unsigned char ms);
void beep();

sbit IRIN = P3^2;
sbit BEEP = P3^7;
sbit RELAY= P1^3;
sbit GEWEI= P2^7;
sbit SHIWEI= P2^6;

unsigned char IRCOM[8];
unsigned char code table[16] =
{0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
main()
{
IE = 0x81; //允许总中断中断,使能 INT0 外部中断
TCON = 0x1; //触发方式为脉冲负边沿触发
delay(1);

IRIN=1;
BEEP=1;
RELAY=1;
for(;;)
{
IR_SHOW();
}

} //end main

void IR_IN() interrupt 0 using 0
{
unsigned char i,j,k,N=0;
EA = 0;
I1:
for (i=0;i<4;i++)
{
if (IRIN==0) break;
if (i==3) {EA =1;return;}
}
delay(20);
if (IRIN==1) goto I1; //确认IR信号出现
while (!IRIN) //等 IR 变为高电平
{delay(1);}

for (j=0;j<4;j++)
{
for (k=0;k<8;k++)
{
while (IRIN) //等 IR 变为低电平
{delay(1);}
while (!IRIN) //等 IR 变为高电平
{delay(1);}
while (IRIN) //计算IR高电平时长
{
delay(1);
N++;
if (N>=30) {EA=1;return;}
}
IRCOM[j]=IRCOM[j] >> 1;
if (N>=8) {IRCOM[j] = IRCOM[j] | 0x80;}
N=0;
}//end for k
}//end for j

if (IRCOM[2]!=~IRCOM[3]) {EA=1;return;}
IRCOM[5]=IRCOM[2] & 0x0F;
IRCOM[6]=IRCOM[2] & 0xF0;
IRCOM[6]=IRCOM[6] >> 4;
beep();
EA = 1;

}

void IR_SHOW()
{
P0 = table[IRCOM[5]];
GEWEI = 0;
SHIWEI = 1;
delay1(4);
P0 = table[IRCOM[6]];
SHIWEI = 0;
GEWEI = 1;
delay1(4);
}

void beep()
{
unsigned char i;
for (i=0;i<100;i++)
{
delay(5);
BEEP=!BEEP;
}
BEEP=1;
}

void delay(unsigned char x)//x*0.14MS
{
unsigned char i;
while(x--)
{
for (i = 0; i<13; i++) {}
}
}

void delay1(unsigned char ms)
{
unsigned char i;
while(ms--)
{
for(i = 0; i<120; i++)
{
_nop_();
_nop_();
_nop_();
_nop_();
}
}
}
单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的*处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。

热心网友 时间:2022-06-30 22:12

以下是解码编程:

#include <reg51.h>
#include <intrins.h>

void IR_SHOW();
void delay(unsigned char x);//x*0.14MS
void delay1(unsigned char ms);
void beep();

sbit IRIN = P3^2;
sbit BEEP = P3^7;
sbit RELAY= P1^3;
sbit GEWEI= P2^7;
sbit SHIWEI= P2^6;

unsigned char IRCOM[8];
unsigned char code table[16] =
{0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
main()
{
IE = 0x81; //允许总中断中断,使能 INT0 外部中断
TCON = 0x1; //触发方式为脉冲负边沿触发
delay(1);

IRIN=1;
BEEP=1;
RELAY=1;
for(;;)
{
IR_SHOW();
}

} //end main

void IR_IN() interrupt 0 using 0
{
unsigned char i,j,k,N=0;
EA = 0;
I1:
for (i=0;i<4;i++)
{
if (IRIN==0) break;
if (i==3) {EA =1;return;}
}
delay(20);
if (IRIN==1) goto I1; //确认IR信号出现
while (!IRIN) //等 IR 变为高电平
{delay(1);}

for (j=0;j<4;j++)
{
for (k=0;k<8;k++)
{
while (IRIN) //等 IR 变为低电平
{delay(1);}
while (!IRIN) //等 IR 变为高电平
{delay(1);}
while (IRIN) //计算IR高电平时长
{
delay(1);
N++;
if (N>=30) {EA=1;return;}
}
IRCOM[j]=IRCOM[j] >> 1;
if (N>=8) {IRCOM[j] = IRCOM[j] | 0x80;}
N=0;
}//end for k
}//end for j

if (IRCOM[2]!=~IRCOM[3]) {EA=1;return;}
IRCOM[5]=IRCOM[2] & 0x0F;
IRCOM[6]=IRCOM[2] & 0xF0;
IRCOM[6]=IRCOM[6] >> 4;
beep();
EA = 1;

}

void IR_SHOW()
{
P0 = table[IRCOM[5]];
GEWEI = 0;
SHIWEI = 1;
delay1(4);
P0 = table[IRCOM[6]];
SHIWEI = 0;
GEWEI = 1;
delay1(4);
}

void beep()
{
unsigned char i;
for (i=0;i<100;i++)
{
delay(5);
BEEP=!BEEP;
}
BEEP=1;
}

void delay(unsigned char x)//x*0.14MS
{
unsigned char i;
while(x--)
{
for (i = 0; i<13; i++) {}
}
}

void delay1(unsigned char ms)
{
unsigned char i;
while(ms--)
{
for(i = 0; i<120; i++)
{
_nop_();
_nop_();
_nop_();
_nop_();
}
}
}

热心网友 时间:2022-06-30 22:12

你是要动态显示的程序吗?追问怎么说呢,比方按下某个键,8位数码管就显示那个键的解码,不是说按1就显示1,而是显示读到的8位数据码

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
一个成功女人背后的五种男人 为什么猫咪爱睡床边 事业单位工作人员如何正常增加薪级工资 红旗Linux极致的体验新世界红旗linux怎么样 工龄33年10个月+薪级工资是多少? 15岁,体重70kg身高175cm超重了吗 海南三亚 N70音乐版 5310卖多少钱? ...有谁知道怎么办理港澳SaSa,卓悦,万宁的会员卡呢?拜托拜托 _百度... 海南的朵唯手机都在哪些地方有卖?王者天创卖的朵唯手机都是真货吗? 我今年17岁。身高175CM,体重70公斤。弹跳差不多50CM。跳远2.35米左右... 爱德信耳机218TS型号的是什么频率点 关于单片机红外遥控代码部分的几个问题: 1.Ircordpro函数中if(cord&gt;7)是干什么用的 红外遥控按键有时候会无效,无论怎么按都不变功能,向大佬求教 请问大家一个单片机C语言编程的问题,就是好像中断有问题(红外遥控),那个if语句不是按着顺序执行的 求红外线反射管避障51单片机C语言程序,谢谢! 怎么开一网站 怎么开发一个网站,知道的说一下! 如何去痘印效果好 分享简单有效的祛痘印小妙招 生活小妙招祛痘印 怎么祛痘印最快最有效怎么祛痘印有用祛痘印小妙招 这种别人共享给我的资源,我怎么保存到我的资源里 魅族e2钉钉后台怎么收不到信息 红米k20pro为什么充电就会先显示电量然后在不显示然后又显示电量 四轴飞行器能飞多高 支付宝扫码钱转错了我该怎么办 魅族x8为什么钉钉没有声音? 360wifi快传有ios版吗 在iphone5s手机上使用360wifi快传看电脑里的视频如何选择横屏? 我用的是360wifi快传,如何用360wifi快传读取苹果手机里优酷的视频文件? 想知道【360wifi快传】这个软件是不是已经不能用来传照片了? 微信聊天记录被人发在别的平台上 派出所可以查到是谁发的么? 电脑怎么登录两个 汗了,我做梦竟然梦见10个人跳楼自杀,应该是一家人. 我在上面看下去 全一滩血!后来我惊醒了。求解梦。 为什么要对货币进行层次划分? 2021成都车展 易车观展交通饮食指南 即将到来的成都车展,究竟有些什么重磅车型? 成都车展重磅车型扎堆,这几款值得一看!必打卡坦克500 如何在电脑上登录多个 今年成都车展什么时候开始? 成都车展一般都是什么时候有啊? 速问:成都车展在什么地方举办??? 求成都车展的开始和结束时间?门票是多少? 成都车展是不是每年都有?? 2020成都车展开幕,这几款热门新车值得一看! 2013年成都车展的具体时间是几月几号到几月几号啊?门票多少? #2021成都车展#小号S级上市,还有比亚迪版飞度 成都车展的时间和票价? 用微信给别人的银行卡转账,但是别人的银行卡没有绑定微信可以吗? 微信不绑定银行卡能接转账吗 对方的银行卡没开通微信转账能转吗