ds1820-esimerkkejä C51 tarvitaan!

O

onde

Guest
Hei,

ei kukaan tiedä, linkin tai on sama esimerkkejä ohjelmatyötä ds1820 vuonna C51?
kiitos etukäteen
onde

 
/ / DS1820 C51

/ / sbit hylätty = p2 ^ 1;

typedef unsigned char byte;
typedef unsigned int sana;

mitätön viivästys (sana useconds)
(
for (; useconds> 0; useconds -);
)

byte ow_reset (void)
(
byte läsnäolo;
Hylätty = 0; / / pull hylätty linja alhainen
viive (29); / / jätä pieni 480us
Hylätty = 1; / / salli linja palata korkea
viive (3); / / odota läsnäolo
läsnäolo = hylätty; / / get läsnäolo signaali
viive (25); / / odota loppuun timeslot
tuotto (läsnäolo); / / läsnäolo signaali palasi
) / / 0 = läsnäolo, 1 = ei ole osa

byte read_byte (void)
(
byte i;
byte-arvo = 0;
for (i = 8; i> 0, i -)
(
arvo>> = 1;
Hylätty = 0; / / pull hylätty alhainen aloittaa timeslot
Hylätty = 1; / / palaa sitten korkea
viive (1); / / for (i = 0, i <3 i );
if (hylätty) arvo | = 0x80;
viive (6); / / odota muualla timeslot
)
tuotto (arvo);
)mitätön write_byte (char val)
(
byte i;
for (i = 8; i> 0, i -) / / kirjoittaa byte, yhden bitin kerrallaan
(
Hylätty = 0; / / pull hylätty alhainen aloittaa timeslot
Hylätty = Val &0x01;
viive (5); / / pidä arvoa jäljellä timeslot
Hylätty = 1;
val = val / 2;
)
viive (5);
)char Read_Temperature (void)
(
unionissa (
byte c [2];
int x;
) temp;

ow_reset ();
write_byte (0xCC); / / Skip ROM
write_byte (0xBE); / / Lue Muistiinpanot
temp.c [1] = read_byte ();
temp.c [0] = read_byte ();
ow_reset ();
write_byte (0xCC); / / Skip ROM
write_byte (0x44); / / Käynnistä Conversion
palata temp.x / 2;
)

 

Welcome to EDABoard.com

Sponsor

Back
Top