![]() |
Звоните! (926)274-88-54 Бесплатная доставка. Бесплатная сборка. |
Ассортимент тканей График работы: Ежедневно. С 8-00 до 20-00. Почта: soft_hous@mail.ru |
![]() ![]() ![]() |
Читальный зал --> Устройства ультрафиолетового стирания 5.5 РЕГИСТРЫ PORTE И TRISE Регистр данных Шина данных VVRPORT WRTRIS Регистр TR S О q Контакт Буфер триггер Шмитта RDTRIS RD PORT Рис. 5-7 Структурная схема PORTD в режиме порта ввода / вывода 1. Контакты защищены диодами к Vdd и Vss Регистр данных Шина данных WRPQRT VVRJSIS. егистр TR d q ►ci<~V Контз: I/O* Буфер триггер Шмитта RDTRIS RDPORT q d en Рис. 5-8 Структурная схема PORTE в режиме порта ввода / вывода I. Контакты защищены диодами к Vqd и Vss ре TRISA соответствующие разряды были PORTE - это 3 разрядный двунаправленный порт. Контакты RE0/RD/AN5, RE1AVR/AN6 и RE2/CS/AN7 порта можно конфигурировать как выходы или входы программированием регистра TRISE. На входах PORTE установлены буферы с триггерами Шмитта. Контакты PORTE становятся входами управления для параллельного ведомого порта микропроцессора, если установлен бит PSPMODE (TRISE <4>). В этом режиме пользователь должен следить, чтобы были установлены биты TRISE <2:0> (контакты конфигурированы как входы), а в регистре ADCON1 эти контакты должны быть конфигурированы как цифровые входы / выходы. В режиме параллельного ведомого порта работают входные буферы TTL. Контакты PORTE мультиплексированы с аналоговыми входами. Функция контактов выбирается программированием соответствующих битов в регистре ADCONl. Если контакты конфигурированы как аналоговые входы, то эти контакты читаются как О . Регистр TR1SE управляет направлением контактов RE даже когда они используются как аналоговые входы. При использовании контактов как аналоговых входов пользователь должен следить за тем, что бы в регист-запрограммированы как входы. 5.6 ПРОГРАММИРОВАНИЕ ПОРТОВ I/O 5.6.1 ДВУНАПРАВЛЕННЫЕ ПОРТЫ I/O Любая команда записи выполняется как чтение - модификация - запись . Команды BCF и BSF, например, читают регистр в арифметико-логическое устройство (АЛУ), выполняют разрядную операцию и записывают результат обратно в регистр. При использовании этих команд необходимо соблюдать осторожность, особенно если они применяются к портам ввода / вывода. Например, операция BSF над разрядом 5 PORTB считывает всё восьми разрядное слово из PORTB в АЛУ, затем операция BSF установит 1 в разряд 5 и запишет все слово в выходной регистр PORTB. Если какой либо разряд PORTB используется как двунаправленный контакт I/O (например, разряд 0) и он определен в это время как вход, то входной сигнал, представленный непосредственно на контакте, будет считан в АЛУ и затем записан в регистр данных этого контакта поверх предыдущего состояния. Пока данный контакт работает в режиме входа никаких проблем не возникает. Однако, если он (разряд 0) будет включен как выход, то состояние регистра данных может теперь быть неизвестно. Пример 5-4 показывает эффект двух последовательных команд чтение -модификация - запись на порте I/O. Пример 5-4: Команды чтение - модификация - запись на порте I/O Исходное состояние порта: PORTB < 7:4 > входы, PORTB < 3:О > выходы PORTB < 7: 6 > подтянуты к высокому уровню и не соединены с другими схемами регистр порта контакты порта BCF PORTB, 7 ; Olpp ррр IIPP РРР BCF PORTB, б ; lOpp ррр llpp ррр BSF STATUS, RPO BCF TRISB, 7 ; lOpp ppp llpp ppp BCF TRISB, 6 ; lOpp ppp Юрр ppp Примечание: пользователь возможно ожидал, что значения на контактах .будут ООрр ррр. Вторая операция ВСЕ считывает с контакта RB7 значение закрытого выхода ( 1 ). Если на выходе активный уровень низкий или высокий, то этот уровень не должен изменятся другим устройством (не допускается объединение выходов по схеме монтажное или и монтажное и ). Возникающие в резуль- тате этого объединения большие токи на выходе могут повредить микросхему. 5.6.2 ПОСЛЕДОВАТЕЛЬНОСТЬ ОПЕРАЦИЙ НА ПОРТАХ I/O Фактическая запись в порт I/O выполняется в конце цикла команды, в то время как чтение данных выполняется в начале цикла команды (Рис. 5-9). Следовательно, должна быть соблюдена осторожность, если запись сопровождается операцией чтения и выполняется на одном и том же контакте порта I/O. Последовательность команд должна быть такой, чтобы напряжение на контакте стабилизировалось прежде, чем будет выполнена следующая команда, которая будет считывать его значение. В противном случае с этого контакта будет читаться предыдущее состояние, так как новое состояние не успевает установится. В случае сомнения лучше отделить эти команды операцией NOP или другой командой, не обращающейся к этому порту I/O. Выборка команды RB7:RB0 Выполнение команды Q1 Q2 Q3 04; Q1 Q2 03 04 MOVWF PORTB запись t PORTB
Q2 Q3 04 MOVF PORTB.W Q1 021 031 Q4: Рис. 5-9 Последовательность операций на портах I/O Этот пример показывает запись в PORTB, сопровождаемую чтением из PORTB. Отметим: время установки данных = (0.25 Тсу - Ti>d) где: Tcy = цикл команды TpD = задержка распространения Следовательно, при более высоких частотах синхроиизацин запись, сопровождаемая чтением .может быть проблематична.
ООО «Мягкий Дом» - это Отечественный производитель мебели. Наша профильная продукция - это диваны еврокнижка. Каждый диван можем изготовить в соответствии с Вашими пожеланияи (размер, ткань и материал). Осуществляем бесплатную доставку и сборку. Звоните! Ежедневно! (926)274-88-54 Продажа и изготовление мебели. Копирование контента сайта запрещено. Авторские права защищаются адвокатской коллегией г. Москвы. |