WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!


Pages:     || 2 | 3 | 4 | 5 |   ...   | 6 |
Министерство образования Российской Федерации Томский политехнический университет _ УТВЕРЖДАЮ Зав. каф. промышленной и медицинской электроники, профессор, д-р техн. наук Г. С. Евтушенко «24» октября 2003 г.

PIC-КОНТРОЛЛЕРЫ Методические указания к выполнению лабораторной работы по дисциплине «Основы микропроцессорной техники» для студентов направлений 550.700 «Электроника и микроэлектроника» и 553.400 «Биомедицинская инженерия».

Томск 2004 УДК 681.325.5-181.48.001.63 PIC-КОНТРОЛЛЕРЫ: Методические указания к выполнению лабораторной работы по дисциплине «Основы микропроцессорной техники» для студентов направления 550.700 «Электроника и микроэлектроника» и для студентов направления 553.400 «Биомедицинская инженерия» - Томск: Изд-во ТПУ, 2004. – 60с.

Составители:

Г.С. Воробьева Д.В. Добровольский А.В. Крыцкий Д.В. Пайгин Д.А. Пестунов Рецензент доцент, к.т.н. А.И. Солдатов Методические указания рассмотрены и рекомендованы к изданию методическим семинаром кафедры промышленной и медицинской электроники 23 октября 2003 Зав. кафедрой Проф., д-р техн. наук Г. С. Евтушенко 2 Лабораторная работа №1. Обучение работе на внутрисхемном отладчике MPLAB-ICD.

1. ЦЕЛЬ РАБОТЫ Получить общее представление о работе микроконтроллера с Гарвардской архитектурой на примере PIC16F877. Ознакомиться с интегрированной средой разработки MPLAB IDE. Изучить основные функции и назначение основных пунктов меню. Получить практические навыки по работе с инструментальными средствами отладки микропроцессорных систем MPLAB ICD.

2. ВВЕДЕНИЕ Современный рынок электронных систем предъявляет все более жесткие требования к разрабатываемым устройствам. Данные системы должны быть просты по своей схемотехнике, надежны, высокотехнологичны, иметь большие ресурсы в части модификации выполняемых функций и иметь низкую стоимость. При этом очень часто при разработке электронных устройств приходится увязывать взаимоисключающие моменты:

простоту схемотехники при большом наборе выполняемых функций;

малое энергопотребление при высоком быстродействии;

малые затраты на подготовку производства для обеспечения серийного выпуска изделий.

Всем вышеперечисленным задачам и требованиям соответствуют устройства, разработанные на базе микроконтроллеров, в частности семейств PIC12/14/16/17/18 фирмы Microchip, которые объединяют все передовые технологии микроконтроллеров: электрически программируемые пользователем ППЗУ, минимальное энергопотребление, высокую производительность, хорошо развитую RISC-архитектуру, функциональную законченность и минимальные размеры.

Все обширное семейство, выпускаемое под торговой маркой PICmicro, объединяет ряд особенностей: Гарвардская архитектура, простой набор RISC команд, высокое быстродействие (до 8,5 MIPS), широкий диапазон питания (2,0- 6,0 В), низкое потребление (от 15 мкА при 3 В/ 32 кГц до 10 мА при 5 В/ 20 МГц); при огромном разнообразии периферийных устройств и корпусов (от SOIC-8 до TQFP-80). Все типы контроллеров в корпусах с одинаковым количеством выводов имеют и одинаковую цоколевку, что упрощает модификацию уже разработанных изделий и позволяет при переходе к крупносерийному производству безболезненно заменять Flash версии, на дешевые – однократно программируемые. По числу выпущенных микроконтроллеров фирма MICROCHIP вышла на второе место в мире, опередив таких производителей, как Intel, SGS-Thomson, Zilog, Siemens.

Микроконтроллеры PICmicro поддерживаются полным набором программных и аппаратных средств разработки. Фирма Microchip предоставляет бесплатно – интегрированную среду разработки MPLAB IDE.

Авторы благодарят фирму Microchip и ее представителей в России – фирму «Гамма Санкт-Петербург», а так же лично господина Воротынского, за информационную поддержку, и выделение комплектов отладочных средств, для организации цикла лабораторных работ по изучению микроконтроллеров с Гарвардской архитектурой.

3. КРАТКИЕ СВЕДЕНИЯ О PIC16F3.1. КРАТКОЕ ОПИСАНИЕ АРХИТЕКТУРЫ 3.1.1. Возможности микропроцессорного ядра:

Высокопроизводительная RISC архитектура;

35 однословных команд, все команды выполняются за один цикл, кроме команд переходов, ветвления и табличного чтения-записи, которые выполняются за 2 машинных цикла;

Тактовая частота – до 20 МГц, длина машинного цикла – 200нсек;

8К х 14 - ти разрядных слов FLASH памяти программ;

368 х 8 байт памяти данных (RAM);

256 х 8 байт электрически перезаписываемой (EEPROM) памяти данных;

Восьмиуровневый аппаратный стек;

До 14 источников прерываний;

Сброс по включению питания (Power-on Reset – POR);

Таймер включения питания (PWRT) и таймер запуска генератора (OST);

Сторожевой таймер (Watchdog timer – WDT) со встроенным на кристалле RC-генератором;

Биты защиты памяти программ;

Режим пониженного энергопотребления (SLEEP mode);

Программируемый выбор генератора;

Низко потребляемая, высокоскоростная КМОП FLASH/EEPROM технология;

Полностью статическое устройство (частота работы от 0 до МГц);

Возможность внутрисхемного программирования (ICSP) и внутрисхемной отладки (ICD) по двум выводам;

Широкий диапазон напряжений питания (от 2,0 В до 5,5 В);

Высокая нагрузочная способность: 25 мА.

3.1.2. Описание периферии.

Таймер 0 (TMR0) – 8-разрядный таймер/счетчик с предделителем;

Таймер 1 (TMR1) – 16-разрядный таймер/счетчик с предделителем, который может инкрементироваться от внешнего сигнала в спящем режиме;



Таймер 2 (TMR2) – 8-разрядный таймер/счетчик с предделителем и постделителем, переполнение происходит при достижении таймером значения записанного в регистре PR2;

Два модуля Захвата (Накопления)/Сравнения/ШИМ:

захват (Capture) – 16-разрядный, максимальное разрешение 12,нсек;

сравнение (Compare) – 16-разрядный, разрешение до 200 нсек;

ШИМ (PWM) максимальное разрешение 10 бит;

10-разрядный, многоканальный АЦП;

Последовательные синхронные порты: SSP, SPI, I2C;

Универсальный асинхронный приемопередатчик (UART);

Параллельный ведомый порт (PSP).

Архитектура PIC16F877 показана на рис. 1.

13 Порт A Шина данных Программный счетчик RA0/ANRA1/ANПамять RA2/AN2/VREFпрограмм RAM RA3/AN3/VREF+ Стек (8х13) Регистры RA4/T0CKI (13-bit) (Память RA5/AN4/SS данных) Шина 14 Порт B (1) программ Адрес RB0/INT Ад ресны й M U X RBРегистр команд RBНепосредственный адрес Косвенный RB3/PGM адрес RBрегистр FSR RBRB6/PGC регистр RB7/PGD STATUS Порт C RC0/T1OSO/T1CKI Таймер запуска MUX RC1/T1OSI/CCPгенератора RC2/CCP(PWRT) RC3/SCK/SCL Таймер вклюДешифратор RC4/SDI/SDA чения питания команд и АЛУ (OST) RC5/SDO управление Сброс при вкл. RC6/TX/CK питания (POR) RC7/RX/DT Генератор Сторожевой Регистр W Порт D таймер (WDT) OSC1/CLKIN С б рос пр и сн иRD0/PSPOSC2/CLKOUT ж ении питан ия RD1/PSP(BO R ) RD2/PSPВнутрисхемная RD3/PSPотладка (ICD) RD4/PSPПараллельный П рограм м иро ваведомый порт RD5/PSPние пр и напр яRD6/PSPжен ии питания PSP RD7/PSPПорт E RE0/AN5/RD MCLR VDD, VSS RE1/AN6/WR RE2/AN7/CS Таймер Таймер Таймер АЦП Синхронный EPROM данных последовательUSART CCP1,ный порт Рис. 1. Архитектура PIC16F877.

3.2. ПАМЯТЬ ПРОГРАММ И СТЕК Так как микроконтроллеры данного семейства имеют Гарвардскую архитектуру, то память программ и память данных у каждого из них физически и логически разделены. Память в микроконтроллерах PICmicro разделена на два независимых блока:

память программ и память данных. Каждый блок имеет собственную шину данных и шину адреса, позволяя организовать одновременный доступ к обоим типам памяти в течение одного машинного цикла.

Микроконтроллер имеет 13-разрядный счетчик программ, способный адресовать 8К памяти. После сброса счетчик устанавливается на 0000h, а любое прерывание вызовет переход на адрес 0004h. Организация памяти программ показана на рис. 2.

Следует знать, что команды CALL и GOTO способны адресовать только 11-разрядный интервал. Это значит, что возможен переход только внутри страницы памяти программ размером 2К. Для того, что бы адресовать все адресное пространство памяти программа должна переключать разряды выбора страниц, которые находятся в регистре PCLATH (биты 4 и 3). При возврате из подпрограммы или из прерывания из стека выталкивается все 13-битное значение адреса.

