Организация подсистемы ввода-вывода с параллельным доступом

Автор работы: Пользователь скрыл имя, 12 Ноября 2014 в 21:21, лабораторная работа

Описание работы

Цель работы: Получить практические навыки в программировании портов ввода-вывода микроконтроллеров с архитектурой PICmicro (Pic16f877a).

Файлы: 1 файл

Лабораторная работа №4.doc

— 1.55 Мб (Скачать файл)

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

 

ОРГАНИЗАЦИЯ ПОДСИСТЕМЫ ВВОДА-ВЫВОДА С ПАРАЛЛЕЛЬНЫМ ДОСТУПОМ

 

Цель работы: Получить практические навыки в программировании портов ввода-вывода микроконтроллеров с архитектурой PICmicro (Pic16f877a).

 

Ход работы:

Задание: min(PORT(A&E),PORTB-K),результат PORT(A &E)

Листинг программы:

list p=16f877a

#include<p16f877a.inc> ;Подклюключаем заголовочный файл

REZ1 EQU 0x23  ;ячейка хранения временного результата

REZ2 EQU 0x24  ;ячейка хранения временного результата

K EQU  0x22

TEMP1A EQU 0x25

TEMP2E EQU 0x26

RESULT EQU 0x27

org 0x00    ;Вектор сброса

reset     ;операция сброс

goto start    ;Переход на начало программы

org 0x04    ;Вектор начала программы

start

bcf STATUS,RP1

bcf STATUS,RP0   ;Выбор банка 0

movlw 0x06   ;заносим константу в аккумулятор

movwf ADCON0   ;Отключить модуль АЦП

bsf STATUS,RP0   ;Выбор банка 1

movwf ADCON1   ;Отключить модуль АЦП

bcf STATUS,RP0   ;Выбор банка 0

clrf PORTA   ;Очистить PORTA

clrf PORTB   ;Очистить PORTB

clrf PORTE   ;Очистить PORTE

bsf STATUS,RP0   ;Выбор банка 1

movlw 0x3F   ;Все выводы порта А на вывод

movwf TRISA   

movlw 0xFF   ;Все выводы порта В на вывод

movwf TRISB

movlw  0x7            ;Все выводы порта E на вывод

movwf   TRISE 

bcf STATUS,RP1   ;Выбор банка 0

bcf STATUS,RP0   ;Выбор банка 0

prog

movlw 0x13

movwf K

movfw PORTE    ;заносим данные в порт Е

movwf TEMP2E   ;временное хранилище порта Е

movfw PORTB

movfw PORTA    ;заносим данные в порт А

movwf TEMP1A   ;временное хранилище порта А

andwf TEMP1A,0   ;логическое И

movwf TEMP1A

RLF TEMP2E,1   ;сдвиг влево побитово

RLF TEMP2E,1 

RLF TEMP2E,1

RLF TEMP2E,1

RLF TEMP2E,1

iorwf TEMP2E,0   ;логическое ИЛИ

movwf REZ2

movfw K

subwf PORTB,0

movwf REZ1

subwf REZ2,0

btfss STATUS,C    ;проверка флага переноса на равенство 1, если не равно пропускаем

goto m1

goto m2

m1

movfw REZ2

movwf RESULT

movwf TEMP1A

movwf TEMP2E

movlw 1fh

andwf TEMP1A,1

bsf STATUS,RP0

movlw 0x00

movwf TRISA

bcf STATUS,RP0

movfw TEMP1A

movwf PORTA

movlw 0xE0

andwf TEMP2E,1

movfw TEMP2E

RRF TEMP2E,1

RRF TEMP2E,1

RRF TEMP2E,1

RRF TEMP2E,1

RRF TEMP2E,1

bsf STATUS,RP0   ;Выбор банка 1

movlw 0x00   ;Все выводы порта А на вывод

movwf TRISE  

bcf STATUS,RP0

movfw TEMP2E

movwf PORTE

goto m3

m2

movfw REZ1

movwf RESULT

movwf TEMP1A

movwf TEMP2E

movlw 1fh

andwf TEMP1A,1

bsf STATUS,RP0

movlw 0x00

movwf TRISA

bcf STATUS,RP0

movfw TEMP1A

movwf PORTA

movlw 0xE0

andwf TEMP2E,1

movfw TEMP2E

RRF TEMP2E,1

RRF TEMP2E,1

RRF TEMP2E,1

RRF TEMP2E,1

RRF TEMP2E,1

bsf STATUS,RP0

movlw 0x00

movwf TRISE

bcf STATUS,RP0

movfw TEMP2E

movwf PORTE

goto m3

m3

nop

end 

Рисунок 1 – Окно проекта

 

Рисунок 2 – Листинг программы

 

 

Рисунок 3.а – Порты входные данные

 

Рисунок 3.б – Порты результат

 

 

Рисунок 4 – Функциональные регистры

 

Рисунок 5- Stimulus

 

 

 

 Рисунок 6- Файлы(данные в HEX )

 

Вывод: в ходе данной лабораторной работы я получил практические навыки в программировании портов ввода-вывода микроконтроллеров с архитектурой PICmicro (16f877a) и сделал выводы о плюсах и минусах различных систем ввода-вывода.


Информация о работе Организация подсистемы ввода-вывода с параллельным доступом