红外接收
- 格式:doc
- 大小:153.50 KB
- 文档页数:14
2.1 总体设计框图按照系统设计的功能的要求,初步确定设计系统主要由发射模块与接收模块两部分组成。
发送模块先由键盘操作键值,以二进制信号的形式,传送给单片机,然后单片机将待发送的二进制信号编码调制为一系列的脉冲串信号,通过红外发射管发射红外信号。
红外接收模块普遍采用价格便宜,性能可靠的一体化红外接收头(如HS0038,它接收红外信号频率为38KHz ,周期约为26us )接收红外信号,它同时对信号进行放大、检波、整形,得到TTL 电平的编码信号,再传送给单片机,经单片机解码并由数码管显示接收到的数据。
系统的构成框图如图.2.2 二进制的编码本设计系统采用不同的脉宽宽度来实现二进制信号的编码,可由发送单片机来完成。
用图2(a)表示二进制信号中的高电平‘1’,其特征是脉冲中低电平与高电平的宽度均等于0.26ms ,相当于lO 个26 的宽度;用图2(b)表示二进制信号中的低电平‘0’,其特征是脉冲中高电平的宽度等于0.26ms ,而低电平的宽度是高电平的二倍,等于0.52ms ,相当于20个26 的宽度。
上述lO 个和20个脉冲宽度还可适当调整,以适应不同数据传输速度的需要。
2.3二进制的调制二进制信号的调制仍由发送单片机来完成,它把编码后的二进制信号调制成频率为38KHz 的间断脉冲串,相当于用二进制信号的编码乘以频率为38KHz 的脉冲信号得到的间断脉冲串,即是调制后用于红外发射二极管发送的信号。
如图3所示,A是二进制信号的编码波形,B是频率为38KHz(周期为26us )的连续脉冲串,c是经调制后的间断脉冲串(相当于C=A×B),用于红外发射二极管发送的波形。
图3中,待发送的二进制数据为101。
2.4二进制的解调二进制信号的解调由一体化红外接收头HS0038来完成,它把收到的红外信号(图4中波形D,也是图3中波形C)经内部处理并解调复原,输出图4中波形E(正好是对图3中波形A的取反),HS0038的解调可理解为:在输入有脉冲串时,输出端输出低电平,否则输出高电平。
2.5二进制的解码二进制信号的解码由接收单片机来完成,它把红外接收头送来的二进制编码波形通过解码,还原出发送端发送的数据。
如图4,把波形E解码还原成数据信息101。
2.6基于字节传输的红外收发数据格式在发送字节的开始先通过单片机发送20个脉冲宽度(每个脉冲周期26us)的高电平作为传输开始,接着发送8位数据(字节高位在前,低位在后),最后发送1O个脉冲宽度的低电平作为传输结束,如图6所示。
第3章硬件设计3.1.2键盘电路键盘采用列扫描。
列扫描的原理是:使第一行线为低电平,如果这条列线上没有闭合键,则各条线的状态都为高电平,如果行线上有闭合键,则相应的那条列线即变为低电平。
于是就可以根据按行线号和列线号求得闭合键的键码。
行号分别接到了P1.0,P1.1,P1.2,列号分别接到了P1.3,P1.4,P1.5,做成了3*3的矩阵式键盘。
3.1.3红外线发射编码AT89C51的P1.7引脚外接元件组成了红外驱动放大发射电路。
它主要是由驱动管和红外发射二极管组成的。
当P1.7脚有指令信号输出时,该信号经驱动管放大后,加至红外发射二极管上,遥控指令则以红外线的形式发射出去。
当按下键盘上的不同按键时,通过编码器产生与之相应的特定的二进制脉冲码信号。
将此二进制脉冲码信号先调制在38KHz的载波上,经过放大后,激发红外发光二极管转发成波长940nm的红外线光传输出去。
3.2模块设计3.2.2红外接收模块设计红外接收器采用一体化红外遥控接收器SM0038,实验电路如图OUT VCC GND图.8SM0038UT接单片机的P3.2口,若有红外线数字信号则经过红外接收器取出数字信号数据经单片机译码,最后送到显示电路。
GND接地,VCC 接高电平。
3.2.3显示电路的设计显示部分采用普通的共阳数码管显示,使用动态扫描,以便减少硬件电路。
考虑到一次扫描7位数码管显示时会出现闪烁情况,设计时采用多次调用显示子程序解决这个问题。
驱动数码管的芯片采用驱动能力较强的74HC373,使用单片机的P0口作为并行输出,74HC373是高电平锁存,用P1.4口作为74HC373时钟控制端口,即置‘1’控制端。
由于数码管采用共阳接法,使用P2.0-P2.1口作为数码管的位选。
74HC373在得到高电平后,将8位数据锁存,并行输出送至数码管各段选控制口。
3.2.4键盘接口的设计键盘只有4个,其中2个用于单片机上电复位,其中一个用于电源转换电路中,另外一个用于红外发射程序和红外接收程序能下载到不同单片机上的转换开第4章软件设计系统软件可分为发射部分、接收部分和显示三部分。
软件可由汇编语言完成。
发射和接收部分都采用AT89C51。
4.1红外收发流程图:图9.1:发射主程序流程图 图9.2:发射程序流程图图10.1:程序流程图4.2红外收发器程序:4.2.1发射程序主程序和中断程序入口ORG 0000HAJMP STARTORG 0003HRETIORG 000BHRETIORG 0013HRETIORG 001BH LJMP INTT1初始化程序CLEARMEMIO: CLR ADEC AMOV P0,AMOV P1,AMOV P2,AMOV P3,ACLR P1.7MOV IE,#00H ;MOV TMOD,#20H ;MOV TH1,#0F5H ;MOV TL1,#0F5HSETB EARET主程序START: LCALL CLEARMEMIO MAIN: LCALL KEYWORKLJMP MAIN中断服务程序INTT1: CPL P1.7 RETI KEYWORK: MOV P1,#0FFHCLR P1.7CLR P1.6CLR P1.0 ;MOV A,P1ANL A,#38HCJNE A,#38H,KEYCONSETB P1.0CLR P1.1MOV A,P1ANL A,#38HCJNE A,#38H,KEYCONSETB P1.1CLR P1.2MOV A,P1ANL A,#38HCJNE A,#38H,KEYCONSETB P1.2RETKEYCON: LCALL DELAYMOV A,P1CJNE A,#38H,KEYCHEKEYCHE: MOV A,P1MOV B,ALOOP: MOV A,P1ANL A,#38H ;松手检测CJNE A,#38H,LOOPMOV R7,#00HMOV DPTR,#KEYTABCHELOOP: MOV A,R7MOVC A,@A+DPTRXRL A,BJZ KEYOKINC R7CJNE R7,#09H,CHELOOPRETKEYOK: MOV A,R7MOV B,ARL AADD A,BMOV DPTR,#KEYFUNTAB ;散转功能程序首址JMP @A+DPTR ;散转至对应功能程序标号KEYFUNTAB: LJMP KEYFUN00 ;跳到键号对应功能程序标号LJMP KEYFUN01LJMP KEYFUN02LJMP KEYFUN03LJMP KEYFUN04LJMP KEYFUN05LJMP KEYFUN06LJMP KEYFUN07LJMP KEYFUN08RETKEYTAB: DB 36H,35H,33H,2EH,2DH,2BH,1EH,1DH,1BH,0FFHKEYFUN00: MOV A,#02HLCALL REMOTE RETKEYFUN01: MOV A,#03HLCALL REMOTE RETKEYFUN02: MOV A,#04HLCALL REMOTE ;RETKEYFUN03: MOV A,#05H ;LCALLREMOTERETKEYFUN04: MOV A,#06H ;LCALL REMOTERETKEYFUN05: MOV A,#07HLCALL REMOTERETKEYFUN06: MOV A,#08HLCALLREMOTERETKEYFUN07: MOV A,#09H ;LCALLREMOTERETKEYFUN08: MOV A,#0AHRET编码发射程序REMOTE: MOV R1,ALJMP OUT3OUT: MOV R0,#75HOUT1: SETB ET1SETB TR1NOPNOP NOPNOPDJNZ R0,OUT1MOV R0,#32HOUT2: CLR TR1CLR ET1CLR P1.7 ; 发脉冲NOP NOP NOPNOP NOPNOP NOPNOP NOPDJNZ R0,OUT2 ;时间不到,转OUT2再循环DJNZ R1,OUT ;发脉冲个数脉冲未发完,转OUT再循环LCALL DL500MSRETOUT3: MOV R0,#0FFHLJMP OUT1DELAY: MOV R2,#0FFHDELAY1: DJNZ R2,DELAY1RETDL10MS: MOV R3,#14HDL10MS1: LCALL DELAYDJNZ R3,DL10MS1RETDL500MS: MOV R4,#32HDL500MS1: LCALL DL10MSDJNZ R4,DL500MS1RETEND接收程序主程序和中断程序入口ORG 0000HAJMP STARTORG 0003H ;外部中断0中断入口LJMP INTEX0ORG 000BHRETIORG 0013HRETIORG 001BHRETIORG 0023HRETIORG 002BHRETI;初始化程序CLEAR: CLR ADEC AMOV P0,AMOV P1,AMOV P2,AMOV P3,ACLEARMEM: MOV IE,#00H ;关所有中断SETB EX0 ;开外中断SETB EA ;总中断允许RETSTART: LCALL CLEARSJMP $;遥控接收程序(采用中断接收)INTEX0: CLR EX0JNB P3.2,READ1READOUT: SETB EX0 ;允许外部中断0中断RETIREAD1: CLR AMOV DPH,A ;DPTR清零MOV DPL,A ;a=0; dph=0 HARD1: JB P3.2, HARD11 ;=1跳转;=0INC DPTRNOPNOPAJMP HARD1HARD11: MOV A,DPHJZ READOUT ;a=0 tiaozhuanCLR A ;a=1第一个为宽脉冲(计数器先清0)CLR P3.6READ11: INC AREAD12: JNB P3.2,READ12 ;低电平时等待MOV R1,#06HREAD13: JNB P3.2,READ11 ;低电平跳转LCALL DELAYDJNZ R1,READ13DEC A DEC AJZ FUN0 DEC AJZ FUN1 DEC AJZ FUN2 DEC AJZ FUN3 DEC AJZ FUN4 DEC AJZ FUN5DEC AJZ FUN6 DEC AJZ FUN7 DEC AJZ FUN8 ;为0执行FUN8(10个脉冲)NOPNOPLJMP READOUTFUN0: MOV R0,#00HLJMP DISPLAYFUN1: MOV R0,#01HLJMP DISPLAYFUN2: MOV R0,#02HLJMP DISPLAYFUN3: MOV R0,#03HLJMP DISPLAYFUN4: MOV R0,#04HLJMP DISPLAYFUN5: MOV R0,#05HLJMP DISPLAYFUN6: MOV R0,#06HLJMP DISPLAYFUN7: MOV R0,#07HLJMP DISPLAYFUN8: MOV R0,#08HLJMP DISPLAYDISPLAY: MOV DPTR,#TABLEMOV P0,#0C0H ;MOV P2,#02HMOV A,R0MOVC A,@A+DPTRMOV P0,ALJMP READOUT延时程序(512US)DELAY: MOV R0,#0FFHDELAY1: DJNZ R0,DELAY1RETTABLE:DB0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFHEND4.3.1发射原理图4.3.2接收原理图。