À¯¸® Å©±â
69.5*21.8*17.8
Ç¥ÁØ 16X2 LCD ¹®ÀÚ ¸ðµâ (¹é¶óÀÌÆ®/ºí·ç ½ºÅ©¸°)
1602 Ç¥ÁØ 16 ÇÉ ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÕ´Ï´Ù.
ÇÉ 1: vss´Â Áö»ó ÈûÀÔ´Ï´Ù
µÎ¹ø° ¹ß: vdd´Â 5V ±àÁ¤ÀûÀÎ ÈûÀ» ¿¬°áÇÕ´Ï´Ù
¼¼ ¹ø° ÇÉ: V0 ¾×Á¤ µð½ºÇ÷¹ÀÌÀÇ ´ëºñ Á¶Á¤ ´Ü¸»±âÀÔ´Ï´Ù. ´ëÁ¶´Â ±àÁ¤ÀûÀÎ ÈûÀÌ ¿¬°áµÉ ¶§ °¡Àå ¾àÇÏ, ÈûÀÌ Á¢ÁöµÉ ¶§ ´ëÁ¶´Â °¡Àå ³ô½À´Ï´Ù. ´ëºñ°¡ ³Ê¹« ³ôÀ¸¸é "°í ½ºÆÃ" À» »ý»êÇÕ´Ï´Ù. ±×°ÍÀ» »ç¿ëÇÒ ¶§, ´ç½ÅÀº 10K potentiometer Â÷°è¸¦ ÅëÇؼ ´ëºñ¸¦ Á¶Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
Pin 4: rs´Â ±â·Ï±â ¼±ÅÃÀÌ°í, °íµµ ¶§ ÀÚ·á ±â·Ï±â¸¦, ¼±Á¤ÇÕ´Ï´Ù Àú¼öÁØ ¶§ Áö½Ã ±â·Ï±â¸¦ ¼±Á¤ÇÕ´Ï´Ù.
ÇÉ 5: R/w´Â ÀÐ±â ¹× ¾²±â ½ÅÈ£ ¶óÀÎ, ³ôÀº ¼öÁØ¿¡¼ ÀÛ¾÷À» ÀÐ°í ³·Àº ¼öÁØ¿¡¼ ÀÛ¾÷À» ÀÛ¼ºÇÕ´Ï´Ù. Rs¿Í rw°¡ Àú¼öÁØ µÑ ´Ù ÀÏ ¶§, ´ç½ÅÀº Áö½Ã¸¦ ¾²°Å³ª ÁÖ¼Ò¸¦ Ç¥½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù. Rs°¡ ³·Àº ¼öÁØÀÌ°í rw°¡ °í¼öÁØ ÀÏ ¶§, ´ç½ÅÀº ¹Ù»Û ½ÅÈ£¸¦ ÀÐÀ» ¼ö ÀÖ½À´Ï´Ù. Rs°¡ ³ôÀº ¼öÁØÀÌ°í rw°¡ ³·Àº ¼öÁØÀÏ ¶§, ´ç½ÅÀº ÀڷḦ ¾µ ¼ö ÀÖ½À´Ï´Ù.
ÇÉ 6: ³¡ e´Â °¡´ÉÇÏ°Ô ÇÏ´Â ³¡ÀÔ´Ï´Ù. ³¡ e°¡ °í¼öÁØ¿¡¼ Àú¼öÁØ¿¡ º¯ÈÇÒ ¶§, LCD ´ÜÀ§´Â ¸í·ÉÀ» ½ÇÇàÇÕ´Ï´Ù.
ÇÉ 7 ~ 14: d7¿¡ D0 8 ºñÆ® ¾ç¹æÇâ µ¥ÀÌÅÍ ¶óÀÎÀÔ´Ï´Ù.
ÇÉ 15: ±àÁ¤ÀûÀÎ ¿ª±¤¼± Àü·Â °ø±Þ
ÇÉ 16: ¿ª±¤¼± Àü·Â °ø±ÞÀÇ ºÎÁ¤ÀûÀÎ Æú¶õµå
1602 ij¸¯ÅÍ ¼¼´ë ¸Þ¸ð¸® (CGROM) ¾×Á¤ ¸ðµâ ÀúÀå 160 ´Ù¸¥ µµÆ® ¸ÅÆ®¸¯½º ij¸¯ÅÍ ÆÐÅÏ °°ÀÌ Å×À̺í 1 ÀÌ·¯ÇÑ Ä³¸¯ÅÍ Æ÷ÇÔ ¾Æ¶ø¾î ¼ýÀÚ, ¿µ¾î ¹®ÀÚ, ÀϹÝÀûÀ¸·Î »ç¿ëµÇ´Â ±âÈ£ ¹× ÀϺ»¾î °¡³ª µîÀÇ ´ë¹®ÀÚ, °¢ ¹®ÀÚ´Â °íÁ¤ Äڵ尡 ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î ´ë¹®ÀÚ ¿µ¹®ÀÚ "A" ÀÇ ÄÚµå´Â 01000001B (41H) ÀÔ´Ï´Ù. ¶§ Ç¥½Ã, ¸ðµâ µð½ºÇ÷¹ÀÌ µµÆ® ¸ÅÆ®¸¯½º ij¸¯ÅÍ ÁÖ¼Ò 41H, ¿ì¸®´Â ÆíÁö "".
´ÙÀ½Àº LCD ¸ðµâÀÇ µÎ ¹ø° ¶óÀο¡ ù ¹ø° ij¸¯ÅÍÀÇ À§Ä¡¿¡¼ "A" ÆíÁö¸¦ Ç¥½ÃÇÏ´Â ÇÁ·Î±×·¥ÀÔ´Ï´Ù: ORG 0000H
RS EQU P3.7; ƯÁ¤ Çϵå¿þ¾îÀÇ ¿¬°á ¹æ¹ýÀ» °áÁ¤
RW ÁÖ P3.6; ƯÁ¤ Çϵå¿þ¾îÀÇ ¿¬°á ¹æ¹ýÀ» °áÁ¤
E EQU P3.5; ƯÁ¤ÇÑ ±â°è¼³ºñÀÇ ¿¬°á ¹æ¹ýÀ» °áÁ¤ÇϽʽÿÀ
MOV P1,# 00000001B; ȸéÀ» Áö¿ì°í Ä¿¼¸¦ Àç¼³Á¤ÇϽʽÿÀ.
ACALL »ç¿ë; ¾²±â ¸í·É subroutine È£Ãâ
MOV P1,# 00111000B; µð½ºÇ÷¹ÀÌ ¸ðµå ¼³Á¤: 8 ÀÚ¸®, 2 ¶óÀÎ, 5x7 µµÆ® ¸ÅÆ®¸¯½º
ACALL »ç¿ë; ¾²±â ¸í·É subroutine È£Ãâ
MOV P1,# 00001111B; µð½ºÇ÷¹ÀÌ°¡ ÄÑÁ® ÀÖÀ¸¸ç Ä¿¼°¡ ÄÑÁ® ÀÖÀ¸¸ç Ä¿¼´Â ±ô¹ÚÀÓÀÌ Çã¿ëµË´Ï´Ù.
ACALL »ç¿ë; ¾²±â ¸í·É subroutine È£Ãâ
MOV P1,# 00000110B; ÅؽºÆ®´Â ¿òÁ÷ÀÌÁö ¾ÊÀ¸¸ç Ä¿¼°¡ ÀÚµ¿À¸·Î ¿À¸¥ÂÊÀ¸·Î ¿òÁ÷ÀÔ´Ï´Ù.
ACALL »ç¿ë; ¾²±â ¸í·É subroutine È£Ãâ
MOV P1,# 0C0H; µð½ºÇ÷¹ÀÌ ½ÃÀÛ ÁÖ¼Ò ¾²±â (µÎ ¹ø° ¶óÀÎÀÇ Ã¹ ¹ø° À§Ä¡)
ACALL »ç¿ë; ¾²±â ¸í·É subroutine È£Ãâ
MOV P1, # 01000001B; ¹®ÀÚ A ÄÚµå
SETB RS; RS = 1
CLR RW; RW = 0; µ¥ÀÌÅ͸¦ ¾µ Áغñ°¡µÇ¾ú½À´Ï´Ù.
CLR E; E = 0; µð½ºÇ÷¹ÀÌ ¸í·ÉÀ» ½ÇÇà
ACALL Áö¿¬; LCD ¸ðµâÀÌ ¹Ù»Ú´ÂÁö ¿©ºÎ¸¦ °áÁ¤Çմϱî?
SETB E; E = 1; µð½ºÇ÷¹ÀÌ ¿Ï·á, ÇÁ·Î±×·¥ ÁßÁö
AJMP $
»ç¿ë:
CLR RS; ¾²±â ÅëÁ¦ ¸í·ÉÀ» À§ÇÑ subroutine
CLR RW
CLR E
ACALL Áö¿¬
SETB E
RET
Áö¿¬:
MOV P1,# 0FFH; Lcd°¡ ¹Ù»Ú´Ù´Â °ÍÀ» ÆÇ´ÜÇÏ´Â subroutine
CLR RS
SETB RW
CLR E
NOP
SETB E
JB P1.7, Áö¿¬; P1.7 °¡ ³ôÀ¸¸é ¹Ù»Û °ÍÀ» ÀǹÌÇÏ¸ç ·çÇÁ¿¡¼ ±â´Ù¸³´Ï´Ù.
RET
¿£µå
½ÃÀÛ ÇÁ·Î±×·¥ÀÇ LCD ¸ðµâ ±â´ÉÀº ÃʱâÈ µð½ºÇ÷¹ÀÌ Çü½ÄÀº º°µµÀÇ. Ä¿¼°¡ ¼öµ¿ °³ÀÔ¾øÀÌ ¹®ÀÚ¸¦ Ç¥½Ã ÇÒ ¶§ ÀÚµ¿À¸·Î ¿À¸¥ÂÊÀ¸·Î À̵¿ÇÕ´Ï´Ù. ´ç½ÅÀÌ Áö½Ã¸¦ ÀÔ·ÂÇÒ ¶§¸¶´Ù, ´ç½ÅÀº ¸ÕÀú LCD ´ÜÀ§°¡ ¹Ù»Ú´Ù´Â °ÍÀ» °áÁ¤Çϱâ À§ÇÏ¿© subroutine Áö¿¬À» ºÎ¸£°í, ±× ÈÄ¿¡ Àü½Ã À§Ä¡ 0c0hÀÇ ÁÖ¼Ò¸¦ µé¾î°©´Ï´Ù, ¸¶Áö¸·À¸·Î ÀÔ·Â ÄÚµå 41H ¹®ÀÚ A Ç¥½ÃµË´Ï´Ù.
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 ¼öÁ¤ ¹ßÁø±â]
================================================== =========== */
# Á¤ÀÇ LCM_RW P2_0/Á¤ÀÇ ÇÉ
# Define LCM_RS P2_1
# Define LCM_E P2_2
# Define LCM_Data P1
# Define ¹Ù»Û 0x80 //LCM »óÅ ´Ü¾î¿¡ ÀÖ´Â ¹Ù»Û ·Î°í¸¦ °ËÃâÇϱâ À§ÇÏ¿© »ç¿ëÇÏ´Â
# I nclude
Void WriteDataLCM(unsigned char WDLCM);
Void WriteCommandLCM(unsigned char WCLCM,BuysC);
Unsigned char ReadDataLCM (¹«È¿);
Unsigned char ReadStatusLCM (¹«È¿);
Void LCMInit (¹«È¿);
Void DisplayOneChar (¼¸íµÇÁö ¾ÊÀº char X, unsigned char Y, unsigned char DData);
Void DisplayListChar (¼¸íµÇÁö ¾ÊÀº char X, unsigned char Y, unsigned char code * DData);
Void Delay5Ms (¹«È¿);
Void Delay400Ms (¹«È¿);
Unsigned char code uctech[] = {"uctech"};
Unsigned char code net[] = {"uctech.icpcn.com"};
Void main (¹«È¿)
{
Delay400Ms(); /±â´Ù¸®´Â ½ÃÀÛ, LCM ÀÏ ±¹°¡¿¡ À̾߱âÇϱâ À§ÇÏ¿© ±â´Ù¸³´Ï´Ù
LCMInit(); /LCM ÃʱâÈ
Delay5Ms(); /Àá½Ã µ¿¾È Áö¿¬ (¼±ÅÃ)
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(unsigned char WCLCM,BuysC) /buysc°¡ 0 ÀÏ ¶§ ¹Ù»Û ŽÁö¸¦ ¹«½ÃÇÕ´Ï´Ù.
{
¸¸¾à¿¡ (BuysC) ReadStatusLCM(); /ÇÊ¿ä¿¡ µû¶ó ¹Ù»Û °ËÃâÇϽʽÿÀ
LCM_Data = WCLCM;
LCM_RS = 0;
LCM_RW = 0;
LCM_E = 0;
LCM_E = 0;
LCM_E = 1;
}
// Àб⠵¥ÀÌÅÍ
Unsigned char ReadDataLCM (¹«È¿)
{
LCM_RS = 1;
LCM_RW = 1;
LCM_E = 0;
LCM_E = 0;
LCM_E = 1;
¹Ýȯ (LCM_Data);
}
// Àб⠻óÅÂ
Unsigned char ReadStatusLCM (¹«È¿)
{
LCM_Data = 0xFF;
LCM_RS = 0;
LCM_RW = 1;
LCM_E = 0;
LCM_E = 0;
LCM_E = 1;
(LCM_Data & ¹Ù»Û) µ¿¾È;/¹Ù»Û ½ÅÈ£¸¦ °ËÃâÇϽʽÿÀ
¹Ýȯ (LCM_Data);
}
Void LCMInit(void) /LCM ÃʱâÈ
{
LCM_Data = 0;
WriteCommandLCM(0x38,0); /3°³ÀÇ Àü½Ã ÇüÅ Á¶Á¤, ¹Ù»Û ½ÅÈ£°¡ °ËÃâµÇÁö ¾Ê½À´Ï´Ù
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 (¼¸íµÇÁö ¾ÊÀº char X, unsigned char Y, unsigned char DData)
{
Y & = 0x1;
X & = 0xF; //Á¦ÇÑ x´Â 15, yº¸´Ù Å« ¼ö ¾ø½À´Ï´Ù 1
¸¸¾à¿¡ (Y) X = 0x40; //µÎ¹ø° ¼±ÀÌ Ç¥½ÃµÉ ¶§, ÁÖ¼Ò ºÎÈ£ + 0x40;
X = 0x80; //¸í·É Äڵ带 °è»ê
WriteCommandLCM(X, 0); /¿©±â¿¡ ¹Ù»Û ½ÅÈ£¸¦ °¨ÁöÇÏÁö ¸¶½Ê½Ã¿À, ÁÖ¼Ò Äڵ带 º¸³»
WriteDataLCM(DData);
}
/ÁöÁ¤µÈ À§Ä¡¿¡ µû¶ó ¹®ÀÚÀÇ ¹®ÀÚ¿À» Ç¥½Ã
Void DisplayListChar (¼¸íµÇÁö ¾ÊÀº char X, unsigned char Y, unsigned char code * DData)
{
Unsigned char ListLength;
ListLength = 0;
Y & = 0x1;
X & = 0xF; //Á¦ÇÑ x´Â 15, yº¸´Ù Å« ¼ö ¾ø½À´Ï´Ù 1
(DData[ListLength]>0x20) µ¿¾È/¹®ÀÚ¿ÀÌ ³¡³ª¸é Á¾·á
{
If (X <= 0xF) /X ÁÂÇ¥´Â 0xF ¹Ì¸¸À̾î¾ßÇÕ´Ï´Ù.
{
DisplayOneChar(X, Y, DData[ListLength]); /´ÜÀÏ ¹®ÀÚ¸¦ Ç¥½Ã
ListLength ++;
X ++;
}
}
}
// 5ms Áö¿¬
Void Delay5Ms (¹«È¿)
{
Unsigned int TempCyc = 5552;
µ¿¾È (TempCyc --);
}
// 400ms Áö¿¬
Void Delay400Ms (¹«È¿)
{
Unsigned char TempCycA = 5;
Unsigned int TempCycB;
µ¿¾È (TempCycA --)
{
TempCycB = 7269;
µ¿¾È (TempCycB --);
};
À§ÀÇ ÀýÂ÷´Â ÂüÁ¶ ¿ëÀÔ´Ï´Ù!!
ÅÛÇø´ º¸È£ ÄÚµå 20190712![](https://ae01.alicdn.com/kf/H9b1b46035995486eafd00192e383e6f44.jpg)