¸¶ÇÏÀüÀÚ±â¼ú¿¬±¸¼Ò LOGO

Á¦Ç°°Ë»ö °í°´¼¾ÅÍ053-604-2355
±â¼úÀÚ·á½Ç

Home > ±â¼úÀÚ·á½Ç ±â¼úÀÚ·á½Ç

Á¦ ¸ñ 3. ¾×Á¤ Ç¥½Ã±â¿ë C¾ð¾î ¶óÀ̺귯¸®
÷ºÎÆÄÀÏ


PIC16F87x¿ë ¾×Á¤ Ç¥½Ã±â C¶óÀ̺귯¸®

¡¼°³¿ä¡½

PIC16F87x ½Ã¸®Áî¿¡ ¾×Á¤ Ç¥½Ã±â¸¦ Á¢¼ÓÇØ, C¾ð¾î·Î ÀÌ°ÍÀ» Ãë±ÞÇÏ´Â °æ¿ì¿¡ ÇÊ¿ä
µÇ´Â, ¾×Á¤ Ç¥½Ã±â Á¦¾î ¶óÀ̺귯¸®ÀÇ ¼³¸íÀÔ´Ï´Ù.

¿©±â¼­ Ãë±ÞÇÏ´Â ¾×Á¤ Ç¥½Ã±â´Â SEIKOÁ¦ÀÇ¡¡SC1602BSLB¡¡Àΰ¡¡¡SC1602BS*BÀÔ´Ï´Ù.
Àß »ç¿ëµÇ´Â ½Ã¸®Áî·Î, 16 ¹®ÀÚ¡¿2ÇàÀÇ ¿µ¼ýÀÚ, °¡³ª ¹®ÀÚ¸¦ Ç¥½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù.
¼Òºñ Àü·ùµµ ¸Å¿ì Àû±â ¶§¹®¿¡(´Ù¸¸ ¹é ¶óÀÌÆ® ¾øÀ½) PICÀÇ Ç¥½Ã±â·Î¼­´Â
¾È¼º¸ÂÃãÀÇ °ÍÀÔ´Ï´Ù.

»ó¼¼ÇÑ °Í¿¡ ´ëÇÏ¿©´Â,º°ÆäÀÌÁö¡¡(À»)¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä.


¡¼Á¦¾î ȸ·Î¡½

¿©±â¼­ ¼Ò°³ÇÏ´Â ¾×Á¤ Ç¥½Ã±â¿Í PIC¿ÍÀÇ Á¢¼Ó ȸ·Î´Â ¹Ø±×¸²À¸·Î ÇÕ´Ï´Ù. ¹Ø±×¸²¿¡¼­´Â ¿©ºÐ
ȸ·Î¸¦ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù¸¸, D2ÀÇ ¾×Á¤ Ç¥½Ã±â¿Í PIC¶õ, Æ÷Åä D¸¦ ÅëÇØ Á¢¼Ó
ÇÏ°í ÀÖ½À´Ï´Ù.
ÀÌ¿ÜÀÇ Á¢¼ÓÀÇ °æ¿ì¿¡´Â, ÇÁ·Î±×·¥Áß¿¡¼­ ÇÉÀÇ ÁöÁ¤ º¯°æÀÌ ÇÊ¿äÇÕ´Ï´Ù.



¡¼Á¦¾î ¶óÀ̺귯¸®¡½

¾×Á¤ Ç¥½Ã±â Á¦¾î¿ë ¶óÀ̺귯¸®(lcd_lib.c)¿¡´Â, ¾Æ·¡¿Í °°Àº ÇÔ¼ö¸¦ Æ÷ÇÔÇÏ°í ÀÖ½À´Ï´Ù.

(1) ÃʱâÈ­ ÇÔ¼ö lcd_init()
¡¡¡¡¡¡PICÀÇ Àü¿ø ÅõÀÔ ÈÄ¿¡ ½ÇÇàÇØ¾ß ÇÒ ÃʱâÈ­ÀÇ ÇÔ¼öÀÔ´Ï´Ù. ÆĶó¹ÌÅÍ´Â ÀÖ¾î
¡¡¡¡¡¡¼±.
(2) Ä¿¸àµå Ãâ·Â ÇÔ¼ö lcd_cmd(cmd)
¡¡¡¡¡¡¾×Á¤ Ç¥½Ã±âÀÇ Á¦¾î¸¦ ÇàÇϱâ À§ÇÑ 1¹ÙÀÌÆ®ÀÇ Ä¿¸àµå¸¦ Ãâ·ÂÇÏ´Â ÇÔ¼ö
¡¡¡¡¡¡ÆĶó¹ÌÅͷμ­ ¾Æ·¡¿Í °°ÀÌ Á¦¾î Ä¿¸àµå¸¦ »ç¿ëÇÕ´Ï´Ù.

