Вот пример сишного кода инициализации (MSP430F449) для использования выходов сегментов LCD в качестве _ВЫХОДОВ_ (на вход это дело работать не может В ПРИНЦИПЕ).
Каждый БАЙТ управляет двумя выходами. Их названия в соответствующих комментариях в строках, т.е. бит 0 байта LCD[x] управляет выходом SEG(yy), бит 4 байта LCD[x] управляет выходом SEG(zz) и т.д. Реальное соответствие бит и выходов найдете в документации. Для простоты я включал не бит, а сразу тетраду (0x0f или 0xf0) мне так было проще и нагляднее.
Код
//************************************************************************
// LCD Module as OUTPUT Port
//
//************************************************************************
// initialize LCD driver (output mode) //
LCDCTL = 0x05; //static LCD, segments = 0 - 23
BTCTL = BTHOLD+BTDIV+BTFRFQ1+BTFRFQ0; // BTCTL;set fLCD = ACLK / 256 BTFRFQ1
/* Setup LCD memory to initialize outputs */
// HIGH | LOW nibbles
LCD [1] = 0x00; // Unused
LCD [2] = 0x0F; // Unused | 2_5V_ON
LCD [3] = 0x0F; // Unused | 3_3V_ON
LCD [4] = 0x0F; // Unused | PWR_ON
LCD [5] = 0xF0; // RSTDRVn | Unused
LCD [6] = 0x0F; // Unused | KBO_0
LCD [7] = 0xFF; // KBO_2 | KBO_1
LCD [8] = 0xFF; // KBO_4 | KBO_3
LCD [9] = 0xFF; // KBO_6 | KBO_5
LCD [10] = 0xFF; // KBO_8 | KBO_7
LCD [11] = 0xFF; // KBO_10 | KBO_9
LCD [12] = 0xFF; // SYS2_OFFn| KBO_11
LCD [13] = 0xFF; // ADD2_CSn | SYS1_OFFn
LCD [14] = 0x0F; // EN_485(232n) | ADD2_CSn
LCD [15] = 0x0F; // FL_WP# |485TX/RXn
LCD [16] = 0x00; // Unused | Unused
САМОЕ ГЛАВНОЕ !!!
Выходной ток по выходам ЖКИ _ОЧЕНЬ_ маленький, пару десятков микроампер!
Поэтому максимальная нагрузка на уровне 100 кОм, не менее. И соответственно быстродействие выходов очень маленькое (до микросекунды - зависит от емкости подключенного входа).
Но например включить биполярный супер-бета транзистор вполне можно. Входы N-MOS полевиков или CMOS микросхем работают без проблем.Проверено.