및"ds1820

G

Guest

Guest
안녕하세요,

누구나 링크를 알아 않거나 c51에서 ds1820 프로그래밍과 같은 예제가???
미리 감사드립니다,
있었어요

 
f를 * P는 : / / f를 * p.wickenhaeuser.de/source/ds1820uc.zip

 
/ / DS1820 C51

/ / sbit DQ = p2 ^ 1;

typedef 서명 숯불 바이트;
typedef int 부호없는 단어;

무효 지연 (단어 useconds)
(
(; useconds "0; useconds -)에 대한;
)

ow_reset 바이트 (무효)
(
바이트가 존재하는;
DQ = 0; / / 낮은 DQ 줄을 당겨
지연 (29); / / 그것 480us 낮은 떠나
DQ = 1; / / 높은 수익을 줄 수 있도록
지연 (3); / / 존재가 나올 때까지 기다리는 것이
존재 = DQ; / / 존재하는 신호가 안 잡혀
지연 (25); / / timeslot 끝 기다
반환 (존재); / / 존재하는 신호를 반환
) / / 0 = 존재, 1 = 어떤 부분도

read_byte 바이트 (무효)
(
바이트 난;
바이트 값 = 0;
은 (i = 8; 난 "0; 난 -)에 대한
(
값이 ""= 1;
DQ = 0; / / DQ timeslot 시작하는 낮은 당겨
DQ = 1; / / 후 높은 수익을
지연 (1); / /위한은 (i = 0; 난 "3; 난 );
만약 (DQ) 값 | = 0x80으로;
지연 (6); / / timeslot 나머지 기다
)
반환 (값);
)무효 write_byte (숯불 발)
(
바이트 난;
은 (i = 8; 난 "0; 난 -)에 대한 / / 조금 시간에서 바이트를 씁니다
(
DQ = 0; / / DQ timeslot 시작하는 낮은 당겨
DQ = &0x01; 발
지연 (5); timeslot의 나머지 부분에 대한 / / 잡아 값
DQ = 1;
발 = 발 / 2;
)
지연 (5);
)숯불 Read_Temperature (무효)
(
노조 (
바이트 C [2];
int x;
) 온도;

ow_reset ();
write_byte (0xCC); / / ROM을 건너뛰기
write_byte (0xBE); / / 읽기 스크래치 패드
temp.c [1] = read_byte ();
temp.c [0] = read_byte ();
ow_reset ();
write_byte (0xCC); / / ROM을 건너뛰기
write_byte (0x44); / / 변환을 시작합니다
반환 temp.x / 2;
)

 

Welcome to EDABoard.com

Sponsor

Back
Top