📄 hdwinit1.bak
字号:
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_mem ;
extrn _end_mem ;
extrn _Delay_200ms ;
extrn _Timer2_init
CSEG
$EJECT
_VCTADR1 CSEG AT 2H
;********************************************************
; VECTOR ADDRESS *
;********************************************************
;;;;;;;; DW _ALL_INIT ;00H
DW _ALL_INIT ;02H NMI
;;; DW _ALL_INIT ;04H
DW _WDLP ;04H NMI WDT
DW _ALL_INIT ;06H INTWDT MASKABLE
DW _ALL_INIT ;08H INTP0
DW _ALL_INIT ;0AH INTP1
DW _ALL_INIT ;0CH INTP2
DW _ALL_INIT ;0EH INTP3
;;;;;;;; DW _Hint_cts ;10H INTP4
DW _ALL_INIT ;10H INTP4
DW _ALL_INIT ;12H INTP5
DW _ALL_INIT ;14H INTP6
DW _ALL_INIT ;16H INTIIC0 / INTCSI0
DW _ALL_INIT ;18H INTSER1(SIRIAL RECEIVE ERROR)
DW _ALL_INIT ;1AH INTSR1 /INTCSI1
;;; DW _Hsout ;1CH INTST1(SIRIAL SEND)
_VCTADR2 CSEG AT 1EH
DW _ALL_INIT ;1EH INTSER2(SILIAL RECEIVE ERROR)
;;; DW Rsin ;20H INTSR2(SILIAL RECEIVE ERROR)OK
;;; DW Rsout ;22H INTST2(SILIAL SEND)OK
_VCTADR3 CSEG AT 24H
DW _ALL_INIT ;24H INTTM3(CLOCK TIMER)
;;; DW _ALL_INIT ;26H INTTM00
;;; DW _ALL_INIT ;28H INTTM01
_VCTADR4 CSEG AT 2AH
DW _ALL_INIT ;2AH ;INTTM1
DW _ALL_INIT ;2CH ;INTTM2
DW _ALL_INIT ;2EH ;INTAD
;;; DW _ALL_INIT ;30H ;INTTM5
;;; DW _ALL_INIT ;32H ;INTTM6
_VCTADR5 CSEG AT 34H
DW _ALL_INIT ;34H ;INTTM7
DW _ALL_INIT ;36H ;INTTM8
DW _ALL_INIT ;38H ;INTWT
DW _ALL_INIT ;3AH ;INTKR
DW _ALL_INIT ;3CH ;INTKR
DW _ALL_INIT ;3EH ;INTKR
_ALL_INIT:
NOP
NOP
RETI ;
;********************************************************
; HarDWaer INITialaze PROCESS *
;********************************************************
_hdwinit:
; CALL _Timer2_init ;
; CALL _Delay_200ms ;
MOV PU3 , #11111111Y
MOV PU2 , #00000000Y
MOV P2 , #00001000Y ; SET OK
MOV PM2 , #10100000Y ;ONLINE MODIFY/SET OK
MOV P3 , #00000000Y ;
MOV PM3 , #10000000Y ;
;
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 , #10000011Y ;
;*** 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 ;
;*** PCL clock out set ***
; clr1 CKS.4 ;pcl no output
;*** MEMORY MANAGEMENT ***
MOV EBTS , #00000001b ;sepalate bus mode
MOV MM , #00001001b ;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_mem ;
MOVG WHL , #_end_mem ;
RAM_LOOP:
MOV A , #00H ;
MOV [TDE+] , A ;
CMPW DE , HL ;
BC $RAM_LOOP ;
NOP
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 + -