⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xwfab.asm

📁 这是一个本人编写的程序
💻 ASM
📖 第 1 页 / 共 5 页
字号:
;************************************************************
;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 + -