¡¼Control CommandÀÇ À϶÷Ç¥¡½
¡¡Commnad¡¡¡¡¡¡¡¡¡¡DB7¡¡6¡¡5¡¡4¡¡3¡¡2¡¡1¡¡0¡¡¡¡¡¡¡¡¼³¸í¡¡¡¡¡¡
Clear Display ¡¡ ¡¡¡¡0¡¡0¡¡0¡¡0¡¡0¡¡0¡¡0¡¡1¡¡¡¡Àü¼Ò°Å, Cursor´Â Home¿¡
Cursor At Home¡¡¡¡ ¡¡0¡¡0¡¡0¡¡0¡¡0¡¡0¡¡1¡¡*¡¡¡¡Ç¥½Ã ³»¿ëÀº º¯È­ ¾øÀ½.
Entry Mode Set¡¡¡¡¡¡ 0¡¡0¡¡0¡¡0¡¡0¡¡1¡¡I/D S¡¡¡¡I/D=Increment/Decrement
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ S=With Display Shift
Display On/Off ¡¡¡¡¡¡0¡¡0¡¡0¡¡0¡¡1¡¡D¡¡C¡¡B¡¡¡¡D=Display C=Cursor B=Blink
Cursor/Dislay Shift¡¡0¡¡0¡¡0¡¡1 S/C R/L *¡¡*¡¡¡¡S/C=Display/Cursor
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡R/L=Right/Left
Function Set ¡¡¡¡¡¡¡¡0¡¡0¡¡1¡¡DL N¡¡F¡¡*¡¡*¡¡¡¡DL=8/4Bit N=2/1Line
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ F=Large/Small
CGRAM Address Set¡¡¡¡0¡¡1¡¡ CCRAM Address¡¡¡¡¡¡Character Generator RAM
DDRAM Address Set¡¡¡¡1¡¡L¡¡ DDRAM Address¡¡¡¡¡¡Display RAM L=Line
Busy Flag/Adrs Read¡¡BF¡¡¡¡Address¡¡¡¡¡¡¡¡¡¡¡¡ BF=Busy Flag

(3) ¹®ÀÚ Ç¥½Ã ÇÔ¼ö lcd_data(string)
¡¡¡¡¡¡string·Î¼­ °Ç³×Áִ ij¸¯ÅÍ ¶óÀÎÀ» Ç¥½ÃÇÕ´Ï´Ù. Ç¥½Ã À§Ä¡´Â ÇöÀç À§Ä¡·ÎºÎÅ͵˴ϴÙ
¡¡¡¡¡¡ÀÇ·Î, À§Ä¡¸¦ º¯°æÇÏ´Â °æ¿ì¿¡´Â, »ó±â Ä¿¸àµå·Î Á¦¾îÇÕ´Ï´Ù.

(4) È­¸é ¼Ò°Å ÇÔ¼ö lcd_clear()
¡¡¡¡¡¡´Ü¼øÇÏ°Ô ÀüÈ­¸éÀ» ¼Ò°ÅÇØ Ä¿¼­ À§Ä¡¸¦ Á»ó´ÜÀ¸·Î ÇÕ´Ï´Ù.


¡¡¡¡¡Ú ¾×Á¤ Ç¥½Ã Á¦¾î¿ë ¶óÀ̺귯¸® 3(´Ù¿î·ÎµåÇØ »ç¿ëÇØ ÁÖ¼¼¿ä)

¡¼¶óÀ̺귯¸®ÀÇ »ç¿ë¹ý¡½

(1) ±âº»ÀûÀÎ »ç¿ë¹ý
¡¡»ç¿ë¹ýÀº, ÇÁ·Î±×·¥ÀÇ ÃÖÃÊ·Î, #include ÇÔ¼ö·Î lcd_lib.c¸¦ ÀÎŬ·çµå ÇØ ¸µÅ©
¡¡ÇÕ´Ï´Ù.
¡¡±× ÈÄ´Â ÃÖÃÊ·Î lcd_init() ÇÔ¼ö¸¦ »ç¿ëÇØ ÃʱâÈ­¸¦ Çϸé, ³ª¸ÓÁö´Â ÀÚÀ¯·Ó°Ô »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

¡¡½ÇÁ¦ÀÇ »ç¿ë¿¹¿¡¼­ÀÇ main ÇÔ¼ö³»¿¡¼­ÀÇ Á¤ÀÇ ¼³Á¤¿¹ÀÔ´Ï´Ù.

¡¡¡¡¡¡//////// link LCD library
¡¡¡¡¡¡#include


(2) ÇÉÀÇ Á¤ÀÇ ÁöÁ¤ ¹æ¹ý

¡¡¾×Á¤ Ç¥½Ã±â¿ëÀ¸·Î¼­ »ç¿ëÇÏ´Â ÀÔÃâ·Â Æ÷Å並 ¶óÀ̺귯¸®ÀÇ ÃÖÃÊ·Î Á¤ÀÇÇÏ°í ÀÖ½À´Ï´Ù.
¡¡»ç¿ëÇÏ´Â Æ÷Å並 º¯°æÇÒ °æ¿ì¿¡´Â ¿©±â¸¦ °íÃÄ ¾¹´Ï´Ù. ¾Æ·¡¿Í °°ÀÌ°¡ Á¤ÀÇ ºÎºÐÀÔ´Ï´Ù.

////// port define to port D
#byte¡¡port = 8¡¡¡¡¡¡//port D
#define¡¡set_tris_x¡¡set_tris_d
#define¡¡rs¡¡ PIN_D0
#define¡¡rw¡¡ PIN_D1
#define¡¡stb¡¡PIN_D2

¡¡(a) µ¥ÀÌŸ ¹ö½º¡¡port
¡¡¡¡¡¡¸î°³ÀÇ ÀÔÃâ·Â Æ÷ÅäÀÇ »óÀ§ 4ºñÆ®¸¦ »ç¿ëÇÕ´Ï´Ù. »óÀ§¿¡ °íÁ¤ÀÌ µÇ¾î
¡¡¡¡¡¡ÀÖ½À´Ï´Ù. (Ç¥ÁØÀº Æ÷Åä DÀÔ´Ï´Ù)
¡¡(b) Á¦¾î ½ÅÈ£
¡¡¡¡¡¡3°³ÀÇ Á¦¾î ½ÅÈ£°¡ ÇÊ¿äÇÕ´Ï´Ù¸¸, °¢°¢À»#define ÇÔ¼ö·Î ÁöÁ¤ÇÕ´Ï´Ù.
¡¡¡¡¡¡ÇÊ¿äÇÑ 3°³ÀÇ ½ÅÈ£´Â¡¡rs, rw, stb¡¡ÀÇ 3Á¾ÀÔ´Ï´Ù.¡¡ÀÔÃâ·Â Æ÷Åä´Â µ¥ÀÌÅÍ
¡¡¡¡¡¡¹ö½º¿Í °°Àº Æ÷Å並 »ç¿ëÇÕ´Ï´Ù.
¡¡(c) TRIS ·¹Áö½ºÅÍÀÇ ÁöÁ¤
¡¡¡¡¡¡set_tris_x¡¡ÀÇ x¸¦ °íÃÄ ¾¹´Ï´Ù.

¡¼Æí¸®ÇÑ »ç¿ë¹ý¡½

(1) ¾×Á¤ Ç¥½Ã±â¿¡ ij¸¯ÅÍ ¶óÀÎÀ» Ç¥½ÃÇÏ´Â °æ¿ì
¡¡¡¡lcd_data(string) ÇÔ¼öÀÇ ¡¸string¡¹¿¡´Â ij¸¯ÅÍ ¶óÀÎÀ» Á÷Á¢ ÁöÁ¤ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù
¡¡
¡¡¡¡¡¡lcd_data("abcdefghijklmnop");
¡¡¡¡¡¡lcd_data("MESSAGE002");

(2) ¾×Á¤ Ç¥½Ã±â µ¥ÀÌÅÍ Ç¥½Ã ÇÔ¼ö¡±lcd_data( )¡±¸¦ print¹®ÀÇ ´ë»óÀ¸·Î ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.
¡¡¡¡ÀÌ°ÍÀ» »ç¿ëÇϸé(ÀÚ), ¼öÄ¡µîÀÇ Ãâ·Â Æ÷¸ËÀ» ÀÚÀ¯·Ó°Ô ÇÒ ¼ö Àֱ⠶§¹®¿¡, Ç¥½ÃÀÇ
¡¡¡¡ºÎºÐÀÇ ÇÁ·Î±×·¥À» ¸Å¿ì ÆíÇÏ°Ô Â© ¼ö°¡ ÀÖ½À´Ï´Ù.
¡¡¡¡¾×Á¤ Ç¥½Ã±â¸¦ Ãâ·Â ´ë»óÀ¸·Î ÇÏ´Â ±âº»ÀûÀÎ printf¹®ÀÇ Æ÷¸ËÀº ¾Æ·¡¿Í °°ÀÌ·Î ÇÕ´Ï´Ù.

¡¡¡¡¡¡¡¡printf( lcd_data, string, [value] );
¡¡¡¡
¡¡¡¡±¸Ã¼ÀûÀÎ ¿¹¿¡¼­´Â, ¾Æ·¡¿Í °°ÀÌ »ç¿ëÇÕ´Ï´Ù.
¡¡¡¡¡¡¡ì¿¹ 1¡í
¡¡¡¡¡¡¡¡long¡¡¡¡data;
¡¡¡¡¡¡¡¡int¡¡¡¡ ch;
¡¡¡¡¡¡¡¡printf(lcd_data, "CH=%1U %4LX", ch, data);
¡¡¡¡
¡¡¡¡¡¡
¡ì¿¹ 2¡í
¡¡¡¡¡¡¡¡float¡¡analog£»
¡¡¡¡¡¡¡¡int¡¡¡¡ch;
¡¡¡¡¡¡¡¡printf(lcd_data, "CH=%1U %1. 3f Volt", ch, analog/512);

¸ñ·Ïº¸±â

www.1chip.com, www.1chip.co.kr
www.micom114.com
ÀÚ·á½Ç¹Ù·Î°¡±â

´ë±¸±¤¿ª½Ã ºÏ±¸ »ê°Ý2µ¿ 1629 »ê¾÷¿ëÀç°ü 10µ¿ 13È£ (2Ãþ) / Tel. 053-604-2355 / Fax. 053-383-2354 / E-mail. maha@paran.com