Mô tả

Đây là LCD ký tự 16×2 chữ trắng nền xanh dương có IC điều khiển HD44780 Super Twisted Nematic (STN) LCD.  Giao tiếp đơn giản với 4 bit hoặc 8 bit. Giao tiếp dễ dàng với các loại vi điều khiển và board Arduino, ATMEL AVR hoặc PIC.

Đặc điểm:

  • LCD STN độ tương phản cao 16×2
  • Chữ trắng nền xanh dương
  • Điện áp hoạt động: +5.0VDC
  • Đèn LED nền màu trắng
  • Ký tự 5×8 dot
  • IC điều khiển HD44780 hoặc tương đương
  • Giao tiếp 4 or 8 bit

Kích thước:

  • Module: 80.0×36.0x13.5mm
  • Viewing area: 66.0×16.0mm

Sơ đồ chân:

1:VSS

2:VDD5V

3:V0, 10K

4:RS

5:R/W

6:E

7~14:D0~D7.

15:A

16:K

Code

RS EQU P3.7;
RW EQU P3.6 ;
E EQU P3.5 ;

MOV P1,#00000001B ;
ACALL ENABLE;

MOV P1,#00111000B ;
ACALL ENABLE ;

MOV P1,#00001111B ;
ACALL ENABLE ;

MOV P1,#00000110B ;
ACALL ENABLE ;

MOV P1,#0C0H ;
ACALL ENABLE ;

MOV P1,#01000001B ;

SETB RS ;RS=1
CLR RW ;RW=0 ;
CLR E ;E=0 ;
ACALL DELAY ;
SETB E ;E=1 ;

AJMP $

ENABLE:
CLR RS ;
CLR RW
CLR E
ACALL DELAY
SETB E
RET

DELAY:
MOV P1,#0FFH ;
CLR RS
SETB RW
CLR E
NOP
SETB E
JB P1.7,DELAY ;
RET

END

DELAY,0C0H,A 41H。

SMC1602A(16*2)

—————————————————
|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 ]
=============================================================*/

#define LCM_RW  P2_0 //
#define LCM_RS  P2_1
#define LCM_E   P2_2
#define LCM_Data  P1
#define Busy    0x80 //

#i nclude

void WriteDataLCM(unsigned char WDLCM);
void WriteCommandLCM(unsigned char WCLCM,BuysC);
unsigned char ReadDataLCM(void);
unsigned char ReadStatusLCM(void);
void LCMInit(void);
void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData);
void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData);
void Delay5Ms(void);
void Delay400Ms(void);

unsigned char code uctech[] = {“uctech”};
unsigned char code net[] = {“uctech.icpcn.com”};

void main(void)
{
Delay400Ms(); // LCM
LCMInit(); //LCM
Delay5Ms(); //

DisplayListChar(0, 5, uctech);
DisplayListChar(0, 0, net);
ReadDataLCM();//
while(1);
}

//
void WriteDataLCM(unsigned char WDLCM)
{
ReadStatusLCM(); //
LCM_Data = WDLCM;
LCM_RS = 1;
LCM_RW = 0;
LCM_E = 0; //
LCM_E = 0; //
LCM_E = 1;
}

//
void WriteCommandLCM(unsigned char WCLCM,BuysC) //BuysC
{
if (BuysC) ReadStatusLCM(); //
LCM_Data = WCLCM;
LCM_RS = 0;
LCM_RW = 0;
LCM_E = 0;
LCM_E = 0;
LCM_E = 1;
}

//
unsigned char ReadDataLCM(void)
{
LCM_RS = 1;
LCM_RW = 1;
LCM_E = 0;
LCM_E = 0;
LCM_E = 1;
return(LCM_Data);
}

//
unsigned char ReadStatusLCM(void)
{
LCM_Data = 0xFF;
LCM_RS = 0;
LCM_RW = 1;
LCM_E = 0;
LCM_E = 0;
LCM_E = 1;
while (LCM_Data & Busy); //
return(LCM_Data);
}

void LCMInit(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); //
}

//
void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData)
{
Y &= 0x1;
X &= 0xF; // X 15,Y 1
if (Y) X |= 0x40; // +0x40;
X |= 0x80; //
WriteCommandLCM(X, 0); //
WriteDataLCM(DData);
}

//
void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData)
{
unsigned char ListLength;

ListLength = 0;
Y &= 0x1;
X &= 0xF; // X 15,Y 1
while (DData[ListLength]>0x20) //
{
if (X <= 0xF) //X 0xF
{
DisplayOneChar(X, Y, DData[ListLength]); //
ListLength++;
X++;
}
}
}

//5ms
void Delay5Ms(void)
{
unsigned int TempCyc = 5552;
while(TempCyc–);
}

//400ms
void Delay400Ms(void)
{
unsigned char TempCycA = 5;
unsigned int TempCycB;
while(TempCycA–)
{
TempCycB=7269;
while(TempCycB–);
};

Đánh giá

Chưa có đánh giá nào.

Hãy là người đầu tiên nhận xét “LCD 1602 Nền Xanh Dương Chữ Trắng 5V”

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

0907 465 262
0907 465 262