Читайте также:
|
|
Подпрограммы преобразования в двоично-десятичный код широко используется в микроконтроллерах при выводе данных на индикацию и в некоторых других приложениях. Микроконтроллеры семейства MCS-51 имеют CISC систему команд. Поэтому в состав команд включены и команды умножения mul и деления div, что несколько упрощает и ускоряет алгоритм преобразования в двоично-десятичный код. Один из возможных вариантов алгоритма преобразования однобайтового двоичного числа в упакованный двоично-десятичный формат (BCD) представлен на рис. 11.1.
Рис. 11.1. Упрощенный алгоритм преобразования в упакованный двоично-десятичный формат восьми разрядного числа с использованием команды деления.
Учитывая, что RISC контроллеры не имеют команд деления и умножения целесообразно рассмотреть и другой способ преобразования с использованием простой команды вычитания с заемом. Под заемом понимается формирование специального флага переноса CY, если результат отрицательный. Упрощенная схема алгоритма для преобразования двоичного числа в двоично-десятичный упакованный формат при условии что величина числа не превышает 255, использующего операцию вычитания, представлена на рис. 11.2.
Рис. 11.2. Упрощенный алгоритм преобразования в BCD формат с использованием команды вычитания
В этом алгоритме с целью упрощения не показаны команды по упаковке десятков и единиц в один регистр. Эти действия выполняются аналогично рис. 11.1.
В большинстве измерительных устройств, использующих микроконтроллеры вывод на индикацию возможен только в динамическом режиме, т. к. число внешних выходов микроконтроллера ограничено. Алгоритмы динамической индикации занимают основное время контроллера, а реализацию процедур подготовки данных для индикации можно реализовать лишь с использованием механизма прерывания. Рассмотрим этот вопрос подробнее. Микроконтроллеры серий MCS-51 имеют возможность осуществлять прерывания при появлении следующих четырех событий:
- переполнения таймера Т0;
- переполнения таймера Т1;
- появления низкого уровня или среза (программируется отдельным регистром) на входе ;
- появления низкого уровня или среза (программируется отдельным регистром) на входе ;
Выбор того или иного источника прерываний осуществляется с помощью специального регистра масок IE (Interrupt Enable), имеющего следующую структуру:
- появления низкого уровня или среза (программируется отдельным регистром) на входе ;
Назначение разрядов регистра IE представлено в табл. 11.1
Дата добавления: 2015-07-20; просмотров: 47 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Начальные адреса прерываний | | | Структура регистра IE |