红外遥控解码单片机课程设计报告
- 格式:doc
- 大小:1.12 MB
- 文档页数:14
第1篇一、实验目的本次实验旨在通过搭建红外遥控系统,了解红外遥控的基本原理,掌握红外遥控信号的编码和解码方法,并利用单片机实现对红外遥控信号的解码,实现对红外遥控器的控制。
二、实验原理红外遥控技术是一种无线通信技术,通过发射端发送特定编码的红外信号,接收端接收该信号并进行解码,从而实现对电器的控制。
红外遥控系统主要由发射端和接收端两部分组成。
1. 发射端:由按键矩阵、编码调制电路和红外发射器组成。
按键矩阵根据按键的不同产生不同的编码信号,编码调制电路将这些信号调制在38kHz的载波上,红外发射器将调制后的信号发射出去。
2. 接收端:由红外接收器、前置放大电路、解调电路和指令信号检出电路组成。
红外接收器接收发射端发射的红外信号,前置放大电路对信号进行放大,解调电路将38kHz的载波信号去除,指令信号检出电路从解调后的信号中提取出指令信号。
三、实验设备1. 红外遥控发射器2. 红外接收模块3. 单片机开发板4. 连接线5. 电源6. 红外遥控解码程序四、实验步骤1. 搭建红外遥控系统:将红外接收模块连接到单片机开发板的相应引脚上,确保连接正确无误。
2. 编写红外遥控解码程序:根据红外遥控协议,编写解码程序,实现对红外信号的解码。
3. 程序烧录与调试:将解码程序烧录到单片机中,连接电源,进行程序调试。
4. 测试与验证:使用红外遥控器对单片机进行控制,观察单片机是否能够正确解码红外信号,并实现相应的控制功能。
五、实验结果与分析1. 红外遥控系统搭建成功:通过连接红外接收模块和单片机开发板,成功搭建了红外遥控系统。
2. 解码程序编写与调试:根据红外遥控协议,编写解码程序,实现对红外信号的解码。
在调试过程中,通过观察单片机的输出,验证了程序的正确性。
3. 测试与验证:使用红外遥控器对单片机进行控制,观察单片机是否能够正确解码红外信号,并实现相应的控制功能。
实验结果表明,单片机能够成功解码红外信号,并实现红外遥控器的控制功能。
单片机课程设计课题名称:基于单片机的多功能红外遥控设计使用仪器及编号: Proteus7.5仿真软件【摘要】本课题将通过Proteus软件来绘制原理图,然后设计一个红外遥控器:原理图分为两个部分,发送数据方和接收数据方,其间的硬件连接方式为无线的红外遥控功能,利用红外遥控功能需要对数据进行编码和解码。
通过按不同的按键来使蜂鸣器产生不同的音调,另外有播放音乐的功能;并且还可以控制DA转换电路产生方波,同时可以改变它的频率。
本次课程设计的主要目的是为了锻炼学生独立思考、合作解决问题以及动手操作能力;也旨在对本门课程的巩固与提高。
这次设计的任务是能掌握单片机电路设计的基本方法以及能正确的使用仿真软件对单片机线路进行调试。
本设计是由硬件单片机和软件汇编语言进行结合产生的一个实际的产品,从教学的要求上实现了从理论到实践的过程。
【关键词】:单片机、红外遥控目录一、绪论 (1)1.1红外遥控背景及目的 (1)1.2.国内外研究状况 (2)二、课程设计的目的............................................................. . (2)三、课程设计需要的元器件清单 (3)四、51单片机原理介绍 (3)4.1.ATB8C51单片机简介 (3)4.2.时钟电路 (5)4.3.复位电路 (6)五、红外遥控原理及简介 (6)5.1..红外遥控原理 (6)5.2.数据格式................................................................................................. . (7)5.3.编码与解码 (7)六、软件设计 (8)6.1.程序流程图................................................................. .. (8)6.2Proteus仿真电路图 (10)6.3仿真结果及硬件实现的功能............................................ . (11)七、设计遇到的问题及解决方法 (12)八、设计的总结、改进意见与展望........................................................... (12)九、心得体会 (13)十、参考文献......................................................................................... . (13)十一、附件:程序清单 (14)11.1红外编码程序 (14)11.2红外解码程序 (18)11.3针对遥控器的解码......................................................... (29)一、绪论1.1 红外遥控背景及目的遥控技术发展只有几十年的历史:本世纪20年代,才刚刚出现无线电遥控的雏形。
单片机STM32F103C8T6的红外遥控器解码系统设计一、本文概述本文旨在详细阐述基于STM32F103C8T6单片机的红外遥控器解码系统的设计和实现过程。
随着科技的不断进步和智能化设备的普及,红外遥控器作为一种常见的遥控设备,已经广泛应用于家电、安防、玩具等多个领域。
然而,红外遥控器发出的红外信号往往需要通过解码器才能被设备正确识别和执行,因此,设计一款高效、稳定、可靠的红外遥控器解码系统具有重要意义。
本文将首先介绍红外遥控器的基本原理和信号特点,然后详细阐述STM32F103C8T6单片机的性能特点和在红外遥控器解码系统中的应用优势。
接着,将详细介绍红外遥控器解码系统的硬件设计,包括红外接收头的选择、电路设计和PCB制作等。
在软件设计部分,将详细阐述如何通过STM32F103C8T6单片机的编程实现红外信号的接收、解码和处理,以及如何将解码后的数据通过串口或其他通信方式发送给主控制器。
本文还将对红外遥控器解码系统的性能进行测试和分析,包括信号接收距离、解码速度和稳定性等方面的测试。
将总结本文的主要工作和创新点,并对未来的研究方向进行展望。
通过本文的研究和实现,旨在为红外遥控器解码系统的设计提供一种新的思路和方法,同时也为相关领域的研究人员提供有益的参考和借鉴。
二、红外遥控器基础知识红外遥控器是一种常见的无线遥控设备,它利用红外光作为信息载体,通过发射和接收红外光信号实现对设备的远程控制。
这种遥控方式因其简单、低成本和无需视线连接等优点,在各类消费电子产品中得到了广泛应用,如电视机、空调、音响等。
红外遥控器的工作原理主要基于红外辐射和光电器件的检测。
遥控器内部通常包含一个或多个红外发射管,当按下按键时,发射管会发射出特定频率和编码的红外光信号。
接收端则配备有红外接收头,该接收头内部有一个光敏元件(如硅光敏三极管或光敏二极管),用于检测红外光信号并将其转换为电信号。
为了区分不同的按键操作,红外遥控器通常采用特定的编码方式对按键信号进行编码。
单片机红外遥控实验报告【实验报告】单片机红外遥控摘要:本实验通过使用单片机和红外遥控器,实现了对电器设备的远程控制。
首先,介绍了红外遥控技术的原理和应用场景;接着,详细描述了实验所使用的硬件与软件配置;然后,阐述了实验的步骤和过程;最后,总结了实验结果与心得体会。
1. 简介红外遥控技术是一种基于红外线信号传输的无线控制技术,广泛应用于家电、汽车、医疗设备等领域。
它通过红外线发射器将指令信号转换为红外线信号,并通过红外线接收器接收并解码信号,从而实现对电器设备的远程控制。
2. 硬件配置本实验所使用的硬件配置包括单片机、红外发射模块、红外接收模块、继电器模块和电器设备。
其中,单片机作为控制中心,通过编程控制红外发射模块发射特定的红外信号,红外接收模块接收信号并解码,继电器模块实现对电器设备电源的切换。
3. 软件配置3.1 单片机编程使用C语言编写单片机的控制程序。
首先,通过引入相应的库函数,对单片机进行初始化配置。
然后,定义红外信号对应的按键码,并设置相应的工作模式。
最后,编写主循环程序,实现对红外发射模块的控制和对红外接收模块的解码处理。
3.2 红外遥控器配置在红外遥控器上配置对应的按键码与功能,将其与实验中的电器设备进行匹配。
通过学习功能,将红外遥控器上的按键码与相应操作绑定。
4. 实验步骤4.1 硬件连接将红外发射模块、红外接收模块和继电器模块连接到单片机的相应引脚上,并保证连接正确可靠。
4.2 单片机编程根据实验需求,编写单片机的控制程序,并将程序下载到单片机的存储芯片中。
4.3 红外遥控器学习使用红外遥控器学习功能,将红外遥控器上的按键码与需要控制的电器设备进行匹配。
4.4 实验执行先使用红外接收模块接收红外遥控器发送的信号,并解码得到相应的按键码。
然后,通过单片机的控制程序判断收到的按键码,并控制继电器模块对电器设备进行功率切换。
5. 实验结果经过实验,验证了红外遥控技术在远程控制电器设备中的有效性。
单片机课程设计课题名称:基于单片机的多功能红外遥控设计使用仪器及编号: Proteus7.5仿真软件【摘要】本课题将通过Proteus软件来绘制原理图,然后设计一个红外遥控器:原理图分为两个部分,发送数据方和接收数据方,其间的硬件连接方式为无线的红外遥控功能,利用红外遥控功能需要对数据进行编码和解码。
通过按不同的按键来使蜂鸣器产生不同的音调,另外有播放音乐的功能;并且还可以控制DA转换电路产生方波,同时可以改变它的频率。
本次课程设计的主要目的是为了锻炼学生独立思考、合作解决问题以及动手操作能力;也旨在对本门课程的巩固与提高。
这次设计的任务是能掌握单片机电路设计的基本方法以及能正确的使用仿真软件对单片机线路进行调试。
本设计是由硬件单片机和软件汇编语言进行结合产生的一个实际的产品,从教学的要求上实现了从理论到实践的过程。
【关键词】:单片机、红外遥控目录一、绪论 (1)1.1红外遥控背景及目的 (1)1.2.国内外研究状况 (2)二、课程设计的目的............................................................. . (2)三、课程设计需要的元器件清单 (3)四、51单片机原理介绍 (3)4.1.ATB8C51单片机简介 (3)4.2.时钟电路 (5)4.3.复位电路 (6)五、红外遥控原理及简介 (6)5.1..红外遥控原理 (6)5.2.数据格式................................................................................................. . (7)5.3.编码与解码 (7)六、软件设计 (8)6.1.程序流程图................................................................. .. (8)6.2Proteus仿真电路图 (10)6.3仿真结果及硬件实现的功能............................................ . (11)七、设计遇到的问题及解决方法 (12)八、设计的总结、改进意见与展望........................................................... (12)九、心得体会 (13)十、参考文献......................................................................................... . (13)十一、附件:程序清单 (14)11.1红外编码程序 (14)11.2红外解码程序 (18)11.3针对遥控器的解码......................................................... (29)一、绪论1.1 红外遥控背景及目的遥控技术发展只有几十年的历史:本世纪20年代,才刚刚出现无线电遥控的雏形。
红外遥控解码课程设计一、课程目标知识目标:1. 学生能理解红外遥控器的基本原理,掌握红外编码和解码的基础知识。
2. 学生能描述红外信号的特性,了解红外通信在日常生活和科技领域的应用。
3. 学生能解释不同品牌和型号遥控器之间的红外信号差异。
技能目标:1. 学生能够使用红外接收器和发射器进行基本的数据传输实验。
2. 学生能够通过编程实现对红外信号的解码,并运用到实际控制中。
3. 学生能够设计并制作一个简单的红外遥控装置,实现对电器的开关控制。
情感态度价值观目标:1. 学生培养对电子技术和遥控技术的兴趣,激发创新意识和探索精神。
2. 学生通过实践活动,增强团队合作意识和解决问题的能力。
3. 学生认识到红外遥控技术在智能家居、物联网等领域的重要性,培养对科技发展的关注和责任感。
课程性质:本课程为信息技术与电子技术的跨学科综合实践活动,注重理论知识与实践操作的结合。
学生特点:学生处于初中年级,具备一定的物理知识和动手能力,对新鲜事物充满好奇心。
教学要求:结合学生的认知水平和动手能力,以实践为主,理论联系实际,培养学生的创新思维和实际操作能力。
在教学过程中,注重引导学生主动探究、合作交流,实现知识、技能和情感态度价值观的全面发展。
通过具体的学习成果,对教学设计和评估提供明确依据。
二、教学内容1. 红外遥控原理介绍:包括红外遥控器的工作原理、红外信号的发射与接收过程。
- 教材章节:《电子技术》第三章第三节“红外遥控技术”2. 红外编码和解码基础:学习红外信号的编码方式,如NEC编码,以及解码方法。
- 教材章节:《信息技术》第二章第五节“数字信号的编码与解码”3. 红外接收与发射器使用:介绍红外接收器、发射器的功能与使用方法,进行基础实验操作。
- 教材章节:《电子技术》第三章第四节“红外接收与发射器的应用”4. 红外信号编程解码:通过编程软件,实现对红外信号的捕捉、解析和运用。
- 教材章节:《信息技术》第四章第一节“编程基础与应用”5. 实践制作红外遥控装置:分组合作设计并制作一个简单的红外遥控装置,实现对电器的控制。
嵌入式系统试验报告1.红外遥控解码实验1.1 实验目的了解红外遥控编码并用单片机捕捉信号及解码熟悉LCD1602的驱动1.2 实验设备T1838一体化红外接收头DT9122D芯片制作89S511.3 实验内容红外一体化接收头接收到红外遥控发射器所发射的信号,并将此信号进行整形和反相送入单片机端口。
经过软件译码,将译码结果(按键代码)昂数码管显示。
1.4 实验预习要求遥控编码知识ME850单片机开发实验仪集成有一路一体化红外接收头,并配有红外发射器,能够做红外接收与解码实验了解简单的单片机的开发的环境要有一定的C语言基础1.5 实验原理所谓解码就是能用单片机把以不同宽度的脉冲区别开来,一种比较好思路就是计算两次下降沿间隔时间,当单片机外部中断1口有下降沿时中断一次,并启动定时器,定时器定50us,当下次下降沿到来时我们计算定时器中断的次数,这样我们就能很好的区分不同宽度的脉冲了。
1.6 实验步骤将JP21的8个短接子全部用短接帽短接,使DG0-DG7与P2端口接通将JP22的9个短接子全部用短睫毛短接,使A-DP与P0端口接通,VCC向数码管模块供电将JP10的短接子用短接帽短接,使红外接头U16的数据线与P3.2端口接通。
将JP24的短接子用短接帽短接,禁止LCD1602显示功能,否则数码管将不能正常显示。
第一次使用遥控器要去下电池盖下的隔离胶片。
1.7 实验电路原理分析ME850选用T1838一体化红外接收头,接受来自红外遥控器的红外遥控信号。
T1838集成红外接收二极管、放大、解调、整形等电路在同一封装上。
T1838负责红外遥控信号的解调,将调制在38KHZ上的红外脉冲信号解调并倒相输入到单片机的P3.2引脚,由单片机进行高电平与低电平宽度的测量T1838的输出端通过JP10与AT89S52的P3.2连接,既可以受用中断的方式也可以使用查询方式来编程1.8 实验参考程序分析#include<reg52.h>#define uint unsigned int#define uchar unsigned charsbit ir=P3^3;//红外端口sbit dm=P1^4;//数码管段码控制位sbit wm=P1^5;//数码管位码控制位sbit led_cs=P1^6;//LED控制位sbit rs=P3^5;//1602数据命令选择端sbit en=P3^4;//1602使能信号uchar num;uchar key_code=0;//遥控键值uchar new_code=0;//有无新按键uint buf_key_code=0;//键值暂存uchar key_bit_count=0;//键编码脉冲计数uint count=0;//定时中断次数计数uint buf_count=0;//定时中断计数暂存uchar common_code_count=0;//前导码脉冲计数uchar ir_status=0;//脉冲接收器所处的状态,0:无信号,1:系统码接收区,2:数据编码接收区uchar code table[]="EE01 DEMO:IR";uchar code table1[]="code:";uchar code table2[]={'0','1','2','3','4','5','6','7','8','9',};void delay_10us(unsigned char y)///延时子程序10us{unsigned char x;for(x=y;x>0;x--);}void delay_ms(uint z)//延时子程序1ms{uint x,y;for(x=z;x>0;x--)for(y=113;y>0;y--);}void init(void)/////初始化{ir=1; //红外端口写1led_cs=0; //关闭LEDEA=1; //开总中断TMOD=0x02; //定时器0,模式2,8位自动装载模式TH0=0Xd1; //定时50usTL0=0Xd1;IT1=1; //INT1下降沿触发ET0=1; //允许定时器中断EX1=1; //允许外部中断}/***********************************************定时器中断***********************************************/void time0() interrupt 1///定时器中断{count++;//定时器中断次数累加}/**********************************************外部中断,红外解码程序**********************************************/void int1() interrupt 2///外部中断{TR0=1;//开定时器中断if(count>12&&count<270)//如果信号合法,则放入buf_count,count清0,对下一个脉冲{buf_count=count;count=0;}delay_10us(10);//延时100us以消除下降沿跳变抖动if(ir==0)//INT1引脚稳定为低电平,则表法确实是信号,count重新计时,因上面延时了50us,故要补偿1次TO中断{count=2;}if(buf_count>12&&buf_count<270)//若收到的信号合法,则再进行信号分析{if(ir_status==0)//如果之前未收到引导码{if(buf_count>210&&buf_count<270)//判断是否引导码13.5ms{ir_status=1;//系统标记buf_count=0;//}}else if(ir_status==1)///收到引导码if(common_code_count>=25)//若收完26个脉冲{ir_status=2;//数据解码标记common_code_count=0;//系统码计算清零buf_count=0;//中断计数暂存清0}else if((buf_count>40&&buf_count<70)||(buf_count>12&&buf_count<32)){buf_count=0;common_code_count++;//每收到一个信号自加1}}else if(ir_status==2)//进入数据编码接收{if(key_bit_count<8)//收到数据少于8位,则将收到的数据写入buf_key_code {if(buf_count>40&&buf_count<70){buf_count=0;buf_key_code>>=1;buf_key_code|=0x80;//收到1key_bit_count++;//数据脉冲累加}else if(buf_count>12&&buf_count<32)//收到0 {buf_count=0;buf_key_code>>=1;//收到0key_bit_count++;}}else //若收完8位数据则做以下处理{ir_status=0;//接收状态返回到空闲key_code=buf_key_code;key_bit_count=0;buf_key_code=0;buf_count=0;TR0=0;new_code=1;}}}}1.9 实验结论和分析将上面的程序写入89S51单片机中,通电后,按压遥控器上0-9按键,则实验板上的数码管就显示出对应的按键值,同时解码成功后发出声音指示Welcome To Download !!!欢迎您的下载,资料仅供参考!。
第1篇一、实验目的1. 掌握红外遥控的基本原理和设计方法。
2. 了解红外遥控系统的组成和功能。
3. 学会使用红外遥控器件,实现基本的遥控功能。
4. 提高电子电路设计和编程能力。
二、实验原理红外遥控技术是一种通过红外线进行信号传输的控制技术。
它利用红外线作为载波,将控制信号(如按键信息)调制到红外线中,通过红外发射器发射出去,再由红外接收器接收并解调,最终实现对设备的控制。
三、实验器材1. 红外发射器2. 红外接收器3. 电脑4. 单片机(如STC89C52)5. 电阻、电容、二极管等电子元件6. 实验电路板7. 编程软件(如Keil)四、实验步骤1. 电路搭建:根据实验要求,搭建红外发射器和接收器的电路。
电路主要包括单片机、红外发射二极管、红外接收头、电阻、电容等元件。
2. 程序编写:使用编程软件编写单片机程序,实现红外遥控的基本功能。
程序主要包括以下部分:- 红外接收模块:读取红外接收头接收到的红外信号,并进行解调。
- 红外编码模块:将解调后的红外信号转换为对应的按键信息。
- 控制模块:根据按键信息,实现对设备的控制。
3. 实验测试:将编写好的程序烧录到单片机中,进行实验测试。
测试内容包括:- 红外发射器是否能够正常发射信号。
- 红外接收器是否能够正常接收并解调信号。
- 单片机是否能够正确识别按键信息,并实现对设备的控制。
4. 结果分析:根据实验结果,分析红外遥控系统的性能,如响应速度、控制距离等。
五、实验结果与分析1. 红外发射器测试:实验结果表明,红外发射器能够正常发射信号,且信号强度足够远距离传输。
2. 红外接收器测试:实验结果表明,红外接收器能够正常接收并解调信号,且解调准确率较高。
3. 单片机控制测试:实验结果表明,单片机能够正确识别按键信息,并实现对设备的控制。
控制响应速度较快,满足实验要求。
4. 结果分析:通过本次实验,我们掌握了红外遥控的基本原理和设计方法,了解了红外遥控系统的组成和功能。
单片机课程设计报告——————————红外遥控解码学校:东莞理工学院院系:电子工程学院作者:官炎钦同组人员:陈帅、林志鹏、洪楚明目录:一、前言 ------------------------------------------- 1二、设计原理 --------------------------------------- 11、红外通信原理 -------------------------------------------------- 12、红外编码原理 -------------------------------------------------- 3三、硬件电路设计 ----------------------------------- 51、总体电路图 ----------------------------------------------- 52、数码管与LED显示电路图 ---------------------------------------6四、软件设计 --------------------------------------- 71、程序框图 ----------------------------------------------------- 82、程序清单 ----------------------------------------------------- 83、总结与心得 --------------------------------- 14一、前言随着科学技术的发展,单片机因其该可靠性和高性价比,在智能化家用电器仪表仪器等恒多领域得到极为广泛的应用。
在很多实际单片机系统中,常常使用非电信号,如光信号,超声波信号等,来传播信息,以实现遥控和遥测的功能,其中红外遥控是目前最广泛的一种通信和控制手段。
由于红外遥控使用方便、功耗低、成本低廉、功能强、抗干扰强等特点,因而,继彩电、录像机之后,在录音机、音响备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。
本设计以STC89C52单片机作为控制中心,综合应用了单片机内部结构及中断系统等知识,应用红外光的优点,实现对红外遥控器的解码和通信。
二、设计原理1、红外通信原理红外通信,即以红外线作为通信载体,通过红外光在空中的传播来传输数据的通信方式,它有发射红外线的电路和接收端来完成。
在发射端,发送的数字信号经过适当的调制编码后,送入电光变换电路,经红外发射管转变为红外光脉冲发射到空中;在接收端,红外接收器对接收到的红外光脉冲进行光电变换,解调,再经单片机处理,便可以恢复出原数据信号。
红外通信原理图2、红外编码原理常用的红外线信号传输协议有ITT 协议、NEC 协议、Nokia NRC 协议、Sharp 协议、Philips RC-5 协议、Philips RC-6协议,Philips RECS-80协议,以及Sony SIRC 协议等。
1)协议组成:一般由引导码,用户码,数据码,重复码或数据码的反码和结束码构成。
2)载波:常用的有33K,36K,36.6K,38K,40K,56K,无载波3)占空比:常用的有1/3,1/2,不常用1/44)调制方式:脉宽调制,相位调制,脉冲位置调制本次设计红外发射端选用的是NEC协议编码的,由38K载波调制的红外编码的红外遥控器。
(1)0和1的编码遥控器发射的信号由一串0和1的二进制代码组成。
不同芯片对0和1的编码有所不同。
通常有曼彻斯特编码和脉冲宽度编码。
TC9012的0和1采用PWM方法编码,即脉冲宽度调制。
以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”,如下图所示:(2)按键的编码遥控发射器专用芯片很多,根据编码格式可以分成两大类,即32位编码类和42 位编码类。
UPD6121G产生的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电器设备,防止不同机种遥控码互相干扰。
该芯片的用户识别码固定为十六进制01H;后16位为8位操作码(功能码)及其反码。
UPD6121G最多额128种不同组合的编码。
本设计中用到的遥控器具体键值如下:(3)接收器及接收码的格式1)接收器SM0038 是塑封一体化红外线接收器,它是一种集红外线接收、放大、整形于一体的集成电路,不需要任何外接元件,就能完成从红外线接收到输出与TTL 电平信号兼容的所有工作,没有红外遥控信号时为高电平,收到红外信号时为低电平,而体积和普通的塑封三极管大小一样,它适合于各种红外线遥控和红外线数据传输。
2)代码格式接收代码格式如图所示,注意接收代码与发射代码高低电平相反。
0和1的波形三、硬件电路设计本设计以STC89C52为核心,外接红外接收电路,LED显示电路,数码管显示电路及蜂鸣器电路,其总体硬件方框图如下:总体硬件电路图:(2)LED显示电路改电路由八个LED灯组成,发光二极管负极端接8个限流电阻。
但单片机某个I/O口为低电平时,其所对应的发光二极管亮。
(4)数码管电路由于单片机实验箱的限制,本设计的数码管显示电路采用试验箱原有的由并口芯片8255和74LS240锁存器及数码管组成的数码管电路。
原理图如下:位码由8255 的PA 口输出,字形由经8255 的PB 口输出。
LED 八段管为共阴连接。
8255 芯片的I/O 地址分配如下:8255 的控制口地址为0FF23H;8255 的PA 口(字位控制口)地址为0FF20H;8255 的PB 口(字形控制口)0FF21H。
四、软件设计(1)程序设计总体思路:平时,遥控器无键按下,红外发射二极管不发出信号,遥控接收头输出信号1.有键按下时,0和1编码的高电平经遥控头盗香后会输出信号0.此时可以通过检测是否为引导电平,从而决定是否进入解码程序,在解码程序内,可通过检测信号高电平的时长确定编码“0”还是“1”,进而把接收到的编码放入RAM中保存,以便下一次的校验,校验正确后,用蜂鸣器响一声表示解码正确,解码正确的数据会通过LED灯显示出来,特别的,如果被按下的剑为“0”~“9”,则再用数码管显示相应数字。
(2)重要语句的设计:根据高电平宽度来区别“0”和“1”。
首先判断接收端的输出引脚VOUT是否为低电平,当低电平出现时,接收端与单片机的P3.2口的引脚相连接,单片机进入外部中断0.在中断程序中从0.56ms低电平过后,开始延时,若0.56ms以后,若读到的电平为低,说明改位为“0”,如果读到的电平为高,说明该位为"1"。
为了可靠起见,延时必须比0.56ms长些,但又不能超过1.12ms,否则如果改为为“0”,读到的已是下一位的高电平。
因此读取(1.12ms+0.56ms)/2=0.84ms最为可靠,一般取0.84ms左右即可。
根据码的格式,应该等待9ms的起始码和4.5ms的结果码完成后才能读码。
根据以上分析,在解码程序中特意编写了精确的延时的子程序:一个为延时882us的子程序,用于识别“0”和“1”,同时重复调用十次可避开9ms的起始码。
为了识别4.5ms结果码,可以调用一个4.7ms的延时程序避开这个结果码。
接下来是32位码,前16位为客户识别码,后16位才是我们需要的按键码值,故程序设计可以用一个us延时程序判断这32位代码码值的是“0”还是“1”,然后舍去前十六位,保留后面所需的16位数据码,对最后的8位码取反与前8位数据码比较,如果相等,则保留这一帧数据,如果不等,说明解码错误,舍去这一帧数据。
(3)程序框图:程序清单:ORG 0000HAJMP START ;转入主程序ORG 0003H ;外部中断P3.2 脚INT0 入口地址AJMP INT ;转入外部中断服务子程序(解码程序)ORG 100H;*********以下为主程序进行CPU 中断方式设置***** START:ACALL RESETMOV SP,#60HMOV P2,#0FFHMOV A,#81H ;***********************MOV DPTR,#0FF23H;设置8155 控制字MOVX @DPTR,A ;***********************SETB EA ;打开CPU 总中断请求SETB IT0 ;设定INT0 的触发方式为脉冲负边沿触发SETB EX0 ;打开INT0 中断请求LOOP: ACALL DPLAYAJMP LOOP;****************************************************** RESET:MOV 24H,#0 ;用来存放按键次数MOV 28H,#0 ;以下6个内存单元存放6位数码管的显示值MOV 29H,#21MOV 2AH,#21MOV 2BH,#21MOV 2CH,#21MOV 2DH,#21RET;****************************************************** DPLAY: SETB RS0 ;设置第第二组寄存器MOV DPTR,#TABMOV R0,#28H ;R0用来间接寻址得到数码管的段码值MOV R2,#0FEH;R2用来间接寻址得到数码管的位码值LD1: MOV R1,#20H;打开8255的PA口MOV A,R2MOVX @R1,A;送位码给8255PA口MOV R1,#21H ;打开8255PB口MOV A,@R0 ;MOVC A,@A+DPTR;寻址获得段码MOVX @R1,A ;段码送8255PB口LCALL YS3; DELAY 1 Ms;延时以提高数码管亮度;INC R0 ;取出下一个码;MOV A,R2;JNB ACC.5,LD2;判断6位数码管数据是否送完;RL A ;移位显示下个数码管;MOV R2,AMOV R1,#21H;该段程序用于消去数码管前一段数据的阴影MOV A,#0FFHMOVX @R1,ASJMP LD1LD2: CLR RS0RETTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HDB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH,08CH,0FFH;*********************************************************;**********************************************************;以下为进入P3.2 脚外部中断子程序,也就是解码程序INT:CLR EA ;暂时关闭CPU 的所有中断请求MOV R6,#10SB: ACALL YS1 ;调用882 微秒延时子程序JB P3.2,EXIT ;延时882 微秒后判断P3.2 脚是否出现高电平如果有就退出解码程序DJNZ R6, SB ;重复10 次,目的是检测在8820 微秒内如果出现高电平就退出解码程序;**********以上完成对遥控信号的9000 微秒的初始低电平信号的识别。