Описание регистров для

Протокол MODBUS RTU/ASCII,

скорость порта 57600 ,

8N1,

адрес индикаторов на шине начинается со 120 по 132,

на 255 тоже отвечает.
При включении адрес индикатора загорается в правом верхнем окне, например A128 значит адрес 128.
Начало регистров MODBUS адрес 7F всего 8 регистров по 2 символа, где каждый бит занимает бит 7-мисегментного знакоместа.
Порядок расположения с лева на право: старший разряд, затем младший (см фото).

Таблица перекодировки из ASCII в 7-сегментный код для отображения на индикаторе :

uint8_t Decode7seg( uint8_t *Sym )
{
uint8_t S = *Sym;

switch( S )
{
    case '0' : S = 0x3F; break;
    case '1' : S = 0x06; break;
    case '2' : S = 0x5B; break;
    case '3' : S = 0x4F; break;
    case '4' : S = 0x66; break;
    case '5' : S = 0x6D; break;
    case '6' : S = 0x7D; break;
    case '7' : S = 0x07; break;
    case '8' : S = 0x7F; break;
    case '9' : S = 0x6F; break;
    case 'A' : S = 0x77; break;
    case 'B' : S = 0xFF; break;
    case 'C' : S = 0xFF; break;
    case 'D' : S = 0xFF; break;
    case 'E' : S = 0x79; break;
    case 'F' : S = 0x71; break;
    case 'r' : S = 0x50; break;
    case '?' : S = 0x53; break;
    case '-' : S = 0x40; break;
    case ' ' : S = 0x00; break;
    default : S = 0x53;
}

return S;

}

пример : нужно отобразить число 0075 в верхнем правом поле индикатора.
Пишем в регистр 7F значение 3F3F, в регистр 80 значение 076D.
Если нужна точка, то просто суммируем по логическому или с числом 80, точка всегда старший бит.
Пример нужно отобразить число 7.5 в верхнем правом поле индикатора.
Пишем в регистр 7F значение 0000, в регистр 80 значение 07ED (ED= 6D|80).