|
void InitLCD(void)
{ char i;
//RESETPORTF|=(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