基于AT89S52和HD7279A的多功能电子钟

发布者:心连心意最新更新时间:2015-01-16 来源: 51hei关键字:AT89S52  HD7279A  电子钟 手机看文章 扫描二维码
随时随地手机看文章

功能:整点报时,时分秒调整,闹钟的设置,闹钟开关,万年历及其调整,闰年

判断,秒表,芯片:AT89S52,HD7279A

切换到年月日显示当前日期

将日期调整到2008年验证闰年

 

PCB图

 

 系统原理图

 

计时开始,黄灯为闹钟就绪灯

 [page]

 

万年历从0000年可到9999年

 

59分59秒了,整点报时灯红灯准备亮起

红灯亮了,整点到了,30S后整点报时灯(红)自动熄灭

下一步验证闹钟,闹钟就绪灯(黄)为开,当前闹钟时间为01时01分

闹钟灯(绿)亮了,其实还有一个蜂鸣器在响,关掉闹钟,黄灯和绿灯都被关掉,若不关闭则一分钟后自动关闭,但是闹钟就绪灯不会自动关闭,下图为手动关闭

秒表准备

秒表

秒表停止,计时1S90MS

 

ORG  0000H
     LJMP   MAIN
ORG  000BH
     LJMP     CLOCK
ORG  001BH
     LJMP     BRT
ORG  0030H
KEY BIT  P1.4
CLK BIT  P1.5
DAT BIT  P1.6
CS  BIT  P1.7
;说明:P1.0为正点报时标志,在正点时亮器,半分钟后自动关闭,
;P1.1为闹钟开关标志,可由键盘设置 ,初始状态为开,亮30秒
;P1.3,P1.2为闹钟,一分钟后自动关闭,亮的前提是闹钟开关打开
;P1.4为KEY,P1.7CS
;可通过在正常显示状态下按3键随时关闭闹铃
;在走时状态下按1键进入时间调整,按3小时加1,按4时加1,再按1切换到分,按3加1,按4减1,按F返回
;在时钟状态下,按2进入闹钟设置,其它同时间调整
;在时钟状态下,按3进入闹钟开关,可随时开关闹铃?若不关则1分钟后  自动关闭
;在时钟状态下按C进入秒表,按D开始,按E停止,按c清零,再按D可重新开始,按f退出秒表
;在时钟状态下按0显示年月日,按D进入日期调整,可自动识别闰年。
MAIN: MOV     SP,#60H
      MOV     TMOD,#11H           ;定时器0,1工作在方式1
      MOV     IE,#8AH               ;开定时器中断
      MOV     TH1,#0D8H
      MOV     TL1,#0F0H
      MOV     TL0,#0B0H             ;定时器地低位初始化
      MOV     TH0,#3CH              ;定时器高位初始化
      MOV     2AH,#14H              ;年高位
      MOV     2BH,#09H              ;年低位
      MOV     2CH,#05H              ;月
      MOV     2DH,#19H              ;日
      MOV     20H,#17H              ;时单位
      MOV     21H,#3BH              ;分单元
      MOV     22H,#30H              ;秒单元
      MOV     23H,#00H              ;定时器计数单元
      MOV     50H,#00H              ;闹钟时位
      MOV     51H,#00H              ;闹钟分位
      MOV     52H,#00H              ;闹钟秒位
      SETB    TR0                   ;开始定时
      CLR     P1.1                  ;闹铃状态开关
      SETB    P1.0                 ;关整点报时灯
      SETB    P1.3                  ;闹铃关
      SETB    P1.2
       ;*******************初始化完毕********************************
SS:LCALL CUTIN0
   LCALL DISP
   JB KEY,LK
   LCALL READ
   LCALL  LDELAY
   MOV A,28H
LP1:JNB  KEY,LP1
   CJNE A,#01H,NAO           ;按1键进入时间设置
   LCALL KEY0
   SJMP  LK
NAO:CJNE A,#02H,SWITCH             ;按2键键入闹钟设置
    LCALL  LDELAY
    LCALL  KEY1
    SJMP  LK
SWITCH:CJNE A,#03H,MB               ;按3键进入闹钟开关
       MOV C,P1.1
       CPL C
       LCALL  LONG
       MOV P1.1,C
       SJMP LK
MB:  CJNE A,#0CH,DATE               ;按C键进入秒表
     LCALL MBWAIT                   ;按0键进入年月日显示
       SJMP  LK
DATE: CJNE  A,#00H,SETD
 D1:  LCALL CUTIN2
      LCALL DISPD
      LCALL SHORT
      JB KEY,D1
      LCALL  READ
      MOV A,28H
      CJNE  A,#0FH,D1
      MOV 29H,#98H
      LCALL SEND
      MOV 29H,#03FH
      CALL SEND
      SJMP  SS
SETD:CJNE    A,#0DH,LK           ;按D键进入年月日调整
     LCALL     KEY2
   LK:SJMP  SS
CUTIN0: MOV     25H,R0
        MOV     R0,#78H
        MOV     A,22H
        ACALL   BCD
        MOV     A,21H
        ACALL   BCD
        MOV     A,20H
        ACALL   BCD
        MOV     R0,25H
        RET
CUTIN1: MOV     25H,R0
        MOV     R0,#78H
        MOV     A,42H
        ACALL   BCD
        MOV     A,41H
        ACALL   BCD
        MOV     A,40H
        ACALL   BCD
        MOV     R0,25H
        RET
CUTIN2:MOV 25H,R0
       MOV R0,#78H;78H中为日个位
       MOV A , 2DH
       ACALL BCD
       MOV A ,2CH
       ACALL BCD
       MOV A,2BH
       ACALL BCD
       MOV A,2AH
       ACALL BCD
       MOV  R0,25H;7FH中为年千?
       RET
BCD:    MOV     B,#0AH        ;把数据调整为两位BCD码
        DIV     AB
        MOV     @R0,B
        INC     R0
        MOV     @R0,A
        INC     R0
        RET
CLOCK:  MOV     TL0,#0B0H     ;分秒单元进位
        MOV     TH0,#3CH
        PUSH    PSW
        PUSH    ACC
        INC     23H
        MOV     A,23H
        CJNE    A,#14H,RET0
        MOV     23H,#00H
        INC     22H
        JNB     P1.1,NZD
        SETB    P1.2
        SETB    P1.3
NZD:    MOV     A,21H
        CJNE    A,#00H,CLO
OPEN:   MOV     A,22H
        CJNE    A,#1EH,ZD        ;正点报时半分钟后关闭
        SETB    P1.0
ZD:     CJNE    A,#3CH,RET0
        MOV     22H,#00H
        INC     21H
        SETB     P1.2             ;闹1分钟后钟关
        SETB     P1.3
        MOV     A,21H
        CJNE    A,#3CH,RET0
        MOV     21H,#00H
        CLR     P1.0
        INC     20H
        MOV     A,20H
        CJNE    A,#18H,RET0
        MOV     20H,#00H
        MOV     A,2CH
        CJNE    A,#02H,OTHERMON
        LCALL YEAR
        CJNE    A,#00H,NEXT7
OTHERMON:LCALL DAYS
         CJNE  A,2DH,NEXT6
         MOV   2DH,#01H
         SJMP  ADM
  CLO:   SETB   P1.0
         SJMP  OPEN
NEXT6:   INC   2DH
         SJMP  B0
NEXT7:   MOV   A,2DH
         CJNE  A,#1DH,NEXT6
         MOV   2DH,#01H
ADM:     INC   2CH
         MOV   A,2CH
         CJNE  A,#0DH,B0
         MOV   2CH,#01H
         INC   2BH
         MOV   A,2BH
         CJNE  A,#64H,B0
         MOV   2BH,#00H
         INC   2AH
         MOV   A,2AH
         CJNE  A,#64H,B0
         MOV   2AH,#00H
RET0:   JB      P1.1, B0
        MOV     A,20H           ;开关为开时判断时间,为关则直接退出中断
        CJNE    A,50H,B0
        MOV     A,21H
        CJNE    A,51H,B0
        CLR    P1.3         ;开闹钟
        CLR    P1.2
B0:     POP     ACC
        POP     PSW
FH:     RETI
YEAR:   MOV     A,2BH
        MOV     B,#04H
        DIV     AB
        MOV     A,B
        CJNE    A,#00H,NL
        MOV     A,2BH
        MOV     B,#64H
        DIV     AB
        MOV     A,B
        CJNE    A,#00H,LEAP
        MOV     A,2AH
        MOV     B,#04H
        DIV     AB
        MOV     A,B
        CJNE    A,#00H,NL
LEAP:   MOV     A,#01H
        SJMP    BACKY
NL:     MOV     A,#00H
BACKY:  RET
;****************************每月天数(按平年计)***************************
DAYS:   DEC     2CH
        MOV     A,2CH
        MOV     DPTR,#TAB
        MOVC    A,@A+DPTR
        INC     2CH
        RET
 TAB:DB 1FH,1CH,1FH,1EH,1FH,1EH
     DB 1FH,1FH,1EH,1FH,1EH,1FH[page]
;*********年月日调整************1键切换,3键+1,4键-1,F键返回****************
KEY2:  LCALL CUTIN2
       LCALL DISPD
        MOV   29H,#88H
        LCALL SEND
        MOV   29H,#3FH
        LCALL SEND
        JB    KEY,KEY2
        LCALL READ
LP2:    JNB   KEY,LP2
        LCALL  LDELAY
        MOV   A,28H
SYH2:   CJNE  A,#02H,SYH3
        INC   2AH
        MOV   A,2AH
        CJNE  A,#64H,KEY2
        MOV   2AH,#00H
        SJMP  KEY2
SYH3:   CJNE  A,#03H,YLK1
        DEC   2AH
        MOV   A,2AH
        CJNE  A,#0FFH,KEY2
        MOV   2AH,#63H
        SJMP  KEY2
YLK1:   CJNE  A,#01H,KEY2
YLK:    LCALL   CUTIN2
        LCALL    DISPD
        MOV   29H,#88H
        LCALL SEND
        MOV    29H,#0CFH
        LCALL SEND
        LCALL  SHORT
        LCALL  LDELAY
        JB    KEY,YLK
        LCALL  READ
LP3:    JNB   KEY,LP3
        LCALL  LDELAY
        MOV    A,28H
SYL2:   CJNE   A,#02H,SYL3
        INC    2BH
        MOV    A,2BH
        CJNE   A,#64H,YLK
        MOV    2BH,#00H
        SJMP   YLK
SYL3:   CJNE   A,#03H,MK1
        DEC    2BH
        MOV    A,2BH
        CJNE   A,#0FFH,YLK
        MOV    2BH,#63H
        LCALL  SHORT
        SJMP   YLK
MK1 :   CJNE   A,#01H,YLK
SM:     LCALL DISPD
        MOV   29H,#88H
        LCALL SEND
        MOV   29H,#0F3H
        LCALL SEND
        LCALL   CUTIN2
        LCALL DISPD
        JB     KEY,SM
        LCALL  READ
LP4:    JNB    KEY,LP4
        LCALL  LDELAY
        MOV    A,28H
SETM2:  CJNE   A,#02H,SETM3
        INC    2CH
        MOV    A,2CH
        CJNE   A,#0DH,SM
        MOV    2CH,#01H
        SJMP   SM
SETM3:  CJNE   A,#03H,DK1
        DEC    2CH
        MOV    A,2CH
        CJNE   A,#00H,SM
        MOV    2CH,#0CH
        SJMP   SM
DK1:    CJNE   A,#01H,SM
DK:     LCALL  CUTIN2
        LCALL DISPD
        MOV   29H,#88H
        LCALL   SEND
        MOV     29H,#0FCH
        LCALL   SEND
        JB      KEY,DK
        LCALL   READ
        LCALL   LDELAY
LP5:    JNB     KEY,LP5
        MOV     A,28H
SD2:    CJNE    A,#02H,SD3
        MOV     A,2CH
        CJNE    A,#02H,OTHER1
        LCALL   YEAR
        CJNE    A,#01H,OTHER1
        INC     2DH
        MOV     A,2DH
        CJNE    A,#1EH,DK
        MOV     2DH,#01H
        SJMP    DK
OTHER1: LCALL   DAYS
        CJNE    A,2DH,AD
        MOV     2DH,#01H
        SJMP    DK
AD:     INC     2DH
        SJMP    DK
SD3:    CJNE    A,#03H,FK0
        DEC     2DH
        LCALL   SHORT
        MOV     A,2DH
        CJNE    A,#00H,DK
        MOV     A,2CH
        CJNE    A,#02H,OTHER2
        LCALL   YEAR
        CJNE    A,#01H,NEXT4
        MOV     2DH,#1DH
        LCALL  SHORT
        SJMP    DK
NEXT4:  MOV     2DH,#1CH
DBK:    LJMP  DK
OTHER2: LCALL   DAYS
        MOV     2DH,A
        LJMP    DK
FK0:    CJNE    A,#01H,FK
        LJMP    KEY2
FK:     CJNE    A,#0FH,DBK
        MOV     29H,#88H
        LCALL   SEND
        MOV     29H,#0FFH
        LCALL   SEND
        MOV     29H,#98H
        LCALL  SEND
        MOV   29H,#03FH
        LCALL  SEND
        RET
       ;************秒表*********

MBWAIT:     MOV 78H,#00H             ;D键开始
            MOV 79H,#00H             ; E键停止
            MOV 7AH,#00H              ; 按C键清零
            MOV 7BH,#00H              ; 再按D键重新开始
            MOV 7CH,#00H               ;F键退出
            MOV 7DH,#00H
            MOV 7EH,#00H
            MOV 7FH,#00H
            LCALL  DISPD
            JB   KEY,MBWAIT
            LCALL  READ
            MOV  A,28H
            CJNE  A,#0DH,MBWAIT
KAISHI:     SETB TR1  ;开启定时器T1
WAIT0:    LCALL DISPD
          JB  KEY,WAIT0  ; 等按键,按E停止
          LCALL  READ
          MOV A,28H
          CJNE A,#0EH,WAIT0
          CLR  TR1
WAIT1:    LCALL  DISPD
          JB   KEY,WAIT1          ;按F键清零
          LCALL  READ
          MOV  A,28H
          CJNE A,#0CH,WAIT1
          MOV  78H,#00H
          MOV  79H,#00H
          MOV  7AH,#00H
          MOV  7BH,#00H
          MOV  7CH,#00H
          MOV  7DH,#00H
          MOV  7EH,#00H
          MOV  7FH,#00H
WAIT2:    LCALL  DISPD
          JB  KEY,WAIT2
          LCALL  READ
          MOV  A,28H
          CJNE A,#0DH,WAIT3         ; 按D键重新开始,其他键退出秒表
          SJMP  KAISHI
WAIT3:    CJNE A,#0FH,WAIT2           ;按E键退出秒表
EXIT:     MOV  29H,#98H
          LCALL  SEND
          MOV   29H,#3FH
          LCALL   SEND
              RET
DISPM:CALL DISP
      MOV   29H,#88H
      LCALL  SEND
      MOV   29H,#0F3H
      LCALL  SEND
      RET
DISPH:CALL  DISP
      MOV    29H,#88H
      LCALL   SEND
      MOV    29H,#0CFH
      LCALL   SEND
      RET
DISPD:MOV   29H,#98H
      LCALL   SEND
      MOV    29H,#0FFH
      LCALL    SEND
      LCALL DISP
      MOV 29H,#0CEH
      CALL SEND
      MOV  29H,7EH
      ACALL SEND
      MOV 29H,#0CFH
      LCALL SEND
      MOV  29H,7FH
      LCALL SEND
      RET
DISP:MOV R1,#78H
     MOV R4,#0C8H
     MOV R2,#06
DISP_LOOP:MOV 29H,R4
          LCALL SEND
          MOV 29H,@R1
          LCALL SEND
          INC R4
          INC R1
          DJNZ R2,DISP_LOOP
          RET
SEND:     MOV R3,#08H
          CLR CS
          LCALL LONG
SEND_LOOP:MOV C,29H.7
          MOV DAT,C
          SETB CLK
          LCALL SHORT
          CLR CLK
          LCALL SHORT
          MOV A,29H
          RL A
          MOV 29H,A
          DJNZ R3,SEND_LOOP
          CLR DAT
          RET
BRT:      MOV     TL1,#0F0H
          MOV     TH1,#0D8H     ;初值,10ms中断一次
          PUSH    PSW
          PUSH    ACC
          INC 78H
          MOV A,78H
          CJNE A,#0AH,FH1
          MOV  78H,#00H
          INC  79H
          MOV A,79H
          CJNE A,#0AH,FH1
          MOV  79H,#00H
          INC  7AH
          MOV A,7AH
          CJNE A,#0AH,FH1
          MOV  7AH,#00H
          INC  7BH
          MOV A,7BH
          CJNE A,#06H,FH1
          MOV  7BH,#00H
          INC  7CH
          MOV A,7CH
          CJNE A,#0AH,FH1
          MOV  7CH,#00H
          INC  7DH
          MOV A,7DH
          CJNE A,#06H,FH1
          MOV  7DH,#00H
          INC  7EH
          MOV  A,7EH
          CJNE  A,#0AH,FH1
          INC   7FH
          MOV   A,7FH
          CJNE   A,#0AH,FH1
          MOV    7FH,#00H
FH1:            POP  ACC
                POP PSW
                RETI
LONG:           MOV  70H,#25    ; 50uS
DELAY_LOOP:     DJNZ  70H,DELAY_LOOP
                RET
SHORT:          MOV  70H,#4    ; 8uS
SHORT_LP:       DJNZ 70H,SHORT_LP
                RET
READ:           MOV 29H,#15H                      ;发送读键盘指令
  ACALL SEND
                LCALL LONG
                LCALL RESE
                LCALL LONG
                RET
RESE:           MOV 71H,#8   ; =8
                SETB DAT   ; P1.2(DATA)
                CALL LONG  ;
RECEIVE_LOOP:   SETB CLK ; CLK
                CALL SHORT  ;
                MOV A,28H  ;
                RL A
                MOV 28H,A
                MOV C,DAT   ;
                MOV 28H.0,C
                CLR CLK   ; CLK
                CALL SHORT
                DJNZ 71H,RECEIVE_LOOP; 8
                CLR DAT ; DAT
                RET
SKEY:MOV  42H,#00H
    LCALL  CUTIN1
    LCALL  DISPH
    JB  KEY,SKEY
    LCALL READ
    LCALL  LDELAY
LP6:JNB  KEY,LP6
    MOV A,28H
HK2:CJNE A,#02H,HK3
    INC  40H
    MOV  A,40H
    CJNE A,#18H,NEXT0
    MOV  40H,#00H
NEXT0:AJMP SKEY
HK3: CJNE A,#03H,K1
     DEC 40H
     MOV A,40H
     CJNE A,#0FFH,NEXT1
     MOV  40H,#17H
NEXT1:AJMP SKEY
K1:CJNE A,#01H,NEXT1
TURNTO:LCALL CUTIN1
       LCALL DISPM
       JB KEY,TURNTO
       LCALL READ
       LCALL  LDELAY
LP7:   JNB  KEY,LP7
       MOV A,28H
MK2:   CJNE A,#02H,MK3
       INC 41H
       MOV A,41H
       CJNE A,#3CH,TURNTO
       MOV 41H,#00H
NEXT2: LCALL SHORT
       AJMP TURNTO
MK3:   CJNE A,#03H,F4
       DEC 41H
       LCALL SHORT
       MOV A,41H
       CJNE A,#0FFH,TURNTO
       MOV 41H,#3BH
       AJMP  TURNTO
F4:    CJNE   A,#01H,BACK
       AJMP  SKEY
BACK:  CJNE A,#0FH,TURNTO
       MOV 29H,#88H
       LCALL SEND
       MOV 29H,#0FFH
       LCALL SEND
       RET
       ;************校时子程序**********
KEY0:  MOV 41H,21H
       MOV 40H,20H
       CLR TR0
       MOV  23H,#00H
       ACALL SKEY
       MOV 22H,42H
       MOV 21H,41H
       MOV 20H,40H
       MOV TH0,#3CH
       MOV TL0,#0B0H
       SETB TR0
       RET
KEY1:  MOV 41H,51H     ;************闹钟设置子程序************
       MOV 40H,50H
       ACALL SKEY
       MOV 51H,41H
       MOV 50H,40H
       SETB  P1.2
       SETB  P1.3
       RET
       ;**********延时子程序******
LDELAY: MOV     53H,#0AFH
LDLY1:  MOV     54H,#0AFH
LDLY:   DJNZ    54H,LDLY
        DJNZ    53H,LDLY1
        RET
END
关键字:AT89S52  HD7279A  电子钟 引用地址:基于AT89S52和HD7279A的多功能电子钟

上一篇:AT89C51单片机定时器终端模式和查询设置
下一篇:基于51单片机的交通灯及其仿真

推荐阅读最新更新时间:2024-03-16 13:51

at89s52最小系统图 单片机最小系统介绍与设计
  本文介绍一款以AT89S52单片机为原型设计的最小系统实例,包括单片机引脚图、晶振电路图及复位电路图等构建的51单片机最小系统图,希望对各位电子初学者和发烧友提供一定的最小系统设计基础知识起到了解和借鉴作用。   单片机最小系统指的是能让单片机运行起来所需电子器件最少构建起来的电路系统。在本文的示例中,最小系统以AT89S52单片机为中心控制器,包括电源模块和USB下载电路、晶振电路、复位电路。   一、51单片机最小系统及复位电路   如下图1-1、1-2、1-3所示,为AT89S52单片机引脚图及其晶振和复位电路。      1-1 AT89S52单片机引脚图   AT89S52单片机是ATMEL公司生产的一款低功耗
[单片机]
<font color='red'>at89s52</font>最小系统图 单片机最小系统介绍与设计
AT89S52单片机P3端口的各种功能解析
AT89S52单片机P3端口有第二功能,如下所示: P3.0 RXD (串行接口输入) P3.1 TXD (串行接口输出) P3.2 INT0 (外部中断0输入) P3.3 INT1 (外部中断1输入) P3.4 T0 (定时/计数器0的外部输入) P3.5 T1 (定时/计数器1的外部输入) P3.6 WR (片外数据存储器 “写”选通控制输出) P3.7 RD (片外数据存储器 “读” 选通控制输出) P3接口相应接口线处于第二功能,应满足的条件: (1) 串行I/0口处于运行状态(RXD、TXD) (2)外部中断已经打开(INT0、INT1) (3)定时器/计数器处于外部计数状态(T0、T1) (4)执行读/写外部RAM的指
[单片机]
基于AT89S52和MAX197的高精度数据采集系统
0 引言 常见的八位模数转换芯片(如ADC0809【3】等)设计的系统比较简单而且成本较低,但有时八位的精度是不够的,这时我们就不得不选用更高精度的模数转换芯片,其中MAX197就是一款性价比很好的12位精度模数转换芯片。MAX197芯片是美国Maxim公司的快速模数转换芯片,转换时间最小仅为6 μ s,相对于ADC0809的100 μ s要短得多。它的输入信号带宽可达5 MHz,有12位并行的三态数据接口。另外MAX197片内包含高精度的参考电压源和时钟电路,因此它只需要很简单的外部电路即可完成模数转换功能,应用非常方便。 1 MAX1 97芯片的特点及性能: 1.1 MAX197的主要优点: 1)仅使用单5 V电源供电;
[单片机]
基于<font color='red'>AT89S52</font>和MAX197的高精度数据采集系统
8279显示电子钟的设计与程序源代码
可以看看时钟程序是怎么样设计的。 Z8279 EQU 08701H ;8279 状态/命令口地址 D8279 EQU 08700H ;8279 数据口地址 LEDMOD EQU 00H ;左边输入 八位字符显示 ;外部译码键扫描方式,双键互锁 LEDFEQ EQU 2FH ;扫描速率 LEDCLS EQU 0C1H ;清除显示 RAM LEDWR0 EQU 80H ;设定的将要写入的显示RAM地址 ORG 0000H AJMP START ORG 001BH ;I
[单片机]
8279显示<font color='red'>电子钟</font>的设计与程序源代码
自制红外遥控LED电子钟
  自制 LED电子 钟在很多电子报刊杂志上都可以见到,但大多数在断电后都要重新设置时间等参数,给使用带来很多不便。也有用后备电池作为备用 电源 的,但往往体积较大。本文介绍的LED电子钟克服了以往的弊端,而且采用了 家电 通用的红外遥控器进行控制,方便使用。有一路闹铃输出,可以通过遥控器设置闹铃时间及允许与否。   一.工作原理   DS1302为达拉斯公司的一种实时 时钟 芯片,主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。采用普通32768Hz晶振。   AT89C2051作为主控芯片,一是对接收到的红外遥控编码进行判断识别,并执行相应的处理;第二就是定期的读取时钟芯片DS1
[电源管理]
自制红外遥控LED<font color='red'>电子钟</font>
基于AT89S52单片机的温度和湿度检测系统设计
引言 温度、湿度是工农业生产的主要环境参数.对其进行适时准确的测量具有重要意义。利用单片机对温、湿度控制。具有控温、湿精度高、功能强、体积小、价格低,简单灵活等优点,很好的满足了工艺要求。本文介绍了利用AT89S52单片机进行温度和湿度的检测及其控制的智能化方法。 l系统基本方案 本系统采用AT89S52单片机作为控制核心.对采集到的湿度模拟电压信号通过ADC0809进行分析处理.实现A/D转换.以便数码管显示其湿度值。本设计可以手动设置温度/湿度的上、下限值,如只要有一样与设定的值不符合时,即温度/湿度过高或过低,则该系统会发出语音报警,同时继电器立即切断电源.实现系统的保护。 2硬件系统的组成 (1)主控模块:采用AT
[单片机]
基于<font color='red'>AT89S52</font>单片机的温度和湿度检测系统设计
基于AT89S52的ISD4004语音芯片使用
//以下程序可对ISD4004语音芯片进行录音也可放音 //使用89S52单片机,12M晶振 #include reg52.h #include 1602.h sbit ss=P0^0; sbit mosi=P0^1; sbit sclk=P0^2; sbit int0=P0^3; sbit rac=P0^4; sbit key_stop=P3^7;//停止键 sbit key_rec=P3^5;//录音键 sbit key_play=P3^6;//放音键 uint rec_hang;//录音所用去的行数 void display()//显
[单片机]
基于AT89S52单片机的花卉自动浇灌系统的设计
0 引言 随着生活条件的改善,越来越多的人们在家中种植了各种花卉植物用以美化环境。花卉的生长需要稳定的环境湿度和温度,但一般来讲,家庭种植花卉植物的浇水工作主要凭借主人的主观判断来决定浇水量的大小,浇与不浇非常随意,经常会是浇得过量或者过少。目前市场上有一些自动浇水的装置,例如一些双层的花盆,利用虹吸或者微渗原理,保持花盆的湿润。但是这样的装置不能根据不同植物不同季节的不同需求进行精确调节。当然目前也有能够精确调节浇灌量的浇水系统,但是通常这样的系统复杂庞大、装配费用高昂、维修困难,一般应用于苗圃、农场等大规模种植,不适于家庭使用。 为了克服现有技术结构复杂、费用高、不适于家用的不足,本文设计了一种自动浇灌装置,能够利用简单设
[单片机]
基于<font color='red'>AT89S52</font>单片机的花卉自动浇灌系统的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved