单片机实例--通过实例学习单片机_第1页
单片机实例--通过实例学习单片机_第2页
单片机实例--通过实例学习单片机_第3页
单片机实例--通过实例学习单片机_第4页
单片机实例--通过实例学习单片机_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

实例D 无线电遥控应用实例 65实例D 无线电遥控应用实例无线电遥控的主要特点是控制距离远,而且通信能够穿透建筑物,没有方向的限制。本章将利用无线电发射及接收模块结合单片机,来设计一个简易的无线电遥控系统,并通过显示无线电遥控器按键值实例、无线电遥控开关和无线电遥控门铃及照明灯实例,来介绍无线电遥控基本原理及其设计方法。D.1 显示无线电遥控器按键值功能说明:利用无线电发射及接收模块结合单片机,设计一个简易的无线电遥控系统。系统可以通过单片机P1端口低4位所接的LED亮或灭的状态,来显示无线电遥控器按键值。其中LED亮视为0,LED灭视为1。例如,按动无线电遥控器按键A,8个LED中右边数第4个灭,其他全亮,表示二进制数为00001000B,转换成十六进制数为08H,即无线电控器按键A的控制编码为08H;如果按动无线电遥控器按键B,8个LED中右边第3个灭,其他全亮,则表示二进制数为00000100B,转换成十六进制数为04H,即无线电遥控器按键B的控制编码为04H。再如,按动无线电遥控器C键,8个LED全亮,则表示二进制数为00000000B,转换成十六进制数为00H,即遥控器的C键控制编码为00H。二进制数转换十六进制数可以参考书后附录B 数的制式转换表。只有事先了解了遥控器的按键编码,才能在程序控制设计中实现按指定的按键去控制指定的遥控动作。D.1.1 无线电遥控原理 1无线电遥控系统结构无线电遥控系统是由发射端和接收端两部分组成。发射端就是无线电发射器。图D.1所示是发射端的工作方块图,发射器上面有4组按键,分别为A键、B键、C键和D键,内有编码芯片、密码设置和高频载波电路,当按下任何一键时动作指示灯LED点亮,经过编码芯片转换为不同的数字数据,再经过高频载波电路将无线电控制信号发射出去。编码芯片PT2262发出的编码信号由地址码、数据码、同步码组成。图D.1 无线电发射端工作方框图无线电控制接收端是由接收模块和单片机所组成,图D.2所示是接收端的工作方块图,接收模块中包括高频接收电路、解码芯片PT2272和密码设置电路等。高频接收电路接收来自发射器送来的高频信号,并取出其中的数字信号,送至解码芯片,解码芯片负责将原先编码的数据进行解码,取出原先发射的数据送到单片机上,单片机控制程序负责控制完成相对的按键遥控动作。图D.2 无线电接收端工作方框图发射器本身并不耗电,只有按键按下时才会耗电,因此不需要装上电源开关。另外,由于无线电遥控是靠高频载波频率传送编码数据,因此在出厂时,其工作频率已先行设置调整完成,用户请勿自行调整,否则工作频率不吻合时,则无法正常接收。图D.3 接收端模块地址设置跳线区示意图无线电的接受端和发射端的地址必须完全相同,才能配对使用。编码芯片PT2262和解码芯片PT2272的第18脚为地址设定脚,有悬空、接正电源、接地3种状态可供选择,所以可提供6561组密码设置。遥控类产品上一般都预留地址编码区,采用焊锡搭焊方式或插针方式来选择,模块出厂时一般都悬空,便于客户自己修改地址码。图D.3所示是接收端模块地址设置跳线区示意图,地址跳线区是由3排焊盘组成,中间的8个焊盘是解码芯片PT2272的第18脚,最左边标注A0的为芯片的第1脚。最上面的一排焊盘右侧标有“L”字样,表示和电源地相连。最下面的一排焊盘标有“H”字样,表示和正电源相连。所谓的设置地址码即设置密码,就是将上下相邻的焊盘短路起来,例如将第一脚和上面的焊盘L用焊锡短路后就相当于将PT2272芯片的第一脚设置为接地。同理将第一脚和下面的焊盘H用焊锡短路后就相当于将PT2272芯片的第一脚设置为接正电源,如果什么都不接就表示悬空。设置地址码的原则是:同一个系统地址码必须一致,不同的系统可以依靠不同的地址码加以区别。2PT2262/PT2272特点PT2262/PT2272遥控芯片可应用在车辆防盗系统、家庭防盗系统、遥控玩具及其他电器遥控系统,其特点如下。 CMOS工艺制造,具有低功耗、耐干扰的特点。 外部元器件少。 工作电压范围宽:2.615V。 数据最多可达6位。 地址码最多可达531441种。3PT2262/PT2272引脚说明图D.4所示是发射芯片PT2262引脚图,为18个引脚的DIP包装。 A0A11:地址管脚,用于进行地址编码,可设置为“0”,“1”,“f”(悬空)。 D0D5:数据输入端,也可以作为额外的地址编码设置。 Vcc:电源正端(+)。 Vss:电源负端()。 TE:编码启动端,用于多数据的编码发射,低电平有效。 OSC1:振荡电阻输入端,与OSC2所接电阻决定振荡频率。 OSC2:振荡电阻振荡器输出端。 Dout:数据输出端(正常时为低电平)。图D.5所示是接收芯片PT2272引脚图,也是18个引脚的DIP包装。 图D.4 PT2262引脚图 图D.5 PT2272引脚图 A0A11:地址管脚,用于进行地址编码,可设置为“0”,“1”,“f”(悬空)。必须与PT2262设置相一致,否则不解码。 D0D5:解码的数据输出端。 Vcc:电源正端(+)。 Vss:电源负端()。 DIN:未解码的数据信号输入端。 OSC1:振荡电阻输入端,与OSC2所接电阻决定振荡频率。 OSC2:振荡电阻振荡器输出端。 TV:解码有效确认端。当发射端与接收端密码一致,若由接收端接收进来的数据解码完成,数据出现在D0D5引脚时,此引脚会呈现高电平,用以通知外部来读取解码信号。D.1.2 硬件设计 无线电发射端采用PT2262编码芯片的发射器,接收端是采用PT2272解码芯片的接收模块与单片机结合,PT2262/ PT2272是采用8位地址编码和4位数据码,发射端与接收端的地址编码必须一致。接收模块中的解码数据输出端引脚D0D4分别与单片机P0.0P0.3引脚连接,模块中解码有效确认端VT与单片机P0.4引脚连接,模块Vcc引脚接电源正端,Vss引脚接电源负端。单片机P1端口所接的8个LED用来显示无线电遥控器按键值。P3.5引脚通过限流电阻R与三极管基极相接,三极管的集电极接有蜂鸣器,电路如图D.6所示。图D.6 无线电接收端电路图D.1.3 程序设计 程序中,通过测试VT引脚电平高低,来判断接收模块是否收到遥控数字信号,如果VT=1,则说明遥控数字信号出现,等待遥控器按键放开后,读取数据,并将获得的按键数据通过P1端口LED显示出来。1主要标号说明 MAIN:主程序。 WX_ZX:遥控执行子程序。 FS_SPK:发声子程序。 DE:短暂延时子程序。 DELAY05_R5:延时子程序,总延时时间为0.5msR5。2程序清单汇编语言编写的显示无线电遥控器按键值源程序WX01.ASM代码如下:01 ;-02 ;程序名:WX01.ASM03 ;程序功能:显示无线电遥控器按键值04 ;-05 ;- 程序初始化 -06 SPK EQU P3.5 ; 压电喇叭信号输入位07 VT EQU P0.4 ; 接收控制信号位0809 ;- 主程序 -1011 MAIN: ; 主程序12 ACALL FS_SPK ; 调用发声子程序,响一声13 LOOP:14 JNB VT, LOOP ; 等待发射信号出现,VT=115 JB VT,$ ; 等待遥控器按键放开,TV=016 MOV A,P0 ; 读取数据17 ANL A,#0FH ; 忽略高4位18 ACALL WX_ZX ; 调用遥控执行子程序,执行动作19 JMP LOOP ; 继续循环执行2021 ;- 遥控执行子程序 -22 WX_ZX: 23 MOV P1, A ; 显示二进制按键值24 ACALL FS_SPK ; 调用发声子程序,响一声25 RET26 ;- 发声子程序 -27 FS_SPK: 28 MOV R6, #029 B1: ACALL DE30 CPL SPK31 DJNZ R6,B1 32 MOV R5, #10033 ACALL DELAY05_R534 RET35 ;- 短暂延时子程序 -36 DE: 37 MOV R7, #18038 DE1: NOP39 DJNZ R7, DE140 RET41 ;- 延时子程序 -42 DELAY05_R5: ;延时子程序,总延时时间为0.5ms*R543 MOV R6, #544 D1: MOV R7, #1045 DJNZ R7, $46 DJNZ R6, D147 DJNZ R5, DELAY05_R548 RET 49 ;- 50 END ; 程序结束D.1.4 代码详解06:P3.5为压电喇叭信号输入位,并设定P3.5以SPK表示。07:P0.4为无线电遥控接收控制信号位,并设定P0.4以VT表示。1119:为主程序部分。 12:调用FS_SPK发声子程序,响一声,表示红外线接收开始工作。13:循环开始。14:等待遥控数字数据信号的出现。当发射器有了按键,则接收模块中解码芯片PT2272的VT引脚会呈现高电平,若是放开按键则VT引脚会呈现低电平。所以当检测到VT为高电平,即VT=1时,说明有发射信号出现,程序则向下执行。如果VT为低电平,则说明没有发射信号,程序将在此不断循环扫描方式侦测VT引脚是否高电平。15:当VT引脚出现高电平后,说明有键按下,还需要等待遥控器按键放开,只有检测到TV=0时,说明按下的键被放开,完成一次信号发射,接收端也会收到按键的键码遥控信号,此时程序将向下执行。16:接收模块收到的数据是通过D0D4引脚输入到寄存器P0,再将P0内数据送到累加器A,即完成读取数据。17:码芯片PT2272采用4位输出,并与P0的低4位连接,所以忽略高4位。18:调用遥控执行子程序,执行遥控动作。19:继续循环执行。2225:遥控执行子程序。23:将累加器A的内容,即按键的遥控编码数据送P1端口输出,数据0所对应的位LED点亮,数据1所对应的位LED熄灭。所以,P1端口低4位所接的LED亮或灭的状态,是显示无线电遥控器的按键值。24:调用发声子程序,响一声。25:遥控执行子程序返回。2734:发声子程序。3640:短暂延时子程序。4248:延时子程序,总延时时间为0.5msR5。50:程序结束。D.2 无线电遥控开关功能说明:利用无线电遥控发射器及接收模块结合单片机,设计一个简易的无线电遥控系统。该系统通过遥控继电器开启关闭,进而控制家用电器开关。遥控发射器使用键盘上的A键和B键,分别控制继电器REY1和REY2。当按下A键,则继电器REY1将ON,蜂鸣器响一声,再次按下遥控器上的A键,继电器REY1将OFF。当按下B键,则继电器REY2将ON,蜂鸣器响二声,再次按下遥控器上的B键,继电器REY2将OFF。D.2.1 硬件设计 无线电发射端采用PT2262编码芯片的发射器,接收端是采用PT2272解码芯片的接收模块与单片机结合,PT2262/ PT2272是采用8位地址编码和4位数据码,发射端与接收端的地址编码必须一致。接收模块中的解码数据输出端引脚D0D4分别与单片机P0.0P0.3引脚连接,模块中解码有效确认端VT与单片机P0.4引脚连接,模块Vcc引脚接电源正端,Vss引脚接电源负端。单片机P2.6接继电器REY1,P2.7接继电器REY2。P3.5引脚通过限流电阻R与三极管基极相接,三极管的集电极接有蜂鸣器。电路如图D.7所示。图D.7 无线电遥控开关电路图D.2.2 程序设计 程序中,通过测试VT引脚电平高低来判断接收模块是否收到遥控数字信号,如果VT=1,则说明遥控数字信号出现,等待遥控器按键放开后,读取数据,并将获得的按键数据与按键A码(08H)进行比较。如果相同,则继电器REY1才能工作,防止误动;如果不相同,再与按键B码(04H)进行比较,相同则继电器REY2工作。程序中的按键比较码如果不知道,可以通过上节办法实际测得。1主要标号说明 MAIN:主程序。 WX_ZX:遥控执行子程序。 FS_SPK:发声子程序。 DE:短暂延时子程序。 DELAY05_R5:延时子程序,总延时时间为0.5msR5。2程序清单汇编语言编写的无线电遥控开关源程序WX02.ASM代码如下:01 ;-02 ;程序名:WX02.ASM03 ;程序功能:无线电遥控开关 04 ;-05 ;- 程序初始化 -06 SPK EQU P3.5 ; 压电喇叭信号输入位07 VT EQU P0.4 ; 接收控制信号位08 REY1 EQU P2.6 ; 继电器REY1控制引脚定义 09 REY2 EQU P2.7 ; 继电器REY2控制引脚定义 10 ;-11 WK_A EQU 08H ; 遥控器按键A比较码 12 WK_B EQU 04H ; 遥控器按键B比较码 13 14 ;- 主程序 -1516 MAIN: ; 主程序17 ACALL FS_SPK ; 调用发声子程序,响一声18 LOOP:19 JNB VT,LOOP ; 等待发射信号出现,VT=120 JB VT,$ ; 等待遥控器按键放开,TV=021 MOV A,P0 ; 读取数据22 ANL A,#0FH ; 忽略高4位 23 ACALL WX_ZX ; 调用遥控执行子程序,执行动作24 JMP LOOP ; 继续循环执行2526 ;- 遥控执行子程序 -2728 WX_ZX: ; 遥控执行子程序29 CJNE A,#WK_A, A1 ; 比较不是按键A,则继续比较30 ACALL FS_SPK ; 调用发声子程序,响一声31 CPL REY1 ; 使继电器接通或断开32 RET33 ;-34 A1: CJNE A,#WK_B, A2 ; 比较不是按键B,则子程序返回35 ACALL FS_SPK ; 调用发声子程序,响二声36 ACALL FS_SPK 37 CPL REY2 ; 使继电器接通或断开38 A2: RET ; 子程序返回3940 ;- 发声子程序 -4142 FS_SPK: ; 发声子程序43 MOV R6, #044 B1: ACALL DE45 CPL SPK46 DJNZ R6,B1 47 MOV R5, #10048 ACALL DELAY05_R549 RET5051 ;- 短暂延时子程序 - 5253 DE: ; 短暂延时子程序54 MOV R7, #18055 DE1: NOP56 DJNZ R7, DE157 RET58 ;- 延时子程序 -59 DELAY05_R5: ; 延时子程序,总延时时间为0.5ms*R560 MOV R6, #561 D1: MOV R7, #1062 DJNZ R7, $63 DJNZ R6, D164 DJNZ R5, DELAY05_R565 RET66 ;- 67 END ; 程序结束D.2.3 代码详解0612:为程序初始化部分。06:P3.5 为压电喇叭信号输入位,并设定P3.5以SPK表示。07:P0.4为无线电遥控接收控制信号位,并设定 P0.4以VT表示。08:P2.6为继电器控制引脚,并设定P2.6以REY1表示。09:P2.7为继电器控制引脚,并设定P2.7以REY2表示。11:08H为遥控器按键A编码,并设定08H以WK_A表示。12:04H为遥控器按键B编码,并设定04H以WK_B表示。1624:为主程序部分。17:调用FS_SPK发声子程序,响一声,表示无线电接收开始工作。18:循环开始。19:等待遥控数字数据信号的出现。当发射器有了按键,则接收模块中解码芯片PT2272的VT引脚会呈现高电平,若是放开按键则VT引脚会呈现低电平。所以当检测到VT为高电平,即VT=1时,说明有发射信号出现,程序则向下执行。如果VT为低电平,则说明没有发射信号,程序将在此不断循环扫描方式侦测VT引脚是否高电平。20:当VT引脚出现高电平后,说明有键按下,还需要等待遥控器按键放开,只有检测到TV=0时,说明按下的键被放开,完成一次信号发射,接收端也会收到按键的键码遥控信号,此时程序将向下执行。21:接收模块收到的数据是通过D0D4引脚输入到寄存器P0,再将P0内数据送到累加器A,即完成读取数据。22:码芯片PT2272采用4位输出,并与P0的低4位连接,所以忽略高4位。23:调用遥控执行子程序,执行遥控动作。24:继续循环执行。2838:遥控执行子程序。29:将接收的按键解码数据与按键A编码比较,如果相等说明按下的是遥控器A键,则程序向下执行A键的遥控功能,否则程序将对按键B编码数据进行比较。30:调用发声子程序,响一声。31:单片机P2.6端口反相输出,使继电器REY1接通或断开。32:遥控执行子程序返回。34:将接收的按键解码数据与按键B编码比较,如果相等说明按下的是遥控器B键,则程序向下执行B键的遥控功能,否则程序将返回。35:调用发声子程序,响一声。36:调用发声子程序,响一声。37:单片机P2.7端口反相输出,使继电器REY2接通或断开。38:遥控执行子程序返回。4249:发声子程序。5357:短暂延时子程序。5965:延时子程序,总延时时间为0.5msR5。67:程序结束。D.3 无线电遥控门铃及照明灯功能说明:利用无线电遥控发射器及接收模块结合单片机,设计一个无线电遥控门铃及照明灯系统。按动无线电遥控器上的A键,门铃会响三声,停止1s后,再响三声。按动无线电遥控器上的B键,门铃响一声,随后门铃指示灯闪动3s之后,再响一声,门铃指示灯再闪动3s。按动无线电遥控器上的C键,点亮室内照明灯。按动无线电遥控器上的D键,关闭室内照明灯。D.3.1 硬件设计 无线电发射端采用PT2262编码芯片的发射器,接收端是采用PT2272解码芯片的接收模块与单片机结合,PT2262/ PT2272是采用8位地址编码和4位数据码,发射端与接收端的地址编码必须一致。接收模块中的解码数据输出端引脚D0D4分别与单片机P0.0P0.3引脚连接,模块中解码有效确认端VT与单片机P0.4引脚连接,模块Vcc引脚接电源正端,Vss引脚接电源负端。单片机的P2.6引脚连接交流式固态继电器SSR,这种继电器是采用光电耦合式无触点隔离输出控制,可以有效防止在电源接通或断开时对系统产生的不良影响。其继电器的输出端OUT无正、负之分,用来控制照明灯电源交流回路的通断。单片机的P2.4引脚接有蜂鸣器,P1.7引脚接有LED,作为门铃的指示灯,电路如图D.8所示。图D.8 无线电遥控门铃及照明灯电路图D.3.2 程序设计 程序中,通过测试VT引脚电平高低来判断接收模块是否收到遥控数字信号。如果VT=1,则说明遥控数字信号出现,等待遥控器按键放开后,读取数据,并将获得的按键数据与按键A码、B码、C码和D码进行比较,从而检测出遥控发射器所按键的编码数据信号,去控制遥控的相应动作。1主要标号说明 MAIN:主程序。 WX_ZX:遥控执行子程序。 FS_SPK:发声子程序。 SD_LED:门铃指示灯闪动子程序。 DE:短暂延时子程序。 DELAY10_R5:延时子程序,总延时时间为10msR5。2程序清单汇编语言编写的无线电遥控门铃及照明灯程序WX03.ASM代码如下:01 ;-02 ;程序名:WX03.ASM03 ;程序功能:无线电遥控门铃及照明灯04 ;-05 ;- 程序初始化 -06 SPK EQU P3.5 ; 压电喇叭信号输入位07 VT EQU P0.4 ; 接收控制信号位08 SLED EQU P1.7 ; 工作指示灯引脚定义09 SSR EQU P2.6 ; 继电器控制引脚定义 10 ;-11 WK_A EQU 08H ; 遥控器按键A比较码 12 WK_B EQU 04H ; 遥控器按键B比较码 13 WK_C EQU 00H ; 遥控器按键C比较码 14 WK_D EQU 01H ; 遥控器按键D比较码 1516 ;- 主程序 -1718 MAIN: ; 主程序19 ACALL FS_SPK ; 调用发声子程序,响一声20 LOOP: 21 JNB VT, LOOP ; 等待发射信号出现,VT=122 JB VT,$ ; 等待遥控器按键放开,TV=023 MOV A,P0 ; 读取数据24 ANL A, #0FH ; 忽略高4位25 ACALL WX_ZX ; 调用遥控执行子程序,执行动作26 JMP LOOP ; 继续循环执行27 28 ;- 遥控执行子程序 -2930 WX_ZX: ; 遥控执行子程序31 CJNE A,#WK_A,A1 ; 比较不是按键A,则继续比较32 ACALL FS_SPK ; 调用发声子程序,响三声33 ACALL FS_SPK 34 ACALL FS_SPK 35 MOV R5, #100 ; 延时1s36 ACALL DELAY10_R5 37 ACALL FS_SPK ; 调用发声子程序,响三声38 ACALL FS_SPK 39 ACALL FS_SPK 40 RET41 ;-42 A1: CJNE A,#WK_B,A2 ; 比较不是按键B,则继续比较43 ACALL FS_SPK ; 调用发声子程序,响一声44 ACALL SD_LED ; 调门铃灯闪动子程序,闪动3s45 ACALL FS_SPK ; 调用发声子程序,响一声46 ACALL SD_LED ; 调用门铃灯闪动子程序,闪动3s47 RET48;-49 A2: CJNE A, #WK_C,A3 ; 比较不是按键C,则子程序返回50 CLR SSR ; 接通继电器,点亮照明灯 51 RET52 ;-53 A3: CJNE A,#WK_D,A4 ; 比较不是按键D,则子程序返回54 SETB SSR ; 关闭继电器,关闭照明灯55 A4: RET56 ;- 门铃指示灯闪动子程序-5758 SD_LED: ; 门铃指示灯闪动子程序59 MOV R4, #3060 LE1: CPL SLED61 MOV R5, #1062 ACALL DELAY10_R563 DJNZ R4, LE164 RET6566 ;- 发声子程序 -6768 FS_SPK: ; 发声子程序69 MOV R6, #070 B1: ACALL DE71 CPL SPK72 DJNZ R6,B1 73 MOV R5, #574 ACALL DELAY10_R575 RET7677 ;- 短暂延时子程序 - 7879 DE: ; 短暂延时子程序80 MOV R7, #18081 DE1: NOP82 DJNZ R7, DE183 RET8485 ;- 延时子程序 -86 87 DELAY10_R5: ;延时子程序,总延时时间为10ms*R588 MOV R6, #10089 D1: MOV R7, #5090 DJNZ R7, $91 DJNZ R6, D192 DJNZ R5, DELAY10_R593 RET 94 ;- 95 END ; 程序结束D.3.3 代码详解0614:为程序初始化部分。06:P3.5 为压电喇叭信号输入位,并设定P3.5以SPK表示。07:P0.4为无线电遥控接收控制信号位,并设定P0.4以VT表示。08:P1.7为门铃工作指示灯引脚,并设定P1.7以SLED表示。09:P2.6为交流式固态继电器SSR控制引脚,并设定P2.6以SSR表示。11:08H为遥控器按键A编码,并设定08H以WK_A表示。12:04H为遥控器按键B编码,并设定04H以WK_B表示。13:04H为遥控器按键B编码,并设定04H以WK_C表示。14:04H为遥控器按键B编

温馨提示

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

评论

0/150

提交评论