汽车中的红外遥控发射器和接收机设计
红外遥控智能小车系统设计毕业设计
安徽建筑工业学院毕业设计(论文)课题:红外遥控智能小车系统设计毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:日期:学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:日期:年月日导师签名:日期:年月日随着计算机、微电子、信息技术的快速进步,智能化技术的开发速度越来越快,智能度越来越高,应用范围也得到了极大的扩展。
智能作为现代的新发明,是以后的发展方向,它可以按照预先设定的模式在一个环境里自动的运作,不需要人为的管理,可应用于科学勘探等用途。
红外线遥控小车实验报告
课程设计实验报告题目:专业班级:姓名:学号:指导教师:一、实验目的采用无线通信的思想和方法设计制作红外线遥控小车,根据不同的需要设计他的传输信息的距离、稳定和抗干扰性,使它满足对小车精确遥控的目的。
在单片机控制下把红外线接收头收集到的信号进行运算,得到控制命令再将其通过连接了lm298控制芯片上的两个电机输出,从而实现对小车的无线控制。
二、实验原理从红外线发射发送红外线光信号,让位于小车上的红外线接收器接收到信号,通过单片机at89c52里的程序对信号进行解码,以实现对两个直流电机的控制,具体可分为前进、后退、左转、右转等功能。
三、实验程序#include"reg52.h"sbit IR=P3^2; //接红外sbit BEEP=P0^5; //接蜂鸣器sbit P0_0=P0^0;sbit P0_1=P0^1;sbit P0_2=P0^2;sbit P0_3=P0^3;sbit P1_0=P1^0;sbit P1_1=P1^1;sbit P1_2=P1^2;sbit P1_3=P1^3;unsigned char a[4];unsigned int LowTime,HighTime; //储存高、低电平的时间unsigned int LT,HT;void delay1ms() //延迟1ms{unsigned char a,b;for(b=102;b>0;b--)for(a=3;a>0;a--);}void delay(unsigned char n) //延迟若干毫秒{unsigned char i;for(i=0;i<n;i++)delay1ms();}void beep() //蜂鸣器响一声unsigned char i;for(i=0;i<100;i++){delay1ms();BEEP=!BEEP; //取反}BEEP=1; //关闭蜂鸣器}bit DeCode(void) //对4个字节的用户码和数据码进行解码{unsigned char i,j;unsigned char temp; // 存放解码出来的数据码for(i=0;i<4;i++) // 读取4个用户码和数据码{for(j=0;j<8;j++) // 每个码有8位数字{temp=temp>>1; // temp中的各数据位右移一位,因为先读出的是高位数据TH0=0; // 定时器清零TL0=0; // 定时器清零TR0=1; // 启动定时器T0while(IR==0); // 等待TR0=0; // 关闭定时器T0LowTime=TH0*256+TL0; // 保存低电平时间TH0=0;TL0=0;TR0=1;while(IR==1);TR0=0;HighTime=TH0*256+TL0;if((LowTime<370)||(LowTime>640))return 0; // 出错,停止解码if((HighTime>420)&&(HighTime<620))temp=temp&0x7f; // 该位是0if((HighTime>1300)&&(HighTime<1800))temp=temp|0x80; // 该位是1}a[i]=temp; //将解码出来的字节值储存在a[i]}return 1; //解码正确,返回1void main(){P0_0=1;P0_1=1;P0_2=1;P0_3=1;EA=1; //开总中断EX0=1; // 开外中断0ET0=1; // 定时器T0中断允许IT0=1; // 外中断的下降沿触发TMOD=0X01; // 使用定时器T0的模式1TR0=0; // 定时器T0关闭while(1); // 等待红外线...}void Int0(void) interrupt 0{EX0=0;TH0=0;TL0=0;TR0=1;while(IR==0);TR0=0;LowTime=TH0*256+TL0;TH0=0;TL0=0;TR0=1;while(IR==1);TR0=0;HighTime=TH0*256+TL0;if((LowTime>7800)&&(LowTime<8800)&&(HighTime>3600)&&(HighTime<4700)) {if(DeCode()==1){if(a[2]==0x14) // 前进{P0_0=0;P0_1=1;P1_0=0;P1_1=0;P1_2=1;P1_3=1;}if(a[2]==0x16) // 后退{P0_0=1;P0_1=0;P1_0=1;P1_1=1;P1_2=0;P1_3=0;}if(a[2]==0x1d) // 右转{P0_2=0;P0_3=1;delay(30);P0_2=1;P0_3=1;}if(a[2]==0x11) //左转{P0_2=1;P0_3=0;delay(30);P0_2=1;P0_3=1;}if(a[2]==0x15) // 停止{P0_0=1;P0_1=1;P1_0=0;P1_1=0;P1_2=0;P1_3=0;}if(a[2]==0x4d)//喇叭声{beep();delay(20);beep();}if(a[2]==0x49) //待机{P1_0=!P1_0;P1_1=P1_0;P1_2=P1_0;P1_3=P1_0;}}}EX0=1;}四、实验总结通过这次的实验,让本人对红外线的使用有了更加深入的了解。
远红外车辆检测装置的设计
远红外车辆检测装置的设计随着车辆数量的不断增加,交通安全问题也日益突出。
为了提高道路交通的安全性和效率,远红外车辆检测装置应运而生。
本文将介绍原理和应用。
远红外车辆检测装置是一种利用红外线传感技术进行车辆检测的装置。
其原理是通过发射红外线,当车辆经过装置时,红外线会被车辆吸收或反射,从而实现对车辆的检测。
相比传统的车辆检测方法,远红外车辆检测装置具有非接触、高精度、实时性强等优势。
在设计远红外车辆检测装置时,首先需要确定合适的红外线发射器和接收器。
发射器需要具备较高的发射功率和辐射角度,以确保红外线能够覆盖到车辆经过的区域。
接收器则需要具备高灵敏度和快速响应的特点,以准确捕捉到车辆的反射信号。
其次,设计者还需考虑装置的布置和安装方式。
一般来说,远红外车辆检测装置应安装在道路两侧,距离地面适当高度,以确保红外线能够有效地照射到车辆。
同时,装置之间的间距也需要根据道路宽度和交通流量来合理安排,以实现对多车道的同时检测。
最后,设计者还需考虑装置的数据处理和结果展示。
远红外车辆检测装置可以通过连接计算机或无线传输模块,将检测到的车辆信息传输到数据处理系统。
数据处理系统可以对车辆的数量、速度、车道占用等信息进行分析和统计,并将结果以图表或报警等形式展示给相关人员。
远红外车辆检测装置的应用非常广泛。
它可以应用于交通信号控制、交通流量监测、违章行为监测等方面。
通过准确地检测车辆的信息,可以提高交通信号的智能化和自适应性,优化交通流量的调度,降低交通事故的发生率。
总之,远红外车辆检测装置的设计原理简单而有效,应用广泛而重要。
随着科技的不断发展,相信远红外车辆检测装置将会在未来的交通领域发挥更加重要的作用,为人民出行提供更加安全、便利的交通环境。
一种简易的红外遥控开关原理与设计
一种简易的红外遥控开关原理与设计
红外遥控开关原理及设计
一、红外遥控开关原理
1、红外线的基本原理:红外线是一种由发射源发出的电磁波,波长超
出了可见光的范围,其实就是由一个简单的电子元件把相对较高的电
压调整成电磁波,然后被接收端的接收器接收,从而实现遥控的功能。
2、红外遥控开关原理:红外遥控开关是靠红外线来传输信号,就是发
射端由一个发射器发射红外信号,接收端的接收器能够接收这种信号,然后触发、控制或启动对应的终端电路,从而实现遥控的功能。
二、红外遥控开关设计
1、结构设计:主要由发射模块和接收模块组成,发射模块主要由发射
电路和发射灯组成,接收模块主要由接收灯、接收电路、逻辑电路及
功率电路组成。
2、电路设计:发射模块的电路设计,采用称为双稳晶体管简易发射电路,它基于的的发射原理比较常见和简单,接收模块的电路设计,采
用两种常见的接收原理:第一种是用集成晶体芯片实现的高速度脉冲
解码器,第二种是用普通的射频管实现的简易接收电路。
3、传输距离:发射端能够将红外信号发射出去,接收端便能够收到这
种信号,但信号发送的距离有限,因为红外线的能量随距离的增大而
逐渐减小,因此接收端需要进行距离衰减调整。
总结:红外遥控开关原理是通过发射端发射红外信号,接收端的接收
器能够接收到信号,从而实现遥控的功能;结构设计上,发射模块和
接收模块由发射电路和发射灯,接收灯、接收电路、逻辑电路及功率
电路组成;电路设计主要采用双稳晶体管简易发射电路和用集成晶体
芯片实现的高速度脉冲解码器、用普通的射频管实现的简易接收电路;传输距离受到红外线的能量衰减影响,因此接收端需要进行距离衰减
调整。
单片机红外遥控小车设计方案和制作
一、设计任务和要求以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。
图2 遥控发射器电路原理图2、红外线接收模块该模块使用一体化红外接收头1838,其电路如图3所示。
瓷片电容104为去耦电容,DOUT即是解调信号的输出端,直接与单片机的P3.2口相连。
有红外编码信号发射时,输出为检波整形后的方波信号,并直接提供给单片机。
红外遥控发射毕业设计
红外遥控发射毕业设计红外遥控发射毕业设计在现代科技的推动下,无线遥控技术得到了广泛的应用。
其中,红外遥控技术作为一种常见的无线遥控方式,被广泛应用于各种设备和系统中。
而作为一名即将毕业的学生,我选择了红外遥控发射作为我的毕业设计课题。
红外遥控发射是指通过红外线来控制设备的操作。
它的原理是利用红外线的特性,将指令通过红外线信号的形式传递给被控制的设备,从而实现对设备的遥控操作。
这种遥控方式具有操作简单、成本低廉、反应速度快等优点,因此得到了广泛的应用。
在我的毕业设计中,我主要关注的是红外遥控发射的硬件设计和信号传输的优化。
首先,我需要设计一个红外发射器的电路,包括红外发射二极管、电源电路、信号调制电路等。
通过对这些电路的设计和优化,我可以实现对红外信号的稳定发射和调制。
其次,我需要研究和优化红外信号的传输方式。
红外信号的传输受到环境因素的影响较大,如遮挡、干扰等。
因此,我需要通过合理的信号调制方式和传输协议,提高红外信号的传输质量和稳定性。
同时,我还需要考虑红外信号的传输距离和角度范围,以确保遥控操作的有效性。
在设计过程中,我将采用模块化设计的思路,将整个红外遥控发射系统划分为几个模块,包括红外发射电路模块、信号调制模块、传输协议模块等。
通过模块化设计,我可以更好地实现各个模块之间的独立性和可替换性,从而提高整个系统的可维护性和可扩展性。
在实际应用中,红外遥控发射技术被广泛应用于各种设备和系统中。
比如,家用电器中的电视遥控器、空调遥控器、音响遥控器等都是采用红外遥控发射技术。
此外,红外遥控发射技术还被应用于工业自动化、智能家居、无人机等领域。
红外遥控发射技术的应用前景广阔,但也面临一些挑战。
首先,随着无线通信技术的不断发展,红外遥控技术在某些方面已经被其他无线遥控技术所替代。
其次,红外信号的传输受到环境因素的影响较大,如遮挡、干扰等,这对红外遥控发射技术的可靠性和稳定性提出了要求。
总的来说,红外遥控发射作为一种常见的无线遥控方式,具有操作简单、成本低廉、反应速度快等优点,被广泛应用于各种设备和系统中。
红外遥控汽车毕业设计
红外遥控汽车毕业设计第1章概述1.1引言单片机以其强大的控制能力已经被广泛应用于诸多领域,配以各种接口传感器可以实现系统的智能化。
无论是在工业控制领域、医疗卫生领域、还是在国防军事领域、航天航空领域,微控制器都起着举足轻重的作用。
从最初的8位控制器到现在的16位、32位控制器都还有很大的发展和应用空间。
单片机的最明显的优势,就是可以嵌入到各种仪器、设备中。
这一点是巨型机和网络不可能做到的。
单片机在部已集成了越来越多的部件,这些部件包括一般常用的电路,例如:定时器,比较器,A/D转换器,D /A转换器,串行通信接口,Watchdog 电路,LCD控制器等。
电子技术的应用,将玩具的趣味性、科学性、艺术性和实用性很好地结合起来,不仅可使游戏者玩起来感到有趣,还可以激发其科学兴趣、开发儿童智力。
现今,大多数玩具发展成为会笑、会哭、会说、会动、会唱的引人入胜的电子类玩具。
电子技术的应用程度日益加深,电子玩具也日新月异,并且占玩具市场比重越来越大。
各种新型电子玩具层出不穷,其功能越来越丰富。
当今世界玩具产业发展趋势是人性化和科技化。
玩具集光、机、电等为一体,高科技电子玩具已是产业发展的主流。
1.2单片机的概要1.2.1 初识单片机所谓单片机,通俗的来讲,就是把中央处理器CPU(Central Processing Unit),存储器(memory),定时器,I/O(Input/Output)接口电路等一些计算机的主要功能部件集成在一块集成电路芯片上的微型计算机。
单片机又称为“微控制器MCU”。
中文“单片机”的称呼是由英文名称“Single Chip Microcomputer”直接翻译而来的。
单片机的主要分类:①、按应用领域可分为:家电类,工控类,通信类,个人信息终端类等等;②、按通用性可分为:通用型和专用型。
③、按总线结构可分为总线型和非总线型。
1.2.2 单片机的发展过程1971年intel 公司研制出世界上第一个4位的微处理器;1973年intel 公司研制出8位的微处理器8080;1976年intel 公司研制出MCS-48系列8位的单片机,这也是单片机的问世。
汽车中的红外遥控发射器和接收机设计
汽车中的红外遥控发射器和接收机设计
线遥控是目前应用最广泛的一种通信和遥控手段。
因为红外线遥控器具有体积小、功耗低、功能强、成本低等特点。
因此,彩电、录像机、音响设备、空调、玩具、门铃以及遥控汽车路牌等其它小型装置上也纷纷采纳红外线遥控。
为转变目前汽车上的车头路牌指示灯(以下简称车号器),无法灵便转变的缺陷,把红外遥控用在其中,使其可以轻松实现远距离、非接触性的一次转变车号的目的,从而转变以前用人工翻牌的旧模式。
一、汽车车号器的红外遥控系统
汽车上的车号器,原用容易的数码管控制,用法起来很不便利,为了能远离的控制它,就采纳了红外遥控。
通常红外遥控系统由放射和接收两部分组成,应用编/解码专用芯片来举行控制操作,1所示,放射部分包括键盘矩阵、编码调制、红外发送器。
接收部分包括光电转换、解调、解码电路。
红外发送每次编码的发送是一个键值,即一个十六进制的数据。
为了达到一次能发送一组数据(如车次号,通常为三位十进制数),我们可以采纳89C2051的软件编码/解码的办法,先一次性输入一组车号,按下发送键后,所有发送出;同时在接收时,用延续接收办法,一次性解码全部数据。
二、遥控放射器及其编码
遥控放射器的专用芯片无数,但在汽车车号器遥控中,采纳的是
89C2051 芯片。
用P1口组成矩阵扫描反馈,猎取键值,用内部的定时器1产生一个38K的软件定时中断,驱动P1.0产生一个38K的方波,当作红外线的调制基波,需要发送的数据,以串行方式,用波特率为1200,带奇偶校验的方式,挺直送至TXD的串口发送端,而后TXD和P1.0举行规律与后,经过40106整形,用驱动红外放射管挺直发出。
其原理图如下:
第1页共3页。
红外遥控数字式FM接收机设计
红外遥控小车设计报告
单片机技能与认证培训设计报告题目:红外遥控小车姓名:学号:系别专业:电信系班级:完成时间: 6月12日华南理工大学广州学院电子信息工程学院一、设计任务及要求用红外遥控的方式,控制小车模型前进、后退、左转、右转等功能。
二、设计方案以及元器件选取设计方案:本设计方案通过红遥控发射信号产生高低电平,用来提供给L298N,达到来控制电机的目的。
其中INA、INB、INC、IND的电平分别为一高一低,两个电机就能转动了。
小车尾部采用万向轮来辅助小车前进后退以及左右转。
元器件选取:L298N小车驱动89c52单片机hs0038红外接收器2个直流电机4节五号电池万向轮1个电解电容2个电阻、电容、晶振等最小系统部分元器件三、硬件电路1.最小系统部分如下图所示:复位电路采取按键复位电路。
晶振的作用则是为系统提供基本的时钟信号2.红外接受电路采用hs0038红外接收器,电路图如下3.小车驱动电路采用L298N来控制电机:四、软件设计红外专用的延迟函数:主函数部分如下五、调试以及结果1.第一次小车无法起动。
后发现原因是因为把hs0038的3个口弄错,误把第一个引脚当作GND,导致无法通过红外遥控小车行走。
后发现1为输出端,2为GND,3为VCC。
修改线路后成功通过遥控控制小车前后左右行走。
2.小车左轮部分齿轮在1个地方有时会卡住无法转动,需要人工转动下带动左轮转动,经过除尘、添加润滑油等措施后,卡住现象稍有减少,但无法完全避免。
六、总结通过这次实验,我们锻炼了自己的动手能力,了解了遥控小车的原理及制作过程,使我们的团队意识增强,经过几天的努力,完成了模块的设计与制作,完成了整个系统的编程、组装与调试。
基本上满足竞赛的要求,使用模块时,综合考虑电路的简单、电路的成本、以及电路的性能。
此次设计仍有一些问题没有得到完全解决,对一些器件的应用还不是很熟悉,因此在今后的学习中,更要好好学习知识,增加技能训练。
比如红外传感器的原理与应用的知识,光敏二极管的原理与应用电路等,当我们遇到不懂不会的问题时,我们能通过图书馆、网络等各种渠道学习想要知道的知识,有时候虽然只是一个很简单的小车模块,但使我们认识到自己所学的专业知识在实践中所出现的很大的不足。
红外遥控小车的基本原理
红外遥控小车的基本原理
红外遥控小车的基本原理是利用红外线传输和接收信号来实现远程控制小车的运动。
具体原理如下:
1. 遥控器:遥控器内有一个红外发射器,当按下不同的按键时,红外发射器会发射不同频率的红外信号。
2. 红外接收器:小车上装有一个红外接收器,用于接收遥控器发射的红外信号。
3. 编码器:红外接收器接收到红外信号后,会将信号进行解码,识别出遥控器发送的指令。
4. 控制电路:根据识别的指令,控制电路会对小车的电机进行相应的控制,使其前进、后退、左转或右转。
5. 电机:小车上装有电机,控制电路会向电机发送不同的电信号,使其转动,从而实现小车的运动。
通过遥控器发送红外信号,然后经过小车上的红外接收器和控制电路的处理,最终控制电机的运转,从而实现对小车的遥控操作。
设计和制作红外遥控式小车
设计和制作红外遥控式小车设计和制作红外遥控式小车论文关键字:AT89C51单片机直流电机红外线遥控循迹L298论文摘要:本文介绍创新设计制作一款红外线遥控小车,以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)组成。
红外发射和接收电路设计毕业设计论文
红外线的光谱位于红色光之外, 波长是0.76~1.5μm,比红光的波长还长。红外遥控是利用红外线进行传递信息的一种控制方式,红外遥控具有抗干扰,电路简单,容易编码和解码,功耗小,成本低的优点。红外遥控几乎适用所有家电的控制。红外遥控是以调制的方式发射数据,就是把数据和一定频率的载波进行“与”操作,这样既可以提高发射效率又可以降低电源功耗。目前有很多种芯片可以实现红外发射,可以根据选择发出不同种类的编码。由于发射系统一般用电池供电,这就要求芯片的功耗要很低,芯片大多都设计成可以处于休眠状态,当有按键按下时才工作,这样可以降低功耗芯片所用的晶振应该有足够的耐物理撞击能力。红外接收头的种类很多,引脚定义也不相同,一般都有三个引脚,包括供电脚,接地和信号输出脚。根据发射端调制载波的不同应选用相应解调频率的接收头。红外接收头内部放大器的增益很大,很容易引起干扰,因此在接收头的供电脚上须加上滤波电容,一般在22uf以上。
图 1.1红外线遥控系统框图
第1.2节
本设计主控芯片采用目前比较通用的MCS-51系列单片机。此类单片机的运算能力强,软件编程灵活,自由度大,市场上比较多见,价格便宜且技术比较成熟容易实现。
红外传输利用载波对信号进行调制从而减少信号传输过程中的光波干扰,提高数据传输效率。由单片机AT89S51定时器T0产生周期性的26.3的矩形脉冲,即每隔13us,定时器T0产生中断输出一个相反的信号使输出端产生周期的38KHz脉冲信号。再由单片机将键盘信息及系统识别码等数据调制在红外载波上经红外发射头发射出去。接收方由红外一体化接收头实现对接收信号的放大解调并还原为数据流,经由单片机解码后对相关IO口进行操作[3](如图 1.1)。
红外遥控发射与接收系统设计
红外遥控发射与接收系统设计摘要:9012 型红外遥控器被广泛用在家用电器和仪器仪表中,在了解了其发射的编码脉冲信号波形后,设计了基于单片机A T89C51 的红外遥控器解码器,对解码器硬件和相应软件进行分析并给出程序流程图,并且设计利用专用的CX20106红外接收集成电路接收红外信号。
将红外遥控器用在生产即时显示系统中,作为参数设置和系统控制用红外遥控器,既操作灵活方便,又能提高系统抗干扰能力,在实际中收到了良好的效果。
关键词:红外遥控器、单片机、解码器、专用接收电路、38kHz中图分类号:TP 368.2目录一、系统方案设计 (1)二、集成电路 (2)1、红外遥控发射电路 (2)2、红外遥控接收电路 (3)三、电路设计 (4)1、红外编码发射电路设计 (4)1.1、元器件选择 (4)1.2、集成芯片资料 (4)1.3、单元电路设计 (5)2、红外接收解码电路设计 (6)2.1、元器件选择 (6)2.2、集成芯片资料 (7)2.3、单元电路设计 (11)四、计算机仿真 (14)五、系统测试 (14)六、结论 (14)6.1、总结 (14)6.2、心得体会 (14)6.3、参考文献 (15)七、附录 (15)随着远程教育系统的不断发展和日趋完善,利用多媒体作为教学手段在各学校都得到了广泛应用。
近年来,在多媒体教学系统的开发和研制中,经常遇到红外遥控设备,如:数字投影机、DVD 、VCD 、录像机、电视机等,红外线摇控是目前使用最广泛的一种通信和摇控手段。
由于红外线摇控具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机、音响设备、空调机,以及玩具等到其他小型电器装置上也纷纷采用红外线摇控。
在工业设备中,在高压、辐射、有气体、粉尘等环境下,采用红外线摇控不但安全可靠而且能有效地隔离电气干扰。
在人们懂得了用电的开始,机械动作式的开关就开始与人类相伴,到了科技相当发达的当今时代,传统的按键式和拉线式开关仍然是照明开关的主体,凭借其较为简单的结构、低廉的售价和方便的安装使用方法,牢固地占领着市场。
智能小汽车红外遥控器信号接收和实现的设计
电子电路毕业设计总结报告题目:红外遥控器信号接收和现实的设计摘要随着电子技术的发展,红外遥控器越来越多用到电气设备中,为电器用户提供了极大的方便。
但是各种型号的遥控器的大量使用带来的遥控器的大批量多品种的生产检测却是一个难题,因此红外遥控器接受和显示的设计实现以改变生产一线的这种状况成为一种迫切的需要。
在本实验的设计中,采用HS0038塑封一体化红外线接收器,不需要任何外接元件,就能完成从红外线接收到输出与TTL电平信号兼容的所有工作,而且体积和普通的塑封三极管大小一样,它适合于各种红外线遥控和红外线数据传输。
整个电路分为四个模块:单片机最小系统、通信模块、红外接收模块以及数码管显示模块。
四个模块的相互连接配合实现了数码管显示遥控器的按键值以及当按下左右键时,数码管上实现流水灯现象,并通过串口调试助手,在PC机上显示其按键值。
此设计加以完善推广,可在生产生活中被广泛的应用。
目录一课题的任务与要求 (4)二系统概述 (4)三单元电路设计与分析 (6)四安装调试及测量数据分析 (8)五结束语 (10)六附录 (10)一课题的任务与要求结合单片机最小电路和红外接收接口电路共同设计一个基于单片机的红外遥控信号接收与转发系统,用普通电视机遥控器控制该系统,使数码管显示信号的接受结果。
1 当遥控器按下数字键时,在数码管上显示其键值。
如按下数字键1,则在数码管上显示号码“01”。
2当遥控器按下左键及右键时,用两位数码的周围段实现顺时针或者逆时针旋转的流水灯功能。
*3 运用串口调试助手,在遥控器有按键按下时,将其键值显示在PC机上。
二系统概述1 设计方案为了实现系统整体功能,红外解码部分是核心,红外解码指将遥控发射器所产生的红外遥控编码脉冲所对应的键值翻译出来的过程。
下面将系统方案做一论证,通常有硬件解码和软件解码两种方案。
方案一: 硬件解码此方案中,使用专用遥控器作为控制信号发出装置,当按下遥控器的按键后,一体化红外接收装置接收到遥控器发出的设置控制信号,然后将信号送到专用的解码芯片中进行解码,解码后将信号送到单片机,由单片机查表判断这个信号是按键数值信号或控制音量、频道等信号,当确认是何种信号后,启动子程序,然后进行查询。
汽车行驶信息发送与接收器的设计 毕业设计
汽车行驶信息发送与接收器的设计序言现代社会,汽车越来越多,行车安全成为司机和司机家人关注的首要问题。
在现代交通中,汽车超车及转弯时经常容易出交通意外,特别是雨雾天气,转向及刹车指示灯能见度减小,使驾驶员不能及时了解前后车的行驶意向。
在汽车上设计一种汽车间行驶信息红外线自动接收发送电路,能自动显示前后车的转向、刹车情况并用声响提醒,对提高汽车行驶安全具有一定的意义。
单片机的英文名称是Micro Controller unit,缩写为MCU,又称为微控制器,它是一种面向控制的大规模集成电路芯片。
它应用简单灵活,使用非常广泛,但存在无法实时保存大量的数据、实时更新数据等缺点,因此经常需要把单片机和PC机的优势相结合组成系统。
PC和单片机之间的通信方式有有线和无线通信技术之分,同时通讯连接方式有多种,如利用微机的串口、并口或专门的I/O板进行数据传送,单片机通过共享通道的方法挂在上述总线上。
采用红外线通讯方案具有廉价、近距离、无线、低功耗、保密性强等优点。
应用时应根据实际需要进行选择。
因此,本文设计了一个将单片机AT89C51与红外线发送接收进行结合的系统电路。
选择了汽车左转弯、右转弯和刹车3种汽车行驶状态作为发送信息,接受信息有前车左转弯、前车右转弯、前车刹车和后车超车4种显示信息。
在汽车行驶中,当前车转弯、刹车或后车超车时都能在本汽车上显示并发出声响提醒。
第1章系统总体设计系统总体设计汽车超车及转弯时经常容易出交通意外,特别是雨雾天气,转向及刹车指示灯能见度减小,使驾驶员不能及时了解前后车的行驶意向。
在汽车上设计一种汽车间行驶信息红外线自动接收发送电路,能自动显示前后车的转向、刹车情况并用声响提醒。
因此,本设计是一个简单的将单片机AT89C51与红外线发送接收进行结合的系统电路。
系统可以实现前车左转弯、右转弯、刹车,以及后车超车时进行显示并发出声响提醒。
1.1 硬件设计思路本系统通过触发开关来实现电路的“发送”和“接收”功能,前车转弯、刹车时,按下发送按钮,后车就能接收到信息,后车超车时,按下按钮,前车就能收到信号,并发车声响提醒。
基于单片机的红外遥控小车系统设计
红外接收与控件电路原理图:141红外遥控器原理图:红外遥控器实物图:红外接收与控制实物图:程序:接收控制主程序:#include<reg52.h>#include "hongwai.c"#include "5110.c"sbit hy=P0^0;//LED指示灯sbit hz=P2^0;sbit qy=P1^4;sbit qz=P3^7;sbit djf1=P1^0;//电机1的方向控制sbit djd1=P1^1;//电机1的动力控制sbit djf2=P1^2;//电机2的方向控制sbit djd2=P1^3;//电机2的动力控制unsigned char flag,flag1,PW;bit fan,fan1,tf=0;unsigned char fafg=0;unsigned char time_flag;unsigned char data time[2];//=====================================//ms延时//===================================== void delayms(unsigned int ms){unsigned char i;while(ms--)for(i=0;i<120;i++);}//=====================================//LED灯闪烁//===================================== void LED(unsigned char ms){unsigned char i;for(i=0;i<ms;i++){delayms(200);qz=~qz;qy=~qy;hz=~hz;hy=~hy;}}//======================================//控制//=====================================void kongzi(void){switch(shu[2]){case 0x20: {//前进fafg=1;qz=qy=0;hz=hy=1;TR1=ET1=1;djd1=djd2=1;djf1=djf2=0;fan=0;break;}case 0x30: {//后退fafg=2;qz=qy=1;hz=hy=0;TR1=ET1=1;djd1=djd2=1;djf1=djf2=1;fan=1;break;}case 0x40: {//前左转弯fafg=3;djf1=djf2=0;qz=0;qy=hz=hy=1;djd1=1;djd2=0;fan1=0;TR1=ET1=1;break;}case 0x60: { //后左转弯fafg=4;djf1=djf2=1;hz=0;hy=qz=qy=1;djd1=1;djd2=0;fan1=0;TR1=ET1=1;break;}case 0x50: {//前右转弯fafg=5;djf1=djf2=0;qy=0;qz=hy=hz=1;djd1=0;djd2=1;fan1=1;TR1=ET1=1;break;}case 0x70: { //后退fafg=6;djf1=djf2=1;hy=0;hz=qz=qy=1;djd1=0;djd2=1;fan1=1;TR1=ET1=1;break;}case 0x80: {if(tf==1){qy=qz=hy=hz=1;TR1=ET1=0;djd1=djd2=0;NOKIA5110_clear(); // 清屏W_LCD_chinese(20,0,21);//停W_LCD_chinese(40,0,22);//止W_LCD_zifu(15,3,time[1]/10);// W_LCD_zifu(23,3,time[1]%10);// W_LCD_zifu(33,3,11);//:W_LCD_zifu(42,3,time[0]/10);//W_LCD_zifu(50,3,time[0]%10);//time[0]=time[1]=0;tf=0;}break;}}}//***********************************************//显示//************************************************ void LCD_display(void){NOKIA5110_clear(); // 清屏W_LCD_zifu(15,3,time[1]/10);//W_LCD_zifu(23,3,time[1]%10);//W_LCD_zifu(33,3,11);//:W_LCD_zifu(42,3,time[0]/10);//W_LCD_zifu(50,3,time[0]%10);//if(fafg==1){W_LCD_chinese(20,0,0);//前W_LCD_chinese(40,0,1);//进}if(fafg==2){W_LCD_chinese(20,0,2);//后W_LCD_chinese(40,0,3);//退}if(fafg==3){W_LCD_chinese(5,0,0);//前W_LCD_chinese(25,0,4);//左W_LCD_chinese(45,0,5);//转W_LCD_chinese(65,0,6);//弯}if(fafg==4){W_LCD_chinese(5,0,2);//后W_LCD_chinese(25,0,4);//左W_LCD_chinese(45,0,5);//转W_LCD_chinese(65,0,6);//弯}if(fafg==5){W_LCD_chinese(5,0,0);//前W_LCD_chinese(25,0,7);//右W_LCD_chinese(45,0,5);//转W_LCD_chinese(65,0,6);//弯}if(fafg==6){W_LCD_chinese(5,0,2);//后W_LCD_chinese(25,0,7);//右W_LCD_chinese(45,0,5);//转W_LCD_chinese(65,0,6);//弯}}//=====================================//定时器T1//===================================== void wan_T1(void) interrupt 3{time_flag++;tf=1;TH1=(65536-50000)/256;TL1=(65536-50000)%256;if(time_flag>15){time[0]++;time_flag=0;if(time[0]>59){time[0]=0;time[1]++;if(time[1]>59) time[1]=0;}}}//=====================================//主函数//=====================================void main(void){djd1=djd2=0;NOKIA5110_init();NOKIA5110_clear(); // 清屏W_LCD_chinese(0,0,8);//正delayms(100);W_LCD_chinese(15,0,9);//在delayms(100);W_LCD_chinese(30,0,10);//初delayms(100);W_LCD_chinese(45,0,11);//始delayms(100);W_LCD_chinese(60,0,12);//化delayms(100);W_LCD_chinese(10,3,13);//请delayms(100);W_LCD_chinese(25,3,14);//稍delayms(100);W_LCD_chinese(40,3,2);//后delayms(100);W_LCD_zifu(60,3,10);//...PW=20;TH1=(65536-50000)/256;TL1=(65536-50000)%256;IP=0x09;//设置中断优先级IPH=0x08;open_interrupt();TR1=ET1=0;LED(10);qy=qz=hy=hz=1;NOKIA5110_clear(); // 清屏 W_LCD_chinese(1,0,10);//初delayms(100);W_LCD_chinese(16,0,11);//始delayms(100);W_LCD_chinese(31,0,12);//化delayms(100);W_LCD_chinese(46,0,15);//完delayms(100);W_LCD_chinese(61,0,16);//成delayms(100);W_LCD_chinese(0,3,17);//等delayms(100);W_LCD_chinese(15,3,18);//待delayms(100);W_LCD_chinese(30,3,19);//信delayms(100);W_LCD_chinese(45,3,20);//号delayms(100);W_LCD_zifu(65,3,10);//...while(1){kongzi();if(tf==1&&time_flag==7) LCD_display();}}红外解码:/*************************************************************************//**** 红外解码/*** 晶振:11.0592MHZ/*** 数据口:外中断0/*** 计数器:定时器T0/************************************************************************/#include<reg52.h>sbit Dat=P3^2; //数据口bit tru;unsigned char shu[4];/****************开中断************************/void open_interrupt(void){TMOD=0x11; //定时器T0工作在方式1IT0=1; //中断0在下降沿触发TR0=1;EX0=1; //开外部中断0EA=1; //开中断}/**************接收数据**********************/void R_Dat(void) interrupt 0{unsigned char i,j;unsigned int dtime=0;unsigned char temp;// P1=0xff;TH0=TL0=0;while(!Dat){if(TH0*256+TL0>20000) return;}while(Dat)if(TH0*256+TL0>20000) return;dtime=TH0*256+TL0;TH0=TL0=0;if(8000<dtime&&dtime<14000) //9MS的引导码+4.5MS的结束码{for(i=0;i<4;i++){temp=0;for(j=0;j<8;j++){while(!Dat){if(TH0*256+TL0>20000) return;}while(Dat){if(TH0*256+TL0>20000) return;}dtime=TH0*256+TL0;TH0=TL0=0;if(1450<dtime&&dtime<3000) {temp=(temp>>1)|0x80;}//是否为1 else if(700<dtime&&dtime<1450) {temp=(temp>>1)|0x00;}//是否为0}shu[i]=temp;}if(shu[0]==~shu[1]&&shu[2]==~shu[3]) tru=1;//查错}}LCD5110驱动程序:#include<reg52.h>#include "ziku.C"//-----------------管脚定义-------------------------sbit LCD_sce = P2^7; //片选,低最平有效sbit LCD_rst = P2^6; //复位,0复位sbit LCD_dc = P2^5; //1写数据,0写指令sbit LCD_sdin = P2^4; //数据sbit LCD_sclk = P2^3; //时钟//********************************************************************** // NOKIA5110_w_byte : 使用SPI接口写数据到LCD// 输入参数:data :写入的数据;// command :写数据/命令选择;//********************************************************************** void NOKIA5110_w_byte(unsigned char dat,unsigned char command){unsigned char i;LCD_sce=0; //LCD使能LCD_dc=command;//for(i=0;i<8;i++) //传输8位数据(1个字节){if(dat&0x80) LCD_sdin=1;else LCD_sdin=0;dat=dat<<1;LCD_sclk=0;LCD_sclk=1;}LCD_sce=1; //LCD不使能}//**********************************************************************//NOKIA5110_init : LCD初始化//**********************************************************************void NOKIA5110_init(void){unsigned char k;LCD_rst=0;for(k=0;k<250;k++);LCD_rst=1;//-------------------------------------------------------------NOKIA5110_w_byte(0x21, 0); // 使用扩展命令设置LCD模式NOKIA5110_w_byte(0xd0, 0); // 设置偏置电压NOKIA5110_w_byte(0x06, 0); // 温度校正NOKIA5110_w_byte(0x13, 0); // 1:48NOKIA5110_w_byte(0x20, 0); // 使用基本命令NOKIA5110_w_byte(0x0c, 0); // 设定显示模式,正常显示}//**********************************************************************// NOKIA5110_set_XY : 设置LCD坐标函数// 输入参数:X:0-83// Y:0-5//**********************************************************************void NOKIA5110_set_XY(unsigned char x, unsigned char y){NOKIA5110_w_byte(0x40 | y, 0); // 列(竖)NOKIA5110_w_byte(0x80 | x, 0); // 行(横)}//*********************************************************************//写汉字到LCD//*********************************************************************void W_LCD_chinese(unsigned char X,unsigned char Y,unsigned char dat)unsigned char i;NOKIA5110_set_XY(X,Y);for(i=0;i<16;i++) NOKIA5110_w_byte(hanzi[dat][i],1);NOKIA5110_set_XY(X,Y+1);for(i=16;i<32;i++)NOKIA5110_w_byte(hanzi[dat][i],1);}//*********************************************************************//写字符到LCD5110//********************************************************************* void W_LCD_zifu(unsigned char X,unsigned char Y,unsigned char dat){unsigned char i;NOKIA5110_set_XY(X,Y);for(i=0;i<8;i++) NOKIA5110_w_byte(zifu[dat][i],1);NOKIA5110_set_XY(X,Y+1);for(i=16;i<24;i++)NOKIA5110_w_byte(zifu[dat][i],1);}//**********************************************************************//NOKIA5110_clear : LCD清屏//**********************************************************************void NOKIA5110_clear(void){unsigned char t;unsigned char k;NOKIA5110_set_XY(0,0);for(t=0;t<6;t++){for(k=0;k<84;k++)NOKIA5110_w_byte(0x00,1);}}字库:unsigned char code zifu[][32]={{0xF0,0xF8,0x0C,0x04,0x0C,0xF8,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0 0,0x00,0x03,0x07,0x0C,0x08,0x0C,0x07,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*以上为"0"的点阵*/{0x00,0x10,0x18,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x08,0x08,0x0F,0x0F,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*以上为"1"的点阵*/{0x08,0x0C,0x84,0xC4,0x64,0x3C,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x0E,0x0F,0x09,0x08,0x08,0x0C,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*以上为"2"的点阵*/{0x08,0x0C,0x44,0x44,0x44,0xFC,0xB8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x04,0x0C,0x08,0x08,0x08,0x0F,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*以上为"3"的点阵*/{0xC0,0xE0,0xB0,0x98,0xFC,0xFC,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0 0,0x00,0x00,0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*以上为"4"的点阵*/{0x00,0xF8,0x98,0x48,0x48,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x1C,0x10,0x20,0x20,0x18,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*以上为"5"的点阵*/,0x00,0x00,0x0F,0x19,0x20,0x20,0x30,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*以上为"6"的点阵*/{0x00,0x08,0x08,0x08,0x08,0xE8,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x38,0x1F,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*以上为"7"的点阵*/{0x00,0x70,0xD8,0x08,0x08,0xD8,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x1E,0x31,0x21,0x21,0x31,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*以上为"8"的点阵*/{0x00,0xF0,0x18,0x08,0x08,0x18,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x19,0x33,0x22,0x22,0x19,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*以上为"9"的点阵*/{0x80,0x80,0x00,0x80,0x80,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x01,0x01,0x00,0x01,0x01,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*10以上为"..."的点阵*/{0x00,0x00,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*11以上为":"的点阵*/};unsigned char code hanzi[][32]={{0x00,0x08,0x08,0xC8,0x48,0x4A,0x4C,0xC8,0x08,0x08,0xCE,0x0A,0x08,0xE8,0x 08,0x00,0x00,0x00,0x80,0xFF,0x09,0x09,0x49,0x7F,0x00,0x00,0x0F,0x40,0x40,0x7F,0x00,0x00},/*0以上为"前"的点阵*/{0x00,0x40,0x44,0xC8,0x00,0x10,0x10,0x10,0xFE,0x10,0x10,0xFE,0x10,0x10,0x10 ,0x00,0x00,0x60,0x20,0x3F,0x20,0x21,0x51,0x4F,0x41,0x41,0x41,0x5F,0x41,0x41,0x41,0x00},/*1以上为"进"的点阵*/0x00,0x00,0x20,0x3C,0x07,0x00,0x7E,0x22,0x22,0x22,0x22,0x22,0x22,0x7E,0x00,0x00,0x00},/*2以上为"后"的点阵*/{0x00,0x80,0x84,0x9C,0x00,0x00,0xFC,0x54,0x54,0x54,0x54,0x54,0x7C,0x7C,0x0 0,0x00,0x00,0x40,0x60,0x3F,0x20,0x20,0x5F,0x50,0x48,0x4B,0x42,0x44,0x4E,0x59,0x40,0x00},/*3以上为"退"的点阵*/{0x00,0x00,0x10,0x10,0x10,0x90,0x7C,0x1E,0x10,0x10,0x10,0x10,0x10,0x10,0x10 ,0x00,0x00,0x10,0x10,0x0C,0x46,0x41,0x41,0x41,0x41,0x7F,0x41,0x41,0x41,0x41,0x40,0x00},/*4以上为"左"的点阵*/{0x00,0x88,0xE8,0x1E,0xCA,0x08,0x08,0x40,0x48,0xC8,0x7E,0x48,0x48,0x48,0x4 8,0x00,0x00,0x09,0x09,0x09,0x7F,0x09,0x05,0x00,0x10,0x13,0x22,0x72,0xCE,0x06,0x02,0x00},/*5以上为"转"的点阵*/{0x00,0x44,0x64,0xB4,0x94,0x84,0xFC,0x86,0x86,0xFC,0x84,0x84,0x94,0x24,0x4 4,0x00,0x00,0x00,0x00,0x0E,0x0A,0x0A,0x0A,0x0A,0x0A,0xCA,0x4A,0x4A,0x7B,0x18,0x00,0x00},/*6以上为"弯"的点阵*/{0x00,0x10,0x10,0x10,0x10,0x90,0x70,0x1E,0x12,0x10,0x10,0x10,0x10,0x10,0x10, 0x00,0x00,0x08,0x08,0x04,0x43,0x7F,0x21,0x21,0x21,0x21,0x21,0x21,0x7F,0x00,0x00,0x00},/*7以上为"右"的点阵*/{0x00,0x00,0x08,0xC8,0xC8,0x08,0x08,0x08,0xF8,0x88,0x88,0x88,0x88,0x08,0x00 ,0x00,0x00,0x20,0x20,0x3F,0x3F,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x20,0x00},/*8以上为"正"的点阵*/{0x00,0x00,0x08,0x08,0x88,0xE8,0x38,0x0E,0x08,0x08,0xE8,0x08,0x08,0x08,0x08 ,0x00,0x00,0x04,0x06,0x03,0x7F,0x20,0x21,0x21,0x21,0x21,0x3F,0x21,0x21,0x21,0x20,0x00},/*9以上为"在"的点阵*/{0x00,0x00,0x10,0x90,0xD6,0x30,0x80,0x80,0x08,0x08,0xF8,0x08,0x08,0x08,0xF8 ,0x00,0x00,0x06,0x03,0x01,0x7F,0x03,0x47,0x64,0x30,0x0E,0x03,0x40,0x60,0x7C,0x1F,0x00},/*10以上为"初"的点阵*/,0x00,0x00,0x40,0x63,0x34,0x0E,0x1B,0x10,0x00,0x7E,0x22,0x22,0x22,0x22,0x7E,0x00,0x00},/*11以上为"始"的点阵*/{0x00,0x80,0xC0,0x30,0xFC,0x06,0x00,0x00,0x00,0xFE,0x80,0xC0,0x60,0x10,0x0 0,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x04,0x04,0x02,0x7F,0x41,0x40,0x40,0x60,0x30,0x00},/*12以上为"化"的点阵*/{0x00,0x20,0x10,0xF6,0x00,0x00,0x44,0x54,0x54,0x54,0x7E,0x54,0x54,0x54,0x44, 0x00,0x00,0x00,0x00,0x7F,0x10,0x08,0x00,0xFF,0x15,0x15,0x15,0x15,0xD5,0x7F,0x00,0x00},/*13以上为"请"的点阵*/{0x00,0x40,0x44,0xFC,0xFC,0x46,0x40,0x04,0xD8,0x40,0x7E,0x42,0x50,0xC8,0x0 4,0x00,0x00,0x08,0x06,0x7F,0x7F,0x03,0x06,0x00,0xFF,0x09,0x09,0x09,0x49,0xFF,0x00,0x00},/*14以上为"稍"的点阵*/{0x00,0x00,0x38,0x08,0x68,0x48,0x48,0x4A,0x4E,0x48,0x48,0x68,0x08,0x38,0x00, 0x00,0x00,0x40,0xC1,0x41,0x21,0x1D,0x07,0x01,0x01,0x7F,0x41,0x41,0x41,0x71,0x21,0x00},/*15以上为"完"的点阵*/{0x00,0x00,0x00,0xF0,0x90,0x90,0x90,0x10,0x10,0xFE,0x10,0x12,0xD6,0x10,0x10 ,0x00,0x00,0x40,0x78,0x0F,0x00,0x10,0x5F,0x40,0x60,0x37,0x1C,0x1F,0x61,0x40,0x60,0x00},/*16以上为"成"的点阵*/{0x00,0x10,0x18,0x46,0x46,0x7C,0x44,0x44,0xF0,0x5C,0x46,0x44,0x5C,0x14,0x0 4,0x00,0x00,0x02,0x0A,0x0A,0x0A,0x2A,0x6A,0x0A,0x0B,0xCA,0x4A,0x7E,0x0A,0x0A,0x0A,0x00},/*17以上为"等"的点阵*/{0x00,0x00,0x10,0xCC,0x66,0x20,0x48,0x48,0x48,0x7E,0x4A,0x48,0xC8,0x48,0x4 0,0x00,0x00,0x02,0x01,0x7F,0x00,0x02,0x02,0x0A,0x12,0x02,0x42,0x42,0x7F,0x02,0x02,0x00},/*18以上为"待"的点阵*/{0x00,0x80,0x60,0xFC,0x06,0x88,0xA8,0xA8,0xA8,0xAA,0xAC,0xA8,0xA8,0xA8,0x 88,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x7C,0x24,0x24,0x24,0x24,0x24,0x7C,0x00,0x00},/*19以上为"信"的点阵*/{0x00,0x80,0x80,0xA0,0xBC,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xBC,0x80,0x 80,0x00,0x00,0x00,0x00,0x00,0x04,0x07,0x04,0x04,0x44,0x44,0x44,0x74,0x1C,0x00,0x00,0x00},/*20以上为"号"的点阵*/{0x00,0xC0,0x70,0xFE,0x02,0x04,0x14,0x74,0x54,0x56,0x56,0x54,0x54,0x74,0x04 ,0x00,0x00,0x00,0x00,0x7F,0x00,0x03,0x01,0x05,0x45,0x45,0x7D,0x05,0x05,0x05,0x03,0x00},/*21以上为"停"的点阵*/{0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0xFE,0x40,0x40,0x40,0x40,0x40,0x00 ,0x00,0x00,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x20,0x00}/*22以上为"止"的点阵*/};红外遥控器程序:#include<reg52.h>sbit ir=P1^1;//红外输出//sbit P1_0=P1^0;sbit LED=P1^2;sbit qian=P2^1;sbit hou=P2^2;sbit zuo=P2^5;sbit you=P2^7;bit flag;unsigned int flag1;//=====================================//MS延时函数//=====================================void delayms(ms){while(ms--)for(i=0;i<120;i++);}//=====================================//定时器T0初始化//=====================================void T0_init(void){TMOD=0x02;TH0=0xe6;TL0=0xe6;EA=ET0=1;}//====================================//定时器T0中断函数//====================================void Timer0(void) interrupt 1{flag1++;if(flag) ir=~ir;else ir=0;}//===================================//数据处理//=================================== void cend_data(unsigned char add,unsigned char dat){unsigned char unadd,undat;unsigned char i;unadd=~add;undat=~dat;TH0=0xe6;TL0=0xe6;LED=~LED;flag1=0;flag=1;while(flag1<300); //9MS初始码flag1=0;flag=0;while(flag1<150);//4.5MS结束码for(i=0;i<8;i++) //发送用户码{flag1=0;flag=1;while(flag1<18);bir=(add>>i)&0x01;flag1=0;flag=0;if(bir==0x01) while(flag1<56);else while(flag1<18);}for(i=0;i<8;i++) //发送用户反码{flag1=0;flag=1;while(flag1<18);bir=(unadd>>i)&0x01;flag1=0;flag=0;if(bir==0x01) while(flag1<56);else while(flag1<18);}for(i=0;i<8;i++) //发送数据码{flag1=0;flag=1;while(flag1<18);bir=(dat>>i)&0x01;flag1=0;flag=0;if(bir==0x01) while(flag1<56);else while(flag1<18);}for(i=0;i<8;i++) //发送数据反码{flag1=0;flag=1;while(flag1<18);bir=(undat>>i)&0x01;flag1=0;flag=0;if(bir==0x01) while(flag1<56);else while(flag1<18);}flag1=0;flag=1;while(flag1<10);flag=0;}//=============================//主函数//=============================void main(void){T0_init();//TR0=1;LED=0;while(1){if(!qian==1&&zuo!=0&&you!=0)//前进{TR0=1;while(!qian==1&&zuo!=0&&you!=0) {cend_data(0x08,0x20);delayms(100);}TR0=0;LED=0;}elseif(!hou==1&&zuo!=0&&you!=0)//后退{TR0=1;while(!hou==1&&zuo!=0&&you!=0) {cend_data(0x08,0x30);delayms(100);}TR0=0;LED=0;}elseif(!zuo==1&&!qian==1)//前左转弯{TR0=1;while(!zuo==1&&!qian==1) {cend_data(0x08,0x40);delayms(100);}TR0=0;LED=0;}elseif(!you==1&&!qian==1)//前右转弯{TR0=1;while(!you==1&&!qian==1) {cend_data(0x08,0x50);delayms(100);}TR0=0;LED=0;}elseif(!zuo==1&&!hou==1)//后左转弯{TR0=1;while(!zuo==1&&!hou==1) {cend_data(0x08,0x60);delayms(100);}TR0=0;LED=0;}elseif(!you==1&&!hou==1)//后右转弯{TR0=1;while(!you==1&&!hou==1) {cend_data(0x08,0x70);delayms(100);}TR0=0;LED=0;}else //停止{TR0=1;cend_data(0x08,0x80);delayms(50);TR0=0;LED=0;}}}。
智能小车红外导航系统设计
智能小车红外导航系统学生姓名:学生学号:院(系):电气信息工程学院年级专业:指导教师:助理指导教师:二〇一五年五月摘要摘要随着科学技术的急速发展,人类探索大自然的脚步越来越远。
然而,大自然中有很多不适合人类步入的恶劣环境。
所以就需要智能机器人替代人类进行探索。
在机器人探索过程中智能导航起到很重要的作用,为了避免机器人在运行过程中被障碍物所阻碍,就需要使用传感器实现避免障碍物阻碍。
传感器是智能小车在运动过程中避免碰撞的最后一道保护。
为了让智能小车能够像人一样在碰到障碍物之前就能发现并避开它,需要用到非接触检测传感器,如视觉摄像头。
在小型的智能小车制作中,采用摄像头视觉显然是一种比较复杂且成本昂贵的选择。
AT89S52单片机是一种功耗低、性能高8位的CMOS 微控制器,拥有8K的系统可编程Flash存储器。
使用美国Atmel公司的高密度不易失性存储器技术制造的,它和工业上的80C51系列产品指令和引脚完全兼容。
AT89S52单片机的片上Flash允许程序储存器在系统可以编程,也适用在常规的编程器上。
在单芯片上,AT89S52单片机拥有很灵巧的8位CPU和系统可编程Flash,这些优势使得AT89S52单片机广泛应用在众多的嵌入式控制应用系统中。
本设计使用价格非常便宜且应用广泛的红外线(IR)部件进行通信和测量,采用AT89S52单片机为控制核心,利用红外传感器检测道路上的障碍,控制智能小车的伺服电机运行实现小车的自动避障。
控制机器人运动的伺服电机以不同速度旋转是通过让单片机的输入/输出(I/O)接口输出不同的脉冲序列来实现的。
从单片机的引脚开始,对各引脚进行分配,使伺服电机与红外传感组受到单片机的控制。
然后对红外传感器组进行电路设计。
最后用程序让整个系统各行其职。
整个系统的电路结构简单,可靠性能高。
通过实验的结果来看,本设计满足题目要求,本文重点介绍和讲解了该系统的硬件和软件的设计以及测试结果的分析。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汽车中的红外遥控发射器和接收机设计
红外线遥控发射、接收系统的原理,给出用89C2051作为遥控接收系统解码器
的一种巧妙实现方法,以及完整的51汇编程序代码。
包括发射、接收的原理图及
其编程的主程序、串行口的发送程序、接收程序、定时中断程序的流程过程,从
而完成此设计的要点,参考流程方框图的构思过程,可以编写应用软件,利用串
行口遥控编码及其校验功能,防止其它遥控码的干扰,提高产品的可靠性。
红外
线遥控装置具有体积小,功耗低、功能强、成本低等特点。
红外线遥控是目前应用最广泛的一种通信和遥控手段。
由于红外线遥控器
具有体积小、功耗低、功能强、成本低等特点。
因此,彩电、录像机、音响设备、
空调、玩具、门铃以及遥控汽车路牌等其它小型装置上也纷纷采用红外线遥控。
为改变目前汽车上的车头路牌指示灯(以下简称车号器),无法灵活改变的缺陷,
把红外遥控用在其中,使其可以轻松实现远距离、非接触性的一次改变车号的目
的,从而改变以前用人工翻牌的旧模式。
一、汽车车号器的红外遥控系统
汽车上的车号器,原用简单的LED数码管控制,使用起来很不方便,为了能远离的控制它,就采用了红外遥控。
通常红外遥控系统由发射和接收两部分组成,应用编/解码电路专用集成电路芯片来进行控制操作,如图1所示,发射部分包括键盘矩阵、编码调制、红外发送器。
接收部分包括光电转换放大器、解调、解码电路。
红外发送每次编码的发送是一个键值,即一个十六进制的数据。
为了达到一次能发送一组数据(如车次号,通常为三位十进制数),我们可以采用89C2051的软件编码/解码的方法,先一次性输入一组车号,按下发送键后,全部发送出;同时在接收时,用连续接收方法,一次性解码所有数据。
二、遥控发射器及其编码
遥控发射器的专用芯片很多,但在汽车车号器遥控中,采用的是89C2051
芯片。
用P1口组成矩阵扫描反馈,获取键值,用内部的定时器1产生一个38K的
软件定时中断,驱动P1.0产生一个38K的方波,当作红外线的调制基波,需要发
送的数据,以串行方式,用波特率为1200,带奇偶校验的方式,直接送至TXD
的串口发送端,而后TXD和P1.0进行逻辑与后,经过40106整形,用三极管驱动红外发射管直接发出。
其原理图如下:
三、红外遥控接收器及其显示
接收器部分,主要由CX20106和89C2051、显示驱动4094、2803及数据存储器和看门狗25045组成,用解码芯片CX20106把38K的载波过滤后,得到一组波形,即以波特率为1200的串口数据,直接送至89C2051的RXD接收,用软件读取串口,输入缓存,得到一组数据,判断正确后,存放在非易失性的EEPROM25045中,同时直接用脉冲移位方式,送数据至4094,经2803驱动后显示,同时用25045的看门狗定时,保证在程序失控等情况下,能正确返回而不造成错误接收。
由于串行口方式传输,本身带有奇偶校验和起停位校验,可以大大提高数据的可靠性,同时在数据组中还加入了累加和校验,再次提高了可靠性,因此在实际应用中,即使在露天、太阳直射、光照很强等恶劣环境下,都能保证不会误收数据而造成显示错误。
其原理图如下:
四、软件编程
单片机89C2051软件包括主程序,串行口中断服务程序和定时中断服务程序三部分,在2051单片机内部RAM区建立相应的工作单元和标志位。
(一)、发送程序:SEND-BUFO∽SEND-BUF3为四个字符发送缓冲区,SEND-MARK为请求发送标志。
当键盘扫描到有发送请求时,启动定时器,在P1.0输出一个38K的方波,同时启动串行口,把SEND-BUFO至SEND-BUF3中的数据,发送至SBUF中,合成后发送。
其程序流程过程如下:
发送主程序:初始化时设置定时器、看门狗和串行口,并清显示,而后扫描键盘。
若有键按下,进行按键处理;若是发送键,则置串口发送标志,启动定时器和串行发送程序,后返回主程序中的显示程序,送显示数据至缓冲区。
串口中断程序:现场保护,取发送数据至发送缓冲区,启动软件定时产生38K 的方波,而后判数据是否发送完毕,结束则清除发送标志,反之,则返回继续送数据。
定时中断程序:现场保护回填定时长度,启动计数定时,并在指定的管脚
P1.0取反,变成反相电平,返回。
(二)、接收程序:REC-BUFO∽REC-BUF4为四个字符的接收缓冲区,REC-MARK为数据接收完整的标志。
当串行口中断产生时,按次序接收数据至REC-BUF0至REC-BUF3中,数据满后,计算累加和。
如果正确,置REC-MARK 标志;反之,把缓冲区数据清零。
主程序中若判断有REC-MARK标志,则把数据进行处理后,送外存25045和显示缓冲区中显示,同时由于接收是在汽车中进行,电源电压和其它干扰很多,包括有可能产生的串行口误判等。
因此,为了保证程序能正常运行,启动了25045中的看门狗电路,以每隔500ms时间定时刷新。
其程序流程过程如下:接收主程序:初始化时设置定时器、看门狗、清显示和外存25045判断有否数据接收标志,若有进行数据判断,正确的写至数据外存,并送至显示区显示,反之,返回主程序的显示程序和刷新看门狗。
串行口中断接收程序:现场保护后,判断接收数据是否为头或尾部数据,作相应处理是正常数据时存放缓存,并指针加一,当完整的一组数据正常收到后,置接收数据标志后返回。
定时中断程序和发送一致,只是定时刷新看门狗。