Urgent help needed mengenai pelaksanaan SPI Software

P

param_vlsi

Guest
Hi Setiap tubuh,
Saya bekerja dengan sebuah accelerometer, kita dapat berkomunikasi dengan accelerometer melalui SPI/I2C. Saya telah mengembangkan Kode untuk SPI menggunakan SPI Software implementasi di AT89c52.but nya tidak berfungsi.
Aku telah dilakukan sesuai dengan datasheet dari accelerometer.
Saya menyediakan kode di bawah ini dan juga datasheet dari accelerometer.

siapa pun bisa memperbaiki probllem saya.

Thanking you in advance.

With regards,

ParamT2CON 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
Akhirnya
Réti

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

 

Welcome to EDABoard.com

Sponsor

Back
Top