C语言遥控器程序,红外遥控
红外遥控器的发送装置和接收装置以及关于载波等一些原理大家可参看《手把手教你学51单片机》文档第16章知识内容,这里笔者只简单说明如何运用该模块并讲解代码的实现。
1.接收装置
HS0038这个元器件是用来接收红外遥控器发送来的信号做处理的,我们知道红外遥控器有21个按键,按下不同的按键,HS0038的信号引脚就会产生不同的时序,我们解析这些时序就可以判断按下的是什么按键。
比如我们用红外遥控器对准开发板上的接收装置HS0038,按下左上角的按键,那么HS0038的信号引脚就会产生一系列的变化如下:
首先是引导码,也就是一开始HS0038信号引脚会拉低信号线9ms左右的时间,然后是4.5ms的高电平时间,这段时序叫做发送端的引导码。
接着HS0038信号引脚会接收到用户码,只要信号线被拉低560us之后又拉高560us的时间,那么我们就认为这段时序是这种字节的一位,为0。
如果信号线被拉低560us之后又拉高1.68ms的时间,那么这段时序就是代表1。
比如信号线的时序如下
这样我们就知道接收到的字节为0x0C。
0x0C是某个按键所发送的字节,我们要知道按键的发送有5个阶段,分别为:引导码、用户码、用户反码、按键数据码、按键数据反码。
引导码已经说明过它的时序。
然后是用户码,用户码一直是0x00,也就是HS0038信号引脚是如下所示
接着用户反码就是0xFF。
按键数据码如果是0x0C,那么按键数据反码就是0xF3。
0x0C:00001100
0xF3:11110011
2.代码的实现原理
在第八章第11讲我们已经学过输入捕获,那么解析红外遥控就是使用这种方式,看到宋老师的例程lesson16_1里面的函数“void EXINT1_ISR() interrupt 2”。
在main.c中“InitInfrared();”就是为输入捕获做好设置,只要信号引脚被拉低就会进入外部中断函数。
当我们在遥控器上按下某个按键时,信号引脚首先接收到的是引导码,也就是9ms的低电平+4.5ms的高电平,由于一开始接收到低电平所以就会进入“void EXINT1_ISR() interrupt 2”函数,函数里就是一关关的判断是否一开始接收到9ms低电平,如果是,那么又接着判断后面是不是产生4.5ms左右的高电平,如果是,接着就是进行判断后面的用户码、用户反码、按键数据码、按键数据反码的字节,并存入全局变量的数组ircode[4]中。
C语言遥控器程序,红外遥控相关推荐
- 红外线遥控c语言程序,红外遥控的C程序
红外遥控在生产和生活中应用越来越广泛,不同的红外遥控芯片有不同的发码协议,但一般都是由引导码,系统码,键码三部分组成. 引导码是告诉接收机准备接收红外遥控码.系统码是识别码,不同的遥控芯片有不同的误别 ...
- 红外遥控C语言程序设计,光电红外遥控开关设计(光电系统课程设计)【PCB图仿真图单片机C语言分工心得】..doc...
光电红外遥控开关设计(光电系统课程设计)[PCB图仿真图单片机C语言分工心得]. 本科生课程论文 论文题目光电红外遥控开关设计课程名称光电系统设计学生姓名学号所在学院所在班级指导教师 目 录 摘要3 ...
- C语言遥控器程序,电视遥控器C51解码程序及其控制电动遥控玩具车举例.doc
电视遥控器的C51解码程序及其控制的电动遥控玩具车举例 彩色电视红外线遥控器小巧方便,抗干扰能力强,遥控距离远,得到广泛应用.其基本原理是通过键盘产生编码,对38K载波调制,经放大,形成一串串脉冲由红 ...
- C语言红外模块程序,C语言写的红外遥控解码程序
#include "STC89C51RC.H" sbit DQ = P4^3; sbit SPK = P1^0; #include #define seg1 XBYTE[0xffe ...
- C语言遥控器程序,学习型遥控器C语言.doc
/*********************************************************************/ // remote.c // 学习型遥控器 // 使用k ...
- 红外避障模块c语言编写程序,红外避障模块(红外对管)51单片机驱动源程序
/****************************************** 传感器触发测试 单片机:STC89C52 波特率:9600 ************************** ...
- 嵌入式 STM32 红外遥控
目录 红外遥控 NEC码的位定义 硬件设计 软件设计 源码程序 红外遥控 红外遥控是一种无线.非接触控制技术,具有抗干扰能力强,信息传输可靠,功耗低,成本低,容易实现等显著的特点,被诸多电子设备特别是 ...
- 步进电机红外遥控C语言程序,单片机红外遥控+步进电机+1602液晶显示c语言源程序...
这是我做的红外遥控控制的1602显示转速和转向的步进电机c语言原程序,已经调试成功!有些模块是以前做其他实验时做的,现在是直接调用的,包括1602液晶显示技术,TC9012红外解码,然后就是四相步进电 ...
- 万能遥控程序c语言,51单片机万能红外遥控解码程序
51hei单片机论坛里流传的遥控解码程序现在都弱爆了根本解不了现在的遥控自己写个万能红外遥控解码 本程序中需要用的头文件下载:http://www.51hei.com/mcu/2564.html // ...
最新文章
- hexo博客更新主题后上传Git操作
- 30 Days of .NET [Windows Mobile Applications] - Day 01: Minutes to Midnight Countdown(午夜倒数器)...
- asn1 pem pfx格式证书_Springboot中详细配置SSL证书
- MySql中添加用户/删除用户
- 赋能‘元宇宙’,这些企业强势破圈 | 2021AI 最佳成长榜
- 如何证明CPU的乱序执行(Out-of-order Execution)?
- JSP手机商城系统设计网站
- 2010-11-23 network virtualization papers(2)
- 阶段5 3.微服务项目【学成在线】_day04 页面静态化_09-freemarker基础-内建函数
- 虚拟ip(VIP)实现原理
- matlab 汽车理论,汽车理论matlab作业
- 经典RPG游戏Crypto Sword Magic
- 未来计算机的硬件发展趋势,整理计算机硬件发展史以及计算机硬件发展趋势
- TMS320C6678开发笔记---IBL编译与分析5
- 2016 校园招聘求职经历(一)
- vue中将UTC时间转换为标准格式时间--十分好用
- 非常优秀在线EXCEL编辑器-handsontable
- VSCODE的底部状态栏为什么是紫色
- 千锋教育 逻辑思维课程笔记
- linux 网桥搭建