Ну разобраться все равно придется.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено BlackJack 14 февраля 2004 г. 12:45
В ответ на: Нужны Си исходники драйвера , инициализация и тд отправлено MWW 14 февраля 2004 г. 12:24

void InitLCD(void)
{ char i;
//RESET

PORTF|=(1< for(i=255; i!=0; i--) wait50;
PORTF&=~(1< for(i=255; i!=0; i--) wait50;
PORTF|=(1<DDRA=0xff;
LCDcommand(0x80,0x07,0x40);//text home
LCDcommand(0x10,0x00,0x41);//16 rcolumn
LCDcommand(0x00,0x00,0x42);//graph home
LCDcommand(0x10,0x00,0x43);//columns
LCDcommand(0x00,0x00,0x81);//exor mode
GoGrHome;
//LCDcommand(0x00,0x0f,0x24);
//GoGrHome;
LCDcommand(0x00,0x00,0x9c);

//90- off; 94 text on, gr off;98 text off gr on; 9c on-on;
}

void WaitLCDReady(void)
{ char StatusLCD;
PORTF&=~(1<PORTF|=(1<DDRA=0;
PORTA=0xff;
do {
PORTF&=~(1<StatusLCD=PINA&0x0b;//STA0,1,3
PORTF|=(1< while(!(StatusLCD));
DDRA=0xff;}

void LCDcommand(char LSdata, char MSdata, char Cmnd)
{
WaitLCDReady();
PORTF&=~((1<PORTA=LSdata;
PORTF&=~(1< PORTF|=(1<PORTF|=((1<//=============
WaitLCDReady();
PORTF&=~(1<PORTA=MSdata;
PORTF&=~(1<PORTF|=(1<PORTF|=((1<//=============
WaitLCDReady();
PORTF|=(1<PORTF&=~(1<PORTA=Cmnd;
PORTF&=~(1<PORTF|=(1<PORTF|=(1<//=============

}
void PutByteLCD(char LCDbyte)
{
WaitLCDReady();
PORTF&=~((1<PORTA=LCDbyte;
PORTF&=~(1< PORTF|=(1<PORTF|=((1<}
//-----------------------
void WriteFLine(void)
{ // отображает на экране строку из flash
AutoMode;
while (*CurrentF){
PutByteLCD((*CurrentF)-0x20);
CurrentF++;
};
AutoModeReset;
}
//===============================================


void ClrScr(void)
{char i;
//text mode
GoTextHome;
AutoMode;
for ( i=0; i<160;i++) { PutByteLCD(0);};
AutoModeReset;
}
void ClrScrG(void)
{char i;
LCDcommand(0x00,0x00,0x98);//graf mode
GoGrHome;
AutoMode;
for ( i=0; i<16*64;i++) { PutByteLCD(0);};
AutoModeReset;
LCDcommand(0x00,0x00,0x9c);
}
void ShowScr(__flash char Screen[])
{int i;
LCDcommand(0x00,0x00,0x98);//graf mode
GoGrHome;
AutoMode;
for ( i=0; i<16*64;i++) { PutByteLCD(Screen[i]);};
AutoModeReset;
}

void GotoRC( char r,char c)
{ char adrP;
adrP=0x80+r*0x10+c;
LCDcommand(adrP,0x07,0x24);
}
..-------------------------------

В текстовой моде.
ClrScr();
GotoRC(Chan_line,0); CurrentF=s2;WriteFLine();
if(CurLift.GoUp) LCDcommand(0x69,0x69,0xc0);
else LCDcommand(0x6a,0x6a,0xc0);


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru