ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ‚Π΅Ρ€ΠΌΠΎΠΌΠ΅Ρ‚Ρ€Π°-тСрмостата Π½Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½ΠΎΠΌ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ΅ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€ DS18B20 ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ PIC16F84

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

PIC16F84 (рис.2) относится ΠΊ ΡΠ΅ΠΌΠ΅ΠΉΡΡ‚Π²Ρƒ КМОП ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ². ΠžΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ΡΡ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ 1K x 14 Π±ΠΈΡ‚ EEPROM для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, 8-Π±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ 64Π±Π°ΠΉΡ‚ EEPROM памяти Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΈ этом ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Π½ΠΈΠ·ΠΊΠΎΠΉ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΡŽ ΠΈ Π²Ρ‹ΡΠΎΠΊΠΎΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с ΡΠ΅ΠΌΠ΅ΠΉΡΡ‚Π²ΠΎΠΌ PIC16F5X ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ список ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Ρ€Π°Π½Π΅Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ². ВсС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ‚Π΅Ρ€ΠΌΠΎΠΌΠ΅Ρ‚Ρ€Π°-тСрмостата Π½Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½ΠΎΠΌ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ΅ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€ DS18B20 ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ PIC16F84 (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ВСхничСскоС Π·Π°Π΄Π°Π½ΠΈΠ΅ ОписаниС Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚Π΅Ρ€ΠΌΠΎΠΌΠ΅Ρ‚Ρ€Π° DS18B20

ОписаниС ΠœΠš PIC16F84

ОписаниС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ Листинг ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

ВСхничСскоС Π·Π°Π΄Π°Π½ΠΈΠ΅

НСобходимо Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚Π΅Ρ€ΠΌΠΎΠΌΠ΅Ρ‚Ρ€-тСрмостат Π½Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½ΠΎΠΌ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ΅ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€ DS18B20, ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ PIC16F84. Π”Π°Π½Π½ΠΎΠ΅ устройство ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ для измСрСния Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° Π΅Π΅ Π½Π° Π΄ΠΈΡΠΏΠ»Π΅ΠΉ.

ОписаниС Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚Π΅Ρ€ΠΌΠΎΠΌΠ΅Ρ‚Ρ€Π° DS18B20

DS18B20 — Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ Ρ‚Π΅Ρ€ΠΌΠΎΠΌΠ΅Ρ‚Ρ€ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΎΡ‚ 9 Π΄ΠΎ 12-bit, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒΡΡ Π² EEPROM памяти ΠΏΡ€ΠΈΠ±ΠΎΡ€Π°. DS18B20 обмСниваСтся Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎ 1-Wire шинС ΠΈ ΠΏΡ€ΠΈ этом ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊ СдинствСнным устройством Π½Π° Π»ΠΈΠ½ΠΈΠΈ Ρ‚Π°ΠΊ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Π³Ρ€ΡƒΠΏΠΏΠ΅. ВсС процСссы Π½Π° ΡˆΠΈΠ½Π΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΌ микропроцСссором.

Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ ΠΎΡ‚ -55Β°C Π΄ΠΎ +125Β°C ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ 0.5Β°C Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ -10Β°C Π΄ΠΎ +85Β°C. Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, DS18B20 ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΈΡ‚Π°Ρ‚ΡŒΡΡ напряТСниСм Π»ΠΈΠ½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… («parasite power»), ΠΏΡ€ΠΈ отсутствии внСшнСго источника напряТСния.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ DS18B20 ΠΈΠΌΠ΅Π΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ 64-Π±ΠΈΡ‚Π½Ρ‹ΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт, ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ с ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎΠΌ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² DS18B20 установлСнных Π½Π° ΠΎΠ΄Π½ΠΎΠΉ шинС. Π’Π°ΠΊΠΎΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ микропроцСссор, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ мноТСство Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² DS18B20, распрСдСлСнных ΠΏΠΎ Π±ΠΎΠ»ΡŒΡˆΠΎΠΌΡƒ участку. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ Π²Ρ‹Π³ΠΎΠ΄Ρƒ ΠΈΠ· ΡΡ‚ΠΎΠΉ особСнности, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ систСмы контроля Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ Π² Π·Π΄Π°Π½ΠΈΡΡ…, ΠΈ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΠ»ΠΈ ΠΌΠ°ΡˆΠΈΠ½Π°Ρ…, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π½Ρ‹ΠΌΠΈ процСссами.

Рис. 1 ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π±Π»ΠΎΠΊ-схСму DS18B20, ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ² Π΄Π°ΡŽΡ‚ΡΡ Π² Π’Π°Π±Π»ΠΈΡ†Π΅ 1. 64-Π±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΉ ROM Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΡ€ΠΈΠ±ΠΎΡ€Π°. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Π°Ρ ΠΏΠ°ΠΌΡΡ‚ΡŒ содСрТит 2-Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π½Ρ‹ΠΉ рСгистр, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ…Ρ€Π°Π½ΠΈΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΏΠΎ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΡŽ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π½ΠΎΠ³ΠΎ прСобразования. Π”Π²Π° ΠΎΠ΄Π½ΠΎΠ±Π°ΠΉΡ‚ΠΎΠ²Ρ‹Ρ… рСгистра Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ контроля Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ (Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π½ΠΎΠΉ схСмы TH ΠΈ TL), ΠΈ ΠΊ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Ρƒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. РСгистр ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°ΡŽΡ‰ΡƒΡŽ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠ³ΠΎ прСобразоватСля Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΊ 9, 10, 11, ΠΈΠ»ΠΈ 12 Π±ΠΈΡ‚Π°ΠΌ, это ΠΈ Π²Π»ΠΈΡΠ΅Ρ‚ Π½Π° Π²Ρ€Π΅ΠΌΡ конвСртирования Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹. TH, TLΠΈ рСгистры ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ энСргонСзависимы (EEPROM), Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΎΠ½ΠΈ сохранят Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ±ΠΎΡ€ — Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½.

DS18B20 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ 1-Wire ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» — ΠΏΡ€ΠΈ этом формируСтся соСдинСниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ осущСствляСт ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΡŽ Π½Π° ΡˆΠΈΠ½Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ всСго ΠΎΠ΄ΠΈΠ½ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ сигнал. Π¨ΠΈΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΊ ΠΈΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΡƒ питания Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ рСзистор, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ всС устройства связаны с ΡˆΠΈΠ½ΠΎΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ соСдинСниС Ρ‡Π΅Ρ€Π΅Π· Z-состояния ΠΈΠ»ΠΈ Π²Ρ…ΠΎΠ΄ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ стока. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ эту ΡˆΠΈΠ½Ρƒ микропроцСссор (устройство управлСния) ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π°Π΅Ρ‚ся ΠΊ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°ΠΌ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ 64-Π±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΡ€ΠΈΠ±ΠΎΡ€Π°. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΡ€ΠΈΠ±ΠΎΡ€ ΠΈΠΌΠ΅Π΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄, число ΠΏΡ€ΠΈΠ±ΠΎΡ€ΠΎΠ², ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ шинС, фактичСски Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎ.

Другая ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ DS18B20 — ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π±Π΅Π· внСшнСго питания. Π­Ρ‚Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ прСдоставляСтся Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ рСзистор. Высокий сигнал ΡˆΠΈΠ½Ρ‹ заряТаСт Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ кондСнсатор (CPP), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΈΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠ±ΠΎΡ€, ΠΊΠΎΠ³Π΄Π° Π½Π° ΡˆΠΈΠ½Π΅ Π½ΠΈΠ·ΠΊΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ носит Π½Π°Π·Π²Π°Π½ΠΈΠ΅ «ΠŸΠ°Ρ€Π°Π·ΠΈΡ‚Π½ΠΎΠ΅ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅». ΠŸΡ€ΠΈ этом максимальная измСряСмая Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π° составляСт + 100 Β°C. Для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€ Π΄ΠΎ + 125 Β°C Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ внСшнСС ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅.

Рис. 1. Π‘Π»ΠΎΠΊ-схСма DS18B20

Π’Π°Π±Π»ΠΈΡ†Π° 1

ОписаниС ΠœΠš PIC16F84

PIC16F84 (рис.2) относится ΠΊ ΡΠ΅ΠΌΠ΅ΠΉΡΡ‚Π²Ρƒ КМОП ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ². ΠžΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ΡΡ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ 1K x 14 Π±ΠΈΡ‚ EEPROM для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, 8-Π±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ 64Π±Π°ΠΉΡ‚ EEPROM памяти Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΈ этом ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Π½ΠΈΠ·ΠΊΠΎΠΉ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΡŽ ΠΈ Π²Ρ‹ΡΠΎΠΊΠΎΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с ΡΠ΅ΠΌΠ΅ΠΉΡΡ‚Π²ΠΎΠΌ PIC16F5X ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ список ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Ρ€Π°Π½Π΅Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ². ВсС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ состоят ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ слова (14 Π±ΠΈΡ‚ ΡˆΠΈΡ€ΠΈΠ½ΠΎΠΉ) ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΡŽΡ‚ся Π·Π° ΠΎΠ΄ΠΈΠ½ Ρ†ΠΈΠΊΠ» (400 нс ΠΏΡ€ΠΈ 10 ΠœΠ“Ρ†), ΠΊΡ€ΠΎΠΌΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π·Π° Π΄Π²Π° Ρ†ΠΈΠΊΠ»Π° (800 нс). PIC16F84 ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅, ΡΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ ΠΎΡ‚ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… источников, ΠΈ Π²ΠΎΡΡŒΠΌΠΈΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΉ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΉ стСк. ΠŸΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΡ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ 8-Π±ΠΈΡ‚Π½Ρ‹ΠΉ Ρ‚Π°ΠΉΠΌΠ΅Ρ€/счСтчик с 8-Π±ΠΈΡ‚Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ (фактичСски 16 — Π±ΠΈΡ‚Π½Ρ‹ΠΉ Ρ‚Π°ΠΉΠΌΠ΅Ρ€) ΠΈ 13 Π»ΠΈΠ½ΠΈΠΉ Π΄Π²ΡƒΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°. Высокая нагрузочная ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ (25 мА ΠΌΠ°ΠΊΡ. Π²Ρ‚Π΅ΠΊΠ°ΡŽΡ‰ΠΈΠΉ Ρ‚ΠΎΠΊ, 20 мА ΠΌΠ°ΠΊΡ. Π²Ρ‹Ρ‚Π΅ΠΊΠ°ΡŽΡ‰ΠΈΠΉ Ρ‚ΠΎΠΊ) Π»ΠΈΠ½ΠΈΠΉ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‚ внСшниС Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ ΠΈ, Ρ‚Π΅ΠΌ самым, ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ общая ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ систСмы. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Π±Π°Π·Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² PIC16F84 поддСрТиваСтся ассСмблСром, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ симулятором, внутрисхСмным эмулятором (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„ΠΈΡ€ΠΌΡ‹ MicrochiΡ€) ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ΠΎΠΌ.

Рис. 2. МК PIC16F84

БСрия PIC16F84 ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΡˆΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ спСктра ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎΡ‚ ΡΡ…Π΅ΠΌ высокоскоростного управлСния Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈ ΡΠ»Π΅ΠΊΡ‚ричСскими двигатСлями Π΄ΠΎ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‡Π½Ρ‹Ρ… ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ΅ΠΌΠΎΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠ±ΠΎΡ€ΠΎΠ² ΠΈ ΡΠ²ΡΠ·Π½Ρ‹Ρ… процСссоров. НаличиС ΠŸΠ—Π£ позволяСт ΠΏΠΎΠ΄ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π² ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… (ΠΊΠΎΠ΄Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°, скорости двигатСля, частоты ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ° ΠΈ Ρ‚. Π΄.).

ΠœΠ°Π»Ρ‹Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ корпусов, ΠΊΠ°ΠΊ для ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ, Ρ‚Π°ΠΊ ΠΈ Π΄Π»Ρ повСрхностного ΠΌΠΎΠ½Ρ‚Π°ΠΆΠ°, Π΄Π΅Π»Π°Π΅Ρ‚ эту ΡΠ΅Ρ€ΠΈΡŽ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½ΠΎΠΉ для ΠΏΠΎΡ€Ρ‚Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Низкая Ρ†Π΅Π½Π°, ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ, быстродСйствиС, простота использования ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° Π΄Π΅Π»Π°Π΅Ρ‚ PIC16F84 ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π΄Π°ΠΆΠ΅ Π² Ρ‚Π΅Ρ… областях, Π³Π΄Π΅ Ρ€Π°Π½Π΅Π΅ Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΠ»ΠΈΡΡŒ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹. НапримСр, Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρ‹, Π·Π°ΠΌΠ΅Π½Π° ТСсткой Π»ΠΎΠ³ΠΈΠΊΠΈ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… систСмах, сопроцСссоры.

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ встроСнный Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ программирования EEPROM кристалла PIC16F84 позволяСт Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ΄ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ трСбования Π΄Π°ΠΆΠ΅ послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ассСмблирования ΠΈ Ρ‚Сстирования. Π­Ρ‚Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использована ΠΊΠ°ΠΊ для тираТирования, Ρ‚Π°ΠΊ ΠΈ Π΄Π»Ρ занСсСния ΠΊΠ°Π»ΠΈΠ±Ρ€ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΡƒΠΆΠ΅ послС ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ тСстирования.

ВСхничСскиС характСристики:

Высокоскоростной RISC процСссор

Β· Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 35 простых ΠΊΠΎΠΌΠ°Π½Π΄;

Β· всС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π·Π° ΠΎΠ΄ΠΈΠ½ Ρ†ΠΈΠΊΠ» (400ns), ΠΊΡ€ΠΎΠΌΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ…ΡΡ Π·Π° Π΄Π²Π° Ρ†ΠΈΠΊΠ»Π°;

Β· рабочая частота 0 Π“Ρ†… 10 ΠœΠ“Ρ† (min 400 нс Ρ†ΠΈΠΊΠ» ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹);

Β· 14- Π±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹;

Β· 8- Π±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅;

Β· 1024×14 элСктричСски ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ памяти Π½Π° ΠΊΡ€ΠΈΡΡ‚Π°Π»Π»Π΅ (EEPROM);

Β· 36×8 рСгистров ΠΎΠ±Ρ‰Π΅Π³ΠΎ использования;

Β· 64×8 элСктричСски ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ EEPROM памяти для Π΄Π°Π½Π½Ρ‹Ρ…;

Β· Π²ΠΎΡΡŒΠΌΠΈΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΉ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΉ стСк;

Β· прямая, косвСнная ΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ адрСсация Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄;

Β· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ источника прСрывания:

Π¨ Π²Π½Π΅ΡˆΠ½ΠΈΠΉ Π²Ρ…ΠΎΠ΄ INT,

Π¨ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° RTCC,

Π¨ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ сигналов Π½Π° Π»ΠΈΠ½ΠΈΡΡ… ΠΏΠΎΡ€Ρ‚Π° B,

Π¨ ΠΏΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡŽ записи Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ EEPROM.

ΠŸΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΡ ΠΈ Π’Π²ΠΎΠ΄/Π’Ρ‹Π²ΠΎΠ΄

Ё 13 Π»ΠΈΠ½ΠΈΠΉ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° с ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ настройкой;

Ё Π²Ρ‚Π΅ΠΊΠ°ΡŽΡ‰ΠΈΠΉ/Π²Ρ‹Ρ‚Π΅ΠΊΠ°ΡŽΡ‰ΠΈΠΉ Ρ‚ΠΎΠΊ для управлСния свСтодиодами.

Β· макс. Π²Ρ‹Ρ‚Π΅ΠΊΠ°ΡŽΡ‰ΠΈΠΉ Ρ‚ΠΎΠΊ — 20 мА.,

Β· макс. Π²Ρ‚Π΅ΠΊΠ°ΡŽΡ‰ΠΈΠΉ Ρ‚ΠΎΠΊ — 25 мА.,

Ё TMR0: 8 — Π±ΠΈΡ‚Π½Ρ‹ΠΉ Ρ‚Π°ΠΉΠΌΠ΅Ρ€/счСтчик RTCC с 8-Π±ΠΈΡ‚Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ.

Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ свойства

Ё Π°Π²Ρ‚оматичСский сброс ΠΏΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ;

Ё Ρ‚Π°ΠΉΠΌΠ΅Ρ€ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΡ€ΠΈ сбросС;

Ё Ρ‚Π°ΠΉΠΌΠ΅Ρ€ запуска Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°;

Ё Watchdog Ρ‚Π°ΠΉΠΌΠ΅Ρ€ WDT с ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΌ встроСнным Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½ΡƒΡŽ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ;

Ё EEPROM Π±ΠΈΡ‚ сСкрСтности для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΊΠΎΠ΄Π°;

Ё ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‡Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ SLEEP;

Ё Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌΡ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π±ΠΈΡ‚Ρ‹ для установки Ρ€Π΅ΠΆΠΈΠΌΠ° возбуТдСния встроСнного Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°:

Π¨ RC Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€: RC;

Π¨ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΊΠ²Π°Ρ€Ρ†Π΅Π²Ρ‹ΠΉ Ρ€Π΅Π·ΠΎΠ½Π°Ρ‚ΠΎΡ€: XT;

Π¨ Π²Ρ‹ΡΠΎΠΊΠΎΡ‡Π°ΡΡ‚ΠΎΡ‚Π½Ρ‹ΠΉ ΠΊΠ²Π°Ρ€Ρ†Π΅Π²Ρ‹ΠΉ Ρ€Π΅Π·ΠΎΠ½Π°Ρ‚ΠΎΡ€: HS;

Π¨ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‡Π½Ρ‹ΠΉ низкочастотный кристалл: LP;

Ё Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΠΎΠ΅ устройство программирования EEPROM памяти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…; ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π΅ Π½ΠΎΠΆΠΊΠΈ.

КМОП тСхнология

Ё ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‡Π½Π°Ρ высокоскоростная КМОП EPROM тСхнология;

Ё ΡΡ‚атичСский ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π² Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅;

Ё ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ напряТСний питания ΠΈ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€:

Β· коммСрчСский: 2.0… 6.0 Π’, 0…+70Π‘,

Β· ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½Ρ‹ΠΉ: 2.0… 6.0 Π’, −40…+70Π‘,

Β· Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ: 2.0… 6.0 Π’, 40…+125Π‘;

Ё Π½ΠΈΠ·ΠΊΠΎΠ΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅:

Β· 2 мА Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎ для 5 Π’, 4ΠœΠ“Ρ†,

Β· 15 мкА Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎ для 2 Π’, 32ΠšΠ“Ρ†,

Β· 1 мкА Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎ для SLEEP Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΏΡ€ΠΈ 2 Π’.

Π’ΠΈΠΏΡ‹ корпусов ΠΈ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ

ΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΡ корпусов для кристаллов PIC16F84. Π’ΠΈΠΏ корпуса указываСтся Π² ΠœΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠ΅ ΠΏΡ€ΠΈ Π·Π°ΠΊΠ°Π·Π΅ микросхСм. ΠšΠΎΡ€ΠΏΡƒΡΠ° Π±Ρ‹Π²Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с 18 Π’Ρ‹Π²ΠΎΠ΄Π°ΠΌΠΈ.

PDIP — ΠžΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ пластмассовый двухрядный корпус

SOIC — ΠœΠ°Π»ΠΎΠ³Π°Π±Π°Ρ€ΠΈΡ‚Π½Ρ‹ΠΉ DIP корпус для ΠΌΠΎΠ½Ρ‚Π°ΠΆΠ° Π½Π° ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ

ΠœΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΡ€ΠΈ Π·Π°ΠΊΠ°Π·Π΅

ΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ микросхСм складываСтся ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ»Π΅ΠΉ:

Π€ΠΈΡ€ΠΌ. Π½ΠΎΠΌΠ΅Ρ€/Частота Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°/Π’Π΅ΠΌΠΏΠ΅Ρ€. Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½/ΠšΠΎΡ€ΠΏΡƒΡ/ΠŸΡ€ΠΈΠΌΠ΅Ρ‡.

Π€ΠΈΡ€ΠΌ. Π½ΠΎΠΌΠ΅Ρ€: PIC16F84 Vdd range 4…6 V,

PIC16LC84 Vdd range 2…6 V;

Частота Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°:

04 —-> 4 mHz (Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ 4 ΠœΠ“Ρ†. ΠΏΡ€ΠΈΠ±ΠΎΡ€ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π΄ΠΎ 10 ΠœΠ“Ρ†.!),

10 —-> 10mHz;

Π’Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π½Ρ‹ΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π±Ρ‹Π²Π°Π΅Ρ‚:

— ΠΎΡ‚ 0Π‘ Π΄ΠΎ +70Π‘,

I ΠΎΡ‚-40Π‘ Π΄ΠΎ +85Π‘,

E ΠΎΡ‚-40Π‘ Π΄ΠΎ +125Π‘;

ΠšΠΎΡ€ΠΏΡƒΡ обозначаСтся:

P — ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ пластмассовый DIP,

SO -300 mil SOIC.

Рис. 3. Π’Π΅Ρ€ΠΌΠΎΠΌΠ΅Ρ‚Ρ€ с Π²Ρ‹Π½ΠΎΡΠ½Ρ‹ΠΌ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠΌ

ОписаниС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π Π°Π±ΠΎΡ‚Π° Ρ‚Π΅Ρ€ΠΌΠΎΠΌΠ΅Ρ‚Ρ€Π° начинаСтся с ΠΎΠΏΡ€Π°ΡˆΠΈΠ²Π°Π½ΠΈΡ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹, послС Ρ‡Π΅Π³ΠΎ эта Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π° выводится Π½Π° Π΄ΠΈΡΠΏΠ»Π΅ΠΉ, ΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Π½Π΅Π΅ ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠ΅ΠΊ, МК ΡƒΠΏΡ€Π°Π²Π»ΡΠ΅Ρ‚ Ρ€Π΅Π»Π΅.

Рис. 4. Бтруктурная схСма Ρ‚Π΅Ρ€ΠΌΠΎΠΌΠ΅Ρ‚Ρ€Π° Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ Ρ‚Π΅Ρ€ΠΌΠΎΠΌΠ΅Ρ‚Ρ€ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€

Рис. 5. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ схСма Ρ‚Π΅Ρ€ΠΌΠΎΠΌΠ΅Ρ‚Ρ€Π° Рис. 6. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Π°Ρ схСма Ρ‚Π΅Ρ€ΠΌΠΎΠΌΠ΅Ρ‚Ρ€Π° Рис. 7. ΠŸΠ΅Ρ‡Π°Ρ‚Π½Π°Ρ ΠΏΠ»Π°Ρ‚Π° Ρ‚Π΅Ρ€ΠΌΠΎΠΌΠ΅Ρ‚Ρ€Π°

Листинг ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

LIST P=16F84

;ОписаниС встроСнных Π² ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ рСсурсов

#include

__config _XT_OSC & _WDT_OFF & _PWRTE_ON

F0 EQU 0

RTIF equ 2

;ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ ΠΊΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅

NumL EQU 0x0C

NumH EQU 0x0D

Thou EQU 0x0E

Hund EQU 0x0F

Tens EQU 0×10

Ones EQU 0×11

I EQU 0×13

A EQU 0×14

BACKUPW EQU 0×15

BACKUPS EQU 0×16

RAZR0 EQU 0×17 ;Π’Ρ€ΠΈ ячСйки, содСрТат сСмисСгмСнтный ΠΊΠΎΠ΄ для Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€

RAZR1 EQU 0×18

RAZR2 EQU 0×19

;Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ FLAGS ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π±ΠΈΡ‚ сигнализируСт ΠΎ:

;0 — Π½Π°ΠΆΠ°Ρ‚Π° ΠΊΠ½ΠΎΠΏΠΊΠ° Π²Ρ‹Π·ΠΎΠ²Π° Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°

;1 — Π½Π°ΠΆΠ°Ρ‚Π° ΠΊΠ½ΠΎΠΏΠΊΠ° установки Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°

;2 — нСобходимости обновлСния Π² ΡΠΊΡ€Π°Π½Π½ΠΎΠΌ Π±ΡƒΡ„Π΅Ρ€Π΅ ΠΎΡΡ‚Π°Π²ΡˆΠ΅Π³ΠΎΡΡ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π² Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π΅

;3 — ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π²Ρ‹Π·ΠΎΠ²Π° Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄Π°Ρ‚ΡŒ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠΉ сигнал

;4 — Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»Π°ΡΡŒ Π²Ρ‹Π΄Π΅Ρ€ΠΆΠΊΠ° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄Π°Ρ‚ΡŒ условный Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠΉ сигнал

;5 — Ρ€Π°Π· Π² ΡΠ΅ΠΊΡƒΠ½Π΄Ρƒ сигнализируСт ΠΎ Π½Π΅ΠΎΠ±Ρ…одимости считывания ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΈΠΉ DS1820

;6 — нСобходимости Π²Ρ‹Π²ΠΎΠ΄Π° дСсятичной Ρ‚ΠΎΡ‡ΠΊΠΈ

FLAGS EQU 0x1A

J EQU 0x1B

K EQU 0x1C

TIME0 EQU 0x1D

TIME1 EQU 0x1E

PA EQU 0x1F

T7SEG0 EQU 0×20

T7SEG1 EQU 0×21

T7SEG2 EQU 0×22

T_IND EQU 0×23

TEMP_READH EQU 0×24

TEMP_READL EQU 0×25

TL EQU 0×26

TH EQU 0×27

TIME2 EQU 0×28

I_BYTE EQU 0×29

_N EQU 0x2A

TEMP EQU 0x2B

O_BYTE EQU 0x2C

LOOP1 EQU 0x2D

LOOP2 EQU 0x2E

T_ALARM EQU 0x2F

DT_ALARM EQU 0×30

CONSTANT DATA_PIN=7

;****** ΠΠ°Ρ‡Π°Π»ΡŒΠ½Π°Ρ инициализация ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ *******

BSF STATUS, RP0 ;УстанавливаСм страницу памяти 1

CLRF TRISA ;НастраиваСм всС Π»ΠΈΠ½ΠΈΠΈ ΠΏΠΎΡ€Ρ‚Π°, А ΠΈ Π’ Π½Π° Π²Ρ‹Π²ΠΎΠ΄

CLRF TRISB

GOTO BEGIN_PROG

;***** Π’ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π° Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ ΠΎΡ‚ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°*************

BCF INTCON, GIE ;Π—Π°ΠΏΡ€Π΅Ρ‰Π°Π΅ΠΌ прСрывания

MOVWF BACKUPW ;БохраняСм содСрТимоС Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ рСгистра

MOVF STATUS, 0 ;ΠΈ рСгистра STATUS

MOVWF BACKUPS

;ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρ‹

INCF TIME0, 1

MOVF TIME0, 0

SUBLW.81 ;122

BTFSC STATUS, C

GOTO L22

CLRF TIME0

INCF TIME2, 1

L18 MOVF TIME2, 0

SUBLW.2 ;УстанавливаСм ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ измСрСния Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ Ρ€Π°Π²Π½Ρ‹ΠΌ 1 сСк.

BTFSC STATUS, C

GOTO L26

CLRF TIME2

BSF FLAGS, 5

L26 BTFSS FLAGS, 0 ;ΠšΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ

GOTO L22 ;Π²Ρ‹Π·ΠΎΠ²Π° Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°

BTFSS FLAGS, 1 ;Если Π½Π°ΠΆΠ°Ρ‚Π° ΠΊΠ½ΠΎΠΏΠΊΠ° установки Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°

GOTO L22

BCF FLAGS, 2

BSF FLAGS, 7

INCF T_ALARM, 1

MOVF T_ALARM, 0

SUBLW 0x7D ;Если достиг 125 градусов, сбрасываСм Π΄ΠΎ -55 градусов

BTFSS STATUS, Z

GOTO L22

MOVLW 0xC9

MOVWF T_ALARM

;ΠžΠΏΡ€ΠΎΡ состояния ΠΊΠ½ΠΎΠΏΠΎΠΊ управлСния

L22 BCF PA, 0 ;Π€Π»Π°Π³ΠΈ, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅

BCF FLAGS, 1 ;состояниС ΠΊΠ½ΠΎΠΏΠΎΠΊ.

BCF PA, 1 ;Π’Ρ‹ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹

BCF PA, 2

BSF PA, 4

MOVF PA, 0

MOVWF PORTA

BSF STATUS, RP0 ;УстанавливаСм страницу памяти 1

BSF TRISB, 5 ;Разряды ΠΏΠΎΡ€Ρ‚Π° Π’, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΊ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌ настраиваСм Π½Π° Π²Π²ΠΎΠ΄

BSF TRISB, 6

BCF STATUS, RP0 ;УстанавливаСм страницу памяти 0

BTFSC PORTB, 6 ;УстанавливаСм Ρ„Π»Π°Π³ΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΡΠΎΡΡ‚ояния ΠΊΠ½ΠΎΠΏΠΎΠΊ

GOTO L23

BSF FLAGS, 0

MOVLW.255

MOVWF T_IND

L23 DECFSZ T_IND

GOTO L24

BCF FLAGS, 0

BTFSC FLAGS, 7

CALL SEEPROM

BCF FLAGS, 7

L24 BTFSS PORTB, 5

BSF FLAGS, 1

BSF STATUS, RP0 ;УстанавливаСм страницу памяти 1

BCF TRISB, 5 ;Разряды ΠΏΠΎΡ€Ρ‚Π° Π’, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΊ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌ настраиваСм Π½Π° Π²Ρ‹Π²ΠΎΠ΄

BCF TRISB, 6

BCF STATUS, RP0 ;УстанавливаСм страницу памяти 1

;ДинамичСская индикация содСрТимого RAZR0, RAZR1, RAZR2

MOVLW.0 ;ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌ разряд 0

SUBWF I, 0

BTFSS STATUS, Z

GOTO L2

MOVLW B'10 000 000'

ANDWF PORTB, 1 ;ΠžΡ‡ΠΈΡ‰Π°Π΅ΠΌ разряды ΠΏΠΎΡ€Ρ‚Π°, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΊ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρƒ

MOVF RAZR0, 0

IORWF PORTB, 1 ;Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡƒΡŽ Ρ†ΠΈΡ„Ρ€Ρƒ

BSF PA, 0 ;Π’ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ разряд ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°

MOVF PA, 0

MOVWF PORTA

GOTO L4

L2 MOVLW.1 ;ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌ разряд 1

SUBWF I, 0

BTFSS STATUS, Z

GOTO L3

MOVLW B'10 000 000'

ANDWF PORTB, 1 ;ΠžΡ‡ΠΈΡ‰Π°Π΅ΠΌ разряды ΠΏΠΎΡ€Ρ‚Π°, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΊ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρƒ

MOVF RAZR1, 0

IORWF PORTB, 1 ;Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡƒΡŽ Ρ†ΠΈΡ„Ρ€Ρƒ

BSF PA, 1

BTFSC FLAGS, 6

BCF PA, 4

BTFSS FLAGS, 6

BSF PA, 4

MOVF PA, 0

MOVWF PORTA

GOTO L4

L3 MOVLW B'10 000 000'

ANDWF PORTB, 1 ;ΠžΡ‡ΠΈΡ‰Π°Π΅ΠΌ разряды ΠΏΠΎΡ€Ρ‚Π°, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΊ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρƒ

MOVF RAZR2, 0

IORWF PORTB, 1 ;Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡƒΡŽ Ρ†ΠΈΡ„Ρ€Ρƒ

BSF PA, 2

MOVF PA, 0

MOVWF PORTA

L4 INCF I, 1

MOVLW.3 ;ΠžΠ±Π½ΡƒΠ»ΠΈΡ‚ΡŒ счСтчик разрядов, Ссли достиг 3

SUBWF I, 0

BTFSC STATUS, Z

CLRF I

;Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ прСрывания ΠΎΡ‚ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°

IRET BCF INTCON, RTIF ;Бброс Ρ„Π»Π°Π³Π° прСрывания ΠΎΡ‚ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°

MOVF BACKUPS, 0

MOVWF STATUS

MOVF BACKUPW, 0 ;ВосстановлСниС Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ рСгистра

BSF INTCON, GIE ;Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ

RETFIE ;Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΈΠ· ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ прСрывания

;****** ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ *****************

BEGIN_PROG

MOVLW B'1 000 011' ;ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ΠΊ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρƒ ΠΈ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ коэффициСнт

MOVWF OPTION_REG ;дСлСния 1:16, сигнал Π½Π° Ρ‚Π°ΠΉΠΌΠ΅Ρ€ ΠΎΡ‚ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°

BCF STATUS, RP0 ;УстанавливаСм страницу памяти 0

CLRF PORTB

MOVLW B'111'

MOVWF PA

MOVF PA, 0

MOVWF PORTA

CLRF I ;Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅

CLRF FLAGS ;ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

CALL START_DS

CLRF TMR0

CLRF TEMP_READL

CLRF TEMP_READH

CALL LEEPROM

MOVLW 0×02

MOVWF DT_ALARM

CLRF TIME0

CLRF TIME2

CLRF TMR0

MOVLW B'10 100 000' ;Π Π°Π·Ρ€Π΅ΡˆΠ°Π΅ΠΌ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°

MOVWF INTCON

BCF FLAGS, 5

BCF FLAGS, 3

MOVLW B'10 111 111' ;(Ρ‚Ρ€ΠΈ Ρ‚ΠΈΡ€Π΅ ΠΏΡ€ΠΈ стартС)

MOVWF RAZR0

MOVWF RAZR1

MOVWF RAZR2

CALL START_DS

;ΠŸΠ°ΡƒΠ·Π° Π΄ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ достовСрного Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° измСрСния Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

L0 BTFSS FLAGS, 5

GOTO L0

CALL START_DS

BCF FLAGS, 5

L00 BTFSS FLAGS, 5

GOTO L00

;****** Основной Ρ†ΠΈΠΊΠ» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ******

L10 CLRWDT

L25 BTFSS FLAGS, 0

GOTO L12 ;НСобходимо ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

BTFSC FLAGS, 2

GOTO L10

BSF FLAGS, 2

BCF FLAGS, 6 ;ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ запятой

BTFSC T_ALARM, 7 ;ВычислСниС Ρ†Π΅Π»ΠΎΠΉ части

GOTO L70 ;Π’Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π° Π½ΠΈΠΆΠ΅ нуля

MOVF T_ALARM, 0

MOVWF NumL

GOTO L71

L70 MOVLW 0xFF

MOVWF NumL

MOVF T_ALARM, 0

SUBWF NumL, 1

L71 CLRF NumH

CALL Convert

MOVF Ones, 0

CALL DS7SEG

MOVWF RAZR0

MOVF Tens, 0

CALL DS7SEG

MOVWF RAZR1

MOVF Hund, 0

CALL DS7SEG

MOVWF RAZR2

BTFSC T_ALARM, 7

BCF RAZR2, 6 ;Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π·Π½Π°ΠΊΠ° минус ΠΏΡ€ΠΈ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π΅

GOTO L10

L12 BCF FLAGS, 2 ;ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

BTFSC FLAGS, 3

CALL CONV_T

BCF FLAGS, 3

BTFSS FLAGS, 5

GOTO L10

;ΠŸΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ΡΡ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ сСкунду

BCF FLAGS, 5

BSF FLAGS, 3

CALL READ_T

CALL START_DS

ANDLW 0xFF

BTFSS STATUS, Z

GOTO L10

MOVLW B'1'

MOVWF RAZR0

MOVWF RAZR1

MOVWF RAZR2

BCF FLAGS, 3

GOTO L10 ;ВозвращаСмся Π½Π° Π½Π°Ρ‡Π°Π»ΠΎ Ρ†ΠΈΠΊΠ»Π°

;********************************************************

;ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° прСобразования дСсятичной Ρ†ΠΈΡ„Ρ€Ρ‹ ΠΈΠ· WREG Π² ΠΊΠΎΠ΄ 7-ΠΌΠΈ сСгмСнтного ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°

DS7SEG ADDWF PCL, 1

RETLW B'1 000 000' ;0

RETLW B'1 111 001' ;1

RETLW B'100 100' ;2

RETLW B'110 000' ;3

RETLW B'11 001' ;4

RETLW B'10 010' ;5

RETLW B'10' ;6

RETLW B'1 111 000' ;7

RETLW B'0' ;8

RETLW B'10 000' ;9

RETLW B'1 111 111' ;ΠŸΡ€ΠΎΠ±Π΅Π»

RETLW B'111 111' ;ΠœΠΈΠ½ΡƒΡ

;********************************************************

;ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° числа Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° HEX16 (ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ NumL, NumH) Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ BSD

;(ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Thou, Hund, Tens, Ones)

Convert swapf NumH, w

IORLW B'11 110 000'

movwf Thou

addwf Thou, 1

addlw 0xE2

movwf Hund

addlw 0×32

movwf Ones

movf NumH, 0

andlw 0x0F

addwf Hund, 1

addwf Hund, 1

addwf Ones, 1

addlw 0xE9

movwf Tens

addwf Tens, 1

addwf Tens, 1

swapf NumL, 0

andlw 0x0F

addwf Tens, 1

addwf Ones, 1

rlf Tens, 1

rlf Ones, 1

comf Ones, 1

rlf Ones, 1

movf NumL, 0

andlw 0x0F

addwf Ones, 1

rlf Thou, 1

movlw 0x0A

Lb1: addwf Ones, 1

decf Tens, 1

btfss 3, 0

goto Lb1

Lb2: addwf Tens, 1

decf Hund, 1

btfss 3, 0

goto Lb2

Lb3: addwf Hund, 1

decf Thou, 1

btfss 3, 0

goto Lb3

Lb4: addwf Thou, 1

btfss 3, 0

goto Lb4

MOVLW Thou ;Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π½Π΅Π·Π½Π°Ρ‡Π°Ρ‰ΠΈΡ… Π½ΡƒΠ»Π΅ΠΉ

MOVWF FSR

MOVLW 3

MOVWF I

L54 MOVF F0, 0

ANDLW 0x0F

BTFSS STATUS, Z

RETURN ;Разряд Π½Π΅ Ρ€Π°Π²Π΅Π½ 0

MOVLW 0x0A

MOVWF F0

INCF FSR

DECFSZ I

GOTO L54

RETURN

;ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° вычислСния Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ с Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎ 0.1 ΠΏΠΎ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΌ ΠΎΡ‚ DS18Π’20

;Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹: TEMP_READH, TEMP_READL, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ помСщаСтся Π² ΡΠΊΡ€Π°Π½Π½Ρ‹ΠΉ Π±ΡƒΡ„Π΅Ρ€

CONV_T MOVF TEMP_READL, 0

MOVWF NumL

MOVF TEMP_READH, 0

MOVWF NumH

BTFSC TEMP_READH, 7 ;ВычислСниС Ρ†Π΅Π»ΠΎΠΉ части

GOTO L30 ;Π’Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π° Π½ΠΈΠΆΠ΅ нуля

MOVLW.4 ;ВыдСляСм Ρ†Π΅Π»ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ значСния Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ Π½Π°.16d

MOVWF A

L61 BCF STATUS, C

RRF NumH, 1

RRF NumL, 1

DECFSZ A, 1

GOTO L61

MOVF NumL, 0

MOVWF TH

MOVF TEMP_READL, 0 ;ВычисляСм Π΄Π΅ΡΡΡ‚ΠΈΡ‡Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ

ANDLW B'1 111'

GOTO L50

L30 MOVLW.4 ;ВыдСляСм Ρ†Π΅Π»ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ значСния Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ Π½Π°.16d

MOVWF A

L62 BCF STATUS, C

RRF NumH, 1

RRF NumL, 1

DECFSZ A, 1

GOTO L62

MOVLW 0xFF

MOVWF TH

MOVF NumL, 0

SUBWF TH, 1

movlw 0xFF

movwf NumH

MOVF TEMP_READL, 0 ;ВычисляСм Π΄Π΅ΡΡΡ‚ΠΈΡ‡Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ

ANDLW B'1 111'

SUBWF NumH, 0

ANDLW B'1 111'

L50 MOVWF NumL

CLRF NumH

MOVLW.6

MOVWF A

L63 MOVF NumL, 0

ADDWF NumH, 1

DECFSZ A, 1

GOTO L63

MOVF NumH, 0

MOVWF NumL

CLRF NumH

CALL Convert

MOVLW 0x0A

SUBWF Tens, 0

BTFSC STATUS, Z

CLRF Tens

MOVLW.5 ;ΠžΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅

SUBWF Ones, 0

BTFSC STATUS, C

INCF Tens, 1

MOVF Tens, 0

MOVWF TL

;Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€

BTFSC T_ALARM, 7; ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ уставку

GOTO L72 ;Уставка Π½ΠΈΠΆΠ΅ нуля, Π·Π½Π°Ρ‡ΠΈΡ‚ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄

MOVF T_ALARM, 0 ;Уставка Π²Ρ‹ΡˆΠ΅ нуля

MOVWF NumL ;ΠŸΡ€ΠΈΠ±Π°Π²ΠΈΠΌ ΠΊ NumL Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ уставки ΠΈ

MOVLW.54 ;Π΄ΠΎΠ±Π°Π²ΠΈΠΌ 54, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΌΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ сравнСнии

ADDWF NumL, 1 ;ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ уставки (ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚)

GOTO L73 ;ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄

L72 MOVLW 0xFF ;ПоявляСмся здСсь ΠΏΡ€ΠΈ условии ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ уставки

MOVWF NumL

MOVF T_ALARM, 0

SUBWF NumL, 1

L73 BTFSC TEMP_READH, 7; ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ считанный ΠΊΠΎΠ΄ с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

GOTO L74 ;Π’Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π° Π½ΠΈΠΆΠ΅ нуля

MOVF TH, 0 ;Π’Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π° Π²Ρ‹ΡˆΠ΅ нуля ΠΈ ΠΎΠΏΡΡ‚ΡŒ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ 54, Π½ΠΎ

MOVWF NumH ;Π½Π΅ ΠΊ ΡΡ‡ΠΈΡ‚Π°Π½Π½Ρ‹ΠΌ с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° Π΄Π°Π½Π½Ρ‹ΠΌ,

MOVLW.54 ;Π° ΠΊ Ρ†Π΅Π»ΠΎΠΉ части вычислСнной Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

ADDWF NumH, 1

GOTO L76 ;ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄

L74 MOVF TH, 0 ;ПоявляСмся здСсь ΠΏΡ€ΠΈ условии ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

MOVWF NumH

BTFSC PA, 3 ;ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π»ΠΈ Π½Π°Π³Ρ€Π΅Π²Π°Ρ‚Π΅Π»ΡŒ!

CALL L2E ;Π²ΠΊΠ»ΡŽΡ‡Π΅Π½, Π·Π½Π°Ρ‡ΠΈΡ‚ сходим, Π΄ΠΎΠ±Π°Π²ΠΈΠΌ гистСрСзис ΠΈ Π²Π΅Ρ€Π½Π΅ΠΌΡΡ

MOVF NumH, 0 ;НСт Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π·Π½Π°Ρ‡ΠΈΡ‚ сравниваСм,

DECF NumL, 1

SUBWF NumL, 0; вычитая ΠΈΠ· ΡƒΡΡ‚Π°Π²ΠΊΠΈ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ

BTFSC STATUS, C

GOTO L2A ;ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄

L2B BSF PA, 3 ;Ссли измСрСнная Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π° Π½ΠΈΠΆΠ΅Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ нагрСватСля

MOVF PA, 0

MOVWF PORTA

GOTO L31 ;Π’Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

L2A BTFSC T_ALARM, 7; ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ Π΅Ρ‰Π΅ Ρ€Π°Π· уставку, Π½Π° ΡΠ»ΡƒΡ‡Π°ΠΉ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹, Π½ΠΎ

GOTO L2C; ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ уставки, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ Ρ‡Π΅Ρ€Π΅Π· 0

GOTO L2B; соотвСтствСнно ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΈΠ»ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π½Π°Π³Ρ€Π΅Π²Π°Ρ‚Π΅Π»ΡŒ

L2C BCF PA, 3 ;Ссли измСрСнная Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π° Π²Ρ‹ΡˆΠ΅Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ нагрСватСля

MOVF PA, 0

MOVWF PORTA

GOTO L31 ;Π’Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

L76 BTFSC PA, 3 ;ПоявляСмся здСсь ΠΏΡ€ΠΈ условии ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

CALL L2D ;ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π»ΠΈ Π½Π°Π³Ρ€Π΅Π²Π°Ρ‚Π΅Π»ΡŒ? Π”Π°, сбСгаСм ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ;гистСрСзис

MOVF NumH, 0 ;НСт Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½, Π·Π½Π°Ρ‡ΠΈΡ‚ сравниваСм,

DECF NumL, 1

SUBWF NumL, 0

BTFSC STATUS, C; вычитая ΠΈΠ· ΡƒΡΡ‚Π°Π²ΠΊΠΈ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ

GOTO L88

BCF PA, 3

MOVF PA, 0

MOVWF PORTA

GOTO L31

L2D MOVF DT_ALARM, 0 ;Π”ΠΎΠ±Π°Π²ΠΈΠΌ 2 Π³Ρ€Π°Π΄. гистСрСзиса, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½Π°Π³Ρ€Π΅Π²Π°Ρ‚Π΅Π»ΡŒ

ADDWF NumL, 1 ;Π½Π° 2 Π³Ρ€Π°Π΄. Π²Ρ‹ΡˆΠ΅

RETURN

L2E MOVF DT_ALARM, 0 ;Π’Ρ‹Ρ‡Ρ‚Π΅ΠΌ 2 Π³Ρ€Π°Π΄. гистСрСзиса, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½Π°Π³Ρ€Π΅Π²Π°Ρ‚Π΅Π»ΡŒ

SUBWF NumL, 1 ;Π½Π° 2 Π³Ρ€Π°Π΄. Π²Ρ‹ΡˆΠ΅, ΠΏΡ€ΠΈ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π΅.

RETURN

L88 BSF PA, 3

MOVF PA, 0

MOVWF PORTA

;Π—Π°ΠΏΠΈΡΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ значСния Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ Π² ΡΠΊΡ€Π°Π½Π½Ρ‹ΠΉ Π±ΡƒΡ„Π΅Ρ€

L31 BTFSS TEMP_READH, 7

GOTO L36 ;Π’Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π° Π²Ρ‹ΡˆΠ΅ нуля

MOVF TH, 0

SUBLW.19

BTFSC STATUS, C

GOTO L36 ;Π’Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π° Π²Ρ‹ΡˆΠ΅ минус 19 градусов

;ΠΏΡ€ΠΈ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π΅ мСньшС -19.9

MOVF TH, 0 ;ЗанСсСниС значСния Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ Π² ΡΠΊΡ€Π°Π½Π½Ρ‹ΠΉ Π±ΡƒΡ„Π΅Ρ€

MOVWF NumL

CLRF NumH

CALL Convert

MOVF Ones, 0

CALL DS7SEG

MOVWF RAZR0

MOVF Tens, 0

CALL DS7SEG

MOVWF RAZR1

MOVLW 0x0A

CALL DS7SEG

MOVWF RAZR2

BCF RAZR2, 6 ;Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π·Π½Π°ΠΊΠ° минус ΠΏΡ€ΠΈ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π΅

BCF FLAGS, 6 ;ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ дСсятичной Ρ‚ΠΎΡ‡ΠΊΠΈ

RETURN

L36 MOVF TH, 0

SUBLW.99

BTFSC STATUS, C

GOTO L37 ;Π’Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π° Π²Ρ‹ΡˆΠ΅ плюс 99 градусов

MOVF TH, 0 ;ЗанСсСниС значСния Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ Π² ΡΠΊΡ€Π°Π½Π½Ρ‹ΠΉ Π±ΡƒΡ„Π΅Ρ€

MOVWF NumL

CLRF NumH

CALL Convert

MOVF Ones, 0

CALL DS7SEG

MOVWF RAZR0

MOVF Tens, 0

CALL DS7SEG

MOVWF RAZR1

MOVF Hund, 0

CALL DS7SEG

MOVWF RAZR2

BCF FLAGS, 6 ;ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ дСсятичной Ρ‚ΠΎΡ‡ΠΊΠΈ

RETURN

;ΠΏΡ€ΠΈ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π΅ ΠΎΡ‚ -19.9 Π΄ΠΎ 99.9

L37 MOVF TL, 0 ;ЗанСсСниС значСния Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ Π² ΡΠΊΡ€Π°Π½Π½Ρ‹ΠΉ Π±ΡƒΡ„Π΅Ρ€

MOVWF NumL

CLRF NumH

CALL Convert

MOVF Ones, 0

CALL DS7SEG

MOVWF RAZR0

MOVF TH, 0 ;ЗанСсСниС значСния Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ Π² ΡΠΊΡ€Π°Π½Π½Ρ‹ΠΉ Π±ΡƒΡ„Π΅Ρ€

MOVWF NumL

CLRF NumH

CALL Convert

MOVF Ones, 0

CALL DS7SEG

MOVWF RAZR1

MOVF Tens, 0

CALL DS7SEG

MOVWF RAZR2

BTFSC TEMP_READH, 7 ;Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π·Π½Π°ΠΊΠ° минус ΠΏΡ€ΠΈ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π΅

BCF RAZR2, 6

BSF FLAGS, 6 ;Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ дСсятичной Ρ‚ΠΎΡ‡ΠΊΠΈ

RETURN

;ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° считываСт Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ± ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎΠΉ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π΅ ΠΈΠ· DS18Π’20

READ_T CALL INIT

MOVLW 0xCC ;Skip ROM

MOVWF O_BYTE

CALL OUT_BYTE

MOVLW 0xBE ;Read Scratchpad

MOVWF O_BYTE

CALL OUT_BYTE

;ΠŸΡ€ΠΈΠ΅ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…

CALL IN_BYTE

MOVWF TEMP_READL ;0

CALL IN_BYTE

MOVWF TEMP_READH ;1

CALL IN_BYTE ;2

CALL IN_BYTE ;3

CALL IN_BYTE ;4

CALL IN_BYTE ;5

CALL IN_BYTE ;6

CALL IN_BYTE ;7

CALL IN_BYTE ;8

;ΠŸΠΎΠ΄ΡΡ‡Π΅Ρ‚ ΠΈ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠΉ суммы ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½ΠΎ

RETLW 0xFF

;ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π²Ρ‹Π΄Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π½Π° ΡΡ‚Π°Ρ€Ρ‚ измСрСния Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ для Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° DS18Π’20

START_DS

CALL INIT

MOVLW 0xCC ;Skip ROM

MOVWF O_BYTE

CALL OUT_BYTE

MOVLW 0×44 ;Convert T

MOVWF O_BYTE

CALL OUT_BYTE

RETLW 0xFF

; The following are common 1-Wire routines used in all applications

INIT: CALL PIN_HI

CALL PIN_LO

MOVLW.50; 500 us delay

CALL DELAY_10USEC

CALL PIN_HI

MOVLW.50; 500 usec delay

CALL DELAY_10USEC

RETURN

IN_BYTE:; returns byte in W

MOVLW.8

MOVWF _N

CLRF I_BYTE

IN_BYTE1:

CALL PIN_LO; momentary low on DATA_PIN

NOP

CALL PIN_HI

NOP

NOP

NOP

NOP

NOP

NOP

MOVF PORTB, W; 7 usecs later, fetch from DATA_PIN

MOVWF TEMP

BTFSS TEMP, DATA_PIN

BCF STATUS, C; its a zero

BTFSC TEMP, DATA_PIN

BSF STATUS, C; its a one

RRF I_BYTE, F

MOVLW.6; now delay 60 usecs

CALL DELAY_10USEC

DECFSZ _N, F

GOTO IN_BYTE1

MOVF I_BYTE, 0; return the result in W

RETURN

OUT_BYTE:

MOVLW.8

MOVWF _N

OUT_BYTE1:

RRF O_BYTE, F

BTFSS STATUS, C

GOTO OUT0

GOTO OUT1

OUT_BYTE2:

DECFSZ _N, F

GOTO OUT_BYTE1

RETURN

OUT0: CALL PIN_LO; bring DATA_PIN low

MOVLW.6; for 60 usecs

CALL DELAY_10USEC

CALL PIN_HI

GOTO OUT_BYTE2

OUT1: CALL PIN_LO; momentary low

CALL PIN_HI

MOVLW.6

CALL DELAY_10USEC

GOTO OUT_BYTE2

PIN_HI: BCF INTCON, GIE

BSF STATUS, RP0

BSF TRISB, DATA_PIN; high impedance

BCF STATUS, RP0

BSF INTCON, GIE

RETURN

PIN_LO: BCF INTCON, GIE

BCF PORTB, DATA_PIN

BSF STATUS, RP0

BCF TRISB, DATA_PIN; low impedance zero

BCF STATUS, RP0

BSF INTCON, GIE

RETURN

DELAY_LONG

MOVLW.250; 250 msec delay

MOVWF LOOP1

DELAY_N_MS:

OUTTER MOVLW.110; close to 1.0 msec delay when set to.110

MOVWF LOOP2

INNER NOP

NOP

NOP

NOP

NOP

NOP

DECFSZ LOOP2, F; decrement and leave result in LOOP2

GOTO INNER; skip next statement if zero

DECFSZ LOOP1, F

GOTO OUTTER

RETURN

DELAY_10USEC:; provides a delay equal to W * 10 usecs

MOVWF LOOP1

DELAY_100USEC1:

NOP

NOP

NOP

NOP

NOP

NOP

NOP

DECFSZ LOOP1, F

GOTO DELAY_100USEC1

RETURN

;*******************************************************

;ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° сохраняСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ T_ALARM

;Π² энСргонСзависимой памяти Π΄Π°Π½Π½Ρ‹Ρ…

SEEPROM MOVLW.50

MOVWF EEADR

MOVF T_ALARM, 0

CALL L21

RETURN

L21 MOVWF EEDATA ;ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° записи EEROM

BCF INTCON, GIE ;Π—Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΈΠ΅ всСх ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ

BSF STATUS, RP0 ;УстанавливаСм страницу памяти 1

BSF EECON1, WREN ;Π Π°Π·Ρ€Π΅ΡˆΠ°Π΅ΠΌ запись Π² EEROM

MOVLW 0×55 ;Π”Π°Π΅ΠΌ Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄ для записи

MOVWF EECON2

MOVLW 0xAA

MOVWF EECON2

BSF EECON1, WR

L20 NOP ;ОТидаСм Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ записи

BTFSC EECON1, WR

GOTO L20

BCF EECON1, WREN ;Π—Π°ΠΏΡ€Π΅Ρ‰Π°Π΅ΠΌ запись Π² EEROM

BCF STATUS, RP0 ;УстанавливаСм страницу памяти 0

BSF INTCON, GIE ;Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ всСх ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ

INCF EEADR, 1

RETURN

;ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ T_ALARM

;ΠΈΠ· энСргонСзависимой памяти Π΄Π°Π½Π½Ρ‹Ρ…

LEEPROM MOVLW.50

MOVWF EEADR

CALL RROM

MOVWF T_ALARM

RETURN

;ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° считывания Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· EEROM

RROM BSF STATUS, RP0 ;УстанавливаСм страницу памяти 1

BSF EECON1, RD ;Команда Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ EEROM

BCF STATUS, RP0 ;УстанавливаСм страницу памяти 0

INCF EEADR, 1

MOVF EEDATA, 0

RETURN

END ;ΠšΠΎΠ½Π΅Ρ† ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