教学课件单片机创新开发教程ch21 使用红外遥控.pptx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《教学课件单片机创新开发教程ch21 使用红外遥控.pptx》由会员分享,可在线阅读,更多相关《教学课件单片机创新开发教程ch21 使用红外遥控.pptx(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、教材配套PPT正版可修改课件教学课件单片机创新开发教程ch21 使用红外遥控单片机创新开发教程-基于STC8吴险峰第21章 使用红外遥控红外线遥控是目前使用最广泛的一种通信和遥控手段。本章通过红外线发射接收模块的程序编写,熟悉整个发射接收流程。1.情境导入2.学习目标3.相关知识4.项目设计5.项目实现6.知识拓展7.强化练习21.1情境导入小白:“单片机主要功能是控制,但是有线连接还是不方便,是不是可以无线遥控?”小牛:“是的。单片机有多种无线连接模式,其中最方便实用的就是红外遥控。技术也很成熟,家电控制基本都是采用红外遥控。”小白:“嗯,那请给我讲讲如何进行红外遥控吧”。21.2 学习目标
2、【知识目标】1.学习红外线的理论知识。2.学习红外遥控的图形化指令。3.理解红外NEC协议。4.理解红外信号调制。【能力目标】1.能进行红外发射编程。2.会进行红外接收编程。21.3 相关知识l21.3.1.红外线l21.3.2.红外遥控l21.3.3.图形化指令l21.3.4.红外NEC协议l21.3.5.红外信号调制21.3 相关知识21.3.1.红外线在光谱中波长自760nm至400m的电磁波称为红外线,它是一种不可见光。自然界中的一切物体,只要它的温度高于绝对零度(-273)就存在分子和原子的无规则运动,其表面就会不停地辐射红外线。当然,虽然是都辐射红外线,但是不同的物体辐射的红外强度
3、是不一样的,而我们正是利用了这一点把红外技术应用到我们实际开发中。常用的红外设备例子有:红外理疗机使用远红外线的热效应治疗红外夜视仪探测人体热量,红外线成像红外测距仪以红外线作为载波的一种测量距离的精密仪器红外遥控器-以红外线作为载波的一种无线通信设备21.3 相关知识21.3.2.红外遥控红外线遥控是目前使用最广泛的一种通信和遥控手段。红外线遥控体积小、功耗低、功能强、成本低。目前几乎所有的视频和音频设备都可以通过红外遥控的方式进行遥控,在家用电器中,彩电、录像机,录音机、音响设备、空调机以及玩具等产品中应用非常广泛。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可
4、靠而且能有效地隔离电气干扰。红外遥控包括红外发射模块和红外接收模块。(1)红外发射由红外发射电路中的红外发光二极管完成,通常情况下为了提高抗干扰能力与降低电源消耗,我们需要将遥控信号(二进制脉冲码)调制发送至红外二极管,再由二极管转换为红外信号发送出去。红外发射管通常使用砷化镓(GaAs)、砷铝化镓(GaAlAs)等材料,采用全透明或浅蓝色、黑色的树脂封装,产生的光波波长为940nm左右,为红外光。如图21-1(a)所示。21.3 相关知识21.3.2.红外遥控(2)红外接收模块。其内部含有高频的滤波电路,专门用来滤除红外线合成信号的载波信号(38KH),并送出接收到的信号。当红外线合成信号进
5、入红外接收模块,在其输出端便可以得到原先发射器发出的数字编码,只要经过单片机解码程序进行解码,便可以得知按下了哪一个按键,而做出相应的控制处理,完成红外遥控的动作。成品红外接收头(见图21-2(b)的封装大致有两种:一种采用铁皮屏蔽;一种是塑料封装。均有三只引脚,即电源正(VCC)、电源负(GND)和数据输出(OUT)。(b)红外接收头(a)红外发射管21.3 相关知识21.3.3.图形化指令常用指令图形化指令实例1.红外接收初始化2.红外接收回调函数3.判断是否接收到红外信号4.获取红外协议的用户码5.获取红外协议的键码红外发送图形化指令如图21-2所示。其中用户码和键码对应NEC协议。红外
6、接收图形化指令如表21-1所示,单片机用内置的红外代码库进行解码。红外代码库默认使用红外NEC协议。21.3 相关知识21.3.4.红外NEC协议图形化指令对红外协议进行了封装,为了方便大家能理解底层代码,我们将红外NEC协议做一些基础描述,如图21-3所示。NEC协议的数据格式是:引导码,用户码,用户码,数据码,数据反码,共4个字节32位,最后加一个停止位,停止位主要起隔离作用,一般不会进行判断。1.各种编码的作用(1)引导码:就是一把钥匙,单片机只有检测到了引导码出现了才确认接收后面的数据,保证数据接收的正确性。(2)用户码:为了区分各红外遥控设备,使之不会互相干扰。第一个字节是用户码,第
7、二个字节可能也是用户码,或者是用户码的反码,具体由生产商决定。(3)数据码:指用户实际需要的编码,按下不同的键产生不同的数据码,也就是我们指令里的键码,占第三个字节。(4)数据反码:用于对数据的纠错,提高接收数据的准确性,占第四个字节。单片机编程主要针对的就是数据码。2.NEC协议表示数据的方式(1)引导码:9ms的高电平+4.5ms低电平=13.5ms。(2)比特“0”:0.56ms的高电平+0.565的低电平=1.125ms。(3)比特“1”:0.56ms的高电平+1.685ms的低电平=2.245ms。21.3 相关知识21.3.5.红外信号调制无线和有线信号传输的一大区别就是无线信号需
8、要在对应电磁波上传输,这就需要将信号调制到对应的载波频率上。红外NEC协议组成的32位二进制码经38kHz的载频进行调制后,方便红外接收头能顺利接收解调(红外一体化接收头的最佳接收频段为38kHz左右)。这里要理解一个重要概念。很多资料将红外NEC协议实现也称为调制,容易和传输的无线信号调制混淆。红外NEC协议实现是对信号源调制,而红外传输实现是传输信道调制。为避免概念混淆,建议将前者直接称为信号编码,不要用调制来定义。无线信号调制和解调的理论对入门者其实非常深奥,这里不展开论述。就编程来说,STC8单片机自带PWM(脉宽调制)功能,非常方便实现调制功能。如果是经典的51单片机,需要用软件编写
9、调制功能,程序相对复杂一些。21.4 项目设计红外发射电路如图21-4所示,连在有P20-PWM1引脚上。红外接收电路如图21-5所示,红外一体化探头自动接收信号并解调红外NEC码,然后通过P36-INT2解码输入单片机。21.4 项目设计任务1独立按键KEY1按下发送红外数据调用函数代码。/引入头文件#includelib/ir.h/引脚定义#defineIR_SEND_PINP2_0/红外发射引脚#defineIR_SEND_PIN_OUTP2M1&=0 x01;P2M0|=0 x01;/P20推挽输出#defineIR_SEND_PIN_INITP2M1|=0 x01;P2M0&=0 x
10、01;/P20高阻输入#defineIR_SEND_PWMPWM1P_P20voidir_send_nec(uint8address,uint8command);/红外发射21.4 项目设计任务1独立按键KEY1按下发送红外数据示例代码1。#definePWM_DUTY_MAX1000/PWM最大占空比值#defineIR_SEND_PINP2_0#defineIR_SEND_PIN_OUTP2M1&=0 x01;P2M0|=0 x01;/P2_0 x01推挽输出#defineIR_SEND_PIN_INITP2M1|=0 x01;P2M0&=0 x01;/P2_0 x01高阻输入#defin
11、eIR_SEND_PWMPWM1P_P20#includeuint32sys_clk=24000000;/系统时钟确认#includelib/hc595.h#includelib/rgb.h#includelib/delay.h#includelib/ir.hvoidsetup()twen_board_init();/天问51初始化P3M1|=0 x04;P3M0&=0 x04;/高阻输入voidloop()if(P3_2=0)ir_send_nec(1,1);/红外发射NEC码voidmain(void)setup();while(1)loop();21.4 项目设计任务2数码管显示接收到的
12、红外键码1.图形化编程数码管显示接收到的红外键码的图形化编程如图21-7所示。显然解码要复杂一些。21.4 项目设计任务2数码管显示接收到的红外键码2.C语言代码(1)调用函数代码。/引入头文件#includelib/ir.h/引脚定义#defineIR_REC_PINP3_6#defineIR_REC_PIN_MODEP3M1|=0 x40;P3M0&=0 x40;/P36输入(2)示例代码。#defineNIXIETUBE_PORTP6#defineNIXIETUBE_PORT_MODEP6M1=0 x00;P6M0=0 xff;/推挽输出#defineNIXIETUBE_LEFT_COL
13、ON_PINP0_7/左侧数码管冒号#defineNIXIETUBE_LEFT_COLON_PIN_MODEP0M1&=0 x80;P0M0|=0 x80;/推挽输出#defineNIXIETUBE_RIGHT_COLON_PINP2_1/右侧数码管冒号#defineNIXIETUBE_RIGHT_COLON_PIN_MODEP2M1&=0 x02;P2M0|=0 x02;/推挽输出#definePWM_DUTY_MAX1000/PWM最大占空比值#defineIR_REC_PINP3_6#defineIR_REC_PIN_MODEP3M1|=0 x40;P3M0&=0 x40;/P3_6高阻
14、输入21.4 项目设计任务2数码管显示接收到的红外键码#includeuint32sys_clk=24000000;/系统时钟确认#includelib/hc595.h#includelib/rgb.h#includelib/delay.h#includelib/led8.h#includelib/nixietube.h#includelib/ir.huint8B_100us=0;voidTimer0Init(void)/100微秒24.000MHzTMOD|=0 x00;/模式0TL0=0 x37;/设定定时初值TH0=0 xff;/设定定时初值voidT_IRQ0(void)interru
15、pt1using1ir_rec_callback();/红外接收回调函数B_100us=B_100us+1;voidsetup()twen_board_init();/天问51初始化led8_disable();/关闭8个LED流水灯电源nix_init();/数码管初始化ir_rx_init();/红外接收初始化Timer0Init();EA=1;/控制总中断ET0=1;/控制定时器中断TR0=1;/启动定时器voidloop()if(B_100us=10)B_100us=0;nix_scan_callback();/数码管扫描回调函数if(ir_rx_available()nix_disp
16、lay_num(ir_rx_ircode();/数码管显示整数21.4 项目设计任务2数码管显示接收到的红外键码红外发射和接收的头文件ir.h包含了红外协议说明。其实I2C、SPI、和红外的图形化模块编程都不复杂,因为相关协议和寄存器设置全部都封装在底层了。大家只要将协议时序图和代码对照学习,就很容易理解。对于初学者来说,能理解会调用库函数就可以了。等水平和经验积累多了,可以考虑自己建库。21.5 项目实现21.5.1开发板功能演示开发板任务演示步骤的和前章基本类似,为避免重复略去。21.5 项目实现21.5.2.Proteus仿真实例Proteus提供了多单片机同时仿真功能。所以我们可以用一
17、个单片机实现任务提供了多单片机同时仿真功能。所以我们可以用一个单片机实现任务1红外发射,另外一个单片机实现任务红外发射,另外一个单片机实现任务2红外解码接红外解码接收。前面第收。前面第11章介绍章介绍PWM功能时我们说过,功能时我们说过,STC8的的PWM和和Proteus的的STC15单片机的单片机的PWM硬件不一样,所以任务硬件不一样,所以任务1的利用的利用PWM实现红外发射的代码不能在实现红外发射的代码不能在Proteus中的中的STC15使用。本例中我们用经典使用。本例中我们用经典8051单片机,通过软件编程方式产生单片机,通过软件编程方式产生PWM信号来信号来调制红外信号。这样大家对
18、于调制红外信号。这样大家对于PWM的知识就有了更进一步了解。的知识就有了更进一步了解。1.绘制绘制仿真图仿真图红外发射仿真电路图如图红外发射仿真电路图如图21-8所示,我们用一个经典所示,我们用一个经典8051(AT89C51)作为发射控制单元,发射按键我们没有采用独立按键,)作为发射控制单元,发射按键我们没有采用独立按键,而是用可交互的计算器键盘(而是用可交互的计算器键盘(KEYPAD-CALCULATOR),原因是这个键盘的按键比较多,方便实验演示。),原因是这个键盘的按键比较多,方便实验演示。发射端的代码就主要是利用经典发射端的代码就主要是利用经典51的定时器功能产生的定时器功能产生PW
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件单片机创新开发教程ch21 使用红外遥控 教学 课件 单片机 创新 开发 教程 ch21 使用 红外 遥控
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内