і
М И К Р О К О Н Т Р О Л Л Е Р Ы
і
Р и с. 10.
Схема подключения микрофона и динамика
(РВ0.
..РВ2 и РВ4). Свободный вывод
(РВЗ) используется для управления со-
стоянием LED. Для установок “ведуще-
го”, сигналы Serial Clock(SCK), Master
Out/Slave In(MOSI), Chip Select(#CS),
Write Protect(#WP) и Reset(#RST) явля-
ются выходами, тогда как Master In/
Slave Out(MISO) и Ready/Busy(RDY/
#BSY) являются входами. РВЗ для LED
также определяется как выход регист-
ра направления данных для PortB, ус-
тановленного как OxBD.
Состоянием по умолчанию PortB
является: всех выходы в высоком со-
стоянии, а на всех входах - внутрен-
ние нагрузочные резисторы.
АЦП AT90S8535 подключено к
PortA. Поэтому PortA определен как
вход в высокоимпедансном состоянии.
PortD служит в качестве входа для
кнопок и выхода ШИМ сигнала. Здесь
используется функция ШИМ Timerl
на выводе PD4.
Прерывания разрешены. В дан-
ном примере, используются два пре-
рывания (“ADC” и “Tim erl Overflow”),
которые разрешаются и запрещают-
ся напрямую в подпрограмме, когда
они требуются.
Главный цикл
В главном цикле (рис. 13), отсле-
живается состояние всех трех кно-
пок. Если одна из них нажата, то LED
загорается и показывает, что систе-
ма занята, и вызывается соответ-
ствующая подпрограмма.
Дополнительный цикл выполняет-
ся до тех пор, пока кнопка нажата, в
качестве программной противодре-
безговой защиты для функций “Очи-
стка” и “Воспроизведение”.
Во время главного цикла, LED
36 |------------------------------
погашен, это значит, что система ра-
ботает в холостом режиме.
Очистка
Data Flash может быть предвари-
тельно очищена (рис.
12
).
При вызове подпрограммы “erase”
(очистка), устанавливается флаг, ко-
торый показывает, что в следующем
цикле записи новые данные могут
быть сохранены в начале DataFlash.
SPI должен быть установлен для
доступа к DataFlash. Здесь не исполь-
зуются прерывания. Порядок данных
(
с” рт
)
Устало*» порто*
для DataFlash следующий: MIB являет-
ся первым, a AT90S8535 - “ведущим”.
DataFlash принимает либо сигнал
SCK, который находится в низком со-
стоянии, когда #CS переключается из
высокого в низкое состояние (SPI ре-
жим 0), либо сигнал SCK, который на-
ходится в высоком состоянии, когда
#CS переключается из низкого в высо-
кое состояние (SPI режим 3), во время
положительной фазы тактовых иЩ»?ль-
сов. В данном примере SPI установлен
в режим 3. Для того чтобы получить наи-
большую скорость передачи данных,
выбирается наименьшее деление так-
товой частоты, шина SPI запускается
на частоте 2 МГц, если используется
кварцевый генератор с частотой
8
МГц.
Для выполнения очистки блока, ли-
ния #CS переводится в низкое состоя-
ние и в DataFlash, следом за двумя за-
резервированными битами (нулями),
загружается код операции 0x50, затем
9-разрядный адрес блока и 13 не име-
ющих значения бит. Эта последова-
тельность передается побайтно “ведо-
мому”. После каждого байта, регистр
состояния SPI (SPSR) проверяется до
тех пор, пока флаг прерываний SPI не
покажет, что передача завершена.
После записи всей последовательно-
сти, сразу после перевода линии #CS
в высокое состояние, начинается очи-
стка блока. Вывод Ready/Busy перево-
дится памятью DataFlash в низкое со-
стояние, до тех пор, пока блок не очи-
Р и с. 11.
Главный цикл
I Радиолюбитель - 10/2004
предыдущая страница 35 Радиолюбитель 2004-10 читать онлайн следующая страница 37 Радиолюбитель 2004-10 читать онлайн Домой Выключить/включить текст