![]() | |
НПО Системы Безопасности (499)340-94-73 График работы: ПН-ПТ: 10:00-19:00 СБ-ВС: выходной ![]() ![]() |
Главная » Периодика » Безопасность 0 ... 58596061626364 ... 159 выводы для чтения/записи и выбора кристалла, что позволяет легко осуществлять операции по передаче данных. Структурная схема управляемого параллельного порта приведена на рис. 7.35. Соответствующие временные диаграммы, иллюстрирующие процедуру записи/считывания данных, показаны на рис. 7.36. Входной регистр Выходной регистр ] 8 двунаправленных линий - ] CS - для адресной выборки - ] WR - строб-импульс записи (инверсный) - ] RD - строб-импульс чтения (инверсный) Рис. 7.35 Структурная схема управляемого параллельного порта Данные / Запись данныху" W Команда чтения коГрГер Рис. 7.36 Временные диаграммы работы управляемого параллельного порта Минимальное время доступа соответствует одному периоду такто-руХ импульсов микроконтроллера. Для PIC-микроконтроллеров, использующих синхронизирующие импульсы частотой 20 МГц, минимальная величина времени доступа составляет 50 не. Чтобы разрешить использование управляемого параллельного порта, нужно предварительно установить бит выбора режима параллельного порта в регистре TRISE. При установке этого бита управление портом D передается линиям CS, RD и WR, которые соответствуют выводам RE2, RE1 и REO порта Е. После того как будет установлен бит выбора режима порта, данные регистров PORTD, PORTE, TRISD и TRISE игнорируются. При использовании управляемого параллельного порта, когда активизированы линии CS и RD (на них уровень логического 0), осуществляется вывод содержимого регистра OUTREG через порт D. При записи в регистр OUTREG (адрес, соответствующий регистру PORTD) производится установка бита OBF («выходной буфер полон») регистра TRISE. Но эта возможность предусматривается не для всех микроконтроллеров. Бит PBF сбрасывается автоматически при считывании байта из регистра OUTREG в режиме управляемого параллельного порта. При записи байта в микроконтроллер через управляемый параллельный порт (на линиях CS и WR логические 0) записываемая величина сохраняется в регистре INREG до тех пор, пока она не будет заменена новыми данными. В регистре состояния бит IBF («входной буфер полон») будет устанавливаться каждый раз при записи данных в регистр IN REG и стираться каждый раз при считывании байта программой из регистра INREG. Если ранее записанный байт не считывается до поступления последующего байта в регистр INREG, инициируется установка бита переполнения входного буфера IBOV, который указывает, что возникли условия «затирания» данных. В первых микроконтроллерах, имеющих управляемый параллельный порт, биты IBF, OBF и IBOV регистра TRISE отсутствовали. ДОСТУП к EEPROM ДАННЫХ Регистры EEADR , EEDATA , EC0N1 и EEC0N2 обеспечивают достутг к встроенному EEPROM (электрически стираемому и программируеному постоянному запоминающему устройству), предназначенному для хранения данных. При этом регистры EEADR и EEDATA необходимы для формирования и ввода адреса и данных в EEPROM, объем памяти которого может достигать 256 байт. В свою очередь регистры EEC0N1 и EEC0N2 предназначены для выбора режима доступа и индикации момента завершения операций. Регистр EEC0N2 представляет собой «псевдорегистр», не допускающий считывания данных, однако сюда можно записать коды 0х055/0х0АА, что позволяет контролировать правильность выполнения операции записи. В табл. 7.23 указывается назначение битов регистра EEC0N1, которые отвечают за управление доступом. Таблица 7.23 Назначение основных битов региара EEC0N1
Операция считывания данных из EEPROM выполняется с помощью указанных битов и нижеследующего фрагмента программы: movf/movlw Address/ADDR, w bcf STATUS, RPO movwf EEADR bsf STATUS, RPO bsf EEC0N1 " 0x08, RD bcf STATUS, RPO movf EEDATA, w ; Регистр w содержит адрес (ADDR) EEPROM. Операция записи данных выполняется аналогичным образом, но имеет существенное отличие. Продолжительность этой операции может достигать 10 мс, что требует периодического опроса программой бита WR регистра EECON1 вплоть до момента завершения операции. Другой путь - воспользоваться аппаратно формируемым запросом на прерывание по завершении записи в EEPROM. Ниже представлен программный фрагмент для осуществления записи в EEPROM. movlw/movf Constant/DATA, w bcf STATUS, RPO movwf EEDATA 0 ... 58596061626364 ... 159 |