家庭组合照明灯的红外遥控电路设计.doc_第1页
家庭组合照明灯的红外遥控电路设计.doc_第2页
家庭组合照明灯的红外遥控电路设计.doc_第3页
家庭组合照明灯的红外遥控电路设计.doc_第4页
家庭组合照明灯的红外遥控电路设计.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

家庭组合照明灯的红外遥控电路设计金国凤摘 要:本设计主要介绍家庭组合照明灯的红外遥控电路设计。系统采用Atmel公司的 Atmega8单片机作为主控器件,外围器件包括键盘输入、发光二极管、红外发光二极管、红外接受头、晶振等。使用BASCOM作为编程语言。文中分析了家庭组合照明灯的红外遥控电路的各项功能、设计要点和难点,给出了具体的硬件、软件实现方法,并特别强调了红外遥控三路照明灯的单路或多路的任意开关,并实现定时关闭功能。关键词:Atmega8;BASCOM;家庭组合照明灯的红外遥控电路1 引言红外遥控器已被广泛使用在各种类型的家电产品上,它的出现给使用家器提供了很多的便利。红外遥控系统一般由红外发射装置和红外接受设备两大部分组成。红外发射装置又可由键盘电路、红外编码芯片、电源和红外发射电路组成。红外接收设备可由红外接收电路、红外解码芯片、电源和应用电路组成。通常为了使信号能更好的被传输发送端将基带二进制信号调制为脉冲串信号,通过红外发射管发射。本设计采用Atmega8作为红外发射编码和接收解码芯片。2 系统功能分析 一个完整的照明灯的红外遥控电路应具有以下功能: 按下任意一个开关能使相应的灯实现亮灭的功能,按下总开关实现所有灯的亮灭,按下相应的定时关闭键能实现电灯在设定的时间内关闭。3 系统硬件的实现方案3.1 系统原理图 通用红外遥控系统由调制、发射和接收三大部分组成,本系统以Atmega8单片机作为红外发射编码和接收解码芯片,另外再以HS5104作为发射编码芯片,5个键盘输入模块中的三个用于给3路电灯分别进行亮灭操作,一个键盘输入模块用于操作所有灯的亮灭,最后剩下的一个键盘输入模块用于实现电灯在设定的时间内关闭的功能。红外遥控系统如图3.1所示: 图3.1 红外遥控系统(1) 发射系统发射系统一般用电池供电,这就要求芯片的功耗要很低,芯片大多都设计成可以处于休眠状态,当有按键按下时才工作,这样可以降低功耗。红外线通过红外发光二极管(LED)发射出去,红外发光二极管内部材料和普通发光二极管不同,在其两端施加一定电压时,它发出的是红外线而不是可见光。 图3.2a 简单驱动电路 图3.2b 射击输出驱动电路如图3.2a和图3.2b是LED的驱动电路,图3.2a是最简单电路, 选用元件时要注意三极管的开关速度要快,还要考虑到LED的正向电流和反向漏电流,一般流过LED的最大正向电流为100mA,电流越大,其发射的波形强度越大。图3.2a电路有一点缺陷,当电池电压下降时,流过LED的电流会降低,发射波形强度降低,遥控距离就会变小。图3.2b所示的射极输出电路可以解决这个问题,两个二极管把三级管基极电压钳位在1.2V左右,因此三级管发射极电压固定在0.6V左右,发射极电流IE基本不变,根据IEIC,所以流过LED的电流也基本不变,这样保证了当电池电压降低时还可以保证一定的遥控距离。(2)接收系统红外信号接收系统的典型电路如图3.3a所示: 图3.3a红外接收头内部电路该电路包括红外监测二极管,放大器,限副器,带通滤波器,积分电路,比较器等。红外监测二极管监测到红外信号,然后把信号送到放大器和限幅器,限幅器把脉冲幅度控制在一定的水平,而不论红外发射器和接收器的距离远近。交流信号进入带通滤波器,带通滤波器可以通过30khz到60khz的负载波,通过解调电路和积分电路进入比较器,比较器输出高低电平,还原出发射端的信号波形。注意输出的高低电平和发射端是反相的,这样的目的是为了提高接收的灵敏度。 以上电路被集成在一个元件中,成为一体化红外接收头,如图3.3b所示:图3.3 b红外接收头 红外接收头的种类很多,引脚定义也不相同,一般都有三个引脚,包括供电脚,接地和信号输出脚。根据发射端调制载波的不同应选用相应解调频率的接收头。 红外接收头内部放大器的增益很大,很容易引起干扰,因此在接收头的供电脚上须加上滤波电容,一般在22uf以上。有的厂家建议在供电脚和电源之间接入330欧电阻,进一步降低电源干扰。(3)调制红外遥控发射数据时采用调制的方式,即把数据和一定频率的载波进行“与”操作,这样可以提高发射效率和降低电源功耗。调制载波频率一般在30khz到60khz之间,大多数使用的是38kHz,占空比1/3的方波,如图3.4所示,这是由发射端所使用的455kHz晶振决定的。在发射端要对晶振进行整数分频,分频系数一般取12,所以455kHz1237.9 kHz38kHz。图3.4载波波形3.5a为系统发射硬件方框图: 红外发光二极管发射指示灯5个按键Atmega8(HS5104)单片机用做编码芯片二极管节能模块+3V电源 图3.5a 发射系统方框图3.5b为系统接受硬件方框图: 三路电灯六路指示灯+5v电源Atmega8单片机用做解码芯片红外接收头图3.5b 接收系统方框图3.2 各模块电路原理图: (1)Atmega8MCU介绍系统的控制核心Atmega8单片机,是Atmel公司推出的基于AVR RICS低功耗CMOS 8位高性能单片机。由于其先进的指令集以及单时钟周期指令执行时间, ATmega8 的数据吞吐率高达 1MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾。图3.6为其引脚排列图。图3.6 Atmega8引脚排列图在本设计中的发射电路中,Atmega8单片机的PC6、PD0PD3口用于键盘输入;PB1口接红外发光二极管以及发射指示灯。在接受电路中Atmega8单片机的PB1PB3用于接三路电灯,PD5PD7、PB0、PB6、PB7接六路指示灯,PD2接红外接受头。(2) HS5104红外遥控编码发射电路本设计中,还另外采用了编码器BA5104组成红外发射电路。K1K8与地构成按键开关电路,这里只用了K1K5。其指令经三极管放大,驱动红外发射管发射出经编码后的红外遥控信号。HS5104引脚排列图如图3.7所示:图3.7 HS5104引脚排列图脚位说明:(3)其他电路红外发射二极管的接法如图3.8所示:图3.8 红外发射二极管连接原理图3.3 系统电路原理图:发射电路硬件原理图如图3.9a和3.9b所示。图3.9a 发射电路(M8)硬件原理图图3.9b 发射电路(hs5104)硬件原理图接收电路硬件原理图如图3.9c所示:4 系统软件的实现方案4.1 系统总流程图本设计采用的BASCOM编程,是MCS公司开发的以BASIC高级程序设计语言为平台的AVR单片机开发软件,它简要清晰,易于理解、掌握。软件设计流程图如图4.1a和4.1b所示:图4.1a 发送程序流程图图4.1b 接收程序流程图4.2 源程序代码及其注释发送子程序:$regfile = m8def.dat 定义目标单片机是ATmega8$crystal = 1000000开始前定义输入口并初始化为全0Config Portd.0 = InputConfig Portd.1 = InputConfig Portd.2 = InputConfig Portd.3 = InputConfig Portd.4 = InputMain:DoIf Pind.0 = 1 Then Rc5send 0 , 0 , 1 Waitms 80 Rc5send 0 , 0 , 1 Waitms 80 Rc5send 0 , 0 , 1 End IfIf Pind.1 = 1 Then Rc5send 0 , 0 , 2 Waitms 80 Rc5send 0 , 0 , 2 Waitms 80 Rc5send 0 , 0 , 2 End IfIf Pind.2 = 1 Then Rc5send 0 , 0 , 3 Waitms 80 Rc5send 0 , 0 , 3 Waitms 80 Rc5send 0 , 0 , 3 End IfIf Pind.3 = 1 Then Rc5send 0 , 0 , 4 Waitms 80 Rc5send 0 , 0 , 4 Waitms 80 Rc5send 0 , 0 , 4 End IfIf Pind.4 = 1 Then Rc5send 0 , 0 , 5 Waitms 80 Rc5send 0 , 0 , 5 Waitms 80 Rc5send 0 , 0 , 5 End IfWaitms 80LoopEnd=接受子程序:$regfile = m8def.dat 定义目标单片机是ATmega8$crystal = 1000000=定义使用的定时中断为1,分频系数为64=Config Timer1 = Timer , Prescale = 64=定义定时中断处理子程序=On Ovf1 Ding_shi=设定定时中断初始值,约为1秒=Timer1 = 49910= 打开定时中断 =Enable Timer1= 定义红外接受引脚 =Config Rc5 = Pind.2=打开总中断=Enable Interrupts= 定义所有的变量 =Dim Dingshi As Byte 定义定时变量Dim A As Word 定义累加器Dim Bianhao As ByteDim Bian_hao As ByteDim Daima As ByteDim Key_1 As Byte 定义所有按键Dim Key_2 As ByteDim Key_3 As ByteDim Key_4 As ByteDim Key_5 As Byte= 初始化所有变量 =Dingshi = 0 初始化定时A = 0 初始化累加器Bian_hao = 0Key_1 = 1Key_2 = 2Key_3 = 3Key_4 = 4Key_5 = 5Lamp_1 Alias Portb.6Lamp_2 Alias Portb.7Lamp_3 Alias Portd.5L4 Alias Portd.6L5 Alias Portd.7L6 Alias Portb.0Config Lamp_1 = Output 定义所有指示灯为输出Config Lamp_2 = OutputConfig Lamp_3 = OutputConfig L4 = OutputConfig L5 = OutputConfig L6 = Output Lamp_1 = 0 初始化指示灯全灭Lamp_2 = 0Lamp_3 = 0L4 = 0L5 = 0L6 = 0Main:DoGetrc5(bianhao , Daima)If Bianhao = Bian_hao And Daima = Key_1 Then Gosub Key_1_do 开灯1If Bianhao = Bian_hao And Daima = Key_2 Then Gosub Key_2_do 开灯2If Bianhao = Bian_hao And Daima = Key_3 Then Gosub Key_3_do 开灯3If Bianhao = Bian_hao And Daima = Key_4 Then Gosub Key_4_do 全关If Bianhao = Bian_hao And Daima = Key_5 Then Gosub Key_5_do 定时关闭LoopEnd开灯1Key_1_do: Lamp_1 = 1 Lamp_2 = 0 Lamp_3 = 0Return开灯2Key_2_do: Lamp_1 = 0 Lamp_2 = 1 Lamp_3 = 0Return开灯3Key_3_do: Lamp_1 = 0 Lamp_2 = 0 Lamp_3 = 1Return全关Key_4_do: Lamp_1 = 0 Lamp_2 = 0 Lamp_3 = 0 L4 = 0 L5 = 0 L6 = 0Return= 定时关闭子程序 =Key_5_do:Dingshi = Dingshi + 1= 定时关闭灯1 =If Dingshi = 1 And Lamp_1 = 1 Then L4 = 1 L5 = 0 L6 = 0 A = 0 Timer1 = 49910End IfIf Dingshi = 1 And Lamp_2 = 1 Then L4 = 1 L5 = 0 L6 = 0 A = 0 Timer1 = 49910End IfIf Dingshi = 1 And Lamp_3 = 1 Then L4 = 1 L5 = 0 L6 = 0 A = 0 Timer1 = 49910End If= 定时关闭灯2 =If Dingshi = 2 And Lamp_1 = 1 Then L4 = 0 L5 = 1 L6 = 0 A = 0 Timer1 = 49910End IfIf Dingshi = 2 And Lamp_2 = 1 Then L4 = 0 L5 = 1 L6 = 0 A = 0 Timer1 = 49910End IfIf Dingshi = 2 And Lamp_3 = 1 Then L4 = 0 L5 = 1 L6 = 0 A = 0 Timer1 = 49910End If= 定时关闭灯3=If Dingshi = 3 And Lamp_1 = 1 Then L4 = 0 L5 = 0 L6 = 1 A = 0 Timer1 = 49910End IfIf Dingshi = 3 And Lamp_2 = 1 Then L4 = 0 L5 = 0 L6 = 1 A = 0 Timer1 = 49910End IfIf Dingshi = 3 And Lamp_3 = 1 Then L4 = 0 L5 = 0 L6 = 1 A = 0 Timer1 = 49910End If=关闭定时=If Dingshi = 4 Then Dingshi = 0 L4 = 0 L5 = 0 L6 = 0End IfReturn= 定时中断子程序 =Ding_shi: A = A + 1= 定时5秒关灯=If A = 5 And L4 = 1 And Lamp_1 = 1 Then L4 = 0 Lamp_1 = 0End IfIf A = 5 And L4 = 1 And Lamp_2 = 1 Then L4 = 0 Lamp_2 = 0End IfIf A = 5 And L4 = 1 And Lamp_3 = 1 Then L4 = 0 Lamp_3 = 0End If= 定时10秒关灯=If A = 10 And L5 = 1 And Lamp_1 = 1 Then L5 = 0 Lamp_1 = 0End IfIf A = 10 And L5 = 1 And Lamp_2 = 1 Then L5 = 0 Lamp_2 = 0End IfIf A = 10 And L5 = 1 And Lamp_3 = 1 Then L5 = 0 Lamp_3 = 0End If= 定时30秒关灯=If A = 30 And L6 = 1 And Lamp_1 = 1 Then L6 = 0 Lamp_1 = 0End IfIf A = 30 And L6 = 1 And Lamp_2 = 1 Then L6 = 0 Lamp_2 = 0End IfIf A = 30 And L6 = 1 And Lamp_3 = 1 Then L6 = 0 Lamp_3 = 0End IfTimer1 = 49910Return5 系统软硬件的调试5.1 系统硬件调试在电脑上仿真以后按照硬件电路图连接好电路,将编写的程序写入单片机之前先校验下载线是否接通,然后再写入。调试时,先连接好下载线与上位机、目标板,给单片机系统供电,芯片选择ATMEGA8,它的下载环境如图5.1所示图5.1 智峰下载软件界面图5.2 系统软件调试本系统使用的软件开发环境是BASCOM-AVR IDE,它是MCS公司开发的以BASIC高级程序设计语言为平台的AVR单片机开发软件,该软件具

温馨提示

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

评论

0/150

提交评论