CLRF PIE1; запрещаем периферийные прерывания. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

CLRF PIE1; запрещаем периферийные прерывания.



BCF STATUS, 5

CLRF T1CON; установка TMR1 в режим ожидания, тактирование;TMR1 от внутреннего генератора, значение предделителя частоты 1:1.

CLRF TMR1H; очищаем старший регистр-счетчик TMR1.

CLRF TMR1L; очищаем младший регистр-счетчик TMR1.

CLRF INTCON; запрещаем прерывания от TMR1.

MOVLW b'00110000'; тактирование от внутреннего генератора.

MOVWF T1CON; устанавливаем предделитель частоты 1:8.

; Рабочая часть совпадает с программой лабораторной работы 8.

GOTO$

; Подпрограмма Timer заменяется на подпрограмму Timer2.

Timer2; Подпрограмма задержки времени с встроенным таймером TMR1.

MOVWF T_reg

; Return; для выключения Timer2 при отладке главной программы.

M_T_reg; следующие 4 команды только для отладки в режиме F7.

; MOVLW D'255'; для отладки Timer2.

; MOVWF TMR1H; для отладки Timer2.

; MOVLW D'254'; для отладки Timer2.

; MOVWF TMR1L; для отладки Timer2.

BCF PIR1, TMR1IF; сброс флага переполнения таймера в каждом цикле.

BSF T1CON, TMR1ON; пуск таймера TMR1.

; Следующие три строки это циклы работы таймера TRM1.

M_ TRM1; метка

BTFSS PIR1, TMR1IF; проверка флага перепол­нения таймера

GOTO M_ TRM1; если флага нет, то цикл TRM1 продолжается.

DECFSZ T_reg, F; уменьшаем число в регистре и проверяем на ноль.

GOTO M_T_reg; (только при Z=0) время не кончилось, повторяем цикл.

RETURN

END

 

Выполнение работы

 

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

 

Т а б л и ц а 12.1 – Варианты заданий

Вариант Биты подключения S1, D1, D2 L1, L2. Время работы, сек Вариант Биты подключения S1, D1, D2 L1, L2. Время работы, сек
S1 D1 D2 S1 D1 D2
  1, 2, 3, 4, 5         6, 7, 0, 1, 2      
  2, 3, 4, 5, 6         7, 0, 1, 2, 3      
  3, 4, 5, 6, 7         0,1,2,3, 4      
  4, 5, 6, 7, 0         1, 3, 5, 7, 0      
  5, 6, 7, 0, 1         2, 4, 6, 0, 1      
Отладка программы. Оставьте только первый вызов подпрограммы Timer2, установив аргумент W=2. Установите значения для счетчиков приведенные в подпрограмме с пометкой для отладки. Счетчики TMR1 срабатывают не на каждое нажатие кнопки F7,из-за отсутствия синхронизации.После отладки программы в пошаговом режиме, выключите указанные строки и запустите программу в автоматическом режиме.
Рисунок 12.1 – Окно наблюдения

 

Настройте заданное время работы таймера.

Результаты занесите в таблицу 12.2.

Продемонстрируйте работу программы преподавателю.

 

Т а б л и ц а 12.2– Результаты настройки циклов задержки

Вариант Оборудование Параметры подпрограммы Timer2
Время, сек Значение счетчиков
T_reg TMR1H TMR1L
  S1        
  D1, D2, L1        
  D2, L1        

 

12.3 Контрольные вопросы

 

1. Назначение таймера TMR1.

2. Сколько счетчиков у TMR1?

3. Как устанавливается максимальное время TRM1?

4. Какое максимальное число можно записать в счетчики TMR1.

5. Назначение регистра TICON.

6. Назначение регистра INTCON.

7. Назначение регистра PIR1.

8. Назначение регистра PIE1.

9. Как задается длительность работы Timer2?

10. Назначение предделителя.

11. В каком банке находится регистр PIE1?

12. Когда появляется флаг, сигнализирующий, что TMR1 переполнен?

13. Как запускается TMR1?

14. Назначение регистра T_reg.

15. Какой будет результат сложения чисел 255 и 3 в регистре?


Приложение А

Системы счислений

 

Количество цифр (символов) применяемых в системе называют ее основанием. Минимальный объем информации, который можно записать на носителе информации называют бит. Восемь носителей информации объединили в одну ячейку памяти, и назвали байт.

 

Т а б л и ц а Б.1 - Запись чисел в различных системах счислений

Десятичная система Двоичная система Двоично-десятичная система Шестнадцатеричная система
       
       
       
       
       
       
       
       
       
       
    0001 0000 A
    0001 0001 B
    0001 0010 C
    0001 0011 D
    0001 0100 E
    0001 0101 F
    0001 0110  
    0001 0111  
    0001 1000  
    0001 1001  
    0010 0000  

 

Примеры записи чисел в программе:

- D’07’ – десятичное число;

- B’0111’ – двоичное число;

- H’07’или 0х07 или 07h – шестнадцатеричное число.

Алгоритм перевода чисел из двоичной системы в шестнадцатеричную систему: сначала двоичное число разбиваем на четверки чисел справа налево, затем для каждой четверки записываем его эквивалент из приведенной таблицы А1. П р и м е р. 0101 1011 11012 = 5ВD16.

Обратный перевод чисел очевиден, необходимо только аккуратно писать именно четверки двоичных чисел, дописывая при необходимости нули слева: 116.= 00012, 216 = 00102. П р и м е р. 415С16==0100 0001 0101 11002.

В двоично-десятичной системе каждый десятичный знак отображается четырьмя двоичными числами.


Приложение Б

Карта памяти МК PIC16877

 
 

Приложение В


Приложение Г

Регистр Status

В таблице Г.1 показаны расположение и имена бит регистра Status.

 

Т а б л и ц а Г.1 – Биты регистра Status

Номера бит                
Имена бит IRP RP1 RP0 -TO -PD Z DC C

 

В таблице Г.1 приняты следующие имена:

- IRP - бит выбора банка при косвенной адресации (IRP=1 - выбор банков 2 или 3, IRP=0 - выбор банка 0 или 1);

- RP1, RP0 - биты выбора банка при непосредственной адресации (т.е. разряды 5 и 6). Их значения для выбора банков показаны в таблице А.2;

- TO - флаг переполнения сторожевого таймера;

- PD - флаг включения питания;

- Z -флаг нулевого результата. Записывается “1” при нулевом результате арифметической или логической операции;

- DC - флаг десятичного переноса или заема. Записывается “1”, если был перенос из младшего полубайта регистра в старший полубайт, актуально при выполнении команд сложения и вычитания в двоично-десятичной системе;

- C - флаг переноса или заема. Записывается “1”, если был перенос из старшего бита регистра для команд сложения и вычитания. Вычитание выполняется с помощью сложения уменьшаемого и вычитаемого, которое представлено в дополнительном коде.

 

Т а б л и ц а Г.2 – Выбор номера банка при непосредственной адресации

RP1(первый бит номера банка) RP0 (нулевой бит номера банка) Номер банка (десятичная система)
     
     
     
     
Примечание. RP1 и RP0 образуют разряды двоичного числа

К отдельным битам регистра можно обращаться по имени или по номеру. Инструкция BTFSC STATUS, Z эквивалентна инструкции
BTFSC STATUS, 2.

 

Т а б л и ц а Г.3 – Значения регистра Status после команды CLRF

IRP RP1 RP0 -TO -PD Z DC C
            1 или 0 1 или 0

Приложение Д

 

Описание инструкций МК PIC

 

Константа в инструкциях представлена символом k. В описании инструкций указаны флаги, которые могут измениться при ее выполнении. Параметр d (dest) в инструкциях определяет, в какой регистр записывается результат. Если d =0 или отсутствует, результат сохраняется в регистре W. Если d =1, результат сохраняется в регистре f ( от слова file). В программах для параметра d вместо ‘0’ можно писать ‘ W ’, вместо ‘1’ можно писать ‘ f ’.

Вместо адреса регистра в программе более удобно писать его символьное имя. Например, если регистр по адресу h’21’ имеет имя R1, тогда инструкция, описанная как ADDWF f, d, в программе может быть записана двумя способами: ADDWF h’21’, W или ADDWF R1, W.

Директива ORG h’xx’ – это указатель для ассемблера, что код, следующий за этим выражением, начинается с адреса h’xx’ ЭППЗУ.

 


