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


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


Исходный текст программы с вызовом подпрограммы блока индикации.

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

;******************************************************************** ;Подпрограмма блока индикации ;******************************************************************** Indic: Mov A,MIN ;Считать содержимое счётчика минут AnL A,#0Fh ;Выделить младшую тетраду Call Decod ;Преобразовать её в семисегментный код Mov P1,A ;и передать через порт P1 на индикатор Mov A,MIN ;Считать содержимое счётчика минут SWAP A ;Выделить AnL A,#0Fh ;старшую тетраду Call Decod ;Преобразовать её в семисегментный код Mov P2,A ;и передать через порт P2 на индикатор Mov A,Chas ;Считать содержимое счётчика часов AnL A,#0Fh ;Выделить младшую тетраду Call Decod ;Преобразовать её в семисегментный код Mov P0,A ;и передать через порт P0 на индикатор Mov A,Chas ;Считать содержимое счётчика часов SWAP A ;Выделить AnL A,#0Fh ;старшую тетраду Call Decod ;Преобразовать её в семисегментный код Mov P3,A ;и передать через порт P3 на индикатор ret

Рисунок 9.25. Исходный текст подпрограммы индикации.

Старшая тетрада счётчика выделяется аналогичным образом. Отличие заключается в том, что перед логическим умножением старшая и младшая тетрады меняются местами при помощи команды SWAP.

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

Рассмотрим подпрограмму преобразования двоично-десятичного кода в семисегментный. Исходный текст программы подпрограммы декодирования  двоично-десятичного числа приведен на рисунке 9.26. Декодирование осуществляется за счёт таблицы перекодировки. Количество строк в таблице соответствует количеству комбинаций двоично-десятичного кода, то есть равно десяти. Нули и единицы в получаемом коде определяются свечением сегментов светодиодного индикатора.




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