Как настроить разряды PORTD на ввод и на вывод?



Мы поможем в написании ваших работ!


Мы поможем в написании ваших работ!



Мы поможем в написании ваших работ!


ЗНАЕТЕ ЛИ ВЫ?

Как настроить разряды PORTD на ввод и на вывод?



Порты ввода/вывода (ПВВ) – предназначены для общения микроконтроллера с внешними устройствами. С их помощью мы передаем информацию другим устройствам и принимаем информацию от них. В зависимости от типа, микроконтроллер может иметь на своем борту от одного до семи ПВВ. Каждому порту ввода/вывода присвоено буквенное обозначение – A, B, C, D, E, F, G. Все порты в микроконтроллере равнозначные, восьмиразрядные (содержат восемь линий, они же выводы, они же разряды, они же биты) и двунаправленные – могут как передавать, так и принимать информацию. ПВВ в микроконтроллере обслуживают все его устройства, в том числе и периферийные. Поэтому, в зависимости от того какое устройство будет работать с портом он может принимать и передавать или цифровую информацию, или аналоговую. Как и переключатель Sin, Sout – это регистр ввода/вывода под названием PORTx, где “х” – буквенное обозначение порта (к примеру для порта D регистр будет иметь вид – PORTD).

В семейств МК Mega имеется дополнительный переключатель – PUD, - 2-й разряд регистра ввода/вывода SFIOR (он называется “Регистр специальных функций”). С помощью этого PUD осуществляется общее управление подтягивающими резисторами:

- при записи в этот разряд “1” – все подтягивающие резисторы для всех портов отключаются;

– при записи в этот разряд “0” – состояние подтягивающих резисторов определяется регистром PORTx.

Зачем нужно общее отключение резисторов, да и этот PUD заодно, мы сегодня рассматривать не будем.

В режиме работы разрядов порта на вывод, задача регистра PORTx очень проста – то, что мы в него запишем, то и будет на выходе. Запишем одни “нули” – на выходах буду логические нули, запишем “единицы” – на выходе буду логические “единицы”.

Если разряд порта настроен на ввод информации, то с его помощью подключается так называемый “подтягивающий резистор” – Rup, или “внутренний нагрузочный резистор”. Благодаря этому резистору упрощается подключение внешних кнопок и переключателей, т.к. обычно контакты требуют внешнего резистора.

Например:

Настраиваем порт В на вывод информации:

Idi R20, 0b11111111

Out DDRB, R20

Выводим в разряды 0-3 логический ноль, а в разряды 4-7 логическую единицу:

Idi R20, 0b11110000

Out PORTB, R20

 

Что выполняет инструкция BTFSS PORTD, 2?

BTFSS - Проверить бит b в регистре f, пропустить, если b = 1.

Синтаксис: [label] BTFSS f, b.

Операнды: 0£f£127; 0£b£7.

Изменяемые флаги: Нет.

Описание: Если бит b в регистре f равен ‘1’, то следующая инструкция программы пропускается.

Что выполняет инструкция BTFSC PORTD, 2?

BTFSC - Проверить бит b в регистре f, пропустить следующую инструкцию, если b=0.

Синтаксис: [label] BTFSC f, b.

Операнды: 0£f£127; 0£b£7.

Изменяемые флаги: Нет.

Описание: Если бит b в регистре f равен 0, то следующая инструкция программы пропускается.

93Что записано в файле p16F877.inc?
Карта памяти данных PIC16F87x.В МК этого семейства существует память программ и память данных. Память данных состоит из четырех банков, нумеруемых 0, 1, 2 и 3 (приложение Б). Информация в банках хранится в регистрах, состоящих из 8 разрядов (бит). Они делятся на регистры общего назначения (РОН), которые может использовать программист для хранения констант, и регистры специального назначения (РСН), выполняющие определенные функции управления работой микроконтроллера. Банки имеют нумерацию в двоичной системе: 00 – банк ‘0’, 01 – банк ‘1’, 10 – банк ‘2’, 11 – банк ‘3’.

В каждом банке находится 128 регистров.

Адреса регистров нумеруются в шестнадцатеричной системе, начиная с адреса 00h, который находится в нулевом банке и кончая адресом 1FFh, который находится в 3-м банке. К РСН обычно обращаются по его имени. Программист, используя РОН для хранения констант или промежуточных данных, обычно присваивает им имена, названия которых позволяют легче реализовывать разработанный алгоритм.

 

Порядок отладки программы.

Чтобы проверить работоспособность созданной программы и увидеть результаты ее работы (если не использован вывод на дисплей), применяют программу отладчик. Тестирование и отладка исполняемой программы выполняется отладчиком TD или DEBUG.

Отладчик td.exe, разработанный фирмой Borland International представляет собой оконную среду отладки программ на уровне исходного текста на языках Pascal, C, ассемблер. Основные возможности отладчика, наиболее широко используемые студентами - это:

- выполнение трассировки программы в прямом направлении, при котором за 1 шаг выполняется одна машинная инструкция;

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

Управлять работой отладчика можно с помощью системы меню двух типов:

- глобального, находящегося в верхней части экрана и постоянно доступного. Вызов меню осуществляется нажатием клавиши F10;

- локального, учитывающего особенности окон и становящегося активным щелчком правой мыши или нажатием клавиш Alt+F10.

 

Назначение РСН INTCON?

Регистр INTCON доступен для чтения и для записи. Он содержит

биты масок прерываний и флаги прерываний. Флаги прерываний

должны сбрасываться программно. Регистр показан в таблице Ж.3.

Назначение битов регистра INTCON приведено ниже.

Бит 7: GIE – Общее (глобальное) управление прерываниями.

1=все немаскируемые прерывания разрешены.

0=все прерывания запрещены.

Примечание: Если происходит прерывание, то бит GIE сбрасывается. По команде выхода из подпрограммы (RETFIE) этот бит устанавливается.

Бит 6: PEIE – маска прерываний от периферийных устройств 1=все немаскируемые прерывания периферийных устройств разрешены

0=все прерывания периферийных устройств запрещены

Бит 5: T0IE – маска прерывания по переполнению TMR0

1=прерывание TMR0 разрешено

0= прерывание TMR0 запрещено

Бит 4: INTE – маска внешнего прерывания по входу RB0/INT

1=прерывание по входу RB0/INT разрешено

0=прерывание по входу RB0/INT запрещено

Бит 3: RBIE – маска прерывания по изменению состояния на

входах RB7: RB4 PORTB

1=прерывание по изменению уровня сигнала на входах RB7: RB4 PORTB разрешено

0=прерывание по изменению уровня сигнала на входах RB7: RB4 PORTB запрещено

Бит 2: T0IF – флаг прерывания при переполнении TMR0

1=устанавливается, если регистр TMR0 переполнен (очищается

программно)

0=если регистр TMR0 не переполнен

Бит 1: INTF – флаг внешнего прерывания по входу RB0/INT

1=устанавливается, если происходит прерывание по входу

RB0/INT

0=если прерывание по входу RB0/INT не произошло

Бит 0: RBIF – флаг прерывания по изменению уровня сигнала на входах RB7: RB4 PORTB

1=устанавливается, если изменился уровень сигнала на одном из входов RB7:RB4 PORTB (очищается программно)

0=если уровень сигнала на входах RB7:RB4 не изменились.



Последнее изменение этой страницы: 2016-04-21; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 34.228.52.223 (0.007 с.)