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

📄 hdwinit.asm

📁 日本FAMILY按摩椅W-1用的配套操作器程序。带VFD显示
💻 ASM
字号:

		NAME	HDWINIT
;********************************************************
;*							*
;*		remocon of massage machine		*
;*							*
;*							*
;********************************************************
;	HarDWaer Initialize process			*
;********************************************************
;
;	 UPDATE

;*** CPU TYPE ***
ICE	EQU	0					; 0:FLASH & NORMAL
;;;ICE	EQU	1					; 1:ICE

;*** equ ***
STOP_MODE	EQU	32H				;

;*** PUBLIC & EXTRN ***

	PUBLIC		_hdwinit			;
	PUBLIC		_WDLP				;

	extrn		_start_mem1			;
	extrn       _start_mem2
	extrn		_end_mem			;
    extrn       _G1_g2_init         ;
    extrn       _Timer6_init
    extrn       _Macro_interrupt_init
    extrn       _Sio1_3wire_init
    extrn       _Timer2_init
    extrn      _Delay_200ms
	CSEG
;********************************************************
;	HarDWaer INITialaze PROCESS			*
;********************************************************
_hdwinit:
        MOV	PU3 , #11111111Y
        MOV	PU2 , #00000000Y	
		MOV	P2 ,  #00001000Y			;   SET OK
		MOV	PM2 , #10100000Y		;ONLINE MODIFY/SET OK        
		MOV	P3 ,  #00000000Y			;
		MOV	PM3 , #10000000Y		;

   ; *** CLOCK  SET ***
		MOV	CC , #80h			;SET ENM				
		MOV	STBC , #00h			;CPU CLOCK = fxx
		MOV	OSTS , #00			;
		NOP		
;;d_d_send_data clear		    ;;
		MOVG	TDE , #_start_mem1		;
		MOVG	WHL , #_start_mem2			;
RAM_LOOP1:
		MOV	A , #00H			;
		MOV	[TDE+] , A			;
		CMPW	DE , HL		    ;
		BC	$RAM_LOOP1			;
		
        CALL _G1_g2_init        ;
        CALL _Timer6_init
        CALL _Macro_interrupt_init
        CALL _Sio1_3wire_init
        CALL _Timer2_init;
        EI
        CALL _Delay_200ms;
        DI				;
		MOV	PUO , #01110000Y		;PORT 4 5 6 PULL UP   OK
		MOV	PU0 , #01000000Y		;NO Pull Up/SET OK
;;		MOV	PU2 , #00000000Y		;N0 PULL UP/SET OK
;;		MOV	PU3 , #11111111Y		;PULL UP /SET OK
		MOV	PU7 , #00000000Y		;NO PULL UP /SET OK
		MOV	PU8 , #11111111Y		; PORT 8 PULL UP  SET  OK
		MOV	PU10 , #00001111Y		;P102 Pull Up	 SET OK
		MOV	PU12 , #11111111Y		;SET OK
		
;***  PORT 0 SET OK ***
		MOV	P0 , #00000000Y			;SET OK
		MOV	PM0 , #11001000Y		;
;*** PORT 2 SET OK ***
;;		MOV	P2 , #00000000Y			;   SET OK
;;		MOV	PM2 , #10100000Y		;ONLINE MODIFY/SET OK
;*** PORT 3 SET OK ***
;		MOV	P3 , #00000000Y			;
;		MOV	PM3 , #10000000Y		;
;*** PORT 4 SET OK ***
		MOV	P4 , #00000000Y			;
		MOV	PM4 , #11111111Y		;INPUT
;*** PORT 5 SET OK ***
		MOV	P5 , #00000000Y			;
		MOV	PM5 , #00000000Y		;
;***  PORT 6 SET OK ***
		MOV	P6 , #00000000Y			;
		MOV	PM6 , #00000000Y		;
;*** PORT 7 SET OK ***
		MOV	P7 , #00000000Y			;
		MOV	PM7 , #11111001Y		;
;*** PORT 8  SET OK ***
		MOV	P8 , #00000000Y			; 
		MOV	PM8 , #00000000Y		;
;*** PORT 9 SET OK ***
		MOV	P9 , #00111111Y			;
		MOV	PM9 , #11000000Y		;
;*** PORT 10 SET OK
		MOV	P10 , #00000000Y		;
		MOV	PM10 , #11111111Y		;	
;*** PORT 12 SET OK  ***
		MOV	P12 , #00000000Y		;
		MOV	PM12 , #11111111Y		;
;PORT 13 SET OK ***
		MOV	P13 , #00000000Y		;
		MOV	PM13 , #11111101Y		;SOUND OUT PUT/ D/A

;*** edgi triger set ok **
;*** disable port 0 interrupt ***
		mov	EGP0 , #00000000b		;  
		mov	EGN0 , #00000000b		;

;*** PCL clock out set ***
;		clr1	CKS.4				;pcl no output


;*** MEMORY MANAGEMENT ***
;		MOV	EBTS , #00000001b		;sepalate bus mode
;		MOV	MM , #10101001b			;1MB MODE

;$_IF(ICE)
;*** access wait for ice
;		MOV	PWC1 , #0A8h			;internal memory wait disable
;		MOVW	PWC2 , #0AAAAh			;external memory wait enable
;$ELSE
;*** access wait for flash & cpu
;		MOV	PWC1 , #02h			;WAIT enable
;$ENDIF

;*** ram clear ***
		MOVG	TDE , #_start_mem2		;
		MOVG	WHL , #_end_mem			;
RAM_LOOP:
		MOV	A , #00H			;
		MOV	[TDE+] , A			;

		CMPW	DE , HL		    ;
		BC	$RAM_LOOP			;

		RET


;********************************************************
;	Watch Dog Loop Process				*
;********************************************************
;
;
;
_WDLP:
		MOVW	MK0 , #0FFFFH			;
		MOVW	MK1 , #0FFFFH
		MOV	PUO , #01110000Y		;PORT 4 5 6 PULL UP   OK
		MOV	PU0 , #00000000Y		;NO Pull Up/SET OK
		MOV	PU2 , #00000000Y		;N0 PULL UP/SET OK
		MOV	PU3 , #11111111Y		;PULL UP /SET OK
		MOV	PU7 , #00000000Y		;NO PULL UP /SET OK
		MOV	PU8 , #11111111Y		; PORT 8 PULL UP  SET  OK
		MOV	PU10 , #00001111Y		;P102 Pull Up	 SET OK
		MOV	PU12 , #11111111Y		;SET OK
		
;***  PORT 0 SET OK ***
		MOV	P0 , #00000000Y			;SET OK
		MOV	PM0 , #10001000Y		;
;*** PORT 2 SET OK ***
		MOV	P2 , #00000000Y			;   SET OK
		MOV	PM2 , #10100000Y		;ONLINE MODIFY/SET OK
;*** PORT 3 SET OK ***
		MOV	P3 , #00000000Y			;
		MOV	PM3 , #10000000Y		;
;*** PORT 4 SET OK ***
		MOV	P4 , #00000000Y			;
		MOV	PM4 , #11111111Y		;INPUT
;*** PORT 5 SET OK ***
		MOV	P5 , #00000000Y			;
		MOV	PM5 , #00000000Y		;
;***  PORT 6 SET OK ***
		MOV	P6 , #00000000Y			;
		MOV	PM6 , #00000000Y		;
;*** PORT 7 SET OK ***
		MOV	P7 , #00000000Y			;
		MOV	PM7 , #11111001Y		;
;*** PORT 8  SET OK ***
		MOV	P8 , #00000000Y			; 
		MOV	PM8 , #00000000Y		;
;*** PORT 9 SET OK ***
		MOV	P9 , #00111111Y			;
		MOV	PM9 , #11000000Y		;
;*** PORT 10 SET OK
		MOV	P10 , #00000000Y		;
		MOV	PM10 , #11111111Y		;	
;*** PORT 12 SET OK  ***
		MOV	P12 , #00000000Y		;
		MOV	PM12 , #11111111Y		;
;PORT 13 SET OK ***
		MOV	P13 , #00000000Y		;
		MOV	PM13 , #11111101Y		;SOUND OUT PUT/ D/A
; *** CLOCK  SET ***
		MOV	CC , #80h			;SET ENMP
		NOP					;
		NOP					;
		MOV	STBC , #00h			;CPU CLOCK = fxx
		NOP					;
		NOP					;
		MOV	OSTS , #00			;
		NOP					;
		NOP					;
;*** edgi triger set ok **
;*** disable port 0 interrupt ***
		mov	EGP0 , #00000000b		;  
		mov	EGN0 , #00000000b		;

		
;*** STOP MODE ***
		MOV	STBC , #STOP_MODE		; STOP MODE

		NOP					;
		NOP					;
		NOP					;

		BR	_WDLP				;


END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -