
- •Основы микропроцессорной техники
- •Введение
- •Лабораторная работа № 1 Изучение интегрированной среды разработки mplab
- •Методика выполнения работы
- •Создание файла с исходным текстом программы.
- •Добавление файла к проекту
- •Компиляция исходного текста программы в машинные коды.
- •Запись кода программы во внутреннюю flash память микроконтроллера
- •Отладка (выполнение) программы
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 2 Изучение запоминающих устройств микроконтроллеров pic-micro
- •Порядок выполнения работы
- •Постановка задачи.
- •Разработка алгоритма программы.
- •Написание текста программы на языке Ассемблер.
- •Трансляция исходного текста программы в машинные коды.
- •Тестирование и отладка.
- •Сопровождение.
- •Содержание отчета
- •Контрольные вопросы
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 4 Изучение работы последовательных портов микроконтроллеров pic-micro
- •Порядок выполнения работы
- •Постановка задачи.
- •Разработка алгоритма программы.
- •Написание текста программы на языке Ассемблер.
- •Тестирование и отладка.
- •Сопровождение.
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 5 Изучение работы таймеров микроконтроллеров pic-micro
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 6 Изучение работы аналого-цифрового преобразователя микроконтроллеров pic-micro
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 7 Изучение работы модуля захвата/сравнения/шим микроконтроллеров pic-micro
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы Перечень рекомендуемой литературы
- •Приложение 2. Схема лабораторного макета
- •Приложение 3. Краткое описание набора инструкций pic16
- •Приложение 4. Список команд pic16 и их подробное описание
- •Addlw — Сложение w и константы k
- •Addwf — Сложение w и регистра f
- •Andlw — Побитное «и» w и константы k
- •Andwf — Побитное «и» w и регистра f
- •Bтfsc — Условный переход при нулевом бите b регистра f
- •Bтfss — Условный переход при единичном бите b регистра f
- •Call — Вызов подпрограммы
- •Clrf — Обнуление регистра f
- •Clrw — Обнуление регистра w
- •Clrwdt — Сброс сторожевого таймера
- •Comf — Инверсия регистра f
- •Decf — Декремент регистра f
- •Decfsz — Декремент регистра f и пропуск в случае нулевого результата
- •Goto — Переход по адресу
- •Incf — Декремент регистра f
- •Incfsz — Декремент регистра f и пропуск в случае нулевого результата
- •Iorlw — Побитное «или» w и константы k
- •Iorwf — Побитное «или» w и регистра f
- •Movf — Пересылка регистра f
- •Movlw — Пересылка константы k
- •Movwf — Пересылка из регистра w в регистр f
- •Retfie — Возврат из подпрограммы с включением прерываний
- •Retlw — Выход из подпрограммы с загрузкой в регистр w константы k
- •Return — Выход из подпрограммы
- •Sleep — Перейти в спящий режим
- •Sublw — Вычитение w из константы k
- •Subwf — Вычитание w из регистра f
- •Swapf — Обмен местами ниблов в регистре f
- •Xorlw — Побитное «Исключающее или» w и константы k
- •Xorwf — Побитное «Исключающее или» w и регистра f
- •Основы микропроцессорной техники
- •620034, Екатеринбург, ул. Колмогорова 66.
Написание текста программы на языке Ассемблер.
Исходный текст программы приведен далее:
;предварительные настройки
#include p16f873a.inc
CONFIG _HS_OSC ;
ORG H'000' ;вектор сброса
CNT EQU H'A0' ;определение регистра счетчика с адресом А0 (банк 1)
;запись возрастающих чисел в ОЗУ
BCF STATUS,RP1 ; ┬ выбираем банк регистров 1
BSF STATUS,RP0 ; ┘
MOVLW H'20' ;загрузка в рабочий регистр адреса первого РОН в банке 0
MOVWF FSR ;записываем начальный адрес в регистр косв. адресации
CLRF CNT ;обнуляем регистр счетчик
M10: MOVF CNT,W ;загружаем значение счетчика в рабочий регистр
MOVWF INDF ;сохраняем очередной отсчет в косвенно адресуемый РОН
INCF FSR,F ;увеличение адреса РОН в регистре косвенной адресации
INCF CNT,F ;увеличение счетчика на 1
MOVF CNT,W ;загружаем новое значение счетчика в рабочий регистр
XORLW H'60' ;сравниваем его с последним значением +1
BTFSS STATUS,Z ;если совпадают то скачек через одну команду
GOTO M10 ;если не совпадают, то возврат к записи следующей ячейки
;копирование из ОЗУ в EEPROM
MOVLW H'20' ;загрузка в рабочий регистр адреса первого РОН в банке 0
MOVWF FSR ;записываем начальный адрес в регистр косв. адресации
CLRF CNT ;обнуляем регистр счетчик адреса EEPROM
M20: BSF STATUS,RP1 ; ┬ выбираем банк регистров 3
BSF STATUS,RP0 ; ┘
BTFSC EECON1,WR ; ┬ проверка окончания предыдущей записи в EEPROM
GOTO M20 ; ┘
BCF STATUS,RP1 ; ┬ выбираем банк регистров 1
BSF STATUS,RP0 ; ┘
MOVF CNT,W ;загружаем значение счетчика в рабочий регистр
BSF STATUS,RP1 ; ┬ выбираем банк регистров 2
BCF STATUS,RP0 ; ┘
MOVWF EEADR ;сохраняем адрес очередной ячейки в регистре адреса
MOVF INDF,W ;считываем данные из очередного РОН в рабочий регистр
MOVWF EEDATA ;и сохраняем их в регистре данных EEPROM
BSF STATUS,RP1 ; ┬ выбираем банк регистров 3
BSF STATUS,RP0 ; ┘
BCF EECON1,EEPGD ;выбираем EEPROM
BSF EECON1,WREN ;разрешаем запись
BCF INTCON,GIE ;запрещаем прерывания
MOVLW H'55' ; ┐
MOVWF EECON2 ; │
MOVLW H'AA' ; ├ обязательная последовательность из пяти команд
MOVWF EECON2 ; │
BSF EECON1,WR ; ┘
BCF EECON1,WREN ;запрещаем запись
BCF STATUS,RP1 ; ┬ выбираем банк регистров 1
BSF STATUS,RP0 ; ┘
INCF FSR,F ;увеличение адреса РОН в регистре косвенной адресации
INCF CNT,F ;увеличение счетчика на 1
MOVF CNT,W ;загружаем новое значение счетчика в рабочий регистр
XORLW H'60' ;сравниваем его с последним значением +1
BTFSS STATUS,Z ;если совпадают то скачек через одну команду
GOTO M20 ;если нет, то переход к копированию очередной ячейки
M30: GOTO M30 ;зацикливаемся здесь
END ;конец программы
Трансляция исходного текста программы в машинные коды.
Процесс создания нового проекта и компиляции программы подробно описан в лабораторной работе №1.