Дипломная работа: Разработка PIC-контроллера устройства измерения временных величин сигналов
Регистр
|
Состояние |
W |
xxxx xxxx |
INDF |
---- ---- |
TMR0 |
xxxx xxxx |
PCL |
0000 0000 |
STATUS |
0001 1xxx |
FSR |
xxxx xxxx |
PORTA |
---x xxxx |
PORTB |
xxxx xxxx |
EEDATA |
xxxx xxxx |
EEADR |
xxxx xxxx |
PCLATH |
---0 0000 |
INTCON |
0000 000x |
OPTION |
1111 1111 |
TRISA |
---1 1111 |
TRISB |
1111 1111 |
EECON1 |
---0 x000 |
EECON2 |
---- ---- |
Регистр INDF не является физическим регистром.
При обращении к регистру INDF
на самом деле происходит косвенная адресация памяти данных.
Косвенная
адресация реализована через регистр INDF. Любая команда, использующая регистр INDF, фактически обращается к данным, на которые указывает
регистр адреса в файле (FSR).
Чтение самого INDF с помощью косвенной адресации дает в
результате 00h. Результатом косвенной записи в
регистр INDF будет NOP.
1.3.2
Стек
PIC16F84 имеет аппаратный стек глубиной 8
13-битных слов. Стек не является частью памяти программ или данных, а указатель
стека не может быть явно прочитан или модифицирован. При выполнении команды CALL или возникновении прерывания PC сохраняется в стеке. При выполнении
команд RETURN, RETLW или RETFIE
значение PC восстанавливается из стека.
Содержимое PCLATH при этом не изменяется.
Стек
работает как циклический буфер. Это означает, что после того, как в стек было
помещено восемь записей, девятая помещается на место первой, десятая - на место
второй, и т.д.
1.3.3
Порты ввода/вывода
PIC16F84 имеет два порта, а именно PORTA, PORTB. Некоторые каналы портов совмещают функции выводов
других периферийных устройств.
PORTA — это
5-разрядный порт. RA4 имеет триггер
Шмитта на входе и открытый сток на выходе. Остальные каналы порта имеют входные
уровни ТТЛ и выходные буферы КМОП. Порт имеет регистр направления TRISA, с помощью которого каналы порта
могут быть индивидуально настроены на ввод или на вывод.
Установка
в "1" бита регистра TRISA
определяет соответствующий канал PORTA
как вход, т.е. выходные буферы переводятся в третье состояние. Установка в
"0" бита регистра TRISA
определяет соответствующий канал PORTA
как выход, т.е. содержимое защелки порта выводится на соответствующий вывод микросхемы.
Чтение
регистра PORTA возвращает состояние на выводах
порта, тогда как запись производится в защелку PORTA. Все операции записи в порт производятся как
чтение-модификация-запись, т.е. сначала производится чтение состояния выводов,
затем модификация и запись в защелку. Канал RA4 также работает как вход тактового сигнала TMR0.
PORTВ — это
8-разрядный порт, который имеет регистр направления TRISB, с помощью которого каналы порта могут быть
индивидуально настроены на ввод или на вывод.
Установление
в "1" бита регистра TRISB
определяет соответствующий какал PORTB
как вход, т.е. выходные буферы переводятся в третье состояние. Установление а
"0" бита регистра TRISB
определяет соответствующий канал PORTB
как выход, т.е. содержимое защелки порта выводится на соответствующий вывод
микросхемы.
Все
контакты PORTВ имеют встроенные подтягивающие резисторы.
Их включением управляет один бит -RCPU, он должен быть установлен в "0". Подтягивающие резисторы
автоматически выключаются, когда каналы порта настраиваются на вывод и после POR.
Все
операции вывода в порт осуществляются как чтение-модификация-запись. Команды BCF и BSF, например, считывают значение порта в ЦПУ, выполняют
операцию с битом и записывают результат обратно. Требуется осторожность при
применении этих команд к порту, содержащему как входы, так и выходы. Например,
операция BSF надбитом 5 PORTB считывает все восемь битов PORTB в ЦПУ выполняется и записывает результат в выходные
защелки. Если другой канал PORTВ
используется как двунаправленный и настроен в данный момент на ввод, то входной
сигнал будет считан с вывода в ЦПУ и записан а защелку данных этого канала
поверх предыдущего значения.
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 |