Микроконтроллер имеет 13-разрядный аппаратный стек, глубиной 8 уровней. Стек не относится ни к памяти программ, ни к памяти данных. Указатель стека PCLATH пользователю недоступен. В стеке запоминается содержание программного счетчика при PC<12:8> PCL выполнении команды CALL или при вызове прерывания.

Извлечение из стека Стек уровень 1 осуществляется командами RETURN, RETFIE.

• • 3.3. ПАМЯТЬ ДАННЫХ Стек уровень Память данных разбита на 0000h Вектор сброса четыре так называемых банка, • каждый из которых имеет • адресуемое пространство 0004h Вектор прерываний байт. Выбор каждого банка Внутренняя память программ осуществляется переключением (страница 0) битов RP1 и RP0 (биты 6 и 5, 07FFh 0800h Внутренняя память программ регистра STATUS).

(страница 1) Младшие ячейки каждого 0FFFh 1004h банка зарезервированы для Внутренняя память программ (страница 2) регистров специальных функций, 17FFh потом расположены 1800h Внутренняя память программ универсальные регистры, (страница 3) 1FFFh выполненные как статическая память. Для уменьшения Рис. 2. Карта памяти программ и стек программы и более быстрого доступа некоторые часто используемые регистры специальных функций расположенные в одном банке, могут быть отображены в другом банке. Карта памяти данных PIC16F877 представлена в Приложении 1.

3.4. РЕГИСТР СОСТОЯНИЯ STATUS Регистр состояния STATUS (см табл. 1) содержит флаги результатов выполнения операций АЛУ, состояния сторожевого таймера и биты выбора банка памяти данных.

Таблица Регистр состояния STATUS (адреса 03h, 83h, 103h, 183h) № бита 7 6 5 4 3 2 1 Имя бита IRP RP1 RP0 -TO -PD Z DC C Состояние 0 0 0 1 1 x x x после сброса Доступность.

R/W R/W R/W R R R/W R/W R/W Обозначения: R – читаемый разряд, W – записываемый разряд, х – неопределенное значение Назначение битов регистра состояния приведено ниже.

Бит 7: IRP – выбор банка (используется для косвенной адресации) 1=Банк 2,3 (100h - 1FFh) 0= Банк 0,1 (00h - FFh) Биты 6-5: RP1:RP0 – выбор банка (используется для прямой адресации) 11- Банк 3 (180h - 1FFh) 10- Банк 2 (100h - 17Fh) 01- Банк 1 (80h - FFh) 00- Банк 0 (00h - 7Fh) Бит 4: -TO – выход сторожевого таймера (WDT) 1=после включения питания или команды CLRWDT, SLEEP 0=после срабатывания WDT Бит 3: -PD – флаг включения питания.

1=после включения питания (POR) или команды CLRWDT (см п.3.11) 0=после выполнения команды SLEEP Бит 2: Z – признак нуля 1=если результат арифметической или логической операции = ”0” 0= если результат арифметической или логической операции не ”0” Бит 1: DC – дополнительный перенос/заем после команд ADDWF, ADDLW, SUBLW, SUBWF (для заема - инверсия) 1= если перенос из 4-го младшего разряда результата 0= если нет переноса из 4-го младшего разряда результата Бит 1: С – перенос/заем после команд ADDWF, ADDLW, SUBLW, SUBWF 1=если есть перенос из старшего разряда результата 0=если нет переноса из старшего разряда результата Примечание: Заем имеет обратное значение. Вычитание выполняется сложением, при этом вычитаемое представляется в дополнительном коде. Команды сдвигов (RRF, RLF) выполняются через перенос.





Регистр STATUS может быть адресован любой командой как любой другой регистр. Если он – адресат команды, которая модифицирует флаги Z, C, DC, то запись в эти биты не производится.

Они устанавливаются в соответствии с результатом операции. Кроме того, биты TO и PD не изменяются. Следовательно, результат операции с регистром STATUS может быть отличным от ожидаемого.

3.5. РЕГИСТР OPTION_REG Регистр OPTION_REG доступен для чтения и для записи. Он содержит биты: конфигурации предделителя (PSC) для TMR0/WDT, внешнего прерывания INT и состояния выходов порта В. Описание битов регистра OPTION_REG показано в таблице 2.

Таблица Регистр OPTION_REG (адреса 81h, 181h) № бита 7 6 5 4 3 2 1 Имя бита RBPU INTEDG T0CS T0SE PSA PS2 PS1 PSСостояние 1 1 1 1 1 1 1 после сброса Доступность.

R/W R/W R/W R/W R/W R/W R/W R/W Обозначения: R – читаемый разряд, W – записываемый разряд.

Назначение битов регистра OPTION_REG приведено ниже.

Бит 7: RBPU: включение подтягивающих резисторов на порте В 0 = подтягивающий резистор включен 1 = подтягивающий резистор выключен Примечание: Если используется низкий уровень напряжения при программировании по входу PGM и выводы PORTB подтянуты к высокому уровню, то 3-ий бит в регистре TRISB необходимо сбросить, чтобы вход RB3 не был подтянут к высокому уровню. Это необходимо для правильного программирования устройства.

Бит 6: INTEDG: выбор активного фронта сигнала прерывания на входе RB0/INT 0 = прерывание по заднему фронту.

1 = прерывания по переднему фронту.

Бит 5: TOCS: выбор источника тактового сигнала для TIMER0.

1 = тактовый сигнал с входа RA4/T0CKI.

0 = внутренний источник тактового сигнала (CLKOUT).

Бит 4: T0SE: выбор фронта приращения TMR0 при внешнем тактовом сигнале 1 = приращение по заднему фронту сигнала на T0CKI.

0 = приращение по переднему фронту сигнала на T0CKI.

Бит 3: PSA: выбор включения предделителя.

1 = предделитель включен перед таймером WDT.

0 = предделитель включен перед таймером TMR0.

Биты 2-0: PS2 - PS0; выбор коэффициента предделителя.

Коэффициенты деления предделителя показаны в таблице 3.

Таблица Коэффициенты деления в зависимости от значений PS2- PSЗначение TMR0 WDT (PSA = 0) (PSA = 1) PS2 PS1 PS0 0 0 1:2 1:0 0 1 1:4 1:0 1 0 1:8 1:0 1 1 1:16 1:1 0 0 1:32 1:1 0 1 1:64 1:1 1 0 1:128 1:1 1 1 1:256 1:Установка коэффициента деления предделителя 1:1 для TMRсоответствует переключению предделителя на сторожевой таймер.

3.6. РЕГИСТР INTCON Регистр INTCON доступен для чтения и для записи. Он содержит биты масок прерываний и флаги прерываний. Флаги прерываний должны сбрасываться программно. Регистр показан в таблице 4.

Таблица Регистр INTCON (адреса 0Bh, 8Bh, 10Bh, 18Bh) № бита 7 6 5 4 3 2 1 Имя бита GIE PEIE T0IE INTE RBIE T0IF INTF RBIF Состояние 0 0 0 0 0 0 0 x после сброса Доступность.

R/W R/W R/W R/W R/W R/W R/W R/W Обозначения: R – читаемый разряд, W – записываемый разряд, х – неопределенное значение Назначение битов регистра INTCON приведено ниже.

Бит 7: GIE – Общее (глобальное) управление прерываниями.

1=все немаскируемые прерывания разрешены.

0=все прерывания запрещены.

Примечание: Если происходит прерывание, то бит GIE сбрасывается. По команде выхода из подпрограммы (RETFIE) этот бит устанавливается.

Бит 6: PEIE – маска прерываний от периферийных устройств 1=все немаскируемые прерывания периферийных устройств разрешены 0=все прерывания периферийных устройств запрещены Бит 5: T0IE – маска прерывания по переполнению TMR1=прерывание TMR0 разрешено 0= прерывание TMR0 запрещено Бит 4: INTE – маска внешнего прерывания по входу RB0/INT 1=прерывание по входу RB0/INT разрешено 0=прерывание по входу RB0/INT запрещено Бит 3: RBIE – маска прерывания по изменению состояния на входах порта RB 1=прерывание по изменению порта RB разрешено 0=прерывание по изменению состояния порта RB запрещено Бит 2: T0IF – флаг прерывания при переполнении TMR1=устанавливается, если регистр TMR0 переполнен (очищается программно) 0=если регистр TMR0 не переполнен Бит 1: INTF – флаг внешнего прерывания по входу RB0/INT 1=устанавливается, если происходит прерывание по входу RB0/INT 0=если прерывание по входу RB0/INT не произошло Бит 0: RBIF – флаг прерывания по изменению состояния порта RB 1=устанавливается, если изменилось состояние на одном из входов RB7:RB4 (очищается программно) 0=если состояния на входах RB7:RB4 не изменились.

3.7. РЕГИСТР PIEРегистр PIE1 доступен для чтения и для записи. Он содержит маски прерываний периферийных устройств. Для того, что бы разрешить прерывания от периферийных устройств, необходимо установить бит PEIE (бит 6 регистра INTCON). Описание битов регистра PIE1 приведено в таблице 5.

Таблица Регистр PIE1 (адрес 8Ch) № бита 7 6 5 4 3 2 1 Имя бита PSPIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE Состояние 0 0 0 0 0 0 0 X после сброса Доступность.

R/W R/W R/W R/W R/W R/W R/W R/W Обозначения: R – читаемый разряд, W – записываемый разряд, х – неопределенное значение Назначение битов регистра PIE приведено ниже.

Pages:     || 2 | 3 | 4 | 5 |   ...   | 6 |










© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.