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

📄 x1226.asm

📁 一整套电梯控制器源程序
💻 ASM
字号:
SDA BIT P3.2
SCL BIT P3.4

PUBLIC DELAY0
PUBLIC CLOCK
PUBLIC JACK 
PUBLIC ACK
PUBLIC NACK
PUBLIC INBYT
PUBLIC OUTBYT
PUBLIC STOP
PUBLIC START
PUBLIC WRBTY
PUBLIC WATCH0
PUBLIC SEND1
PUBLIC _EWRITE
PUBLIC _EREAD

X1203P SEGMENT CODE
RSEG X1203P

;****************************************
; FUN: READ COUNT BYTES DATA FROM X1203
; INP: DPTR(R7) 
; RETURN: DATA (R7)
;****************************************
		
	

_EREAD:  LCALL WRBTY
        MOV A,#00H
        LCALL SEND1
        MOV A,R7
        LCALL SEND1
        LCALL START
        MOV A,#0DFH
        LCALL SEND1
LOOP0:  LCALL INBYT
        MOV R7,A
	LCALL NACK
	LCALL STOP
        RET

;****************************************
; FUN: WRITE COUNT BYTES DATA TO X1203
; INP: DPTR(R7), DATA(R5)
;****************************************
_EWRITE: LCALL WRBTY
        MOV A,#00H
        LCALL SEND1
        MOV A,#3FH
        LCALL SEND1
        MOV A,#02H
			LCALL SEND1
			LCALL STOP
			LCALL START	
			MOV A,#0DEH
			LCALL SEND1
			MOV A,#00H
	      LCALL SEND1
         MOV A,#3FH
        LCALL SEND1
        MOV A,#06H
	LCALL SEND1
	LCALL STOP
	LCALL START
	MOV A,#0DEH
	LCALL SEND1
	MOV A,#00H
        LCALL SEND1
		  MOV A,R7	
        LCALL SEND1
        MOV A,R5
		LCALL SEND1
		LCALL STOP	
		RET



SEND1:LCALL OUTBYT
	LCALL JACK
	RET

WATCH0: SETB P3.5 
	NOP
	NOP
	NOP
	NOP
        CLR P3.5 
	RET

WRBTY: LCALL START
       MOV A,#0DEH
       LCALL OUTBYT
       LCALL WATCH0
        SETB SDA ;ORL P3,#04H
        NOP
        NOP
        NOP
        SETB SCL ;ORL P3,#10H
        NOP
        NOP
        JB SDA,RTY  ;JB ACC.2,RTY  
        JMP RT
RTY:  	LCALL STOP
   	LJMP WRBTY
RT:	NOP
	CLR SCL ;ANL P3,#0F7H
	RET

START:  SETB SDA ;ORL P3,#04H 
        nop
	nop
	nop
	nop
	SETB SCL ;ORL P3,#08H 
	NOP
	NOP
        NOP
        NOP
        CLR SDA ;ANL P3,#0FBH 
	NOP
        NOP
        CLR SCL ;ANL P3,#0F7H 
	RET                        

STOP:   CLR SDA ;ANL P3,#0FBH 
        nop
	nop
	nop
	nop
	SETB SCL ;ORL P3,#08H 
	NOP
        NOP
        NOP
        NOP
        SETB SDA ;ORL P3,#04H 
	nop
	nop
	nop
	nop
	RET		

OUTBYT: MOV R2,#08H
    
LOOPO:  RLC A
        JC IS1
        CLR SDA ;ANL P3,#0FBH 
        JMP BITSET
IS1:    SETB SDA ;  ORL P3,#04H                       
BITSET: LCALL CLOCK
        DJNZ R2,LOOPO   
        RET

INBYT:  MOV R2,#08H
	SETB SDA    ; ORL P3,#04H 
LOOPI:  LCALL CLOCK
        RLC A
        DJNZ R2,LOOPI
        RET                                                              

NACK:   SETB SDA ;ORL P3,#04H 
        LCALL CLOCK
        RET

ACK:    CLR SDA ;ANL P3,#0FBH 
        LCALL CLOCK
        RET

JACK:   SETB SDA ;ORL P3,#04H 
        NOP
        NOP
        NOP
        SETB SCL ;ORL P3,#08H 
        NOP
JACK1:
	;MOV B,P3
	;ANL B,#04H
	;MOV R1,B
	 lcall watch0
	;CJNE R1,#0H,JACK1
        JB SDA,JACK1
        NOP
        CLR SCL ;ANL P3,#0f7H 
			NOP
			NOP
			NOP
			NOP
        RET


CLOCK: 	
	NOP
	NOP
 	NOP
 	NOP
	NOP
	NOP
        SETB SCL ;ORL P3,#08H 
	NOP
	NOP
        ;MOV B,P3
	;ANL B,#04H
	;MOV R1,B
	;CJNE R1,#0,CLOCK1
        ;JB SDA,CLOCK1
 	;CLR C
	;JMP CLOCK2
;CLOCK1:	SETB C	
;CLOCK2:	
      MOV C,SDA
      NOP
  	   NOP
		NOP
		CLR SCL ;ANL P3,#0F7H 
		  NOP
		  NOP
	NOP	
   NOP
	RET


delay0:mov r6,#10h
delay: mov r5,#0ffh	
de2:  mov r4,#0ffh
de0:  mov r3,0ffh
		djnz r3,$
        djnz r4,de0
	djnz r5,de2
	lcall watch0
	djnz r6,delay
		  ret

		  END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -