Устройство блока мультиплексора-преобразователя.
Мультиплексирование каналов нужно для более рационального использования памяти программ контроллера.
В этом блоке происходит преобразование кода АЦП в температуру и линеаризация показаний каналов. Если не использовать мультиплексор, то потребуется в три раза бо'льший объем памяти программ, т.к. преобразование кода АЦП в температуру производится по таблице, которая "отъедает" значительный объем памяти.
На счетчике и мультиплексоре построен последовательный сканер. Счетчик тактируется от внутреннего цикла контроллера (напомню, что цикл контроллера переменный и в любой момент времени цикл не может быть определен). Тактирование от внутреннего цикла имеет преимущество над тактированием от внешнего генератора: сканирование будет происходить с максимально возможной скоростью в каждый момент исполнения программы.
Далее сигнал со сканера подается на блок линеаризации в котором происходит преобразование кода АЦП в температуру.
Для оптимизации нагрузки на ЦПУ контроллера выбран "щадящий" тип данных выхода - знаковый два байта целый.
Для минимизации потерь значащих данных значения в таблицу заносились с множителем 100 (об этом есть статья на сайте).
С выхода блока линеаризации значение температуры одновременно подается на входы трех триггеров, выполненных на переменных temp1 - temp3.
Сигнал разрешения записи в триггеры формируется магистральным дешифратором, выполненным на основе демультиплексора с логическим типом данных. Дешифратор синхронизирован с мультиплексором каналов.
Аналогичным образом построены каналы определения обрыва / замыкания температурных датчиков.