红外遥控电风扇控制系统设计.docx

上传人:b****8 文档编号:11270224 上传时间:2023-02-26 格式:DOCX 页数:39 大小:134.90KB
下载 相关 举报
红外遥控电风扇控制系统设计.docx_第1页
第1页 / 共39页
红外遥控电风扇控制系统设计.docx_第2页
第2页 / 共39页
红外遥控电风扇控制系统设计.docx_第3页
第3页 / 共39页
红外遥控电风扇控制系统设计.docx_第4页
第4页 / 共39页
红外遥控电风扇控制系统设计.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

红外遥控电风扇控制系统设计.docx

《红外遥控电风扇控制系统设计.docx》由会员分享,可在线阅读,更多相关《红外遥控电风扇控制系统设计.docx(39页珍藏版)》请在冰豆网上搜索。

红外遥控电风扇控制系统设计.docx

红外遥控电风扇控制系统设计

红外遥控电风扇控制系统设计

概述

  遥控电风扇是90年代初期在广东珠江三角洲地区作做大量的研发和生产,并有专门的掩模芯片作为主控芯片使用,现本人用单片机作了接收和发射的配套使用的系统方案.红外遥控电路现在已成为一种设计电路的时尚,现简单地介绍了红外线遥控发射、接收系统的原理,给出用89C2051作为遥控接收系统解码器的一种巧妙实现方法,以及完整的51汇编程序代码。

包括发射、接收的原理图及其编程的主程序、发送程序、接收程序、定时中断程序的流程过程,从而完成此设计的要点,参考流程方框图的构思过程,可以编写应用软件。

遥控电风扇控制系统分为两大部分:

遥控器和电风扇控制板,下面分别加以描述。

一、遥控器

 为了能远离距的控制电风扇,采用了红外遥控器。

通常红外遥控器由发射和接收两部分组成,发射部分由单片机80C2051等构成。

接收部分装在电风扇的控制器内,由89C51等构成。

1。

工作原理及组成部分

(1)CPU采用AT89C2051单片机,AT89C2051的功能:

  和MCS—8051产品兼容、2KB可重编程闪速存储器、耐久性:

1000写/擦除周期、2。

7V~6V的操作范围、全静态操作:

0Hz~24MHz、两级加密程序存储器、128×8位内部RAM、15根可编程I/O引线、6个中断源、可编程串行UART通道、直接LED驱动输出、片内模拟比较器、低耗空载和掉电方式。

(2)电源采用4节7号电池来提供电源,并用一个二极管(IN4148)进行降压。

(3)调制部分:

采用CD40106进行缓冲放大并整形.发送的数字信号与38K的载波进行相与,将其调制在一起,整形并缓冲放大,经过8050进行放大驱动红外发射管,使其发射红外光。

(4)红外发射方原理见图

(1)所示。

 

(图1)遥控器原理框图

2.红外发射

(1)发射部分包括键盘矩阵、编码调制、红外发送器.使用89C2051芯片将按键信号调制在38KHz的载波信号上通过三极管放大后发射出去.红外编码为:

全码=引导码+系统码+系统反码+数据码+数据反码。

89C2051的P1口构成矩阵式键盘,用T1产生定时中断,驱动P3。

3产生一个38K的方波,作为红外线的调制基波。

将发送的数据和P3.0进行逻辑与后,经过40106整形,用三极管驱动红外发射管发射.

(2)按键功能

K1:

低档、中档、高档;键值为01H

K2彩灯:

键值为02H

K3:

自然风、睡眠风、正常风键;值为03H

K4定时;键值为04H

K5开/关机;键值为05H

(3)当无键按下时,延时10秒后进入待机状态,系统处于低功耗模式.当有按键按下时,INT0中断产生中断,同时唤醒CPU进行工作状态。

3.红外发射的编码方式

  遥控发射器专用芯片很多,根据编码格式可以分成两大类,这里我们以运用比较广泛,解码比较容易的一类来加以说明,现以日本NEC的uPD6121G组成发射电路为例说明编码原理。

当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同.这种遥控码具有以下特征:

(1)采用脉宽调制的串行码,以脉宽为0.565ms、间隔0。

56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1。

685ms、周期为2。

25ms的组合表示二进制的“1”。

“0”和“1"组成的32位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的.然后再通过红外发射二极管发射.

(2)遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电器设备,防止不同机种遥控码互相干扰。

该芯片的用户识别码固定为十六进制0FFH;后16位为8位操作码(功能码)及其反码.

(3)遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为108ms。

一组码本身的持续时间随它包含的二进制“0”和“1"的个数不同而不同,大约在45~63ms之间。

(4)其相关的波形图如下:

(图2)遥控编码

4.硬件设计

硬件设计见电路原理图(3)所示。

(图3)遥控器电路原理图

5。

软件设计

(1)采用中断的处理程序完成整个系统的操作,INT0中断处理完成键盘扫描以及发送。

(2)程序流程图:

(图4)遥控器软件流程图

二、电风扇控制板

1。

工作原理及组成部分:

红外接收部分包括光电转换放大器、解调、解码电路。

(1)CPU板将单片机、控制、键盘组合在一起完成了人机对话。

用AT89C51单片机来作主芯片控制,采用红外T1838接收头,用双向可控硅MC97A6控制电机档位,具有红外遥控功能。

(2)电源部分:

交流220V经变压器降压为2×8V,全波整流后再由三端稳压器LM7805稳压,供给控制板。

(3)电风扇控制板框图

 

(图5)电风扇控制板框图

2.设计方案

(1)控制部分

(图6)电机引线图

K1:

低、中、高档,相应的指示灯亮。

参见(图6)

K2:

控制彩灯,相应的指示灯亮

K3:

自然风、睡眠风、正常风控制。

参见(图8)、(图9)、(图10)

K4:

定时30分钟,1小时,2小时,4小时.相应的指示灯点亮。

参见(图7)

K5:

具有开机功能和关机功能

 

(图7)定时时循环图

(2)风类

自然风的处理流程:

 

(图8)自然风的循环图

睡眠风的处理流程:

 

(图9)自然风的循环图

正常风的处理流程:

 

(图10)正常风循环

(3)工作方式:

分为手动和遥控两种方式。

4.硬件设计:

参见(图11)

(图11)电风扇控制板电路原理图

5.软件设计:

(1)红外遥控输入在P3。

2(INT0),面板按键P3。

3(INT1).

(2)遥控的解码过程:

(图12)编码

(图13)数据帧图形

  单片机收到一个中断后,开始计数, 然后在主程序有一个判断子程序,首先判断是否>8MS,是否有高电平,再判断是否>4MS的低电平,然后再判断是否是0或1,循环32次完成,32个码的接收和存储.

(3)程序流程图:

 

(图14)控制板主程序流程

 

 

(图15)键值处理流程

 

 

 

;=============电风扇红外发射(遥控器)程序=====================================

;按键说明:

;K1:

低风档,键值为01

;K2:

中风档,键值为02

;K3:

高风档,键值为03

;K4:

彩灯档,键值为04

;K5:

自然风档,键值为05

;K6:

睡眠风档,键值为06

;K7:

正常风档,键值为07

;K8:

定时档,键值为08

;K9:

开关机,键值为9

;采用4×1.5V供电,用89C2051作CPU芯片,当没有按键按下时,进入待机状态

;按键采用INT0进行中断,只采用了8个按键

;==============================================================================

$include(2051RAM。

INC)

;$include(REG51。

INC)

 ORG 0000H

 JMP MAIN

 ORG 0003H   ;INT0的中断入口

 JMP KEY_INT0

 ORG 000BH   ;T0的中断入口

 JMP FM_T0

 ORG 0100H

;———---—---—————-——-———--—————————--—----—------———-----——----——-—-----—--—-——-

;进入主程序

;-—--——-—-—---———————-—-—-——-—-—---—-—-———--———--—-----———--—-——-—--———--——-———

MAIN:

 MOV R0,#7FH  ;预使用单元清0

 CLR A

MAIN0:

 MOV @R0,A

 DJNZ R0,MAIN0  ;清缓冲的地址单元值

 MOV SP,#60H

   

 MOV P1,#00001111B  ;将P1置输入

 CLR KEYON   

 CLR IT0   ;设置电平触发

 SETB PT0   

 SETB EX0

 SETB EA   

 MOV 40H,#0FFH

 MOV 41H,#0FFH

 MOV 42H,#0FFH 

 CLR DATAOUT     

 CLR FMOUT   ;38K的中断初始值

 MOV TMOD,#02H  ;T0的工作方式2

 MOV TH0,#0F7H  ;送初值  

 SETB FMOUT   

 CLR TR0   ;1/3的高电平标志

 MOV R2,#02H   ;2/3的循环次数 

 DJNZ 40H,LOOP1

 DJNZ 41H,LOOP1

 DJNZ 42H,LOOP1

 MOV PCON,#01H  ;进入待机

LOOP1:

 JMP MAIN

  

;============================================================= 

;中断程序:

完成其按键按下的标志位

;=============================================================

KEY_INT0:

 PUSH ACC

 PUSH PSW

 CLR EX0

 MOV A,P1   

 CPL A   

 ANL A,#0FH

 MOV R2,A   ;将行号存入R2中

 MOV P1,#0F0H  ;将列置输入端

 MOV A,P1   

 CPL A

 ANL A,#0F0H   ;取列号并存入A中

 MOV R1,#03H   ;置列初号

 MOV R3,#03H   ;置循环次数

 CLR C

PINT01:

 RLC A   ;取列号

 JC PINT01   

 DEC R1

 DJNZ R3,PINT01

  

PINT02:

 MOV A,R2   ;取行号

 MOV R2,#00H

 MOV R3,#03H   ;置循环次数

PINT03:

 RRC A   

 JC PINT04

 INC R2

 DJNZ R3,PINT03

PINT04:

 MOV A,R2

 CLR C   

 RLC A   

 RLC A

 ADD A,R1

 MOV SENDBUF+2,A  ;键号存于32H单元中

 CPL A

 MOV SENDBUF+3,A  ;存键号的反码

 MOV SENDBUF,#0FFH  ;系统码在30H单元中

 MOV SENDBUF+1,#00H  ;系统反码在31H单元中

 LCALL SEND

 SETB ET0   ;发送引导码

 SETB TR0   ;启动T0

 LCALL PP   ;发送一帧数据.包括系统码和数据码

 CLR TR0   ;当发送完后关断定时器

 CLR ET0   ;关T0的中断

 SETB EX0   ;执行完后打开外INT0

 MOV 40H,#0FFH

 MOV 41H,#0FFH

 MOV 42H,#0FFH

 POP PSW

 POP ACC

 RETI

;=============================================================================

FM_T0:

 JB F0,IT01

 DJNZ R2,GRET

 MOV R2,#2

IT01:

 CPL FMOUT

 CPL F0

GRET:

 RETI

;==============================================================================   

;引导脉冲子程序

SEND:

 SETB DATAOUT

 LCALL DY9000us

 CLR DATAOUT

 LCALL DY4500us

 RET 

;==============================================================================

;发送四个缓冲单元中的内容程序:

PP:

 MOV R3,#4  ;发送的字节数

 MOV R1,SENDBUF 

PP0:

 MOV R2,#08H  ;让其循环8次

 MOV A,@R1  ;将数据首址

 CLR C  ;清CY

PP1:

 RRC A  ;右环移带进位

 JC ONE  ;若C等1

ZER0:

 SETB DATAOUT  ;若C等0

 CALL DY562us

 CLR DATAOUT

 CALL DY562us

  

ONE:

 SETB DATAOUT

 CALL DY562us

 CLR DATAOUT

 CALL DY1687us

 DJNZ R2,PP1

 INC R1

 DJNZ R3,PP0  ;等四个字节的发送完

 RET

;=========================================================================  

DY1687us:

 MOV R31,#38

L2:

    PUSH   R31

L3:

    DJNZ   R31,L3

       POP    R31

       DJNZ   R31,L2

       RET

;========================================================================  

DY562us:

 

 MOV R31,#20

L22:

   PUSH   R31

L33:

   DJNZ   R31,L33

       POP    R31

       DJNZ   R31,L22

       RET  

;==========================================================================

;延时9000us子程序:

DY9000us:

 

 MOV R31,#91

L2A:

   PUSH   R31

L3A:

   DJNZ   R31,L3A

       POP    R31

       DJNZ   R31,L2A

       RET 

;==============================================================================

;延时4500us子程序  

DY4500us:

  

 MOV R31,#67

L2B:

   PUSH   R31

L3B:

   DJNZ   R31,L3B

       POP    R31

       DJNZ   R31,L2B

       RET  

;==============================================================================

DY10S:

 MOV R6,#10

L2C:

 MOV R4,#2

L3C:

 MOV R5,#248

 DJNZ R5,$

 DJNZ R4,L3C

 DJNZ R6,L2C

 RET

END 

   

    

 

 

INC文件内容

 

;—-—--—------—--—------——--—-——-—--—-———----—--—-—--————————--—————---—————-————

;AT89C2051内存RAM分配 Fiel=2051ram.INC

;--—-———--—--—-—---—-——-———-———-——-----————-—-——--———-—————-—-———-----—--——-—---

$SAVE

$NOLIST

R31  DATA 1FH

KEYON  BIT 20H。

0  ;按键按下的标志

SENDBUF  DATA 30H  ;定义发送系统码缓冲的地址

FMOUT  BIT P3。

3  ;38K输出

DATAOUT  BIT P3.0  ;数据输出

$RESTORE

;========================电风扇红外接收(控制板)程序=========== 

;用89C51单片机来作主芯片控制,采用红外1838接收头,可控硅采用MC97A6

;风扇具有红外遥控功能

;K1:

低档,相应的指示灯亮,中档,相应的指示灯亮,高档,相应的指示灯亮    

;K2:

彩灯,相应的指示灯亮

;K3:

自然风控制      睡眠风的控制 正常风的控制      

;K4:

定时30分钟,1小时,2小时,4小时

;K5:

开关机功能

;自然风的处理流程:

停-——>开低档-——〉延时6秒———〉开中档-->

;延时6秒-—-〉开高档-——〉循环

;睡眠风的处理流程:

停6S——-〉开低档10S-—-〉停延时10S——〉开中档10S-—〉

;停延时10S-->开高档10S--—>循环

;正常风的处理流程:

开低档10S——>开中档10S—->开高档10S-——〉循环

;==========================================================

$INCLUDE(REG51.INC)

$INCLUDE(89C51RAM.INC)

 ORG 0000H

 JMP START

 ORG 0003H

 JMP JISH_INT0 ;红外遥控中断设置

 ORG 000BH

 JMP LP0  ;定时中断

 ORG 0013H

 JMP KEY_INT1 ;按键中断 

 ORG 0100H

START:

 

 MOV R0,#7FH  ;预使用单元清0

 CLR A

MAIN0:

 MOV @R0,A

 DJNZ R0,MAIN0

  

 MOV SP,#60H

 MOV TMOD,#01H

 MOV TH0,#3CH  ;定时50MS

 MOV TL0,#0B0H

 

 SETB LLOW   ;关低风

 SETB MDI   ;关中风

 SETB HIGHT   ;关高风

 SETB LLAP   ;关彩灯

 MOV P0,#0FFH  ;关所有的指示灯

  

 SETB EX0

 SETB EX1

 SETB EA   ;CPU开中

   

MAIN:

 JB LKEYON,KEYHANDLE ;检按键标志位

 JB REC,KEYHANDLE  ;检接收中断标志位

 JMP MAIN   ;转主程序

 

;============================================================================== 

;键值的处理的程序

;键盘处理程序

;K1键:

完成弱、中、强控制,相应的指示灯点亮

;K2键:

完成彩灯控制,相应的指示灯点亮

;K3键:

完成自然风、睡眠风、正常风的控制,相应的指示灯点亮

;K4键:

完成定时的控制,同时0。

5H,1H,2H,4H,相应的指示灯点亮

;K5键:

开/关机

;==============================================================================

KEYHANDLE:

 CLR LKEYON

 CLR LREC

 MOV A,MRD

    

 CJNE A,#01H,KEY2  ;当键值=01H时, 

;---—-—--——---—-----—-———----——-—-——-—-—-—--—-———---—---—————-—---—-——--—-----—

;低、中、高、的控制

;—-—-—----—————---——--—--—-——-—--———---—---——-—-—---——————--———--—————--—-——--—

KEY1:

 JB DANG01,DIFENG

 JB DANG02,ZHONGFENG ;DANG02中档标志位

 JB DANG03,QIANGFENG ;DANG03强档标志位 

 JMP MAIN

;——---——---——————---—-——-———-——-—-——-——--—--———-———-——-———---—--—---———-——----—

;低档控制 

DIFENG:

 

 JNB DANG01,FAN0

 SETB LLOW   ;完成了低档的程序,关低

 SETB MDI   ;关中

 SETB HIGHT   ;关高

 CALL DY20MS   ;保证三个SCR全部为关断状态

 CLR LLOW   ;开低风

 CLR LED_L   ;开低档指示灯

 CLR DANG01

FAN0:

 JMP MAIN

;----———————--—-—-——---———-————-——--———--—--————--—--—--—--———--——--—-————-——--

;中档控制

ZHONGFENG:

 

 

 JNB DANG02,FAN0

 SETB LLOW   ;关低

 SETB MDI   ;关中

 SETB HIGHT   ;关高

 CALL DY20MS   ;保证三个SCR全部为关断状态

 CLR MDI

 CLR LED_M

 CLR DANG02

 

 AJMP MAIN   ;跳转到

;----—-—-----——-—-—---—---—--————-————-——————-—--————-—-—----—-——--—-—-—-—-——-—

;高档控制

QIANGFENG:

 

 JNB DANG03,FAN0 

 SETB LLOW   ;关低

 SETB MDI   ;关中

 SETB HIGHT   ;关高

 CALL DY20MS   ;保证三个SCR全部为关断状态

 CLR HIGHT

 CLR LED_H

 CLR DANG03

 AJMP MAIN   ;跳转到

;---——-————---————-—-———--—---——--——--—-—--—————-——-—-—-——--——-——-———-—-——----—

;彩灯控制

;—--—--—------———--—-—-—-——-—------—-----——--——--——--——-——--———--———-—-—-——--—- 

KEY2:

 

 CJNE A,#02H,KEY3  ;K4的处理程序彩灯的处理程序

 JB PLAP,LED1

 CLR LLAP   ;第一次按时将彩灯打开,

 CLR LED_LAP   

 SETB PLAP   

 JMP MAIN   ;返回

LED1:

 SETB LLAP   ;第二次按时将彩灯关断

 SETB LED_LAP

 CLR PLAP 

 JMP MAIN   ;跳转到

;—-

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 中医中药

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1