Курс лекций - Микропроцессоры

Написание программы для разрабатываемого микропроцессорного устройства - часть 7


В результате подпрограмма реализации часов выглядит полностью как алгоритм. Для переключения счётчика часов используется команда проверки флага переноса C. Этот флаг устанавливается командой CJNE.

Счётчик часов реализуется точно таким же образом. Единственное отличие заключается в том, что в сутках двадцать четыре часа, поэтому счётчик часов будет обнуляться после достижения этого значения. Исходный текст подпрограмм увеличения содержимого счётчиков минут и часов тоже приведён на рисунке 9.23.

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

Учитывая, что изменение показаний часов при установке времени может происходить несколько раз в секунду, то выберем точку подключения блока индикации 50 мс, то есть подпрограмму индикации необходимо разместить внутри основного цикла программы.

Индикацию состояния часов легче всего произвести в составе отдельной подпрограммы. Это как уже говорилось ранее позволит разделить задачи и решать их независимо. На данный момент уже реализованы часы. Блок индикации может непосредственно обращаться к переменным часов для считывания хранящейся в них информации. Исходный текст основной программы с циклом, в котором производится вызов подпрограммы индикации, приведен на рисунке 9.24.

В этом исходном тексте не отображены подпрограммы инициализации таймера и реализации часов. Естественно, что эти программы никуда не делись, они не показаны для уменьшения размера рисунка.

Теперь можно заняться подпрограммой блока индикации. На принципиальной схеме часов не указано, что и на каком индикаторе должно отображаться. Зададимся, что на индикаторе, подключенном к порту P0, будут отображаться единицы минут. На индикаторе, подключенном к порту P1, будут отображаться десятки минут. На индикаторе, подключенном к порту P2, будут отображаться десятки минут.


- Начало -  - Назад -  - Вперед -