Код: Выделить всё
#include <pic.h>
#include <htc.h>
__CONFIG(0x3ff2);
#define state TRISA3
#define pin RA3
void init(void)
{
state=1;
pin=0;
state=0;
_delay(50);
state=1;
_delay(65);
}
void TX(unsigned char com)// процедура записи в датчик
{
unsigned char i=0,temp=0;
temp=com;
for (i=0;i<8;i++)
{
if (temp&0x01)
{
pin=0;
state=0;
_delay(15);
state=1;
_delay(60);
}
else
{
pin=0;
state=0;
_delay(60);
state=1;
}
temp>>=1;
}
}
int RX(void) // процедура чтения из датчика
{
unsigned char i=0,dat=0,b;
for (i=0;i<8;i++)
{
pin=0;
state=0;
_delay(5);
state=1;
_delay(50);
b=pin;
_delay(50);
dat|=(b<<i);
}
return dat;
}
void main()
{
unsigned char l,i;
int t1,t2,temperature;
char temp[10];
TRISA=0;
TRISB=0;
PORTA=0;
PORTB=0;
init();
TX(0xCC); //skip ROM
TX(0X44); //Конвертировать
_delay(750);
init();
TX(0xCC);
TX(0xBE);
temp[0]=RX();
temp[1]=RX();
PORTB=temp[0];
while(1) {}
}