ADDLW - Сложить k с W.

Синтаксис: [label] ADDLW k.

Операнды: 0£k£255.

Операция: (W) + k à (W).

Изменяемые флаги: С, DC, Z.

 

ADDWF -Сложение W и f.

Синтаксис: [label] ADDWF f, d.

Операнды: 0£f£127.

Операция: (W) + (f) à (dest).

Изменяемые флаги: C, DC, Z.

ANDLW - Побитное ' И ' k и W.

Синтаксис: [label] ANDLW k.

Операнды: 0£k£255.

Операция: (W).AND. k à (W).

Изменяемые флаги: Z.

 

ANDWF -Побитное 'И’ W и f.

Синтаксис: [label] ANDWF f, d.

Операнды: 0£f£127.

Операция: (W).AND. (f) à (dest).

Изменяемые флаги: Z.

 

BCF -Очистить бит b в регистре f.

Синтаксис: [label] BCF f, b.

Операнды: 0£f£127; 0£b£7.

Операция: 0 à (f<b>).

Изменяемые флаги: Нет.

BSF -Установить бит b в регистре f.

Синтаксис: [label] BSF f, b.

Операнды: 0£f£127; 0£b£7.

Операция: 1àf<b>.

Изменяемые флаги: Нет.

BTFSC -Проверить бит b в регистре f, пропустить следующую инструкцию, если b=0.

Синтаксис: [label] BTFSC f, b.

Операнды: 0£f£127; 0£b£7.

Изменяемые флаги: Нет.

Описание: Если бит b в регистре f равен 0, то следующая инструкция программы пропускается.

 

BTFSS - Проверить бит bв регистре f, пропустить, если b = 1.

Синтаксис: [label] BTFSS f, b.

Операнды: 0£f£127; 0£b£7.

Изменяемые флаги: Нет.

Описание: Если бит b в регистре f равен ‘1’, то следующая инструкция программы пропускается.

 

CALL Вызов подпрограммы

Синтаксис: [label] CALL f.

CLRF -Очистить f.

Синтаксис: [label] CLRF f.

Операнды: 0£f£127.

Операция: 00h à (f); 1 àZ.

Изменяемые флаги: Z.

Описание: Очистить содержимое регистра f и установить флаг Z=1.

 

COMF - Инвертировать f.

Синтаксис: [label] COMF f, d.

Операнды: 0£f£127.

Операция: (-f) à (dest).

Изменяемые флаги: Z.

Описание: Инвертировать все биты в регистре f.

 

DECF - Вычесть 1 из регистра f.

Синтаксис: [label] DECF f, d.

Операнды: 0£f£127.

Операция: (f) - 1 à (dest).

Изменяемые флаги: Z.

DECFSZ -Вычесть 1 из f и пропустить, если f=0.

Синтаксис: [label] DECFSZ f, d.

Операнды: 0£f£127.

Операция: (f) -1 à (dest).

Изменяемые флаги: Нет.

Описание: Декрементировать содержимое регистра f. Если результат равен '0', то следующая инструкция программы пропускается.

GOTO -Безусловный переход.

Синтаксис: GOTO k.

Операнды: 0£k£2047.

Операция: Переход на метку.

Изменяемые флаги: Нет.

INCF -Прибавить 1 к f.

Синтаксис: label] INCF f, d.

Операнды: 0£f£127.

Операция: (f) + 1 à (dest).

Изменяемые флаги: Z.

IORLW -Побитное 'ИЛИ' k и W.

Синтаксис: [label] IORLW k.

Операнды: 0£k£255.

Операция (W).OR.(k) à (W).

Изменяемые флаги: Z.

 

IORWF - Побитное 'ИЛИ' W и f.

Синтаксис: [label] IORWF f, d.

Операнды: 0£f£127.

Операция: (W).OR.(f) à (dest).

Изменяемые флаги: Z.

 

MOVF - Переслать f.

Синтаксис: [label] MOVF f, d.

Операнды: 0£f£127.

Операция: (f) à (dest).

Изменяемые флаги: Z.

Описание: Значение d=1 используется для проверки содержимого регистра f на ноль, которое регистрируется флагом Z.

MOVLW - Переслать k в W.

Синтаксис: [label] MOVLW k.

Операнды: 0£k£255.

Операция: kà(W).

Изменяемые флаги: Нет.

Описание: В неиспользуемых битах ассемблер устанавливает '0'.

MOVWF -Переслать W в f.

Синтаксис: [label] MOVWF f.

Операнды: 0£f£127.

Операция: (W) à (f).

Изменяемые флаги: Нет.

NOP -Нет операции.

 

RETURN -Возврат из подпрограммы.

Синтаксис: [label] RETURN.

Операнды: Нет.

Операция: TOS à PC.

Изменяемые флаги: Нет.

Описание: Возврат из подпрограммы. Вершина стека TOS загружается в счетчик PC.

RLF -Циклический сдвиг регистра f влево через бит C регистра Status.

Синтаксис: [label] RLF f, d.

Операнды: 0£f£127.

Изменяемые флаги: С.

Описание: Выполняется циклический сдвиг влево содержимого регистра f через бит С регистра Status.

 
 

RRF - Циклический сдвиг регистра f вправо через бит C регистра status.

Синтаксис: [label] RRF f, d.

Операнды: 0£f£127.

Изменяемые флаги: С.

Описание: Выполняется циклический сдвиг вправо содержимого регистра f через бит С регистра Status.

 

 
 

SLEEP Перейти в режим SLEEP.

Синтаксис: [label] SLEEP.

Операнды: Нет.

Операция: 00h à WDT;

00h à предделитель WDT;

1 à -ТО; 0 à PD.

Изменяемые флаги: -ТО, -PD.

Описание: Сбросить флаг включения питания -PD в '0'. Установить флаг -ТО переполнения WDT в '1'. Очистить таймер WDT и его предделитель. Перевести микроконтроллер в режим SLEEP и выключить тактовый генератор.

SUBLW -Вычесть W из k.

Синтаксис: [label] SUBLW k.

Операнды: 0£k£255.

Операция: k - (W) à (W).

Изменяемые флаги: C, DC, Z.

SUBWF -Вычесть W из f.

Синтаксис: [label] SUBWF f, d.

Операнды: 0£f£127; dÎ [0,1].

Операция: (f) –(W) à (dest).

Изменяемые флаги: C, DC, Z.

SWAPF -Поменять местами полубайты в регистре f.

Синтаксис: [label] SWAPF f, d.

Операнды: 0£f£127.

Операция: (f<3:0>) à (dest<7:4>).

Изменяемые флаги: Нет.

XORLW- Побитное 'исключающее ИЛИ ' k и W.

Синтаксис: label] XORLW k.

Операнды: 0£k£255.

Операция: (W).XOR.k à (W).

Изменяемые флаги: Z.

XORWF - Побитное 'исключающее ИЛИ ' W и f.

Синтаксис: [label] XORWF f, d.

Операнды: 0£f£127.

Операция: (W).XOR.(f) à (dest).

Изменяемые флаги: Z.



Приложение Е

Модуль таймера TMR1

TMR1 - 16-разрядный таймер/счетчик, состоящий из двух 8-разрядных регистров (TMR1H и TMR1L), доступных для чтения и записи. Счет выполняется в спаренных регистрах (TMR1H:TMR1L), инкрементируется их значение от 0000h до FFFFh. При добавлении ещё единицы будет переполнение регистров и в счетчиках будет снова 0000h. При переполнении счетчика устанавливается в '1' бит флага прерывания TMR1IF в регистре PIR1<0>. Само прерывание можно разрешить/запретить установкой/сбросом бита TMR1IE в регистре Р1Е1<0>.

TMR1 может работать в режимах: режим таймера, режим счетчика.

Включается TMR1 установкой бита TMR1ON в ‘1’ (T1CON<0>).

Битом TMR1CS (T1CON<1>) выбирается источник тактовых импульсов.

TMR1 инкрементируется при каждом машинном цикле.

Когда включен генератор тактовых импульсов (T1OSCEN=1), выводы RC1/T1OSI/CCP2 и РС0/T1OSO/TICK1 настроены как входы. Значение битов TRISC<1:0> игнорируется, а чтение данных с этих выводов дает результат '0'.

Управляющие биты TMR1 находятся в регистре T1CON.

Сброс регистров TMR1 (TMR1H, TMR1L). Регистры TMR1H и TMR1L не сбрасываются в 00h при сбросе по включению питания и других видах сброса.

Предделитель TMR1 очищается при записи чисел в регистр TMR1L или TMR1H.

Регистр PIE1 (адрес 8Ch) доступен для чтения и записи, содержит биты разрешения периферийных прерываний. Чтобы разрешить периферийные прерывания необходимо установить в '1' бит PEIE (INTCON<6>).

Регистр INTCON (адрес 0Вh, 8Вh, 10Вh или 18Вh) доступен для чтения и записи, содержит биты разрешений и флаги прерываний: переполнение TMR1; изменения уровня сигнала на выводах PORTB; внешний источник прерываний RB0/INT.

Примечание. Флаги прерываний устанавливаются при возникновении условий прерываний вне зависимости от соответствующих битов разрешения и бита общего разрешения прерываний GIE (INTCON<7>).

Регистр PIR1 доступен для чтения и записи, он содержит флаги прерываний периферийных модулей.

Примечание. Флаги прерываний устанавливаются при возникновении условий прерываний вне зависимости от соответствующих битов разрешения и бита общего разрешения прерываний GIE (INTCON<7>). Программное обеспечение пользователя должно сбрасывать соответствующие флаги при обработке прерываний от периферийных модулей.

Список литературы

1. Погребинский М.П. Микропроцессорные системы управления электротехническими установками. –М.: МЭИ, 2003.

2. Информатика. Базовый курс. Учебное пособие для вузов под ред. Симоновича С.В., - СПб.: Питер, 2003.

3. Сайт в Internet www.microchip.ru.

4. Катцен С. PIC микроконтроллеры. Все, что необходимо вам знать. –М.: Додека, 2008.

5. Копесбаева А.А. Микропроцессорные комплексы в системах управления. Учебное пособие. Алматы. АИЭС, 2010.

6. Кохц Дитер. Измерение, управление с помощью PIC-контроллеров. Киев: Наукова думка. 2007.

7. Заец Н.И. Радиолюбительские конструкции на PIC. –М.: Солон, 2003.

8. Яценков В.С. Микроконтроллеры Microchip. Практическое руководство. – 2 –е изд. исп. и допол. – М.: Горячая линия – Телеком, 2005.

9. Фрунзе А.В., Фрунзе М.А. Микроконтроллеры? Это же просто. М.: ООО ИД СКИМЕН, 2003.

10. Дьяков А.Ф., Овчаренко Н.И. Микропроцессорная релейная защита и автоматика электроэнергетических систем. М.: - Издательство МЭИ, 2000.

Содержание

Введение 1 Системы счислений. Карта памяти МК 2 Изучение среды MPLAB. Управление оборудованием 3 Сложение, вычитание. Логика 4 Операции преобразования информации 5 Анализ информации посредством регистра состояния 6 Маскирование 7 Суммирование массива информации 8 Автоматизация окрасочной камеры. Организация подпрограмм 9 Программирование клавиатуры 10. Автоматизация упаковки 11 Программирование обработки аварийной ситуации 12. Программирование таймерных функций Приложение A. Системы счислений Приложение Б. Карта памяти микроконтроллера PIC16877 Приложение В. Структурная схема УМК-mini Приложение Г. Регистр status Приложение Д. Описание инструкций микроконтроллера PIC Приложение Е. Модуль таймера TMR1 Список литературы  

Св. план 2013 г., поз. 102

 

Акшолпан Ауельбековна Копесбаева

Виталий Михайлович Тарасов

 

       
   
Микропроцессорные системы в электроэнергетике
 
 
Методические указания к выполнению лабораторных работ для студентов всех форм обучения специальности 5B071800 - Электроэнергетика  

 


Редактор Курманбаева Т.С.

Специалист по стандартизации Молдабекова Н.К.

 

 

Подписано в печать ____________ Формат 60х84 1/16

Тираж 70 экз. Бумага типографская №1

Объем 3.2 уч. изд. л. Заказ ______ Цена тг.

 

Копировально-множительное бюро
некоммерческого акционерного общества

«Алматинский университет энергетики и связи»

 
050013, Алматы, Байтурсынова, 126



Поделиться:


Последнее изменение этой страницы: 2017-01-25; просмотров: 193; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 54.234.6.167 (0.147 с.)