اطلاعیه

Collapse
No announcement yet.

کمک برای راه اندازی i2c میکرو psd به زبان اسمبلی

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    کمک برای راه اندازی i2c میکرو psd به زبان اسمبلی

    با سلام به همه دوستان من میخواستم با میکرو psd3254bv که از خانواده 8051هستش به زبان اسمبلی یک RTC رو راه اندازی کنم ممنون میشم کمک کنید یا اگر مثال مشابهی دارید بزارید .
    اگر example code برای راه اندازی i2c باشه به زبان اسمبلی هم میتونه کمکم کنه.


    با تشکر :smile:

    #2
    پاسخ : کمک برای راه اندازی i2c میکرو psd به زبان اسمبلی

    code example که توی تاپیک پروژه ها اگر بگردید هست. این هم یک نسخه شسته رفته ترشه:

    کد:
    	SCL	BIT	P1.0
    	SDA	BIT	P1.1
    ;********************************
    	ORG	00H
    START:	MOV 	P1,#0FFH
    
    WRITE:	LCALL	I2CSTRT
    	MOV	A,#0A0H
    	LCALL	OUT
    	MOV	A,#00H
    	LCALL	OUT
    	MOV	A,#'A'
    	LCALL	OUT
    	LCALL	I2CSTOP
    	LCALL	DLY10MS
    ;************
    READ:	LCALL	I2CSTRT
    	MOV	A,#0A0H
    	LCALL	OUT
    	MOV	A,#00H
    	LCALL	OUT
    	LCALL	I2CSTRT		; REPEATED START
    	MOV	A,#0A1H
    	LCALL	OUT
    	LCALL	IN
    	LCALL	NACK
    	LCALL	I2CSTOP
    	LCALL	DLY10MS
    
    	
    LOCK:	SJMP	LOCK
    ;********************************
    OUT:	MOV	R5,#08H
    O_LOOP:	RLC	A
    	MOV	SDA,C
    	NOP
    	SETB	SCL
    O_WAIT:	JNB	SCL,O_WAIT
    	LCALL	DLY
    	CLR	SCL
    	DJNZ	R5,O_LOOP
    	NOP
    	NOP
    	SETB	SDA
    	NOP
    	SETB	SCL
    	LCALL	DLY
    	CLR	SCL
    	NOP
    	RET
    ;********************************
    IN:	SETB	SDA
    	CLR	A
    	MOV	R5,#08H
    I_LOOP:	CLR	SCL
    	LCALL	DLY
    	SETB	SCL
    I_WAIT:	JNB	SCL,I_WAIT
    	MOV	C,SDA
    	RLC	A
    	DJNZ	R5,I_LOOP
    	CLR	SCL
    	LCALL	DLY
    	LCALL	DLY
    	RET
    ;********************************
    I2CSTRT:SETB	SDA
    	LCALL	DLY
    	SETB	SCL
    	LCALL	DLY
    	CLR	SDA
    	LCALL	DLY
    	CLR	SCL
    	RET
    ;********************************
    I2CSTOP:CLR	SDA
    	LCALL	DLY
    	SETB	SCL
    	LCALL	DLY
    	SETB	SDA
    	LCALL	DLY
    	RET
    ;********************************
    NACK:	SETB	SDA
    	NOP
    	SETB	SCL
    	LCALL	DLY
    	CLR	SCL
    	LCALL	DLY
    	RET
    ;********************************
    DLY:	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	NOP
    	RET
    ;********************************
    DLY10MS:MOV 	74,#50		;50,100 = 10MS! 
    M2:	MOV 	75,#100
    M3:	DJNZ 	75,M3
    	DJNZ 	74,M2
    	RET
    ;********************************
    	END


    این applicatio note ها هم جهت اطلاع بیشتر:
    http://www.maximintegrated.com/app-notes/index.mvp/id/826
    http://www.zmitac.aei.polsl.pl/Electronics_Firm_Docs/mcs51/applnots/27231901.pdf

    دیدگاه

    لطفا صبر کنید...
    X