Смекни!
smekni.com

Автоматизація процессу сушки деревини (стр. 11 из 17)

Таблиця 3.9.

Призначення виводів мікроконтролера PIC16F877

Позначення виводу ТипІ/О/Р Тип буфера Опис
OSC1/CLKIN 13 І ST/CMOS(3) Вхід генератора / вхід зовнішнього тактового сигналу
OSC2/CLKOUT 14 О - Вихід генератора. Підключається кварцовий або керамічний резонатор. У RC режимі тактового генератора на виході OSC2 є тактовий сигнал CLKOUT, рівний Fosc/4.
-MCLR/VPP 1 І/Р ST Вхід скидання мікроконтролера або вхід напруги програмування. Скидання мікроконтролера відбувається при низькому логічному рівні сигналу на вході.
RAO/ANORA1/AN1RA2/AN2/VREF-RA3/AN3/VREF+RA4/TOCKIRA5/-SS/AN4 234567 I/OI/OI/OI/OI/OI/O TTLTTLTTLTTLSTTTL Двунаправлений порт вводу/виводу PORTA.RAO може бути налаштований як аналоговий канал 0RA1 може бути налаштований як аналоговий канал 1RA2 може бути налаштований як аналоговий канал 2 або вхід негативної опорної напругиRA3 може бути налаштований як аналоговий канал 3 або вхід позитивної опорної напругиRA4 може використовуватися як вхід зовнішнього тактового сигналу для TMRO. Вихід з відкритим стоком.RA1 може бути налаштований як аналоговий канал 1 або вхід вибору мікросхеми в режимі відомого SPI
RBO/INTRB1RB2RB3/PGMRB4RB5RB6/PGCRB7/PGD 3334353637383940 I/OI/OI/OI/OI/OI/OI/OI/O TTL/ST(1)TTLTTLTTLTTLTTLTTL/ST(2)TTL/ST(2) Двунаправлений порт вводу/виводу PORTB. PORTB має програмно підключаємі підтягуючі резистори на входах.RBO може використовуватися як вхід зовнішніх переривань.RB3 може використовуватися як вхід для режиму низьковольтного рограмування.Переривання по зміні рівня вхідного сигналу.Переривання по зміні рівня вхідного сигналу.Переривання по зміні рівня вхідного сигналу або вивід для режиму внутрішньосхемного налагодження ICD.Тактовий вхід у режимі програмування.Переривання по зміні рівня вхідного сигналу або вивід для режиму внутрішньосхемного налагодження ICD. Вивід даних у режимі програмування.
RCO/T1OSO/T1CKI 15 I/O ST Двунаправлений порт вводу/виводу PORTC. RCO може використовуватися як вихід генератора TMR1 або входу зовнішнього тактового сигналу для TMR1 .
RC1/T1OSI/CCP2 16 I/O ST RC1 може використовуватися як вхід генератора для TMR1 або виводу модуля РСР2.
RC2/CCP1 17 I/O ST RC2 може використовуватися як вивід модуля РСР1.
RC3/SCK/SCL 18 I/O ST RC3 може використовуватися як вхід/виходу тактового сигналу в режимі SPI і I2C.
RC4/SDI/SDA RC5/SDO RC6/TX/CK RC7/RX/DT 23242526 I/OI/OI/OI/O STSTSTST RC4 може використовуватися як вхід даних у режимі SPI або вхід/вихід даних у режимі I2C. RC5 може використовуватися як вихід даних у режимі SPI. RC6 може використовуватися як вивід передавача USART в асинхронному режимі або виводу синхронізації USART у синхронному режимі. RC6 може використовуватися як вивід приймача USART в асинхронному режимі або виводу даних USART у синхронному режимі.
RDO/PSPO RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 1920212227282930 I/OI/OI/OI/OI/OI/OI/OI/O ST/TTL(3)ST/TTL(3)ST/TTL(3)ST/TTL(3)ST/TTL(3)ST/TTL(3)ST/TTL(3)ST/TTL(3) Двунаправлений порт вводу/виводу PORTD або ведучий паралельний порт для підключення до шини мікропроцесора
RE0/D/AN5 RE1/WR/AN6 RE2/CS/AN7 8910 I/OI/OI/O ST/TTL(3)ST/TTL(3)ST/TTL(3) Двунаправлений порт вводу/виводу PORTE. RE0 може використовуватися як керуючого входу читання PSP або аналогового каналу 5
RE1 може використовуватися для керуючого входу запису PSP або аналогового каналу 6 RE2 може використовуватися як керуючого входу вибору PSP або аналогового каналу 7
Vss 12,31 P - Загальний вивід для внутрішньої логіки і портів вводу/виводу
vdd 11,32 P - Позитивна напруга живлення для внутрішньої логіки і портів вводу/виводу
NC - - - Ці виводи в середині мікросхеми не підключені.

Позначення: I = вхід, О = вихід, I/O = вхід/вихід, Р = живлення, - = не використовується, TTL = вхідний буфер ТТЛ, ST = вхід із тригером Шмідта.

EEPROM пам'ять даних і FLASH пам'ять програм

Дані з EEPROM пам'яті і FLASH пам'яті програм можуть бути прочитані/перезаписані в нормальному режимі роботи мікроконтролера у всьому діапазоні напруги живлення Vdd. Операції виконуються з одним байтом для EEPROM пам'яті даних і одним словом для FLASH пам'яті програм. Запис виконується за принципом "стирання - запис" для кожного байта або слова. Сформована кодом програми операція стирання не може виконана при включеному захисті запису.

