基于某单片机地红外遥控设计与制作
基于51单片机的红外遥控设计-毕业设计论文
基于51单片机的红外遥控设计摘要很多电器都采用红外遥控,那么红外遥控的工作原理是什么呢?本文将介绍其原理和设计方法。
红外线遥控就是利用波长为0.76~1.5μm之间的近红外线来传送控制信号的。
常用的红外遥控系统一般分发射和接收两个部分。
红外遥控常用的载波频率为38kHz,这是由发射端所使用的455kHz晶振来决定的,在发射端要对晶振进行整数分频,分频系数一般取12,所以455kHz÷12≈37.9 kHz≈38kHz。
也有一些遥控系统采用36kHz、40kHz、56kHz等,一般由发射端晶振的振荡频率来决定。
接收端的输出状态大致可分为脉冲、电平、自锁、互锁、数据五种形式。
“脉冲”输出是当按发射端按键时,接收端对应输出端输出一个“有效脉冲”,宽度一般在100ms左右。
一般情况下,接收端除了几位数据输出外,还应有一位“数据有效”输出端,以便后级适时地来取数据。
这种输出形式一般用于与单片机或微机接口。
除以上输出形式外,还有“锁存”和“暂存”两种形式。
所谓“锁存”输出是指对发射端每次发的信号,接收端对应输出予以“储存”,直至收到新的信号为止;“暂存”输出与上述介绍的“电平”输出类似。
关键词:80c51单片机、红外发光二极管、晶振目录第一章1、引言 (3)2、设计要求与指标 (3)3、红外遥感发射系统设计 (4)4、红外发射电路设计 (4)5、调试结果及分析 (9)6、结论 (10)第二章1、引言 (10)2、设计要求与指标 (11)3、红外遥控系统设计 (11)4、系统功能实现方法 (15)5、红外接收电路 (16)6、软件设计 (17)7、调试结果及分析 (18)8、结论 (19)参考文献附录绪论人的眼睛能看到的可见光按波长从长到短排列,依次为红、橙、黄、绿、青、蓝、紫。
其中红光的波长范围为0.62~0.76μm;紫光的波长范围为0.38~0.46μm。
比紫光波长还短的光叫紫外线,比红光波长还长的光叫红外线。
基于51单片机的红外遥控小车设计和制作
基于51单片机的红外遥控小车设计和制作红外遥控小车设计和制作是一个有趣且实用的项目。
本文将介绍一个基于51单片机的红外遥控小车的设计方案和制作过程。
设计方案:1.硬件设计:-采用STC89C52单片机作为控制核心,具有良好的性能和稳定性。
-红外接收器模块:用于接收红外信号并将其转换为电信号。
-直流电机:用于驱动小车的轮子,实现前进、后退、转弯等动作。
-驱动电路:将单片机的输出信号转换为合适的电流和电压来驱动电机。
-电源:使用锂电池作为电源,提供所需的电能。
2.软件设计:-红外信号解码:将接收到的红外信号进行解码,并判断是前进、后退、转弯等命令。
-控制逻辑:根据解码结果产生相应的电信号,驱动电机实现小车的相应动作。
-响应机制:处理红外信号的时延和干扰,避免误操作或信号丢失。
制作过程:1.连接电路:-将STC89C52单片机与电源、红外接收器模块和驱动电路连接。
确保连接正确、稳定。
-连接直流电机和驱动电路,通过电路板或者线缆进行连接,确保电机可以正确驱动。
2.烧录程序:- 使用Keil C编译器编写控制程序,并将程序通过编程器烧录到STC89C52单片机中。
3.完善控制逻辑:-在控制程序中添加红外信号解码和控制逻辑代码,使小车能够根据接收到的红外信号做出相应动作。
4.调试和测试:-将红外遥控器对准红外接收器模块,发送不同的红外信号,确保小车能够正确接收和处理信号。
-确保小车能够根据接收到的信号做出正确的动作,如前进、后退、转弯等。
5.完善功能:-可以根据实际需求添加其他功能,如声控、避障、图像识别等,提升小车的智能性和功能性。
通过以上设计和制作过程,一个基于51单片机的红外遥控小车就可以完成。
这个小车可以通过红外遥控器进行远程控制,并实现前进、后退、转弯等动作。
它可以在室内或者室外进行运行,并具有一定的智能性和便携性。
这个项目不仅可以培养学生的动手能力和创造力,还可以加深对电子电路和嵌入式系统的理解和掌握。
单片机STM32F103C8T6的红外遥控器解码系统设计
单片机STM32F103C8T6的红外遥控器解码系统设计一、本文概述本文旨在详细阐述基于STM32F103C8T6单片机的红外遥控器解码系统的设计和实现过程。
随着科技的不断进步和智能化设备的普及,红外遥控器作为一种常见的遥控设备,已经广泛应用于家电、安防、玩具等多个领域。
然而,红外遥控器发出的红外信号往往需要通过解码器才能被设备正确识别和执行,因此,设计一款高效、稳定、可靠的红外遥控器解码系统具有重要意义。
本文将首先介绍红外遥控器的基本原理和信号特点,然后详细阐述STM32F103C8T6单片机的性能特点和在红外遥控器解码系统中的应用优势。
接着,将详细介绍红外遥控器解码系统的硬件设计,包括红外接收头的选择、电路设计和PCB制作等。
在软件设计部分,将详细阐述如何通过STM32F103C8T6单片机的编程实现红外信号的接收、解码和处理,以及如何将解码后的数据通过串口或其他通信方式发送给主控制器。
本文还将对红外遥控器解码系统的性能进行测试和分析,包括信号接收距离、解码速度和稳定性等方面的测试。
将总结本文的主要工作和创新点,并对未来的研究方向进行展望。
通过本文的研究和实现,旨在为红外遥控器解码系统的设计提供一种新的思路和方法,同时也为相关领域的研究人员提供有益的参考和借鉴。
二、红外遥控器基础知识红外遥控器是一种常见的无线遥控设备,它利用红外光作为信息载体,通过发射和接收红外光信号实现对设备的远程控制。
这种遥控方式因其简单、低成本和无需视线连接等优点,在各类消费电子产品中得到了广泛应用,如电视机、空调、音响等。
红外遥控器的工作原理主要基于红外辐射和光电器件的检测。
遥控器内部通常包含一个或多个红外发射管,当按下按键时,发射管会发射出特定频率和编码的红外光信号。
接收端则配备有红外接收头,该接收头内部有一个光敏元件(如硅光敏三极管或光敏二极管),用于检测红外光信号并将其转换为电信号。
为了区分不同的按键操作,红外遥控器通常采用特定的编码方式对按键信号进行编码。
基于单片机的红外遥控系统设计毕业设计
本科生毕业设计(论文)论文题目:基于单片机的红外遥控系统设计毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:日期:本设计是基于单片机的红外遥控系统设计,设计内容包括了红外接收,红外解码和步进电机控制三大块。
如今红外遥控技术已经得到了广泛的应用;其利用红外线来传输数据,这种情况下不需要实体连线,体积小,成本低,功能强。
我们日常生活中的电视机,洗衣机,空调,航天飞机,工业现场设备等都运用了红外遥控的技术。
本设计中发射端采用专用的发射芯片来实现红外遥控码的发射,且遥控码格式是NEC标准。
接收端采用市面上流行的1838一体化红外接收头,接收到的红外信号经由1838接收头完成光/电转化和解调的工作,然后把33位的完整码发送到解码芯片中去完成解码工作。
本设计中的主芯片是STC89C52单片机,主芯片和解码芯片之间进行串行通讯。
系统启动后,解码芯片将解码后得到的8位数据码串行发送到主芯片中,然后通过主芯片来控制步进电机的正转,反转,加速,减速。
本设计中的被控对象是步进电机,步进电机最适合做数字控制。
步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。
基于51单片机的红外遥控课程设计
目录第一章设计简介 (2)第二章系统方案 (2)一、设计方案对比 (2)二、方案设计 (4)第三章硬件设计 (4)一、红外遥控器 (4)二、红外接收模块部分 (6)第四章软件设计 (7)一、红外遥控器软件设计 (7)二、红外接收模块软件设计 (10)三、程序代码 (10)第五章测试及分析 (10)第六章结论 (10)第七章参考文献 (11)附录一(程序代码): (12)第一章设计简介本设计分为红外遥控器与红外接收模块两部分。
红外遥控器包括矩阵键盘、增强型51单片机(STC11L04E)、红外发射电路组成。
单片机扫描矩阵键盘后,将按键状态进行信源编码与信道编码,载波(38k脉冲)后由红外发射器发射。
红外接收模块部分由传统51单片机、数码管、一体化红外接收头组成。
一体化红外接收头将信号进行限幅放大、带通滤波、解调、积分、整形后输出解调信号至单片机,并由单片机输出解调信号。
第二章系统方案一、设计方案对比红外遥控器部分2.1.1 主控芯片方案一:HT6222方案二:STC11L04E分析:传统红外遥控器芯片HT6222具有性价比高、功能强大、稳定可靠、使用简单等特点,但该芯片难以零购。
STC11L04E为增强型51单片机,控制灵活(载波频率可调、通信协议可变更、用户码可变换)、价格较HT6222稍贵。
STC11L04E最大的特别是低功耗,功作电压低3.3V,易于应用于移动设备。
结论:由于STC11L04E单片机的灵活性以及学习性(可增强我们对一个完整通信系统的理解)。
因此我们采用方案二。
2.1.2 矩阵键盘方案一:3*6*2.5 贴片轻触开关方案二:6*6*6 直插轻触开关分析:3*6*2.5贴片轻触开关虽然体积小巧、美观,但与6*6*6直插轻触开关对比,在制板布线上较繁锁。
结论:综上,我们采用6*6*6直插轻触开关,使得整体布线简单,可布单面版,简化制板流程。
2.1.3电源模块方案一:钮扣电池CR2032方案二:可充电锂电池18650分析:可充电锂电池18650容量大,节能环保(可多次利用),但体积大。
基于单片机的红外线遥控器设计
De s i g n o f I n f r ar e d Re mo t e Co n t r o l l e r B a s e d O n MCU
W AN G Ho n g r n e i
( T i a n j i n T i a n b o S c i e n c e&T e c h n o l o g y C o . , L T D, T i a n j i n 3 0 0 0 7 2 , C h i n a )
子技 术 , 2 0 0 3 , ( 0 6 ) : 4 0 — 4 1
自动 化应 用 { 2 0 1 3 9期
3 2
图1 单 片 机 遥 控 发射 器 和接 收器 设 计 原 理 图
难度大 因此 , 这几种方式都未能大量使用 。
而 红 外 遥 控 方 式 是 以 红 外 线 作 为 载 体 来 传 送 控 制信息 的 , 因其 反 应 速 度 快 、 传 输效率 高 、 工 作 稳 定 可 靠 等 优 点 而 广 泛 应 用 红 外 线 发 射 装 置 采 用 红 外 发光 二 极管 . 遥 控 发 射 器 易 于 小 型化 且 价 格 低 廉 : 采 用 数 字 信 号 编 码 和二 次 调 制 方 式 . 不 仅 可 以 实 现 多 路 信 息 的控 制 . 增加遥控功能 , 提高信 号传输的率 消 耗 低 : 红 外 线 不 会 向室 外 泄 露 ,
率。
参 考文献
该 系统在实 验过程 中运行 稳定 、 控制 准确 、 操作
一
。
—
5 I X T A L 1 P I . 4  ̄ 1
[ 1 】曹建 军 , 戴 兵. 无 线 遥 控技 术在 施 工现 场 的应 用—— 利 用 弱 电控制 强 电实现 节 能减 材[ J ] . 施 工技 术 , 2 0 1 1 ,
基于单片机的红外遥控密码锁的设计与实现_曹开田
本文所设计的红外遥控密码锁是以红外线作为载 波,将数码指令信号调制到载波上,然后通过红外发 射二极管发射出去;接收端接收到调制信号后将经过 限幅、滤波、解调等过程还原出原数码指令信号。该
开始
开始
初始化
初始化
打开串口
打开串口
产生指令
接收指令
送到串口
与原指令比较
20 次?
N
Y
驱动红外 发射管 发射主程序
15 次以上
N
比较相同?
Y
输出该指令 接收主程序
图 2 发射和接收程序流程图
4 结束语
本文设计的红外遥控密码锁具有体积小、结构紧 凑、安全可靠、成本低廉等优点。随着技术的不断进 步和发展,该系统必将有广阔的应用前景。
参考文献 1 胡汉才. 单片机原理及其接口技术. 清华大学出版社,
1995. 2 郭海英. 基于单片机的电子安全密码锁的设计. 现代
电子技术, 2005,13.
作者简介:曹开田,助教,硕士。研究方向为 智能控制及其信号处理。
优惠订购
30 元 = 补订《中国仪器仪表》2005 年下半年度杂志 (优惠代码:FX-1)
接收端的红外接收装置 0038B 对发射过来的红外 调制信号进行前置放大、限幅滤波、检波等一系列过 程后逐一解调出原数码指令信号,再将解调出的信号 与发射模块中的原数码指令信号相比较。如果有 15 次 以上比较结果是相同的,则认为接收成功,并用该数 码信号驱动继电器工作,最后由继电器控制密码锁的 闭合和开启。
基于51单片机的红外遥控小车设计和制作
基于51单片机的红外遥控小车设计和制作本文介绍一款红外线遥控小车,以AT89S51单片机为核心控制器,用L289驱动直流电机工作,控制小车的运行。
本款小车具有红外线遥控手动驾驶、自动驾驶、寻迹前进等功能。
本系统采用模块化设计,软件用C语言编写。
一、设计任务和要求以AT98C51单片机为核心,制作一款红外遥控小车,小车具有自动驾驶,手动驾驶和循迹前进等功能。
自动驾驶时,前进过程中可以避障。
手动驾驶时,遥控控制小车前进、后退、左转、右转、加速等操作。
寻迹前进时小车还可以按照预先设计好的轨迹前进。
二、系统组成及工作原理本系统由硬件和软件两部分组成。
硬件部分主要完成红外编码信号的发射和接受、障碍物检测、轨迹检测、直流电机运行的发生等功能。
软件主要完成信号的检测和处理、设备的驱动及控制等功能。
AT89S51单片机查询红外信号并解码,查询各个检测部分输入的信号,并进行相应处理,包括电机的正反转,判断是否遇到障碍物,判断是否小车其那金中有出轨等。
系统结构框图如图1所示。
图1 系统结构框图三、主要硬件电路1、遥控发射器电路该电路的主要控制器件为遥控器芯片HT6221,如图2所示。
HT6221将红外码调制成38KHZ的脉冲信号通过红外发射二极管发出红外编码。
图2中D1是红外发射二极管,D2是按键指示灯,当有按键按下时D2点亮。
HT6221的编码规则是:当一个键按下超过36ms,振荡器使芯片激活,如果这个按键按下且延迟大约108ms,这108ms发射代码由一个起始码(9ms),一个结果码(4.5ms),低8位地址码(9ms~18ms),高8位地址码(9~18ms),8位数据码(9~18ms)和这8位数据码的反码(9~18ms)组成,如果按键按下超过108ms仍未松开,接下来发射的代码将仅由起始码(9ms)和结束码(2.5ms)组成。
按照上图的接法,K1~K8的数据码分别为:0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07。
基于51单片机的红外通信设计报告
基于51单片机的红外通信设计报告研究方案:基于51单片机的红外通信设计报告摘要:本研究旨在通过对基于51单片机的红外通信的研究与实践,对红外通信协议进行优化和改进,提高通信的可靠性和稳定性。
通过设计红外发射器和接收器,并利用51单片机进行编程控制,实现了红外信号的发送与接收。
在实验中,采集了一系列数据,通过对这些数据的整理和分析,发现了现有研究成果的不足之处,并提出了一种新的观点和方法,为解决实际问题提供了有价值的参考。
1. 引言红外通信是一种常见的无线通信方式,具有传输速度快、安全可靠等优点,在家庭电器控制、遥控玩具、无线数据传输等领域广泛应用。
本研究基于51单片机进行红外通信协议的设计与实践,旨在优化和改进红外通信的性能。
2. 研究设计2.1 硬件设计2.1.1 红外发射器设计通过使用红外发光二极管作为发射器,并连接到51单片机的IO口,控制IO口的高低电平来实现对发射器的开关控制。
2.1.2 红外接收器设计通过使用红外接收头作为接收器,并将其连接到51单片机的IO口,通过检测接收器的信号电平变化来判断接收到的红外信号。
2.2 软件设计2.2.1 红外信号解析与发送在51单片机上编写红外信号解析与发送的程序,通过对输入信号的解析,将需要发送的红外信号编码成特定协议的数据帧,再通过IO口的控制将数据帧发送出去。
2.2.2 红外信号接收与解析在51单片机上编写红外信号接收与解析的程序,通过IO口的状态变化检测,获取红外接收器接收到的信号,并对接收到的信号进行解析,还原成原始数据。
3. 实验与调查情况在本研究中,我们通过实验和调查采集了一系列的数据来评估所设计的红外通信系统的性能。
3.1 实验设置我们设置了一个包含发射器和接收器的实验平台。
通过按下遥控器上的按键,触发发射器发送特定红外信号,在接收器上探测到红外信号,并通过51单片机进行信号解析。
3.2 数据采集与分析通过对实验中采集到的数据进行整理和分析,我们可以得到以下结论:(1)在传输距离较近的情况下,信号的可靠性和稳定性良好。
基于单片机的红外遥控智能小车设计
基于单片机的红外遥控智能小车设计引言:随着科技的不断发展,智能物联网已经走进了我们的生活。
智能小车作为一种智能化的产品,能够实现远程遥控、自动避障等功能,受到了广大消费者的青睐。
本文就基于单片机的红外遥控智能小车设计进行详细介绍。
一、设计目标本设计的目标是通过红外遥控,实现对智能小车的远程控制,小车能够根据收到的指令进行行驶、避障等操作。
二、设计原理1.主控芯片:本设计使用单片机作为主控芯片,常用的单片机有51系列、AVR系列等,可根据实际需求选择合适的芯片型号。
2.红外遥控模块:红外遥控模块是实现红外通信的设备,可以将遥控器发出的红外信号解码成数据,实现遥控操作。
3.电机驱动模块:电机驱动模块可将单片机的PWM信号转化为电机的动力驱动信号,控制小车的行驶方向和速度。
4.超声波传感器:超声波传感器可以感知到小车前方的障碍物距离,根据测得的距离,进行相应的避障操作。
5.电源模块:小车需要使用适当的电源,通常是锂电池或者直流电源供应。
三、系统设计1.硬件设计:(1)搭建小车底盘:根据所选择的底盘,搭建小车结构,并安装好电机驱动模块、电源模块等硬件设备。
(2)连接电路:将红外遥控模块、超声波传感器等硬件设备与主控芯片进行连接,确保每个模块正常工作。
2.软件设计:(1)红外遥控程序设计:通过红外遥控模块接收红外信号,并解码成相应的指令。
根据指令控制电机驱动模块,实现小车的行驶方向和速度控制。
(2)超声波避障程序设计:根据超声波传感器测得的距离,判断是否有障碍物,如果有障碍物就停止或者转向。
四、实验结果和讨论经过实验验证,本设计的红外遥控智能小车能够准确接收红外信号,并根据指令控制小车的行驶方向和速度。
同时,超声波传感器能够及时感知到前方的障碍物,并进行相应的避障操作。
然而,该设计仍然存在一些不足之处,比如超声波传感器的测距范围有限,可能无法感知到较小的障碍物。
此外,红外遥控信号的传输距离也有一定限制,需要保持遥控器与小车之间的距离不过远。
基于51单片机的红外遥控
基于51单片机的红外遥控红外遥控是无线遥控的一种方式,本文讲述的红外遥控,采用STC89C52单片机,1838红外接收头和38k红外遥控器。
1838红外接收头:红外遥控器:原理:红外接收的原理我不赘述,百度文库上不少,我推荐个网址,这篇文章写得比较清楚,也比较全面,我主要讲下程序的具体意思,在了解原理的基础上,我们知道,当我们在遥控器上每按下一个键,遥控器上的红外发射头都会发出一个32位的编码(32位编码分成4组8位二进制编码,前16位为用户码和用户反码,后16位为数据码和数据反码,用户码表示遥控器类型,数据码表示按键编码),不同的键对应不同的编码,红外接收头接收到这个编码后,发送给单片机,再进行相关操作。
源程序1:(这个程序的功能是将用户码和用户反码,数据码和数据反码显示在1602液晶上,因为遥控器买回来是不会说明按键对应什么码值,所以先自己测试,确定每个按键的码值)#include<reg52.h>#include<stdio.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned char#define _Nop() _nop_()#define TURE 1#define FALSE 0/*端口定义*/sbit lcd_rs_port = P3^5; /*定义LCD控制端口*/sbit lcd_rw_port = P3^6;sbit lcd_en_port = P3^4;#define lcd_data_port P0///////////////////////////////////void delay1 (void)//关闭数码管延时程序{int k;for (k=0; k<1000; k++);}////////////////////////////////////uchar code line0[16]={" user: "};uchar code line1[16]={" data: "};uchar code lcd_mun_to_char[16]={"0123456789ABCDEF"};unsigned char irtime;//红外用全局变量bit irpro_ok,irok;unsigned char IRcord[4];//用来存放用户码、用户反码、数据码、数据反码unsigned char irdata[33];//用来存放32位码值void ShowString (unsigned char line,char *ptr);//////////////////////////////////////////////void Delay(unsigned char mS);void Ir_work(void);void Ircordpro(void);void tim0_isr (void) interrupt 1 using 1//定时器0中断服务函数{irtime++;}void ex0_isr (void) interrupt 0 using 0//外部中断0服务函数{static unsigned char i;static bit startflag;if(startflag){if(irtime<63&&irtime>=33)//引导码TC9012的头码i=0;irdata[i]=irtime;irtime=0;i++;if(i==33){irok=1;i=0;}}else{irtime=0;startflag=1;}}void TIM0init(void)//定时器0初始化{TMOD=0x02;//定时器0工作方式2,TH0是重装值,TL0是初值TH0=0x00;//reload valueTL0=0x00;//initial valueET0=1;//开中断TR0=1;}void EX0init(void){IT0 = 1; // Configure interrupt 0 for falling edge on /INT0 (P3.2)EX0 = 1; // Enable EX0 InterruptEA = 1;}void Ircordpro(void)//红外码值处理函数(关键函数){unsigned char i, j, k=1;unsigned char cord,value;for(i=0;i<4;i++){//处理4个字节for(j=1;j<=8;j++){ //处理1个字节8位cord=irdata[k];value=value>>1;if(cord>7) value=value|0x80; //大于某值为1k++;}IRcord[i]=value;value=0;}irpro_ok=1;//处理完毕标志位置1}///////////////////////////////////////////void lcd_delay(uchar ms) /*LCD1602 延时*/{uchar j;while(ms--){for(j=0;j<250;j++){;}}}//////////////////////////////////////////////void lcd_busy_wait() /*LCD1602 忙等待*/{lcd_rs_port = 0;lcd_rw_port = 1;lcd_en_port = 1;lcd_data_port = 0xff;_Nop();_Nop();_Nop();_Nop();while (lcd_data_port&0x80);lcd_en_port = 0;}///////////////////////////////////////////////void lcd_command_write(uchar command) /*LCD1602 命令字写入*/ {lcd_busy_wait();lcd_rs_port = 0;lcd_rw_port = 0;lcd_en_port = 0;lcd_data_port = command;_Nop();_Nop();_Nop();_Nop();_Nop();_Nop();lcd_en_port = 1;_Nop();_Nop();_Nop();_Nop();_Nop();_Nop();lcd_en_port = 0;}/////////////////////////////////////////void lcd_system_reset() /*LCD1602 初始化*/{lcd_delay(20);lcd_command_write(0x38);lcd_delay(100);lcd_command_write(0x38);lcd_delay(50);lcd_command_write(0x38);lcd_delay(10);lcd_command_write(0x08);lcd_command_write(0x01);lcd_command_write(0x06);lcd_command_write(0x0c);}//////////////////////////////////////////////////void lcd_char_write(uchar x_pos,y_pos,lcd_dat) /*LCD1602 字符写入*/ {x_pos &= 0x0f; /* X位置范围0~15 */y_pos &= 0x01; /* Y位置范围0~ 1 */if(y_pos==1) x_pos += 0x40;x_pos += 0x80;lcd_command_write(x_pos);lcd_busy_wait();lcd_rs_port = 1;lcd_rw_port = 0;lcd_en_port = 0;lcd_data_port = lcd_dat;_Nop();_Nop();_Nop();_Nop();_Nop();_Nop();lcd_en_port = 1;_Nop();_Nop();_Nop();_Nop();_Nop();_Nop();lcd_en_port = 0;}void main(void){uchar i;lcd_system_reset(); /* 初始化LCD1602 */lcd_data_port = 0xff;for(i=0;i<16;i++) lcd_char_write(i,0,line0[i]);for(i=0;i<16;i++) lcd_char_write(i,1,line1[i]);EX0init(); // Enable Global Interrupt FlagTIM0init();while(1){//主循环if(irok){Ircordpro();irok=0;}if(irpro_ok){ /*遥控成功接收*/lcd_char_write(8,0,lcd_mun_to_char[IRcord[0]/0x10]);lcd_char_write(9,0,lcd_mun_to_char[IRcord[0]%0x10]);lcd_char_write(11,0,lcd_mun_to_char[IRcord[1]/0x10]);lcd_char_write(12,0,lcd_mun_to_char[IRcord[1]%0x10]);lcd_char_write(8,1,lcd_mun_to_char[IRcord[2]/0x10]);lcd_char_write(9,1,lcd_mun_to_char[IRcord[2]%0x10]);lcd_char_write(11,1,lcd_mun_to_char[IRcord[3]/0x10]);lcd_char_write(12,1,lcd_mun_to_char[IRcord[3]%0x10]);}//将码值显示在液晶上}}源程序2:(在知道了按键编码的基础上,我们便可以加入判断,判断哪个键被按下,进而执行相关操作)我只修改main函数,其他与源程序1相同sbit led1=P1^0;sbit led2=P1^1;sbit led3=P1^2;sbit led4=P1^3;sbit led5=P1^4;//发光二极管控制端定义void main(void){uchar i;lcd_system_reset(); /* 初始化LCD1602 */lcd_data_port = 0xff;for(i=0;i<16;i++) lcd_char_write(i,0,line0[i]);for(i=0;i<16;i++) lcd_char_write(i,1,line1[i]);EX0init(); // Enable Global Interrupt FlagTIM0init();while(1){//主循环if(irok){Ircordpro();irok=0;}if(irpro_ok){ /*遥控成功接收*/switch(IRcord[2])//为什么判断IRcord[2],因为这个里面存放的是数据码{case 0x0c: led1=0;//按0键,灯1亮break;case 0x18: led2=0; //按1键,灯2亮break;case 0x5e: led3=0; //按2键,灯3亮break;case 0x08: led4=0; //按3键,灯4亮break;case 0x1c: led5=0; //按4键,灯5亮break;}}}}附连接图。
基于51单片机红外遥控小车制作报告
基于51单片机红外遥控小车制作报告基于51单片机红外遥控小车是一项有趣且有挑战性的项目,通过该项目的实践,可以深入了解单片机和红外遥控的原理,并提高自己的动手能力和解决问题的能力。
本文将介绍基于51单片机红外遥控小车的制作过程和实现的功能。
一、实验原理1.51单片机原理51单片机是一种广泛应用于电子产品和嵌入式系统中的微控制器,采用的是哈佛结构,具有较高的性能和稳定性,广泛使用于工业自动化和嵌入式开发中。
2.红外遥控原理红外遥控是一种常见的遥控方式,通过使用红外光发射器和接收器之间的通信,实现无线遥控设备的功能。
红外遥控信号一般由多个比特组成的数据包,通过不同的数据包可以实现不同的操作。
二、实验器材和工具1.器材2个电机、L298N电机驱动模块、51单片机、红外接收器、红外发射器、遥控器、电池盒、杜邦线等。
2.工具电烙铁、焊锡、剪线钳、螺丝刀、万用表等。
三、制作步骤1.电路连接将L298N电机驱动模块与电机连接,L298N模块的输入引脚与单片机的输出引脚连接,红外接收器与单片机的IO引脚连接,红外发射器与单片机的IO引脚连接。
2.程序设计根据需求编写程序,包括红外遥控信号解析、电机控制等功能。
3.调试测试四、实现的功能1.红外信号解析通过红外接收器接收到遥控器发送的红外信号,解析信号中的数据包,判断用户的操作。
2.基本运动控制根据用户的操作,通过控制电机的转动方向和速度,实现小车的前进、后退、左转、右转等基本运动功能。
3.灵敏度调节通过调整程序中的参数,可以调节小车的灵敏度,使其对用户的操作更加敏感和准确。
4.智能避障在程序中添加红外避障功能,当小车检测到前方有障碍物时,自动停下或转向避开障碍物,保证小车的安全。
五、实验心得通过制作基于51单片机红外遥控小车的实验,我深入了解了51单片机和红外遥控的原理,并提高了自己的动手能力和解决问题的能力。
在实验过程中遇到了一些困难,但通过查阅资料和与同学交流,我成功地解决了这些问题。
基于单片机的红外线遥控器设计毕业设计
毕业设计设计课题:基于单片机的红外线遥控器设计摘要随着社会的发展、科技的进步以及人们生活水平的逐步提高,各种方便于生活的遥控系统开始进入了人们的生活。
传统的遥控器采用专用的遥控编码及解码集成电路,这种方法虽然制作简单、容易,但由于功能键数及功能受到特定的限制,只实用于某一专用电器产品的应用,应用范围受到限制。
而采用单片机进行遥控系统的应用设计,具有编程灵活多样、操作码个数可随便设定等优点。
本设计主要应用了AT89C51单片机作为核心,综合应用了单片机中断系统、定时器、计数器等知识,应用红外光的优点。
遥控操作的不同,遥控发射器通过对红外光发射频率的控制来区别不同的操作。
遥控接收器通过对红外光接收频率的识别,判断出控制操作,来完成整个红外遥控发射、接收过程。
其优点硬件电路简单,软件功能完善,性价比较高等特点,具有一定的使用和参考价值。
关键词:单片机,红外遥控,中断,定时,计数,频率AbstractWith the development of our society and the gradual improvement of science and technology, various kinds of help remote control systems have began to enter people’s life. The traditional remote controllers adopt special remote control code and decode integrated circuits, though this kind of method is simply and easily, it is only the practical application ofsome certain special electric equipments because of the counted functional keys is counted and the restricted function, so the range of application is limited. But the remote controllers which adopt the microprocessors have many advantages such as flexible operating and unceremonious manipulative keys.The design has used AT89C2051 microprocessor as core, integratively apply the interruptive system, timer , counter ,etc. mainly to design originally and also take the advantage of the infrared light. The remote control launcher distinguishes different operation through the control on frequency of infrared emission of light. The remote control receiver judges control operation by adopting the discerned frequency of the received infrared light to finish the whole launching and receiving course.Its advantage is that the hardware circuit is simple, the software is with perfect function, have certain use and reference valueKeywords: Microprocessor, Infrared remote control,Interrupt,Timing,Counting,Frequency目录绪论 (7)第一章红外发射部分 (8)1、引言 (8)2、设计要求与指标 (9)3 红外遥感发射系统的设计 (9)4、红外发射电路的设计 (10)5 调试结果及其分析 (15)6、结论 (16)第二章红外接受部分 (16)1、引言 (16)2、设计要求及指标 (17)3、红外遥控系统的设计 (17)4、系统的功能实现方法 (21)5、红外接受电路图 (23)6、软件设计: (24)7、调试结果及分析: (26)8、结论: (26)参考文献 (27)绪论人的眼睛能看到的可见光按波长从长到短排列,依次为红、橙、黄、绿、青、蓝、紫。
基于51单片机的红外遥控器设计
基于51单片机的红外遥控器设计近年来,随着智能家居的兴起,红外遥控器在我们的生活中扮演着越来越重要的角色。
本文将基于51单片机,设计一个简单的红外遥控器。
首先,我们需要了解红外遥控器的工作原理。
红外遥控器使用红外线来传输指令。
当用户按下遥控器上的按键时,红外发射器发射一个特定的红外信号。
接收器接收到这个信号后,将其转换成电信号,并将其发送到电子设备中,实现对设备的控制。
接下来,我们需要选择合适的红外发射器和接收器。
常见的红外发射器有红外LED,常见的红外接收器有红外接收头。
在选择红外发射器和接收器时,要根据其工作频率、传输距离、灵敏度等因素进行选择。
在本设计中,我们选择了工作频率为38kHz的红外发射器和接收器。
接下来,我们需要设计电路,并进行程序开发。
首先,我们需要连接红外发射器和接收器到51单片机上。
红外发射器的一个引脚连接到51单片机的I/O口,另一个引脚连接到正极电源,第三个引脚连接到电源的接地端。
红外接收器的输出引脚连接到51单片机的I/O口,电源和接地端分别连接到正负电源。
接下来,我们需要编写程序。
首先,我们需要设置51单片机的I/O 口为输入或输出。
然后,我们需要编写程序来发送红外信号。
我们可以使用PWM技术来模拟红外信号的脉冲。
当用户按下遥控器上的按键时,我们可以发送一个特定的脉冲序列,来控制电子设备。
同时,我们还需要编写程序来接收红外信号。
当红外接收器接收到红外信号时,会输出一个特定的电平信号。
我们可以使用外部中断来检测这个信号,并进行相应的处理。
在程序开发过程中,我们需要注意红外信号的协议。
常见的红外信号协议有NEC、SONY等。
我们需要根据所使用的红外接收器的协议来编写相应的程序。
最后,我们需要测试代码的功能和稳定性。
可以通过连接电子设备,按下遥控器上的按键,来测试红外信号的发送和接收功能。
如果一切正常,我们的红外遥控器设计就完成了。
总结起来,基于51单片机的红外遥控器设计是一个简单而有趣的项目。
基于单片机红外遥控开关的设计
基于单片机红外遥控开关的设计一、引言随着科技的发展和人们对生活品质的追求,智能化家居逐渐成为人们生活中的一部分。
其中,红外遥控技术是实现智能化家居的重要手段之一、本文将介绍基于单片机的红外遥控开关的设计方案,通过学习该方案,读者可以了解到红外遥控技术的原理和应用。
二、设计方案1.硬件设计本设计方案采用AT89S52单片机作为控制核心,通过红外接收头接收红外信号,并通过解码,将信号转化为数字信号;同时,使用继电器作为开关,通过控制继电器的通断,实现对电器设备的开关控制。
2.红外信号解码红外信号解码是实现遥控开关的关键步骤。
当用户按下遥控器上的按键时,红外发射器会发射一组特定的红外信号。
这组信号会被红外接收头接收,并通过解码器进行解码。
解码器将解码后的信号与预设的数据进行比对,确认遥控指令是否有效。
如果有效,则向单片机发送指令,控制继电器通断。
3.程序设计在单片机中,需要编写相关的程序,实现对红外信号的解码和继电器的控制。
首先需要配置单片机的I/O口为输入和输出模式,然后初始化红外接收头,设置外部中断,以便能够接收到红外信号。
接收到红外信号后,将解码后的数据与预设的数据进行比对,如果相同,则通过单片机的输出口控制继电器的通断,实现开关控制。
三、实验结果通过实验验证,基于单片机红外遥控开关的设计方案可以正常工作。
用户可以通过按下遥控器上的按键,控制继电器的通断,从而实现对电器设备的开关控制。
四、应用展望基于单片机红外遥控开关的设计方案可以广泛应用于智能化家居中,通过设置不同的红外编码,可以实现对不同设备的开关控制。
例如,通过不同编码实现对灯光、电视、空调等设备的开关控制。
此外,还可以通过增加传感器模块,实现对环境的监测和控制。
比如,根据温度传感器的数据,自动控制空调的开关,实现智能化温度控制。
总结:基于单片机红外遥控开关的设计方案利用了红外遥控技术和单片机控制技术,实现了对电器设备的智能化控制。
通过学习该方案,读者可以了解到红外遥控技术的原理和应用,以及单片机的应用。
(完整版)基于51单片机的红外遥控器解码设计毕业论文
第1章红外解码系统分析第1节设计要求整个控制系统的设计要求:被控设备的控制实时反应,从接收信号到信号处理及对设备控制反映时间应小于1s;整个系统的抗干扰能力强,防止误动作;整个系统的安装、操作简单,维护方便;成本低。
红外载波、编码电路设计要求:单片机定时器精确产生38KHz红外载波;根据控制系统要求能对红外控制指令信号精确编码并迅速发送。
红外解码电路设计要求:精确接收红外信号,并对所接收信号进行解码、放大、整形、解调等处理,最后输出TTL电平信号;对非红外光及边缘红外光抗干扰能力强。
设备扩展模块设计要求:直流控制交流;抗干扰能力强;反应迅速不产生误动作;能承受大电流冲击。
第2节总体设计方案2.1 方案论证驱动与开关方案一:采用晶闸管直接驱动。
其优点是体积小,电路简单,外围元件少。
但控制电流小,大电流晶闸管成本高,并且隔离性能差。
方案二:采用三极管驱动继电器。
其体积大,外围元件多。
优点是控制电流大,隔离性能好。
根据实际情况,拟采用方案二。
2.2 总体设计框图经过上述方案的分析选择,得出系统硬件由以下几部分组成:电视红外遥控器,51单片机最小系统,接收放大于一体集成红外接收头,1602液晶显示驱动电路。
整体设计思路为:根据扫描到不同的按键值转至相对应的ROM表读取数据。
确认设备及菜单选择键后AT89S2将从ROM读取出来的值,按照数据处理要求从P2.5输出控制脉冲与T0产生的38KHz的载波(周期是26.3μs)进行调制,经NPN三极管对信号放大驱动红外发光管将控制信号发送出去。
红外数据接收则是采用HS0038一体化红外接收头,内部集成红外接收、数据采集、解码的功能,只要在接收端INT0检测头信号低电平的到来,就可完成对整个串行的信号进行分析得出当前控制指令的功能。
然后根据所得的指令去操作相应的用电器件工作,如图1-1所示。
图1-1 电路设计整体框图第2章红外解码硬件电路设计第1节单片机及其硬件电路设计1.1 单片机的介绍AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。
基于单片机红外线遥控控制_LED灯显示系统设计与制作课程设计
单片机与接口技术课程设计题目:基于单片机红外线遥控控制LED灯显示系统设计与制作班级:电子科学与技术1101姓名:李婷学号: 1108030252013年12月 11日目录第一章设计要求3第二章硬件系统设计32.1基于单片机红外线遥控控制LED灯显示系统框架图32.2单片机控制系统及其基本电路32. 2.1单片机最小系统 (4)2.2.2时钟电路52.2.3复位电路52.3基于单片机红外遥控控制LED系统地设计原理62.3.1单片机红外遥控控制LED显示系统原理62.3.2单片机红外遥控控制LED系统码分制原理72.4红外遥控发射系统电路设计82.4.1指令按键电路82.4.2 发射电路92.4.3 显示模块92.5红外遥控接收系统电路设计112.5.1接收电路112.5.2 LED灯显示电路112.6硬件原理图123.1 红外线发射电路程序流程图设计123.2 红外线接收电路程序流程图设计13第四章系统测试与分析144.1 利用Proteus和keil进行仿真调试144.2 仿真图15第五章总结17附录1 (18)附录2 (22)参考文献 (25)赣南师范学院 2013 — 2014 学年第_1_学期课程论文行政班级:电子科学与技术1101学号:110803025姓名:李婷图2-2-1 单片机最小系统图2.2.2时钟电路单片机必须要有时钟信号才能正常工作,因为它是一种时序电路[3].单片机芯片地18脚(X2)、19脚(X1)分别为片内反向放大器地输出端和输入端,只要在18脚(X2)和19脚(X1)之间接上一个晶振(本控制系统采用频率为12MHz),同时两个脚分别串联上一个30PF地电容即可构成单片机所需地时时钟电路.钟电路如2-2所示.接收器输出地一帧遥控码波形图.10ms 1ms 10ms停止位第一位3ms 1ms图2-3-2.2 一帧遥控码波形图2.4红外遥控发射系统电路设计2.4.1指令按键电路本设计中通过单片机地P2口外接按键,对外部按键进行扫描,通过按键产生外部中断,并把按键地指令发送只单片机内,经单片机对各个按键进行编码后经信号指令发送至红外发射管,单片机与按键连接电路如下:图2-4-1 指令按键电路图2.4.2 发射电路本设计中利用一体化红外收发二极管作为作为红外线地收发接口;红外线发射电路中,单片机将已编码完成地指令通过P3.7连接红外线发射机二极管发射出去,单片机与红外二极管接线图如下:图2-4-2 发射电路连接图2.4.3 显示模块发射电路设计中增加了一个数码管对发送地按键键码进行显示,进一步加强发射电路地功能.单片机将已接收到地按键键码值,通过IO口P00-P03发送到七段译码器CD4511,再通过七段译码器CD4511对按键码进行解码,并显示到一位7段数码管.CD4511是一个用于驱动共阴极LED (数码管)显示器地BCD 码—七段码译码器,具有BCD转换、消隐和锁存控制、七段译码及驱动功能地CMOS电路能提供较大地拉电流;可直接驱动LED显示器.CD4511驱动数码管显示原理:CD4511 是一片 CMOS BCD—锁存/7 段译码/驱动器,引脚排列如图 2 所示.其中a b c d 为BCD 码输入,a为最低位.LT为灯测试端,加高电平时,显示器正常显示,加低电平时,显示器一直显示数码“8”,各笔段都被点亮,以检查显示器是否有故障.BI为消隐功能端,低电平时使所有笔段均消隐,正常显示时, B1端应加高电平.另外 CD4511有拒绝伪码地特点,当输入数据越过十进制数9(1001)时,显示字形也自行消隐.LE是锁存控制端,高电平时锁存,低电平时传输数据.a~g是7 段输出,可驱动共阴LED数码管.另外,CD4511显示数“6”时,a段消隐;显示数“9”时,d段消隐,所以显示6、9这两个数时,字形不太美观图3是CD4511和CD4518配合而成一位计数显示电路,若要多位计数,只需将计数器级联,每级输出接一只 CD4511 和 LED 数码管即可.所谓共阴 LED 数码管是指 7 段 LED 地阴极是连在一起地,在应用中应接地.限流电阻要根据电源电压来选取,电源电压5V时可使用300Ω地限流电阻.图2-4-3 CD45112.5红外遥控接收系统电路设计2.5.1接收电路本设计中通过单片机地P3.2口外接一体化红外线收发二极管地红外线接收二极管,并把红外线接收二极管接收到地指令信号送入单片机内进行解码等处理.红外接收二极管与单片机接线图如下:2.5.2 LED灯显示电路LED灯通过与单片机P1口进行连接,单片机根据接收到不同地按键码,通过控制P1口地电平,把相应地LED灯点亮或者熄灭,连接图如下:图2-5-2 LED灯显示电路2.6硬件原理图硬件原理图如图所示:图2-6 硬件原理图第三章软件系统设计3.1 红外线发射电路程序流程图设计说明:当单片机上电地时候程序开始执行,首先进行初始化工作,然后开启中断,接着单片机对接有按键地引脚电平进行扫描,当发现有按键被按下地时候,将该按键地按键码发送到单片机内部,按键码经单片机进行处理,并进行编码,编码完成后将该编码经由单片机地P3.7发送到红外线发送二极管进行信号发射:图3-1 红外线发射电路流程图3.2 红外线接收电路程序流程图设计说明:当单片机上电地时候程序开始执行,首先进行初始化工作,然后开启中断;此时单片机对连接红外线接收二极管地P3.2端口进行扫描;当红外接收二极管接收到信号地时候,经该信号进行解码还原,并点亮指令地LED灯:图3-2 红外线接收电路流程图第四章系统测试与分析4.1 利用Proteus和keil进行仿真调试应用系统设计完成之后,要进行硬件调试和软件调试.软件调试可以利用开发及仿真系统进行.1.先排除硬件电路故障,包括设计性错误和工艺性故障.一般原则是先静态后动态.(1)利用万用表或逻辑测试仪器,检查电路中地各元件以及引脚是否连接正确,是否有短路故障.(2)先要将单片机AT89C51芯片取下,对电路板进行通电检查,通过观察看是否有异常,然后用万用表测试各电源电压,若这些都没问题,则直接上仿真机进行联机调试观察各接口线路是否异常.2.软件调试软件调试是利用仿真工具Proteus和keil进行在线仿真调试,不但可以发现和解决程序错误外,而且可以发现硬件中存在地问题.单片机AT89C51是系统地核心,利用万用表检测单片机电源VCC是否为(40脚)+5V、晶振是否正常工作(可用示波器测试,也可以用万用表检测,两引脚电压一般为1.8~2.3V之间)、复位引脚RST(复位时为高电平,单片机工作时为低电平)、EA是否为高电平,这样一来单片机就能工作了,再结合电路图,检测故障就很容易了.4.2 仿真图4.2.1按下第一个键4.2.2按下第二个键4.2.3.按下第三个键4.2.4再次按下第二个键第五章总结通过这次课程设计,提升了我地自学能力,通过不断地查阅资料,通过与同学地交流,来解决其中遇到地困难,比如如何解决无线通信问题,如何解决控制问题等.我在设计中改变了比较传统地固定式开关元件,利用单片机无线遥控控制室内灯光取得了良好地效果,为人们提供了很大地方便,在社会生活越来越现代化地同时,我认为灯具电器等家具实现智能化控制是一个很大地趋势,同时也应总结经验,逐步完善室内灯光智能控制,例如可以增加室内灯具地自动巡检与电脑联网功能,灯具故障即可自动发出报修信号,灯具地各种使我们第一时间得知灯具地工作状况,还可以对灯具加入很多地场景模式等.在设计中也体会到我地知识面还是很狭窄,作为电子系学生,在学好本专业地基础前提下,还要不断地学习其他领域地科学技术知识,拓宽自己地知识面,才能胜任新设备、新技术地工作,更好发挥本专业地作用.附录一发射器程序#include <at89c51.h>#include <intrins.h>#define uchar unsigned char。
红外遥控系统毕业设计基于单片机的红外遥控系统设计
《单片机设计》课程设计题目:基于单片机的红外遥控系统设计专业:电气工程系班级:姓名:学号:指导教师:小组成员:成绩:摘要随着社会的进展、科技的进步和人们生活水平的慢慢提高,各类方便于生活的遥控系统开始进入了人们的生活。
采纳单片机进行遥控系统的应用设计,具有编程灵活多样、操作码个数可随意设定等优势。
由于单片机具有集成度高、体积小、靠得住性高、价钱廉价等优势,其在机电一体化、工业操纵、仪器仪表和家用电器等领域取得了普遍应用。
当前单片机对家用电器操纵呈现出外形简单化、功能多样化、产品智能化的进展趋向。
红外遥控技术具有利用方便、功耗低、抗干扰能力强、价钱廉价的特点,因此它的应用前景十分广漠。
本课题以延伸红外无线遥控技术为目的,提出了一种红外遥控器集中操纵的方案,核心是设计出一个红外接收系统。
本设计以红外线作为传递信息的载体,可对受控对象的工作状态进行短距离无线操纵,适用于遥控工业、医疗、家用电器等设备的开闭状态。
并含有设备计数模块,可对处于工作状态的设备进行计数,并显示出来。
课题的重点在于通过软件实现二进制数据的解码工作,然后通过红外收发头进行数据传输操纵系统。
关键词:红外遥控;单片机操纵;显示模块目录1 引言........................................................................................................................................ - 4 -1.1 课题研究的目的........................................................................................................... - 4 -............................................................................................................................................. - 4 - 2设计任务及要求....................................................................................................................... - 5 -2.1红外遥控系统的设计与实现任务,要紧完成:........................................................ - 5 -2.2 红外遥控系统的设计要求:....................................................................................... - 5 -3 红外遥控系统的硬件设计...................................................................................................... - 6 -3.1 本设计方案思路......................................................................................................... - 6 -3.2 研发方向和技术关键................................................................................................. - 6 - ..................................................................................................................................................... - 7 - ...................................................................................................................................... - 7 -3.3.3 红外接收模块.................................................................................................. - 11 -3.3.4 LED模拟外围设备模块.................................................................................. - 12 -.................................................................................................................................... - 13 - 4 红外遥控系统的软件设计.................................................................................................... - 14 -4.1 主控程序..................................................................................................................... - 14 -4.2 遥控发射部份............................................................................................................. - 14 -4.3 遥控接收处置部份..................................................................................................... - 15 -5 测试结果及分析.................................................................................................................... - 15 -5.1 实验仪与运算机的连接............................................................................................. - 15 -5.2 硬件系统的调试......................................................................................................... - 16 -5.3 软件系统的调试......................................................................................................... - 16 -6 总结与体会............................................................................................................................ - 16 - 参考文献.................................................................................................................................... - 17 - 7附录程序代码....................................................................................................................... - 18 -1 引言1.1 课题研究的目的本设计要紧研究并设计一个基于单片机的红外发射及接收系统,实现对温度操纵、蜂鸣器、LED灯的隔离操纵。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于单片机的红外遥控设计与制作13工试2班舒佳章韬略一、设计目的对于本课题的研究,其理论中的价值是对红外线这种电磁波的特性进行更加深入的研究。
同时在与单片机和电子电路的共同作用下,找到单片机及电子电路在实际运用中的更多功能,从而挖掘出红外线和硬件设备结合中的更多可能性。
在现实意义中,对于红外线的使用,它不仅提高了单片机、硬件设备和硬件系统在智能遥控领域的广泛应用,而相对了在硬件设施上使用了红外线的遥控技术,也同时大大拓宽了硬件设施的应用围。
在不久的将来,我相信,人们对于红外遥控控制的运用,会变得越来越广。
二、设计要求基本功能要求:1.以一个单片机作为控制遥控器,另一个单片机控制系统为被遥控对象;2.用遥控器的10个遥控开关,控制遥控对象的10个电源开关通断;3.能实现10个电源开关状态显示;4.能实现定时开关某一个电源开关。
扩展功能:1.能实现灯光亮度连续调节;2.能根据不同电器实现不同时间通断控制;3.其他扩展功能。
三、方案设计3.1红外遥控发射电路的方案采用指令键产生电路产生不同的控制指令,单片机进行状态的编码,直接由单片机的口输出方波信号控制红外发射管进行发射。
红外发射管采用普通的红外发射二极管。
3.2红外遥控接收电路的方案遥控系统采用红外线脉冲个数编码,直接利用单片机软件解码,实现功能的遥控。
3.3单片机的选择本设计所编写的程序比较简单,功能也比较少,所用到的输入输出端口也不是很多,所以我们决定用STC89C52单片机来完成本设计,既方便也很实用。
3.4红外遥控系统电路的原理框图以及各部分作用各部分作用:(1)行列式键盘行列式键盘又称为矩阵式键盘,用I/O线组成行列结构,按键设置在行列的交点上,行列式分别连接到按键开关的两端。
键盘中有无按键按下是由行线送入扫描字及列线读入列线状态字来判断的,有键按下时通过查键并执行键功能程序。
(2)红外线发射电路遥控器信息码由单片机的定时器1中断产生40KHZ红外线方波信号。
由P3.5口输出,经过三极管放大,由红外线发射管发送。
(3)单片机单片机用于输出方波信号控制红外发射电路的工作。
3.5红外接收部分原理框图以及各部分作用各部分作用: (1)+5V电源电路给单片机最小系统、控制电路提供以及红外接收电路提供电压。
(2)红外接收电路红外接收电路把接收到的状态在部进行解码,从而实现不同的功能。
(3)控制电路通过发射电路的按键实现对控制电路的控制作用。
3.6系统硬件电路的设计红外发射电路:红外接收电路:四、遥控发射及接收控制电路的软件设计4.1 软件设计流程图4.1.1键扫描程序流程图相应的按键扫描程序:#include<reg52.h>#define uint unsigned int#define uchar unsigned char#define keyrow P0#define keyline P2uchar code keyv[8]={1,2,4,8}; uchar keyscan(void){uchar keyval,i;keyval=0;keyrow=0xfe;if(keyline!=0xff)for(i=0;i<4;i++)if(~keyline==keyv[i]) keyval=i+1; keyrow=0xfd;if(keyline!=0xff)for(i=0;i<4;i++)if(~keyline==keyv[i]) keyval=i+5; keyrow=0xfb;if(keyline!=0xff)for(i=0;i<4;i++)if(~keyline==keyv[i]) keyval=i+9; keyrow=0xf7;if(keyline!=0xff)for(i=0;i<4;i++)if(~keyline==keyv[i]) keyval=i+13; while(keyline!=0xff);return(keyval);}红外信号发射过程:该遥控器采用脉冲个数编码,不同的脉冲个数代表不同的码,最小为2个脉冲,最大为17个脉冲,为了使接收可靠,第一位码宽为3ms,其余为1ms,遥控码数据帧间隔大于10ms 。
当某个被控电器的电源开关被按下时,单片机先读出键值,然后根据键值设定遥控码的脉冲个数,再调制成40kHz 方波由红外线发光管发身出去。
sbit remoteout=P3^5;extern void delay1ms(uint time);/*************初始化函数***********/void init(void) {remoteout=0;IE=0x00;IP=0x08;TMOD=0x22;TH1=0xf3;TL1=0xf3;EA=1;}/*****************发射函数***********/void send_infrared(uchar keyval){uchar m;ET1=1;TR1=1;delay1ms(3);ET1=0;TR1=0;remoteout=0;for(m=keyval;m>0;m--) {delay1ms(1);ET1=1;TR1=1;delay1ms(1);ET1=0;TR1=0;remoteout=0; }delay1ms(10);}/******************40KHZ发生器************/ void time_intt1(void) interrupt 3 {remoteout=~remoteout; }4.1.3遥控发射主程序流程图遥控发射的主程序流程图:首先初始化程序,然后调用键扫描程序。
相应的发射主程序如下:#include<reg52.h>#define uint unsigned int#define uchar unsigned charextern uchar keyscan(void);extern void init(void);extern void send_infrared(uchar keyval);void delay1ms(uint time) {uint i,j;for(i=0;i<time;i++)for(j=0;j<110;j++);}void main(){uint keyval;init();while(1){keyval=keyscan();while(keyscan());if(keyval) {send_infrared(keyval);}}}4.1.4 中断程序流程图中断过程:首先判断低电平脉宽度是否大于2ms,若脉宽不到2ms,则中断返回;若低电平大于2ms,则接收并对低电平脉冲计数,接下来看判断高电平脉宽度冲是否大于3ms,若脉宽不到3ms,则返回上一接收计数过程;若高电平脉宽大于3ms,则按照脉冲个数至对应功能程序。
此时中断返回。
相应的中断程序如下:#include<reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit remotein=P3^1;extern void delay1ms(uint time);uchar value;/***********初始化********/void clearmen(void){EX0=1;EA=1;}/**************外中断遥控接收函数**************/void intt0(void) interrupt 0{ uchar keyval,k,sign;EX0=0;sign=0;keyval=0;if(remotein==0){delay1ms(2);if(remotein==0)while(1){while(remotein==0);keyval++;k=0;delay1ms(1);while(remotein==1){delay1ms(1);k++;if(k>2){value=keyval-1;sign=1;break;}} if(sign) break;}}EX0=1;}4.1.5遥控接收器主程序流程图相应的接收主程序:#include<reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intextern void clearmen(void);extern uchar value;uchar temp;void delay1ms(uint time) {uint i,j;for(i=0;i<time;i++)for(j=0;j<110;j++);void youyi(void) //7个流水灯逐个闪动{ uint i;temp=0x01;for(i=0;i<8;i++){P2=~temp;delay1ms(1000);temp<<=1;}}void zuoyi(void) //7个流水灯反向逐个闪动{ uint i;temp=0x80;for(i=0;i<8;i++){P2=~temp;delay1ms(1000);Temp>>=1;}}void quanliang(void){uint i;temp=0xfe;for(i=0;i<8;i++) //7个流水灯依次全部点亮{P2=temp;delay1ms(1000);temp<<=1;}}void fquanliang(void){uint i;temp=0x7f;for(i=0;i<8;i++) //7个流水灯依次全部点亮{P2=temp;delay1ms(1000);Temp>>=1;}void main(){ clearmen();P0=0xff;while(1) {if(value==1) {P2=0xfe;}if(value==2) {P2=0xfd;}if(value==3) {P2=0xfb;}if(value==4 {P2=0xf7;}if(value==5) {P2=0xef;}if(value==6) {P2=0xdf;}if(value==7) {P2=0xbf;}if(value==8) {P2=0x7f;}if(value==9) {P1=0xfe;}if(value==10) {P1=0xfd;}if(value==11) youyi();if(value==12) zuoyi();if(value==13) quanliang();if(value==14) fquanliang();}}五、演示结果当按下键1时,发光二极管LED1亮;当按下键2时,发光二极管LED2亮;当按下键3时,发光二极管LED3亮;当按下键4时,发光二极管LED4亮;当按下键5时,发光二极管LED5亮;当按下键6时,发光二极管LED6亮;当按下键7时,发光二极管LED7亮;当按下键8时,发光二极管LED8亮;当按下键9时,发光二极管LED9亮;当按下键10时,发光二极管LED10亮;当按下键11时,发光二极管LED8-LED1依次渐亮;当按下键12时,发光二极管LED1-LED8依次渐亮;当按下键13时,发光二极管LED8-LED1依次全亮;当按下键14时,发光二极管LED1-LED8依次全亮;附录:1.程序:#include<reg52.h>#define uint unsigned int#define uchar unsigned char#define keyrow P0#define keyline P2uchar code keyv[8]={1,2,4,8};uchar keyscan(void){uchar keyval,i;keyval=0;keyrow=0xfe;if(keyline!=0xff)for(i=0;i<4;i++)if(~keyline==keyv[i]) keyval=i+1;keyrow=0xfd;if(keyline!=0xff)for(i=0;i<4;i++)if(~keyline==keyv[i]) keyval=i+5;keyrow=0xfb;if(keyline!=0xff)for(i=0;i<4;i++)if(~keyline==keyv[i]) keyval=i+9;keyrow=0xf7;if(keyline!=0xff)for(i=0;i<4;i++)if(~keyline==keyv[i]) keyval=i+13;while(keyline!=0xff);return(keyval);}sbit remoteout=P3^5;extern void delay1ms(uint time);/*************初始化函数***********/void init(void) {remoteout=0;IE=0x00;IP=0x08;TMOD=0x22;TH1=0xf3;TL1=0xf3;EA=1;}/*****************发射函数***********/void send_infrared(uchar keyval){uchar m;ET1=1;TR1=1;delay1ms(3);ET1=0;TR1=0;remoteout=0;for(m=keyval;m>0;m--) {delay1ET1=1;TR1=1;delay1ms(1);ET1=0;TR1=0;remoteout=0; } delay1ms(10);}/******************40KHZ发生器************/void time_intt1(void) interrupt 3 {remoteout=~remoteout; }extern uchar keyscan(void);extern void init(void);extern void send_infrared(uchar keyval);void delay1ms(uint time) {uint i,j;for(i=0;i<time;i++)for(j=0;j<110;j++);}void main(){uint keyval;init();while(1){keyval=keyscan();while(keyscan());if(keyval) {send_infrared(keyval);}}接收系统:#include<reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit remotein=P3^1;extern void delay1ms(uint time);uchar value;/***********初始化********/void clearmen(void){EX0=1;EA=1;}/**************外中断遥控接收函数**************/ void intt0(void) interrupt 0{ uchar keyval,k,sign;EX0=0;sign=0;keyval=0;if(remotein==0){delay1ms(2);if(remotein==0)while(1){while(remotein==0);keyval++;k=0;delay1ms(1);while(remotein==1){delay1ms(1);k++;if(k>2){value=keyval-1;sign=1;break;}} if(sign) break;}EX0=1;}接收主程序:extern void clearmen(void); extern uchar value;uchar temp;void delay1ms(uint time) { uint i,j;for(i=0;i<time;i++)for(j=0;j<110;j++);}void youyi(void){ uint i;temp=0x01;for(i=0;i<8;i++){P2=~temp;delay1ms(1000);temp<<=1;}}void zuoyi(void){ uint i;temp=0x80;for(i=0;i<8;i++){P2=~temp;delay1ms(1000);Temp>>=1;}}void quanliang(void) {uint i;temp=0xfe;for(i=0;i<8;i++){P2=temp;delay1ms(1000);temp<<=1;}void fquanliang(void){uint i;temp=0x7f;for(i=0;i<8;i++){P2=temp;delay1ms(1000);Temp>>=1;}}void main(){ clearmen();P0=0xff;while(1) {if(value==1) {P2=0xfe;}if(value==2) {P2=0xfd;}if(value==3) {P2=0xfb;}if(value==4 {P2=0xf7;}if(value==5) {P2=0xef;}if(value==6) {P2=0xdf;}if(value==7) {P2=0xbf;}if(value==8) {P2=0x7f;}if(value==9) {P1=0xfe;}if(value==10) {P1=0xfd;}if(value==11) youyi();if(value==12) zuoyi();if(value==13) quanliang();if(value==14) fquanliang();}}2.个人小结这次课程设计我们的题目是设计单片机遥控系统设计,以51单片机为基础通过红外发射与接收装置来实现信息的传递,通过这次课程设计,我学会了红外通信装置的使用以及它们之间编码的设计。