目的:利用遥控器与单片机通信,并将遥控器按键所对应的编码在数码管上以十六进制的形式显示出来。

开发板红外传感器数据输出引脚对应的IO口为P3^2,该IO口同时为外部中断引脚,因此程序中采用下降沿触发的外部中断来判断是否接收到起始码。

51单片机中断系统的相关内容:https://blog.csdn.net/cax1165/article/details/86633086

数码管的相关内容:https://blog.csdn.net/cax1165/article/details/86557551

开发板红外模块电路图如下:

说明:程序中大量使用了如下代码片段:

err=***;
while((irin==*)&&(err>0))
{delay(*);err--;
}

该代码段起到延时作用(在位定义的时序图中,需要比较严格地控制高/低电平的持续时间,该代码段可以利用延时渡过某一电平持续时间,非常准确的停留在下一个电平来临的时候),并通过err递减的方式避免出现错误导致while语句死循环。

#include<reg52.h>
#define uc unsigned char
#define ui unsigned int
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
sbit irin=P3^2;uc code x[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0X76};//0x76表示H,为十六进制的标志符号
uc dig[8],irve[4];
uc t;void delay(ui i)//延时i*10微秒
{while(i--);
}void digdisplay()
{uc i;for(i=1;i<=3;i++){switch(i){case(1):LSA=0;LSB=0;LSC=0;break;case(2):LSA=1;LSB=0;LSC=0;break;case(3):LSA=0;LSB=1;LSC=0;break;}P0=dig[i];delay(100);P0=0x00;}
}void irinit()
{IT0=1;EX0=1;EA=1;irin=1;
}void Ir () interrupt 0
{uc i,j;ui err;t=0;delay(700);if(irin==0){err=1000;while((irin==0)&&(err>0)){delay(1);err--;}if(irin==1){err=500;while((irin==1)&&(err>0)){delay(1);err--;}for(i=1;i<=4;i++){for(j=1;j<=8;j++){err=60;while((irin==0)&&(err>0)){delay(1);err--;}err=500;while((irin==1)&&(err>0)){delay(10);t++;err--;if(t>30){return;}}irve[i]>>=1;if(t>8){irve[i]|=0x80;}t=0;}}}if(irve[3]!=irve[4]) return;}
}void main()
{irinit();while(1){dig[1]=x[16];dig[2]=x[irve[3]%16];dig[3]=x[irve[3]/16];digdisplay();}
}

51单片机实验14:红外通信模块应用相关推荐

  1. 51单片机实验——LED小灯的操作(一)

    目录 引言 led模块原理图解析 led小灯的操作 1.点亮led小灯 位操作法 总线操作法 2.闪烁led小灯 位操作法 总线操作法 3.led流水灯 位操作法 总线操作法 总线操作-数组循环遍历法 ...

  2. 51单片机tea5767收音机 红外遥控 自动搜台 存台 DIY

    转自:https://www.cnblogs.com/ningci/p/5464679.html 日向宁次 博客园 首页 新闻 新随笔 联系 管理 订阅 随笔- 55  文章- 0  评论- 1  5 ...

  3. 红外报警c语言,基于51单片机的人体红外报警器程序设计

    //51单片机简人体红外报警器设计,手动按键控制实现紧急报警.布防.撤防.关闭报警)// #include #define uchar unsigned char #define uint  unsi ...

  4. 23、基于51单片机温控风扇红外遥控智能温度控制系统设计

    毕设帮助.开题指导.技术解答(有偿)见文末. 目录 摘要 一.硬件方案 二.设计功能 三.实物图 四.原理图 五.PCB图 六.Proteus仿真 七.程序源码 八.资料包括 摘要 本设计为一种温控风 ...

  5. 基于51单片机的人体红外探测防盗报警

    资料编号:128  下面是相关功能视频演示: 128-基于51单片机的人体红外探测防盗报警(仿真+源码+全套资料) 功能说明: 1.按下紧急报警按键,紧急报警灯闪烁,蜂鸣器报警 2.按下布防按键,布防 ...

  6. 51单片机实验软件proteus出现错误集锦

    51单片机实验软件proteus出现错误集锦 错误一:安装KELI和proteus后,点击仿真但是出现下面错误. 错误二:点击仿真后,源代码本来有程序后面变空白,或者出不来这个调试窗口. 错误一:安装 ...

  7. 基于51单片机的人体红外探测防盗报警(仿真+源码+全套资料)

     资料编号:128 功能说明: 1.按下紧急报警按键,紧急报警灯闪烁,蜂鸣器报警 2.按下布防按键,布防指示灯开始闪烁,闪烁大约30秒,保持亮的状态,进入布防模式 3.按下取消报警/布防按键,取消布防 ...

  8. 51单片机实验 LED半秒闪烁 定时器0方式2 中断实现

    51单片机实验 LED半秒闪烁 定时器0方式2 中断实现 实验目的: P1.0接一个发光管,实现亮半秒灭半秒, 要求使用定时器0工作方式2,中断实现. C语言代码: #include "at ...

  9. 51单片机小项目--红外巡线小车

    这次项目要求我们使用51单片机,实现红外循迹,超声波避障的功能. 我将这个几个实现的任务一步步分解开来,首先要然小车动起来,需要模块是需要电机和定时器,我们那时候用到小黄电机,驱动是用的L298N.然 ...

最新文章

  1. 人脸识别落地开花 相关标准不可或缺
  2. python写入csv文件的几种方法
  3. matplotlib 制作不等间距直方图
  4. 跨域解决方案之CORS
  5. command not found: django-admin.py
  6. 1 张图秒懂 Nova 16 种操作 - 每天5分钟玩转 OpenStack(44)
  7. linux spi驱动分析 三,Linux下SPI驱动分析
  8. 信息安全工程师笔记-入侵检测技术原理与应用
  9. java 获取web目录结构_Intellij Idea Javaweb 目录结构及获取项目内资源
  10. Spring MVC 安全示例
  11. msp单片机UCS配置
  12. Python Logging Handler
  13. PAT1004. 成绩排名
  14. AcWing 860. 染色法判定二分图(染色法)
  15. 在苹果mac中如何使用 Word 画底线、直线、虚线?
  16. 系统架构——从Memcache单点说起
  17. Linux之镜像源篇
  18. html语言ppt,htmlppt课件
  19. cad画钟表_coreldraw怎么画钟表?coreldraw画钟表教程
  20. Android Apk编译的apk安装失败解决

热门文章

  1. 自学笔记十四:Matlab浮点型:创建和转换、取值范围、运算和精度问题
  2. Vue3(撩课学院)笔记09-axios简介,发起get请求的两种方式,发起带参的get及post请求,发起并发请求,并发请求结果将数组展开,axios全局配置,axios配置及封装,请求和响应拦截
  3. untitled在matlab,用matlab做演化博弈分析,总是出错,求帮助Untitled2 错误使用 nargin...
  4. c语言整数各位数字求和
  5. 网络大学统考计算机是不是文管二级,河南省大学计算机等级考试选择题(文管二级)...
  6. 精通Flash 8中文版视频教程
  7. Android PMS运行规则
  8. 上周热点回顾(3.7-3.13)
  9. java开发视频服务器
  10. Geany编辑器win7环境下配置Python编程环境