调光.asm
来自「DIMMER.rar包括电路图和源程序。用51单片机实现」· 汇编 代码 · 共 118 行
ASM
118 行
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 + =
减小字号Ctrl + -
显示快捷键?