Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Urgent help needed regarding Software SPI implementation

Status
Not open for further replies.

param_vlsi

Newbie level 5
Joined
Feb 15, 2009
Messages
10
Helped
1
Reputation
2
Reaction score
1
Trophy points
1,283
Activity points
1,355
Hi Every body,
I am working with an accelerometer,we can communicate to accelerometer through SPI/I2C .I have developed a Code for SPI using Software SPI implementation in AT89c52.but its not working.
I have done according to the datasheet of accelerometer.
I am providing code below and also datasheet of accelerometer.

could anybody rectify my probllem.

Thanking you in advance.

With regards,

Param



T2CON EQU 0C8H
T2MOD EQU 0C9H
TH2 EQU 0CDH
TL2 EQU 0CCH
TR2 EQU 0CAH
RCAP2L EQU 0CAH
RCAP2H EQU 0CBH
ET2 EQU 0ADH
TF2 EQU 0CFH

ORG 00H
MOV 81H,#50H
LJMP START

ORG 01BH
LJMP IT_TIMER1

START:
MOV A,#50H
CLR C
RLC A
RLC A
CLR P0.4
CLR P2.3
CLR P2.1
CLR P2.4
CLR P2.5
CLR P2.6
CLR P2.7
SETB EA
MOV TMOD,#20H
MOV R7,#02
MOV R0,#08
MOV R4,#09
MOV R6,#02
MOV R2,#16
MOV R5,#02
MOV TL1,#00H
MOV TH1,#00H
SETB ET1
SETB ET2
SETB TR1

JMP $


IT_TIMER1:
MOV TH1,#00H
CPL P2.3
JB P2.6,hlabel
JNB P2.3,HLABEL
JMP LAST
HLABEL:
JB P2.4,STEP1
LCALL CONTROL_WORD
JMP LAST
STEP1:
LCALL READ_CONTROL
// JB P0.5,STEP0
// LCALL READ_X
// JMP LAST
// STEP0:
// JB P0.6,STEP6
// LCALL READ_Y
// JMP LAST
// STEP6:
// JB P0.7,STEP7
// LCALL READ_Z
// JMP LAST
// STEP7:
// PUSH 01H
// CLR TR1
// MOV R3,#05
// MOV R5,#05
// MOV R7,#05
// LCALL _calctan
// POP 01H
// SETB TR1
// LCALL RESET
LAST:
RETI

CONTROL_WORD:
DJNZ R7,ASSERT_CS
MOV R7,#01
DJNZ R0,LOAD_ADRESS_CONTROL
MOV R0,#01
DJNZ R6,INITIALISE_CONTROL_DATA
MOV R6,#01
DJNZ R4,LOAD_DATA_CONTROL
MOV R4,#01
LCALL INTIALISE_ADRESS
SETB P2.4
JMP LAST2
ASSERT_CS:
CLR P2.0
JMP LAST2
LOAD_ADRESS_CONTROL:
MOV 0A2H,C
RLC A
JMP LAST2
INITIALISE_CONTROL_DATA:
MOV A,#05H
JMP LAST2
LOAD_DATA_CONTROL:
RLC A
MOV 0A2H,C
LAST2:
RET

INTIALISE_ADRESS:
MOV A,#10H
RLC A
RLC A
MOV R0,#08
MOV R4,#09
MOV R6,#02
MOV R2,#16
MOV R7,#02
MOV R5,#02
RET

READ_CONTROL:
DJNZ R0,LOAD_ADRESS_CONTROL1
MOV R0,#01
DJNZ R6,INITIALISE_CONTROL_DATA1
MOV R6,#01
DJNZ R7,LAST3
MOV R7,#01
jb P2.3,ylabel
JMP LAST3
ylabel:
DJNZ R4,READ_DATA_CONTROL
MOV R4,#01
DJNZ R5,LAST3
MOV R5,#01
CLR P2.6
LCALL INTIALISE_ADRESS
JMP LAST3
LOAD_ADRESS_CONTROL1:
MOV 0A2H,C
RLC A
JMP LAST3
INITIALISE_CONTROL_DATA1:
MOV A,#00H
SETB P2.6
JMP LAST3
READ_DATA_CONTROL:
MOV C,0A1H
RLC A
LAST3:
RET
END
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top