红外测距模块 51单片机_基于51单片机的红外发射和接收程序。
在项目开发时为了实现远程通信,需要用到无线通信,无线遥控方式可分为无线电波式、声控式、超声波式和红外线式。由于无线电式容易对其它电视机和无线电通讯设备造成干扰,而且,系统本身的抗干扰性能也很差,误动作多,所以未能大量使用。超声波式频带较窄,易受噪声干扰,系统抗干扰能力差以及声控式识别正确率低,难度大而未能大量采用。红外遥控方式是以红外线作为载体来传送控制信息的,同时随着电子技术的发展,单片机的出现,催生了数字编码方式的红外遥控系统的快速发展。另外,红外遥控具有很多的优点,例如红外线发射装置采用红外发光二极管,遥控发射器易于小型化且价格低廉;采用数字信号编码和二次调制方式,不仅可以实现多路信息的控制,增加遥控功能,提高信号传输的抗干扰性,减少误动作,而且功率消耗低;红外线不会向室外泄露,不会产生信号串扰;反应速度快、传输效率高、工作稳定可靠等。所以现在很多无线遥控方式都采用红外遥控方式。这里把红外发射和接收的程序分享给大家。
红外发射程序
#include
#include
#define uchar unsigned char
#define uint unsigned int
sbit key1=P3^3;
sbit key2=P3^4;
sbit key3=P3^5;
sbit LED=P1^0; //发射指示灯
sbit out=P3^7;
uchar i,a,num1;
void init()//初始化作用
{ key1=1;
key2=1;
key3=1; }
void delay(uchar aa)
{ uchar bb,cc;
for(bb=aa;bb>0;bb--)
for(cc=200;cc>0;cc--); }
void delayms(uchar aa)//延时程序
{
for(a=aa;a>0;a--)
{
_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_(); }
}
void khz(uchar aa)//是发射38KHZ的程序
{
for(a=aa;a>0;a--) //这个for语句可以得到准确的26.3波特率
{
out=0;
i=7; //低了17us
while(i>0)i--; // 38kHZ
out=1;
//高了9us 17+9=26us 比26.3快一点点
}
}
void fashu(uchar num)
{ khz(116);//发射3ms 38khz
delayms(125);
for(num1=8;num1>0;num1--)
{
khz(40);
if(num&0x01)
delayms(93);//delay 1.5ms
else
delayms(65);//delay 1ms
num=num>>1;
}
khz(20); }
void tishi()
{
LED=0;
delay(50);
LED=1;
delay(50);
LED=0;
delay(50);
LED=1; }
void keyscan()//按键扫描
{
if(key1==0)
{
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
if(key1==0)
{
while(!key1);
fashu(0xf3);
tishi();
}
}
if(key2==0)
{
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
if(key2==0)
{
while(!key2);
fashu(0x3f);
tishi();
} }
if(key3==0)
{
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
if(key3==0)
{
while(!key3);
fashu(0xf5);
tishi();
} } }
void main()
{
init();
while(1)
{
keyscan();
} }
红外接收程序
#include
#include
#define uchar unsigned char
#define uint unsigned int
sbit led1=P1^0;
sbit led2=P1^1;
sbit led3=P1^2;
sbit in=P3^2;
uchar i,a,num;
bit fleg;
void init()
{
fleg=1;
in=1;
EA=1;
EX0=1;
IT0=1; }
void delayms(uchar aa)
{
for(i=aa;i>0;i--)
{
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
} }
void main()
{
init();
while(1); }
void sieasdf() interrupt 0
{
EX0=0;
for(a=5;a>0;a--)
{
delayms(35);//延时0.5ms 判断5次 5*0.5=2.5ms
if(in)fleg=0;
}
if(fleg)
{
delayms(72);//延时1ms 判断是不是高电平了
if(in)
{
delayms(115);//延时让它超过2ms; 2.5+1+1.623=5.123ms 开始读数据
delayms(118);//若偏移一位,可以去掉。
for(a=8;a>0;a--)
{
while(!in);
delayms(86);//延时1.188ms 判断IO高低,从而得0或1
num=num>>1;
if(in)
{
num=num|0x80;
delayms(31);//延时0.6ms 因为上面延时1.2ms+0.6 刚好跳过1.5ms
}
}
P2=num; } }
fleg=1;
EX0=1; }
红外测距模块 51单片机_基于51单片机的红外发射和接收程序。相关推荐
- p620光耦接单片机_基于51单片机的可控硅调压调光程序-带过零检测
标签: 单片机 单片机(Microcontrollers,亦称MCU)包括了CPU.随机存储器RAM.只读存储器ROM.多种I/O口和中断系统.定时器/计数器等功能集成到一块硅片上构成的一个小而完善的 ...
- 红外测距模块工作原理_共享单车里的通讯模块,工作原理是啥呢?
现在我们所看到了共享单车除了小黄车(OFO)没有配备GPS智能锁外,其他品牌的共享单车都有安装,那么这么高科技的东西具体是怎么工作的呢?下面由我给大家讲解下其中的奥秘. 其实这个东西也谈不上太多高科技 ...
- 智能手环功能模块设计_基于51单片机的智能手环蓝牙模块设计
龙源期刊网 http://www.qikan.com.cn 基于 51 单片机的智能手环蓝牙模块设计 作者:王烈进 王游司 陈洪燕 孙超 卢宇 来源:<电脑知识与技术> 2018 年第 2 ...
- 智能窗帘研究制作_基于51单片机的智能窗帘的研究与设计.doc
基于51单片机的智能窗帘的研究与设计 第 PAGE \* Arabic \* MERGEFORMAT 24 页第 PAGE \* Arabic \* MERGEFORMAT 24 页 目录 TOC \ ...
- 51单片机计算器_基于51单片机的倒计时温度检测报警器
基于51单片机的倒计时温度检测报警器 学习单片机断断续续半年了,在学长学姐的教学帮助下,完成了51单片机的入门学习,开始实践做项目,在一周时间内设计和制作出个人项目.起初,我设计和选择的是12864显 ...
- stc89c51单片机音乐盒系统设计_基于51单片机音乐盒课程设计1.doc
基于51单片机音乐盒课程设计1 课程名称: 微机原理课程设计 题 目: 基于单片机的音乐盒设计 摘要 随着人类社会的发展,人们对视觉.听觉方面的享受提出了越来越高的要求.小小的音乐盒可以给人们带来美好 ...
- 基于arduino的校园灯光控制_基于51单片机智能灯光控制系统(人体感应)
硬件组成: 由51单片机最小系统.红外热释电模块.光强度检测模块.继电器灯光控制模块和电源模块组成. 功能介绍: 1.单片机AT89S51.AT89S52.AT89C51.AT89C52.STC89C ...
- 单片机多功能电子琴课设_基于51单片机的多功能电子琴设计.doc
基于51单片机的多功能电子琴设计 基于51单片机的多功能电子琴的设计 摘要 电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器.它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编 ...
- 基于单片机的超市储物柜设计_基于51单片机对电子储物柜系统的设计
电路描述: 安全是我们日常的生活中最关心的问题. 每个人都觉得安全问题是非常至关重要的,在家里的门和安全,可以尽可能多的安全. 为了对于门访问安全 因此,我们打算通过引进一个电子密码锁系统,该系统包括 ...
- 51单片机 外部时钟_基于51单片机的LCD12864显示模拟时钟
今天要分享的仿真和程序是基于51单片机的LCD12864显示模拟时钟.公众号之前也分享过数字时钟,但是那些时钟都是采用数字显示的形式来显示时间,而今天分享一个采用LCD12864显示的模拟指针式时钟. ...
最新文章
- 抢红包要当心!钱盾反诈平台专家揭秘3类假红包骗局
- python是大学必修课吗-好消息!今天,审计、会计、税务、财务主管彻底沸腾了……...
- 漫谈C++:良好的编程习惯与编程要点
- 【算法分析与设计】计数排序
- 依赖注入例子php,依赖注入小例子
- RN和React路由详解及对比
- LeetCode 题练习记录
- 2D转换之旋转rotate(CSS3)
- 12.软件架构设计:大型网站技术架构与业务架构融合之道 --- CAP理论
- 硅谷课堂 13_公众号点播课程和直播管理
- 如何批量PDF转换JPG
- 音频怎么转换mp3格式?
- 浅谈领导力理解和体会
- php file get contents 总是超时,file_get_contents超时问题及解决方案
- AARRR模型(模型数据指标详解)
- 推荐几个短网址赚钱站
- 斯坦福大学校工程学院计算机,加州大学洛杉矶分校:受大脑启发的计算机视觉的对象发现和检测...
- matlab求解外推法和黄金分割法
- EMC设计理论通俗非科班学习笔记(完结)
- Android 自定义计时器