Читаем PIC-микроконтроллеры. Все, что вам необходимо знать полностью

VEND  movwf _work; Сохраняем W в памяти данных

          swapf STATUS,w; Читаем STATUS, не изменяя флагов,

          movwf _status; и сохраняем его в памяти данных

; -------------------------

CHECK bcf INTCON,INTF; Сбрасываем флаг внешнего прерывания

           movf MONEY,w; Берем текущее значение MONEY

           btfss PORTB,7; Проверяем $2

             addlw d’200’; ЕСЛИ 0, ТО прибавляем 200

           btfss PORTB,6; Проверяем $1

             addlw d’100’; ЕСЛИ 0, ТО прибавляем 100

           btfss PORTB,5; Проверяем 25с

             addlw d’25’; ЕСЛИ 0, ТО прибавляем 25

           btfss PORTB,4; Проверяем 10с

             addlw d’10’; ЕСЛИ 0, ТО прибавляем 10

           btfss PORTB,3; Проверяем 5с

             addlw 5; ЕСЛИ 0 ТО прибавляем 5

           btfss PORTB,2; Проверяем 1с

             addlw 1; ЕСЛИ 0, ТО прибавляем 1

           movwf MONEY; Сохраняем новую сумму

; ---------------------------

; Точка выхода

           swapf _status,w; Восстанавливаем исходное значение

           movwf STATUS; регистра STATUS

           swapf _work,f; Восстанавливаем исходное значение W,

           swapf _work,w; не воздействуя на флаги,

           retfie; и возвращаемся в фоновую программу

Вопросы для самопроверки

7.1. Перепишите Программу 7.2 так, чтобы она подсчитывала число банок, равное одному гроссу (144). Это значение следует хранить в упакованном BCD-формате (СОТНИ и ДЕСЯТКИ: ЕДИНИЦЫ), и оно может использоваться фоновой подпрограммой для отображения общего числа банок.

7.2. Какие изменения следует внести в Программу 7.2, чтобы максимальное число банок в печи могло быть равным 1000?

7.3. Взяв в качестве образца Рис. 7.1, напишите процедуру обработки прерывания, выполняющую следующие операции:

• Копирование 16-битного числа в два регистра общего назначения — ТЕМР_Н и TEMP_L.

• Вычитание его из предыдущего значения, хранящегося в регистрах LAST_COUNT_H и LAST_COUNT_L, и запись разницы в регистры DIFFERENCE Н и DIFFERNCE L.

• Замещение предыдущего значения новым.

• Запись в РОН с именем NEW ненулевого значения для передачи в фоновую программу информации о том, что доступно новое значение. Фоновая процедура обнулит регистр NEW после обработки данных.

7.4. Скорость вращения вала можно измерить с использованием кодирующего диска, который генерирует импульс при повороте вала на каждые 10°. Этот импульс может использоваться в качестве сигнала внешнего прерывания микроконтроллера. Учитывая, что максимальная скорость вращения составляет 20 000 оборотов в минуту, какое наибольшее время выполнения может иметь процедура обработки прерывания, позволяющее избежать пропуска импульсов? Предполагается, что частота кварцевого резонатора равна 4 МГц.

7.5. Электронная рулетка определяет расстояние путем излучения ультразвуковых импульсов и контролируя время прихода отраженного сигнала. Схема такого ультразвукового дальномера приведена на Рис. 7.9 (за его основу взята схема с Рис. 7.7).

Наибольшее измеряемое расстояние составляет 2.5 м при разрешении 1 см. Скорость звука в воздухе при температуре 20 °C равна 344 м/с, т. е. время, за которое сигнал пройдет расстояние 1 см и вернется обратно, равно 58 мкс.

Рис. 7.9.Аппаратная часть ультразвукового дальномера

Используя в качестве задающего генератор с частотой 17.2 кГц, получим одно прерывание каждые 58 мкс.

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

• Фоновая программа

1) Обнулить счетчик JIFFY и флаг NEW

2) Подать импульс на излучатель.

3) Ждать установления ненулевого значения флага NEW

4) Отобразить подсчитанное значение.

5) Перейти к п. 1.

• Процедура обработки прерывания

1) При каждом импульсе генератора инкрементировать счетчик JIFFY.

2) При обнаружении сигнала от приемника записать в флаг NEW ненулевое значение, извещающее фоновую программу о том, что в переменной JIFFY находится конечное число.

3) Повторять, пока активен хотя бы один сигнал.

4) Выйти из прерывания.

Напишите код процедуры обработки прерывания, которая использует регистр NEW для извещения фоновой программы о приходе отраженного сигнала. За основу можно взять Программу 7.3.

