三档八小时遥控电风扇控制电路和单片机程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三档八小时遥控电风扇控制电路和单片机程序
-----广东、五华、李标清
大家都知道风扇是每家每户都不可缺少一个电器用品,现在已到夏天了气温渐渐上升用鸿运扇(或台扇)原来的机械式定时器,由于有些老人家说太噪很难入睡,普通型的定时器最长定时时间1小时,特别型的好像2小时经常都是睡到半梦半醒又被热醒了,只好拿风扇来“开刀”了,把它改成遥控三档八小时控制风扇,哈哈!如果朋友们也有这种困扰就不要等了马上开始行动吧!硬件联接与功能简介如下:
;*****************************风扇控制程序*******************************
;用P3.0\P3.1\P3.7 分别控制风速定时关机
;P3.3\P3.4\P3.5分别为风速1 风速2 风速3
;P1.0~P1.7分别接共阳极数码管A~H指示----->定时:\1H~8H定时\ 风速: 一~二~三
;P1.7也作开机OUT控制,全部都是低电平有效。
;开发软件:TKStudio V3.2.5 (2011-05-22)
;注意晶体: 4MHZ MCU:89C2051系列
;************************************************************************
电原理图如下:
电路板实物图:
电路工作原理:
市电220V/50HZ经J1进入后按下SW0开机键(或RY1的开关组,开机后由主控芯片控制保持RY1自锁)后通过R2\C0(泄放电阻R10)限流\D1\D2\ZD1\C2整流滤波稳压后得到12V的直流电压(用来给RY1提供工作电压用),再经Q4\ZD2稳压为5V直流给CPU AT89C2051 供电。开机后默认为风速一档DS1显示为中文的一,不定时状态(即风扇一直工作到按下SW3关机键或市电停止为止,当然风扇马达有故障也会)每按下SW2定时按键一次DS1显示值会自动加一,定时时间也相对应的加一(可从1~8,再到不显示阿拉伯数字,循环。当不显示阿拉伯数字时表示长通不定时),如果风扇是工作在定时自动关机状态时DS1会以约1秒钟的时间来切换当前风速与定时的时间值,显示阿拉伯数字对
(此应定时时间如果为1小时即1小时后风扇会自动停止工作,为了低碳包括整个电路都会停止工作,
按键可以通过红外遥控器来实现)。
如果每按下SW1风速按键一次则同样DS1显示值会加一(从中文的一~ 三,循环),分别对应控制风扇马达的1~3档(此按键可以通过红外遥控器来实现)。
如果控按下SW3则整个电路都会停止工作,(此按键可以通过红外遥控器来实现)。
此次设计的遥控器要求是NEC编码格式的遥控器,且不具备遥控码学习工能。故仿制的朋友要在原程序里面更改遥控器解码部分的用户码与按键的操作码,需要改动的部分在原程序里面有详细的注释。
与本文所提供的HEX文件对应的遥远控器可以用以(众合RM-139C型万能电视机遥控器的代码为000时),遥控器上的POWER键对应本电路的SW3关机键,睡眠键对应本电路的SW2定时键,回看键对应本电路的SW1风速键。
#1:本电路带有强电请仿制的朋友注意安全。
;*****************************风扇控制程序*******************************
;用P3.0\P3.1\P3.7 分别控制风速定时关机
;P3.3\P3.4\P3.5分别为风速1 风速2 风速3
;P1.0~P1.7分别接共阳极数码管A~H指示----->定时:\1H~8H定时\ 风速: 一~二~三
;P1.7也作开机OUT控制,全部都是低电平有效。
;开发软件:TKStudio V3.2.5 (2009-12-18)
;注意晶体: 4MHZ MCU:89C2051系列
;程序设计:广东、五华、李标清2011-05-22
;************************************************************************
;
;代码的特征:
; 1. HT6221键码的形成
; 当一个键按下超过36ms 振荡器使芯片激活如果这个键按下且延迟大约108ms,
; 这108ms 发射代码由一个起始码9ms, 一个结果码4.5ms, 低8 位地址码9ms~18ms,
; 高8 位地址码9ms~18ms,8 位数据码9ms~18ms 和这8 位数据的反码9ms~18ms 组成
; 如果键按下超过108ms 仍未松开接下来发射的代码连发代码将仅由起始码9ms
; 和结束码2.5ms 组成.
; 2.代码格式以接收代码为准接收代码与发射代码反向
;
;888888888888888888888888888888888888888888888888888888888888888888888888
ORG 0000H
SwFengSu BIT P3.0 ;风速
SwTime BIT P3.1 ;定时
SwOff BIT P3.7 ;关机
FengSu1 BIT P3.3 ;风速1
FengSu2 BIT P3.4 ;风速2
FengSu3 BIT P3.5 ;风速3
JMP START
ORG 0003H
JMP YAO_KONG
ORG 000BH ;定时器0入口
JMP TIME ;中断程序
ORG 0030H
START:
MOV SP,#60H
MOV P3,#0F7H ;11110111B ;默认为风速1
MOV 22H,#09H ;使其取得一.的显示码
MOV R3,#00H
MOV R2,#00H
MOV R4,#00H
CLR 20H.0 ;开关标志位
MOV TMOD,#01H ;定时器0工作于方式1
MOV TH0,#HIGH(65536-50000)
MOV TL0,#LOW(65536-50000);50MS(当4mhz晶体时为150MS)
SETB EA ;开总中断
SETB ET0 ;定时器0中断允许
SETB EX0
SETB IT0
LOOP:
JNB 20H.0,ON ;不是关机即转ON处
OFF: MOV P1,#8EH ;显示F且P1.7为高即关机
MOV P3,#0FFH ;风速全部关
JMP OFF
ON: MOV DPTR,#TABLE
MOV A,R4 ;
JB 20H.1,ON1 ;如果20H.1=1 即显示定时值
MOV A,22H ;使其取得一.二.三.的显示码
ON1:
MOVC A,@A+DPTR
MOV P1,A ;送P1口显示
CALL SW_OFF
CALL SW_FengSu
CALL SW_Time
JMP LOOP
SW_OFF:
JB SwOff,SWO ;是否有关机键压下
CALL DELAY ;防抖
JB SwOff,SWO
JNB SwOff,$
SW1:
SETB 20H.0 ;取反即为高电平故关闭总电源
SWO: