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

📄 grw3v101+t6.asm

📁 基于PWM温度控制系统
💻 ASM
字号:
	        ;Name	Grow_m51  ;First:2002.5.4
		;last change:2003.5.30
		;CPU : AT89C58 , ADC : ICL7135 , EEPROM : AT93C46
                ;添加T6,可以设定光照时间3-200分钟
RLDH	EQU	0CBH
RLDL	EQU	0CAH
DD1	EQU	P0.0
DD2	EQU	P0.1
DD4	EQU	P0.2
DD8	EQU	P0.3
DG2	EQU	P0.4
DG3	EQU	P0.5
DG4	EQU	P0.6
DG5	EQU	P0.7
SCAN0	EQU	P0.6
SCAN1	EQU	P0.7
DB1	EQU	P1.0
DB2	EQU	P1.1
DB4	EQU	P1.2
DB8	EQU	P1.3
AD_POL	EQU	P1.4
AD_D5	EQU	P1.5
DO	EQU	P1.7
SK	EQU	p3.1
CS	EQU	P1.6
DI	EQU	p3.0
LIGHT	EQU	P2.0
PUMP	EQU	P2.1
HEAT	EQU	P2.2
COMP	EQU	P2.3
DOT	EQU	P2.4
TMP_LW	EQU	P2.5
TMP_HW	EQU	P2.6
POL	EQU	P2.7

STB	EQU	p3.2
DARK	EQU	P3.3
RL0	EQU	P3.4
RL1	EQU	P3.5
SOUND	EQU	P3.6          ;报警发声

;DOOR   EQU     P3.7  
RETN	EQU	2200H
TIMES	EQU	5
KEYBUF	EQU	10H
KSNGCNT EQU	15H
DLY10S	EQU	16H
BY0	EQU	1BH
BY1	EQU	1CH
BX1	EQU	1DH
BX2	EQU	1EH
BX3	EQU	1FH
SAMFLG	EQU	20H
SAMOK	EQU	20H.0
ADJDLY	EQU	20H.1
FSTSCND EQU	20H.2
ADJDLTF EQU	20H.3
ALTNAT	EQU	20H.4
STATUS1 EQU	21H
NEWKeyF EQU	21H.0
NEWKeyF1 EQU	21H.1
KDLYF	EQU	21H.2
KDLYF1	EQU	21H.3
KEYDOWN EQU	21H.4
ENDLT	EQU	21H.5
TRAN_EFFIC_F EQU 21H.6
SIGN	EQU	21H.7
SONGF	EQU	22H
KeyS	EQU	22H.0
TMPS	EQU	22H.2
DOORS	EQU	22H.3
FLAG	EQU	24H
RQHEAT	EQU	24H.0
DSHEAT	EQU	24H.1  ;禁止加热标志,1 为禁止加热,0 为可以加热标志
DSCOOL	EQU	24H.2
HTONDLYF EQU	24H.3
CLONDLYF EQU	24H.4

FLAG1	EQU	25H
NEWTF	EQU	25H.0
BADTF1	EQU	25H.1
BADTF2	EQU	25H.2

                        ; zhe ge biao zhi wei yao xie ru de
flag2   equ     26h
time_enable equ 26h.0   ;ding shi yun xu biao zhi 1 shi yong xu  0 shi bu yong xu
time_end    equ 26h.1   ;ding shi jie shu biao zhi  1 shi jie shu 0 shi bu jie shu


T2mS	EQU	2BH
T20ms	EQU	2CH
T05Sec	EQU	2DH
T2Sec	EQU	2EH
T1min	EQU	2FH

SETTL	EQU	30H
SETTH	EQU	31H
CLONDL	EQU	32H
CLONDH	EQU	33H
CLOFFDL EQU	34H
CLOFFDH EQU	35H
MAXTL	EQU	36H
MAXTH	EQU	37H
MINTL	EQU	38H
MINTH	EQU	39H
ABSDL	EQU	3cH
ABSDH	EQU	3dH
LIGHTVARIL EQU  3aH
LIGHTVARIH EQU  3bH  ;王,添加延长时间变量
DELTL	EQU	3EH
DELTH	EQU	3FH
XBUFL	EQU	40H
XBUFH	EQU	41H
LRNGL	EQU	42H
LRNGH	EQU	43H
HRNGL	EQU	44H
HRNGH	EQU	45H
TMPL	EQU	46H
TMPH	EQU	47H
AD_RESULTL EQU	48H
AD_RESULTH EQU	49H
AD_MID_L   EQU	4AH
AD_MID_H   EQU	4BH
AD_FACTORIAL EQU 4Ch
ICNTL	EQU	4EH      ;暂时不用
ICNTH	EQU	4FH
STTUS	EQU	50H      ;状态缓冲区
SETTMP	EQU	2
SETCLND EQU	4  ;热气旁通阀开启
SETCLFD EQU	6  ;热气旁通阀关闭
SETMXT	EQU	8  ;最高限温
SETMNT	EQU	10 ;最低限温
SETABSD EQU	14 ;修订显示温度
SETLIGHTTIME EQU 12 ;王设定光照时间
TMPSDLY EQU	51H
KDLYCNT EQU	52H
KDLYCNT1 EQU	53H
KDLYCNT2 EQU	54H
DOORSCNT EQU	55H
DOORSDLY EQU	56H
DRSOFFCNT EQU	57H
DRSCYCNT EQU	58H
HTONDLY EQU	59H
CLONDLY EQU	5AH
PWMBK	EQU	5BH
PWMON	EQU	5CH
DGTCNT	EQU	5DH
SETDGT	EQU	5EH
LIGHTDLY EQU	5FH
SUMTL	EQU	60H
SUMTM	EQU	61H
SUMTH	EQU	62H
AVRGEL	EQU	63H
AVRGEH	EQU	64H
TOPTMPL EQU	65H
TOPTMPH EQU	66H
BTMTMPL EQU	67H
BTMTMPH EQU	68H
SAMTIME EQU	69H
SAMDLY	EQU	6AH
;LIGHTDLY1 EQU   6BH       ;王,光照延长时间系数
SPBUF	EQU	80H
EXMEMB	EQU	0
SETTEXM EQU	1
CLONEXM EQU	2
CLOFFEX EQU	3
MAXTEXM EQU	4
MINTEXM EQU	5
ABSDEXM EQU	7
DELTAEX EQU	8
AUTOFEX EQU	9
DINGSHI EQU     6       ;添加光照延时间
RESTART EQU	0F01EH
	ORG	0
	LJMP	INIT
	ORG	3
	LJMP	INT_7135
	DB	'Grow1'
	ORG	0BH               ;定时器1中断入口
	AJMP	CLOCK
	ORG	10H
RRL:	DB	00H,00H,00H,00H
RRH:	DB	00H,05H,00H,00H
DEFAULT:DB	087H,0D0H      ;+20 c
	DB	080H,032H      ;+0.5
	DB	07FH,0CEH      ;-0.5
	DB	095H,07CH      ; +55
	DB	07EH,00CH      ;-5
        DB      081H,02cH      ;王,添加一个+3
	DB	000H,000H
     	DB	000H,000H      ;0
	DB	0FFH,0FFH      ;-1
	ORG	2BH
  	LJMP interrupt_tmr2     ;定时器2中断入口
CLCKxx: AJMP	KEY
JIRET11:AJMP	IRET11
CLOCK:	PUSH	Acc
	PUSH	PSW
        SETB	RS0
      	DJNZ	T2mS,JIRET11   ;2ms到中断结束返回
	MOV	T2mS,#TIMES*2
	DJNZ	T20ms,CLCKxx
	MOV	T20ms,#20/TIMES
	JB	PUMP,CLCK3
	JB	DSHEAT,CLCK3
	JNB	HTONDLYF,CLCK1   ;加热开始延时标志
	DJNZ	HTONDLY,CLCKxxx
	CLR	HTONDLYF
CLCK1:	JNB	RQHEAT,CLCK3   ;请求加热标志为0,停止加热
	JNB	COMP,CLCK3     ;压缩机在工作,停止加热
	DJNZ	T2Sec,CLCK2    ;延时2s 后加热
	MOV	T2Sec,#100
	CLR	HEAT           ;加热
	MOV	PWMON,PWMBK    ;设定脉宽
CLCK2:	DJNZ	PWMON,CLCKxxx
CLCK3:	SETB	HEAT           ;停止加热
CLCKxxx:
	DJNZ	T05Sec,SNGPRO
	MOV	T05Sec,#500/20
	DJNZ	CLONDLY,CLCK0
	CLR	CLONDLYF
CLCK0:	DJNZ	T1min,SNGPRO
	MOV	T1min,#255

	JB	LIGHT,SNGPRO
	DJNZ	LIGHTDLY,SNGPRO
        ;DJNZ    LIGHTDLY1,SNGPRO                           ;5分钟后光照自动关闭
	SETB	LIGHT            ;光照关
SNGPRO:  NOP
         NOP
         NOP
         NOP
         NOP
	JNB	KeyS,TSNGP
	DJNZ	KSNGCNT,JLOOK
	CLR	KeyS
	SJMP	SNGPEND
TSNGP:	JNB	TMPS,DOORSP
	DJNZ	TMPSDLY,JLOOK
	MOV	TMPSDLY,#10
	CPL	SOUND
	JNB	DSHEAT,TSNGP1
	CPL	TMP_HW
TSNGP1: JNB	DSCOOL,LOOK
	CPL	TMP_LW
JLOOK:	SJMP	LOOK

DOORSP: JNB	DOORS,SNGPEND         ;开关门检测
	JB	SOUND,DOORSP1
	DJNZ	DOORSCNT,LOOK
	MOV	DOORSCNT,#5
	SETB	SOUND
	SJMP	LOOK
DOORSP1:DJNZ	DOORSDLY,LOOK
	CLR	SOUND
	MOV	A,DRSOFFCNT
	SUBB	A,DRSCYCNT
	JNC	DOORSP2
	MOV	DRSCYCNT,#1
	MOV	A,DRSOFFCNT
DOORSP2:CJNE	A,#1,DRSP3
DRSP3:	JNC	DRSP4
	MOV	A,#1
DRSP4:	MOV	DOORSDLY,A
	MOV	DRSOFFCNT,A
	MOV	A,DRSCYCNT
	CJNE	A,#16,DRSP5
DRSP5:	JNC	LOOK
	ADD	A,#3
	MOV	DRSCYCNT,A
	SJMP	LOOK
SNGPEND:SETB	SOUND
	SJMP	LOOK
KEY:	CLR	DARK               ;送灭
	JB	NEWKeyF,LOOK_      ;有新键按下转
	JB	KDLYF,ACLLK        ;按键去抖动标志
	SETB	POL
	MOV	P0,#3FH
	ACALL	WK
	SJMP	LOOK_
ACLLK:	DJNZ	KDLYCNT,SURE       ;延时去抖动结束转扫描
	ACALL	LK2
	SJMP	LOOK_
SURE:	MOV	P0,#7FH            ;送扫描字,P0.7

⌨️ 快捷键说明

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