7.6. Предполагается увеличить диапазон цифрового ультразвукового дальномера до 10 м и разрешение до 1 мм. Какие изменения необходимо внести в аппаратную и программную части?

Перейти на страницу:

Все книги серии Программируемые системы

PIC-микроконтроллеры. Все, что вам необходимо знать
PIC-микроконтроллеры. Все, что вам необходимо знать

Данная книга представляет собой исчерпывающее руководство по микроконтроллерам семейства PIC компании Microchip, являющегося промышленным стандартом в области встраиваемых цифровых устройств. В книге подробно описывается архитектура и система команд 8-битных микроконтроллеров PIC, на конкретных примерах изучается работа их периферийных модулей.В первой части излагаются основы цифровой схемотехники, математической логики и архитектуры вычислительных систем. Вторая часть посвящена различным аспектам программирования PIC-микроконтроллеров среднего уровня: описывается набор команд, рассматривается написание программ на ассемблере и языке высокого уровня (Си), а также поддержка подпрограмм и прерываний. В третьей части изучаются аппаратные аспекты взаимодействия микроконтроллера с окружающим миром и обработки прерываний. Рассматриваются такие вопросы, как параллельный и последовательный ввод/вывод данных, временные соотношения, обработка аналоговых сигналов и использование EEPROM. В заключение приводится пример разработки реального устройства. На этом примере также демонстрируются простейшие методики отладки и тестирования, применяемые при разработке реальных устройств.Книга рассчитана на самый широкий круг читателей — от любителей до инженеров, при этом для понимания содержащегося в ней материала вовсе не требуется каких-то специальных знаний в области программирования, электроники или цифровой схемотехники. Эта книга будет также полезна студентам, обучающимся по специальностям «Радиоэлектроника» и «Вычислительная техника», которые смогут использовать ее в качестве учебного пособия при прослушивании соответствующих курсов или выполнении курсовых проектов.

Сид Катцен

Радиоэлектроника

Похожие книги

Электроника для начинающих (2-е издание)
Электроника для начинающих (2-е издание)

В ходе практических экспериментов рассмотрены основы электроники и показано, как проектировать, отлаживать и изготавливать электронные устройства в домашних условиях. Материал излагается последовательно от простого к сложному, начиная с простых опытов с электрическим током и заканчивая созданием сложных устройств с использованием транзисторов и микроконтроллеров. Описаны основные законы электроники, а также принципы функционирования различных электронных компонентов. Показано, как изготовить охранную сигнализацию, елочные огни, электронные украшения, устройство преобразования звука, кодовый замок и др. Приведены пошаговые инструкции и более 500 наглядных рисунков и фотографий. Во втором издании существенно переработан текст книги, в экспериментах используются более доступные электронные компоненты, добавлены новые проекты, в том числе с контроллером Arduino.

Чарльз Платт

Радиоэлектроника / Технические науки
Электроника для начинающих
Электроника для начинающих

В ходе практических экспериментов рассмотрены основы электроники и показано, как проектировать, отлаживать и изготавливать электронные устройства в домашних условиях. Материал излагается последовательно от простого к сложному, начиная с простых опытов с электрическим током и заканчивая созданием сложных устройств с использованием транзисторов и микроконтроллеров. Описаны основные законы электроники, а также принципы функционирования различных электронных компонентов. Показано, как изготовить охранную сигнализацию для защиты от проникновения в дом, елочные огни, электронные украшения для одежды, устройство преобразования звука, кодовый замок, автономную роботизированную тележку и др. Приведены пошаговые инструкции и более 500 наглядных рисунков и фотографий.Для начинающих радиолюбителей

Паоло Аливерти , Чарльз Платт

Радиоэлектроника / Технические науки
Искусство схемотехники. Том 3 (Изд.4-е)
Искусство схемотехники. Том 3 (Изд.4-е)

Широко известная читателю по предыдущим изданиям монография известных американских специалистов посвящена быстро развивающимся областям электроники. В ней приведены наиболее интересные технические решения, а также анализируются ошибки разработчиков аппаратуры: внимание читателя сосредотачивается на тонких аспектах проектирования и применения электронных схем. На русском языке издается в трех томах. Том 3 содержит сведения о микропроцессорах, радиотехнических схемах, методах измерения и обработки сигналов, принципах конструирования аппаратуры и проектирования маломощных устройств, а также обширные приложения. Для специалистов в области электроники, автоматики, вычислительной техники, а также студентов соответствующих специальностей вузов и техникумов.

Пауль Хоровиц , Уинфилд Хилл

Техника / Радиоэлектроника