ЖК-монитор с новым символом, 1602, 1602, 5 В, с синим экраном, для ARDUINO
Следующие данные только для справки:
---------------------------------------------------| LCM-----51 | LCM-----51 | LCM------51 |------------------------------------------------ || DB0-----P1.0 | DB4-----P1.4 | RW-------P2.0 || DB1-----P1.1 | DB5-----P1.5 | RS-------P2.1 || DB2-----P1.2 | DB6-----P1.6 | E--------P2.2 || DB3-----P1.3 | DB7-----P1.7 | VLCD 1K GND |---------------------------------------------------
[AT89S52 12M============================================================= */
# Определить LCM_RW P2_0 //# Определить LCM_RS P2_1# Определить LCM_E P2_2# Определить LCM_Data P1# Определить занят 0x80 // LCM занят
Я ключа
Void WriteDataLCM (неподписанный char WDLCM);Void WriteCommandLCM (неподписанный char WCLCM,BuysC);Неподписанный char ReadDataLCM (аннулированный);Неподписанный знак ReadStatusLCM(void);Аннулированный lcnah (аннулированный);Аннулированный DisplayOneChar (неподписанный char X, неподписанный char Y, неподписанный char DData);Аннулированный DisplayListChar (неподписанный char X, неподписанный char Y, неподписанный код char * DData);Пустота Delay5Ms (пустота);Пустота Delay400Ms (пустота);
Неподписанный код char uctech[] = {"uctech"};Неподписанный код char net[] = {"uctech.icpcn.com"};
Аннулированный главный (аннулированный){Delay400Ms(); // LCMLcлюбит (); // LCMDelay5Ms(); //
DisplayListChar(0, 5, uctech);DisplayListChar(0, 0, нетто);ReadDataLCM();//Пока (1);}
//Void WriteDataLCM (неподписанный char WDLCM){ReadStatusLCM(); //LCM_Data = WDLCM;LCM_RS = 1;LCM_RW = 0;LCM_E = 0; //LCM_E = 0; //LCM_E = 1;}
//Void WriteCommandLCM (неподписанный char WCLCM,BuysC) // BuysC{Если (BuysC) ReadStatusLCM(); //LCM_Data = WCLCM;LCM_RS = 0;LCM_RW = 0;LCM_E = 0;LCM_E = 0;LCM_E = 1;}
//Неподписанный считыватель сигнала cm (аннулирован){LCM_RS = 1;LCM_RW = 1;LCM_E = 0;LCM_E = 0;LCM_E = 1;Возврат (LCM_Data);}
//Неподписанный считыватель считывателя LCM (аннулированный){LCM_Data = 0xFF;LCM_RS = 0;LCM_RW = 1;LCM_E = 0;LCM_E = 0;LCM_E = 1;Пока (LCM_Data & Busy); //Возврат (LCM_Data);}
Анти-лимит (void) // LCM{LCM_Data = 0;WriteCommandLCM(0x38,0); //Delay5Ms();WriteCommandLCM(0x38,0);Delay5Ms();WriteCommandLCM(0x38,0);Delay5Ms();
WriteCommandLCM(0x38,1); //WriteCommandLCM(0x08,1); //WriteCommandLCM(0x01,1); //WriteCommandLCM(0x06,1); //WriteCommandLCM(0x0C,1); //}
//Аннулированный DisplayOneChar (неподписанный char X, неподписанный char Y, неподписанный char DData){Y & = 0x1;X & = 0xF; //Если (Y) X | = 0x40; // + 0x40;X | = 0x80; //WriteCommandLCM (х, 0); /WriteDataLCM(DData);}
Аннулированный DisplayListChar (неподписанный char X, неподписанный char Y, неподписанный код char * DData){Неподписанный char ListLength;
Длина списка = 0;Y & = 0x1;X & = 0xF; //При этом (DData[ListLength]>0x20) //{If (X <= 0xF) // X0xF{DisplayOneChar(X, Y, DData [длина списка]); //Листдлина ++;X ++;}}}
// 5 мсАннулированная Delay5Ms (аннулированная){Неподписанный int TempCyc = 5552;Пока (темпцик --);}
// 400 мсПропускная способность 400 мс (пропускная способность){Неподписанный char TempCycA = 5;Неподписанный int TempCycB;Пока (TempCycA --){Темпциcb = 7269;Пока (TempCycB --);};