红外线家电遥控系统.docx_第1页
红外线家电遥控系统.docx_第2页
红外线家电遥控系统.docx_第3页
红外线家电遥控系统.docx_第4页
红外线家电遥控系统.docx_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、系统方案设计1.1概述红外线家电遥控系统由红外发射模块和红外接收模块结合单片机AT89C51构成,运用硬件和软件相结合的方法,实现控制市电220v家电的开启和关闭。红外发射模块由矩阵按键,单片机和发光二级管组成。红外接收模块由红外接收,单片机和信号显示电路组成。1.2系统原理框图按键控制信号显示单片机红外接收红外发射单片机图12.系统硬件设计2.1按键控制电路图2如图2所示,矩阵键盘电路使用的矩阵键盘又称为行列式键盘,这里是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。在行线和列线的每一个交叉点上,设置一个按键。这样键盘中按键的个数是44个。这种行列式键盘结构能够有效地提高单片机系统中I/O口的利用率。为了提高抗干扰能力,在矩阵键盘电路中加上上拉电阻,因为采用的电源电压为5v,所以取上拉电阻阻值为5.1k,既能抗干扰又能确保驱动电流足够。2.2单片机及其外围电路2.2.1单片机图3AT89C51的一些管脚说明:VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口。当P1口的管脚第一次写1时,被定义为高阻输入。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA:当/EA保持低电平时,则在此期间外部程序存储器,不管是否有内部程序存储器。当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。图4AT89C2051相对于 AT89C51它少了一些管脚口及功能,但是它的功耗少,便于携带,更经济,使他在发射电路中起着重要的地位。因此,在本设计红外发射电路中就用了他来实现脉冲信号的产生。2.2.2晶振电路图5如图3所示,晶振电路由晶振和两个负载电容组成。负载电容大小没有固定值,一般二三十皮法,在这里取22pf。两个负载电容大小要相同,否则容易使得谐振不平衡。晶振是给单片机提供工作信号脉冲的,这个脉冲就是单片机的工作速度,这里取11.0592MHz,它的输出连接着单片机的XTAL1和XTAL2引脚。2.2.3复位电路图6单片机的复位都是靠外部电路来实现的。在时钟电路工作后,只要在单片机的复位(RST)脚上出现3个机器周期以上的高电平,单片机便实现初始化状态复位。由按键以及电解电容C7、电阻R7构成按键及上电复位电路,如图6所示。由于单片机是高电平复位,所以当按键按下时候,单片机的9脚RET管脚处于高电平,此时单片机处于复位状态。当上电后,由于电容的缓慢充电,单片机的9脚电压逐步由高向低转化,经过一段时间后,单片机的9脚处于稳定的低电平状态,此时单片机上电复位完毕,系统程序从0000H开始执行。使CPU进入初始状态,从0000H地址开始执行程序的过程叫系统复位。从实现系统复位的方法来看,系统复位可分为硬件复位和软件复位。硬件复位必须通过CPU外部的硬件电路给CPU的RESET端加上足够时间的高电位才能实现。软件复位就是用一系列指令来模拟硬件复位功能,最后通过转移指令使程序从0000H地址开始执行。对各专用寄存器的复位操作是容易的,也没有必要完全模拟,可根据实际需要去主程序初始化过程中完成。2.3红外线发光二极管驱动电路图7红外线发射电路如图7所示, P3.4 口作为发射部分,用三极管的放大驱动红外线发光二极管发射编码信号。发光二级管的正向压降为1.6v1.8v,导通电流为5-20mA,NPN三极管的为100。根据公式I(B)=I(C)/, I(B)=V-U(BEQ)/R7得R7的范围是21.5K-86K,在这里取47k。R1在这里起到限流的作用。2.4红外发光二极管接收电路图8如图8所示为红外发光二极管接收电路。红外线接收电路是一个红外线接收及滤波一体化模块。当有红外线信号时,红外接收端接收红外信号,滤除载波,并通过引脚传回单片机内进行解码分析。可以说红外线接收电路是整个电路的一个窗口,红外线接收电路在整个电路中占有非常重要的作用,只有红外接收电路正常工作时才能保证整个电路正常工作。红外接收头的外形,均有三只引脚,即电源正VDD、电源负(GND)和数据输出(Out)。接收头的引脚排列因型号不同而不尽相同,因接收头的外形不同而引脚有所区别,本设计用的是红外线一体化接收模块,工作条件如下: 工作电压:4.85.3V 工作电流:1.72.7mA 接收频率:38kHz 峰值波长:980nm 静态输出:高电平 输出低电平:0.4V 输出高电平:接近工作电压红外线接收模块的3个引脚不能接错,否则会烧毁内部电路,最左边引脚(1号)为数字信号输出,中间接地,右边为电源输入,在电源输入端处并接有电源滤波电路。在焊接完接收模块后可以使用逻辑笔接触红外线接收模块的信号输出端,一边按住红外线遥控器某一按键,使其不断地发射红外线遥控器信号,若是接收模块正常,逻辑笔脉冲LED便会闪动,这是自行检测红外线遥控器发射及接收是否正常的最简单的方法。在仿真中没有红外线发光二极管,这里就用普通的发光二极管代替,实物连接中直接用红外线一体化接收头即可。2.5信号显示电路图9如图9所示为接收模块的信号显示电路,采用共阴级数码管显示,数码管相当于好多个发光二极管,正向压降U为1.6v-1.8v,正向导通电流I为5mA-20mA,根据公式R=(V-U)/I,得排阻的阻值范围。排阻的作用是限流,保护电路。2.6系统原理图2.6.1系统发射模块图102.6.2系统接收模块图113.系统软件设计3.1系统发射模块图12 发射主程序流程图发射模块程序:#include static bit OP; /红外发射管的亮灭static unsigned int count; /延时计数器static unsigned int endcount; /终止延时计数static unsigned char Flag; /红外发送标志char iraddr1; /十六位地址的第一个字节char iraddr2; /十六位地址的第二个字节void SendIRdata(char p_irdata); void delay(); char getkey() P1=0xfe;P3_3=1; if(!P1_4)return 1; if(!P1_5)return 2; if(!P1_6)return 3; if(!P1_7)return 4; P1=0xfd; if(!P1_4)return 5; if(!P1_5)return 6; if(!P1_6)return 7; if(!P1_7)return 8; P1=0xfb; if(!P1_4)return 9; if(!P1_5)return 10; if(!P1_6)return 11; if(!P1_7)return 12; P1=0xf7; if(!P1_4)return 13; if(!P1_5)return 14; if(!P1_6)return 15; if(!P1_7)return 16; P1=0xfF;P3_3=0; if(!P1_4)return 17; if(!P1_5)return 18; if(!P1_6)return 19; if(!P1_7)return 20; return 0; void main(void) char key; count = 0; Flag = 0; OP = 0; P3_4 = 1; EA = 1; /允许CPU中断TMOD = 0x11; /设定时器0和1为16位模式1 ET0 = 1; /定时器0中断允许P1=0xff; TH0 = 0xFF; TL0 = 0xE6; /设定时值0为38K TR0 = 1;/开始计数iraddr1=0xff; iraddr2=0xff; do key=getkey(); if(key=1)SendIRdata(0x12); if(key=5)SendIRdata(0x0b); if(key=14)SendIRdata(0x00); if(key=10)SendIRdata(0x01); if(key=11)SendIRdata(0x02); if(key=12)SendIRdata(0x03); if(key=6)SendIRdata(0x04); if(key=7)SendIRdata(0x05); if(key=8)SendIRdata(0x06); if(key=2)SendIRdata(0x07); if(key=3)SendIRdata(0x08); if(key=4)SendIRdata(0x09); if(key=9)SendIRdata(0x2A); if(key=15)SendIRdata(0x2C); if(key=16)SendIRdata(0x2D); if(key=13)SendIRdata(0x2E); if(key=17)SendIRdata(0x2F); if(key=18)SendIRdata(0x30); if(key=19)SendIRdata(0x31); if(key=20)SendIRdata(0x32); while(1); /定时器0中断处理void timeint(void) interrupt 1 TH0=0xFF; TL0=0xE6; /设定时值为38K count+; void SendIRdata(char p_irdata) int i; char irdata=p_irdata; /发送9ms的起始码endcount=223; Flag=1; count=0; P3_4=0; dowhile(countendcount); /发送4.5ms的结果码endcount=117; Flag=0; count=0; P3_4=1; dowhile(countendcount); /发送十六位地址的前八位irdata=iraddr1; for(i=0;i8;i+) endcount=10; Flag=1; count=0; P3_4=0; dowhile(countendcount); /停止发送红外信号(即编码中的高电平)if(irdata-(irdata/2)*2) /判断二进制数个位为1还是0 endcount=15; /1为宽的高电平 else endcount=41; /0为窄的高电平 Flag=0; count=0; P3_4=1; dowhile(count1; /发送十六位地址的后八位irdata=iraddr2; for(i=0;i8;i+) endcount=10; Flag=1; count=0; P3_4=0; dowhile(countendcount); if(irdata-(irdata/2)*2) endcount=15; else endcount=41; Flag=0; count=0; P3_4=1; dowhile(count1; /发送八位数据irdata=p_irdata; for(i=0;i8;i+) endcount=10; Flag=1; count=0; P3_4=0; dowhile(countendcount); if(irdata-(irdata/2)*2) endcount=15; else endcount=41; Flag=0; count=0; P3_4=1; dowhile(count1; /发送八位数据的反码irdata=p_irdata; for(i=0;i8;i+) endcount=10; Flag=1; count=0; P3_4=0; dowhile(countendcount); if(irdata-(irdata/2)*2) endcount=15; else endcount=41; Flag=0; count=0; P3_4=1; dowhile(count1; endcount=10; Flag=1; count=0; P3_4=0; dowhile(countendcount); P3_4=1; Flag=0; void delay() int i,j; for(i=0;i400;i+) for(j=0;j100;j+) 3.2系统接收模块图13 红外线接收程序流程图3.3看门狗技术#include p18f458.h unsigned long i; /*系统初始化子程序*/ void initial() TRISD = 0X00; /*D口设为输出*/ /*延时子程序*/ void DELAY() for (i=19999;-i;) continue; /*主程序*/ main () initial(); /*初始化,设定看门狗的相关寄存器*/ PORTD = 0X00; /*D口送00H,发光二极管亮*/ DELAY(); /*给予一定时间的延时*/ PORTD = 0XFF; /

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论