社区
单片机/工控
帖子详情
51单片机
qq_37125203
2018-02-23 05:02:31
求大神 帮写一个红外解码程序P3^2接收端口 遥控1-8控制LED灯 P2口 地电位灯亮 求大神
...全文
734
3
打赏
收藏
51单片机
求大神 帮写一个红外解码程序P3^2接收端口 遥控1-8控制LED灯 P2口 地电位灯亮 求大神
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qq_37125203
2018-02-24
打赏
举报
回复
还是不明白 /************************************************************************************** * 红外通信实验 * 实现现象:下载程序后,数码管显示红外遥控键值数据 注意事项: 红外遥控器内的电池绝缘片一定要抽掉 ***************************************************************************************/ #include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器 typedef unsigned int u16; //对数据类型进行声明定义 typedef unsigned char u8; sbit LSA=P2^2; sbit LSB=P2^3; sbit LSC=P2^4; sbit IRIN=P3^2; u8 IrValue[6]; u8 Time; u8 DisplayData[8]; u8 code smgduan[17]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0X76}; //0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F、H的显示码 /******************************************************************************* * 函 数 名 : delay * 函数功能 : 延时函数,i=1时,大约延时10us *******************************************************************************/ void delay(u16 i) { while(i--); } /******************************************************************************* * 函数名 :DigDisplay() * 函数功能 :数码管显示函数 * 输入 : 无 * 输出 : 无 *******************************************************************************/ void DigDisplay() { u8 i; for(i=0;i<3;i++) { switch(i) //位选,选择点亮的数码管, { case(0): LSA=0;LSB=0;LSC=0; break;//显示第0位 case(1): LSA=1;LSB=0;LSC=0; break;//显示第1位 case(2): LSA=0;LSB=1;LSC=0; break;//显示第2位 } P0=DisplayData[2-i];//发送数据 delay(100); //间隔一段时间扫描 P0=0x00;//消隐 } } /******************************************************************************* * 函数名 : IrInit() * 函数功能 : 初始化红外线接收 * 输入 : 无 * 输出 : 无 *******************************************************************************/ void IrInit() { IT0=1;//下降沿触发 EX0=1;//打开中断0允许 EA=1; //打开总中断 IRIN=1;//初始化端口 } /******************************************************************************* * 函 数 名 : main * 函数功能 : 主函数 * 输 入 : 无 * 输 出 : 无 *******************************************************************************/ void main() { IrInit(); while(1) { DisplayData[0] = smgduan[IrValue[2]/16]; DisplayData[1] = smgduan[IrValue[2]%16]; DisplayData[2] = smgduan[16]; DigDisplay(); } } /******************************************************************************* * 函数名 : ReadIr() * 函数功能 : 读取红外数值的中断函数 * 输入 : 无 * 输出 : 无 *******************************************************************************/ void ReadIr() interrupt 0 { u8 j,k; u16 err; Time=0; delay(700); //7ms if(IRIN==0) //确认是否真的接收到正确的信号 { err=1000; //1000*10us=10ms,超过说明接收到错误的信号 /*当两个条件都为真是循环,如果有一个条件为假的时候跳出循环,免得程序出错的时 侯,程序死在这里*/ while((IRIN==0)&&(err>0)) //等待前面9ms的低电平过去 { delay(1); err--; } if(IRIN==1) //如果正确等到9ms低电平 { err=500; while((IRIN==1)&&(err>0)) //等待4.5ms的起始高电平过去 { delay(1); err--; } for(k=0;k<4;k++) //共有4组数据 { for(j=0;j<8;j++) //接收一组数据 { err=60; while((IRIN==0)&&(err>0))//等待信号前面的560us低电平过去 { delay(1); err--; } err=500; while((IRIN==1)&&(err>0)) //计算高电平的时间长度。 { delay(10); //0.1ms Time++; err--; if(Time>30) { return; } } IrValue[k]>>=1; //k表示第几组数据 if(Time>=8) //如果高电平出现大于565us,那么是1 { IrValue[k]|=0x80; } Time=0; //用完时间要重新赋值 } } } if(IrValue[2]!=~IrValue[3]) { return; } } } 能不能帮我看看这个程序 每一步 让后可不可以改成 点亮LED灯 怎么改 谢谢大神
zgl7903
2018-02-24
打赏
举报
回复
https://wenku.baidu.com/view/1e177517bb68a98270fefa0d.html
51单片机
外设和项目篇-朱有鹏老师单片机第2季视频课程套餐
《
51单片机
外设和项目篇》是《朱有鹏老师单片机完全学习系列课程》的第2部分,本课程是
51单片机
领域的进阶课程,主要内容是
51单片机
的外设讲解和小项目,实现了环境温度和实时时间的显示、过温报警、通过按键调整时间和报警阈值温度等功能,通过这些项目练习可以对编程能力、程序调试能力进一步提升,达到锻炼自身的目的,为之后第3、4、5季继续学习STM32复杂单片机打下良好基础。
51单片机
——
51单片机
入门基础知识
第一部分。单片机简介 MSC-
51单片机
指以8051为核心的单片机,由美国的Intel公司在1980年推出,80C51是MCS-51系列中的一个典型品种;其它厂商以8051为基核开发出的CMOS工艺单片机产品统称为80C51系列。 单片机:在一片集成电路芯片上集成微处理器(CPU)、存储器(ROM和RAM)、I/O接口电路,从而构成了单芯片微型计算机,即单片机(single chip Micr...
什么是单片机,什么是
51单片机
【
51单片机
介绍】
在目前,在电子界,如果想进入微控制器领域的学习,相信绝大多数的人会 认为要从 51 单片机开始。不错,在众多微控制器中,51 单片机确实是非常适 合初学者入门学习的,因此很有必要先认识和了解 51 单片机。本章将向大家介 绍 51 单片机,通过本章的学习,让大家对 51 单片机有一个深入的了解,为后面 51 单片机的学习做好铺垫。...
51单片机
电路原理图_
51单片机
入门(第1篇):纯干货,单片机最小系统
当我们了解了什么是单片机,以及单片机有什么用之后,是否要考虑我们怎么去学习单片机呢?学习单片机其实很简单,需要的起步知识并不需要多少,接下来跟随我的步伐,一步一步的去了解单片机。本文将讲解单片机最小系统和仿真软件以及编程软件的选择。0.
51单片机
最小系统先来一个初步认识,它长什么样:
51单片机
最小系统原理图
51单片机
最小系统实物图
51单片机
的最小系统由单片机IC,电源,外部晶振电路,复位电路共同...
51单片机
之串口通信详解及代码示例
目录一、串口介绍二、硬件电路三、
51单片机
的UART四、相关寄存器4.1 SCON:串口控制寄存器(可位寻址)4.2 PCON:电源控制寄存器(不可位寻址)4.3 TMOD五、串口通信操作流程5.1 发送数据流程5.2 接收数据流程六、波特率计算七、效果演示 一、串口介绍 串口是一种应用十分广泛的通讯接口,串口成本低、容易使用、通信线路简单,可实现两个设备的互相通信。 单片机的串口可以使单片机与单片机、单片机与电脑、单片机与各式各样的模块互相通信,极大的扩展了单片机的应用范围,增强了单片机系统的硬件实力。
单片机/工控
27,375
社区成员
28,769
社区内容
发帖
与我相关
我的任务
单片机/工控
硬件/嵌入开发 单片机/工控
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章