📄 sub.asm
字号:
;================================
; User's subroutine |
;================================
const_set:
mov a,#20
mov intwk00,a
ret
;===========================================
; System subroutine(user select) |
;===========================================
;System Error
@@System_Err:
jmp @@System_Err ; wait for watchdog reset the system
;=====================================================
IF @ADappl_set == 1
;Set and Read A/D transform value
;store @adxx_setval in acc before call @@AD_tansform(xx == 0~~7).
@@AD_transform:
mov a,@ADxx_setval ; set A/D chanel
if @ADLEN_set == 1
b0bset fadlen ; 12 bit A/D
else
b0bclr fadlen ; 8 bit A/D
endif
if @ADCKS_set == 1
b0bset fadcks ; Fcpu/8
else
b0bclr fadcks ; Fcpu/16
endif
mov adm,a ; start chanel0 A/D transform
@@: b0bts1 feoc ; wait until A/D transform over
jmp @b
if @ADLEN_set == 1 ; 12 bit A/D
clr @advalueL
b0mov a,adr ; get Low 8 bit
and a,#0fh
b0mov @advalueL,a
swap adb
and a,#0fh
or @advalueL,a
swap adb ; get High 4 bit
and a,#0fh
b0mov @advalueH,a
elseif @ADLEN_set == 0
b0mov @advalue,adb
else
error "Please check the value of @ADLEN_set!"
endif
@@AD_transform90:
; mov_ adm,@AD_overval
ret
ENDIF
;=====================================================
IF @DAappl_set == 1
;D/A
@@DA_transform:
b0mov dam,xxxx ; you should add correct data
; b0bset fdaenb ; you can delete the instruction
ret
ENDIF
;=====================================================
IF @Lcdappl_set == 1
;LCD display
@@Lcd_display:
mov a,#15
b0mov rbank,a
// ............... ; add data to display
// ...............
clr rbank
mov_ LCDM,@Lcdm_set
if @RCLK_set == 1
b0bset frclk
else
b0bclr frclk
endif
if @P3LCD_set == 1
b0bset fp3lcd
else
b0bclr fp3lcd
endif
ret
@@Lcd_dotoff:
b0bset fblank
ret
ENDIF
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -