- •И.А. Дубров
- •Содержание
- •Введение
- •Лабораторная работа 1 Изучение интегрированной среды разработки mplab
- •Методика выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа 2 Изучение запоминающих устройств микроконтроллеровPic-micro
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа 3 Изучение работы параллельных портов микроконтроллеровPic-micro
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа 4 Изучение работы последовательных портов микроконтроллеров pic-micro
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа 5 Изучение работы таймеров микроконтроллеров pic-micro
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа 6 Изучение работы аналого-цифрового преобразователя микроконтроллеровPic-micro
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа 7 Изучение работы модуля захвата/сравнения/шим микроконтроллеровPic-micro
- •Порядок выполнения работы
- •Содержание отчета
- •Библиографический список
- •Приложение 1. Схема лабораторного макета
- •Bтfss— Условный переход при единичном битеbрегистраf
- •Call— Вызов подпрограммы
- •Goto— Переход по адресу
- •Incf— Декремент регистраf
- •Incfsz— Декремент регистраfи пропуск в случае нулевого результата
- •Iorlw— Побитное «или»Wи константыk
- •Retlw— Выход из подпрограммы с загрузкой в регистрWконстантыk
- •Return— Выход из подпрограммы
- •Rlf— Циклический сдвиг регистраfвлево через флаг переносаС
- •Rrf— Циклический сдвиг регистраfвправо через флаг переносаС
- •Sleep— Перейти в спящий режим
- •Основы микропроцессорной техники
- •620034, Екатеринбург, ул. Колмогорова 66.
Порядок выполнения работы
В данной лабораторной работе необходимо разработать и отладить программу, формирующую широтно-импульсно модулированный сигнал, имеющий различные значения постоянной составляющей. Конкретное задание выдается преподавателем.
В качестве примера рассмотрим следующее задание: показание микроамперметра PV1 обратно пропорционально углу поворота ручки потенциометра R1.
Постановка задачи
По аналогии с лабораторной работой 6 будем использовать 8-разрядную точность аналого-цифрового преобразования и формирования сигнала ШИМ.
Преобразование результата аналого-цифрового преобразования в обратный код осуществляется путем вычитания его из шестнадцатеричного числа H’FF’:
PWM = H’FF’ – ADRES
где: PWM – длительность импульса ШИМ;
ADRES – результат аналого-цифрового преобразования.
Разработка алгоритма программы
Алгоритм программы приведен на рис. 7.6.
В первом блоке осуществляется настройка портов ввода-вывода, таймера TMR2 и аналого-цифрового преобразователя на соответствующие режимы работы. Схема CCP1 настраивается на режим ШИМ путем записи двоичного числа «00001111» в регистр CCP1CON.
Рис. 7.6. Блок-схема алгоритма программы
Во втором блоке запускается аналого-цифровое преобразование, а в третьем ожидается его завершение.
В блоке 4 считывается результат аналого-цифрового преобразования и вычисляется обратный код.
В блоке 5 задается длительность импульса ШИМ путем записи обратного кода в ведущий регистр CCPR1L.
Далее программа возвращается к запуску следующего аналого-цифрового преобразования
Написание текста программы на языке Ассемблер
Исходный текст программы приведен далее:
;предварительные настройки
#include p16f873a.inc
__CONFIG _HS_OSC ;высокочаятотный кварцевый резонатор
ORG H'000' ;вектор сброса
GOTO BEGIN ;переход на начало основной программы
;начало основной программы
ORG H’005’
BEGIN: BSF STATUS,RP0 ;выбираем банк регистров 1
;задаем режимы работы параллельных портов
MOVLW B'00000001' ;PORTA, 7-1 выходы, PORTA, 0 вход
MOVWF TRISA ;программируем регистр направления PORTA
MOVLW B'11000000' ;PORTC,7-6 вход, PORTC,5-0 выходы
MOVWF TRISC ;программируем регистр направления PORTC
;задаем режим работы таймера TMR2
MOVLW D'255' ;задаем период таймера 2
MOVWF PR2 ;|
BCF STATUS,RP0 ;выбираем банк регистров 0
MOVLW B'00000000' ;коэфф. деления делителей 1:1
MOVWF T2CON ;|
BSF T2CON,TMR2ON;включение таймера 2
;задаем режим работы АЦП
MOVLW B'00001110' ;задаем аналоговый вход AN0, левое выравн.
MOVWF ADCON1 ;программируем регистр АЦП 1
MOVLW B'01000001' ;задаем аналоговый вход PORTA,0 и включаем АЦП
MOVWF ADCON0 ;программируем регистр АЦП 0
NOP ;пауза 4 мкс
NOP ;|
NOP ;|
NOP ;|
;настройка модуля CCP
MOVLW B'00001111' ;задаем режим ШИМ
MOVWF CCP1CON ;|
;основная программа
M10: BSF ADCON0,GO ;зепуск преобразования
M20: BTFSC ADCON0,GO ;ожидание окончания преобразования
GOTO M20 ;|
MOVF ADRESH,W ;считываем результат преобразования
SUBLW H'FF' ;вычисляем обратный код
MOVWF CCPR1L ;задаем длительность импульса ШИМ
GOTO M10 ;возврат к началу основной программы
END ;конец программы
Трансляция текста программы в машинные коды
Процесс создания нового проекта и компиляции программы подробно описан в лабораторной работе 1.
Тестирование и отладка
На этапе отладки программы необходимо выявить и устранить все возникшие на предыдущих этапах ошибки. Описание процесса программирования микроконтроллера и запуска программы приведен в лабораторной работе 1.
Сопровождение
Поскольку все программы, разрабатываемые при изучении курса ОМТ носят чисто учебный характер, то их работоспособность необходимо поддерживать лишь до момента защиты лабораторной работы преподавателю.