📄 av_2717_015.dt
字号:
SUB A,REG_M_100US
JBS STATUS,C
RET
CLR REG_M_100US
INC COUNT_M_10MS
BS FLAG1,DELAY_ON_M_FLAG
RET
;*******************************************************
MOTOR_M_POS_NEG:
MOV A,G_T_REG ;正转周期
SUB A,COUNT_M_10MS
JBS STATUS,C
JMP $+3
CLR COUNT_M_10MS
RET
MOV A,POS_REG ;正转关闭时间
SUB A,COUNT_M_10MS
JBS STATUS,C
JMP $+3
CALL MOTOR_M_DRIVE
RET
CALL MOTOR_M_DRIVE
BC R6_BUF,MOTOR_M_LM ;方向改变时延时
RET
;**********************************************************
DIS_MODE:
JBS FLAG1,STATIC_FLAG ;"静态"显示
JMP DIS_DYNAMIC ;"动态"显示
CALL LED_STATIC_MODE
RET
DIS_DYNAMIC:
CALL LED_DYNAMIC_MODE
RET
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
;*********************************************************
LED_STATIC_DUTY0:
MOV A,SPEED_M
CALL STATIC_TABE_M
MOV DIS_TEMP,A
MOV A,SPEED_G
CALL STATIC_TABE_G
OR DIS_TEMP,A ;存P66,P67
MOV A,R6_BUF
AND A,@0X3F
MOV R6_BUF,A
MOV A,DIS_TEMP
AND A,@0XC0 ;取P66,P67
OR R6_BUF,A ;保留PORT6其他值
MOV A,@0X0E
MOV R5_BUF,A ;P50
RET
LED_STATIC_DUTY1:
MOV A,SPEED_M
CALL STATIC_TABF_M
MOV DIS_TEMP,A
MOV A,SPEED_G
CALL STATIC_TABF_G
OR DIS_TEMP,A ;存P66,P67
MOV A,R6_BUF
AND A,@0X3F
MOV R6_BUF,A
MOV A,DIS_TEMP
AND A,@0XC0 ;取P66,P67
OR R6_BUF,A ;保留PORT6其他值
MOV A,@0X0D
MOV R5_BUF,A ;P51
RET
LED_STATIC_DUTY2:
MOV A,SPEED_M
CALL STATIC_TABG_M
MOV DIS_TEMP,A
MOV A,SPEED_G
CALL STATIC_TABG_G
OR DIS_TEMP,A ;存P66,P67
MOV A,R6_BUF
AND A,@0X3F
MOV R6_BUF,A
MOV A,DIS_TEMP
AND A,@0XC0 ;取P66,P67
OR R6_BUF,A ;保留PORT6其他值
MOV A,@0X0B
MOV R5_BUF,A ;P52
RET
LED_STATIC_DUTY3:
MOV A,SPEED_M
CALL STATIC_TABH_M
MOV DIS_TEMP,A
MOV A,SPEED_G
CALL STATIC_TABH_G
OR DIS_TEMP,A ;存P66,P67
MOV A,R6_BUF
AND A,@0X3F
MOV R6_BUF,A
MOV A,DIS_TEMP
AND A,@0XC0 ;取P66,P67
OR R6_BUF,A ;保留PORT6其他值
MOV A,@0X07
MOV R5_BUF,A ;P53
RET
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
LED_DYNAMIC_MODE:
MOV A,@0X28
SUB A,REG_10MS ;每位显示60MS
JBS STATUS,C
JMP LED_DYNAMIC_STA
CLR REG_10MS
SPEED_M_DIS:
MOV SPEED_M,SPEED_M
JBS STATUS,Z
JMP $+3
CLR SPEED_M_DUTY
JMP SPEED_G_DIS
DEC SPEED_M_DUTY ;由高到低显示
MOV SPEED_M_DUTY,SPEED_M_DUTY
JBS STATUS,Z
JMP $+3
MOV A,@0X04
MOV SPEED_M_DUTY,A
SPEED_G_DIS:
MOV SPEED_G,SPEED_G
JBS STATUS,Z
JMP $+3
CLR SPEED_G_DUTY
JMP LED_DYNAMIC_STA
INC SPEED_G_DUTY
MOV A,@0X05
SUB A,SPEED_G_DUTY
JBS STATUS,C
JMP LED_DYNAMIC_STA
MOV A,@0X01
MOV SPEED_G_DUTY,A
JMP LED_DYNAMIC_STA
;------------------------------------------------------
;*****************************************************
LED_DYNAMIC_DUTY0:
MOV A,SPEED_M_DUTY
CALL DYNAMIC_TABE_M
MOV DIS_TEMP,A
MOV A,SPEED_G_DUTY
CALL DYNAMIC_TABE_G
OR DIS_TEMP,A ;存P66,P67
MOV A,R6_BUF
AND A,@0X3F
MOV R6_BUF,A
MOV A,DIS_TEMP
AND A,@0XC0 ;取P66,P67
OR R6_BUF,A ;保留PORT6其他值
MOV A,@0X0E
MOV R5_BUF,A ;P50
RET
LED_DYNAMIC_DUTY1:
MOV A,SPEED_M_DUTY
CALL DYNAMIC_TABF_M
MOV DIS_TEMP,A
MOV A,SPEED_G_DUTY
CALL DYNAMIC_TABF_G
OR DIS_TEMP,A ;存P66,P67
MOV A,R6_BUF
AND A,@0X3F
MOV R6_BUF,A
MOV A,DIS_TEMP
AND A,@0XC0 ;取P66,P67
OR R6_BUF,A ;保留PORT6其他值
MOV A,@0X0D
MOV R5_BUF,A ;P51
RET
LED_DYNAMIC_DUTY2:
MOV A,SPEED_M_DUTY
CALL DYNAMIC_TABG_M
MOV DIS_TEMP,A
MOV A,SPEED_G_DUTY
CALL DYNAMIC_TABG_G
OR DIS_TEMP,A ;存P66,P67
MOV A,R6_BUF
AND A,@0X3F
MOV R6_BUF,A
MOV A,DIS_TEMP
AND A,@0XC0 ;取P66,P67
OR R6_BUF,A ;保留PORT6其他值
MOV A,@0X0B
MOV R5_BUF,A ;P52
RET
LED_DYNAMIC_DUTY3:
MOV A,SPEED_M_DUTY
CALL DYNAMIC_TABH_M
MOV DIS_TEMP,A
MOV A,SPEED_G_DUTY
CALL DYNAMIC_TABH_G
OR DIS_TEMP,A ;存P66,P67
MOV A,R6_BUF
AND A,@0X3F
MOV R6_BUF,A
MOV A,DIS_TEMP
AND A,@0XC0 ;取P66,P67
OR R6_BUF,A ;保留PORT6其他值
MOV A,@0X07
MOV R5_BUF,A ;P53
RET
;******************************************************
DELAY:
MOV A,@0X32
MOV DIS_TEMP,A
DJZ DIS_TEMP
JMP $-1
RET
;**************************************************************************
INT_TCC:
MOV ACC_BUF,A ;push the ACC and STATUS to stack
SWAP ACC_BUF
SWAPA STATUS
MOV R3_BUF,A
MOV A,@0XAA
MOV TCC,A
JBC RF,TCIF ;test the TCC interrupt
JMP INT_TCC1
MOV A,@0X01 ;enable the TCC interrupt and diseable other interrupt flag
IOW 0X0F
MOV 0X0F,A
JMP INT_EXIT1
INT_TCC1:
INC REG_G_100US
INC REG_M_100US
INC FLAG_100US
INC DUTY_100US
MOV A,@0X14 ;扫描频率/1MS
SUB A,DUTY_100US
JBS STATUS,C
JMP $+7
CLR DUTY_100US
INC LED_DUTY
MOV A,@0X04
SUB A,LED_DUTY
JBC STATUS,C
CLR LED_DUTY
MOV SPEED_G,SPEED_G ;test sleep mode
JBS STATUS,Z
CLR SLEEP_FLAG
MOV SPEED_M,SPEED_M
JBS STATUS,Z
CLR SLEEP_FLAG ;SPEED_M速度为0时才计SLEEP
MOV A,@0X64
SUB A,FLAG_100US
JBS STATUS,C
JMP INT_EXIT
INC SLEEP_FLAG
CLR FLAG_100US
INC REG_10MS
MOV STATIC_TIME,STATIC_TIME
JBS STATUS,Z
JMP $+3
BC FLAG1,STATIC_FLAG ;动态显示
JMP KEY_IN
DEC STATIC_TIME ;静态显示3S
BS FLAG1,STATIC_FLAG
MOV A,@0X04
MOV SPEED_M_DUTY,A
MOV A,@0X01
MOV SPEED_G_DUTY,A
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&E
;按键扫描,矩阵式按键
KEY_IN: ;key_scan
MOV A,@0XF8
IOW P6CR
P50_TEST:
MOV A,@0X0E
MOV PORT5,A
CALL DELAY ;延时等待稳定
UP1_TEST: ;up_key(P63为UP键)
NOP
NOP
JBS PORT6,5
JMP UP1_ON
UP1_OFF:
JBS KEY_FLAG,UP1_FLAG
JMP UP1_OFF1
BC KEY_FLAG,UP1_FLAG
JMP DOWN1_TEST
UP1_OFF1:
JBS KEY_STATE,UP1_STATE
JMP DOWN1_TEST
BC KEY_STATE,UP1_STATE
BC KEY_FLAG,UP1_STATIC
JMP DOWN1_TEST
UP1_ON:
JBC KEY_FLAG,UP1_FLAG
JMP UP1_ON1
BS KEY_FLAG,UP1_FLAG
JMP KEY_EXIT
UP1_ON1:
JBC KEY_STATE,UP1_STATE
JMP UP1_DO_LONG
BS KEY_STATE,UP1_STATE
UP1_DO:
JBC KEY_FLAG,UP1_STATIC
JMP $+4
MOV A,@0XFA
MOV STATIC_TIME,A
BS KEY_FLAG,UP1_STATIC
MOV A,@0X32
MOV KEY_TIME,A
MOV A,@0X04
SUB A,SPEED_G
JBS STATUS,C
INC SPEED_G
JMP KEY_EXIT
UP1_DO_LONG:
DEC KEY_TIME
MOV KEY_TIME,KEY_TIME
JBC STATUS,Z
BC KEY_STATE,UP1_STATE
JMP KEY_EXIT
;---------------------------------------------------------
DOWN1_TEST:
NOP
NOP ;up_key(P63为UP键)
JBS PORT6,4
JMP DOWN1_ON
DOWN1_OFF:
JBS KEY_FLAG,DOWN1_FLAG
JMP DOWN1_OFF1
BC KEY_FLAG,DOWN1_FLAG
JMP P51_TEST
DOWN1_OFF1:
JBS KEY_STATE,DOWN1_STATE
JMP P51_TEST
BC KEY_STATE,DOWN1_STATE
BC KEY_FLAG,DOWN1_STATIC
JMP P51_TEST
DOWN1_ON:
JBC KEY_FLAG,DOWN1_FLAG
JMP DOWN1_ON1
BS KEY_FLAG,DOWN1_FLAG
JMP KEY_EXIT
DOWN1_ON1:
JBC KEY_STATE,DOWN1_STATE
JMP DOWN1_DO_LONG
BS KEY_STATE,DOWN1_STATE
DOWN1_DO:
JBC KEY_FLAG,DOWN1_STATIC
JMP $+4
MOV A,@0XFA
MOV STATIC_TIME,A
BS KEY_FLAG,DOWN1_STATIC
MOV A,@0X32
MOV KEY_TIME,A
MOV SPEED_G,SPEED_G
JBS STATUS,Z
DEC SPEED_G ;不为0减1
JMP KEY_EXIT
DOWN1_DO_LONG:
DEC KEY_TIME
MOV KEY_TIME,KEY_TIME
JBC STATUS,Z
BC KEY_STATE,DOWN1_STATE
JMP KEY_EXIT
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
P51_TEST:
MOV A,@0X0D
MOV PORT5,A
CALL DELAY
UP2_TEST: ;up_key(P63为UP键)
JBS PORT6,5
JMP UP2_ON
UP2_OFF:
JBS KEY_FLAG,UP2_FLAG
JMP UP2_OFF1
BC KEY_FLAG,UP2_FLAG
JMP DOWN2_TEST
UP2_OFF1:
JBS KEY_STATE,UP2_STATE
JMP DOWN2_TEST
BC KEY_STATE,UP2_STATE
BC KEY_FLAG,UP2_STATIC
JMP DOWN2_TEST
UP2_ON:
JBC KEY_FLAG,UP2_FLAG
JMP UP2_ON1
BS KEY_FLAG,UP2_FLAG
JMP KEY_EXIT
UP2_ON1:
JBC KEY_STATE,UP2_STATE
JMP UP2_DO_LONG
BS KEY_STATE,UP2_STATE
UP2_DO:
JBC KEY_FLAG,UP2_STATIC
JMP $+4
MOV A,@0XFA
MOV STATIC_TIME,A
BS KEY_FLAG,UP2_STATIC
MOV A,@0X32
MOV KEY_TIME,A
MOV A,@0X04
SUB A,SPEED_M
JBS STATUS,C
INC SPEED_M
JMP KEY_EXIT
UP2_DO_LONG:
DEC KEY_TIME
MOV KEY_TIME,KEY_TIME
JBC STATUS,Z
BC KEY_STATE,UP2_STATE
JMP KEY_EXIT
;---------------------------------------------------------
DOWN2_TEST: ;up_key(P63为UP键)
JBS PORT6,4
JMP DOWN2_ON
DOWN2_OFF:
JBS KEY_FLAG,DOWN2_FLAG
JMP DOWN2_OFF1
BC KEY_FLAG,DOWN2_FLAG
JMP P52_TEST
DOWN2_OFF1:
JBS KEY_STATE,DOWN2_STATE
JMP P52_TEST
BC KEY_STATE,DOWN2_STATE
BC KEY_STATE,DOWN2_STATIC
JMP P52_TEST
DOWN2_ON:
JBC KEY_FLAG,DOWN2_FLAG
JMP DOWN2_ON1
BS KEY_FLAG,DOWN2_FLAG
JMP KEY_EXIT
DOWN2_ON1:
JBC KEY_STATE,DOWN2_STATE
JMP DOWN2_DO_LONG
BS KEY_STATE,DOWN2_STATE
DOWN2_DO:
JBC KEY_STATE,DOWN2_STATIC
JMP $+4
MOV A,@0XFA
MOV STATIC_TIME,A
BS KEY_STATE,DOWN2_STATIC
MOV A,@0X32
MOV KEY_TIME,A
MOV SPEED_M,SPEED_M
JBS STATUS,Z
DEC SPEED_M ;不为0减1
JMP KEY_EXIT
DOWN2_DO_LONG:
DEC KEY_TIME
MOV KEY_TIME,KEY_TIME
JBC STATUS,Z
BC KEY_STATE,DOWN2_STATE
JMP KEY_EXIT
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
P52_TEST:
MOV A,@0X0B
MOV PORT5,A
CALL DELAY
F1_TEST:
JBS PORT6,5
JMP F1_ON
F1_OFF:
JBS KEY_FLAG,F1_FLAG
JMP F1_OFF1
BC KEY_FLAG,F1_FLAG
JMP KEY_EXIT
F1_OFF1:
JBS KEY_STATE,F1_STATE
JMP KEY_EXIT
BC KEY_STATE,F1_STATE
BC KEY_STATE,F1_STATIC
JMP KEY_EXIT
F1_ON:
JBC KEY_FLAG,F1_FLAG
JMP F1_ON1
BS KEY_FLAG,F1_FLAG
JMP KEY_EXIT
F1_ON1:
JBC KEY_STATE,F1_STATE
JMP F1_DO_LONG
BS KEY_STATE,F1_STATE
F1_DO:
JBC KEY_STATE,F1_STATIC
JMP $+4
MOV A,@0XFA
MOV STATIC_TIME,A
BS KEY_STATE,F1_STATIC
BC FLAG1,MODE_DO_FLAG
INC MODE
MOV A,@0X04
SUB A,MODE
JBS STATUS,C
JMP $+3
MOV A,@0X01
MOV MODE,A
JMP KEY_EXIT
F1_DO_LONG:
JMP KEY_EXIT
;-----------------------------------------------------
KEY_EXIT:
MOV A,@0X38
IOW 0X06
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
;退出中断(中断返回)
INT_EXIT:
MOV A,@0X00
MOV RF,A
INT_EXIT1:
SWAPA R3_BUF
MOV STATUS,A
SWAPA ACC_BUF
RETI
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -