лу. Але при читанні, дані повинні бути стабільні на початку командного циклу. Будьте уважні в операціях читання, наступних відразу за записом у той же порт. Тут треба враховувати інерційність встановлення напруги на висновках. Може знадобитися програмна затримка, щоб напруга на ніжці (залежить від навантаження) встигло стабілізуватися до початку виконання наступної команди читання
f8, f9 ... РЕГІСТРИ ЕППЗУ EEDATA, EEADR: PIC16C84 має вбудоване електрично перепрограммируемое ПЗУ розміром 64 байта, яке може бути лічено і записано за допомогою регістра даних EEDATA і регістру адреси EEADR. Запис нового байта триває близько 10 мсек і управляється вбудованим таймером. Регістр EECON1 (адреса 88h) - це керуючий регістр шириною п'ять біт. Молодші п'ять біт фізично існують, а старші три біти читаються завжди як `0`.
Керуючі біти RD і WR запускають відповідно читання і запис. Вони можуть бути встановлені тільки програмно. Скидаються-апаратно по завершення операцій читання/запису. Заборона програмного скидання біта WR запобігає передчасне закінчення запису.
RD - Біт читання.
RD = 1: Запускає читання пам'яті даних EEPROM. Читання займає один цикл. Встановлюється програмно. Обнуляється апаратно. p> WR - Біт запису.
WR = 1: Запускає запис в пам'ять даних EEPROM.
Встановлюється програмно. Обнуляється апаратно. p> WREN - Біт дозволу запису в пам'ять даних EEPROM.
WREN = 1: Дозволена запис.
WREN = 0: Заборонено запис.
Після включення живлення WREN обнуляється.
Прапор помилки WRERR встановлюється, коли процес запису переривається сигналом скидання/MCLR або сигналом скидання від WDT таймера. Рекомендується перевіряти цей прапор WRERR і при необхідності проводити перезапис даних, дані та адресу яких зберігаються в регістрах EEDATA і EEADR. p> WRERR - Прапор помилки запису.
WRERR = 1: Прапор встановлюється, коли операція запису передчасно закінчується сигналом скидання/MCLR (під час звичайного режиму або режиму SLEEP) або сигналом скидання WDT під час звичайного режиму.
Прапор EEIF встановлюється, коли вбудований автомат завершує запис в пам'ять даних. Він повинен бути скинутий програмно. p> EEIF - Прапор завершення запису.
EEIF = 1: Прапор встановлюється, коли завершена запис. Відповідний біт дозволу переривання - EEIE в регістрі INTCON [1]
РЕГІСТРИ ЗАГАЛЬНОГО HАЗHАЧЕHІЯ
Регістри загального призначення являють собою статичне ОЗУ, розташоване за адресами 0Ch-2Fh. Всього в PIC16C84 можна використовувати 36 комірок ОЗУ. [1]
СПЕЦІАЛЬHИЕ РЕГІСТРИ W, INTCON, OPTION
До них відносяться робочий регістр W, використовуваний в більшості команд як регістр акумулятора і регістри INTCON і OPTION. Регістр переривань INTCON (адреса 0Bh) служить для керування режимами переривання і містить біти дозволу переривань від різних джерел і прапори переривань. Регістр режимів OPTION (адреса 81h) служить для завдання джерел сигналу для попереднього дільника і таймера/лічильника, а також для завдання коефіцієнта ділення попереднього дільника, активного фронту сигналу для RTCC і входу переривання. Крім того за допомогою регістра OPTION можуть бути включені навантажувальні резистори для розрядів порту B, запрограмованих як входи. [1]
сторожовий таймер WDT
Сторожовий таймер WDT призначений для запобігання катастрофічних наслідків від випадкових збоїв програми. Watchdog таймер являє собою повністю незалежний вбудований RC генератор, який не вимагає ніяких зовнішніх кіл. Він працюватиме, навіть якщо основний генератор зупинений, як це буває при виконанні команди SLEEP. Таймер виробляє сигнал скидання. Вироблення таких скидів може бути заборонена шляхом запису нуля в спеціальний біт конфігурації WDTE. Цю операцію проводять на етапі пропалювання мікросхем. p> Витримка часу WDT
Номінальна витримка WDT складає 18 мс (без використання дільника). Вона залежить від температури, напруги живлення, від особливостей типів мікросхем. Якщо потрібні великі затримки, то до WDT може бути підключений вбудований дільник з коефіцієнтом ділення до 1:128; який програмується шляхом запису в регістр OPTION. Тут можуть бути реалізовані витримки до 2.5 секунд.
Команди "CLRWDT" і "SLEEP" обнуляют WDT і дільник, якщо він підключений до WDT. Це запускає витримку часу спочатку і запобігає на деякий час вироблення сигналу скидання. Якщо сигнал скидання від WDT все ж стався, то одночасно обнуляється біт "TO" у регістрі статусу (f3). У додатках з високим рівнем перешкод, вміст регістра OPTION схильне збою. Тому регістр OPTION повинен оновлюватися через рівні проміжки часу.
Слід врахувати, що найгіршою комбінацією є: Vdd = min, температура = max і max коефіцієнт ділення подільника, - це призводить до найбільшою витримці часу, вона може досягати декількох секунд. [1]
СХЕМА СКИДАННЯ:
Мікроконтролери сімейства PIC використовують внут...