Міністерство освіти та науки України
НУ (Львівська політехніка(
ІКТА
Кафедра ЕОМ
КУРСОВА РОБОТА
( Проектування мікрокомп’ютера на базі мікропроцесора PIC16C771(
Львів 2005
ЗМІСТ
Вступ
3
1. Початковi данi на проектування.
4
2. Опис схеми електричної функціональної та основних режимiв функцiонування.
5
2.1 Основні технічні характеристики мікроконтроллера PIC 16C771
5
2.2 Організація пам’яті
6
2.3 Особливості периферії
6
2.4 Внутрішня структура PIC16C771
7
2.5 Модуль MSSP
8
2.5.1 SPI Режим
8
2.5.1.1 Привілейований режим
9
2.5.1.2 Непривілейований режим
10
2.5.1.3 Операція бездіяльності
12
2.5.1.4 Ефекти скидання
12
2.5.2 Режим I2C
12
2.5.2.1 Підлеглий та головний режими I2C
13
2.5.2.2 Непривілейований режим
14
2.5.2.3 Адресація
15
2.5.2.4 Підпорядкований прийом
15
2.5.2.5 Підпорядкована передача
15
2.5.2.6 Операція бездіяльності
19
2.5.2.7 Ефекти скидання
19
2.5.2.8 Привілейований режим
19
2.5.2.9 Операції режиму multi-master
19
2.6 Опис основних режимів функціонування
19
3. Опис схеми електричної принципової по вузлах з часовими дiаграмами в основних режимах функціонування.
20
3.1 Центральний процесор
20
3.1.1 Функціональне призначення виводів PIC16C771
20
3.1.2 Опис системи команд
21
3.1.3 Аналого-цифровий перетворювач
23
3.1.4 Спеціальні функції CPU
25
3.2 Постiйна пам’ять програм
26
3.3 Оперативна пам’ять даних
27
3.4 Вузол синхронізації
29
3.5 Вузол скиду
30
3.6 Пiдсистема вводу-виводу
30
3.6.1 Інвертор напруги MAX660
30
3.6.2 Температурний сенсор DS600
31
3.6.3 Алфавітно-цифровий РК модуль HD44780
32
4. Блок-схема початкової ініціалізації та лістинг програми початкової ініціалізації.
35
4.1 Блок-схема початкової iнiцiалiзацiї
35
4.2 Лістинг програми початкової iнiцiалiзацiї
35
Висновки
38
5. Використана лiтература та інші джерела.
39
Додатки
Додаток А «Схема функціональна»
Додаток В «Схема електрична принципова»
Додаток С «Перелік елементів мікрокомп’ютера»
Вступ
В наш час використання комп’ютерних засобів присутнє майже на кожному кроці людського існування. Комп’ютери є всюди: вдома, в офісі, в магазині, на підприємствах. Та іноді помилково вважається, що під комп’ютером слід розуміти тільки персональний комп’ютер. Хоча велику роль в нашому житті відіграють саме спеціалізовані комп’ютерні системи. Різні датчики, частотоміри, термостати та багато іншого належать до мікрокомп’ютерів, роль яких важко не помітити у повсякденному житті людей. Всі ці прилади суттєво полегшують нам життя, та заощаджують наш час.
В основі мікрокомп’ютерів лежить використання мікроконтроллерів чи мікропроцесорів, число та різновидність яких налічує тисячі. Мікроконтролери – це однокристальні мікроеом , що мають вбудовані такі компоненти, як пам’ять, операційний пристрій та ін. Відомі такі фірми виробники, як INTEL, AMTEL, Analog Devices, Texas Instrument. Мікропроцесори – процесори, що мають Гарвардську архітектуру та не сильно використовують розпаралелення та конвеєризацію.
У даній курсовій роботі приведено проект розробки електронного цифрового термометра на основі мікроконтролера PIC16C771, виробництва фірми Microchip. Оскільки спиртові та ртутні термометри відходять у минуле, то такі прилади як електронні термометри набувають популярності та широкого застосування. Основними перевагами таких приладів є безпечність порівняно з ртутними термометрами, наявність засобів візуалізації, відносно низька ціна при серійному виробництві.
Мікроконтролер PIC16C771 взятий за основу мікрокомп’ютера тому, що по-перше він має відносно просту програмну модель, по-друге має вбудований аналого-цифровий перетворювач, що забезпечує вимірювання аналогового сигналу, що в свою чергу можна подати, як залежність напруги від температури, по-третє має невисоку ціну. Також його можна використати, як засіб керування пристроями виводу: LCD дисплеєм, чи семисегментним індикатором.
1.Початкові дані на проектування
Таблиця 1.1 Початкові дані на проектування
Тип мiкропроцесора
PIC16C771
Постiйна пам’ять
вбудована на кристалі
Оперативна пам’ять
вбудована на кристалі
Пiдсистема вводу-виводу
ввід–температурний сенсор DS600
вивід–алфавітно-цифровий РК модуль HD44780
2.Опис схеми електричної функціональної та основних режимiв
функціонування.
2.1 Основні технічні характеристики мікроконтроллера PIC 16C771
Високопродуктивний RISC цетральний процесор
35 інструкцій
Всі інструкції одноциклові окрім інструкцій галуження що займають 2 цикла
DC 20 MHz частота на вході
DC 200 ns час циклу
Таблиця 2.1.1 Характеристики PIC16C771
Пам’ять
АЦП
АЦП
Мікроконтролер
Програм
Даних
Пінів
Розрядність
Канали
x14
x8
PIC16C771
4K
256
20
12 bits
6
Можливість переривання (до 10 внутрішніх/зовнішніх джерел переривання)
Восьмирівневий апаратний стек
Прямі, непрямі і відносні способи адресації
Скидання Ввімкнення живлення (POR)
Таймер ввімкнення живлення (PWRT)
Таймер Запуску Генератора (OST)
Контрольний Таймер (WDT) з його власним генератором
Опції роботи генератора:
INTRC - Внутрішня ємнісно-резистивна, подвійна швидкість (4MHz і 37KHz), що переключається динамічно для збереження енергії
ER - Зовнішній резистор, подвійна швидкість (частота вибирається користувачем і 37KHz) ), що переключається динамічно для збереження енергії
EC - Зовнішні годинник
HS - Високошвидкісний кристал/резонатор
XT - Кристал/резонатор
LP – малопотужний кристал
високошвидкісний програмований ПЗП CMOS з низьким енергоспоживанням (технологія EPROM)
Широкий діапазон робочої напруги: 2.5V до 5.5V
15 точок вводу/виводу з індивідуальним керуванням для
Напрямку (15)
Цифрово/Аналоговий вхід (6)
PORTB переривання при зміні (8)
Висока напруга відкритий витік (1)
Комерційні й Індустріальні температурні діапазони
-40°C TA +85°C індустріальні
0°C TA +70°C комерційні
Економія енергоспоживання:
- <2mА @ 5V, 4 МГЦ
- 22.5 (А типовий 3V, 32 кгц
<1 (А типовий резервний потік
2.2 Організація пам’яті
Є два блоки пам'яті. Кожен блок (пам'ять програм і пам'ять даних) мають власну шину доступу, так, щоб одночасний доступ міг відбутися.
2.3 Особливості периферії:
Timer0: таймер/лічильник на 8 бітів із передлічильником на 8 бітів
Timer1: 16-розрядний таймер/лічильник з передлічильником, може бути збільшений протягом бездіяльності через зовнішній кристал/годинник
Timer2: таймер/лічильник на 8 бітів з 8 бітовим регістром періоду, передлічильник та післялічильник
Модуль удосконаленого збору даних, порівняння, PWM (ECCP)
Збір даних є 16 бітним, максимальна дозволяюча здатність - 12.5 ns
Порівняння, є 16 бітним, максимальна дозволяюча здатність - 200 ns
PWM максимальна дозволяюча здатність - 10 бітів
Удосконалений PWM:
режими виводу (простий, напівміст і повний міст)
цифрова програмована нечутлива затримка
аналого-цифровий конвертер з дозволяючою здатністю 12 біт
Встроєний генератор напруги
Програмована схема скидання короткочасного провалу напруги живлення (PBOR)
Програмована схема виявлення низької напруги (PLVD)
Синхронний послідовний порт (MSSP) з двома режимами роботи:
SPI™ (підтримує всі 4 режими SPI)
I2C ™
Читання Пам'яті Програми (PMR) можливість перегляду таблиці, символів, контрольної суми результату обчислення. [www1]
2.4 Внутрішня структура PIC16C771
Внутрішня структура мікропроцесора подана на рис 2.4.1
Рис 2.4.1 Внутрішня структура PIC16C771
Примітка:
EPROM Program memory – ППЗП
Program Counter – програмний лічильник
Data Bus – шина даних
PORTA – порт А
8 Level Stack – восьми рівневий стек
RAM File Registers – ОЗП Регістровий файл
Program Bus – програмна шина
Program Memory Read (PMR) – блок читання програмної пам’ті
RAM Addr – Адреса ОЗП
Instruction reg – Регістр команд
Addr MUX – мультиплексор адрес
Direct Addr – пряма адреса
PORTB – порт В
Indirect Addr – непряма адреса
FSB reg – регістри спеціального призначення
STATUS reg – регістр статусу
Internal 4MHz, 37KHz and ER mode – внутрішня частота 4 МГц, 37КГц та режим зовнішнього резистора
MUX - мультиплексор
Instruction Decode & Control – Декодування інструкції та контроль
Timing Generation – генератор тактової частоти
Power-up Timer – таймер ввімкнення
Oscillator Start-up Timer – таймер запуску генератор
Power-on Reset – скид при ввімкненні
Watchdog Timer – сторожевий таймер
Brown-out Reset – скид при перегріві
ALU – арифметико-логічний пристрій
W reg – регістр-акумулятор
2.5 Модуль MSSP (MASTER SYNCHRONOUS SERIAL PORT )
MASTER SYNCHRONOUS SERIAL PORT (MSSP) модуль - послідовний інтерфейс, корисний для того, щоб з іншим зовнішнім пристроєм або мікроконтролером. Ці периферійні пристрої можуть бути послідовними EEPROM , зсувними регістрами, драйверами дисплеїв, і т.д. MSSP модуль може працювати в одному з двох режимів:
Послідовний Периферійний Інтерфейс (SPI ™)
Міжінтегральна схема (I2C™)
2.5.1 SPI Режим
Режим SPI дозволяє 8 бітам даних бути синхронно переданим і отриманими одночасно. Усі чотири режими SPI підтримуються. Щоб досягати зв’язку здебільшого використовуються три точки:
- Послідовні Вхідні Дані (SDO)
- Послідовні ВихідніДані (SDI)
- Послідовна частота(SCK)
Додатково, четверта точка може використовуватися коли в непривілейованому режимі операції:
-Підлеглий Вибір (SS)
При ініціалізації SPI, кілька опцій повинні бути визначені. Це робиться, програмуючи відповідні службові біти (SSPCON <5:0> і SSPSTAT <7:6>).
Ці службові біти дозволяють визначити наступне:
Привілейований режим (SCK – є виходом частоти)
Непривілейований режим (SCK – є входом частоти)
Полярність частоти (Неактивний стан на SCK)
Стадія проби вхідних даних (середина або кінець часу виводу даних)
Фронт синхроімпульсу (вихідні дані зростаючому/падаючому фронті SCK)
Тактова частота (Привілейований режим тільки)
Вибір непривілейованого режиму (Непривілейований режим тільки)
Рис 2.5.1.1 З’єднання SPI MASTER/SLAVE
Рис 2.5.1.1 З’єднання SPI MASTER/SLAVE
2.5.1.1 Привілейований режим
Master може ініціалізувати передачу даних у будь-який час, тому що він керує SCK. Master визначає, коли Slave (Процесор 2) має передавати дані відповідно до програмного протоколу.
У привілейованому режимі, дані передані/отримані, як тільки регістр SSPBUF записаний . Якщо SPI модуль тільки збирається одержувати, вихідне SDO може бути заблоковане (запрограмованим як ввід). Регістр SSPSR продовжить зсуватись при присутності сигналу в точці SDI на запрограмованій тактовій частоті. Оскільки кожен байт отриманий, він буде завантажений в регістр SSPBUF, як нормально одержаний байт (переривання і біти стану відповідно встановляться). Це може бути корисно в програмах приймача як "монітор активності лінії".
Полярність частоти вибирається відповідно до відповідно програмуванням біту CKP (SSPCON <4>).
У привілейованому режимі, SPI тактова частота (швидкість передачі інформації в бітах) програмована користувачем , і може бути одною з наступних:
Fosc/4 (або Tcy)
Fosc/16 (або 4* Tcy)
Fosc/64 (або 16 • Tcy)
Timer2 вихід/2
Це дозволяє максимальну бітову частоту (у 20 МГЦ) з 8.25 МГЦ.
Рис 2.5.1.1.1 показує формат хвилі для Привілейованого режиму. Коли CKE = 1, SDO дані правильні коли є фронт синхроімпульсу на SCK. Зміну вхідної вибірки показано базуючись на стані SMP біта. Час, коли SSPBUF завантажений отриманими даними, показано.
Рис 2.5.1.1.1 Часові діаграми привілейованого режиму SPI
2.5.1.2 Непривілейований режим
У непривілейованому режимі, дані передаються й отримуються, оскільки зовнішні тактові імпульси, що з'являються на SCK. Коли останній біт замикають, прапорець біту переривання SSPIF (PIR1 <3>), установлюється.
У непривілейованому режимі, зовнішня частота постачається зовнішнім джерелом частоти у точці SCK.
У режимі бездіяльності, slave може передати/одержати дані. Коли байт отриманий, пристрій буде піднято з бездіяльності.
Точка SS дозволяє синхронний непривілейований режим. SPI повинний бути в непривілейованому режимі з ввімкненим контролем SS (SSPCON <3:0> = 0100). Точка SS не повинна опускатись, щоб SS функціонував як вхід TRISB <1> повинний бути встановлений. Коли точка SS на низькому рівні, передача і прийом допускаються, і точка SDO керується. Коли точка зростає, _ SDO точка більше не керується, навіть і в середині переданого байта, і стає плаваючим виходом.
Коли SPI модуль зкинутий, розрядний лічильник скинутий до 0. Це може бути зроблено або встановленням високого рівня на SS або очищенням SSPEN біта.
Щоб наслідувати двопроводний зв'язок, точка SDO має бути зв'язана з точкою SDI. Коли SPI повинний працювати як одержувач, точка SDO може бути сконфігурований як вхід. Це відключає передачу від SDO. SDI можна завжди залишати як вхід (функція SDI), тому що це не може створити конфлікт при звертанні до шини. Синхронізація у slave режимі приведена на рисунках
Рис 2.5.1.2.1 Часові діаграми синхронізації підпорядкованого режиму SPI
Рис 2.5.1.2.2 Часові діаграми підпорядкованого режиму SPI (СКЕ=0)
Рис 2.5.1.2.3 Часові діаграми підпорядкованого режиму SPI (СКЕ=1)
2.5.1.3 Операція бездіяльності
У привілейованому режимі, усі тактові частоти модуля припинені, і передача/прийом залишиться в такому стані доки не вийде з бездіяльності. Після повернення пристрою до нормального режиму, модуль продовжить передавати/одержувати дані.
У непривілейованому режимі, SPI передають/одержують зсувний регістр, працює асинхронно на пристрій. Це дозволяє пристроєві бути поміщеним у режим бездіяльності, і отримані дані будуть зсуватись в зсувному регістрі. Коли всі 8 бітів були отримані, біт переривання MSSP буде встановлений і якщо допускається розбудить пристрій від бездіяльності.
2.5.1.4 Ефекти скидання
Скидання відключає MSSP модуль і закінчує поточну передачу.
Регістри, що використовуються при SPI операціях приведені в таблиці 2.5.1.4.1
Таблиця 2.5.1.4.1 Регістри SPI
2.5.2 Режим I2C
MSSP модуль у режимі I2C цілком здійснює всі головні і підлеглі функції і забезпечує переривання на стартових і стоповых бітах в апаратних засобах, щоб визначити вільну шину. MSSP модуль виконує всі стандартні специфікації режиму, а також 7 бітову та 10 бітову адресацію.
Фільтр "збою" знаходиться в SCL і SDA точках, коли точка - вхід. Цей фільтр працює в режимах на 400 кгц та на 100 кгц. У режимі на 100 кгц, коли ці точки - вихід, є керування швидкості наростання вихідної напруги в точці, що є незалежним від частоти пристрою.
2.5.2.1 Підлеглий та головний режими I2C
Нижче приведені рисунки (2.5.2.1.1, 2.5.2.1.2) підлеглого та головного режимів I2C.
Рис 2.5.2.1.1 Підлеглий режим І2С
Рис 2.5.2.1.2 Привілейований режим І2С
Дві точки використовуються для передачі даних. Це точка SCL - частота, і точка SDA - дані. MSSP функції модуля допускаються встановленям біта SSP SSPEN (SSPCON <5>).
MSSP модуль має шість регістрів для операції I2C.
Це:
SSP Регістр Керування (SSPCON)
SSP Регістр Керування 2 (SSPCON2)
SSP Регістр Стану (SSPSTAT)
Послідовний Передавально/Приймальний Буфер (SSPBUF)
SSP Зсувний регістр (SSPSR) – Безпосередньо недоступний
SSP Регістр адреси (SSPADD)
Регістр SSPCON дозволяє керування I2C операціями. Чотири біти вибору режиму (SSPCON <3:0>) дозволяють бути обраними одному з наступних режимів I2C:
I2C Непривілейований режим (7 бітова адресація)
I2C Непривілейований режим (10 бітова адресація)
I2C Привілейований режим, частота = OSC/4 (SSPADD +1)
Перед вибором будь-якого режиму I2C, точки SCL і SDA повинні бути запрограмовані як входи, установлюючи відповідні біти TRISA. Вибір режиму I2C, установлюючи SSPEN біт, дає можливість точкам SCL і SDA використовуватися як частота і дані у режимі I2C.
Регістр SSPSTAT дає стан передачі даних. Ця інформація включає виявлення ПОЧАТКОВОГО (S) або КІНЦЕВОГО (P) біта, визначає, чи був отриманий байт даними або адресою, якщо наступний байт – завершення 10 бітної адреси.
SSPBUF - регістр, до якого передані дані записуються або читаються з нього. Регістр SSPSR зсуває дані в пристрій або з пристрою. В операціях одержання, SSPBUF і SSPSR створюють подвоєний буферизированный приймач. Це дозволяє прийомові наступного байта починатися перед читанням останнього байта отриманих даних. Коли весь байт отриманий, він передається регістрові SSPBUF, і біт прапорця SSPIF установлюється. Якщо інший повний байт отриманий перш, ніж регістр SSPBUF читається, відбувається переповнення одержувача, і біт SSPOV (SSPCON <6>) встановлюється, і байт у SSPSR губиться.
Регістр SSPADD зберігає підпорядковані адреси. У 10 бітному режимі, користувач повинен записати старший байт адреси (1111 0 A9 A8 0). Після адреси старшого байта відповідно , молодший байт адреси повинний бути завантажений (A7:A0).
2.5.2.2 Непривілейований режим
У непривілейованому режимі, точки SCL і SDA повинні бути сконфігуровані як входи. MSSP модуль скасує вхідна стан вихідними даними коли необхідно (підлеглий передавач).
Коли адреса погоджена, апаратні засоби автоматично генерують імпульс підтвердження (ACK), і потім завантажать регістр SSPBUF отриманим значенням у даний час у регістрі SSPSR.
Є деякі умови, що змусять MSSP модуль не давати цей імпульс ACK.
Це:
1) біт переповнення буфера (SSPSTAT <0>) був встановлений перш, ніж передача була отримана.
2) біт переповнення SSPOV (SSPCON <6>) був установлений перш, ніж передача була отримана.
Якщо біт повного буфера BF встановлений, значення регістра SSPSR не завантажується в SSPBUF, але біт SSPIF і SSPOV установлюється. Таблиця 2.5.2.2.1 показує, що трапляється, коли отриманий байт переданих даних, дає статус бітів BF і SSPOV. Затоновані комірки показують умови, коли користувацьке програмне забезпечення належним чином не очищало умови переповнення. Біт прапорець BF очищений, читанням SSPBUF регістра, у той час як біт SSPOV очищений через програмне забезпечення. В таблиці 2.5.2.2.1 показано зміну статусу відповідних бітів при виконанні операцій прийому.
Таблиця 2.5.2.2.1 Зміна статусу бітів при виконанні операцій прийому
2.5.2.3 Адресація
Як тільки MSSP модуль ввімкнений, він чекає виникнення стану ПОЧАТКУ. Після умови ПОЧАТКУ, 8 бітів зсуваються в регістр SSPSR. Усі вхідні біти збираються з зростаючого краю фронту частоти , (SCL) лінії. Значення регістра SSPSR <7:1> порівнюється зі значенням регістра SSPADD. Адреса порівнюється на падаючому краї восьми (SCL) імпульсів частоти. Якщо адреси співпадають, і BF і SSPOV біти чисті, то відбуваються наступні події:
1) значення регістра SSPSR завантажується в SSPBUF на падаючому краї 8-ого SCL імпульсу.
2) біт повного буфера BF встановлюється на падаючому краї 8-ого SCL імпульсу.
3) імпульс ACK генерується
4) встановлюється біт-прапорець SSP перериваня, SSPIF (PIR1 <3>) установлений на падаючому
краї 9-ого SCL імпульсу.
У режимі 10 бітової адреси, два байти адреси повинні бути отримані підлеглим. П'ять Найбільш значних битов (MSbs) першого байта адреси визначають, чи є це адреса на 10 битов. Біт R/W (SSPSTAT <2>) повинний визначити запис, чи підлеглий пристрій одержить другий байт адреси. Для 10 бітової адреси перший байт мав би бути рівним '1111 0 A9 A8 0 ', де A9 і A8 - дві MSbs адреси. Послідовність подій для 10 бітової адресації .
1. одержати спочатку (високий) байт Адреси (біти SSPIF, BF, і біт UA (SSPSTAT <1>) установлені).
2. обновити регістр SSPADD другим (молодшим) байтом адреси (очищає біт UA і випускає SCL лінію).
3. читати регістр SSPBUF (очищає біт BF і очищає біт SSPIF).
4. одержати другий (молодий) байт Адреси (біти SSPIF, BF, і UA установлені).
5. обновити регістр SSPADD з першим (старшим) байтом адреси. Це очистить біт UA і випустить рядок SCL.
6. читати регістр SSPBUF (очищає біт BF) і очистити біт-прапорець SSPIF.
7. Одержати повторний стан початку.
8. одержати перший (старший) байт адреси (біти SSPIF і BF встановлені).
9. читати регістр SSPBUF (очищає біт BF) і очистити біт-прапорець SSPIF.
2.5.2.4 Підпорядкований прийом
Коли R/W біт байта адреси очищений, і є відповідність адреси, R/W біт регістра SSPSTAT очищується. Отримана адреса завантажується в регістр SSPBUF.
Коли умова переповнення байта адреси має місце, тоді імпульс оповіщення (ACK) не дається. Переповнення визначено як будь-який біт BF (SSPSTAT <0>) або біт SSPOV (SSPCON <6>) і встановлено.
Переривання MSSP генерується для кожного байта переданих даних. Біт-прапорець SSPIF (PIR1 <3>), повинен бути очищений у програмним забезпеченням. Регістр SSPSTAT використовується, щоб визначити стан отриманого байта.
2.5.2.5 Підпорядкована передача
Коли R/W біт вхідного байта адреси встановлений, і відповідність адреси присутня, R/W біт регістра SSPSTAT встановлюється. Отримана адреса завантажеується в регістр SSPBUF. Імпульс ACK буде послано на дев'ятому біті, і точка SCL підтримуватись низько. Передані дані повинні бути завантажені в регістр SSPBUF, що також завантажує регістр SSPSR. Тоді точка SCL має бути ввімкнена, встановленням біта CKP (SSPСOND 4>). Master повинен контролювати точку SCL до затвердження іншого тактового імпульсу. Підлеглі пристрої можуть утримувати master, розтягуючи частоту. Ці вісім інформаційних розрядів знімаються на падаючому краї входу SCL. Це гарантує, що сигнал SDA правильний протягом SCL часу.
_ Переривання MSSP генерується для кожного байта переданих даних. SSPIF біт-прапорець, повинний бути очищений програмним забезпеченням, і регістр SSPSTAT використовується, щоб визначити стан пеерданого байта. SSPIF біт-прапорець, установлюється на падаючому краї дев'ятого тактового імпульсу.
Як підлеглий передавач, імпульс ACK від головного одержувача замикають на зростаючому краї дев'ятого імпульсу вводу SCL. Якщо лінія SDA була висока (не ACK), то передача даних закінчена. Коли не ACK замикає підлеглий, підлегла логіка скинута, і підлеглий тоді контролює до іншого виникнення біта ПОЧАТКУ. Якщо лінія SDA була низка (ACK), передані дані повинні бути завантажені в регістр SSPBUF, що також завантажує регістр SSPSR. Тоді точка SCL повинна бути допущеною, установлюючи CKP біт.
Рис 2.5.2.5.1 Діаграма І2С для прийому (7 бітна адресація)
Рис 2.5.2.5.2 Діаграма І2С для передачі (7 бітна адресація)
Рис 2.5.2.5.3 Підлеглий передавач (10 бітова адресація)
Рис 2.5.2.5.4 Підлеглий приймач (10 бітова адресація)
2.5.2.6 Операція бездіяльності
У чрежимі бездіяльності, I2C модуль може одержувати адреси або дані, і коли є відповідність адреси або завершується передача байта, відбувається, підйом процесора від бездіяльності .
2.5.2.7 Ефекти скидання
Скидання відключає MSSP модуль і закінчує поточну передачу.
2.5.2.8 Привілейований режим
Операція привілейованого режиму підтримується генерацією переривання на виявлення умови ПОЧАТКУ, і КІНЦЯ . Біти КІНЦЯ (P) і ПОЧАТОКУ (S) очищені від скидання або коли MSSP модуль заблокований. Керування I2C шиною може бути узяте, коли P біт установлений, або шина вільна з чистими S і P бітами.
У привілейованому режимі, SCL і SDA лінії маніпулюються апаратними засобами MSSP.
Наступні події призводять до того, що біт прапорця переривання SSP, SSPIF, буде встановлено.
Умова ПОЧАТКУ
Умова КІНЦЯ
Переданий/отриманий байт переданих даних
Оповіщення передачі
Повторний Початок
2.5.2.9 Операції режиму multi-master
У мультипривілейованому режимі генерація переривання при виявленні умов ПОЧАТКУ або КІНЦЯ дозволяє визначити, коли шина вільна. Біти КІНЦЯ (P) і ПОЧАТОКУ (S) очищені від скидання або коли MSSP модуль заблокований. Керування I2C шиною може бути почато, коли біт P (SSPSTAT <4>) встановлений, або шина вільна з чистими S і P бітами. Коли шина зайнята, включення переривання SSP згенерує переривання, коли виникне умова КІНЦЯ.
У мультипривілейованій операції, лінія SDA повинна контролюватись для арбітражу, щоб бачити, чи є рівень сигналу очікуваним рівнем виходу. Ця перевірка виконується апаратно, і результат розміщається у BCLIF біт.
Стани, де арбітраж може бути загублений:
Передача Адреси
Передача даних
Умова Початку
Повторна Умова Початку
Умова, оповіщення
2.6 Опис основних режимів функціонування
Після ввімкнення живлення пристрій переходить в режим ініціалізації. Для цього режиму характерними є ініціалізація мікроконтроллера та ініціалізація РК дисплею.
Після ініціалізації відбувається перехід до режиму роботи. Даний режим характерний тим, що термометр DS-600 [www5] відповідно до температури свого корпусу видає напругу, яка подається на вхід АЦП мікроконтроллера PIC16C771 [www1]. В свою чергу мікроконтроллер обраховує дійсне значення температури та видає його у відповідному форматі на РК матрицю. Мікроконтроллер зв’язаний з РК контроллером HD44780 [www4] за допомогою 11 бітної шини: 8 біт даних та 3 керуючі біти. Для покращення зображення на дисплеї використовується додадкове живлення драйвера рідких кристалів
-5В. В даній мікроеом організована схема скиду, що забезпечує переривання роботи мікропроцесора у нештатних ситуаціях.
3.Опис схеми електричної принципової по вузлах з часовими дiаграмами в основних режимах функцiонування.
3.1 Центральний процесор
3.1.1 Функціональне призначення виводів PIC16C771
Схема виводів мікропроцесора представлена на рис. Опис ніжок приведений в таблиці 3.1.1
Рис 3.1.1.1 Схема виводів мікропроцесора
Таблиця 3.1.1.1 Опис виводів мікропроцесора
Name
Function
Input Type
Output Type
Description
RA0/AN0
RAO
ST
CMOS
Двонаправлений вхід/вихід
AN0
AN
Аналоговий вхід
RA1/AN1/LVDIN
RA1
ST
CMOS
Двонаправлений вхід/вихід
AN1
AN
Аналоговий вхід
LVDIN
AN
Вхід виявлення низької напруги
RA2/AN2/VREF-/VRL
RA2
ST
CMOS
Двонаправлений вхід/вихід
AN2
AN
Аналоговий вхід
Vref-
AN
Негативний аналоговий вхід
VRL
AN
Внутрішній вихід високої напруги
RA3/AN3A/REF+/VRH
RA3
ST
CMOS
Двонаправлений вхід/вихід
AN3
AN
Аналоговий вхід
VREF+
AN
Позитивний аналоговий вхід
VRH
AN
Внутрішній вихід низької напруги
RA4AT0CKI
RA4
ST
OD
Двонаправлений вхід/вихід
T0CKI
ST
Вхід тактової чатоти таймера0
RA5/MCLR/VPP
RA5
ST
Вхідний порт
MCLR
ST
Скидання пристрою
Vpp
Power
Programming voltage
RA6/OSC2/CLKOUT
RA6
ST
CMOS
Двонаправлений вхід/вихід
OSC2
XTAL
Crystal/resonator
CLKOUT
CMOS
Fosc/4 output
RA7/OSC1/CLKIN
RA7
ST
CMOS
Двонаправлений вхід/вихід
OSC1
XTAL
Кристал/Резонатор
CLKIN
ST
Вхід зовнішньої тактової частоти/приеднання ER резистора
RB0/AN4/INT
RBO
TTL
CMOS
Двонаправлений вхід/вихід <1>
AN4
AN
Аналоговий вхід
INT
ST
Вхід переривання
RB1/AN5/SS
RB1
TTL
CMOS
Двонаправлений вхід/вихід *1'
AN5
AN
Аналоговий вхід
SS
ST
Вибір другорядного для SSP модуля
RB2/SCK/SCL
RB2
TTL
CMOS
Двонаправлений вхід/вихід '1'
SCK
ST
CMOS
Тактова частота вводу/виводу для SPI
SCL
ST
OD
Тактова частота вводу/виводу для I2C
RB3/CCP1/P1A
RB3
TTL
CMOS
Двонаправлений вхід/вихід '1'
CCP1
ST
CMOS
Вхід збору даних 1/Вхід порівняння даних 1
P1A
CMOS
PWM P1A вихід
RB4/SDI/SDA
RB4
TTL
CMOS
Двонаправлений вхід/вихід '1'
SDI
ST
Послідовний вхід для SPI
SDA
ST
OD
Послідовний вхід/вихід для I2C
RB5/SDO/P1B
RB5
ST
CMOS
Двонаправлений вхід/вихід *1'
SDO
CMOS
Послідовний вихід для SPI
P1B
CMOS
PWM P1B вихід
RB6AT1OSOAT1CKI/P1C
RB6
TTL
CMOS
Двонаправлений вхід/вихід <1>
T1OSO
XTAL
Кристал/Резонатор
T1CKI
ST
Вхід тактової чатоти таймера1
P1C
CMOS
PWM P1C вихід
RB7AT1OSI/P1D
RB7
TTL
CMOS
Двонаправлений вхід/вихід <1>
T1OSI
XTAL
Кристал/Резонатор таймера1
P1D
CMOS
PWM P1 D вихід
Vss
Vss
Power
Земля для логічних ніжок та ніжок вводу/виводу
Vdd
Vdd
Power
Позитивне живлення для логічних ніжок та ніжок вводу/виводу
AVss
AVss
Power
Земля для аналогових ніжок
AVdd
AVdd
Power
Позитивне живлення для аналогових ніжок
3.1.2 Опис системи команд
Кожна команда PIC16C771 - слово на 14 бітів, розділене на КОД ОПЕРАЦІЇ, що визначає тип команди й один або більше операндов, що далі визначають операцію команди.
Для байтовых команд, f представляє покажчик регістрогового файлу і d представляє покажчик адресата. Покажчик регістрового файлу представляє регістровий файл, що буде брати участь в операції.
Покажчик адресата визначає, куди результат оерації повинний бути поміщений. Якщо 'd' є нульовим, результат поміщений у регістр W. Якщо 'd' - один, результат поміщений у регістровий файл, зазначений у команді.
Для бітових команд, 'b' представляє бітове поле призначення, що вибирає номер біта, якого торкається операція, у той час як 'f представляє номер файлу, у якому біт розташований.
Для операцій з константами та операції керування, 'к' представляє постійне або літеральне значення на вісьмому або одинадцятому біті.
Нижче приведена таблиця опису операндів інструкцій
Таблиця 3.1.2.1 Таблиця опису полів
Поле
Опис
f
Адреса регістрового файлу (0х00 до 0х7F)
W
Робочий регістр (акумулятор)
b
Бітова адреса
k
Поле константи
x
Не має значення розміщення (=0 або 1)
Асемблер генерує код з х=0. Це рекомендується для співпадіння з усіма програмними засобами Microchip.
d
Визначення місця призначення; d=0: збереження результату в акумуляторі
d=1: збереження результату в регістровому файлі. По замовчуванню d=0
PC
Програмний лічильник
___
TO
Біт часу
___
PD
Біт живлення
Система команд дуже ортогональна і згрупована в три основних категорії:
Байтові операції
Бітові операції
Константи та операції керування
Усі команди виконуються в межах одного окремого циклу інструкції, окрім якщо співпадає перевірка умови або програмний лічильник змінений у результаті виконання команди. У цьому випадку, виконання забирає два цикли команди з другим циклом, виконаним як NOP. Один цикл інструкцій складається з чотирьох періодів генератора. Таким чином, для частоти генератора 4 МГЦ, нормальний час виконання команди - 1 (с. Якщо перевірка умови, або лічильник програми змінений у результаті інструкції, час виконання команди - 2 (с.
Формати інструкцій представлені на рис 3.1.2.1
Рис 3.1.2.1 Формати інструкцій
Набір інструкцій представлений в таблиці 3.1.3
Таблиця 3.1.2.2 Набір інструкцій
Mnemonic,
Description
Cycles
14-Bit Opcode
Status
Notes
Operands
MSb
LSb
Affected
BYTE-ORIENTED FILE REGISTER OPERATIONS
ADDWF
f, d
Додавання W та f
1
00
0111 dfff
ffff
C,DC,Z
1,2
ANDWF
f, d
Кон’юнкція W та f
1
00
0101 dfff
ffff
Z
1,2
CLRF
f
Очистити f
1
00
0001 lfff
ffff
Z
2
CLRW
-
Очистити W
1
00
0001 0000
0011
Z
COMF
f,d
Інверсія f
1
00
1001 dfff
ffff
Z
1,2
DECF
f,d
Декрементувати f
1
00
0011 dfff
ffff
Z
1,2
DECFSZ
f, d
Декрементувати f, пропустити якщо 0
1(2)
00
1011 dfff
ffff
1,2,3
INCF
f, d
Інкрементувати f
1
00
1010 dfff
ffff
Z
1,2
INCFSZ
f, d
Інкрементувати f, пропустити якщо 0
1(2)
00
1111 dfff
ffff
1,2,3
IORWF
f,d
Включаюче АБО W та f
1
00
0100 dfff
ffff
Z
1,2
MOVF
f,d
Перемістити f
1
00
1000 dfff
ffff
Z
1,2
MOVWF
f
Перемстити W в f
1
00
0000 lfff
ffff
NOP
-
Немає операції
1
00
0000 0xx0
0000
RLF
f, d
Зсув f вліво
1
00
1101 dfff
ffff
C
1,2
RRF
f, d
Зсув f вправо
1
00
1100 dfff
ffff
C
1,2
SUBWF
f,d
Віднімання W від f
1
00
0010 dfff
ffff
C,DC,Z
1,2
SWAPF
f,d
Swap nibbles in f
1
00
1110 dfff
ffff
1,2
XORWF
f,d
Виключне АБО W та f
1
00
0110 dfff
ffff
Z
1,2
BIT-ORIENTED FILE REGISTER OPERATIONS
BCF
f, b
Очистити біт f
1
01
00bb bfff
ffff
1,2
BSF
f, b
Встановити біт f
1
01
01bb bfff
ffff
1,2
BTFSC
f, b
Пропустити команду, якщо b рівне 0
1 (2)
01
10bb bfff
ffff
3
BTFSS
f, b
Пропустити команду, якщо b рівне 1
1 (2)
01
11bb bfff
ffff
3
LITERAL AND CONTROL OPERATIONS
ADDLW
k
Додати константу та W
1
11
111x kkkk
kkkk
C,DC,Z
ANDLW
k
Кон’юнкція константи з W
1
11
1001 kkkk
kkkk
Z
CALL
k
Виклик підпрограми
2
10
0kkk kkkk
kkkk
CLRWDT
-
Очистити сторожевий таймер
1
00
0000 0110
0100
TO.PD
GOTO
k
Перейти до адреси
2
10
1kkk kkkk
kkkk
IORLW
k
Включаюче АБО літерал та W
1
11
1000 kkkk
kkkk
Z
MOVLW
k
Перемістити константу до W
1
11
00xx kkkk
kkkk
RETFIE
-
Повернутись з переривання
2
00
0000 0000
1001
RETLW
k
Повернути з константою у W
2
11
01xx kkkk
kkkk
RETURN
-
Повернутись з підпрограми
2
00
0000 0000
1000
SLEEP
-
Піти у режим бездіяльності
1
00
0000 0110
0011
TO.PD
SUBLW
k
Відняти W від константи
1
11
110x kkkk
kkkk
C,DC,Z
XORLW
k
Виключне АБО літерал з W
1
11
1010 kkkk
kkkk
Z
3.1.3 Аналого-цифровий перетворювач
АЦП (A/D) модуль має шість входів.
A/D конвертер у PIC16С771 дозволяє перетворення аналогового сигналу у відповідне цифрове значення на 12 біт. A/D модуль має до 6 аналогових входів, що мультиплексовані в одну вибірку. Вихід вибірки – є вхід в конвертер, що генерує результат через послідовне наближення.
A/D конвертер може бути викликаний, установлюючи GO/DONE біт, або спеціальним подією режим порівняння ECCP1 модуля. Коли перетворення закінчене, GO/DONE біт встановлються до '0', ADIF біт у регістрі PIR1 установлений, і переривання A/D відбудеться, якщо допускається.
A/D конвертер має унікальну особливість того, щоб бути здатним працювати, у той час як пристрій знаходиться в режимі SLEEP. Щоб працювати в SLEEP, A/D частота конвертера повинна бути отримані з АЦП внутрішнього ємнісно-резистивного генератора.
A/D модуль має чотири регістри:
A/D Регістр Результату молодша адреса ADRESL
A/D Регістр Результату старша адреса ADRESH
A/D Регістр Керування 0 (ADCON0)
A/D Регістр Керування 1 (ADCON1)
Регістр Керування
Регістр ADCON0 контролює операції A/D модуля. Регістр ADCON1, конфігурує точки порту, конфігурацію напруги і формат результату. Точки порту можуть бути сконфігуровані як аналогові входи або як цифрові виходи.
Комбінація ADRESH і ADRESL регістрів містить результат A/D перетворення. Регістрова пара згадується як регістр ADRES. Коли A/D перетворення закінчене, результат завантажений у ADRES, GO/DONE
біт , (ADCON0 <2>) очищений, і прапорець ADIF переривання A/D, установлений.
Формат 12 бітового результату приведений нижче
Рис 3.1.3.1 Формат 12 бітового результату
Блок-схема A/D модуля (Рис 3.1.3.2)
Рис 3.1.3.2 Функціональна схема A/D модуля
Часова діаграма перетворення представлена на Рис 3.1.3.3
Рис 3.1.3.3 Часова діаграма перетворення A/D модуля
3.1.4 Спеціальні функції CPU
PIC16С771 має декілька різних скидань. Ці скидання згруповані в два класи: при включеному живленні і невключеному живленні. Скидання при включеному живленні є скидання при ввімкненні і скидання короткочасного провалу напруги живлення, що припускають, що пристрій Vdd був нижче його нормально діючого діапазону для конфігурації пристрою. Скидання типу, при невключеному живленні, припускають нормально діючий діапазон для конфігурації пристрою перед/протягом і після скидання.
Скидання при включенні живлення (POR)
Програмоване скидання короткочасного провалу напруги живлення (PBOR)
MCLR скидання протягом нормальної операції
MCLR скидання протягом БЕЗДІЯЛЬНОСТІ
WDT Скидання (протягом нормальної операції)
Деяких регістрів торкаються скидання жодного типу. Їхній стан - невідомий на скиданні при включенні живлення і незмінний в будь-якому іншому скиданні. Більшість інших регістрів ініціалізуються після скидання, однак їх не торкає скидання WDT протягом бездіяльності, тому що це розглядають як WDT пробудження, що розглядається як поновлення нормальної роботи. [4]
Декілька бітів стану були зарезервовані, щоб вказати, яке скидання відбулось. Спрощену блок-схему схеми скидання на кристалі приведено на рис 3.1.6
Рис 3.1.4.1 Спрощена блок-схема схеми скидання на кристалі
3.2 Постійна пам’ять програм
PIC16C771 має 13 бітовий програмний лічильник , здатний адресувати до 8 КБ x 14 простору пам’яті програм. PIC16C771 має 4 КБ x 14 слів програмної пам’яті. Доступ до місця розташування вище фізично реалізованої адреси викликає перенос. Структура памяті приведена на рис
Вектор скидання - у 0000h, і вектор переривання - у 0004h.
Рис 3.2.1 Постійна пам’ять програм
Для відображення блоків програмної памяті використовуються регістри PMDATH та PMDATL розміром в 2 байтове слово, шо містить 12 біт. Регістри PMADRH та PMADRL відповідно розміром в 2 байтове слово містять 14 біт та використовуються для адресації памяті програм. Більшість пристроїв мають до 8КБ слів програмної пам’яті EPROM, шо займає адресний простір з 0h до 3FFFh.
Виконання циклу читання пам’яті програм (рис 3.2.2).
Рис 3.2.2 Виконання циклу читання пам’яті програм
3.3 Оперативна пам’ять даних
Пам'ять даних розділена на різновидні банки, що містять універсальні та спеціальні функціональні регістри. Біти RP1 і RP0 - біти вибору банку (Рис 3.3.1).
Рис 3.3.1 Вибір банку пам’яті
Кожен банк має розмір до 7Fh (128 байтів). Більш низькі місця розташування кожного банку зарезервовані для спеціальних функціональних регістрів. Вище спеціальних функціональних регістрів розміщені регістри універсального призначення, реалізовані як статична оперативна пам'ять. Усі реалізовані банки містять спеціальні функціональні регістри. Деякі спеціальні функціональні регістри, що часто використовуються в одному банку можуть буди відзеркалені в іншому, це спрощує код програм та підвідвищує швидкодію.
Карта регістрового файлу приведена на Рис 3.3.2
Рис 3.3.2 Карта регістрового файлу
Як забезпечується пряма та непряма адресація в мікроконтроллері показано на Рис 3.3.3
Рис 3.3.3 Пряма та непряма адресація
3.4 Вузол синхронізації
PIC16C771 може використовувати чотири різні режими генератора. Користувач може запрограмувати біти (FOSC <2:0>), щоб вибрати один з цих режимів:
LP Кристал малої потужності
XT Кристал/Резонатор
HS Високошвидкісний кристал /Рeзонатор
ER Зовнішній резистор
INTRC Внутрішні 4 MHz
EC Зовнішня частота
В режимах LP, XT, HS кристал чи керамічний резонатор підєднюється до точок OSC1/CLKIN і OSC2/CLKOUT. Схема подана на рис 3.4.1
Рис 3.4.1 Схема приєднання блоку синхронізації
Для аплікацій шо не чутливі до часу , ER режим частоти пропонує додаткові заощадження енергії. Тільки один зовнішній компонент, резистор, зв'язаний з точками OSC1 і Vss, необхідний, щоб установити операційну частоту внутрішнього генератора. Схема підключення подана на рисунку 3.4.2
Рис 3.4.2 Схема приєднання зовнішнього резистора
У аплікаціях, де джерело частоти є зовнішнім, PIC16C771 повинний бути запрограмований, щоб вибрати EC режим. У цьому режимі, RA6/OSC2/CLKOUT точка доступна, як вхід/вихід. Схема підключення подана на рисунку 3.4.3.
Рис 3.4.3 Схема приєднання зовнішнього джерела синхронізації
3.5 Вузол скиду
Вузол скиду (Рис 3.5 1) представляє собою схему з конденсатора та ключа, що замикаючись встановлює на інверсному вході сигналу Master Clear низький рівень. [1]
Рис 3.5.1 Вузол скиду
3.6 Пiдсистема вводу-виводу
Підсистема вводу-виводу даного пристрою складається з температурного датчика (пристрій вводу) та рідкокристадлічного дисплею (пристрій виводу).
3.6.1 Інвертор напруги MAX660 [www5]
MAX660 монолітичний інвентор напруги, перетворює напругу +1,5В-+5В у
-1,5В - -5В відповідно.
Використовується в:
ноутбуках
медичних інструментах
інтерфейсах БЖ
ручних інструментах
Далі на Рис 3.6.1.1 та Рис 3.6.1.2 подані схеми ніжок та схема типового підключення
Рис 3.6.1.1 Схеми ніжок MAX 660
Рис 3.6.1.2 Схеми типового підключення MAX 660
3.6.2 Температурний сенсор
В даній мікроеом використовується температурний сенсор DS600 з аналоговим виходом фірми DALL...