《课程设计(论文)基于单片机的红外遥控控制系统.doc》由会员分享,可在线阅读,更多相关《课程设计(论文)基于单片机的红外遥控控制系统.doc(18页珍藏版)》请在三一办公上搜索。
1、单片机原理与应用技术课程设计报告(论文)基于单片机的红外遥控控制系统专业班级:_电气063_姓名:_ 时 间:_2012.4.12012.4.20_指导教师:_2012年04月19日红外遥控控制系统课程设计任务书1.设计目的与要求设计出一个用于控制灯的控制器。准确地理解有关要求,独立完成系统设计,要求所设计的电路具有以下功能:(1) 有效遥控距离大于10米。(2) 遥控控制的路数在5路以上。(3) 采用数码管显示当前工作的控制电路。2设计内容(1)画出电路原理图,正确使用逻辑关系;(2)确定元器件及元件参数;(3)进行电路模拟仿真;(4)制版与调试; 3编写设计报告 写出设计的全过程,附上有关
2、资料和图纸,有心得体会。4答辩在规定时间内,完成叙述并回答问题。目录1引言12总体设计12.1.1设计思路12.1.2设计方案12.2设计方框图23 设计原理分析43.1发射电路43.2键盘式输入电路43.3信号接收和密码锁存电路53.4显示电路54 结束语6参考文献6附录(一)7附录(二)9附录(三)13基于单片机的红外遥控控制系统电气095李彤摘要:由于单片机具有集成度高、体积小、可靠性高、价格便宜等优点,其在机电一体化、工业控制、仪器仪表和家用电器等领域得到了广泛应用。当前单片机对家用电器控制呈现出外形简单化、功能多样化、产品智能化的发展趋向。红外遥控技术具有使用方便、功耗低、抗干扰能力
3、强、价格便宜的特点, 因此它的应用前景十分广阔。 本课题以延伸红外无线遥控技术为目的,提出了一种红外遥控器集中控制的方案,核心是设计出一个红外多路遥控发射/接收系统。本系统由单片机系统、矩阵键盘、LED显示和报警系统组成。系统能完成开锁、超时报警、超次锁定、管理员解密、修改用户密码基本的密码锁的功能。除上述基本的密码锁功能外,还具有掉电存储、声提示等功能,依据实际的情况还可以添加遥控功能。本系统成本低廉,功能实用。课题的重点在于通过软件实现二进制数据的编码与解码工作,然后通过红外收发头进行数据传输。 关键词:单片机 红外遥控 键盘控制 数码管显示1引言近年来随着计算机在社会各领域的渗透,单片机
4、的应用正在不断地走向深入,同时也带动传统的控制、检测等工作日益更新。传统的遥控器大多采用无线电遥控技术,随着科技的进步,红外线遥控技术的进一步成熟,红外遥控也逐步成为了一种被广泛应用的通信和遥控手段。为了方便实用,传统的家庭电器逐渐采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等有害环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。 红外遥控的特点是不影响周边环境、不干扰其它电器设备。由于其无法穿透墙壁,故不同房间的家用电器可使用通用的遥控器而不会产生相互干扰;电路调试简单,只要按给定电路连接无误,一般不需任何调试即可投入工作;编解码容易,可进行多路遥控。红外遥控虽然被广泛
5、应用,但各产商的遥控器不能相互兼容。当今市场上的红外线遥控装置一般采用专用的遥控编码及解码集成电路,但编程灵活性较低,且产品多相互绑定,不能复用,故应用范围有限。而本文采用单片机进行遥控系统的应用设计,遥控装置将同时具有编程灵活、控制范围广、体积小、功耗低、功能强、成本低、可靠性高等特点,因此采用单片机的红外遥控技术具有广阔的发展前景。2总体设计2.1.1设计思路整体设计思路为:根据扫描到的按键值转至相对应的ROM表中读取数据,确认之后单片机将从ROM读取出来的值,按照数据处理要求从输出端输出控制脉冲与T0产生的38KHz的载波进行调制,再经三极管将信号放大并驱动红外发光管将控制信号发送出去。
6、红外数据接收则是采用HS0038一体化接收头,北部可以完成红外接收、数据采集、解码的功能。只要在接收端接侧头信号低电平的到来,就可以完成对整个串行的信号进行分析得出当前控制指令的功能。2.1.2设计方案本设计包括两大模块:红外发射模块和红外接收模块。通过发射模块发出红外信号编码,编码加载在38KHz载波上发射出去,红外接收模块接收信号并滤除载波,并传回单片机内进行解码。其中,红外接收模块的接收头用的是HS0038型号的一体化接收头,可以对信号进行放大解调等操作,然后通过单片机进行译码。用的单片机是AT89S51,通过红外线接收模块接收信号,由于接收模块有自动滤除载波功能,所以红外接收模块解得的
7、码就是遥控器发射的编码,通过电路传到单片机内。2.2设计方框图设计总流程图 1 遥控发射器流程图2 遥控接收器主程序流程图 3红外发射电路 4红外信号接收电路 5HS0038是用于红外遥控接收的小型一体化接收头,它的主要功能包括放大,选频,解调几大部分,要求输入信号需是已经被调制的信号。经过它的接收放大和解调会在输出端直接输出原始信号的反相信号。其不需要任何外接元件,就能完成从红外线接收到输出与TTL电平信号兼容的所有工作,而体积和普通的塑封三极管大小一样,从而使电路达到最简化!灵敏度和抗干扰性都非常好。它适合于各种红外线遥控和红外线数据传输,中心频率38.0kHz。红外接收头内部放大器的增益
8、很大,很容易引起干扰,依次在接收头的供电脚上必须加上滤波电容。3 设计原理分析3.1发射电路发射电路 63.2键盘式输入电路键盘式输入电路 7第一步确定是否有键按下:向P2口输出全扫描字00FH,把全部行线置为低电平,然后将列线的电平状态读入累加器A中,如果有键按下,总会有一根列线拉至低电平,从而使列输入不全为1。第二步确定按下的键是在哪个位置:此时向列线逐个写0,如果 那一列没有键按下,则P.4P.7全为1。相反,如果那一列有按键按下,则P.4P.7中有值为0,此时即可得到按下键的列值。所以我们通过逐个向列线写0以确定哪一列。知道按下的键处在哪一行哪一列即可确定按下键的位置。3.3信号接收和
9、密码锁存电路信号接收和密码锁存电路 83.4显示电路显示电路 9为了减少硬件开销,提高系统可靠性和降低成本,单片机控制系统通常采用动态扫描显示。LCD电路工作时,必须有相应的控制器、驱动器,还需要有存储命令和字符的RAM和ROM。LED(Light Emitting Diode)显示器是由若干发光二极管组成的,每个二极管称为一个字段。LED显示器有3种通用格式,可显示数字和十六进制字母的7段(或8段,增加了小数点“dp”段)显示管(8字型)、显示数字和全部英文字母的18段显示管(米字型)以及点阵显示器。7段显示管是最经济和最常用的显示器。LED分为共阴极和共阳极两种结构形式。共阴极LED中发光
10、二极管的阴极连接在一起,通常接地,当某个二极管的阳极为高电平时,相应的段就发光显示。同样,共阳极LED的公共阳极接高电平,某个阴极接低电平时,相应的段被点亮显示。为显示不同的字型,显示器各字段所加的电平不同,编码也随之不同。 4 结束语这次实习设计对于我来说,既是一次机遇,又是一次挑战。通过这次的实习设计,我学到了很多东西。通过自己的实践,在设计过程中,通过大量的查阅资料,认真研究教材,对单片机有了更为深刻的理解,在编写软件时,须仔细的分析硬件电路及所要达到的功能,然后设计程序流程,编写代码。整个过程培养了我的耐性和刻苦钻研的精神。 增强了动手能力,掌握了系统的分析解决问题的方法。通过实际工程
11、设计也使我了解到书本知识和实际应用的差别。在实际应用中遇到很多的问题,这都需要我对问题进行具体的分析,并一步一步地去解决它。参考文献1 楼然苗,李光飞51系列单片机设计实例M北京:北京航空航天大学出版社,20031031202 李必红,王忠魁基于单片机控制的机床数控改造J陕西工学院学报,2004,20(1):70793王兆安 电力电子技术 西安交通大学出版社 ,20044刘志文 遥控开关系统的理论设计与应用 大学学报(教科文艺) 2003年03期5黄陇 实用型红外遥控功能开关的设计与实现(Radio Engineering of China)6刘文涛 单片机应用开发实例 清华大学出版社 200
12、5年9月附录(一)发射电路图接收电路图附录(二);红外遥控发射程序 ORG 0000H ;程序执行开始地址 AJMP START ;跳至START执行 ORG 000BH ;定时器T0中断入口地址 LJMP INTT0 ;跳至INTT0中断服务程序 ORG 0030H PCODE EQU 30H ;识别码 OPPCODE EQU 31H ;识别码反码 BUT EQU 32H ;按键码 OPPBUT EQU 33H ;按键反码 START: MOV SP,#70H ;设堆栈基址为70H CLR P3.4 ;关遥控输出 MOV IE,#00H ;关所有中断 MOV IP,#01H ;设优先级 MO
13、V TMOD,#22H ;8位自动重装初值模式 MOV TH0,#0F3H ;定时为13微秒初值 MOV TL0,#0F3H SETB EA ;开总中断允许 MOV PCODE,#0ABH ;识别码赋值 MOV OPPCODE,#54H ;识别码反码赋值 JIAN: ;识别键盘有无键按下子程序 MOV P2,#00FH ;置列线为1,行线为0 MOV R7,#0FFH ;延时 DJNZ R7,JIAN1JIAN1: MOV A,P2 ;读P2口 CPL A ;求反后,高电平表示有键按下 ANL A,#00FH ;判别有键值按下吗? JZ JIAN ;无键按下时,返回重新扫描 LCALL DEL
14、AYSKEY: ;识别具体按键值子程序 MOV A,#00 ;下面进行行扫描,1行1行扫 MOV R0,A ;R0作为行计数器,开始为0 MOV R1,A ;R1作为列计数器,开始为0 MOV R3,#07FH ;R3为行扫描字暂存,高4位为行扫描字SKEY2: MOV A,R3 MOV P2,A ;输出行扫描字,低4位全1 NOP NOP NOP ;3个NOP操作使P2口输出稳定 MOV A,P2 ;读列值 MOV R1,A ;暂存列值 CPL A ;高电平则有键闭合 ANL A,#00FH ;取列值S123: JNZ SKEY3 ;有键按下转SKEY3,无键按下时进行一行扫描 INC R0
15、 ;行计数器加1 SETB C ;准备将行扫描右移1位,形成下一行扫描字 ;C=1保证输出行扫描字中低4位全为1,为列输入做准备,高4位中只有1位为0 MOV A,R3 ;R3带进位C右移1位 RRC A MOV R3,A ;形成下一行扫描字送入R3 MOV A,R0 CJNE A,#04H,SKEY2 ;最后一行扫(4次)完了吗?NN: LJMP JIAN MN: MOV BUT,A CPL A MOV OPPBUT,A LCALL REMOTE ;转发送程序 AJMP NN;列号译码SKEY3: MOV A,R1 JNB ACC.0,SKEY5 JNB ACC.1,SKEY6 JNB AC
16、C.2,SKEY7 JNB ACC.3,SKEY8 LJMP NNSKEY5: MOV A,#01H MOV R2,A ;存0列号 AJMP DKEYSKEY6: MOV A,#01H MOV R2,A ;存1列号 AJMP DKEYSKEY7: MOV A,#01H MOV R2,A ;存2列号 AJMP DKEYSKEY8: MOV A,#01H MOV R2,A ;存3列号 AJMP DKEY;键位置译码DKEY: MOV A,R0 ;取行号 ACALL DECODE LJMP MN;键值译码DECODE: MOV A,R0 ;取行号送A MOV B,#04H ;每一行按键个数 MUL
17、AB ;行号*按键数 ADD A,R2 ;行号*按键数+列号=键值,在A中 RET;编码发射程序REMOTE: SETB ET0 ;开T0中断 SETB TR0 ;开启定时器T0 MOV R1,#06H ;原数值#09H OUT01: MOV R2,#0C8H ;发5ms引导码 DJNZ R2,$ DJNZ R1,OUT01 CLR TR0 ;关定时器T0 CLR ET0 ;关T0中断 CLR P3.4 ;关脉冲输出 MOV R1,#0AH ;3ms空隙 OUT02: MOV R2,#96H DJNZ R2,$ DJNZ R1,OUT02 OUT03: ;发射数据流 MOV A,PCODE L
18、CALL OUT04 ;调用发送子程序 MOV A,OPPCODE ACALL OUT04 ;调用发送子程序 MOV A,BUT LCALL OUT04 ;调用发送子程序 MOV A,OPPBUT LCALL OUT04 ;调用发送子程序 SETB C ;发送结束码1 LCALL SEND ;调用发送子程序 MOV R1,#0EAH ;延时130MS OUTWAIT: MOV R2,#0C8H DJNZ R2,$ DJNZ R1,OUTWAIT RET ;发射子程序OUT04: ;循环发射各数据位 MOV R1,#08H OUT: RLC A ACALL SEND DJNZ R1,OUT RE
19、T SEND: CLR TR0 ;关定时器T0 CLR ET0 ;关T0中断 CLR P3.4 ;关脉冲输出 JC SEND1 MOV R3,#08H ;发射0码 SEND0: MOV R4,#69H ;0码低电平 DJNZ R4,$ DJNZ R3,SEND0 AJMP SIG ;转脉冲发送信号 SEND1: MOV R3,#02H ;1码低电平 SEND10: MOV R4,#8CH DJNZ R4,$ DJNZ R3,SEND10 SIG: SETB ET0 ;开T0中断 SETB TR0 ;开启定时器T0 MOV R3,#08CH ;发射脉冲 DJNZ R3,$ CLR TR0 ;关定
20、时器T0 CLR ET0 ;关T0中断 CLR P3.4 ;关脉冲输出 RET;T0中断服务程序 INTT0: CPL P3.4 ;40kHZ红外线遥控信号产生 RETI ;中断返回;延时子程序 DELAY: MOV R7,#10H ;延时10秒子程序 TS1: MOV R6,#0FFH TS2: DJNZ R6,TS2 DJNZ R7,TS1 RET END ;程序结束 附录(三);红外遥控系统接收部分源程序 ORG 0000H LJMP START ORG 0003H LJMP INTEX0 ORG 0030H PCODE EQU 30H ;识别码 OPPCODE EQU 31H ;识别码
21、反码 BUT EQU 32H ;按键码 OPPBUT EQU 33H ;按键反码 CODENUM EQU 34H ;接收码数 MINMA EQU 35H ;储存密码 GUAN EQU 36H ;储存管理员密码START: MOV SP,#70H MOV IE,#00H ;关所有中断 SETB EX0 ;开外中断 SETB EA ;总中断允许 MOV PCODE,#0ABH ;识别码初值 MOV OPPCODE,#54H ;识别码反码初值 MAIN: MOV R3,#0FFH DJNZ R3,$ ;持续510微秒 MOV R5,#08H XUN: CLR C MOV C,P3.2 ;读入P3.2
22、引脚状态 MOV A,R6 RLC A MOV R6,A DEC R5 DJNZ R5,XUN MOV A,R6 SETB P2.0 ;开放显示器控制 SETB P3.1 ;开放显示器控制 MOV SBUF,A ;送LED显示 LJMP MAIN ;转MAIN循环 NOP ;PC值出错处理 LJMP START ;出错时重新初始化 ;遥控接收程序 INTEX0: MOV 37H,A ;采用中断接收 保护现场 MOV 20H,C CLR EX0 ;关外中断 JNB P3.2,READ ;P3.2口为低电平转READ 为高电平退出 OUT: SETB EX0 ;开中断(系干扰) MOV A,37H
23、 ;恢复现场 MOV C,20H RETI 退出中断 READ: CLR A ;清A 读取引导码 MOV DPH,A ;清DPTR MOV DPL,A HEAD: JB P3.2,HEAD01 ;P3.2变高电平转HARD01 INC DPTR ;用DPTR对低电平计数 MOV R1,#04H DJNZ R1,$ AJMP HEAD ;转HARD循环(循环周期为16微秒) HEAD01: MOV A,DPH ;DPTR高8位放入A JZ OUT 0(脉宽小于16*255=4毫秒)退出 MOV R1,#0AH ;3ms低电平 HEAD02: MOV R2,#96H DJNZ R2,$ DJNZ
24、R1,HEAD02 ACALL READ01 ;接收识别码 CJNE A,PCODE,OUT ;识别码判定 ACALL READ01 CJNE A,OPPCODE,OUT 识别码反码判定 ACALL READ01 MOV BUT,A ;接收控制码 ACALL READ01 接收控制反码 CPL A CJNE A,BUT,OUT ;控制码校验 ACALL READEND ;接收结束码 CJNE A,#01H,OUT MOV A,BUT MOV R5,#08H XUN2: CLR C MOV C,P3.2 ;读入P3.2引脚状态 MOV A,R6 RLC A MOV R6,A DEC R5 DJN
25、Z R5,XUN MOV A,R6 SETB P2.0 ;开放显示器控制 SETB P3.1 ;开放显示器控制 MOV SBUF,A ;送LED显示 CLR P3.1 ;关闭显示器控制 PAN: CJNE A,GUAN,JISHU ;识别密码JISHU: INC R4 CJNE R4,#003H,XUN2 LJMP BAOJING BAOJING: CLR P0.0 LJMP OUT ;转中断退出 READ01: MOV CODENUM,#08H ;读取数据码8位 CLR A ;清A LJMP READ02 READEND: MOV CODENUM,#01H ;读取结束码 CLR A READ02: CLR C MOV R1,#02H ;延时0.8ms READ03: MOV R2,#0C8H DJNZ R2,$ DJNZ R1,READ03 MOV C,P3.2 ;取码 CPL C ;还原码值 RLC A ;移位赋值 JB P3.2,$ JNB P3.2,$ DJNZ CODENUM,READ02 RET END ;结束程序