MAX6675 interfacing code fout

G

garg29

Guest
Hoi vrienden,
Zoals besproken en door ieder van jullie in mijn vorige vraag "http://www.edaboard.com/viewtopic.php?t=133652&highlight=max6675" "temperatuur-controller voor J & K type temperatuursensoren" Ik denk dat wat "Ianp" suggereerde was een van de beste methodes.Ianp voorgesteld voor het gebruik van MAX6675 (Koude-Junction-compensated K-Thermocoupleto-Digital Converter 0 ° C tot 1024 ° C) met 89c51 voor het lezen van de temperatuur van K-type thermokoppel.Ik probeerde op te bouwen uitgangspunt code te lezen waarden uit MAX6675, maar de code is waarin slechts 0 (nul) op het scherm.Ik weet de code niet compleet is als de 12-bit data bestaat alleen D3 bit - tot - D14 beetje zoals weergegeven in de afbeelding hieronder, maar nog steeds een aantal niet-nul waarde moet worden gelezen van MAX6675.I'couldn't begrijp de vergissing.Please help me, bij het vinden van mijn fout.

Bedankt

Met vriendelijke groet,
GargCode:

;*********************** LEES MAX6675 ************************ **********************READ_MAX6675:SETB CS

NOP

CLR CSMOV HIGH_A, # 00h; bovenste byte

MOV LOW_A, # 00h; lager byteMOV A, # 00h

MOV B, # 08u

CLR CMAX6675_LOOP:SETB CLK

CLR CLKMOV C, DORRC A

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

MOV B, # 08u

CLR CMAX6675_LOOP2:SETB CLK

CLR CLKMOV C, DORRC A

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

Houd er rekening mee dat de tijd die nodig is voor de conversie is typisch 0,17 seconden (gegarandeerd door design) vanaf stijgende rand van / CS (immediatelly na eerder gedwongen laag).
Ik zie niet in je code te wachten op EOC

Code:

MOV C, DO
 
Silvio Bedankt voor de beantwoording.Allereerst
zal ik vertellen over de bits.

Code:

DO. EQU P2.0

CS. EQU P2.1

CLK. EQU P2.2

 
Hi Garg,

Asssuming uw 8051 gedreven door 11,0592 XTAL, een machine-cyclus is 1 ons.
Elke DJNZ duurt 2 machine cycli, betekent "DJNZ R3, $" uitgegeven in 256 x 2 = 512 wij ons
Je hebt een vertraging van 170 ms.Dus 170 ms / 512 us = 332.
U moet herhalen instructie "DJNZ R3, $" 332 keer om een vertraging van 170 ms.
Sinds een 8-bits register kan een waarde groter dan 255 u nodig R5 ook.

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 gedaan met deze project.i hebben geklikt op "hielp me" voor u: D
maar na het doen van een wijziging die ik begrijp couldnot
Code:MOV A, # 00h

MOV B, # 07u; vervangen # 08u met # 07u

CLR CMAX6675_LOOP:SETB CLK

CLR CLKMOV C, DORRC A

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

MOV B, # 08u , niet de plaats van dit 08u # [/ b]

CLR CMAX6675_LOOP2:SETB CLK

CLR CLKMOV C, DORRC A

DJNZ B, MAX6675_LOOP2MOV LOW_A, ASETB CSRET

 
Hi Garg,

Als u slaagt voor het lezen van de data conversie in 15 stappen (eerste 7 laatste 8) dan denk ik dat je schuld mijn eerste pop beetje lezen.Zo verwijdert u de lijnen SETB CLK en CLK CLR en houden de MOV B, # 08u voor beide lussen.

Code:CLR CS; begin een dummy gelezen en duidelijk een verbouwing aan de gang

SETB CS; inleiding conversie

CALL LOOP; 170 ms vertraging

CLR CS; begin lezing op SO

 

Welcome to EDABoard.com

Sponsor

Back
Top