Смекни!
smekni.com

Адаптер паралельного обмена (стр. 5 из 5)

SS0…SS6 STRW0…6

да Питание

вкл?

нет

Конец

Рис. 5.1 – Схема алгоритма работы микроконтроллера


5.2 Структура программы

Микроконтроллер выполняет следующие функции:

- прием управляющих сигналов с системной магистрали ISA;

- преобразование двоичного кода в позиционный (для управления блоком регистров и блоком приема данных);

- формирование управляющих стробов.

Программа содержит следующие участки программы:

RESET – производит перевод всех портов устройства в исходное состояние на ввод данных;

OKEY – осуществляет передачу управления подпрограммам IOW или IOR, в зависимости от состояний опрашиваемых битов;

IOW – формирование и выдача сигналов STRW0…6 и SS0…6;

IOR – формирование и выдача сигналов STRR0…6 и STRR7;

PR2INPOS – преобразование двоичного кода в позиционный.

5.3 Распределение памяти данных

1. Прием управляющих сигналов с ISA PORTА – 05H

РORTЕ – 09H

2. Выдача стробов STRW0…6 PORTC – 07H

3. Выдача стробов SS0…6 PORTD – 08H

4. Выдача стробов STRR0…7 PORTB – 06H

5. Программирование TRISA – 85H

TRISB – 86H

TRISC – 87H

TRISD – 88H

TRISE – 89H

6. Запрет прерываний портов INTCON-0BH

7. Регистр для хранения SA0…2 ADR – 26H

8. Регистр для хранения D0…2 DATA – 27H

9. Вспомогательный регистр RADR – 28H

5.4 Текст программы

LIST P=PIC16C64

;Секция заголовка

;Описание специальных регистров

PORTA EQU 05H ;Регистр порта A

PORTB EQU 06H ;Регистр порта B

PORTC EQU 07H ;Регистр порта C

PORTD EQU 08H ;Регистр порта D

PORTE EQU 09H ;Регистр порта E

TRISA EQU 85H ;Регистр конфигурации порта A

TRISB EQU 86H ;Регистр конфигурации порта B

TRISC EQU 87H ;Регистр конфигурации порта C

TRISD EQU 88H ;Регистр конфигурации порта D

TRISE EQU 89H ;Регистр конфигурации порта E

INTCON EQU 0BH ;Регистр управлениями

;прерываниями

PCL EQU 02H ;Регистр программного счетчика

;Описание регистров памяти переменных

ADR EQU 26H ;Регистр для хранение сигналов

;SA0…2

RADR EQU 27H ;Вспомогательный регистр

DATA EQU 28H ;Регистр для хранения D0…2

;Рабочая секция

;Начало исполняемого кода

ORG 0

GOTO BEGIN

ORG 100

BEGIN MOVLW B'00000000' ;Конфигурация портов

MOVWF TRISB

MOVWF TRISC

MOVWF TRISD

MOVLW FFH

MOVWF TRISA

MOVWF TRISE

MOVLW B'01110000'

MOVWF DATA

START BTFSC PORTA, 1 ;Проверка 1-го бита порта А

GOTO RESET ;Переход на метку RESET

BTFSS PORTA, 0 ; Проверка 0-го бита порта А

GOTO OKEY ;Переход на метку OKEY

GOTO START ;Переход на метку START

RESET MOVLW B'11111111' ;Запись в регистр W константы

MOVWF PORTD ;Установка портов устройства в

;исходное состояние

GOTO BEGIN ;Переход на метку BEGIN

OKEY BTFSS PORTA, 2 ;Проверка 2-го бита порта А

GOTO IOW ;Переход на метку IOW

BTFSS PORTA, 3 ;Проверка 3-го бита порта А

GOTO IOR ;Переход на метку IOR

GOTO START ;Переход на метку START

IOW MOVF PORTE ;Запись в регистр W данных

;из порта Е

MOVWF ADR ;Запись в регистр ADR данных

;из W

MOVF PORTA ;Запись в регистр W данных

;из порта A

ANDWF DATA, 1 ;Выделение сигналов D0…2

;и сохранение в регистре DATA

RLF DATA, 1 ;Сдвиг регистра влево

RLF DATA, 1 ;Сдвиг регистра влево

RLF DATA, 1 ;Сдвиг регистра влево

RLF DATA, 1 ;Сдвиг регистра влево

MOVF ADR ;Запись в регистр W данных

;из регистра ADR

MOVWF RADR ;Запись в регистр RADR данных ;из W

INCF RADR, 1 ;Инкремент регистра RADR

;с сохранением данных в RADR

BTFSS RADR, 3 ;Проверка 3-го бита регистра RADR

GOTO STRW ;Переход на метку STRW

MOVF DATA ;Запись в регистр W данных

;из регистра DATA

CALL PR2INPOS ;Вызов процедуры

MOVWF PORTD ;Запись в регистр PORTD данных

;из регистра W

GOTO START ;Переход на метку START

IOR MOVF PORTE ;Запись данных из регистра Е

; в W

CALL PR2INPOS ;Вызов процедуры

MOVWF PORTB ;Запись в регистр PORTB данных

;из регистра W

MOVLW FFH ;Запись константы в W

MOVWF PORTB ;Запись в регистр PORTB данных

;из регистра W

GOTO START ;Переход на метку START

STRW MOVF ADR ;Запись данных из регистра ADR

; в W

CALL PR2INPOS ;Вызов процедуры

MOVWF PORTC ;Запись в регистр PORTC данных

;из регистра W

MOVLW FFH ;Запись константы в W

MOVWF PORTB ;Запись в регистр PORTC данных

;из регистра W

GOTO START ;Переход на метку START

PR2INPOS ADDWF, 1 PCL ;Сложение W и PCL

RETLW FEH ;Возврат и загрузка W

RETLW FDH ;Возврат и загрузка W

RETLW FBH ;Возврат и загрузка W

RETLW F7H ;Возврат и загрузка W

RETLW EFH ;Возврат и загрузка W

RETLW DFH ;Возврат и загрузка W

RETLW BFH ;Возврат и загрузка W

RETLW 7FH ;Возврат и загрузка W

END ;Конец программы


ЗАКЛЮЧЕНИЕ

В данном проекте был разработан универсальный адаптер параллельного обмена. Это устройство предназначено для обмена информацией между компьютером и внешними устройствами (нестандартными).

Устройство реализовано на однокристальном микроконтроллере типа PIC16C64.

Применение в устройстве данного однокристального микроконтроллера привело к уменьшению быстродействия, но улучшились весогабаритные параметры.

Для увеличения быстродействия необходимо использовать микроконтроллер другого типа, например SX.


СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ

1. Ю.В.Новиков, О.А.Калашников "Разработка устройств сопряжения". Издательство "ЭКОМ", Москва, 1998г.

2. В.В.Скороделов "Проектирование устройств на однокристальных микроконтроллерах с RISC-архитектурой". Ч1,Ч2, Учебное пособие.