📄 demo_69p25.asm
字号:
;filename:initial.asm
list p =SH69P25 ; otp is sH69p25
romsize =4096
;---------------weibo-d
;------------WDT ENABLE
;------------CRYSTAL 4MHZ
;-----------LPD ON
;----------- 2.5V
;-----------OSC 2M-4M
;----------CHECKSUM:
;***********************************
;INTM1_VOL EQU 08H
;INTM2_VOL EQU 0CH
;-----------------BANK 0
B0 EQU 00H ;--------B0 DEFINE
IE EQU 00H
IRQ EQU 01H
T0RM EQU 02H
;B0BTM EQU 03H
T0RL EQU 04H
T0RH EQU 05H
;
;===========================B0LPDR EQU 07H
PAR EQU 08H
PBR EQU 09H
PCR EQU 0AH
PDR EQU 0BH
PER EQU 0CH
PFR EQU 0DH
;
PARM EQU 16H
PBRM EQU 17H
PCRM EQU 18H
PDRM EQU 19H
PERM EQU 1AH
PFRM EQU 1BH
;
TBR EQU 0EH
INX EQU 0FH
DPL EQU 10H
DPM EQU 11H
DPH EQU 12H
PULLUPR EQU 15H
T0CLOCK EQU 1CH
WDTR EQU 1EH
;---------------------BANK0
;define data memory
;
AUTORL EQU 20H ;auto weight type
MK_YUYUE EQU 21H ;yuyue state
YUYUERL EQU 22H ;yuyue seting
JETR EQU 23H ;looking yuyue time
MK01L EQU 24H ;time flag
MK01H EQU 25H ;time flag
MK_COOK EQU 26H ;cook flag
MKH_BZ EQU 27H ;buzzer flag
MK_SY EQU 28H ;sys flag
MK_DIS EQU 29H ;display flag
MK_KS EQU 2AH ;keyscan flag
MK_BZ EQU 2BH ;buzzer flag
;DEFRH EQU 2CH ;def weight type
;CLOCKR_SHE EQU 2DH ;clock seting
;------------------------------------------
; intface
;-------------------------------------------
SECRL_COOK EQU 2EH ;cook time second
INTM1L EQU 2FH ;sys time 1
INTM1H EQU 30H ;sys time 1
INTM2L EQU 31H ;sys time 2
INTM2H EQU 32H ;sys time 2
;CLOCK_SECRL EQU 33H ;clock second
MK_DL EQU 34H ;clock second
; EQU 35H ;clock minute
MK_INCDEC EQU 36H ;clock minute
MINRL_COOK EQU 37H ;cook time minute
MINRH_COOK EQU 38H ;cook time minute
SECRL_YU EQU 39H ;clock hour
SECRH_YU EQU 3AH ;clock hour
SECRH_COOK EQU 3BH ;cook second
WK1 EQU 3CH ;paush register
COOKFR EQU 3DH ;cook second counter
DELAYR_ZERO EQU 3EH ;MIROWAVE OUTPUT DELAY
JUDGERL_5060 EQU 3FH ;50/60 HZ JUDGE
JUDGERH_5060 EQU 40H ;50/60 HZ JUDGE
MINRL_YU EQU 41H ;yuyue minute hi
MINRH_YU EQU 42H ;yuyue minute low
LEVELRL_L EQU 43H ;wei bo low level camper
LEVELRH_L EQU 44H ;wei bo low level camper
LEVELRL_H EQU 45H ;wei bo high level camper
LEVELRH_H EQU 46H ;wei bo high level camper
PARBUF EQU 47H ;as pa
PBRBUF EQU 48H ;as pb
PCRBUF EQU 49H ;as pc
PDRBUF EQU 4AH ;as pd
PERBUF EQU 4BH ;as pe
PFRBUF EQU 4CH ;as pf
LEVELRLBUF EQU 4DH ;wei bo output counter
LEVELRHBUF EQU 4EH ;wei bo output counter
KEYR_DOOR EQU 4FH ;door scan register
KEYRS_DOOR EQU 50H ;door scan register
KEYM2L EQU 51H ;key scan register
KEYM2H EQU 52H ;key scan register
KEYM2LS EQU 53H ;key scan register
KEYM2HS EQU 54H ;key scan register
MACR0 EQU 55H ;macro paush register
MACR2 EQU 56H ;interrupt paush register
AUTORH EQU 57H ;auto type
SUPR EQU 58H ;cook/grill type
WK0 EQU 59H ;paush register
MK_LIT EQU 5AH ;littile boy flag
MK_LO EQU 5BH ;key process flag
KEYRH_WDT EQU 5CH ;key 1 minute watch
KEYRL_WDT EQU 5DH ;key 1 minute watch
MK_SWITCH EQU 5EH ;door open/off flag
DISCTR EQU 5FH ;display scan
DISR1 EQU 60H ;BCD DISPLAY REGISTER 1
DISR2 EQU 61H ;BCD DISPLAY REGISTER 2
DISR3 EQU 62H ;BCD DISPLAY REGISTER 3
DISR4 EQU 63H ;BCD DISPLAY REGISTER 4
LONGR1_BZ EQU 64H ;SOUND REGISTER AS KEY
LONGR2L_BZ EQU 65H ;SOUND REGISTER AS LITTILE BOY
LONGR2H_BZ EQU 66H ;SOUND REGISTER AS LITTILE BOY
LONGR5L_BZ EQU 67H ;sound register as work end
TIMESR_BZ EQU 68H ;sound times
DOORRL EQU 69H ;door light delay
DOORRM EQU 6AH ;door light delay
DOORRH EQU 6BH ;door light delay
LITTLERH EQU 6CH ;little boy lock delay
MARKSY EQU 6DH ;sys flag
DISCTRH EQU 6EH ;display scan counter
NEWR2 EQU 6FH ;
LONGR5H_BZ EQU 70H ;sound register as work end
;LOOKR_CLOCK EQU 71H ;looking clock
LOOKR_COOK EQU 72H ;looking cook
OPTIONR EQU 73H ;900w/800w/700w option
MK_CIKONG EQU 74H ;wei bo flag
JETRBUF EQU 75H ;fire register
;DEFRL EQU 76H ;def1/def2 type
DELAYRH EQU 77H ;delay
DELAYRL EQU 78H ;delay
MKL_ZERO EQU 79H ;zero puls flag
LITTLERL EQU 7AH ;littile boy lock delay
MK_SY2 EQU 7BH ;sys flag
TABLERH EQU 7CH ;look up table address high
TABLERL EQU 7DH ;look up table address low
MODER_PUSH1 EQU 7EH ;mode protect
MKH_ZERO EQU 7FH ;zero puls flag
;================================================bank 1 diffine
B1 EQU 01H ;------------------------B1
ACCBUF EQU 00H ;acc protect
LEDR1H EQU 01H ;LED1 DISPLAY BUFFER
LEDR1L EQU 02H ;LED1 DISPLAY BUFFER
LEDR2H EQU 03H ;LED2 DISPLAY BUFFER
LEDR2L EQU 04H ;LED2 DISPLAY BUFFER
LEDR3H EQU 05H ;LED3 DISPLAY BUFFER
LEDR3L EQU 06H ;LED3 DISPLAY BUFFER
LEDR4H EQU 07H ;LED4 DISPLAY BUFFER
LEDR4L EQU 08H ;LED4 DISPLAY BUFFER
LEDR5H EQU 09H ;LED5 DISPLAY BUFFER
LEDR5L EQU 0AH ;LED5 DISPLAY BUFFER
HOURHBUF EQU 0BH ;CLOCK SET DATA PROTECT
HOURLBUF EQU 0CH ;CLOCK SET DATA PROTECT
MINRHBUF EQU 0DH ;CLOCK SET DATA PROTECT
MINRLBUF EQU 0EH ;CLOCK SET DATA PROTECT
KEYR_OPTION EQU 0FH ;OPTION SCAN REGISTER
KEYRS_OPTION EQU 10H ;OPTION SCAN REGISTER
MINRH_SHAO EQU 11H ;SHAO KAO LEST HALF TIME COUNTER
MINRL_SHAO EQU 12H ;SHAO KAO LEST HALF TIME COUNTER
SECRH_SHAO EQU 13H ;SHAO KAO LEST HALF TIME COUNTER
SECRL_SHAO EQU 14H ;SHAO KAO LEST HALF TIME COUNTER
SUPRH_PUSH1 EQU 15H ;COOK 2 MODE PROTEC
KEY_CTR EQU 16H ;KEYSCAN TIMES COUNTER
MINRH_PUSH1 EQU 17H ;COOK 2 TIME PROTECT
MINRL_PUSH1 EQU 18H ;COOK 2 TIME PROTECT
SECRH_PUSH1 EQU 19H ;COOK 2 TIME PROTECT
SECRL_PUSH1 EQU 1AH ;COOK 2 TIME PROTECT
CY_HOUR EQU 1BH ;WEIGHT INPUT
FIRE1RH EQU 1CH ;FIRE 1 REGISTER
FIRE1RL EQU 1DH ;FIRE 1 REGISTER
FIRE2RH EQU 1EH ;FIRE 2 REGISTER
FIRE2RL EQU 1FH ;FIRE 2 REGISTER
FIRE3RH EQU 20H ;FIRE 3 REGISTER
FIRE3RL EQU 21H ;FIRE 3 REGISTER
LOSTR_ZERO EQU 22H ;ZERO PULS WATCH
; EQU 23H ;
OPTIONR_SHAOK EQU 24H ;OPTION SHAO KAO AS KEY
OPTIONRS_SHAOK EQU 25H ;OPTION SHAO KAO AS KEY
OPTIONR_SHAO EQU 26H ;OPTION SHAO KAO
LOOKR_TYPE EQU 27H ;TYPE LOOKING
DELAYRH_TYPE EQU 28H ;LOOKING TYPE DELAY
DELAYRL_TYPE EQU 29H ;LOOKING TYPE DELAY
;---------------EQU 3FH ;END
;*******************************************************
;define macro:
;
;=====================================
fast macro
ORIM B0OSCX,0010b
endm
;======================================
slow macro
ANDIM B0OSCX,1101b
endm
;--------------------------------------
oscxon macro
ORIM B0OSCX,0001b
endm
;--------------------------------------
oscxrc macro
ORIM B0OSCX,1000b
endm
;---------------------------------------
oscx455 macro
ANDIM B0OSCX,0111b
endm
;======================================
;op0 > op1 tHen jump address
;======================================
CJA4 macro B0X ,IY ,ADDR
SBI B0X ,IY
BAZ $+2
BC ADDR
endm
;=====================================
;op0 < op1 tHen jump address
;=====================================
CJB4 macro B0X ,IY ,ADDR
SBI B0X ,IY
BNC ADDR
endm
;=====================================
;op0 <=op1 tHen jump address
;=====================================
CJBE4 macro B0X ,IY ,ADDR
SBI B0X ,IY
BAZ ADDR
BNC ADDR
endm
;====================================
;op0 >= op1 tHen jump address
;====================================
CJAE4 macro B0X ,IY ,ADDR
SBI B0X ,IY
BC ADDR
endm
;=======================================
;op0 == op1 tHen jump address
;=======================================
CJE4 macro B0X ,IY ,ADDR ;Y=BAN
SBI B0X ,IY
BAZ ADDR
endm
;======================================
;op0 != op1 tHen jump address
;======================================
CJNE4 macro B0X ,IY ,ADDR
SBI B0X ,IY
BNZ ADDR
endm
;====================================
INC4 MACRO B0X
ADIM B0X,01H
ENDM
;====================================
DEC4 MACRO B0X
SBIM B0X,01H
ENDM
;====================================
INC8 MACRO B0XH ,B0XL
ADIM B0XL,01H
LDI MACR0,00H
ADCM B0XH,00H
ENDM
;====================================
DEC8 MACRO B0XH ,B0XL
SBIM B0XL,01H
LDI MACR0,00H
SBCM B0XH,00H
ENDM
;====================================
CJE8 MACRO B0XH,B0XL,IYH,IYL,ADDR ;( XH,XL IS BANK0 )
SBI B0XH,IYH
BNZ $+3
SBI B0XL,IYL
BAZ ADDR
ENDM
;===================================
CJNE8 MACRO B0XH,B0XL,IYH,IYL,ADDR ;( XH,XL IS BANK0 )
SBI B0XH,IYH
BNZ ADDR
SBI B0XL,IYL
BNZ ADDR
ENDM
;======================================
ADD8 MACRO B0XH,B0XL,IYH,IYL ;( XH,XL IS BANK0 )
ADIM B0XL,IYL
LDI MACR0,IYH
ADCM B0XH,00H
ENDM
;=========================================
SUB8 MACRO B0XH,B0XL,IYH,IYL ;( XH,XL IS BANK0 )
SBIM B0XL,IYL
LDI MACR0,IYH
SBCM B0XH,00H
ENDM
;==========================================
CJB8 MACRO B0XH,B0XL,IYH,IYL,ADDR ;( XH,XL IS BANK0 )
SBI B0XH,IYH
BNC ADDR
BNZ $+3
SBI B0XL,IYL
BNC ADDR
ENDM
;====================================
BCD2 MACRO XH,HBK,XL,LBK ; (XH,XL=BANK XXH ;BCDRH,BCDRL=BANK 00H )
LDA XH,HBK
STA MACR1,00H
LDA XL,LBK
STA B0BCDRL,00H
CALL BIN_BCD
ENDM
;---------------------------
;BIN_BCD:
; LDI B0BCDRH,00H
;BCD_LOOP:
; LDA MACR1
; BNZ NEXT
; SBI B0BCDRL,0AH
; BNC RETURN
;NEXT:
; SBIM B0BCDRL,0AH
; LDI MACR0,00H
; SBCM MACR1
; ADIM B0BCDRH,01H
; JMP BCD_LOOP
;RETURN:
; RTNI
;-----------------------------------
MSHR MACRO X,BK
LDA X,BK
SHR
STA X,BK
ENDM
;-----------------------------------
MSHRC MACRO X,BK
LDA X,BK
CALL MSHR_CY
STA X,BK
ENDM
;---------------------------------
;MSHR_CY:
; BC $+3
; SHR
; RTNI
; SHR
; STA MACR0,B0
; ORIM MACR0,1000B
; RTNI
;
;-----------------------------------
MSHL MACRO X,BK ;sHift left
LDA X,BK
ADDM X,BK
ENDM
;------------------------------------
MSHLC MACRO X,BK ; sHift left witH carry
LDA X,BK
ADCM X,BK
ENDM
;===============================================================
;mul:x1,x0*y1,y0 = result2,result1,result0
;===============================================================
MUL8 macro x1,x0 ,y1,y0 ,result2,result1,result0
local again, add_l ,mul_ok
again:
sbim y0 ,01H
bc add_l
sbim y1 ,01H
bc add_l
jmp mul_ok
add_l:
endm
;********************************************************
ORG 0000H
JMP START
JMP START ; RTNI
JMP T0_INT ; T0 INT THEN GO TO T0_INT
NOP ; JMP BT_INT
NOP ; RTNI
JMP START
;------------------------------------------
;==============================================
;=========================================================
ORG 000FH
LED_TABLE:
TJMP ;LED display bable (0-9)
;------EFG0 DCBA
RTNW 1100B ,1111B ;0
RTNW 0000B ,0110B ;1
RTNW 1010B ,1011B ;2
RTNW 0010B ,1111B ;3
RTNW 0110B ,0110B ;4
RTNW 0110B ,1101B ;5
RTNW 1110B ,1101B ;6
RTNW 0000B ,0111B ;7
RTNW 1110B ,1111B ;8
RTNW 0110B ,1111B ;9
RTNW 0000B ,0000B ;A NO DISPLAY
;=============================================
;****************************************************************
START:
NOP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -