¾×Á¤Ç¥½Ã±âÀÇ Á¦¾î¹ý

1. ¾×Á¤Ç¥½Ã±â¿ÍÀÇ Á¢¼Ó

PIC¿Í ¾×Á¤Ç¥½Ã±âÀÇ Á¢¼Ó¿¡ ´ëÇØ ¼³¸íÇÑ´Ù. »ç¿ëÇÏ´Â ¾×Á¤Ç¥½Ã±âÀÇ »ç¾çÀº ´ÙÀ½°ú °°´Ù.

    [¾×Á¤Ç¥½Ã±âÀÇ »ç¾ç]

    ǰ¸í: SC1602BSLB ¶Ç´Â SC1602BS*B
    °³¿ä: 16¹®ÀÚ 2Çà, ÇÏÀÌ ÄÜÆ®¶ó½ºÆ®
    ¹é¶óÀÌÆ® ºÎ°¡(BSLB¸¸)
    5¡¿7 or 5¡¿10µµÆ®+Ä¿¼­ Ç¥½Ã
    5V ´ÜÀÏÀü¿ø, Àú¼ÒºñÀü·ù
    CPU ÀÎÅÍÆäÀ̽º: 4ºñÆ® or 8ºñÆ® ÆÐ·²·¼

    ÀÌ¿Í °°Àº ¾×Á¤Ç¥½Ã±â¿Í Á¢¼ÓÇϱâ À§Çؼ­´Â ´Ù¼Ò ¼ÒÇÁÆ®¿þ¾î°¡ ¹ø°Å·Î¿öÁöÁö¸¸, PICÀÇ »ç¿ë Æ÷Æ®°¡ Àû°Ô ÇØ°áµÇ´Â 4ºñÆ® ÆÐ·²·¼À» ¼±ÅÃÇϱâ·Î ÇÑ´Ù.
    ÀÌ 4ºñÆ®ÀÇ µ¥ÀÌÅÍ ½ÅÈ£ À̿ܿ¡ ÇÊ¿äÇÑ ½ÅÈ£´Â RS(µð¹ÙÀ̽º ¼±Åà ½ÅÈ£), R/W(Àбâ/½á³Ö±â ÁöÁ¤), E(strobe ½ÅÈ£)·Î 3°¡ÁöÀÌ´Ù.

À̵é°ú PIC´Â ¿ì¼±, ¾Æ·¡¿Í °°ÀÌ Á¢¼ÓÇØ º¸±â·Î ÇÑ´Ù.
ÀÌ Á¢¼Ó ¹æ¹ýÀÌ ¼ÒÇÁÆ®¿þ¾î·Î Á¦¾îÇϱ⠽±±â ¶§¹®ÀÌ´Ù.
±×¸®°í, °¢ ½ÅÈ£ÀÇ Å¸Àֵ̹µ ¾Æ·§ ±×¸²¿¡ ³ªÅ¸³Â´Âµ¥, ¹®Á¦´Â ÇÏÃøÀÇ ½ÅÈ£°¡ ³»Ãø¿¡ µé¾î°¡µµ·Ï Ãâ·ÂÇÏ¸é µÈ´Ù.


 

    µ¥ÀÌÅÍ ¹ö½º(DB4-7) ½ÅÈ£ ³»¿ëÀÇ ±¸º°Àº 2°³ÀÇ Á¦¾î½ÅÈ£(RS, R/W)·Î ±¸º°µÈ´Ù.

      RS     R/W           ½ÅÈ£Á¾º°
       0        0       Control Command Ãâ·Â
       1        0       ½á³Ö±â µ¥ÀÌÅÍ Ãâ·Â
       0        1       Busy ½ÅÈ£ÀÔ·Â
       1        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/CR/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
Data Write                   8 Bits Data                  CGRAM/DDRAM Common
Data Read                    8 Bits Data                  CGRAM/DDRAM Common


 

2. ¾×Á¤Ç¥½Ã±â¿¡ÀÇ Á¦¾î½ÅÈ£ Ãâ·Â ·çƾ

±×·¯¸é ½ÇÁ¦·Î ¾×Á¤Ç¥½Ã±â¿¡ Control ½ÅÈ£¸¦ Ãâ·ÂÇÏ´Â ¼­ºê·çƾÀ» ¼³¸íÇÑ´Ù.
Control Command ½ÅÈ£¶ó°í ÇÏ´Â Á¶°ÇÀº RS=R/W=0ÀÌ´Ù.
4ºñÆ® ¸ðµå·Î Á¢¼ÓÇϰí Àֱ⠶§¹®¿¡ »óÀ§ 4ºñÆ®¿Í ÇÏÀ§ 4ºñÆ®ÀÇ 2ȸ·Î ³ª´©¾î Command¸¦ Ãâ·ÂÇÑ´Ù.

 

;**** LCD command out *****

LCD_CMD
        MOVWF    DPDT      ;Command µ¥ÀÌÅÍÀÇ ÀϽà º¸Á¸
        ANDLW    0F0H      ;»óÀ§ 4ºñÆ®¸¦ ¿ì¼± Ãâ·Â
        MOVWF    PORTB     ;RB4-7ÀÇ µ¥ÀÌÅÍ ¹ö½º·Î Ãâ·Â
        BCF      PORTA,1   ;R/W¸¦ 0À¸·Î ¼¼Æ® Command Á¶°Ç ¼¼Æ®
        BCF      PORTA,2   ;RS¸¦ 0À¸·Î ¼¼Æ®
        BSF      PORTA,0   ;E high ½ºÆ®·Îºê ½ÅÈ£ Ãâ·Â
        BCF      PORTA,0   ;E low
        SWAPF    DPDT,W    
        ANDLW    0F0H      ;ÇÏÀ§ 4ºñÆ®¸¦ Ãâ·Â
        MOVWF    PORTB     ;RB4-7¿¡ Ãâ·Â
        BSF      PORTA,0   ;½ºÆ®·Îºê ½ÅÈ£ Ãâ·Â
        BCF      PORTA,0
        CALL     LCD_BUSY  ;Busy ½ÅÈ£°¡ ¾ø¾îÁú ¶§±îÁö ±â´Ù¸°´Ù
        RETURN


 

3. ¾×Á¤Ç¥½Ã±â¿¡ÀÇ Ç¥½Ã µ¥ÀÌÅÍ Ãâ·Â ·çƾ

½ÇÁ¦·Î Ç¥½ÃÇϱâ À§Çؼ­´Â ¾×Á¤ Ç¥½Ã±â¿¡ ASCIIÀÇ ¹®ÀÚ Äڵ带 ¼Û½ÅÇÑ´Ù.
¼Û½ÅÀº 4ºñÆ®¸¶´Ù 2ȸ·Î ³ª´©¾î ÇÑ´Ù.
µ¥ÀÌÅÍ ¼Û½Å ¸ðµå´Â RS=0, R/W=1ÀÌ´Ù.
¹®ÀÚ¸¦ Ç¥½ÃÇÒ ¶§´Â Ä¿¼­´Â ¿ìÃøÀ¸·Î ½ÃÇÁÆ®ÇØ °¡±â ¶§¹®¿¡ »óÀ§ÃøÀÇ ¹®ÀÚºÎÅÍ Ç¥½Ã Ãâ·ÂÀ» ÇÑ´Ù.
2Çà°¿¡ Ç¥½ÃÇÒ ¶§¿¡´Â DDRAM Address SetÀÇ Command·Î, Address Data¿¡ "C0"¸¦ SetÇϰí Ãâ·ÂÇϸé 2Çà°ÀÇ Ã³À½ºÎÅÍ Ç¥½ÃÇÑ´Ù.

 

;**** LCD Data Write ****

LCD_DATA
      MOVWF    DPDT     ;Ç¥½Ã µ¥ÀÌÅÍ(ASCII)ÀÇ ÀϽà º¸Á¸
      ANDLW    0F0H     ;»óÀ§ 4ºñÆ® Àü¼Û
      MOVWF    PORTB
      BCF      PORTA,1  ;R/W¸¦ 0À¸·Î ¼¼Æ®,µ¥ÀÌÅͼ۽Џðµå ¼¼Æ®
      BSF      PORTA,2  ;RS¸¦ 1·Î ¼¼Æ®
      BSF      PORTA,0  ;E high, ½ºÆ®·Îºê ½ÅÈ£ Ãâ·Â
      BCF      PORTA,0  ;E low
      SWAPF    DPDT,W   ;get data lower
      ANDLW    0F0H     ;ÇÏÀ§ 4ºñÆ®ÀÇ Àü¼Û
      MOVWF    PORTB
      BSF      PORTA,0  ;½ºÆ®·Îºê ½ÅÈ£ Ãâ·Â
      BCF      PORTA,0
      CALL     LCD_BUSY ;Busy ½ÅÈ£°¡ ¾ø¾îÁú ¶§±îÁö ±â´Ù¸°´Ù
      RETURN


 

4. ¾×Á¤Ç¥½Ã±âÀÇ Busy ´ë±â ¼­ºê·çƾ

¾×Á¤Ç¥½Ã±âÀÇ ³»ºÎ󸮴 °¢ Ä¿¸Çµå¸¶´Ù ¾à 40¥ìs Á¤µµ °É¸°´Ù.
(À¯ÀÏÇÏ°Ô Clear Ä¿¸Çµå¸¸Àº 1.64ms °É¸°´Ù)
ÀÌ Ã³¸®½Ã°£ µ¿¾È "Busy" ½ÅÈ£°¡ Ãâ·ÂµÇ°í ÀÖ´Ù. µû¶ó¼­, ¿¬¼ÓÀûÀ¸·Î µ¥ÀÌÅÍ Àü¼ÛÀ» Çϱâ À§Çؼ­´Â ÀÌ Busy ½ÅÈ£°¡ ¾ø¾îÁö±â¸¦ ±â´Ù¸®°í³ª¼­ ½Ç½ÃÇÒ Çʿ䰡 ÀÖ´Ù.

¾Æ·¡¿¡ ³ªÅ¸³½ °ÍÀº ÀÌ Busy ½ÅÈ£°¡ ¾ø¾îÁú ¶§±îÁö ±â´Ù¸®´Â ¼­ºê·çƾÀÌ´Ù. Busy ½ÅÈ£´Â ¾×Á¤Ç¥½Ã±â·ÎºÎÅÍÀÇ ÀÔ·ÂÀ¸·Î µÇ±â ¶§¹®¿¡ PICÃøÀÇ µ¥ÀÌÅÍ ¹ö½º¸¦ ÀÔ·Â ¸ðµå·Î º¯°æÇØ ÁÙ Çʿ䰡 ÀÖÀ¸¹Ç·Î, ó¸®Çϴµ¥ À־ ´õ¿í ¹ø°Å·Î¿öÁø´Ù.
ÀÌ ÀÔ·Â/Ãâ·ÂÀÇ ÀüȯÀÌ ÇÊ¿äÇÏ°Ô µÇ¹Ç·Î, PIC¿Í ¾×Á¤Ç¥½Ã±â¿ÍÀÇ Á¢¼Ó¿¡´Â µ¥ÀÌÅÍ ¹ö½º¿Í ÄÁÆ®·Ñ ½ÅÈ£¸¦ ³ª´©´Â ÆíÀÌ »ç¿ëÇϱ⠽¬¿öÁø´Ù.

 

;**** LCD Busy Check ************

