ΠΠΎΡΡΠ΄ΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ
ΠΡΠ±Π΅ΡΠ΅ΠΌ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ATMega16 Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ AVR2: Π½Π°ΠΆΠ°ΡΠΈΠ΅ΠΌ Π½Π° Π ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ ΠΎΠΊΠ½ΠΎ Pick Devices, Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ — Microprocessor ICs, ΠΏΠΎΠ΄ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ — AVR Family ΠΈ Π² ΠΏΠΎΠ»Π΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π²ΡΠ΄Π΅Π»ΡΠ΅ΠΌ Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ATMega16 (ΡΠΏΡΠ°Π²Π° ΠΏΠΎΡΠ²ΠΈΡΡΡ ΡΡΠ»ΠΎΠ²Π½ΠΎΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΊΠΎΡΠΏΡΡΠ°), Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΡΠΏΡΠ°Π²Π° Π²Π½ΠΈΠ·Ρ ΠΠ, Π·Π°ΠΊΡΡΠ²Π°Π΅ΡΡΡ ΠΎΠΊΠ½ΠΎ ΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΏΠΎΠ»Π΅ ΠΊΡΡΡΠΎΡΠΎΠΌ Π² Π½ΡΠΆΠ½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π²ΡΠ±ΡΠ°Π½Π½Π°Ρ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ°… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠΎΡΡΠ΄ΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
1. ΠΡΠ±ΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΡ Π΅ΠΌΡ ΡΠ΅ΡΠΌΠΎΠΌΠ΅ΡΡΠ° Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ISIS Proteus Π²ΡΠ±ΡΠ°ΡΡ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ATMega16, ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΡΠ°Π»ΡΠ½ΡΠΉ Π΄Π°ΡΡΠΈΠΊ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ DS18B20, LCD ΡΠΈΠΏΠ° LM016L, ΡΠ΅Π·ΠΈΡΡΠΎΡ R=4.7k, ΠΎΡΡΠΈΠ»Π»ΠΎΠ³ΡΠ°Ρ ΠΈ ΡΠΎΠ±ΡΠ°ΡΡ ΡΡ Π΅ΠΌΡ (ΡΠΈΡΡΠ½ΠΎΠΊ 4.4).
ΠΡΠ±Π΅ΡΠ΅ΠΌ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ATMega16 Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ AVR2: Π½Π°ΠΆΠ°ΡΠΈΠ΅ΠΌ Π½Π° Π ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ ΠΎΠΊΠ½ΠΎ Pick Devices, Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ — Microprocessor ICs, ΠΏΠΎΠ΄ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ — AVR Family ΠΈ Π² ΠΏΠΎΠ»Π΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π²ΡΠ΄Π΅Π»ΡΠ΅ΠΌ Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ATMega16 (ΡΠΏΡΠ°Π²Π° ΠΏΠΎΡΠ²ΠΈΡΡΡ ΡΡΠ»ΠΎΠ²Π½ΠΎΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΊΠΎΡΠΏΡΡΠ°), Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΡΠΏΡΠ°Π²Π° Π²Π½ΠΈΠ·Ρ ΠΠ, Π·Π°ΠΊΡΡΠ²Π°Π΅ΡΡΡ ΠΎΠΊΠ½ΠΎ ΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΏΠΎΠ»Π΅ ΠΊΡΡΡΠΎΡΠΎΠΌ Π² Π½ΡΠΆΠ½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π²ΡΠ±ΡΠ°Π½Π½Π°Ρ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ°.
ΠΠ°ΡΠ΅ΠΌ Π½Π°Π²Π΅ΡΡΠΈ ΠΊΡΡΡΠΎΡ Π½Π° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΈ ΡΠ΅Π»ΡΠΊΠΎΠΌ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡΡΠΈ ΠΎΡΠΊΡΡΡΡ ΠΎΠΊΠ½ΠΎ ΠΡΠ°Π²ΠΊΠ° ΡΠ²ΠΎΠΉΡΡΠ² Ρ Π²ΡΠΏΠ°Π΄Π°ΡΡΠΈΠΌ ΠΌΠ΅Π½Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π² ΠΏΡΠ½ΠΊΡΠ΅ CKSEL Fuses Π²ΡΠ±ΡΠ°ΡΡ — (0100) Int RC 8MHz, Π·Π°ΡΠ΅ΠΌ ΠΠ.
ΠΠ°ΡΡΠΈΠΊ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ DS18B20: ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ — Data converter, ΠΏΠΎΠ΄ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ — Temperature sensors. ΠΠ°Π²Π΅ΡΡΠΈ ΠΊΡΡΡΠΎΡ Π½Π° Π΄Π°ΡΡΠΈΠΊ ΠΈ ΡΠ΅Π»ΡΠΊΠΎΠΌ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡΡΠΈ ΠΎΡΠΊΡΡΡΡ ΠΎΠΊΠ½ΠΎ ΠΡΠ°Π²ΠΊΠ° ΡΠ²ΠΎΠΉΡΡΠ² Ρ Π²ΡΠΏΠ°Π΄Π°ΡΡΠΈΠΌ ΠΌΠ΅Π½Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π² ΠΏΡΠ½ΠΊΡΠ΅ Granually ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ — 1, Π·Π°ΡΠ΅ΠΌ ΠΠ.
LCD ΡΠΈΠΏΠ° LM016L: ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ — Optoelectronics, ΠΏΠΎΠ΄ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ — Alphanumeric LCDs. ΠΠ°Π²Π΅ΡΡΠΈ ΠΊΡΡΡΠΎΡ Π½Π° LCD ΠΈ ΡΠ΅Π»ΡΠΊΠΎΠΌ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡΡΠΈ ΠΎΡΠΊΡΡΡΡ ΠΎΠΊΠ½ΠΎ ΠΡΠ°Π²ΠΊΠ° ΡΠ²ΠΎΠΉΡΡΠ² Ρ Π²ΡΠΏΠ°Π΄Π°ΡΡΠΈΠΌ ΠΌΠ΅Π½Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π² ΠΎΠΊΠ½Π΅ Other properties Π½Π°ΠΏΠΈΡΠ°ΡΡ — {STATE=1}, Π·Π°ΡΠ΅ΠΌ ΠΠ.
Π Π΅Π·ΠΈΡΡΠΎΡ R=4.7k: ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ — Resistor, ΠΏΠΎΠ΄ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ — Generic. ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½Π° ΠΏΠΎΠ»Π΅ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΠΊΡΡΡΠΎΡΠΎΠΌ ΠΈ Π½Π°ΠΆΠ°ΡΡ ΠΏΡΠ°Π²ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ, Π² ΠΏΠΎΡΠ²ΠΈΠ²ΡΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΡΡΡΠΎΠΊΡ ΠΡΠ°Π²ΠΊΠ° ΡΠ²ΠΎΠΉΡΡΠ², Π² ΠΎΠΊΠ½Π΅ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²ΡΡΡΠ°Π²ΠΈΡΡ 4.7 Π ΠΈ Π½Π°ΠΆΠ°ΡΡ ΠΠ.
ΠΡΡΠΈΠ»Π»ΠΎΠ³ΡΠ°Ρ: ΡΠΏΡΠ°Π²Π° Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π½Π° ΠΏΠΈΠΊΡΠΎΠ³ΡΠ°ΠΌΠΌΡ «ΠΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ», Π²ΡΠ΄Π΅Π»ΡΠ΅ΠΌ Oscilloscope ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π²ΠΈΠ³Π°Ρ ΠΊΡΡΡΠΎΡΠΎΠΌ, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π½Π° ΠΏΠΎΠ»Π΅ Π½Π°ΠΆΠ°ΡΠΈΠ΅ΠΌ Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ. ΠΠ°Π²Π΅ΡΡΠΈ ΠΊΡΡΡΠΎΡ Π½Π° ΠΎΡΡΠΈΠ»Π»ΠΎΠ³ΡΠ°Ρ ΠΈ ΡΠ΅Π»ΡΠΊΠΎΠΌ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡΡΠΈ ΠΎΡΠΊΡΡΡΡ ΠΎΠΊΠ½ΠΎ ΠΡΠ°Π²ΠΊΠ° ΡΠ²ΠΎΠΉΡΡΠ² Ρ Π²ΡΠΏΠ°Π΄Π°ΡΡΠΈΠΌ ΠΌΠ΅Π½Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ Π³Π°Π»ΠΎΡΠΊΡ Π² ΠΏΡΠ½ΠΊΡΠ΅ ΠΡΠΊΠ»ΡΡΠΈΡΡ ΠΈΠ· Π Π‘Π, Π·Π°ΡΠ΅ΠΌ ΠΠ.
ΠΠ΅ΠΌΠ»Ρ ΠΈ + ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°: Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π½Π° ΠΏΡΠ°Π²ΡΡ ΠΏΠΈΠΊΡΠΎΠ³ΡΠ°ΠΌΠΌΡ «Terminals», Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΠΏΠΎΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎ Ground ΠΈ Power.
ΠΠ½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π² ΡΡΡΠΎΠ³ΠΎΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ ΡΡ Π΅ΠΌΡ (ΡΠΈΡΡΠ½ΠΎΠΊ 4.2).
Π ΠΈΡΡΠ½ΠΎΠΊ 4.2 ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ISIS.
2. Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΠ°ΠΉΠ», Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Test.
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΡΠ²ΠΈΡΡΡΡ 2 ΡΠ°ΠΉΠ»Π° Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ Test. DSN ΠΈ Test.DBK.
3. ΠΡΠΎΡΠΈΠ²ΠΊΠ° hex-ΡΠ°ΠΉΠ»Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ hex-ΡΠ°ΠΉΠ»Π° ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° AVR ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ AVR STUDIO, AVR IAR ΠΈΠ»ΠΈ ICC AVR.
Π’Π΅ΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² Π‘ΠΈ ΠΈΠΌΠ΅Π΅Ρ Π²ΠΈΠ΄.
/*.
* GccApplication1.c.
*.
*/.
#include.
#include «lcd.h» .
#include.
#include.
//ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΠΏΠΎΡΡ ΠΈ Π±ΠΈΡ ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ 1-wire.
#define W1_PORT PORTC.
#define W1_DDR DDRC.
#define W1_PIN PINC.
#define W1_BIT 0.
//ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π΅ΡΡΡ Π»ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π½Π° ΡΠΈΠ½Π΅.
unsigned char w1_find ().
{.
unsigned char device;
W1_DDR |= 1<
_delay_us (485);//ΠΆΠ΄Π΅ΠΌ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ 480ΠΌΠΊΡ.
W1_DDR &= ~(1<
_delay_us (65);//ΠΆΠ΄Π΅ΠΌ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ 60ΠΌΠΊΡ ΠΈ ΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠΎ Π½Π° ΡΠΈΠ½Π΅.
if ((W1_PIN & (1<
device = 1;
else.
device = 0;
_delay_us (420);//ΠΆΠ΄Π΅ΠΌ ΠΎΡΡΠ°Π²ΡΠ΅Π΅ΡΡ Π²ΡΠ΅ΠΌΡ Π΄ΠΎ 480ΠΌΠΊΡ.
return device;
}.
//ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΡΡΠ»Π°Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ 1-wire.
void w1_sendcmd (unsigned char cmd).
{.
for (unsigned char i = 0; i < 8; i++)//Π² ΡΠΈΠΊΠ»Π΅ ΠΏΠΎΡΡΠ»Π°Π΅ΠΌ ΠΏΠΎΠ±ΠΈΡΠ½ΠΎ.
{.
if ((cmd & (1<<
{.
W1_DDR |= 1<
_delay_us (2);
W1_DDR &= ~(1<
_delay_us (65);
}.
else//ΠΈΠ½Π°ΡΠ΅ ΠΏΠΎΡΡΠ»Π°Π΅ΠΌ 0.
{.
W1_DDR |= 1<
_delay_us (65);
W1_DDR &= ~(1<
_delay_us (5);
}.
}.
}.
//ΡΡΠ½ΠΊΡΠΈΡ ΡΠΈΡΠ°Π΅Ρ ΠΎΠ΄ΠΈΠ½ Π±Π°ΠΉΡ Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π° 1-wire.
unsigned char w1_receive_byte ().
{.
unsigned char data=0;
for (unsigned char i = 0; i < 8; i++)//Π² ΡΠΈΠΊΠ»Π΅ ΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠΎ Π½Π° ΡΠΈΠ½Π΅ ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
{.
W1_DDR |= 1<
_delay_us (2);
W1_DDR &= ~(1<
_delay_us (7);
if ((W1_PIN & (1<
data &= ~(1<
else
data |= 1<
_delay_us (50);//Π·Π°Π΄Π΅ΡΠΆΠΊΠ° Π΄ΠΎ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΡΠ°ΠΉΠΌ-ΡΠ»ΠΎΡΠ°
}
return data;
}
//ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Ρ Π΄Π°ΡΡΠΈΠΊΠ° 18b20 Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ
int temp_18b20()
{
unsigned char data[2];
int temp = 0;
if (w1_find ()==1)//Π΅ΡΠ»ΠΈ Π΅ΡΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π½Π° ΡΠΈΠ½Π΅
{
w1_sendcmd (0xcc);//ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ ROM ΠΊΠΎΠ΄, ΠΌΡ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ Ρ Π½Π°Ρ ΠΎΠ΄Π½ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ Π²ΡΠ΅ΠΌ
w1_sendcmd (0×44);//ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ
_delay_ms (750);//ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² 12 Π±ΠΈΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ 750ms
w1_find ();//ΡΠ½ΠΎΠ²Π° ΠΏΠΎΡΡΠ»Π°Π΅ΠΌ Presence ΠΈ Reset
w1_sendcmd (0xcc);
w1_sendcmd (0xbe);//ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π±Π°ΠΉΡΡ Π²Π΅Π΄ΡΡΠ΅ΠΌΡ 18b20 Π² ΠΏΠ΅ΡΠ²ΡΡ Π΄Π²ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ°)
data[0] = w1_receive_byte ();//ΡΠΈΡΠ°Π΅ΠΌ Π΄Π²Π° Π±Π°ΠΉΡΠ° Ρ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠΎΠΉ
data[1] = w1_receive_byte ();
//Π·Π°Π³ΠΎΠ½ΡΠ΅ΠΌ Π² Π΄Π²ΡΡ Π±Π°ΠΉΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
temp = data[1];
temp = temp<<8;
temp |= data[0];
//ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΠΌ Π² Π³ΡΠ°Π΄ΡΡΡ
temp *= 0.0625;//0.0625 Π³ΡΠ°Π΄ΡΡΠ° Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΡ Π΄Π°Π½Π½ΡΡ
}
//Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ
return temp;
}
int main (void)
{
int temp;
char bufer[16]="123″ ;
lcd_init (LCD_DISP_ON);
lcd_puts (bufer);
while (1)
{
temp = temp_18b20();
if (temp > 1000)//Π΅ΡΠ»ΠΈ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ° <0
{
temp = 4096 — temp;
temp = -temp;
}
sprintf (bufer," temp=%i «, temp);
lcd_clrscr ();
lcd_puts (bufer);
lcd_putc (223);
lcd_putc ('C');
}
}
ΠΠ°ΡΠ΅ΠΌ Π½Π°Π²Π΅ΡΡΠΈ ΠΊΡΡΡΠΎΡ Π½Π° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΈ ΡΠ΅Π»ΡΠΊΠΎΠΌ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡΡΠΈ ΠΎΡΠΊΡΡΡΡ ΠΎΠΊΠ½ΠΎ Edit Properties Ρ Π²ΡΠΏΠ°Π΄Π°ΡΡΠΈΠΌ ΠΌΠ΅Π½Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π² ΠΏΡΠ½ΠΊΡΠ΅ Programm File Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ hex-ΡΠ°ΠΉΠ» ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ GccApplication1. hex, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ Π² ΠΏΠ°ΠΏΠΊΠ΅ Π’Π΅ΡΠΌΠΎΠΌΠ΅ΡΡ.
ΠΠ°ΠΏΡΡΠΊ ΡΠΈΠΌΡΠ»ΡΡΠΈΠΈ ΠΊΠ»Π°Π²ΠΈΡΠ΅ΠΉ ΠΠ£Π‘Π ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ ΡΠ°Π±ΠΎΡΡ ΡΠ΅ΡΠΌΠΎΠΌΠ΅ΡΡΠ°.