多路遥控器设计_第1页
多路遥控器设计_第2页
多路遥控器设计_第3页
多路遥控器设计_第4页
多路遥控器设计_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

目 录摘要1英文摘要1引言21 设计要求32 元器件的选择32.1单片机的选择32.2 共阳数码管43 系统硬件设计53.1硬件组成及工作原理53.2单片机最小系统53.3 红外遥控发射电路63.4 红外遥控接受电路63.5 显示电路73.6 矩阵式键盘电路73.7 电源电路84 系统软件设计94.1 设计与分析94.2 软件设计流程图95 系统调试115.1 调试的过程和结果11结论和谢辞12参考文献13附件1元器件清单14附件2程序清单15附件3电路图27附件4. PCB图28附件5. 实物图29基于51单片机的多路电器遥控器的设计信息工程学院应用电子技术 黄灵燕摘要: 本文介绍的是用单片机制作的15路电器遥控器,可以分别控制15个电器的电源开关,并且可对一路电灯进行亮度的遥控。该遥控器采取脉冲个数编码,48键盘开关,可扩充到对32个电器的控制。通过控制按键来控制相应的15电路,红外遥控器其体积小、功耗低、功能强、成本低的特点! 采用红外遥控器做控制器的单片机系统,不仅价格低廉,而且电路简单、实用,操作方便,性能稳定,易于推广。关键词:电器遥控器 红外接收器 红外发射器Design of multi-appliance remote control Based on 51 Microcontroller(Major of Applied Electronic Technology,Information and Engineering college, JinHua College of Vocation And Technology, Huang Lingyan)Abstract :This article has analyzed and describes the use of the Microcontroller 15 way electric remote control.Can separately control the electrical power switch 15. And the brightness can be remote-controlled lights the way. The number of coded remote control to take pulse. 4 8 keyboard switch. Can be expanded to control electrical appliances on the 32. Through the control buttons to control the corresponding circuit 15. The Infrared have small size,low power consunption function , low cost. Using the infrared do controller, inexpensive SCM system, and simple, practical, easy operation, stable performance, easy extension.Key words: Electric Remote Control Infrared receiver infrared transmit引言随着电子技术的飞速发展,新型大规模遥控集成电路的不断出现,使遥控技术有了日新月异的发展,遥控装置的中心控制部件已从早期的分立元件、集成电路逐步发展到现在的单片微型计算机,智能化程度大大提高。近年来,遥控技术在工业生产、家用电器、安全保卫以及人们的日常生活中使用越来越广泛。而红外遥控技术近年来得到了迅猛发展,尤其在家电领域如彩电、DVD、空调等,也在其它电子领域得到广泛应用。随着人们生活水平的提高,电器在家庭中已经十分普及,人们对产品的追求是使用更方便、更具智能化,红外遥控技术正是一个重点的发展方向。通过基于51单片机的多路电器遥控器的硬件和软件设计有利于巩固和提高学生对小型电子产品设计的能力,培养思考问题及解决问题的能力,提高创新能力和动手操作能力有帮助课题主要是围绕无线遥控密码锁控制系统的相关的理论和实进行研究。主要包括以下的内容:无线遥控模块发送与接受以及单片机系统设计的应用。1 设计要求在这个设计中,遥控器控制15个电器的开关,并且可对一路电灯进行亮暗的控制。采取的是红外控制技术,红外技术通过光信号传递数据,因而不受电磁干扰 ,通讯的可靠性高。数码管的数据输出显示数字为07,7代表最亮,0代表最暗,15个电器的电源输出接口用的是继电器。当某个操作按键按下时,单片机先读出键值,然后根据键值设定遥控码的脉冲个数,再调制成40KHz的方波由红外线发射管发射出去。当红外线接收器输出脉冲帧数据时,第一码的低电平将启动中断程序,实时接收数据帧。2 元器件的选择2.1单片机的选择选择的是单片机为AT89C51,下面是单片机的管脚说明图:图2-1 AT89C51引脚图VCC:供电电压。GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。2.2 共阳数码管共阳数码管不用驱动,更好的实现显示功能。数码管按段数分为七段和八段数码管,管不八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。3 系统硬件设计 遥控器由发射电路和接收电路两部分组成。3.1硬件组成及工作原理显示电路按键电路红外发射电路和红外接收电路CPU复位电路电源电路 图3-1 控制电路功能图电器遥控器的组成框图如图3-1所示,它是以单片机作为核心控制器,主要由显示电路、电源电路、红外发射电路、红外接受电路、复位电路和按键电路等组成。按键电路是矩阵式键盘适用与按键数量较多的场合,它由行线和列线组成,按键位于行、列的交叉点上。一个44的行、列结构可以构成一个有16个按键的键盘。矩阵键盘与独立式按键键盘相比,要节省很多I/O口。红外遥控发射电路:第9脚为单片机的复位脚,采用简单的RC上电复位电路,15脚为红外线遥控器的输出口,用于输出40KHz载波编码。红外遥控接收电路:接收器的数码管的二进制数据输出显示数字为07,7代表最亮,0代表最暗,15个电器的电源输出接口用的是继电器。3.2单片机最小系统AT89C51的上电复位电路,只要在RST复位输入引脚上接一电容至Vcc端,下接一个电阻到地即可。对于CMOS型单片机,由于在RST端内部有一个下拉电阻,故可将外部电阻去掉,而将外接电容减至10F。上电复位的工作过程是在加电时,复位电路通过电容加给RST端一个短暂的高电平信号,此高电平信号随着Vcc对电容的充电过程而逐渐回落,即RST端的高电平持续时间取决于电容的充电时间。为了保证系统能够可靠地复位,RST端的高电平信号必须维持足够长的时间。显示电路采用的是共阴数码显示管的显示,用上拉电阻提供电流,并对电路起保护作用。电路如3-2图所示。图3-2 单片机最小系统3.3 红外遥控发射电路第9脚为单片机的复位脚,采用简单的RC上电复位电路,15脚为红外线遥控器的输出口,用于输出40KHz载波编码。图3-3 红外遥控发射电路图3.4 红外遥控接收电路接收器的数码管的二进制数据输出显示数字为07,7代表最亮,0代表最暗,15个电器的电源输出接口用的是继电器。图3-4 红外遥控接收器电路图3.5 显示电路用单个共阴数码管显示的,数码管的二进制数据输出显示数字为07,7代表最亮,0代表最暗。图3-5显示电路图3.6 矩阵式键盘电路图3-6 矩阵式键盘电路图矩阵式键盘电路如图3-6图所示,矩阵式键盘适用与按键数量较多的场合,它由行线和列线组成,按键位于行、列的交叉点上。一个44的行、列结构可以构成一个有16个按键的键盘。如3-6图所示,这是本课题所设计的矩阵键盘电路。很明显,在按键数量较多的场合,矩阵键盘与独立式按键键盘相比,要节省很多I/O口。在键盘的设计时,开始选用的是大的按键,但是考虑到PCB板的大小,我后来选用的是小的按键,可以节省覆铜板,按键的行线和列线分别接P2的8位。3.7 电源电路电源电路的工作过程是:变压、整流、滤波、稳压。变压是把220V的电压变成12V的电压。为了克服半波整流的缺点,采用的是桥式整流电路,将交流变成脉动直流电。为了获得平滑的直流电源,整流电路后面加了滤波电路,滤掉交流成分。7805稳压器中设有比较完善的保护电路,主要用来保护调整管,它具有过流、过压和过热保护功能。7805将电压整流成5V的电源电压。电源电压如图3-7所示。 图3-7电源电路图4 系统软件设计4.1 设计与分析采用的是AT89C51的单片机,系统的软件工作过程如下:1)上电时,显示器上显示的是“0”,代表最暗,其他按钮是处于关闭状态。2)当某个操作按键按下时,单片机先读出键值,然后根据键值设定遥控码的脉冲个数,再调制成40KHz的方波由红外线发射管发射出去。3)当红外线接收器输出脉冲帧数据时,第一码的低电平将启动中断程序,实时接收数据帧,在数据帧接收时,将对第一位(起始位)码的码宽进行验证。若第一位低电平码的脉宽小于2ms,将作为错误码处理,当间隔位的高电平脉宽大于3ms时,结束接收,然后根据累加器A中的脉冲个数,执行相应输出的操作。4.2 软件设计流程图软件设计流程图主要分为遥控发射电路和遥控接收两个流程图,图4-1遥控发射信号流程图和图4-2遥控接收信号流程图。 图4-1遥控发射器程序流程图图4-2 遥控接收器主程序中断程序流程图5 系统调试5.1 调试的过程和结果在电路板通电测试之前,必须认真对安装电路进行下列事项的检查:先检查电路上电解电容的正负极是否插反,插反可能会导致电路板烧掉。检查电路否是通的,用万用表查各个可以接通的两个点的电路是否是通路,接电源的和接地的点呀要检查是否接错。将遥控器和接收器都接上电时,数码管显示为“0”,LED灯都不亮的,依次的按15个按键时,刚开始1灯是不亮的,就检查红外接受部分可能出错了,依次的检查各个点的电压,发现有电路被我短接了,最终电路没成功。 参考文献1彭为 等编著.单片机典型系统设计实例精讲M,电子工业出版社,2006,1:1532.2李朝青 主编.无线发送/接收IC芯片及其数据通信技术选编2J北京航天航空大学出版社,2004,2:3456.3杜小平,契桂花,雷道振. 单片机初级教程单片机基础M.北京: 北京航空航天大学出版社, 2006,4:7756.4楼然苗,李光飞. 51系列单片机设计实例M.北京: 北京航空航天大学出版社, 2008,4:4689.5胡宴如. 模拟电子技M.北京:高等教育出版社,2000,7:5699.6中国电子网 ,7中国电子设计网,附件1元器件清单元器件名称数量元器件名称数量1K电阻712V继电器143K电阻14两孔接插件24.7K电阻13红外接收管110K电阻3红外发射头147K电阻112电源1470电阻1按钮开关16100电阻112M晶振210uf/6V电容3二极管4007522pf电容4LED红光14104电容3共阳数码管11000uf/25V电容278051AT89C512可控硅1三极管901415三极管90151附件2程序清单1. 红外发射程序#define uchar unsigned char#define uint unsigned int#include #include#includereg51.h#define THO_int 0xff /定时器高8位初值 #define TL0_int 55 /定时器低8位初值 #defineTMOD_int 0x01 /设置定时器工作模式 #define TCON_int 0x10 /启动定时器 sbit HW_OUT=P10;/*uchar tx_delay;uchar IRF_buf;uchar old_buf; uchar IRF_step_cont;uchar IRF_cont;uchar IRF_tmfige;uchar IRF_step;uchar IRF_cont_buf;uchar DA_step;uchar tx_cont;uchar tx_cn;uchar IRF_data_buf24;uchar IRF_data_buf4;uchar TX_BUF6;uchar TX_BUF26;/*uchar key_cont;uchar key_buf;uchar key;uchar old_key,new_key;uchar key_out;/*uchar sec;uchar cont_10ms;uchar code key_scan_tap4=0x10,0x20,0x40,0x80;uchar code key_tap16=0x1e,0x1d,0x1b,0x17,0x2e,0x2d,0x2b,0x27,0x4e,0x4d,0x4b,0x47,0x8e,0x8d,0x8b,0x87;struct flagunsigned hw_tx_ok:1;/允许发送红外线标记unsigned tou_ma:1;/头码发送标记unsigned sen_en:1;/发送使能unsigned T_10ms:1;/10MS标记flag1;/位变量定义,主要用来作标记struct SYS_flagunsigned DA_GX:1; /8位数据发送完标记unsigned sen_vor:1;/电平标记,0时发送高电平,1时发送低电平unsigned sen_jg:1; /一帧数据发送完成标记unsigned Pwer:1; /开关机标记SYS_flag;/*/定时器初值化 void T0_int(void)TMOD=TMOD_int; /设置定时器工作模式0 TCON=TCON_int; /启动定时器TL0=TL0_int; /装入定时器低8位初值TH0=THO_int; /装入定时器高8位初值AUXR=AUXR|0x80;/设置定时器为传统定时器的12倍ET0=1; /定时器0允许中断 EA=1; /开总中断 /*/ 发void key_scan(void)uchar i;P2=P2|0x0f;old_key=new_key;new_key=P2&0x0f;if(new_key=old_key)if(key_cont10)key_cont+;if(key_cont=10)key_buf=new_key;for(i=0;i4;i+)P2=key_scan_tapi;if(new_key!=P2&0x0f)key_buf=key_buf|key_scan_tapi;i=4;for(i=0;i0) tx_delay-;/以下为红外发送编码管理if(key_out=1)&(tx_delay=0)if(flag1.tou_ma=1) /如果头码已发送 if(SYS_flag.sen_jg=1)/如果一帧已发送完毕,则进入帧与帧之前的间隔时间SYS_flag.sen_jg=0;/清第一帧发送标记 DA_step=0; /发送阶段清0SYS_flag.sen_vor=0;/下一次准备发送红外线tx_delay=20; /帧与帧之前的间隔时间2MStx_cont=0; /发送计数器清0flag1.tou_ma=0; /清头码发送标记flag1.sen_en=0; /关闭发送 else if(SYS_flag.sen_vor=1)/是否是发送间隔时间 if(TX_BUFDA_step&0x01)/如果发送据最低为1 tx_delay=16;/送发1码宽为1.6MS elsetx_delay=6;/送发0码宽为0.6MSflag1.sen_en=0;SYS_flag.DA_GX=1;SYS_flag.sen_vor=0;TX_BUFDA_step=TX_BUFDA_step1;else tx_delay=6;/发送数据0或1红外发送宽度flag1.sen_en=1;SYS_flag.sen_vor=1; if(SYS_flag.DA_GX=1)/如果发送完一位数据SYS_flag.DA_GX=0; /清标记tx_cont+; /发送计数器加1if(tx_cont=8) /发送完一个字节tx_cont=0;DA_step+; /指向下一个字节,准备发送下一字节if(DA_step=6) tx_cn+;/发送帧计数器if(tx_cn=2)/如果已发送送了两帧 tx_cn=0;/清帧计数器key_out=0; /禁止发送 elseif(tx_cn=1)/让第二帧数据进入发送缓冲 TX_BUF0=TX_BUF20; TX_BUF1=TX_BUF21;TX_BUF2=TX_BUF22;TX_BUF3=TX_BUF23;tx_delay=2; /第一帧结束后间隔时间SYS_flag.sen_jg=1;/第一帧发完标记flag1.sen_en=1; /打开红外发射else if(SYS_flag.sen_vor=0) /如果允许发送红外线tx_delay=45;/发送红外时间 flag1.sen_en=1;/打开红外发射SYS_flag.sen_vor=1;/让下一次发送间隔脉冲elsetx_delay=45;/发送低电平 flag1.sen_en=0;/关闭红外发射SYS_flag.sen_vor=0;flag1.tou_ma=1;elseif(flag1.hw_tx_ok=0)&(tx_delay=0)/如果数据发送已结束,后面再发送1MS宽脉冲if(SYS_flag.sen_vor=0) /如果允许发送红外线 flag1.sen_en=1; /打开经红外发射 tx_delay=10; /发送红外时间 SYS_flag.sen_vor=1; /让下一次发送间隔脉冲 /不允许发送红外线,进行发送间隔状态elseflag1.sen_en=0; /关闭红外发射 tx_delay=10; /关闭红外发射时间 cont_10ms+; if(cont_10ms=100)cont_10ms=0;flag1.T_10ms=1; if(flag1.sen_en=1)HW_OUT=0;elseHW_OUT=1;void main(void) T0_int(); for(;) 2. 红外接收程序#includereg51.h#define uchar unsigned char#define uint unsigned int#define THO_int 0xff#define TL0_int 0x37#defineTMOD_int 0x01#define TCON_int 0x10sbit OUT=P10;/调光输出sbit read_hw=P17;sbit read_zero=P11;sbit OUT1=P27;sbit OUT2=P26;sbit OUT3=P25;sbit OUT4=P24;sbit OUT5=P23;sbit OUT6=P22;sbit OUT7=P21;sbit OUT8=P20;sbit OUT9=P37;sbit OUT10=P36;sbit OUT11=P35;sbit OUT12=P34;sbit OUT13=P33;sbit OUT14=P32;/表格存于ROM*uchar code HW_code_tap16=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16;uchar code P_tap6=30,25,20,15,12,9;/变量定义存于RAM*uchar cont_4ms;uint cont_1s;uchar old_v;uchar new_v;uchar OUT_P_CONT;uchar set_p_time;uchar out_delay;uchar p_cont;/*uchar fige;/*uchar sec_cont; /uchar key;/*uchar IRF_tmfige;uchar IRF_step;uchar IRF_step_cont;uchar IRF_data_buf24;uchar IRF_cont_buf;uchar rx_rf_cont;uchar IRF_data_buf4;uchar IRF_buf;uchar IRF_cont;uchar old_buf;uchar out_flag;/*uchar bdata sys_flag;sbit key_out=sys_flag0;sbit zero_flag=sys_flag1;/*void T0_int(void)TMOD=TMOD_int; TCON=TCON_int;TL0=TL0_int;TH0=THO_int;ET0=1; EA=1; /*/单片机初始化 void MCU_init(void) P1=0x00; P2=0x00;/关闭继电器P3=0x00;/关闭继电器P0=0x00; void hw_control(void)uchar i;if(out_flag=1)out_flag=0;for(i=0;i=6) OUT_P_CONT=0;set_p_time=P_tapOUT_P_CONT;set_p_time=P_tapOUT_P_CONT;break; /* /定时器中断 void timer0_(void)interrupt 1 using 1/ 定时器溢出周期为200us已加入16t TR0=0;/ TL0=TL0_int;TH0=THO_int;TR0=1;if(out_delay) OUT=0;e

温馨提示

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

评论

0/150

提交评论