LCD_BUSY
      CLRF    DPDT          ;µ¥ÀÌÅÍ ¹öÆÛ Ŭ¸®¾î
      BSF     STATUS,RP0    ;PIC ¸ðµå º¯°æÀ» À§ÇØ Bank1·Î Àüȯ
      BSF     OPTION_REG,7  ;Æ÷Æ® BÀÇ Ç®¾÷À» OFF ÁöÁ¤
      MOVLW   0FEH          ;PORTBRB0 Àܸ̿¦ ÀÔ·Â ¸ðµå¿¡ ¼¼Æ®
      MOVWF   TRISB
      BCF     STATUS,RP0    ;Bank0À¸·Î ¸®ÅÏÇÑ´Ù
      BCF     PORTA,2       ;RS¸¦ 0À¸·Î ¼¼Æ®
      BSF     PORTA,1       ;R/W¸¦ 1·Î ¼¼Æ® Busy ÀÔ·Â ¸ðµå¸¦ ¼¼Æ®
      BSF     PORTA,0       ;E high, ½ºÆ®·Îºê ½ÅÈ£ Ãâ·Â
      MOVF    PORTB,W       ;µ¥ÀÌÅ͸¦ 2ȸ·Î ³ª´©¾î ÀÔ·Â
      BCF     PORTA,0       ;E low
      ANDLW   0F0H          ;¿ì¼± »óÀ§ 4ºñÆ®¸¦ ÀÔ·Â
      MOVWF   DPDT          ;ÀϽà º¸Á¸
      BSF     PORTA,0       ;E high, ´ÙÀ½ÀÇ ½ºÆ®·Îºê ½ÅÈ£ Ãâ·Â
      MOVF    PORTB,W       ;ÇÏÀ§ 4ºñÆ®¸¦ ÀÔ·Â
      BCF     PORTA,0       ;E low
      ANDLW   0FH           ;Mask out upper
      IORWF   DPDT,F        ;»óÀ§¿Í ÇÏÀ§¸¦ OR·Î ÇÕº´
      BTFSC   DPDT,7        ;BUSY FLAG ºñÆ®¸¦ üũ
      GOTO    LCD_BUSY      ;Busy »óÅ¿´´Ù¸é ÀçÂ÷ ÀÔ·Â ¹Ýº¹

      BCF     PORTA,1       ;R/W¸¦ 0À¸·Î ¸®ÅÏÇÑ´Ù(Ãâ·Â ¸ðµå·Î                              ¸®ÅÏÇÑ´Ù)
      BSF     STATUS,RP0    ;PICÀÇ ¸ðµå º¯°æÀ» À§ÇØ Bank1·Î                              Àüȯ
      MOVLW   0EH           ;RB1,2,3 Àܴ̿ Ãâ·ÂÀ¸·Î ¸®ÅÏÇÑ´Ù
      MOVWF   TRISB         ;PORTB ¸ðµå ¼¼Æ®
      BCF     STATUS,RP0    ;Bank0À¸·Î ¸®ÅÏÇÑ´Ù
      RETURN

 

 

5. ¾×Á¤Ç¥½Ã±âÀÇ Ãʱ⠸®¼Â ¼­ºê·çƾ

¸¶Áö¸·À¸·Î, ÇÑÃþ ±î´Ù·Î¿î Ãʱ⠸®¼ÂÀÇ Á¦¾î ¼­ºê·çƾÀÌ´Ù.
ÀÌ ¾×Á¤Ç¥½Ã±â´Â Àü¿ø ÀԷ½ÿ¡ ÀÚµ¿ÀûÀ¸·Î ¸®¼Â 󸮸¦ ÇÏÁö¸¸, ±×°ÍÀÌ Àß ½ÇÇàµÇÁö ¾Ê¾ÒÀ» ¶§¸¦ »ý°¢ÇÏ¿©, ¼ÒÇÁÆ®¿þ¾î·Îµµ ÃʱâÈ­ÇÒ ¼ö ÀÖµµ·Ï µÇ¾î ÀÖ´Ù.
±× ¼ø¼­°¡ ´õ¿í ¹ø°Å·Ó´Ù. ¿ì¼±, ¾×Á¤Ç¥½Ã±â¸¦ 8ºñÆ® ¸ðµå·Î ÇÏ´Â °ÍºÎÅÍ ½ÃÀÛÇÑ´Ù.
¶Ç, ÀÌ ½ÃÁ¡¿¡¼­´Â Busy Flag´Â ½Å¿ëÇÒ ¼ö ¾ø±â ¶§¹®¿¡ »ç¿ëÇÏÁö ¾Êµµ·Ï ÇÏ°í ½Ã°£À¸·Î ±â´Ù¸°´Ù.
ÀÌ ´ë·«ÀûÀΠó¸®ÀÇ È帧Àº ¾Æ·¡¿Í °°ÀÌ µÈ´Ù.
 


     Àü¿ø ON
         ¡é
1.5ms ÀÌ»ó ±â´Ù¸°´Ù      BusyFlag´Â »ç¿ëÇÏÁö ¾Ê´Â´Ù
         ¡é
8ºñÆ® ¸ðµå ¼³Á¤
         ¡é
4.1ms ÀÌ»ó ±â´Ù¸°´Ù      BusyFlag´Â »ç¿ëÇÏÁö ¾Ê´Â´Ù
         ¡é
ÀçÂ÷ 8ºñÆ® ¸ðµå·Î ¼³Á¤
         ¡é
100¥ìs ÀÌ»ó ±â´Ù¸°´Ù     BusyFlag´Â »ç¿ëÇÏÁö ¾Ê´Â´Ù
         ¡é
ÀçÂ÷ 8ºñÆ® ¸ðµå·Î ¼³Á¤
         ¡é
4ºñÆ® ¸ðµå·Î ¼³Á¤        ¿©±â±îÁö´Â 8ºñÆ® ¸ðµå·Î µ¿ÀÛÇϰí ÀÖ´Ù
         ¡é
Function ¼³Á¤            ÀÌÈÄ 4ºñÆ® ¸ðµå·Î BusyFlagµµ À¯È¿
Display Off Á¦¾î
Display On Á¦¾î
Entry Mode ¼¼Æ®

;**** Initialize *****
LCD_INI
    CALL     TIME5M  ;1.5ms ÀÌ»ó ±â´Ù¸°´Ù(5ms ´ë±â·Î Çϰí ÀÖ´Ù)
    MOVLW  030H      ;8ºñÆ® ¸ðµå ¼³Á¤ Á¦¾î
    MOVWF  PORTB
    BCF      PORTA,1 ;R/W0 ¼¼Æ®
    BCF      PORTA,2 ;RS0 ¼¼Æ®
    BSF      PORTA,0 ;E high ½ºÆ®·Îºê
    BCF      PORTA,0 ;E low
    CALL     TIME5M  ;4.1ms ÀÌ»ó ±â´Ù¸°´Ù(5ms ´ë±â)
    MOVLW  030H      ;ÀçÂ÷ 8ºñÆ® ¸ðµå ¼³Á¤ Á¦¾î
    MOVWF  PORTB
    BCF      PORTA,1 ;R/W0 ¼¼Æ®
    BCF      PORTA,2 ;RS0 ¼¼Æ®
    BSF      PORTA,0 ;E high ½ºÆ®·Îºê
    BCF      PORTA,0 ;E low
    CALL     TIME100 ;100¥ìs ÀÌ»ó ±â´Ù¸°´Ù
    MOVLW  030H      ;ÀçÂ÷ 8ºñÆ® ¸ðµå ¼³Á¤ Á¦¾î
    MOVWF  PORTB
    BCF      PORTA,1 ;R/W0 ¼¼Æ®
    BCF      PORTA,2 ;RS0 ¼¼Æ®
    BSF      PORTA,0 ;½ºÆ®·Îºê
    BCF      PORTA,0
    CALL     TIME100 ;È®½ÇÈ÷ Çϱâ À§ÇØ 100¥ìs ´ë±â
    MOVLW  020H      ;4ºñÆ® ¸ðµå ¼³Á¤ Á¦¾î
    MOVWF  PORTB     ;(À̶§´Â ¾ÆÁ÷ 8ºñÆ® ¸ðµå)
    BCF      PORTA,1 ;R/W0 ¼¼Æ®
    BCF      PORTA,2 ;RS0 ¼¼Æ®
    BSF      PORTA,0 ;½ºÆ®·Îºê
    BCF      PORTA,0
    CALL     TIME100 ;È®½ÇÈ÷ Çϱâ À§ÇØ 100¥ìs ´ë±â
                     ;ÀÌÈÄ 4ºñÆ® ¸ðµå·Î µ¿ÀÛ, BusyFlag À¯È¿
    MOVLW  02CH      ;Function Set(2Çà, 5¡¿10Dot Ç¥½Ã ÁöÁ¤)
    CALL     LCD_CMD
    MOVLW  08H       ;Display off(Cursor, Blink ¾øÀ½)
    CALL     LCD_CMD
    MOVLW  0CH       ;Display on(Cursor, Blink ¾øÀ½)
    CALL     LCD_CMD
    MOVLW  06H       ;Entry Mode Set(Increment, Ç¥½Ã ½ÃÇÁÆ®                       ÁöÁ¤)
    CALL     LCD_CMD
    RETURN


´ÙÀ½Àº ´ÙÀ̳»¹Í Ç¥½Ã Á¦¾îÀÇ ³ëÇϿ츦 ¼³¸íÇÑ´Ù


 

[email protected]
copyright : 1998 PROCHIPS TECHNOLOGY INC
Last Updated : 1998. 10. 22