📄 grw3v101+t6.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 + -