- •3. Методические указания к лабораторным работам
- •3.1 Лабораторная работа № 1 «интегрированная среда разработки программ для микроконотроллеров piCmicro mplab ide 5.61»
- •3.1.1 Цель работы
- •3.1.2 Содержание лабораторной работы
- •3.1.3 Порядок проведения лабораторной работы
- •Графическое меню проектирования
- •3.1.4 Контрольные вопросы
- •3.2 Лабораторная работа № 2 «абсолютная адресация в командах пересылки данных»
- •3.2.1 Цель работы
- •3.2.2 Краткие сведения из теории
- •3.2.2.1 Регистры port а и trisa
- •3.2.2.2 Регистры portb и trisb
- •3.2.3 Содержание лабораторной работы
- •3.2.4 Порядок проведения лабораторной работы
- •3.2.5 Контрольные вопросы
- •3.3 Лабораторная работа № 3 «косвенная адресация в командах пересылки данных»
- •3.3.1 Цель работы
- •3.3.2 Краткие сведения
- •3.3.3 Содержание лабораторной работы
- •3.3.4 Порядок проведения лабораторной работы
- •3.3.5 Контрольные вопросы
- •3.4 Лабораторная работа № 4 «изучение команд арифметических операций»
- •3.4.1 Цель работы
- •3.4.2 Краткие сведения
- •3.4.3 Содержание лабораторной работы
- •3.4.4 Порядок проведения лабораторной работы
- •3.4.5 Контрольные вопросы
- •3.5 Лабораторная работа № 5 «изучение команд логической обработки и маскирования данных»
- •3.5.1 Цель работы
- •3.5.2 Краткие сведения
- •3.5.3 Содержание лабораторной работы
- •3.5.4 Порядок проведения лабораторной работы
- •3.5.5 Контрольные вопросы:
- •3.6 Лабораторная работа № 6 «команды передачи управления»
- •3.6.1 Цель работы
- •3.6.2 Краткие сведения
- •3.6.3 Содержание лабораторной работы
- •3.6.4 Порядок проведения лабораторной работы
- •3.6.5 Контрольные вопросы:
- •3.7 Лабораторная работа № 7 «модуль таймера tmr0»
- •3.7.1 Цель работы
- •3.7.2 Краткие сведения
- •3.7.3 Содержание лабораторной работы
- •3.7.4 Порядок проведения лабораторной работы
- •3.7.5 Контрольные вопросы:
- •3.8 Лабораторная работа № 8 «изучение способов обработки прерываний»
- •3.8.1 Цель работы
- •3.8.2 Краткие сведения
- •3.8.2.1 Прерывание по переполнению tmr0
- •3.8.2.2 Внешнее прерывание с входа rb0/int
- •3.8.2.3 Прерывание по изменению уровня сигнала на входах rb7:rb4
- •3.8.3 Содержание лабораторной работы
- •3.8.4 Порядок проведения лабораторной работы
- •3.8.5 Контрольные вопросы:
- •4. Список рекомендуемой литературы
3.2.2.1 Регистры port а и trisa
PORTA – 6 - разрядный порт ввода вывода. Все каналы PORTA имеют соответствующие биты направления в регистре TRISA, позволяющие настраивать канал как вход или выход. Запись '1' в TRISA переводит соответствующий выходной буфер в 3-е состояние. Запись '0' в регистр TRISA определяет соответствующий канал как выход, содержимое защелки PORTA передается на вывод микроконтроллера (если выходная защелка подключена к выводу микроконтроллера).
Чтение регистра PORTA возвращает состояние на выводах порта, а запись производится в защелку PORTA. Все операции записи в порт выполняются по принципу «чтение - модификация - запись», т.е. сначала производится чтение состояния выводов порта, затем изменение и запись в защелку.
RA4 - имеет триггер Шмидта на входе и открытый сток на выходе, мультиплицирован с тактовым входом TOCKI. Все остальные каналы PORTA имеют TTL буфер на входе и полнофункциональные выходные КМОП буферы.
Каналы PORTA мультиплицированы с аналоговыми входами АЦП и аналоговым входом источника опорного напряжения VREF. Биты управления режимов работы каналов порта ввода/вывода PORTA находятся в регистре ADCON1.
Примечание: После сброса по включению питания выводы настраиваются как аналоговые входы, а чтение дает результат '0'.
Биты регистра TRISA управляют направлением каналов PORTA, даже когда они используются как аналоговые входы. Пользователь должен удостовериться, что соответствующие каналы PORTA настроены на вход при использовании их в качестве аналоговых входов.
Пример: Инициализация PORTA
;Настроить PORTA как порт дискретного ввода/вывода
;назначение выводов порта А осуществляется в регистре ADCON1(9fh)
;(раздел 1.8.1) установкой управляющих битов:
; PCFG3, PCFG2, PCFG1, PCFG0 = 000001100b, или 0x06.
; ADCON1 находится в 1-м банке.
BCF STATUS, RP1 ;Выбрать банк 0
BCF STATUS, RP0 ;RP1=0, RP0=0
CLRF PORTA ;Инициализация защелок PORTA
BSF STATUS, RP0 ;Выбрать банк 1(RP0=1)
MOVLW 0X06 ;
MOVWF ADCON1; Каналы PORTA - цифровые входы/выходы
MOVLW 0xCF ; Значение для инициализации
; направления каналов PORTA
MOVWF TRISA ; Настроить RA<3:0> как входы,
; настроить RA<5:4> как выходы
; Биты TRISA<7:6> всегда
; читаются как '0'.
Действия в отношении регистров PORTВ и TRISВ, аналогичны действиям с регистрами PORTA и TRISA кроме того, что PORTВ работает только как дискретный и настраивать его не надо.
При написании программы, следует учитывать, что регистры PORTA и PORTB расположены в нулевом банке, а регистры TRISA и TRISB – в первом.
3.2.2.2 Регистры portb и trisb
PORTB - 8-разрядный двунаправленный порт ввода/вывода. Биты регистра TRISB определяют направление каналов порта. Установка битва в '1' регистра TRISB переводит выходной буфер в 3-е состояние. Запись '0' в регистр TRISB настраивает соответствующий канал как выход, содержимое защелки PORTB передается на вывод микроконтроллера (если выходная защелка подключена к выводу микроконтроллера).
К каждому выводу PORTB подключен внутренний подтягивающий резистор. Бит –RBPU (OPTION_REG <7>) определяет подключены (–RBPU=0) или нет (–RBPU=1) подтягивающие резисторы. Подтягивающие резисторы автоматически отключаются, когда каналы порта настраиваются на выход и после сброса по включению питания POR.
