Общие принципы построения микроконтроллеров, страница 10

  Команды логического преобразования содержимого регистров ANL Рр, # data и ORL Рр, # (p= 1,2) позволяют разработчику использовать одни линии порта для ввода, а другие — для вывода (квазидвунаправленный режим передачи).

  Порт BUS представляет собой двунаправленный буфер с тремя состояниями выхода и служит для побайтного ввода, вывода или ввода/вывода информации. При этом используются команды OUTL BUS,А и INS BUS,А для однонаправленной передачи и команда MOVX для двунаправленной передачи. Необходимо помнить, что команда OUTL фиксирует передаваемый байт в выходном регистре, а команда MOVX уничтожает содержимое этого регистра.

  Стандартное использование порта BUS — это организация обмена с внешней памятью данных и программ.

  При работе в реальном масштабе времени микроконтроллер связан с объектом управления тремя входами T0, T1 и INT, которые командами условной передачи могут воздействовать на ход программы управления (INT может воздействовать и непосредственно). Кроме того, сигнал со входа T1 может восприниматься как сигнал счета внешних событий. Число входных сигналов может быть увеличено за счет их подачи в виде параллельного кода на порты ввода-вывода. Опрос этих сигналов осуществляется программно при помощи команд IN и INS. Наличие внутреннего 8-разрядного счетчика/таймера позволяет подсчитывать внешние (T1) или внутренние (импульсы с периодом 80 мкс) события и вырабатывать сигнал переполнения TF, воспринимаемый микроконтроллером как сигнал внутреннего прерывания. Группа команд разрешает и запрещает прерывание по TF, устанавливает начальный код счета, запускает и останавливает счет, тестирует состояние счетчика/таймера путем пересылки его кода в аккумулятор.

  Счетчик/таймер работает в инкрементном режиме по модулю 256, сигнал TF вырабатывается при перехода от 255 к нулю.

  Для подсчета N событий в счетчик/таймер должно быть предварительно записано число (-N) в дополнительном коде. Пусть, например, нам необходимо сформировать задержку в 240 мкс. Фрагмент программы инициализации счетчика таймера примет вид:

MOV A,#NOT (240/80- 1) ;загрузка таймера

MOV T, A ; кодом [-3]доп;

STRT Т ; запуск таймера;

EN TCNTI ; разрешение прерывания по сигналу TF.

2.4. Программирование и проверка ППЗУ

  Процесс загрузки прикладных программ в резидентную память программ МК требует специального устройства — программатора, ко­торый, с одной стороны, обеспечивает генерацию управляющих сиг­налов, необходимых для ввода в МК адреса/данных, а, с другой, дает возможность проверки правильности введенных программ.

  Вне зависимости от технического выполнения программатора (ручное/ автоматическое, программное управление) процесс загрузки должен подчиняться определенному протоколу.

  1. Микросхема контроллера вставляется в розетку программатора.
  2. Программатор настраивается на режим загрузки (VDD = 5В, SR = 0, T0 = 5B, FBQ = 1 + 6Мгц)
  3. Устанавливается режим программирования (TО = 0 , ЕМА= 25В ).
  4. Подается и фиксируется 10-разрядный адрес ячейки (SR = 5B).
  5. Подается и фиксируется записываемый код данных PR = 25B) длительностью 50 мкс.
  6. Устанавливается режим считывания записанной информации (T0 = 5B), проверяется правильность записи.

  Работа программатора демонстрируется эпюрами напряжений, изображенными на рис. 2.3.

Глава 3. ПРИМЕР ПРОЕКТИРОВАНИЯ МИКРОКОНТРОЛЛЕРА

3.1. Постановка задачи

  На основе однокристальной ЭВМ К1816ВБ48 разработать устрой­ство охранной сигнализации (УОС) автомобиля. УОС служит для пре­дупреждения о несанкционированном доступе путем генерации звуко­вых, световых и радиосигналов. В стандартном режиме УОС запитывается от основного аккумулятора (ОА), а при его "несанкциониро­ванном отключении" автоматически переключается на дополнитель­ный аккумулятор (DA),встроенный в специальный звуковой сигнал.