📄 ice_259a.dt
字号:
IOW 0X0B
CALL DELAY
JBS R7,0
BS R5_DOWN,7
MOV A,@0XFF
IOW 0X0B
IOW 0X0D
PAGE1
JMP SECOND
;************************************************************************
DELAY:
MOV A,@0X30
MOV DELAYTEMP,A
DJZ DELAYTEMP
JMP $-1
RET
EOP
;###########################################################################
SECOND:
ORG 400H
BS R3,5
BC R3,6 ;select i/o page0
CLR RF_FLAG
MOV A,@0X10
MOV COUNT,A
CLR DATA_1
CLR DATA_2
CLR DATA_3
ADC_START:
DISI
NOP
NOP
BC R3,6
MOV A,@0XFF
IOW 0X05
IOW 0X0B
MOV A,@0X0F
IOW 0X0D ;p50 pull high
MOV A,@0X01
MOV AISR,A
MOV A,@0X08 ;select p50
MOV ADCON,A
CALL DELAY1
BS ADCON,ADRUN ;start A/D conversion
WAIT_AD:
JBC ADCON,ADRUN
JMP WAIT_AD
MOV A,@0X00
MOV RE,A ;clean A/D interrupter flag
MOV A,RD
MOV DATA_A,A
MOV A,RC
MOV DATA_B,A
CALL ADDDATA
DJZ COUNT
JMP ADC_START
MOV A,@0X10
MOV COUNT,A
MOV A,@0XE0 ;test the A/D result
SUB A,DATA_2
JBS STATUS,C
JMP P51_AD_HIGH
CLR DATA_1
CLR DATA_2
CLR DATA_3
P50_AD_LOW:
BC R3,6
MOV A,@0XFF
IOW 0X0D ;disable p50 pull high
MOV A,@0X0F
IOW 0X0B ;enable p50 pull down
MOV A,@0X01
MOV AISR,A
MOV A,@0X08 ;select p50
MOV ADCON,A
CALL DELAY1
BS ADCON,ADRUN
WAIT_AD1:
JBC ADCON,ADRUN
JMP WAIT_AD1
MOV A,@0X00
MOV RE,A
MOV A,RD
MOV DATA_A,A
MOV A,RC
MOV DATA_B,A
CALL ADDDATA
DJZ COUNT
JMP P50_AD_LOW
MOV A,@0X10
MOV COUNT,A
MOV A,@0X10
SUB A,DATA_2
JBS STATUS,C
BS R5_AD,0
P51_AD_HIGH:
CLR DATA_1
CLR DATA_2
CLR DATA_3
P51_AD: ;A/D interrupter
BC R3,6
MOV A,@0X00
MOV AISR,A
MOV A,@0XFF
IOW 0X0B
MOV A,@0X0F
IOW 0X0D
MOV A,@0X02
MOV AISR,A
MOV A,@0X09
MOV ADCON,A
MOV A,@0X2F
IOW 0X0E ;enable A/D interrupter
CALL DELAY1
ENI
BS ADCON,ADRUN
JBC ADCON,ADRUN
JMP $-1
DISI
NOP
MOV A,RD
MOV DATA_A,A
MOV A,RC
MOV DATA_B,A
CALL ADDDATA
DJZ COUNT
JMP P51_AD
MOV A,@0X10
MOV COUNT,A
MOV A,@0XE0
SUB A,DATA_2
JBS STATUS,C
JMP P52_AD_HIGH
CLR DATA_1
CLR DATA_2
CLR DATA_3
P51_AD_LOW:
BC R3,6
MOV A,@0X00
MOV AISR,A
MOV A,@0XFF
IOW 0X0D
MOV A,@0X0F
IOW 0X0B
MOV A,@0X02
MOV AISR,A
MOV A,@0X09
MOV ADCON,A
MOV A,@0X2F
IOW 0X0E
CALL DELAY1
ENI
BS ADCON,ADRUN
JBC ADCON,ADRUN
JMP $-1
DISI
NOP
MOV A,RD
MOV DATA_A,A
MOV A,RC
MOV DATA_B,A
CALL ADDDATA
DJZ COUNT
JMP P51_AD_LOW
MOV A,@0X10
MOV COUNT,A
MOV A,@0X10
SUB A,DATA_2
JBS STATUS,C
BS R5_AD,1
P52_AD_HIGH:
CLR DATA_1
CLR DATA_2
CLR DATA_3
P52_AD: ;A/D wake up from sleep
BC R3,6
MOV A,@0X00
MOV AISR,A
MOV A,@0XFF
IOW 0X0B
MOV A,@0X0F
IOW 0X0D
MOV A,@0X04
MOV AISR,A
MOV A,@0X0A
MOV ADCON,A
MOV A,@0X08 ;enable A/D wake up
MOV RE,A
WDTC
MOV A,@0X0F
IOW 0X0E ;disable WDT
CALL DELAY1
DISI
BS ADCON,ADRUN
SLEP
NOP
NOP
DISI
NOP
MOV A,RD
MOV DATA_A,A
MOV A,RC
MOV DATA_B,A
CALL ADDDATA
DJZ COUNT
JMP P52_AD
MOV A,@0X10
MOV COUNT,A
MOV A,@0XE0
SUB A,DATA_2
JBS STATUS,C
JMP P53_AD_HIGH
CLR DATA_1
CLR DATA_2
CLR DATA_3
P52_AD_LOW:
BC R3,6
MOV A,@0X00
MOV AISR,A
MOV A,@0XFF
IOW 0X0D
MOV A,@0X0F
IOW 0X0B
MOV A,@0X04
MOV AISR,A
MOV A,@0X0A
MOV ADCON,A
MOV A,@0X08
MOV RE,A
WDTC
MOV A,@0X0F
IOW 0X0E ;disable WDT
CALL DELAY1
DISI
BS ADCON,ADRUN
SLEP
NOP
NOP
DISI
MOV A,RD
MOV DATA_A,A
MOV A,RC
MOV DATA_B,A
CALL ADDDATA
DJZ COUNT
JMP P52_AD_LOW
MOV A,@0X10
MOV COUNT,A
MOV A,@0X10
SUB A,DATA_2
JBS STATUS,C
BS R5_AD,2
P53_AD_HIGH:
CLR DATA_1
CLR DATA_2
CLR DATA_3
P53_AD: ;A/D wake up from sleep and occur interrupter
BC R3,6
MOV A,@0X00
MOV AISR,A
MOV A,@0XFF
IOW 0X0B
MOV A,@0X0F
IOW 0X0D
MOV A,@0X08
MOV AISR,A
MOV A,@0X0B
MOV ADCON,A
MOV A,@0X08
MOV RE,A
MOV A,@0X2F
IOW 0X0E
WDTC
MOV A,@0X0F
IOW 0X0E ;disable WDT
CALL DELAY1
ENI
BS ADCON,ADRUN
SLEP
NOP
NOP
DISI
NOP
MOV A,RD
MOV DATA_A,A
MOV A,RC
MOV DATA_B,A
CALL ADDDATA
DJZ COUNT
JMP P53_AD
MOV A,@0X10
MOV COUNT,A
MOV A,@0XE0
SUB A,DATA_2
JBS STATUS,C
JMP PWM_START
CLR DATA_1
CLR DATA_2
CLR DATA_3
P53_AD_LOW:
BC R3,6
MOV A,@0X00
MOV AISR,A
MOV A,@0XFF
IOW 0X0D
MOV A,@0X0F
IOW 0X0B
MOV A,@0X08
MOV AISR,A
MOV A,@0X0B
MOV ADCON,A
MOV A,@0X08
MOV RE,A
MOV A,@0X2F
IOW 0X0E
WDTC
MOV A,@0X0F
IOW 0X0E ;disable WDT
CALL DELAY1
ENI
BS ADCON,ADRUN
SLEP
NOP
NOP
DISI
NOP
MOV A,RD
MOV DATA_A,A
MOV A,RC
MOV DATA_B,A
CALL ADDDATA
DJZ COUNT
JMP P53_AD_LOW
MOV A,@0X10
MOV COUNT,A
MOV A,@0X10
SUB A,DATA_2
JBS STATUS,C
BS R5_AD,3
;**********************************************************************************
PWM_START:
BC R3,6
MOV A,@0X00
MOV AISR,A
MOV A,@0XFF
IOW 0X0D
IOW 0X0B
BS R3,6 ;select i/o page1
MOV A,@0XFA
IOW 0X08
IOW 0X09
IOW 0X0A
MOV A,@0XCA ;high low register 1:32
IOW 0X0B
BC R3,6 ;select i/o page0
MOV A,@0X7F
IOW 0X06
MOV A,@0X00
IOW 0X09 ;enable TCCC
MOV A,@0X09
IOW 0X0A ;PWM TCCC 1:1
MOV A,@0X80 ;enable LPWTIE
IOW 0X0F
ENI
JBS RF_FLAG,7
JMP $-1
DISI
NOP
NOP
NOP
BC R3,6
MOV A,@0X40
IOW 0X0F ;enable HPWTIE
ENI
JBS RF_FLAG,6
JMP $-1
DISI
NOP
NOP
NOP
;**************************************************************************
EXT_INT:
BC R3,6
MOV A,@0X4F ;enable /INT
IOW 0X0E
MOV A,@0X04
IOW 0X0F
ENI
JBS RF_FLAG,2
JMP $-1
DISI
CLOSE_PWM:
BC R3,6
MOV A,@0X00
IOW 0X09 ;enable TCCC
MOV A,@0X00
IOW 0X0A ;PWM TCCC 1:1
NOP
NOP
;***********************************************************************
TCC_START:
BC R3,6
MOV A,@0X06
MOV TCC,A
MOV A,@0X09
CONTW
MOV A,@0X01
IOW 0X0F
ENI
JBS RF_FLAG,0
JMP $-1
NOP
DISI
NOP
NOP
;****************************************************************************
TCCA_START:
BS R3,6 ;I/O page1
MOV A,@0X06
IOW 0X05
BC R3,6 ;I/O page0
MOV A,@0X04
IOW 0X08 ;enable TCCA
MOV A,@0X08
IOW 0X0F ;enable TCCA interrupter
ENI
JBS RF_FLAG,3
JMP $-1
DISI
NOP
NOP
;******************************************************************************
TCCB_START:
MOV A,@0X40
IOW 0X09 ;enable TCCB disable TCCBH
MOV A,@0X10
IOW 0X0F
BS R3,6 ;I/O page1
MOV A,@0X06
IOW 0X06
IOW 0X07
ENI
JBS RF_FLAG,4
JMP $-1
DISI
NOP
NOP
NOP
PORT5_START:
BC R3,6
MOV A,@0XFF
IOW 0X0B
MOV A,@0XDF
IOW 0X0D
CALL DELAY1
MOV A,@0X0F
IOW 0X0E ;disable WDT
MOV PORT5,PORT5
MOV A,@0X02
MOV RE,A
MOV A,@0X02
IOW 0X0F
ENI
SLEP
NOP
DISI
NOP
NOP
PAGE1
JMP OUT_TEST
;*****************************************************************************
DELAY1:
MOV A,@0X30
MOV DELAYTEMP,A
DJZ DELAYTEMP
JMP $-1
RET
;*****************************************************************************
ADDDATA:
MOV A,DATA_1
MOV MATH1,A
MOV A,DATA_2
MOV MATH2,A
MOV A,DATA_3
MOV MATH3,A
MOV A,DATA_A
ADD MATH1,A
JBS STATUS,C
JMP ADDDATA_B
MOV A,@0X01
ADD MATH2,A
JBC STATUS,C
INC MATH3
ADDDATA_B:
MOV A,DATA_B
ADD MATH2,A
JBC STATUS,C
INC MATH3
MOV A,MATH1
MOV DATA_1,A
MOV A,MATH2
MOV DATA_2,A
MOV A,MATH3
MOV DATA_3,A
RET
OUT_TEST:
NOP
NOP
NOP
NOP
DISPLAY:
NOP
NOP
NOP
JMP DISPLAY
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -