红外遥控电风扇控制系统毕业设计文档格式.docx
《红外遥控电风扇控制系统毕业设计文档格式.docx》由会员分享,可在线阅读,更多相关《红外遥控电风扇控制系统毕业设计文档格式.docx(29页珍藏版)》请在冰豆网上搜索。
(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)电机引线图
低、中、高档,相应的指示灯亮。
参见(图6)
K2:
控制彩灯,相应的指示灯亮
自然风、睡眠风、正常风控制。
参见(图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)键值处理流程
;
=============电风扇红外发射(遥控器)程序=====================================
按键说明:
低风档,键值为01
中风档,键值为02
高风档,键值为03
K4:
彩灯档,键值为04
自然风档,键值为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
0003H
INT0的中断入口
KEY_INT0
000BH
T0的中断入口
FM_T0
0100H
------------------------------------------------------------------------------
进入主程序
MAIN:
MOV
R0,#7FH
预使用单元清0
CLR
A
MAIN0:
@R0,A
DJNZ
R0,MAIN0
清缓冲的地址单元值
SP,#60H
P1,#00001111B
将P1置输入
KEYON
IT0
设置电平触发
SETB
PT0
EX0
EA
40H,#0FFH
41H,#0FFH
42H,#0FFH
DATAOUT
FMOUT
38K的中断初始值
TMOD,#02H
T0的工作方式2
TH0,#0F7H
送初值
TR0
1/3的高电平标志
R2,#02H
2/3的循环次数
40H,LOOP1
41H,LOOP1
42H,LOOP1
PCON,#01H
进入待机
LOOP1:
=============================================================
中断程序:
完成其按键按下的标志位
=============================================================
KEY_INT0:
PUSH
ACC
PSW
A,P1
CPL
A
ANL
A,#0FH
R2,A
将行号存入R2中
P1,#0F0H
将列置输入端
A,#0F0H
取列号并存入A中
R1,#03H
置列初号
R3,#03H
置循环次数
C
PINT01:
RLC
取列号
JC
PINT01
DEC
R1
R3,PINT01
PINT02:
A,R2
取行号
R2,#00H
PINT03:
RRC
PINT04
INC
R2
R3,PINT03
PINT04:
A,R2
C
ADD
A,R1
SENDBUF+2,A
键号存于32H单元中
SENDBUF+3,A
存键号的反码
SENDBUF,#0FFH
系统码在30H单元中
SENDBUF+1,#00H
系统反码在31H单元中
LCALL
SEND
ET0
发送引导码
启动T0
PP
发送一帧数据.包括系统码和数据码
当发送完后关断定时器
关T0的中断
EX0
执行完后打开外INT0
42H,#0FFH
POP
RETI
=============================================================================
FM_T0:
JB
F0,IT01
R2,GRET
R2,#2
IT01:
FMOUT
F0
GRET:
==============================================================================
引导脉冲子程序
SEND:
DATAOUT
DY9000us
DY4500us
RET
发送四个缓冲单元中的内容程序:
PP:
R3,#4
发送的字节数
R1,SENDBUF
PP0:
R2,#08H
让其循环8次
A,@R1
将数据首址
清CY
PP1:
右环移带进位
ONE
若C等1
ZER0:
若C等0
CALL
DY562us
ONE:
DY1687us
R2,PP1
R3,PP0
等四个字节的发送完
RET
=========================================================================
DY1687us:
R31,#38
L2:
PUSH
R31
L3:
R31,L3
POP
DJNZ
R31,L2
RET
========================================================================
DY562us:
R31,#20
L22:
L33:
R31,L33
R31,L22
RET
==========================================================================
延时9000us子程序:
DY9000us:
R31,#91
L2A:
L3A:
R31,L3A
R31,L2A
延时4500us子程序
DY4500us:
R31,#67
L2B:
L3B:
R31,L3B
R31,L2B
DY10S:
R6,#10
L2C:
R4,#2
L3C:
R5,#248
R5,$
R4,L3C
R6,L2C
END
INC文件内容
-------------------------------------------------------------------------------
AT89C2051内存RAM分配
Fiel=2051ram.INC
$SAVE
$NOLIST
R31
DATA
1FH
BIT
20H.0
按键按下的标志
SENDBUF
30H
定义发送系统码缓冲的地址
P3.3
38K输出
P3.0
数据输出
$RESTORE
========================电风扇红外接收(控制板)程序===========
用89C51单片机来作主芯片控制,采用红外1838接收头,可控硅采用MC97A6
风扇具有红外遥控功能
低档,相应的指示灯亮,中档,相应的指示灯亮,高档,相应的指示灯亮
彩灯,相应的指示灯亮
自然风控制
睡眠风的控制
正常风的控制
定时30分钟,1小时,2小时,4小时
K5:
开关机功能
自然风的处理流程:
停--->
开低档--->
延时6秒--->
开中档-->
开高档--->
循环
睡眠风的处理流程:
停6S--->
开低档10S--->
停延时10S-->
开中档10S-->
开高档10S--->
正常风的处理流程:
开低档10S-->
开中档10S-->
开高档10S--->
循环
==========================================================
$INCLUDE(REG51.INC)
$INCLUDE(89C51RAM.INC)
START
0003H
JISH_INT0
红外遥控中断设置
000BH
LP0
定时中断
0013H
KEY_INT1
按键中断
START:
R0,MAIN0
TMOD,#01H
TH0,#3CH
定时50MS
TL0,#0B0H
LLOW
关低风
MDI
关中风
HIGHT
关高风
LLAP
关彩灯
P0,#0FFH
关所有的指示灯
EX1
CPU开中
LKEYON,KEYHANDLE
检按键标志位
REC,KEYHANDLE
检接收中断标志位
MAIN
转主程序
键值的处理的程序
键盘处理程序
K1键:
完成弱、中、强控制,相应的指示灯点亮
K2键:
完成彩灯控制,相应的指示灯点亮
K3键:
完成自然风、睡眠风、正常风的控制,相应的指示灯点亮
K4键:
完成定时的控制,同时0.5H,1H,2H,4H,相应的指示灯点亮
K5键:
开/关机
KEYHANDLE:
LKEYON
LREC
A,MRD
CJNE
A,#01H,KEY2
当键值=01H时,
低、中、高、的控制
KEY1:
DANG01,DIFENG
DANG02,ZHONGFENG
DANG02中档标志位
DANG03,QIANGFENG
DANG03强档标志位
低档控制
DIFENG:
JNB
DANG01,FAN0
完成了低档的程序,关低
关中
关高
DY20MS
保证三个SCR全部为关断状态
开低风
LED_L
开低档指示灯
DANG01
FAN0:
中档控制
ZHONGFENG:
DANG02,FAN0
关低
MDI
LED_M
DANG02
AJMP
跳转到
高档控制
QIANGFENG:
DANG03,FAN0
HIGHT
LED_H
DANG03
彩灯控制
------------------------------------------------------------------------------
KEY2:
A,#02H,KEY3
K4的处理程序彩灯的处理程序
PLAP,LED1
第一次按时将彩灯打开,
LED_LAP
PLAP
返回
LED1:
第二次按时将彩灯关断
LED_LAP