14 VISA VIRTUAL (RUS BANK)
14 VISA VIRTUAL (RUS BANK)


Разблокировка Oysters T72M 3G
Разблокировка Oysters T72M 3G


PlayStation Network (PSN) - 365 ДНЕЙ
PlayStation Network (PSN) - 365 ДНЕЙ


В начало

Лабораторная работа

Команды передачи данных

 

ЦЕЛЬ РАБОТЫ: рассмотреть набор команд передачи данных и изучить особенности их применения.

 

ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

MOVF f,d       -     Переслать f

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

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

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

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

MOVLW k      -      Переслать константу в W

RETFIE -         -      Возврат из подпрограммы с разрешением прерываний

Если d=0, результат сохраняется в регистре W. Если d=1, результат сохраняется в регистре 'f'.

PORTA – 8-разрядный порт ввода вывода. RA4 имеет триггер Шмидта на входе и открытый сток на выходе, мультиплицирован с тактовым входом T0CKI. RA5 имеет триггер Шмидта на входе, без выходного буфера. Все остальные каналы PORTA имеют триггер Шмидта на входе и полнофункциональные выходные КМОП буферы.

Все каналы PORTA имеют соответствующие биты направления в регистре TRISA, позволяющие настраивать канал как вход или выход.

Запись ‘1’ в TRISA переводит соответствующий выходной буфер 3-е состояние. Запись ‘0’ в регистр TRISA

определяет соответствующий канал как выход, содержимое защелки PORTA передается на вывод микроконтроллера.

Чтение регистра PORTA возвращает состояние на выводах порта, а запись производится в защелку PORTA. Все

операции записи в порт выполняются по принципу «чтение – модификация - запись», т.е. сначала производится чтение состояния выводов порта, затем изменение и запись в защелку.

Каналы PORTA мультиплицированы с модулем компараторов и источником опорного напряжения. Настройка работы этих периферийных модулей определяется битами в регистрах CMCON (управляющий регистр компаратора) и VRCON (управляющий регистр источника опорного напряжения). Когда компаратор включен, чтение состояние выводов PORTA будет давать результат ‘00’.

PORTB – 8-разрядный двунаправленный порт ввода/вывода. Биты регистра TRISB определяют направление каналов порта. Установка бита в ’1’ регистра TRISB переводит выходной буфер в 3-е состояние. Запись ‘0’ в регистр TRISB настраивает соответствующий канал как выход, содержимое защелки PORTB передается на вывод микроконтроллера.

Выводы PORTB мультиплицированы с внешним входом прерываний, USART, CCP модулем и входом тактового сигнала для TMR1.

 

 

ЗАДАНИЕ

  1. Разрешить прерывание от таймеров 1 и 2, от приёмника USART, внешнее прерывание, прерывание от периферийных модулей и установить бит глобального прерывания.
  2. Необходимо включить подтягивающие резисторы на входах PORTB, установить в качестве активного фронта на входе внешнего прерывания передний фронт, а также необходимо включить предделитель перед таймером 0 с коэффициентом предделения 64.
  3. Получить флаги разрешённых прерываний и сохранить их, начиная с адреса 40h.
  4. Настроить младшую половину PORTA и старшую половину PORTB на выход, а остальные на вход.
  5. Выдать на младшую половину PORTA значение «1101» и на старшую половину PORTB – «0110».

 

ВЫПОЛНЕНИЕ РАБОТЫ

 

Листинг 1. Код программы

processor PIC16F627

            #include P16f627.inc

            radix dec

 

            temp  equ   0x20

           

            org   0x00

            goto main

           

            org   0x04

            goto services

 

main 

            ;(1)разрешение прерываний

          ;пересылка в PIE1

          bcf STATUS, RP1           

            bsf STATUS, RP0          ;выбор 1 банка памяти

            movlw b'00101011'

            movwf PIE1

            ;пересылка в INTCON

            movlw b'11010000'

            movwf INTCON

 

          ;(2)включение различных опций

            ;пересылка в OPTION

            movlw b'01000101'

            movwf OPTION_REG

 

           ;(3)запись флагов прерываний в память

          bcf STATUS, RP0           ;выбор 0 банка памяти       

            movf PIR1, w

            movwf 40h

            movf INTCON, w

            movwf 41h  

 

          ;(4)пересылка в TRISA & TRISB

          movlw 07h

          movwf CMCON              ;выключение компаратора

            bsf STATUS, RP0          ;выбор 1 банка памяти

            movlw b'11110000'

            movwf TRISA

            movlw b'00001111'

            movwf TRISB

 

            ;(5)пересылка в PORTA & PORTB

          bcf STATUS, RP0           ;выбор 0 банка памяти

            movlw b'00001101'

            movwf PORTA

            movlw b'01100000'

            movwf PORTB

 

          goto main

services

            retfie

 

            end

 

 

Выводы

В ходе лабораторной работы мы ознакомились c рядом команд передачи данных и изучили особенности их применения. Также были изучены особенности работы с портами ввода/вывода и банками памяти. Была написана программа реализующая передачу данных различными командами и удовлетворяющая поставленному заданию.