MAX6675 grænseflade FEJLTYPE

G

garg29

Guest
Hej venner,
Som diskuteret og foreslået af alle jer i mit tidligere spørgsmål "http://www.edaboard.com/viewtopic.php?t=133652&highlight=max6675" "temperatur controller til J & K type temperaturfølere" Jeg mener, hvad "Ianp" foreslog, var en af de bedste metoder.Ianp foreslået at bruge MAX6675 (Kolde-Junction-compensés K-Thermocoupleto-Digital Converter 0 ° C til
1024 ° C) med 89c51 til læsning temperatur fra k-type termoelement.Jeg forsøgte at opbygge en begyndende kode til at læse værdier fra MAX6675, men koden er kun viser 0 (nul) på skærmen.Jeg ved, at koden er ikke komplet, idet 12-bit data består kun af D3 bit - til - D14 bit som vist på billedet nedenfor, men stadig nogle ikke-nul værdi skal læses fra MAX6675.I'couldn't forstå fejltagelse.Please hjælp mig med at finde ud af min fejltagelse.

Tak

Med venlig hilsen,
GargCode:

;*********************** READ MAX6675 ************************ **********************READ_MAX6675:SETB CS

NOP

CLR CSMOV HIGH_A, # 00H; øvre byte

MOV LOW_A, # 00H; lavere byteMOV A, # 00H

MOV B, # 08H

CLR CMAX6675_LOOP:SETB CLK

CLR CLKMOV C, DORRC A

DJNZ B, MAX6675_LOOPMOV HIGH_A, AMOV A, # 00H

MOV B, # 08H

CLR CMAX6675_LOOP2:SETB CLK

CLR CLKMOV C, DORRC A

DJNZ B, MAX6675_LOOP2MOV LOW_A, ASETB CSRET;************************************************* **************************************
 
Hi Garg29

Huske på, at den tid, der kræves for konvertering er typisk 0,17 sekunder (garanteret af design) fra stigende kant / CS (immediatelly efter tidligere tvunget lav).
Jeg kan ikke se i din kode venter på EOC

Code:

MOV C, DO
 
Takket Silvio for besvarelse.først og fremmest
skal jeg fortælle dig om bits.

Code:

DO. EQU P2.0

CS. EQU P2.1

CLK. EQU P2.2

 
Hi Garg,

Asssuming din 8051 drevet af 11.0592 XTAL, en maskine cyklus er
1. os.
Hvert DJNZ tager 2 maskinpistoler cyklusser, betyder "DJNZ R3, $" brugt i 256 x 2 os = 512 os
Du har brug for en forsinkelse på 170 ms.Således 170 ms / 512 os = 332.
Du er nødt til at gentage instruktion "DJNZ R3, $" 332 gange for at få en forsinkelse på 170 ms.
Da en 8 bit register kan tage en værdi større end 255, du har brug for R5 også.

Code:MOV R3, # 00h

MOV R4, # 00h

MOV R5, # 0AAh

LOOP: DJNZ R3, $

DJNZ R4, $

DJNZ R5, LOOP

RET

 
hi Silvio
Thanks a lot.im gjort med denne project.i har klikket på "hjulpet mig" for dig: D
men efter at gøre en forandring, som jeg couldnot forstå
Code:MOV A, # 00H

MOV B, # 07H; erstattes # 08h med # 07h

CLR CMAX6675_LOOP:SETB CLK

CLR CLKMOV C, DORRC A

DJNZ B, MAX6675_LOOPMOV HIGH_A, AMOV A, # 00H

MOV B, # 08H ; ikke erstatte dette # 08h [/ b]

CLR CMAX6675_LOOP2:SETB CLK

CLR CLKMOV C, DORRC A

DJNZ B, MAX6675_LOOP2MOV LOW_A, ASETB CSRET

 
Hi Garg,

Hvis du lykkes at læse data konvertering i 15 trin (første 7 sidste 8) så tror jeg, at du kan bebrejde mit første prøvedukkens bit læse.Således fjerner linjer SETB CLK og CLR CLK og holde MOV B, # 08H for både sløjfer.

Code:CLR CS; starte en dummy læse og klare enhver omstilling i gang

SETB CS; indlede konvertering

CALL LOOP; 170 ms forsinkelse

CLR CS; begynde at læse på SO

 

Welcome to EDABoard.com

Sponsor

Back
Top