⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 516154.asm

📁 一种单片机控制电饭煲预约和智能煮饭系统的实现源代码!
💻 ASM
📖 第 1 页 / 共 2 页
字号:
        CLR     13H
         CLR     18H
         CLR    24H
        NOP
        NOP
        RET
        
;***********INC*******DEC*******
INCH:  MOV   R0,#062H
       MOV   5FH,#084H
       MOV   5EH,#24D
       JNB   23H,DEC23H
       ACALL  INC11
       NOP
       RET
        
DEC23H: ACALL DEC11
        NOP
        RET
INCM:  MOV R0,#061H
       MOV 5FH,#082H
       MOV 5EH,#60D
       JNB  23H,DEC23M
       ACALL  INC11
       NOP
       RET
        
DEC23M:ACALL   DEC11
       NOP
       RET
INC_H: MOV   R0,#06BH

       MOV   5FH,#0C2H
        MOV   5EH,#018H
       JNB   23H,DEC_H
       ACALL  INC11
       NOP
       RET
         
DEC_H: ACALL   DEC11
        NOP
         RET
INC_M:   MOV   R0,#06AH
         MOV   5FH,#0C0H
         MOV   5EH,#60D
         JNB    23H,DEC_M
         ACALL   INC11
         NOP
         RET
        
DEC_M: ACALL   DEC11
         NOP
         RET
INC_DA: MOV   R0,#064H
        MOV   5FH,#088H
        MOV   5EH,#13D
        JNB    23H,DEC_DA
        ACALL   INC10
        NOP
        RET
       
DEC_DA: ACALL   DEC10
        NOP
        RET
INC_DAA:  MOV   R0,#63H
          MOV   5FH,#086H
          MOV   5EH,#32D
          JNB   23H,DEC_DAA
          ACALL  INC10
          NOP
          RET
DEC_DAA:  ACALL  DEC10
          NOP
          RET
;-------INC11  DEC11--------
INC11:  MOV   6FH,@R0
        ACALL  BCD_HEX
        NOP
        INC  A
        CJNE   A,5EH,INCH1
        MOV  A,#00H
INCH1:   MOV   6FH, A
         ACALL  HEX_BCD
         MOV   @R0, A
         MOV   R1,5FH
         MOV   R0,A
         ACALL  SETONE
         NOP
         RET
          LJMP  START1
DEC11:   MOV   6FH,@R0
         ACALL  BCD_HEX
         NOP

         DEC   A
         CJNE   A,#0FFH,DECH1
         MOV    A,5EH
         DEC  A
DECH1:   MOV   6FH,A
         ACALL  HEX_BCD
         NOP
         MOV   @R0,A
         MOV   R1,5FH
         MOV   R0,A
         ACALL  SETONE;写入1302
         
         NOP
         RET
         LJMP  START1
;------INC10 DEC10--------
INC10:  MOV   6FH,@R0
        ACALL  BCD_HEX
        NOP
        INC  A
        CJNE   A,5EH,INCH15
        MOV  A,#01H

INCH15:  MOV   6FH, A
         ACALL  HEX_BCD
          NOP
         MOV   @R0, A
         MOV   R1,5FH
         MOV   R0,A
         ACALL  SETONE
         NOP
         RET
DEC10:   MOV   6FH,@R0
         ACALL  BCD_HEX
         NOP
         DEC   A
         CJNE   A,#00H,DECH15
         MOV    A,5EH
         DEC    A
DECH15:  MOV   6FH,A
         ACALL  HEX_BCD
         NOP
         MOV   @R0,A
         MOV   R1,5FH
         MOV   R0,A
         ACALL  SETONE;写入1302
         NOP
         NOP
         RET
         NOP
          NOP
          LJMP   0030H

;------------------------------------初始化1302-------------------------
SET1302: PUSH  PSW
        CLR    RST           ;2006年1月1日12:00:00
         NOP
         CLR    LED3CLK
        MOV     SECOND,#0
        MOV     61H,#0
        MOV     62H,#18      ;
        MOV     63H,#1
        MOV     64H,#1
        MOV     65H,#1
        MOV     66H,#06
      
         SETB   RST
         MOV    A,#8EH
         LCALL  R_BIT
         MOV    A,#00H
         LCALL  R_BIT
         SETB   LED3CLK
         CLR    RST
         NOP
         MOV    R0,#SECOND
         MOV    R7,#7
         MOV    R1,#80H
