📄 zhb.asm
字号:
;目的:摇控控制器
;芯片:89C2051
;制做时间:09/21
BDA BIT P1.2
GDA BIT P1.1
RDA BIT P1.0
SDA BIT P1.6
SCL BIT P1.5
LED BIT P1.7
AUTO BIT P3.2
UP BIT P3.3
DOWN BIT P3.4
SWITCH BIT P3.5
BUSY BIT 25H.0
AUTOS BIT 25H.1
UPS BIT 25H.2
DOWNS BIT 25H.3
SWITCHS BIT 25H.4
POWER BIT 25H.5
SHAN BIT 25H.6
KEYB BIT 25H.7
DATAT DATA 31H
JBDT1 DATA 32H
JBDT2 DATA 33H
JBDT3 DATA 34H
TEMP1 DATA 35H
TEMP2 DATA 36H
TEMP3 DATA 37H
TIME1 DATA 38H
TIME2 DATA 39H
TIME3 DATA 3FH
TIME4 DATA 3AH
TIMEDT DATA 3BH
DATAA DATA 3CH
AUTODT DATA 3DH
KEYD DATA 3EH
ORG 0000H
SJMP MAIN
ORG 000BH
SJMP TT0
ORG 001BH
SJMP TT1
;--------------------------------
TT0:
MOV TH0, #0C0H
MOV TL0, #00H
RETI
;===================================
TT1:
MOV TH1, #0FFH
MOV TL1, #8FH
MOV 21H, #00H
RETI
;======================================
MAIN:
SETB GDA
SETB RDA
SETB BDA
MOV TMOD, #11H
MOV IE, #8AH
MOV TH1, #0FFH
MOV TL1, #4FH
MOV TH0, #0C0H
MOV TL0, #00H
MOV 25H, #0FFH
MOV 21H, #0FFH
MOV 2AH, #0FFH
MOV TIME1, #05
LCALL DELAY100S
;-----------------------------------
LOOP:
MOV TIME1, #05
;LCALL DELAY100S
;CPL GDA
;CPL BDA
;CPL RDA
LCALL MODE1
SJMP LOOP
;**************************************************
;======================================
MODE1:
;CLR SHAN
SETB TR1
SETB GDA
SETB RDA
SETB BDA
;CLR 2AH.1
;LCALL TJLLED
CLR RDA
LCALL DELAY100S ; R
;JNB KEYB, HQ
CLR 2AH.2
LCALL TJLLED
CLR GDA
LCALL DELAY100S ; G+R
;JNB KEYB, HQ
CLR 2AH.1
LCALL TJALED
SETB RDA
LCALL DELAY100S ; G
;JNB KEYB, HQ
CLR 2AH.3
LCALL TJLLED
CLR BDA
LCALL DELAY100S ; G+B
;JNB KEYB, HQ
CLR 2AH.2
LCALL TJALED
SETB GDA
LCALL DELAY100S ; B
;JNB KEYB, HQ
CLR 2AH.1
LCALL TJLLED
CLR RDA
LCALL DELAY100S ; B+R
CLR 2AH.3
LCALL TJALED
SETB BDA
SETB GDA
CLR RDA
;LCALL DELAY100S ; R
HQ:
CLR TR1
RET
;==============================================
TJLLED:
MOV JBDT1, #01
MOV JBDT2, #128
TJLED1:
MOV JBDT3, #05
TJLED2:
MOV TEMP1, JBDT1
MOV TEMP2, JBDT2
;=============================
LCALL TNV
;=============================
TJLED3:
JB 21H.0, $
SETB 21H.0
DJNZ TEMP1, TJLED3
;=============================
LCALL TNC
JNB KEYB, DS1
;=============================
TJLED4:
JB 21H.0, $
SETB 21H.0
DJNZ TEMP2, TJLED4
;---------------------------
DJNZ JBDT3, TJLED2
INC JBDT1
DEC JBDT2
MOV R1, JBDT2
CJNE R1, #00, TJLED1
MOV 2AH, #0FFH
DS1:
RET
;---------------------------------
;+++++++++++++JIAN AN+++++++++++++++
;----------------------------------
TJALED:
MOV JBDT1, #128
MOV JBDT2, #01
TJALED1:
MOV JBDT3, #05
TJALED2:
MOV TEMP1, JBDT1
MOV TEMP2, JBDT2
;===============================
LCALL TNV
;===============================
TJALED3:
JB 21H.1, $
SETB 21H.1
DJNZ TEMP1, TJALED3
;===============================
LCALL TNC
JNB KEYB, DS2
;===============================
TJALED4:
JB 21H.1, $
SETB 21H.1
DJNZ TEMP2, TJALED4
;---------------------------
DJNZ JBDT3, TJALED2
DEC JBDT1
MOV R1, JBDT1
INC JBDT2
CJNE R1, #00H, TJALED1
MOV 2AH, #0FFH
DS2:
RET
;==================================
TNV:
JB 2AH.1, TNV1
CLR RDA
SJMP TOUT2
TNV1:
JB 2AH.2, TNV2
CLR GDA
SJMP TOUT2
TNV2:
JB 2AH.3, TNV3
CLR BDA
SJMP TOUT2
TNV3:
JB 2AH.4, TOUT2
CLR GDA
CLR BDA
TOUT2:
RET
;=========================================
TNC:
JB 2AH.1, TNC1
SETB RDA
SJMP TOUT1
TNC1:
JB 2AH.2, TNC2
SETB GDA
SJMP TOUT1
TNC2:
JB 2AH.3, TNC3
SETB BDA
SJMP TOUT1
TNC3:
JB 2AH.4, TOUT1
SETB GDA
SETB BDA
TOUT1:
RET
;=====================================
;======================================
DELAY100S:
MOV TIME2, TIME1
LK1:
MOV R1, #0BFH
LK:
MOV R2, #4FH
DJNZ R2, $
DJNZ R1, LK
DJNZ TIME2, LK1
RET
;========================================
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -