вкл?
нет КонецРис. 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, Учебное пособие.