📄 调光.asm
字号:
PARAMETER EQU 40H;延时参数存储器
SHOW EQU 41H;延时执行缓冲器
ON_OFF BIT P1.0;开关键
KEY_ADD BIT P1.1;调亮键
KEY_SUBB BIT P1.2;调暗键
LEAST BIT 30H;最亮标志
MOST BIT 31H;最暗标志
SIGN_ON_OFF BIT 32H;开关开状态标志
ORG 0
JMP MAIN
ORG 03H
SETB P0.0
SETB TR0
RETI
ORG 0BH
JMP INT_T0
ORG 1BH
JMP INT_T1
MAIN:
MOV TMOD,#22H
MOV TH0,#125
MOV TL0,#125
MOV TH1,#228
MOV TL1,#228
MOV PARAMETER,#40
MOV SHOW,PARAMETER
CLR SIGN_ON_OFF
SETB EA
SETB IT0
SETB ET0
SETB ET1
START:
MOV C,SIGN_ON_OFF
MOV EX0,C
JC NOT_OFF
SETB P0.0
NOT_OFF:
JB ON_OFF,SETTING
CALL DELAY
JB ON_OFF,START
CPL SIGN_ON_OFF
JNB ON_OFF,$
RETURN:
CALL DELAY
JMP START
SETTING:
JNB SIGN_ON_OFF,START
JNB KEY_ADD,BRIGHT
JNB KEY_SUBB,DARK
JMP START
BRIGHT:
MOV R0,#80
CALL LOOP1
JB KEY_ADD,START
JB LEAST,RETURN
CLR MOST
DEC PARAMETER
MOV A,PARAMETER
CJNE A,#4,CONTINUE_SUBB
SETB LEAST
CONTINUE_SUBB:
; JNB KEY_ADD,$
JMP RETURN
DARK:
MOV R0,#80
CALL LOOP1
JB KEY_SUBB,START
JB MOST,RETURN
INC PARAMETER
CLR LEAST
MOV A,PARAMETER
CJNE A,#95,CONTINUE_ADD
SETB MOST
CONTINUE_ADD:
; JNB KEY_ADD,$
JMP RETURN
DELAY:
MOV R0,#40
LOOP1:
MOV R1,#0
LOOP2:
DJNZ R1,LOOP2
DJNZ R0,LOOP1
RET
INT_T0:
CPL P0.2
DJNZ SHOW,RET_INT
CPL P0.3
MOV SHOW,PARAMETER
CLR P0.0
CLR TR0
SETB TR1
RET_INT:
RETI
INT_T1:
SETB P0.0
CLR TR1
RETI
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -