📄 a_08_07.dt
字号:
MOV A,@0X09
IOW P6CR
MOV A,@0X09
MOV PORT6,A
MOV A,@0X0F
MOV PORT5,A
IOW P5CR
MOV A,@0XFF
IOW 0X0B
IOW 0X0D
MOV A,@0X00
IOW 0X0C
MOV 0X0F,A
IOW 0X0F
; MOV A,@0Xff
; IOW PHCR
MOV A,@0X55
XOR A,POWERDOWN1
JBS STATUS,Z
JMP CLR_RAM
MOV A,@0XAA
XOR A,POWERDOWN2
JBS STATUS,Z
JMP CLR_RAM
MOV A,@0X18
AND A,STATUS
XOR A,@0X18
JBS STATUS,Z
JMP MAIN
;*************************CLR RAM **************************
CLR_RAM:
MOV A,@0X1F
MOV TEMP,A
MOV A,@0X11
MOV RSR,A
CLR_RAM0:
CLRA
MOV IAR,A
INC RSR
DJZ TEMP
JMP CLR_RAM0
CLR TEMP
CLR 0X2F
;*************************************************************
MAIN:
MOV A,@0X55
MOV POWERDOWN1,A
MOV A,@0XAA
MOV POWERDOWN2,A
MOV A,@0X10
MOV SLEEPTIME,a
MOV A,@0X01
IOW IMR
MOV A,@0X00
MOV ISR,A
MOV A,@0X80
IOW IOCE
MOV A,@0X06 ;PRESCALER 256×128×2/4000=16ms
CONTW
ENI
LOOP:
WDTC
MOV A,MODE
ADD PC,A
JMP MODE0
JMP MODE1
JMP MODE2
JMP MODE3
JMP MODE4
JMP MODE5
JMP MODE6
MODE0:
MOV A,@0X09
MOV PORT6,A
mov SLEEPTIME,sleeptime
jbs status,z
jmp loop
DISI
mov a,@0x10
mov sleeptime,a
sleepmode:
WDTC
CLR 0X01
MOV a, @0x0E
CONTW
MOV A,@0x00 ;WDT DISABLE
IOW IOCE
MOV PORT6,PORT6 ;READ P6
MOV A,@0x03 ;ENABLE INTERRUPT BIT
IOW IMR
DISI
SLEP
DISI
NOP
NOP
NOP
NOP
NOP
NOP
DISI
MOV A,@0X00
MOV 0X0F,A
IOW 0X0F
WDTC
MOV A,@0X80
IOW IOCE
MOV A,@0X06 ;PRESCALER (256-6)/(1:2)/2=0.500MS
CONTW
CLR 0X01
MOV A,@0X01
IOW 0X0F
NOP
ENI
nop
JMP LOOP
MODE1:
MOV A,@0X1F
MOV PORT6,A
MOV A,@0X1E ;3.0
MOV DELAYTIME,A
CALL DELAY
MOV A,@0X1B
MOV PORT6,A
MOV A,@0X50 ;8.0
MOV DELAYTIME,A
CALL DELAY
JMP LOOP
MODE2:
MOV A,@0X3F
MOV PORT6,A
MOV A,@0X37 ;5.5
MOV DELAYTIME,A
CALL DELAY
MOV A,@0X3B
MOV PORT6,A
MOV A,@0X37 ;5.5
MOV DELAYTIME,A
CALL DELAY
JMP LOOP
MODE3:
MOV A,@0X2F
MOV PORT6,A
MOV A,@0X50 ;8.0
MOV DELAYTIME,A
CALL DELAY
WDTC
MOV A,@0X2B
MOV PORT6,A
MOV A,@0X1E ;3.0
MOV DELAYTIME,A
CALL DELAY
JMP LOOP
MODE4:
MOV A,@0X0B
MOV TEMP3,A
;*******************************************************************************
MODE4_1:
MOV A,@0X2F
MOV PORT6,A
MOV A,@0X4D ;76
MOV DELAYTIME,A
CALL DELAY
MOV A,@0X3B
MOV PORT6,A
MOV A,@0X10 ;16
MOV DELAYTIME,A
CALL DELAY
DJZ TEMP3
JMP MODE4_1
MOV A,@0X08
MOV TEMP3,A
MODE4_2:
MOV A,@0XE7
MOV DELAYTIME,A
CALL DELAY
DJZ TEMP3
JMP MODE4_2
JMP LOOP
MODE5:
MOV A,MODE
MOV MODE_BUF,A
MOV A,@0X02
MOV TEMP4,A
MODE5_30:
MOV A,@0X11
MOV TEMP3,A
MODE5_1:
MOV A,MODE
XOR A,MODE_BUF
JBS STATUS,Z
JMP LOOP
MOV A,@0X3F
MOV PORT6,A
MOV A,@0X67 ;11 校准
MOV DELAYTIME,A
CALL DELAY
MOV A,@0X0B
MOV PORT6,A
MOV A,@0X09 ;1
MOV DELAYTIME,A
CALL DELAY
DJZ TEMP3
JMP MODE5_1
MOV A,@0X0A
MOV TEMP3,A
MODE5_10:
MOV A,@0XC0
MOV DELAYTIME,A
CALL DELAY
DJZ TEMP3
JMP MODE5_10
DJZ TEMP4
JMP MODE5_30
;***************************************************************************
MOV A,@0X55
MOV TEMP3,A
MODE5_2:
MOV A,MODE
XOR A,MODE_BUF
JBS STATUS,Z
JMP LOOP
MOV A,@0X2F
MOV PORT6,A
MOV A,@0X46 ;76
MOV DELAYTIME,A
CALL DELAY
MOV A,@0X0B
MOV PORT6,A
MOV A,@0X2B ;16
MOV DELAYTIME,A
CALL DELAY
DJZ TEMP3
JMP MODE5_2
MOV A,@0X0A
MOV TEMP3,A
MODE5_20:
MOV A,@0XC0
MOV DELAYTIME,A
CALL DELAY
DJZ TEMP3
JMP MODE5_20
JMP LOOP
;*************************************************************
MODE6:
MOV A,@0X32 ;50周期
MOV TEMP3,A
MOV A,@0X00
MOV DELAYON,A
MOV A,@0X4D ;80MS校准
MOV DELAYOFF,A
MOV A,MODE
MOV MODE_BUF,A
MODE6_1:
MOV A,MODE
XOR A,MODE_BUF
JBS STATUS,Z
JMP LOOP
MOV A,@0X2F
MOV PORT6,A
INC DELAYON
MOV A,DELAYON ;76
MOV DELAYTIME,A
CALL DELAY1MS
MOV A,@0X1B
MOV PORT6,A
DEC DELAYOFF ;16
MOV A,DELAYOFF
MOV DELAYTIME,A
CALL DELAY1MS
DJZ TEMP3
JMP MODE6_1
JMP LOOP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -