PDA

Просмотр полной версии : Библиотека на С для индикатора TIC8148



Ivan_007
07.09.2009, 20:41
Hello All!!!

Помогите пожалуйста с примером программы на С для индикатора TIC8148, или библиотекой для него. Заранее благодарен.

С уважением!!! Иван, US5MPT.

EU1ME
07.09.2009, 21:01
Разбирайтесь, это для перевернутого 8148 (вверх тормашками)


xdata unsigned char LCD_buffer[11];
xdata unsigned char BCD_buffer[9];
xdata unsigned char LCD_Dots, LCD_Modes;


char code FontLookup[11] =
{
0x7B, // 0
0x0A, // 1
0x37, // 2
0x1F, // 3
0x4E, // 4
0x5D, // 5
0x7D, // 6
0x4B, // 7
0x7F, // 8
0x5F, // 9
0x00, // 10 blank
};
/*

0x75, // E
0x65, // F
0x60, // I
0x70, // L
0x74, // t
0x7A; // V
0x7B; // 0
*/


void bcd2font (void)
{
char i;
for ( i = 0; i < 8; i++)
{
BCD_buffer[i] = FontLookup[BCD_buffer[i]];
}
}


void conver2LCD (void)
{
LCD_buffer[0] = ( BCD_buffer[0] ) | (LCD_Modes << 7);
LCD_buffer[1] = ( BCD_buffer[1] << 1 )| (LCD_Dots & 0x01);
LCD_buffer[2] = ( BCD_buffer[2] << 2 )| (LCD_Dots & 0x02) | ((LCD_Modes & 0x02) >> 1);
LCD_buffer[3] = ( BCD_buffer[3] << 3 )| (LCD_Dots & 0x04) | ((LCD_Modes & 0x04) >> 1) | (BCD_buffer[2] >> 6);
LCD_buffer[4] = ( BCD_buffer[4] << 4 )| (LCD_Dots & 0x08) | ((LCD_Modes & 0x08) >> 1) | (BCD_buffer[3] >> 5);
LCD_buffer[5] = ( BCD_buffer[5] << 5 )| (LCD_Dots & 0x10) | ((LCD_Modes & 0x10) >> 1) | (BCD_buffer[4] >> 4);
LCD_buffer[6] = ( BCD_buffer[6] << 6 )| (LCD_Dots & 0x20) | ((LCD_Modes & 0x20) >> 1) | (BCD_buffer[5] >> 3);
LCD_buffer[7] = ( BCD_buffer[7] << 7 )| (LCD_Dots & 0x40) | ((LCD_Modes & 0x40) >> 1) | (BCD_buffer[6] >> 2);
LCD_buffer[8] = (LCD_Dots & 0x80) | ((LCD_Modes & 0x80) >> 1) | (BCD_buffer[7] >> 1);

}


void display (void)
{
P4 = 0xFE; ///FE
small_delay(20);
Send_SPI (0x00);
Send_SPI (LCD_buffer[8]);
Send_SPI (LCD_buffer[7]);
Send_SPI (LCD_buffer[6]);
Send_SPI (LCD_buffer[5]);
Send_SPI (LCD_buffer[4]);
Send_SPI (LCD_buffer[3]);
Send_SPI (LCD_buffer[2]);
Send_SPI (LCD_buffer[1]);
Send_SPI_END (LCD_buffer[0]);
P4 = 0xFF;
small_delay(20);
P4 = 0xFE;
}

Ivan_007
07.09.2009, 21:06
Спасибо!!!
Буду разбираться.

Володимир
30.11.2011, 18:28
Здравствуйте!! Вопрос как бы по теме. Но не совсем. Суть в том, что приобрел я макеевский LCF (http://www.rv3yf.ru/index.php?option=com _content&view=article&id=63:-lcf-&catid=6:2009-01-09-16-36-38&Itemid=13) метр. Работал нормально для своего класса. Но как то обнаружил, что трещина на индикаторе. И показания пропадают. Купил аналогичный индикатор (TIC 8148). Перепаял (заменил). Но индикатор не отображает НОРМАЛЬНО инфо. Цифры появляются и пропадают. В чем причина?