一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
查看: 7862|回复: 28
收起左侧

[其他综合] 分享遥控三档八小时风扇控制电路和程序

  [复制链接]
发表于 2011-4-24 13:53 | 显示全部楼层 |阅读模式
本帖最后由 LBQ691477940 于 2011-4-24 13:55 编辑

快到夏天了现在室内也就大概27~28度左右,就吹空调嘛又有点浪费,不吹嘛有时还是觉得有点热要是用风扇原来的机械式定时器普通型的一小时特别型的好像二小时经常都是睡到半梦半醒又被热醒了,只好拿风扇来“开刀”了,把它改成遥控三档八小时控制风扇,哈哈!
;**********************************风扇控制程序**************************
;用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控制,全部都是低电平有效。
;注意晶体: 4MHZ  MCU:89C2051系列
;程序设计:LBQ691477940  2011-04-15
;*****************************************************************************************************
本电路为了关机后切断全部电源包括电路板的供电故开机键是直接与继电器的开关引脚组并联的当按下开机按钮时电路得电继电器自锁直到定时结束或按下关机按钮为止


如下是电路板实物图与电路图
CIMG0736.JPG CIMG0739.JPG 遥控三档八小时风扇.pdf (378.38 KB, 下载次数: 5729)
程序:
     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:   
     RET
SW_FengSu:;调风速键
  JB     SwFengSu,LAO   ;是否有调风速键压下
  CALL   DELAY         
  JB     SwFengSu,LAO
LA1:    MOV    PSW,#00H
  CLR  20H.1  ;标志位置 0 显示风速值
  SETB 20H.2  ;延时轮流显示标志位
  MOV   21H,#8  ;延时轮流显示
  INC    R3
  JNB    SwFengSu,$
C01:   ;风速2
  CJNE   R3,#01H,C02
  MOV   22H,#0AH    ;使其取得二.的显示码
  SETB    FengSu1  ;关风速1
  CALL   DELAY      ;延时防抖14946us
  CALL   DELAY      ;延时防抖14946us
  CLR   FengSu2     ;开风速2
  JMP    LAO
C02:   ;风速3
  CJNE   R3,#02H,C03
  MOV   22H,#0BH ;使其取得三.的显示码
  SETB    FengSu2     ;关风速2
  CALL   DELAY      ;延时防抖14946us
  CALL   DELAY      ;延时防抖14946us
  CLR   FengSu3  ;开风速3
  JMP    LAO
C03:  ;风速1
  MOV   22H,#09H ;使其取得一.的显示码
  SETB    FengSu3  ;关风速3
  CALL   DELAY      ;延时防抖14946us
  CALL   DELAY      ;延时防抖14946us
  CLR   FengSu1  ;开风速1
  MOV    R3,#00H
LAO:    RET
SW_Time:;调定时键
  JB     SwTime,LBO  ;是否有定时键压下  
  CALL   DELAY
  JB     SwTime,LBO
LB:
  MOV    PSW,#00H
  SETB   20H.1  ;标志位置 1 显示定时值
  SETB 20H.2  ;延时轮流显示/风速标志位置1
  JNB    SwTime,$
  MOV   21H,#8  ;延时轮流显示
  MOV    R7,#00H
  MOV    R6,#00H
  MOV    R5,#00H
  INC    R4   ;定时时间加 1 小时
  CJNE R4,#09H,C04 ;如果大于8即长通不会定时关机
  CLR   20H.1  ;标志位置 0 显示风速值
  MOV   R4,#00H
  CLR   TR0
  RET
C04:
     SETB TR0
LBO:
        RET
DELAY:;延时防抖14946us
        MOV    R1,#10  ;1*3=3
DD:     MOV    R0,#248  ;1*3=3
  DJNZ   R0,$  ;2*3*248*10=14880
  DJNZ   R1,DD  ;2*3*10=60
  RET
TIME:  
  PUSH   ACC
  PUSH   PSW
  MOV    TH0,#HIGH(65536-50000)
  MOV    TL0,#LOW(65536-50000);重置初定时值
  INC    R7
  INC   R5
  CJNE   R5,#7,TT1 ;150MS*7=1S到了吗?
  MOV   R5,#00H
  JNB   20H.2,TT2 ;延时轮流显示/风速标志位置
  DJNZ 21H,TT1
  CLR   20H.2
TT2:
     CPL   20H.1  ;标志位置 0 显示风速值
TT1:
  CJNE   R7,#200,TT ;150MS*200=30S到了吗?
  MOV    R7,#00H
  INC    R6
  CJNE   R6,#120,TT  ;30S*120=3600S到了吗?
  MOV    R6,#00H
  DJNZ   R4,TT   ;将R4的值减1
  SETB   20H.0  ;取反即为高电平故关闭总电源
TT:     POP  PSW
  POP   ACC
  RETI
YAO_KONG:
  PUSH    PSW
  PUSH    ACC
  CLR   EA
  MOV    PSW,#10H
IR:  MOV   R6,#10
SB:     ACALL   DELAY882
        JB    P3.2,REM_BAK
        DJNZ    R6,SB
        JNB     P3.2,$
        ACALL  DELAY2400
        JNB    P3.2,REM_BAK
        ACALL   DELAY2400
        MOV   R1,#1AH
        MOV    R2,#4
PP:     MOV    R3,#8
JJ:     JNB    P3.2,$
        LCALL   DELAY882
        MOV    C,P3.2
        JNC    UUU
        LCALL   DELAY1000
UUU:        
        MOV    A,@R1
        RRC   A   
        MOV   @R1,A
        DJNZ   R3,JJ
        INC    R1  
        DJNZ   R2,PP
DAN_JI:   
        NOP
        MOV    A,1AH
        XRL    A,#01H  ;用户码低八位01H
        JNZ    REM_BAK
        MOV    A,1BH
        XRL    A,#0FFH   ;用户码高八位FFH
        JNZ    REM_BAK
        MOV    A,1CH
        CPL    A
        XRL    A,1DH
        JNZ    REM_BAK
        MOV    A,1CH
        CJNE   A,#80H,E81
        CALL   SW1   ;关机
  JMP    REM_BAK
E81:    CJNE  A,#81H,E82
        CALL   LB   ;定时
  JMP    REM_BAK
E82:    CJNE  A,#82H,E83
        CALL   LA1   ;风速
E83:    ;CJNE A,#83H,E84
REM_BAK:      
        POP    ACC
        POP    PSW   
        SETB    EA
        RETI
DELAY882: ;882us
        MOV   R7,#73 ;3*1=3
  ;NOP     ;3*1=3
D3:     NOP     ;3*1*73=219
        NOP      ;3*1*73=219
        DJNZ   R7,D3 ;2*3*73=438
        RET
DELAY1000: ;999us
        MOV   R7,#83 ;3*1=3
D4:     NOP    ;3*1*83=249
        NOP    ;3*1*83=249
        DJNZ    R7,D4  ;2*3*83=498
        RET
DELAY2400: ;2403us
        MOV   R7,#89 ;3*1=3
D5:     NOP     ;3*89=267
        NOP     ;3*89=267
        NOP     ;3*89=267
        NOP      ;3*89=267
        NOP      ;3*89=267
        NOP      ;3*89=267
        NOP      ;3*89=267
        DJNZ   R7,D5 ;2*3*89=534
        RET
TABLE:;P1.0-P1.7分别接共阳极数码管A-H
        DB      40H ;0.
        DB      79H ;1.
        DB      24H ;2.
        DB      30H ;3.
        DB      19H ;4.
        DB      12H ;5.
        DB      02H ;6.
        DB      58H ;7.
        DB      00H ;8.
        DB      3FH ;一.
        DB      37H ;二.
        DB      36H ;三.
        END

评分

参与人数 3一乐金币 +9 收起 理由
mfkyygt + 5 很给力!
lijn + 2 每次都有原程序,赞!
fujiachun + 2 汇编写成这样真的很牛

查看全部评分

发表于 2011-4-24 14:44 | 显示全部楼层
汇编的真牛
发表于 2011-4-24 15:15 | 显示全部楼层
感光板做的吧?
发表于 2011-4-24 15:15 | 显示全部楼层
感光板做的吧?
发表于 2011-4-24 15:28 | 显示全部楼层
这个汇编太牛了
发表于 2011-4-24 17:00 | 显示全部楼层
本帖最后由 wjk478 于 2011-4-24 20:59 编辑

又出牛作,要顶

顺便问一下用什么遥控器控制?
发表于 2011-4-24 17:18 | 显示全部楼层
PCB画的真漂亮!
发表于 2011-4-24 17:29 | 显示全部楼层
汇编完全看不懂,只能帮顶了。
发表于 2011-4-24 18:16 | 显示全部楼层
谢谢楼主!帮顶!
发表于 2011-4-24 20:39 | 显示全部楼层
你的作品,总是那么认真。资料齐全。

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-5-18 08:59 , Processed in 0.075310 second(s), 49 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表