Міністерство освіти та науки України
Національний університет “Львівська політехніка”
Курсова робота
з предмету: “Мікропроцесорні системи”
тема: “Проектування мікрокомп’ютера”
Виконав: студент групи КСМ-41
Перевірив: Пуйда В.Я
Львів – 2004
Зміст
Загальні відомості про процесор PIC14000 3
Опис схеми електричної функціональної та основних режимів функціонування. 16
Загальна схема системи 16
Формування магістралі адреси та даних 17
Підключення зовнішнього пристрою 17
Опис схеми електричної принципової по вузлах з часовими діаграмами в основних режимах функціонування. 18
Вузол синхронізації 18
Вузол початкового скидання 19
Підключення зовнішнього пристрою 23
Програма початкового завантаження 25
Висновок 28
Література 29
Загальні відомості про процесор PIC14000
PIC14000 є RISC-процесором гарвардської архітектури з окремою 14-розрядною інструкцією і шинами 8-розрядних даних. Командний конвеєр два-стадії дозволяє всім інструкціям виконуватися в одному циклі, за винятком інструкцій переходу, які вимагають двох циклів.
Деякі загальні можливості МК PIC:
Внутрішнє скидання по включенню живлення
Сторожовий таймер (антизависання)
Захист пам'яті програм від несанкціонованого прочитування
Могутні лінії вводу-виводу
Скорочений набір команд (від 33)
Можливість внутрішньосхемного програмування
Усього 35 простих для вивчення односкладових інструкції
Всі інструкції виконуються за один такт, окрім інструкцій переходу, що виконуються за два такти
Швидкість роботи: тактова частота до 20 МГц
пам'ять даних ЕППЗУ об'ємом 4096 х 14
192 х 8 універсальних регістрів (SRAM)
6 внутрішніх і 5 зовнішніх джерел переривань
38 апаратних регістрів спеціального призначення
Апаратний 8-рівневий стек
Аналогова периферія:
Аналого-цифровий перетворювач (АЦП):
вісім зовнішніх вхідних каналів, включаючи два канали із зсувом вхідного рівня, що набудовується;
шість внутрішніх вхідних каналів;
16-битный програмований таймер з регістром-защелкою;
максимальний час перетворення 16 мс при максимальному (16 розрядів) дозволі і тактовій частоті 4 МГц;
4-розрядне програмоване джерело струму
Вбудоване джерело опорної напруги
Заводське калібрування з константами калібрування, збереженими в ЕППЗУ
Вбудований датчик температури
Вихід управління регулятором напруги
Два компаратори з програмованими джерелами опорної напруги
Вбудований детектор зниженої напруги живлення
Особливості мікроконтролера:
Скидання при включенні живлення (POR), таймер включення живлення (PWRT) і таймер запуску тактового генератора (OSC)
Сторожовий таймер (WDT) з власним вбудованим RC- генератором для підвищення надійності роботи
Таймер скидання пристрою (DRT)
Багатосегментний програмований захист коду
Програмування на платі через послідовний порт (використовуючи два виводи)
Режими роботи тактового генератора:
внутрішній генератор 4 МГц
зовнішній генератор на кварцовому резонаторі
Цифрова периферія:
22 лінії вводу/виводу з індивідуальним завданням напряму
Високий втікаючий/витікаючий струм для безпосереднього управління світлодіодними індикаторами
TMR0: 8-розрядний таймер/лічильник з 8-рязрядным програмованим попереднім дільником
16-розрядний таймер АЦП: може використовуватися як універсальний таймер: має 8 зовнішніх каналів, шість внутрішніх
Послідовний порт I2С, сумісний з SMB
Температурний датчик "на кристалі"
Внутрішній RC-генератор 4 МГц
Два компаратори з програмованими Uref
2 режиму низького споживання (SLEEP і HIBERNATE)
Технологія КМОП:
Економічна, високошвидкісна технологія КМОП ЕППЗУ
Повністю статична архітектура
Широкий діапазон робочих напруг живлення (від 2,7В до 6,0В)
Комерційний і промисловий температурні діапазони
Низьке споживання енергії: - < 3 мА при 5 В, 4 МГц - 300 мкА при 3 У (в режимі SLEEP: генератори зупинені, аналогові схеми активні) - < 5 мкА (в сплячому режимі: генератори зупинені, аналогові схеми неактивні, і сторожовий таймер відключений)
Застосування
Мікроконтролер PIC14000 орієнтований на застосування в приладах типу зарядних пристроїв, контролю місткості батареї, системах обліку електропостачання, управління джерелами безперебійного живлення, обробки і збору даних і відрізняються великою аналоговою периферією.
Обчислювальна потужність мікроконтролера має наступні характеристики: 35 однослівних команд, 4096x14 слів пам'яті програм, 192 байта ОЗУ, максимальна тактова частота 20 МГц, послідовний порт шини I2С. Випускаються ці МК в 28 вивідних корпусах DIP, CERDIP і SOIC.
Рисунок 1 – Основні виводи мікроконтролера
PIC14000 містить три таймери, Watchdog Таймер (WDT), Timer0 (TMR0), і A/D Таймер (ADTMR). Watchdog Таймер включає свій власний вбудований RC- сцилятор, що надає захист проти програмного зависання. TMR0 є 8-бітним лічильником з 8-бітним попереднім подільником частоти. Він може бути такотованим зовнішньо за допомог використання виводу RC3/T0CKI. ADTMR призначено для використання в конверторах A/D, але може також будьте використаним як таймер загального виористання. Він має асоціативний регістр, який може бути використаний,щоб виміряти час між подіями.
Внутрішнє коло виявлення низької напруги дозволяє проводити відстежування рівнів напруги. На випадок виявлення низького рівня напруги PIC14000 може бути налаштований, для того щоб зберегти свій стан.
Енергетичні режими збережень є доступними для мобільних застосувань. Sleep і HIBERNATE режими пропонують різні рівні енергетичних збережень. PIC14000 може відновлювати свій стан з цих режимів через переривання або перезавантажуватись.
PIC14000 відмінно працює в пристроях призначених для акумулятора, заряджання, контроля місткості, і реєстрації даних. Низька вартість, малопотужна, висока, продуктивність, зручність використання і гнучкість I/O роблять PIC14000 дуже зручним у інших застосуваннях, як наприклад моніторинг температури.
Код, написаний для PIC16C6X/7X може бути легко перенесений до PIC14000. PIC14000 супроводжується макрокомандним асемблером, симулятором програмного забезпечення, внутрішнім емулятором, дешевим середовищем розробки з широкими можливостями. "C" компілятор і різні інструментальні засоби підтримки логіки є також доступними до використання.
PIC14000 адресує 4K x 14 програмної пам’яті. Вся пам'ять програм є внутрішньою. PIC14000 може безпосередньо звертатися до регістрових файлів або пам'яті даних. Всі спеціальні регістри, що включають лічильник команд, занесені в карту в пам'яті даних. PIC14000 має ортогональну командну множину, яка робить це можливим виконання будь-якої дії над будь-яким регістром, що використовує будь-який спосіб адресації. Ця симетрична природа і мала кількість „особливих ситуацій”, надає можливість простого і ефективного програмування PIC14000.
PIC14000 містить 8-біт ALU і робочий регістр. ALU виконує арифметичні і логічні операції над даними в робочому регістрі і будь-яким регістровим файлом. ALU може виконувати додавання, віднімання, зсуви, і логічні операції. За замовчуванням арифметичні операції виконуються в доповняльному коді. У інструкції приймають участь два-операнди, один операнд – робочий регістр (W регістр). Інший операнд є регістровий файл або константа. В інструкції з одним операндом, операнд є або W-регістр або регістровий файл.
Залежно від виконаної інструкції, ALU може вплинути на значення бітів у регістрі прапорців (C, DC, Z).
Рисунок 2 – Структура мікро контролера PIC14000
Позначення типів виводів:
CMOS - CMOS-сумісний вхід або вихід
ST - вхід з тригером Шмідта, з CMOS рівнями
SM - SMBus сумісний вхід
OD - Open-drain вихід. Необхідний зовнішній регістр якщо використовується як вихід.
NPU – Значення напруги на цьому виводі встановиться автоматично в VDD-1.0V, коли на виході буде логічна 1
AN - Аналоговий
Таблиця 1 – Призначення та тип виводів
Назва виводу
№
І/О
Тип виводу
Призначення
Input
output
CDAC
22
O
-
AN
A/D виводу джерела похилого графіку напруги. Сполучений з зовнішнім конденсатором, щоб генерувати лінійну похилу напруги.
RA0/AN0
2
I/O
AN/ST
CMOS
Аналоговий канал вводу 0
RA1/AN1
1
I/O
AN/ST
CMOS
Аналоговий канал вводу 1
RA2/AN2
28
I/O
AN/ST
CMOS
Аналоговий канал вводу 2
RA3/AN3
27
I/O
AN/ST
CMOS
Аналоговий канал вводу 3
SUM
21
O
-
AN
Вивід суми
RC0/REFA
19
I/O-PU
ST
CMOS
Вивід прямої передачі даних програм А
RC1/CMPA
18
I/O-PU
ST
CMOS
Вивід прямої передачі даних компаратора А
RC2
17
I/O-PU
ST
CMOS
Вивід прямої передачі даних
RC3/T0CKI
16
I/O-PU
ST
CMOS
Вивід прямої передачі даних
RC4
15
I/O-PU
ST
CMOS
Вивід прямої передачі даних
RC5
13
I/O-PU
ST
CMOS
Вивід прямої передачі даних
RC6/SCLA
12
I/O
ST/SM
NPU/OD
Вивід вводу-виводу загального призначення
RC7/SDAA
11
I/O
ST/SM
NPU/OD
Вивід вводу-виводу загального призначення
RD0/SCLB
6
I/O
ST/SM
NPU/OD
Вивід вводу-виводу загального призначення
RD1/SDAB
5
I/O
ST/SM
NPU/OD
Вивід вводу-виводу загального призначення
RD2/CMPB
4
I/O-PU
AN/ST
CMOS
Вивід вводу-виводу загального призначення або вивід компаратора В
RD3/REFB
3
I/O-PU
AN/ST
CMOS
Вивід вводу-виводу загального призначення або вивід для програм В
RD4/AN4
26
I/O
AN/ST
CMOS
Аналоговий канал вводу 4
RD5/AN5
25
I/O
AN/ST
CMOS
Аналоговий канал вводу 5
RD6/AN6
24
I/O
AN/ST
CMOS
Аналоговий канал вводу 6
RD7/AN7
23
I/O
AN/ST
CMOS
Аналоговий канал вводу 7
VREG
10
O
-
AN
Вивід контролю живлення
OSC1/PBTN
8
I-PU
ST
-
Може використовуватися для генерування переривань
Вхід зовнішньої синхронізації
OSC2/
CLKOUT
7
O
-
CMOS
Вихід загального призначення
Вихід зовнішньої синхронізації
MCLR/VPP
14
I/PWR
ST
-
Вхід скидання (очищення)/ програмований вибір живлення
VDD
9
PWR
-
-
Живлення
VSS
20
GND
-
-
Живлення
Організація пам'яті програм
PIC14000 має 13-розрядний лічильник команд, здатний до адресації 8K x 14 простору пам'яті програм. Тільки перші 4K x 14 (0000-0FFFh) фізично існують. Адресування простору розташованого над фізично існуючою викличе перехід на початок існуючої області пам’яті.
Вектор скидання знаходиться в 0000h і вектор перерривання знаходиться у 0004h. 4096 слів пам'яті програм поділені на:
адреси векторів (0000h-0004h)
сторінка пам'яті програм 0 (0005h-07FFH)
сторінка пам'яті програм 1 (0800h-0FBFh)
простір калібрування (64 слова, 0FC0h-0FFFh)
Код програми може міститися як в сторінці 0 так і сторінці 1.
Рисунок З – Карта програмної пам’яті мікроконтролера
Організація пам'яті даних
Пам'ять даних поділена на два банки, які містять регістри загального призначення, і спеціальні регістри. Банк 0 вибирається, коли RP0 біт в регістрі STATUS очищений. Банк 1 вибраний, коли RP0 біт в регістрі STATUS встановлений в 1. Кожний банк розширюється до 7Fh (128 байтів). Перші 32 комірки кожного банку зарезервовані для спеціальних функціональних регістрів. Декілька спеціальних регістрів визначені в обох банках пам’яті. Регістри загального призначення виконані як статична пам’ять RAM, та займають адреси від 20h до 7Fh, і від A0 до FF.
Регістровий файл загального призначення може адресуватися прямо чи непрямо, за допомогою регістру вибору FSR
Регістри спеціального призначення використовуються процесором для контролю необхідних операцій у пристрої. Ці регістри є статичною RAM.
Спеціальні регістри поділяються на 2 категорії: регістри, які асоційовані з ядром процесора, та регістри які спеціалізовані на периферійних пристроях.
Порти вводу-виводу
Pic14000 має 3 порти: PORTA, PORTC та PORTD.
PORTA використовується як аналоговий вхідний порт. PORTC порт вводу-виводу загального призначення та з’єднання з хостом. PORTD надає додаткові лінії. 4 лінії PORTD можуть використовуватися як аналогові лінії
PORTA and TRISA
PORTA є 4-розрядним портом із записом даних, розміщеним за адресою 05h і координуючий із регістром напрямку даних запису напряму даних (TRISA) за адресою 85h. PORTA може діяти як будь-яке аналогове джерело даних для внутрішнього A/D конвертора, або як загальний цифровий I/O порт. Ці сигнали є з тригерами Шмідта, коли використовуються як цифрові входи, і мають CMOS драйвери як виходи. Виводи PORTA є мультиплексними з аналоговими входами. ADCON1<1:0>- розряди встановлюють режим роботи порту. Коли встановлений цифровий режим, PORTA читається, а протилежному випалку іде запис даних в порт
PORTC і TRISC
PORTC є 8-бітовим двонаправленим порт, з тригерами Шмідта на вході, що обсуговує різні функції, в залежності від програмування:
прямий запис в пам’ять інії (PORTC<7:0)
послідовний порт
лінії переривання (PORTC<7:4>)
програмоване посилання і вихід компаратора
джерело Timer0 на RC3
Регістр даних PORTC даних розміщений за адресою 07h і регістр напряму даних (TRISC) знаходиться в 87h.
PORTD та TRISD
PORTD – це 8-бітний порт що може бути використано як вхід-вихід загального призначення. ; входи можуть бути сконфігуровані як аналогові входи.
Аналогові модулі
PIC14000 включає аналогові компоненти:
Компаратор
4-розрядне programmable поточне джерело
16-канал аналоговий mux
16-розрядний таймер із записом піймання
Кожний канал перетворений працює незалежно за допомогою методу похилої конверсії, що використовує компаратор одинарної точності.
При процесі конверсії даних виконують наступні кроки:
очистити REFOFF (SLPCON<5>) та ADOFF (SLPCON<0>) біти, що включає A/D модуль.
Ініціювати ADCON1<7:4> щоб ініціювати програмоване поточне джерело.
встановити ADRST (ADCON0<1>), для мінімуму 200 s, щоб зупинити таймер і повністю розвантажити конденсатор.
A/D таймер змінює своє значення (ADTMR) від 0000h до FFFFh і повинен бути ініційований перед кожною конверсією.
Щоб запустити конверсію, програмно очитисти ADRST, це дозволить таймеру почати перерахунок.
Коли зростаюча напруга перевищує значення на аналоговому вході, на виході компаратора відбудеться перехід від високо до низького рівня.
Після цього виконується запис поточного значення A/D конвертера в 16-розрядний регістр.
Виконується генерація переривання до CPU, якщо переривання дозволені.
Максимальне значення таймеру є 65,536. Воно може бути підраховано вбудованим або зовнішнім осцилятором. На частоті 4 MHz, максимальний час конверсії є 16.38 ms для повного підрахунку. Типова конверсія повинна завершитись перед тим, як досягнутий повний підрахунок. Прапорець переповнювання таймера встановлюється одного дня таймера перепонюється (більше FFFFh) та генерується переривання до CPU.
Опис схеми електричної функціональної та основних режимів функціонування.
Загальна схема системи
Мікрокомп’ютер складається з наступних вузлів( процесора( оперативної пам(яті, підсистеми вводу-виводу, яка обслуговує один або декілька периферійних пристроїв( В системі використовуються 3 магістралі: даних, адрес та магістраль керування. Дані передаються по 48- розрядній магістралі даних( а адреси - по 32-розрядній магістралі адрес( По магістралі керування передаються керуючі сигнали( На вузол пам’яті подається сигнал (запис або читання даних)( Сигнал використовується для початкового скидання та ініціалізації процесора( Спрощена функціональна схема мікрокомп’ютера показана на рис.4.
Рисунок 4 – Загальна структура мікрокомп’ютера
Формування магістралі адреси та даних
В мікрокомп’ютері, що проектується, зовнішня пам’ять підключається через послідовний інтерфейс.
Рисунок 5 – Формування магістралі адреси та даних
Підключення зовнішнього пристрою
В якості зовнішнього пристрою використовується алфавітно-цифровий ЖК-модуль.
Рисунок 6 – Підключення зовнішнього пристрою
Опис схеми електричної принципової по вузлах з часовими діаграмами в основних режимах функціонування.
Вузол синхронізації
PIC14000 може бути керованим з двома різним варіантами синхронізації. Користувач може програмно задати конфігурацію слова (CONFIG<0>), щоб вибрати один з варіантів:
• HS високошвидкісний Crystal/Ceramic Резонатор (CONFIG<0> ='0')
• внутрішній осцилятор (CONFIG<0> ='1') (Значення за замовчуванням)
PIC14000 включає в себе вбудований осцилятор, що дає економію в ціні та в апаратній частині. Зовнішні компоненти не є необхідним для роботи. Номінальна частота осцилятора 4 MHz.. За допомогою вибирання режима IN OSC1/PBTN може генерувати переривання до процесора. OSC2 в свою чергу служить виводом загалного призначення та може надавати доступ до себе через MISC<1>. Через цей быт можна напряму доступися до OSC2.
OSC2 може також виводити частота осцилятора IN, поділену на 4.
Рисунок 7 – Схема під’єднання джерела імпульсів до процесора
Внутрішній осцилятор всередині поділений на 4 блоки для генерації 4 непокриваючих синхронізуючих послідовностей Q1, Q2, Q3 і Q4. Лічильник (PC) команди переключається при кожному Q1, інструкція вибирається з пам’яті програм і заноситься в регістр команди за послідовністю Q4. Інструкція розшифровується і виконується протягом часу Q1 - Q4.
Рисунок 8 - Діаграма тактової частоти процесора
Вузол початкового скидання
В PIC14000 є наступні види скидання:
Power-on скидання (POR)
MCLR скидання протягомї
WDT просте скидання (нормальна дія)
Деякі регістри не змінюють свій стан , після скидання; їхній статус є невідомим при POR.Більшість же регістрів скидаються при Power-on, MCLR. Вони не змінюють свій стан під час WDT Wake-up, яке розглядається як оновлення даних дії. Біти TO і PD використовуються для встановлення типу скидання.
Пристрій має фільтр шуму MCLR. Фільтр виявляє і нехтує малими імпульсами.
Рисунок 9 – Вузол скидання
Рисунок 10 – Діаграма початкового скидання процесора
Послідовний інтерфейс
Модуль I2C є послідовним інтерфейсом для зв’язку з іншими периферійними пристроями або мікроконтролерами. Ці зовнішні пристрої можуть бути послідовними EEPROMs, регістрами зсуву, A/конвертори, тощо I2C є послідовним 2-лінійним інтерфейсом . Оригінальна специфікація, або стандартний режим, для передач даних має швидкість передачі до 100 Kbps. Розширена специфікація, або швидкий режим, передачі даних підтримує швидкість передавання аж до 400 Kbps.
I2C використовує протокол для надійного передавання та прийому даних. Коли іде передача даних, один пристрій є "майстром" (генерує тактову частоту), а інший пристрій(s) є веденим. Всі частини протоколу веденого пристрою виконані в апаратному забезпеченні I2C модуля.
В цьому інтерфейсі протокол повинен шукати адресу пристрою, в який він хоче передати дані. Коли ведучий пристрій хоче ініціалізувати передачу даних, він встановлює адресу пристрою в який має вестися передача даних. Всі пристрої зчитують цю адресу і визначають чи ця адреса є їх власна. Всередині цієї адреси, біт конкретизує, що саме необхідно робити – читати від або писати до веденого пристрою.
Майстер і ведений пристрої знаходяться завжди в протилежних режимах (transmitter/receiver) дії протягом передачі даних. Вони можуть діяти в любому цих двох режимів:
Головний-відправник і ведений-одержувач
Ведений-відправник і головний-одержувач
В обох випадках головний генерує синхронізуючий сигнал.
Зовнішні резистори натягнення використані, щоб гарантувати високий рівень, коли немає пристроя, який не використовує лінію.
Сигнали START STOP визначають відповідно запуск і зупинку передачі даних. START визначається я к перехід з високого до низького рівня SDA, коли сигнал SCL є високим. STOP є перехід з низького до високого рівняв SDA, коли сигнал SCL є високим. Головний пристрій генерує ці сигнали для стартування і закінчення передачі даних. Коли дані передані, лінія може змінити свій стан тільки тоді коли SCL є низьким.
Рисунок 11 – Початок та закінчення передачі даних в послідовному інтерфейсі
Підключення зовнішньої пам’яті типу EEPROM, як є досить простим, при використанні інтерфейсу І2С. В якості мікросхеми пам’яті вибирем мікросхему 24С65. Це швидка пам’ять реалізована на основі матриці 8К*8. Для даних, що досить часто змінюються є виділений 4Кбітний блок ультра швидкої верхньої пам’яті. Пам’ять повинна підтримувати І2С інтерфейс .
Рисунок 12 – Під’єднання зовнішньої пам’яті
Виходи А0-А2 необхідні для вибору мікросхеми пам’яті. Встановимо виходи обох мікросхем пам’яті в стан високого імпедансу і отримаєм блок пам’яті з двох мікросхем.
Лінія І2С підключається до двонаправлених портів Р0.х і при встановленні стану високого імпедансу (через резистори Rp), порти працюють на прийом, а при встановленні низького рівня – на передачу. Вся система підключається до комп’ютера за допомогою послідовного інтерфейсу RS232, як показано на рисунку17.
Рисунок13 - Вузол послідовного інтерфейсу RS-232
Підключення зовнішнього пристрою
В якості зовнішнього пристрою використовується ЖК-дисплею PC-2402-A. Його функціональна схема зображена на рисунку 14
Рисунок 14 – Структурна схема ЖК-дисплею.
Рисунок 15 – Схема підключення до PIC14000 ЖК-дисплею PC-2402-A.
Програма початкового завантаження
PROCESSOR 16C84
__CONFIG 03FF3 ; RC генератор
PCL equ 2
STATUS equ 3 ; адреса стандартних регістрів
PORTB equ 6
EEDATA equ 8
EEADR equ 9
INTCON equ 0BH
OPTREG equ 081H
TRISB equ 086H
EECON1 equ 088H
EECON2 equ 089H
RP0 equ 5
Z equ 2
GIE equ 7
T0IE equ 5
T0IF equ 2
WREN equ 2
WR equ 1
RD equ 0
#define bank0 bcf STATUS,RP0 ;вибрати Bank 0
#define bank1 bsf STATUS,RP0 ;вибрати bank 1
magic macro ;"магічна" послідовність запису в EEPROM
movlw 55H
movwf EECON2^80H
movlw 0AAH
movwf EECON2^80H
endm
cblock 0CH ;блок змінних
n_vals
n_tmp
endc
;**********************************;
; Основна точка входа в програму ;
;**********************************;
org 0
goto start
;**************************;
; Точка входу в переривання ;
;**************************;
org 4
movf EEADR,w
xorwf n_vals,w
btfsc STATUS,Z ;EEADR == n_vals?
clrf EEADR ;якщо так, то почати з нуля
call ee_rd
movf EEDATA,w ;читати EEPROM
movwf PORTB ;отобразить байт
incf EEADR,f ;нова адреса
bcf INTCON,T0IF ;очистити флаг переривання
retfie
start clrf PORTB
bank1
clrf TRISB^80H ;всі розряди порта B на вивід
movlw B'00000111'
movwf OPTREG^80H ;таймер 0 попередній дільник 256:1
bsf EECON1^80,WREN ;дозволити запис в EEPROM
bank0
call ee_init ;пересилка таблиці в EEPROM
bank1
bcf EECON1^80H,WREN ;забронити запис в EEPROM
bank0
bsf INTCON,T0IE ;дозволити переривання від таймера
bsf INTCON,GIE ; дозволити всі переривання
loop goto loop ;"холостий" цикл
; ee_init
; ініціалізація EEPROM з таблиці
ee_init clrw
call lut ;получити кількість елементів в таблиці
movwf n_vals
movwf n_tmp
clrf EEADR
decf EEADR,f ;EEADR = -1
ee_in1 incf EEADR,f
movf EEADR,w
addlw 1
call lut
movwf EEDATA
call ee_wr ;запис в EEPROM
decfsz n_tmp,f
goto ee_in1 ;так
clrf EEADR ;ні, завершити
return
; lut
; просмотр таблиці
lut addwf PCL,f ;добавити W к PCL для отримання адреса ел-та таблиці
retlw D'12' ;число елементів в таблиці
retlw B'1000'
retlw B'1000'
retlw B'0100'
retlw B'0100'
retlw B'0010'
retlw B'0010'
retlw B'0001'
retlw B'0001'
retlw B'0010'
retlw B'0010'
retlw B'0100'
retlw B'0100'
; ee_wr
; Записати байт из EEDATA в EEPROM за адресою в EEADR. Переривання
; повинні бути заборонені перед викликом ee_wr.
ee_wr bank1
magic
bsf EECON1^80H,WR ;почати запись
ee_wr1 btfsc EECON1^80H,WR ;запис завершено?
goto ee_wr1 ;нет
bank0
return
; ee_rd
; Прочитати байт EEPROM из EEPROM по адресу EEADR в EEDATA
ee_rd bank1
bsf EECON1^80H,RD ;почати запис
bank0
return ;при поверненні читання повинно бути завершено
end
Висновок
В створеній мікропроцесорній системі використовується мікропроцесор PIC14000. Він представляє собою завершену систему на одному чіпі, яка включає в себе пам'ять даних ЕППЗУ об'ємом 4096 х 14, 192 х 8 універсальних регістрів (SRAM), аналогово цифровий перетворювач.
Створена мікропроцесорна система містить зовнішню пам’ять, що надає можливість завантажування програм великих обсягів. Пам’ять під’єднано через послідовний інтерфейс. В якості зовнішнього пристрою використовується алфавітно-цифровий Жк-дисплей.
Література
Конспект лекцій з курсу “Мікропроцесорні системи”(
“Интегральные микросхемы”( Справочник под ред( Б( В( Тарабрина(- М(( Радио и связь(1984 г(
PIC14000. User’s Manual. 1997-2002.
Internet : http:|// www.microchip.ru