ds1820-примеров для c51 необходимы!

O

onde

Guest
Здравствуйте,

Кто-нибудь знает ссылку или же примеры программирования ds1820 в c51???
Заранее благодарим Вас,
onde

 
/ / DS1820 C51

/ / sbit DQ = p2 ^ 1;

типа неподписанными символ байт;
типа неподписанными INT слово;

недействительным задержку (Word useconds)
(
для (; useconds> 0; useconds -);
)

байтом ow_reset (вакуума)
(
байтовой присутствия;
DQ = 0; / / DQ тянуть линии с низким
задержка (29); / / оставьте ее на низком уровне по 480us
DQ = 1; / / линия позволит вернуть высокий
задержка (3); / / ждать присутствия
Присутствие = DQ; / / получить присутствие сигнала
задержка (25); / / дождаться окончания timeslot
возвращение (присутствие); / / присутствие сигнала вернулся
) / / 0 = присутствие, 1 = нет части

байтом read_byte (вакуума)
(
байтовой I;
байте значение = 0;
для (i = 8; I> 0; я -)
(
значение>> = 1;
DQ = 0; / / тянуть DQ низким, чтобы начать timeslot
DQ = 1; / / затем вернуть высокий
задержка (1) / / для (i = 0; I <3; I );
если (DQ) стоимость | = 0x80;
задержка (6); / / ждать остальным timeslot
)
возвращать (значение);
)недействительным write_byte (символ вал)
(
байтовой I;
для (i = 8; I> 0; я -) / / пишет байтом, один бит в то время,
(
DQ = 0; / / тянуть DQ низким, чтобы начать timeslot
DQ = Val &0x01;
задержка (5); / / проведет стоимости оставшейся части timeslot
DQ = 1;
Val Val = / 2;
)
задержка (5);
)символ Read_Temperature (вакуума)
(
профсоюз (
байтовой C [2];
INT X;
Темп);

ow_reset ();
write_byte (0xCC); / / Skip ROM
write_byte (0xBE); / / Читать Блокнот
temp.c [1] = read_byte ();
temp.c [0] = read_byte ();
ow_reset ();
write_byte (0xCC); / / Skip ROM
write_byte (0x44); / / Начало Конверсии
вернуться temp.x / 2;
)

 

Welcome to EDABoard.com

Sponsor

Back
Top