⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 demo_69p25.asm

📁 sinoweath 69p25 demo test program
💻 ASM
📖 第 1 页 / 共 5 页
字号:
;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 + -