SET1302A:CLR    RST
         CLR    LED3CLK
         NOP
         SETB   RST
         MOV    A,R1
         SETB   RST
         LCALL  R_BIT
         MOV    A,@R0
         LCALL  R_BIT
         INC    R0
         INC    R1
         INC    R1
         SETB   LED3CLK
         CLR    RST
         NOP
         DJNZ   R7,SET1302A
         CLR    RST
         CLR    LED3CLK
         NOP
         SETB   LED3CLK
         nop
         CLR    RST
         nop
         clr    led3clk
         SETB   RST
         MOV    A,#90H
         LCALL  R_BIT
         MOV    A,#10100101B         ;充电器设置
         LCALL  R_BIT
         SETB   LED3CLK
         CLR    RST
         CLR    LED3CLK
         NOP
         SETB   RST
         MOV    A,#8EH
         LCALL  R_BIT
         MOV    A,#80H
         LCALL  R_BIT
         SETB   LED3CLK
         CLR    RST
         POP   PSW
         NOP
         NOP
         RET
         NOP
         NOP
         LJMP   START1
;----------------------读取一RAM ------
T_6061:  CLR    RST
         CLR    LED3CLK
         NOP
         SETB   RST
         MOV    A,R1

         LCALL  R_BIT
         NOP
         LCALL  W_BIT
         SETB   LED3CLK
         CLR    RST
         RET
         LJMP   START1
;-----------------------------
R_1302:  PUSH   PSW
        MOV    R0,#SECOND
         MOV    R7,#7
         MOV    R1,#81H
R_1302A: CLR    RST
         CLR    LED3CLK
         NOP
         SETB   RST
         MOV    A,R1
         LCALL  R_BIT
         LCALL  W_BIT
         NOP
         MOV    @R0,A
         INC    R0
         INC    R1
         INC    R1
         SETB   LED3CLK
         CLR    RST
         NOP
         DJNZ   R7,R_1302A
         MOV    R0,#6AH
         MOV    R7,#2
         MOV    R1,#0C1H
R_1302B: CLR    RST
         CLR    LED3CLK
         NOP
         SETB   RST
         MOV   A,R1
         LCALL   R_BIT
         LCALL   W_BIT
         NOP
         MOV    @R0,A
         INC R0
          INC   R1
          INC   R1
          SETB  LED3CLK
          CLR    RST
          NOP
          DJNZ    R7,R_1302B
          POP   PSW
         NOP
         NOP
         RET
         LJMP   0030H
;------------------R_BIT------------------
R_BIT:    MOV    R4,#8
R_BIT1:  RRC    A
         MOV    LED4IO,C
         NOP
         SETB   LED3CLK
         NOP
         CLR    LED3CLK
         NOP
         DJNZ   R4,R_BIT1
         RET
;-------------------W_BIT-----------------------
W_BIT:   CLR    LED3CLK
         MOV    R4,#8
W_BIT1:  MOV    C,LED4IO
         NOP
         RRC    A
         SETB   LED3CLK
         NOP
         CLR    LED3CLK
         DJNZ   R4,W_BIT1
         RET
;---------------6FH-----------------------------
BCD_HEX:
         MOV    A,6FH
         ANL    A,#0FH
         MOV    B,A
         MOV    A,6FH

         MOV    6FH,B
         SWAP   A
         ANL    A,#0FH
         MOV    B,#0AH
         MUL    AB
         ADD    A,6FH
         ;MOV    6FH,A
         RET
         LJMP   START1

HEX_BCD:
         MOV   A,6FH
         MOV   B,#10
         DIV   AB
         SWAP  A
         ADD   A,B
         ;MOV   6FH,A
         NOP
         NOP
         RET
          LJMP  START1

;-----写一地址---R1 为地址,R0 为数据----------
SETONE:  PUSH   PSW
         CLR    LED3CLK
         CLR    RST
         NOP
         CLR    LED3CLK
         NOP
         SETB   RST
         MOV    A,#8EH
         LCALL  R_BIT
         MOV    A,#00H
         LCALL  R_BIT
         SETB   LED3CLK
         NOP
         CLR    RST
         NOP
         CLR    LED3CLK
         NOP
         CLR    RST
         CLR    LED3CLK
         NOP
         SETB   RST
         MOV    A,R1
         LCALL  R_BIT
         MOV    A,R0
         LCALL  R_BIT
         NOP
         SETB   LED3CLK

         NOP
         CLR    RST
         NOP
         NOP
         CLR    RST
         CLR    LED3CLK
         NOP
         SETB   RST
         MOV    A,#8EH
         LCALL  R_BIT
         MOV    A,#80H
         LCALL  R_BIT
         SETB   LED3CLK
         CLR    RST
         POP    PSW
         NOP
         NOP
         RET

NK3:                 ;调预约分
	JNB  SW3,NK5
	JB MINITEK,NK4 
	LCALL DELY10MS 
	JB MINITEK,NK4 
	INC YUMINI 
	MOV A,YUMINI
	CJNE A,#60,NYS60 
	MOV YUMINI,#00H 
NYS60: LCALL DISP1 
	JNB MINITEK,$ 
NK4:             ;调预约时
	JNB  SW3,NK5
	JB HOURK,NK5 
	LCALL DELY10MS 
	JB HOURK,NK5 
	INC YUHOUR 
	MOV A,YUHOUR 
	CJNE A,#24,NYM60 
	MOV YUHOUR,#00H 
NYM60: LCALL DISP1 
	JNB HOURK,$ 
NK5:                   ;调煮翻分
	JNB  SW2,NK3
	JB MINITEK,NK6 
	LCALL DELY10MS 
	JB MINITEK,NK6
	INC ZHUMINI 
	MOV A,ZHUMINI
	CJNE A,#60,NzS60 
	MOV ZHUMINI,#00H 
NzS60: LCALL DISP2
	JNB MINITEK,$ 
NK6:                   ;调煮翻时
	JNB  SW2,NK3
	JB HOURK, OUT
	LCALL DELY10MS 
	JB HOURK,OUT 
	INC ZHUHOUR 
	MOV A,ZHUHOUR 
	CJNE A,#24,NzM60 
	MOV ZHUHOUR,#00H 
NzM60:LCALL DISP2 
	JNB HOURK,$ 
OUT:LJMP NK3
DELY10MS: 
	MOV R6,#10 
	D1: MOV R7,#248 
	DJNZ R7,$ 
	DJNZ R6,D1 
	RET 

DISP1:MOV  A,YUMINI
	MOV  B,#10
	DIV  AB
	MOV  R0,#45H
	MOV @R0,A
	INC  R0
	MOV @R0,B
	MOV A,YUHOUR
	MOV B,#10
	DIV  AB
	INC  R0
	MOV  @R0,A
	INC  R0
	MOV  @R0,B
	RET
DISP2:MOV  A,ZHUMINI
	MOV  B,#10
	DIV  AB
	MOV  R0,#55H
	MOV @R0,A
	INC  R0
	MOV @R0,B
	MOV A,ZHUHOUR
	MOV B,#10
	DIV  AB
	INC  R0
	MOV  @R0,A
	INC  R0
	MOV  @R0,B
	RET

;**************定时读取数1302及判断  ;预约和煮饭倒计时*******
INT_T1:   
       MOV  TH1,#3CH
	MOV TL1,#0B0H
	DJNZ 20H,$
	MOV  20H,#14H
        INC   R2
         CJNE  R2,#250D,P_OUT
         MOV   R2,#00H
         INC   R3
         CJNE  R3,#10D,P_OUT
         MOV   R3,#00H
         CPL   07H
         MOV   P0,#0FFH
         ACALL R_1302
         NOP
         ACALL  R_1302
         NOP
OUT:      JNB   06H,P_OUT
         MOV   6FH,6BH
         ACALL  BCD_HEX
         MOV   B,#10
         DIV   AB
         SWAP  A
         ADD   A,B
        CJNE  A,62H,PP_OUT
         MOV   6FH,6AH
         ACALL  BCD_HEX
         MOV   B,#10
         DIV   AB
         SWAP  A
         ADD   A,B
         CJNE  A,61H,PP_OUT
         SETB  08H               ;定时到标志
         MOV   C,07H
         cpl   c
        MOV    K_ON,C
 pp_out:SETB  K_ON
         CLR   08H
P_OUT: JB  F0 ,JIANZHU
	MOV A,YUSEC
	CJNE A,#00H,JIANMIAO
	MOV A,YUMINI
	CJNE A,#00H,JIANFEN
	MOV  A,YUHOUR
	CJNE  A,#00H,JIANHOUR
	LJMP DONEK
JIANHOUR:DEC  YUHOUR
	MOV  YUMINI,#59
	LJMP  DONE1
JIANFEN:DEC YUMINI
	MOV YUSEC,#59
	LJMP  DONE1
JIANMIAO:DEC YUSEC
	LJMP  DONE1
DONEK:CLR  P3.4  ;P3.4用于控制煮饭开始
	LJMP  DONE1
DONE1:	LCALL DISP1
	POP   PSW
        POP   ACC
	RETI
JIANZHU:MOV A,ZHUSEC
	CJNE A,#00H,JIANZHUMIAO
	MOV A,ZHUMINI
	CJNE A,#00H,JIANZHUFEN
	MOV  A,ZHUHOUR
	CJNE  A,#00H,JIANZHUHOUR
	LJMP DONEE
JIANZHUHOUR:DEC  ZHUHOUR
	MOV  ZHUMINI,#59
	LJMP  DONE2
JIANZHUFEN:DEC ZHUMINI
	MOV ZHUSEC,#59
	LJMP  DONE2
JIANZHUMIAO:DEC ZHUSEC
	LJMP  DONE2
DONEE:CLR  P3.3         ;P3.3用于控制煮饭停止
	CPL  P3.1        ;控制峰鸣器表示煮饭完成
	LCALL DELAY
	LJMP DONE2
DONE2:LCALL DISP2
	RETI
TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ,7FH,6FH;
TAB1: DB 0FEH,0FBH,0FDH,7FH

END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -