📄 xwfab.asm
字号:
;************************************************************
;compare by reverence quantities
;UIFAI:III ;UUIIFAI:II
;xz one time for all
;江西12台F-24
;1象限有功功率为负P<0
;************************************************************
CS1 EQU P1.0 ;normal "1"
CS2 EQU P1.1 ;normal "1"
CS3 EQU P1.2 ;normal "1"
DIN EQU P1.3 ;NORMAL "0"
DOUT EQU P1.4 ;NORMAL "1"
SCLK EQU P1.5 ;NORMAL "0"
SCL EQU P1.6 ;NORMAL "1"
SDA EQU P1.7 ;NORMAL "1"
KEY EQU P3.2
STR EQU P3.3;
DAT EQU P3.4;
CLK EQU P3.5;
;-------------------------------------------------------
quantity1 DATA 36
quantity2 DATA 28
quantity3 DATA 43
;-------------------------------------------------------
;00-07Hnormal,15h-17hused;08-0fH 10h-14H 18h-1fh mixtureddatbuf0
;-------------------------------------------------------
bit_gsui bit (20h-20h)*8+0
bit_gsuu bit (20h-20h)*8+1
bit_gsii bit (20h-20h)*8+2
bit_key bit (20h-20h)*8+3
bit_flashjz bit (20h-20h)*8+4
bit_time1s bit (20h-20h)*8+5
BIT_ZERO bit (20h-20h)*8+6
bit_xz bit (20h-20h)*8+7
bit_fa bit (2Ah-20h)*8+0
bit_led bit (2Ah-20h)*8+1
bit_sy33 bit (2Ah-20h)*8+2;2BH
;------------
bit_xz01 bit (21h-20h)*8+1
bit_xz02 bit (21h-20h)*8+2
bit_xz03 bit (21h-20h)*8+3
bit_xz04 bit (21h-20h)*8+4
bit_xz05 bit (21h-20h)*8+5
bit_xz06 bit (21h-20h)*8+6
bit_xz07 bit (21h-20h)*8+7
bit_xz08 bit (22h-20h)*8+0
bit_xz09 bit (22h-20h)*8+1
bit_xz0a bit (22h-20h)*8+2
bit_xz0b bit (22h-20h)*8+3
bit_xz0c bit (22h-20h)*8+4
bit_xz0d bit (22h-20h)*8+5
bit_xz0e bit (22h-20h)*8+6
bit_xz0f bit (22h-20h)*8+7
bit_xz10 bit (23h-20h)*8+0
bit_xz11 bit (23h-20h)*8+1
bit_xz12 bit (23h-20h)*8+2
bit_xz13 bit (23h-20h)*8+3
bit_xz14 bit (23h-20h)*8+4
bit_xz15 bit (23h-20h)*8+5
bit_xz16 bit (23h-20h)*8+6
bit_xz17 bit (23h-20h)*8+7
bit_xz18 bit (24h-20h)*8+0
bit_xz19 bit (24h-20h)*8+1
bit_xz1a bit (24h-20h)*8+2
bit_xz1b bit (24h-20h)*8+3
bit_xz1c bit (24h-20h)*8+4
bit_xz1d bit (24h-20h)*8+5
bit_xz1e bit (24h-20h)*8+6
bit_xz1f bit (24h-20h)*8+7
bit_xz20 bit (25h-20h)*8+0
bit_xz21 bit (25h-20h)*8+1
;bit_xz22 bit (25h-20h)*8+2
;bit_xz23 bit (25h-20h)*8+3
;bit_xz24 bit (25h-20h)*8+4
;bit_xz25 bit (25h-20h)*8+5
bit_xz26 bit (25h-20h)*8+6
bit_xz27 bit (25h-20h)*8+7
bit_xz28 bit (26h-20h)*8+0
bit_xz29 bit (26h-20h)*8+1
bit_xz2a bit (26h-20h)*8+2
;bit_xz2b bit (26h-20h)*8+3
;bit_xz2c bit (26h-20h)*8+4
;bit_xz2d bit (26h-20h)*8+5
;bit_xz2e bit (26h-20h)*8+6
time2 EQU 2cH
time3 EQU 2DH
KEY_ARRAY EQU 2EH
SPI_ARRAY equ 2fh
;----------------------
;30H-4FH CALCULATEFAI
;3FH-4FH GS
;----------------------
SPI_TMP EQU 50H
SPI_TMPGS EQU SPI_TMP+3
SPI_ORDERR EQU SPI_TMPGS+5
U11 EQU SPI_ORDERR+1
DELBUF0 EQU U11+1
DELBUF1 EQU DELBUF0+1
FA_END_PC EQU DELBUF1+1
FA_HEAD_PC EQU FA_END_PC+1
SO_HEAD_PC EQU FA_HEAD_PC+1
SO_END_PC EQU SO_HEAD_PC+1
SPICHGS EQU SO_END_PC+1
TIME1 EQU SPICHGS+1
KEYON EQU TIME1+1
KEYONT EQU KEYON+1
TIMEK EQU KEYONT+1
switch_c equ TIMEK+1
switch_cs equ switch_c+1
PAGE0 EQU switch_cs+1
ddataS equ PAGE0+1;68H-6BH
DAT_BUF0 EQU 6CH;
DAT_BUF1 EQU 6DH;
DAT_BUF2 EQU 6EH;
;----------------------
;RAM 0000-FFFFH 64K
BOXAM_UI EQU 0000H;
BOXAM_UU EQU BOXAM_UI+quantity1*3
BOXAM_II EQU BOXAM_UU+quantity1*3
ROOMUI_PC EQU 800H;BOXAM_II+quantity1*3
ROOMUU_PC EQU ROOMUI_PC+quantity2*5
ROOMII_PC EQU ROOMUU_PC+quantity2*5
SO_BUF_PC EQU 0A00H;ROOMII_PC+quantity2*5
FA_BUF_PC EQU SO_BUF_PC+100H
;ROOMUI_PC EQU FA_BUF_PC+200H
ROOMFAI_PC EQU 0E00H
BOXKEY EQU 0F00H
;----------------------
;ram24c04 512bytes firstallarezero
dtxzui equ 0H
dtxzuu equ 90h;
dtxzii equ 120h;
dtxzfai equ 1b0h;
;***************************
ORG 0000H
LJMP STAR
ORG 000BH
LJMP T0_INT
ORG 001BH
RETI
ORG 0023H
LJMP SERI_PC
;-------------------------
ORG 0100H
STAR: MOV SP,#6FH
MOV R0,#01H
CLR A
CLRAM: MOV @R0,A
INC R0
CJNE R0,#6EH,CLRAM
LCALL SPEAKER
MOV R2,#08H
MOV R3,#00H
MOV DPTR,#0
CLRXM: MOVX @DPTR,A
INC DPTR
DJNZ R3,CLRXM
DJNZ R2,CLRXM
MOV R0,#7FH
CLRAM2: CLR A
MOV @R0,A
INC R0
CJNE R0,#0FFH,CLRAM2
LCALL INITILY
LCALL SPI_RST
MOV SWITCH_CS,#0
LCALL SET_HFConst
LCALL SET_LFConst
MOV SWITCH_CS,#1
LCALL SET_HFConst
LCALL SET_LFConst
MOV SWITCH_CS,#2
LCALL SET_HFConst
LCALL SET_LFConst
;LCALL ORDER_RST7028
SETB EA
;----------------
MAIN: LCALL CHECKJZ
LCALL SIGHTING
LCALL PC_COM
LCALL HOST_READ
LCALL CHECK_UI
LCALL WATCHDOG
SJMP MAIN
;***************************
INITILY:MOV FA_END_PC,#0
MOV FA_HEAD_PC,FA_END_PC
MOV SO_HEAD_PC,#0
MOV SO_END_PC,SO_HEAD_PC
; MOV KEYONT,#0
; MOV KEYON,#0FFH
MOV KEY_ARRAY,#06
MOV SPI_ARRAY,#0
MOV P1,#0FFH
CLR SCLK
CLR DIN
clr DAT
clr STR
SETB CLK
SETB KEY
clr bit_fa
clr bit_sy33;默认34
MOV U11,#3FH
MOV A,U11
LCALL SERVE_U11
MOV SCON,#050H
MOV TMOD,#21H
MOV TH1,#0E8H ;1200
MOV TL1,#0E8H
MOV TL0,#0BFH;0.04s
MOV TH0,#60H
SETB ES
SETB TR1
CLR ET1
SETB TR0
SETB ET0
;SETB PS
RET
;******************************
;PROGRAM SPI
;******************************
HOST_WR_RST:
CLR CS1
MOV A,#0D3H;RST
LCALL READ_SPIXX
SETB CS1
CLR CS2
MOV A,#0D3H;RST
LCALL READ_SPIXX
SETB CS2
CLR CS3
MOV A,#0D3H;RST
LCALL READ_SPIXX
SETB CS3
RET
;==============================
HOST_READ: MOV A,SPI_ARRAY
MOV B,#quantity1
DIV AB
PUSH B
OST_READ0:MOV B,#03H
MUL AB
MOV DPTR,#OST_READL
JMP @A+DPTR
OST_READL:LJMP READ_UI
LJMP READ_UU
LJMP READ_II
;---------------------
READ_UI:SETB BIT_GSUI
POP B;0--35
MOV DPTR,#TABR_7028
MOV A,DPL
ADD A,B
MOV DPL,A
MOV A,DPH
ADDC A,#0
MOV DPH,A
CLR A
MOVC A,@A+DPTR
MOV SPI_ORDERR,A
CLR CS1
LCALL READ_SPIXX
SETB CS1
LCALL HOST_STOR
LCALL WATCHDOG
LCALL EXCHANGGS;
LCALL TURNBACK
RET
;---------------------
READ_UU:SETB BIT_GSUU
POP B;0--35
MOV DPTR,#TABR_7028
MOV A,DPL
ADD A,B
MOV DPL,A
MOV A,DPH
ADDC A,#0
MOV DPH,A
CLR A
MOVC A,@A+DPTR
MOV SPI_ORDERR,A
CLR CS2
LCALL READ_SPIXX
SETB CS2
LCALL HOST_STOR
LCALL WATCHDOG
LCALL EXCHANGGS
LCALL TURNBACK
RET
;---------------------
READ_II:SETB BIT_GSII
POP B;0--35
MOV DPTR,#TABR_7028
MOV A,DPL
ADD A,B
MOV DPL,A
MOV A,DPH
ADDC A,#0
MOV DPH,A
CLR A
MOVC A,@A+DPTR
MOV SPI_ORDERR,A
CLR CS3
LCALL READ_SPIXX
SETB CS3
LCALL HOST_STOR
LCALL WATCHDOG
LCALL EXCHANGGS
LCALL TURNBACK
RET
CAL_TABFAI:DB 13H,14H,15H,16H,37H,38H,39H,5BH,5CH,5DH
TAB_JZ: DB 20h,21h,1eh,02h,03h,04h,05h,06h,07h,08h,09h,0ah,0bh,0ch,0dh,0fh,10h,
TAB_FAI:DB 11h,12h,13h,14h,15h,16h,17h,18h,19h,1ah,1fh,1bh,1ch,1dh,26h,27h,28h,
TABR_7028:DB 01H,02H,03H,04H,09H,0AH,0BH,0CH,0DH,0EH,0FH,10H,
TAB_70280:DB 11H,12H,13H,14H,15H,16H,17H,18H,19H,1AH,1BH,1CH,
TAB_70281:DB 1EH,1FH,20H,21H,2CH,2DH,2EH,30H,31H,32H,33H,34H,
TABCALGS_7028:DB 00H,00H,00H,01H,00H,00H,00H,01H,
DB 02H,02H,02H,02H,02H,02H,02H,
DB 03H,03H,03H,03H,04H,04H,04H,04H,
DB 05H,06H,06H,06H,06H,
;---------------------
HOST_STOR:
MOV DPTR,#BOXAM_UI
MOV A,SPI_ARRAY
MOV B,#3
MUL AB
MOV R1,A
MOV A,DPL
ADD A,R1
MOV DPL,A
MOV A,DPH
ADDC A,B
MOV DPH,A
MOV R0,#SPI_TMP
MOV R2,#3
LCALL TRAX
RET
;---------------------
TURNBACK: MOV A,SPI_ARRAY
INC A
CJNE A,#quantity1*3,BACK_NOVER0
MOV SPI_ARRAY,#0
LCALL CALCULATEFAI
;INC READCOUNT
;MOV A,READCOUNT
;CJNE A,#40,BACK_NOVER1
;MOV READCOUNT,#0
;LCALL fatchdatauifai
BACK_NOVER1:RET
BACK_NOVER0:MOV SPI_ARRAY,A
RET
;********************************************************************
READ_SPIXX:
wt_Spi_UI:clr SCLK
mov R7,#08h
mov a,SPI_ORDERR
wt_SpiLoop:rlc a
jc wt_SpiHi
wt_SpiLo:setb SCLK
clr DIN
clr SCLK
jmp wt_SpiEnd
wt_SpiHi:setb SCLK
setb DIN
clr SCLK
wt_SpiEnd:djnz R7,wt_SpiLoop
clr DIN
;-------
mov R7,#08h
mov a,#00h
RDHLoop:rl a
setb SCLK
setb DOUT
jnb DOUT,RDHBitLo
RDHBitHi:setb ACC.0
jmp RDHEnd
RDHBitLo:clr ACC.0
RDHEnd:clr SCLK
djnz R7,RDHLoop
mov SPI_TMP,a
mov R7,#08h
mov a,#00h
RDMLoop:rl a
setb SCLK
setb DOUT
jnb DOUT,RDMBitLo
RDMBitHi:setb ACC.0
jmp RDMEnd
RDMBitLo:clr ACC.0
RDMEnd: clr SCLK
djnz R7,RDMLoop
mov SPI_TMP+1,a
mov R7,#08h
mov a,#00h
RDLLoop:rl a
setb SCLK
setb DOUT
jnb DOUT,RDLBitLo
RDLBitHi:setb ACC.0
jmp RDLEnd
RDLBitLo:clr ACC.0
RDLEnd:clr SCLK
djnz R7,RDLLoop
mov SPI_TMP+2,a
ret
;--------------------------------------------------------------------
WT4D_SPI:clr SCLK;
; Send 8bits Command
mov R7,#08h;
mov a,SPI_TMP;
WriteComLoop:
rlc a;
jc WriteComHi;
WriteComLo:
setb SCLK;
clr DIN;
clr SCLK;
nop;
jmp WriteComEnd
WriteComHi:
setb SCLK;
setb DIN;
clr SCLK;
nop;
WriteComEnd:
djnz R7,WriteComLoop;
; Send 24Bits Data
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -