📄 initial.asm
字号:
; PRJ : FAT_SCALE
;MODULE: INITIAL.ASM ;
;INCLUDE INITIAL HARDWARE AND SOFTWARE;
;**************************************;
SYS_INIT: ;
SMB 15 ; SYSTEM INIT
LD EA,#00H ;
LD SP,EA ; SET THE SP TO THE TOP OF THE RAM AREA
LD A,#03H ;
LD PCON,A ; SET CPU CLOCK TO 0.95us AT 4.19M HZ
LD EA,#01011010B ;
LD WDMOD,EA ; DISABLE WATCHDOG TIMER
BITR SCMOD.3 ; ENABLE MAIN OSC
BITS SCMOD.2 ; STOP SUB OSC
BITR SCMOD.0 ; THIS BIT USE TO SELECT CPU'CLOCK, NOW SHOULD CLR IT
;--------------------------------------;
;INITIAL PORT ;
; 0: INPUT 1 : OUTPUT ;
;|-------------------------------------------------------------\
;| PMG1:| P6.3 | P6.2 | P6.1 | P6.0 | P3.3 | P3.2 | P3.1 | P3.0|
;|-------------------------------------------------------------|
;| PMG1: 0 1 1 1 1 1 1 1 |
;|-------------------------------------------------------------/
;|----------------------------------------------------------\
;| PMG2:| P7 | 0 | P5 | P4 | 0 | P2 | 0 | 0 |
;|----------------------------------------------------------|
;| PMG2: 0 0 1 0 0 1 0 0 |
;|----------------------------------------------------------/
; 1: PULL_UP RESISTOR ENABLE ;
; 0: PULL_UP RESISTOR DISABLE ;
;|-----------------------------------------------\
;| PUMOD:| P7 | P6 | P5 | P4 | P3 | P2 | P1 | P0 |
;|-----------------------------------------------|
; 1 0 0 0 0 0 0 0 |
;|-----------------------------------------------/
;--------------------------------------\
;SET PMG1 & PMG2: ;
LD EA,#01111111B ; P6.0/P6.1/P6.2/P3: OUTPUT
LD PMG1,EA ; P3.3 IN/OUT P6.3: INPUT
LD EA,#00100100B ;
LD PMG2,EA ; P4,P7: INPUT. P5,P2 OUTPUT.
;---------------------- ;
;SET PUMD & PNE ;
LD EA,#10000000B ; P7: INTERNAL PULL-UP RESISTOR ENABLE
LD PUMOD,EA ; P6,P5,P4,P3,P2,P1,P0:INTERNAL PULL-UP RESISTOR DISABLE
LD EA,#00000000B ;
LD PNE,EA ; CONFIGURE P4,P5
;--------------------- ;
;SET LCD REGISTER: ;
LD EA,#00000100B ; ENABLE WATCH TIMER,NORMAL SPEED SET IRQW TO 0.5S
LD WMOD,EA ; SELECT A SUB CLOCK AS THE WATCH TIMER CLOCK
LD EA,#00011011B ; SET LMOD (1/3 DUTY, 1/2 BIAS )
LD LMOD,EA ; 1100 1010
LD A,#0001B ;
LD LCON,A ; SET LCD TO NORMAL DISPLAY MODE
;---------------------- ;
;SET BT: ;
LD A,#0111B ;
LD BMOD,A ; BMOD = 0111B (1.95MS)
;---------------------- ;
;SET INT0: ;
LD A,#1010B ; BOTH RISING AND FALLING EDGE DETECTION
LD IMOD0,A ; SELECT SYSTEM CLOCK(Fxx/64) FOR SAMPLING
;---------------------- ;
;SET INT2: ;
LD A,#0010B ; SET FALLING EDGE AT KS2 - KS7
LD IMOD2,A ;
;---------------------- ;
;SET TC0: ;
LD EA,#01101100B ;
LD TMOD0,EA ;
LD EA,#0FFH ;
LD TREF0,EA ; SYSTEM CLICK IS 255/65.5 = 0.39MS
;---------------------- ;
;SET IE ;
; IE2 IEW IET0 IES IE1 IE0 IE4 IEB ;
; 0 1 1 0 0 1 0 1 ;
BITR IE2 ;
BITR IES ;
BITR IE1 ;
BITR IE4 ;
BITS IEW ; FOR LCD DISPLAY
BITS IET0 ; SYSTEM CLICK
BITS IE0 ; EXTERNAL INT0
BITS IEB ; BASIC COUNTER
SMB 0 ;
JPS SYS_INIT_END ;
;**************************************;
;**************************************;
RAM_CLR:SMB 1 ; SMB = 1
LD HL,#00H ; CLR BANK 1: 100H --- 1FFH (255 NIBS)
LD A,#0H ;
RAM_CLR_B1: ;
LD @HL,A ;
INCS HL ;
JR RAM_CLR_B1 ;
SMB 0 ; CLR BANK 0: 020H --- 0FFH (240 NIBBLE)
LD HL,#20H ;
RAM_CLR_B0: ;
LD @HL,A ;
INCS HL ;
JR RAM_CLR_B0 ;
JPS RAM_CLR_END ;
;**************************************;
;**************************************;
; NAME: SOFT_INIT ;
; FUNCTION:INIT SOFTWARE ;
SOFT_INIT: ;
CALL INIT_KB ; INIT KEYBOARD SCAN
SOFT_INIT_1: ;
CALL INIT_DATA_PRO ;
LD A,#(16-3) ;
LD TAPE_ON_CNT,A ;
BITR SYS_CLICK ; INIT MIAN TIMER
BITR FAT_TEST_EN ;
BITR FAT_MODULE_EN ; INIT FAT TEST MODULE
BITR CAL_EN ; INIT CAL MODULE
BITR SET_EN ; INIT SET MODULE
;-------------------- ;
;START ADC & INIT POLE ;
BITS POST_INT_FLAG ;
SMB 15 ;
BITS G_PIN ; G = H START AD
BITR FAT_CONTROL ; P3.1
BITR P5.3 ; !!!!!!!!no use RF RECEIVE MODEN
SMB 0 ;
RET ;
;**************************************;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -