Главная страница  Комбинированное использование портов 

1 2 3 4 5 6 7 8 9 10 11 [ 12 ] 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40

Инициализация портов А, В и С и RTCC. Записываем данные и определяем назначение отдельных портов (входы/выходы).

Initialize

movlw

00000001b ;

Запись данных в порт А.

porta ;

movlw

00001000b ;

Определение входов/выходов

tris

porta

movlw

00000000b

movwf

portb ;

Обнуляем порт В.

movlw

00000000b

tris

portb ;

Все линии порта В - выходы.

movlw

00000000b ;

movwf

porte .;

Обнуляем порт Е.

movlw

00000000b ;

tris

porte ;

Все линии порта Е - выходы.

movlw

0x04 ;

movlw

FIVEMSEC ;

RTCC = 5 мс.

movwf

rtcc ;

movlw

movwf

currentState

nrovlw

movwf

msTimer ;

Установка таймера.

clrf

sTimerLow ;

Сброс второго таймера.

clrf

sTimerHigh

retlw

Проверяем таймер на 0. Если не О, ожидаем.

Timer Check

movf

rtcc, w

btfss

status, z

goto

Timer Check

movlw

FIVEMSEC

movwf

rtcc

decfsz

msTimer, f

goto

Update Backplane

incfsz

sTimerLow

goto

Update Backplane

incf

sTimerHigh, f

Индикация второго таймера.

RAO и RA1 контролируют напряжение на СОМ 0. RA2 и РАЗ контролируют напряжение на СОМ 1. Возможны четыре различных состояния.

Состояние О - срО = +5 В гаО=1, га1=х

ср1 = +2.5 В га2=1. га3=0

Состояние 1 - срО = +2.5 В гаО=1, га1=0

ср1 = +5 В га2=1, гаЗ=х

Состояние 2 - срО = О В

ср1 = +2.5 В

состояние 3 - срО = +2.5 В ср1 = О В

гаО=0, га1=х

га2=1. га3=0

гаО=1, га1=0

га2=0, гаЗ=х

Updatejackplane clrwdt decf andlw movwf addwf goto goto goto goto

currentState, w 0x03

currentState

pc. f

State3

State2

Statel

StateO

Сброс сторожевого таймера. Индикация W. Выделяем биты О и 1.

; Состояние 0. StateO

UpdateState StateO, SO Table

movlw 00000101b

movwf porta

movlw 00000110b

tris porta

retlw 8

SOJable

; Выбираем данные из таблицы.

addwf

pc, f

retlw

0100b

retlw

1100b

retlw

0010b

retlw

0000b

retlw

1000b

retlw

0001b

retlw

1111b

retlw

0100b

retlw

0000b

retlw

0000b

retlw

0000b

retlw

1001b

retlw

1011b

retlw

1000b

retlw

0011b

retlw

0011b

Состояние 1.

UpdateState Statel, SI Jable movlw 00000101b



movwf movlw tris retlw

porta 00001000b porta 0

; Дли СОСТОЯНИЙ 1 выбираем данные из таблицы. S1 Table

State2

UpdateState State2, S2 Table

movlw - 00000100b

movwf porta

movlw 00000010b

tris porta

retlw 0

; Для состояния 2 выбираем данные из таблицы. S2 Table

addwf

pc, f

retlw

0001b

retlw

1111b

retlw

1001b

retlw

1101b

retlw

0111b

retlw

0101b

retlw

1111b

retlw

1111b

retlw

0001b

refclw

0101b

retlw

0011b

retlw

0001b

retlw

1001b

retlw

1001b

retlw

0001b

retlw

0011b

Состояние 2.

retlw 0100b ; с

retlw 0111b ; d

retlw 1100b ; e

retlw 1100b ; f . Состояние 3. State3

UpdateState State3, S3 Table

movlw 00000001b

movwf porta

movlw 00001000b

tris porta

retlw 0

; Для состояния 3 выбираем данные из таблицы Sajable

addwf

pc, f

retlw

1011b

retlw

0000b

retlw

0110b

retlw

0010b

retlw

1000b

retlw

1010b

retlw

1110b

retlw

0000b

retlw

1110b

retlw

1010b

retlw

1100b

retlw

1110b

retlw

0110b

retlw

0110b

retlw

1110b

retlw

1100b

Основная программа.

addwf

pc, f

retlw

1011b

retlw

0011b

retlw

1101b

retlw

1111b

retlw

0111b

retlw

1110b

retlw

1110b

retlw

1011b

retlw

1111b

retlw

1111b

retlw

1111b

retlw

0110b

Start

Repeat call call goto org

System Jeset goto

Initialize Timer Check Repeat pic55

Start

Еще одной причиной применения индикаторов на жидких крис-ллах является их большая информативность. Она проявляется, Пп Потребителю недостаточно индикации нескольких цифр или стых символов. Сегодня на рынке можно найти совсем недорогие



модели ЖКИ, обеспечивающие отображение одного или двух рящ от 16 до 40 знаков, причем это могут быть не только цифры, но и ajj. фавитно-цифровые символы, имеющиеся, например, на клавиат)р компьютера.

Подобные индикаторы всегда поставляются в виде маленько печатной платы, включающей собственно ЖКИ и схему управления. Электронная схема облегчает управление индикатором со стороны микроконтроллера, которому уже не приходится формировать сложные сигналы, как в предыд)тцем примере.

Схема, изображенная на рис. 3.24, исдользует индикатор фирщ] Hitachi, хотя может быть применен любой другой индикатор этого типа, так как сигналы интерфейса у различных марок почти иде тичны.


Рис. 3.24 , .

правление интелпектуальным ЖКИ с помощью РЮмикроконтроллера 16СХХ

Данные на индикатор подаются по восьми линиям порта В (DBO DB7) РЮмикроконтроллера 16С54, а сигналы трех линий управления формир}тотся через порт А:

♦ линия Е (Enable) - высокий уровень сигнала на данной лиНИ разрешает выполнение операции обмена, при этом индикатор

может получать команды или данные. Нулевой уровень запрещает доступ к индикатору;

Ф линия R/W (Read/Write) - указывает тип операции при обращении к индикатору (запись или чтение данных). Индикатор имеет внутренний регистр состояния, информация из которого может быть считана;

4 ЛИНИЯ RS (Register Select) - определяет тип передаваемой информации: команды (RS = 0) или данные (RS =1).

В режиме передачи данных индикатор принимает и отображает знаки кода ASCII, полученные от микроконтроллера. Позиция курсора при этом изменяется автоматически.

Индикатор может выполнять некоторое количество команд, обеспечивающих стирание отдельных символов, полное стирание всей информации, указание позиции курсора и т.д. Эти команды ускоряют управление индикатором. Некоторые модели индикаторов располагают даже памятью, где хранится конфигурация отображаемых знаков (знакогенератор). С ее помощью вы можете изменять форму знаков.

Диалог с таким индикатором предельно прост. Запись информации в индикатор происходит, например, в следующей последовательности:

♦ установить в нуль сигнал линии R/W;

♦ указать состояние линии RS, которое должно определять тип передаваемой информации (данные или команда);

♦ установить код данных или команды на шину DBO - DB7;

♦ установить уровень логической единицы на линию Е, разрешая индикатору принять информацию;

♦ обнулить сигнал линии Е, заканчивая обмен.

Этот процесс может повторяться многократно, но, учитывая Медлительность ЖКИ, между двумя последовательными передачами команд или данных должна быть некоторая пауза. Ее типовая длительность: от 100 МКС для операции простой передачи индицируемых данных до 5 мс для более сложных операций.

Команда считывания выполняется за одну микросекунду. Она Использована в листинге 3.5 для того, чтобы управляющий PIC-Микроконтроллер не тратил время на бесполезное ожидание, если Несколько знаков и/или команд должны быть посланы последова- ельно друг за другом.



1 2 3 4 5 6 7 8 9 10 11 [ 12 ] 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40

© 2000 - 2024 ULTRASONEX-AMFODENT.RU.
Копирование материалов разрешено исключительно при условии цититирования.