Доступ до пам'яті програм дозволяє виконати обчислення контрольної суми. Дані, записані в пам'яті програм, можуть використовуватися у виді: 14-розрядних чисел, каліброваної інформації, серійних номерів, упакованих 7-розрядних символів ASCII і т.д. У випадку виявлення недійсної команди в пам'яті програм, виконується порожній цикл NOP.

Число циклів стирання/запису для FLASH пам'яті програм значно нижче в порівнянні з EEPROM пам'яттю даних, тому EEPROM пам'ять даних повинна використовуватися для збереження часто змінюваних даних. Час запису даних керується внутрішнім таймером, він залежить від напруги живлення, температури і має невеликий технологічний "розкид". [8,276]

При записі байта або слова автоматично стирається відповідний осередок, а потім виконується запис. Запис у EEPROM пам'ять програм не впливає на виконання програми, а при записі в FLASH пам'ять програм виконання програми зупиняється на час запису. Не можна звернутися до пам'яті програм під час циклу запису. Протягом операції запису тактовий генератор продовжує працювати, периферійні модулі включені і генерують переривання, що "ставляться в чергу" до завершення циклу запису. Після завершення запису виконується завантажена команда (через конвеєрну обробку) і відбувається перехід по вектору переривань, якщо переривання дозволене й умова переривання відбувалася під час запису.

Доступ до функцій запису/читання EEPROM пам'яті даних і FLASH пам'яті програм виконується через шість регістрів спеціального призначення:

EEDATA;

EEDATH;

EEADR;

EEADRH;

EECON1;

EECON2.

Операції читання/запису EEPROM пам'яті даних не припиняють виконання програми. У регістрі EEADR зберігається адреса осередку EEPROM пам'яті даних. Дані зберігаються/читаються з регістра EEDATA. Старший біт адреси в регістрі EEADR завжди повинний дорівнювати нулеві, тому що не підтримується циклічна адресація (тобто осередок з адресою 0x80 не відображається на 0x00). У PIC16F877 обсяг EEPROM пам'яті даних 256 байт (використовуються усі 8-розрядів регістра EEADR).

Читання FLASH пам'яті програм не впливає на виконання програми, а під час операції запису виконання програми припинене. У спарених регістрах EEADRH:EEADR зберігається 13-розрядна адреса комірки пам'яті програм, до якого необхідно зробити звертання. Спарені регістри EEADRH:EEADR містять 14-розрядні дані для запису або відображають значення з пам'яті програм при читанні.

3.3.2 Особливості мікроконтролерів PIC16F87X

В даний час, пристрої працюючі в режимі реального часу часто містять мікроконтролер як основний елемент схеми. PIC16F87X мають багато удосконалень підвищену надійність системи, що знижують вартість пристрою і число зовнішніх компонентів. Мікроконтролери PIC16F87X мають режими енергозбереження і можливість захисту коду програми.

Основні переваги:

Вибір тактового генератора

Скидання:

- скидання по включенню живлення (POR);

- таймер включення живлення (PWRT);

- таймер запуску генератора (OSC);

- скидання по зниженню напруги живлення (BOR).

Переривання

Сторожовий таймер (WDT)

Режим енергозбереження (SLEEP)

Захист коду програми

Область пам'яті для ідентифікатора

Внутрішньосхемне програмування по послідовному порту (ICSP)

Режим низьковольтного послідовного програмування

Режим внутріньосхемного налагодження (ICD)

У мікроконтролери PIC16F87X убудований сторожовий таймер WDT, що може бути виключений тільки в бітах конфігурації мікроконтролера. Для підвищення надійності сторожовий таймер WDT має власний RC генератор.

Додаткових два таймери виконують затримку старту роботи мікроконтролера. Перший, таймер запуску генератора (OST), утримує мікроконтролер у стані скидання, поки не стабілізується частота тактового генератора. Другий, таймер включення живлення (PWRT), спрацьовує після включення живлення й утримує мікроконтролер у стані скидання протягом 72мс (типове значення), поки не стабілізується напруга живлення. У більшості додатків ці функції мікроконтролера дозволяють виключити зовнішні схеми скидання.

Режим SLEEP призначений для забезпечення наднизького енергоспоживання. Мікроконтролер може вийти з режиму SLEEP по сигналі зовнішнього скидання, по переповненню сторожового таймера або при виникненні переривань.

Вибір режиму роботи тактового генератора дозволяє використовувати мікроконтролери в різних додатках. Режим тактового генератора RC дозволяє зменшити вартість пристрою, а режим LP знизити енергоспоживання. Біти конфігурації мікроконтролера використовуються для вказівки режиму його роботи. [5,62]

3.3.3 Система команд мікроконтролера

Кожна команда мікроконтролерів PIC16F87X складається з одного 14-розрядного слова, розділеного на код операції (OPCODE), що визначає тип команди й один або трохи операндов, що визначають операцію команди. Команди розділені на наступні групи: байт орієнтовані команди, біт орієнтовані команди, команди керування й операцій з константами.

Для байт орієнтованих команд “f” є покажчиком регістра, а “d” покажчиком адресата результату. Покажчик регістра визначає, який регістр повинний використовуватися в команді. Покажчик адресата визначає, де буде збережений результат. Якщо 'd'=0, результат зберігається в регістрі W. Якщо 'd'=1, результат зберігається в регістрі, що використовується в команді.