±è°æ±Ù (maroboss)

[8051] LCD ¸í·É (2) 01/15 13:56 177 line

LCD ¸í·É(1)

LCD ¸í·É¾î´Â 9°³°¡ ÀÖÀ¸¸ç (Ãʺ¸) ¿©·¯ºÐÀÌ »ý°¢ÇϽô ¸¸Å­ ¾î·ÆÁö

¾Ê½À´Ï´Ù. ±×³ª¸¶ ±â±³¸¦ ºÎ¸®Áö ¾Ê´Â ÀϹÝÀûÀÎ »ç¿ë¿¡´Â 3 ~ 4°³ÀÇ

¸í·É¸¸À¸·Îµµ ÃæºÐÇÕ´Ï´Ù.

" ¸í·ÉÀÌ ¼ö¹é°³ÀÎ CPUµµ ´Ù·êÁÙ ¾Æ´Âµ¥ LCD ÂëÀ̾ß... "

°¢ LCD ½ºÆå¿¡´Â Instructions( ¸í·É ) Ç¥¸¦ ÇÔ²² Á¦°øÇØ Áִµ¥ ±×

¸í·É¾î´Â ȸ»ç³ª Á¦Ç°¿¡ °ü°è¾øÀÌ °ÅÀÇ ¶È°°½À´Ï´Ù. µÉ¼öÀÖÀ¸¸é ÀÚ½ÅÀÌ

±¸ÀÔÇÏ´Â LCDÀÇ ½ºÆå Á¤µµ´Â ±¸ÀÔó¿¡¼­ ¾ò´ø°¡ º¹»çÇϽʽÿä. Ȥ½Ã ¸ø

±¸Çصµ ³Ê¹« °ÆÁ¤ÇÏÁö ¸¶½Ê½Ã¿ä. ¸î¸î Ã¥¿¡µµ ¸í·É Ç¥°¡ ³ª¿Í ÀÖ°í,

Á¦°¡ ¾Æ·¡ ´ëÃæ Á¤¸®ÇØ µå¸®°Ú½À´Ï´Ù.


( ij¸¯ÅÍ LCD ¸í·ÉÇ¥ )


< ¸í·ÉÇ¥ >

___________________________________________________________________

| |

¸í ·É | RS R/W D7 D6 D5 D4 D3 D2 D1 D0 | ¹øÈ£

_______________|__________________________________________|________

| |

CLEAR DISPLAY | 0 0 0 0 0 0 0 0 0 1 | 1

| |

RETURN HOME | 0 0 0 0 0 0 0 0 1 * | 2

| |

ENTRY MODE | 0 0 0 0 0 0 0 1 I/D S | 3

| |

DISPLAY ON/OFF| 0 0 0 0 0 0 1 D C B | 4

| |

DISPLAY OR | 0 0 0 0 0 1 S/C R/L * * | 5

CURSOR SHIFT | |

| |

FUNCTION SET | 0 0 0 0 1 DL N F * * | 6

| |

SET CG RAM | 0 0 0 1 ADDRESS | 7

ADDRESS | |

| |

SET DD RAM | 0 0 1 ADDRESS | 8

ADDRESS | |

| |

READ BUSY FLAG| 0 1 BF ADDRESS | 9

& ADDRESS | |

_______________|__________________________________________|________

| |

WRITE DATA | 1 0 WRITE DATA | 10

TO CG OR DD | |

RAM | |

| |

READ DATA | 1 1 READ DATA | 11

FROM CG OR DD | |

RAM | |

_______________|__________________________________________|________




Ç¥¿¡¼­ ±×¸® Ưº°³ª°Å³ª ±î´Ù·Î¿î ºÎºÐÀº ¾ø½À´Ï´Ù. ¸î°¡Áö ÁÖÀÇÇÒ

Á¡Àº, ¸ÕÀú Çϵå¿þ¾î °­Á¿¡¼­ R/W ÇÉÀ» Ç×»ó WRITE »óÅ·Î, Áï GND¿¡

¹°·Á³ªµµ µÈ´Ù°í Çߴµ¥, ±×·¸°Ô Çß´Ù¸é À§ Ç¥¿¡¼­ R/W°¡ 1 ÀÎ µÎ°³ÀÇ

¸í·É¾î( 9¹ø, 11¹ø)Áï "READ BUSY FLAG & ADDRESS ", "READ DATA FROM

CG OR DD RAM" ¸í·ÉÀº ¾µ ¼ö ¾ø½À´Ï´Ù. µÎ ¸í·É¾î ¸ðµÎ ²À ÇÊ¿äÇϰųª

¾øÀ¸¸é Å©°Ô ºÒÆíÇÑ ¸í·ÉÀº ¾Æ´Õ´Ï´Ù. ±×¸®°í °¢ ¸í·É¾îµéÀº ½ÇÇà

½Ã°£ÀÌ ´Ù¸¨´Ï´Ù. ¿ø·¡ ¸í·ÉÇ¥¿¡´Â ½ÇÇà ½Ã°£ÀÌ ³ª¿Í Àִµ¥ Á¦°¡ ÇÊ¿ä

¾øÀ» °Í °°¾Æ »ý·« Çß½À´Ï´Ù. °¡Àå ´ÊÀº ¸í·ÉÀº 1.6 ms (when fosc is

250 KHz) ÀÔ´Ï´Ù. LCD¿¡¼­ ÇöÀç ¼öÇàÁßÀÎ ¸í·ÉÀÌ ³¡³µ´ÂÁö´Â BF(BUSY

FLAG) ºñÆ®¸¦ ÀÐÀ¸¸é( 9¹ø ) ¾Ë ¼ö ÀÖÁö¸¸ ±×·² ÇÊ¿ä ¾øÀÌ ÇÑ ¸í·É ÈÄ

´ÙÀ½ ¸í·É±îÁö 1.6 ms ÀÌ»óÀÇ ½Ã°£À» ±â´Ù¸° ÈÄ ´ÙÀ½ ¸í·ÉÀ» ³»·Áµµ

µË´Ï´Ù.




( BUSY FLAG )


BF¸¦ Àо ±×°ªÀÌ 1 À̸é, LCD¿¡ 'BF¸¦ Àд ¸í·É'( 9 ¹ø ) ÀÌ¿ÜÀÇ

¸í·ÉÀº ÁÙ ¼ö°¡ ¾ø½À´Ï´Ù. BF°¡ 0ÀÌ µÇ¸é ´Ù¸¥ ¸í·ÉÀ» ³»¸± ¼ö

ÀÖ½À´Ï´Ù. BF¿¡ ´ëÇÑ Á¦ °³ÀÎÀûÀÎ ÀÇ°ßÀº ÀÌ·¸½À´Ï´Ù. BF´Â »ç¿ëÇÏÁö

¸¶½Ê½Ã¿ä. ¿Ö³ÄÇϸé BF¸¦ Àд ÀÌÀ¯´Â LCD°¡ ´ÙÀ½ ¸í·ÉÀ» ¹Þ¾ÆµéÀÏ ¼ö

ÀÖ³ª¸¦ ¾Ë±â À§ÇÑ °ÍÀε¥ ±× ¸í·ÉÀÇ ¼öÇà ½Ã°£À» ¾Æ´Â °æ¿ì¿¡´Â ±× ½Ã°£

¸¸Å­ÀÇ DELAY ROUTINÀ» µ¹¸° ÈÄ ´ÙÀ½ ¸í·ÉÀ» ³»·Áµµ µË´Ï´Ù. Ȥ½Ã ¼Óµµ

Â÷ÀÌ°¡ ³ªÁö ¾Ê´Â³Ä°í ¹Ý¹®ÇÏ´Â ºÐÀÌ °è½ÇÁö ¸ð¸£°Ú±º¿ä. ¼Óµµ¿¡ ´ëÇÑ

Á¦ ÀÇ°ßÀº ÀÌ·¸½À´Ï´Ù. ´ëºÎºÐÀÇ LCD ¸í·ÉÀÌ 40 us°¡ °É¸®´Âµ¥ DELAY

ROUTINµµ °ÅÀÇ 40 us°¡ µÇ°Ô ¸¸µé¼ö ÀÖ½À´Ï´Ù.


½ÇÁ¦ ij¸¯ÅÍ LCD»ç¿ë¿¡ ÀÖ¾î ¼Óµµ´Â Å©°Ô Áß¿äÇÏÁö ¾Ê½À´Ï´Ù.( ±×·¡ÇÈ

LCD´Â Áß¿äÇÕ´Ï´Ù.) ¹«½¼ ¸»À̳ĸé, LCD´Â »ç¶÷ÀÌ º¼¼ö ÀÖ´Â ¼Óµµ·Î

°ªÀÌ º¯È­ µÇ¾î¾ß Çϴµ¥ ±×º¸´Ù °ªÀ» »¡¸® º¯È­ ½ÃÅ°¸é µµ¸®¾î

¿ªÈ¿°ú°¡ ³³´Ï´Ù. ÀϹÝÀûÀ¸·Î´Â ±×·¸½À´Ï´Ù. µû¶ó¼­ LCD ¸í·ÉÁß ¾î¶²

¸í·ÉÀº 1.64 ms ¶Ç ¾î¶² ¸í·ÉÀº 40 us°¡ °É¸®´Âµ¥ ¾Æ¿¹ DELAY ROUTINÀ»

Å« ÂÊÀ¸·Î ÅëÀÏÇÏ¿© »ç¿ëÇϽʽÿä. ( ¾Æ·¡ ¿¹Á¦ ÇÁ·Î±×·¥¿¡¼­ È®ÀÎ

ÇϽʽÿä. )


BUSY FLAG¸¦ üũÇÏÁö ¾Ê°í ÀÏÁ¤ ½Ã°£À» ±â´Ù¸° ÈÄ ´ÙÀ½ ¸í·ÉÀº ³»¸®´Â

°æ¿ì´Â ÀÌ·± ÀÌÁ¡ÀÌ ÀÖ½À´Ï´Ù. º¸µå¿¡¼­ LCD Ä¿³ØÅ͸¦ »©µµ ÇÁ·Î±×·¥ÀÇ

È帧¿¡´Â ÁöÀåÀÌ ¾ø½À´Ï´Ù. ¸¸¾à BUSY FLAG¸¦ Àд ÇÁ·Î±×·¥À̶ó¸é ÀÐÀº

°ªÀÌ 0 ÀÌ µÉ¶§±îÁö ¹«ÇÑÁ¤ ±â´Ù¸®°Ô µË´Ï´Ù. ±×¸®°í ¾Æ·¡¼­ ´Ù½Ã

¼³¸íÇÏ°ÚÁö¸¸ LCD ÃʱâÈ­ °úÁ¤ Áß¿¡´Â BUSY FLAG¸¦ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.

¹«Á¶°Ç DELAY·Î ±â´Ù·Á¾ß ÇÕ´Ï´Ù.


¾Õ °­Á¿¡¼­ LCD´Â RAM°ú °°ÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Ù°í Çߴµ¥ ¸¸¾à¿¡ LCD¸¦

·¥°ú °°ÀÌ »ç¿ëÇϽŴٸé À§ÀÇ BUSY FLAG °æ¿ì¿Í °°ÀÌ LCD Ä¿³ØÅ͸¦

»©°í »ç¿ëÇϰųª, ¿Á¿Ü¿ë Á¦Ç°À̶ó¸é ¿©¸§¿¡ LCD°¡ ¸ÀÀÌ °°À» °æ¿ì¸¦

ÃæºÐÈ÷ °í·ÁÇÑ ÈÄ °áÁ¤ÇÏ¼Å¾ß ÇÕ´Ï´Ù.




( ¸í·ÉÇ¥ º¸±â )


"CLEAR DISPLAY"( 1¹ø ) ¸í·ÉÀº ¸í·ÉÇ¥¿¡¼­¿Í °°ÀÌ RS, R/W¸¦ 0 À¸·Î

ÇØÁÖ°í LCD¿¡ 01H¸¦ ¾²¸é ¼öÇàµË´Ï´Ù. ´Ù¸¥ ¸í·Éµµ °°Àº ¹æ¹ýÀ¸·Î

ÇÏ½Ã¸é µË´Ï´Ù. JS8051A¿¡¼­¿Í °°ÀÌ RS, R/W¸¦ °¢°¢ A1, A0 ¿¡

¿¬°áÇÏ¿´´Ù¸é LCD¸¦ ¾µ¶§¿Í ÀÐÀ»¶§ ¶Ç´Â ¸í·É¾î¿Í µ¥ÀÌŸ¿¡ µû¶ó °¢°¢

´Ü¸¥ ¹øÁö°¡ µË´Ï´Ù. ´ÙÀ½Àº JS8051AÀÇ LCD ¹øÁö ÀÔ´Ï´Ù.


;

; JS8051 LCD ADDRESS

; CONNECTED R/W = A1, RS = A0

;

LCDCW1 EQU 0F200H ;( LCD COMMAND WRITE 1 )

LCDCR1 EQU 0F201H ;( LCD COMMAND READ 1 )

LCDDW1 EQU 0F202H ;( LCD DATA WRITE 1 )

LCDDR1 EQU 0F203H ;( LCD DATA READ 1 )




°¨À» ÀâÀ¸¼Ì´ÂÁö ¸ð¸£°Ú±º¿ä. ¿¹¸¦ µé¾î LCD¿¡ "CLEAR DISPLAY" ¸í·ÉÀ»

¾²°í ½Í´Ù¸é, ¸í·ÉÇ¥¸¦ º¸¸é RS = 0, R/W =0 À¸·Î µÇÀÖ½À´Ï´Ù. µû¶ó¼­

JS8051A º¸µå¶ó¸é LCDCW1¿¡ 01H¸¦ ½áÁÖ¸é µÇ´Â °Ì´Ï´Ù.




( ÃʱâÈ­ )


¸î¸î LCD´Â POWER ON ½Ã¿¡ POWERÀÇ rising timeÀÌ ±Ô°Ý¿¡ ¸ÂÀ¸¸é

ÀÚµ¿À¸·Î initialize(reset)°¡ µÈ´Ù°í µÇÀÖÁö¸¸ ¼ÒÇÁÆ®¿þ¾îÀûÀÎ

¸í·ÉÀ¸·Î ÀÎÀ̼ȶóÀÌÁî(ÃʱâÈ­) Çϱ⸦ ±ÇÀåÇÏ°í ÀÖ½À´Ï´Ù.




POWER ON


|


LCDÀÇ Vdd°¡ 4.5V ÀÌ»ó µÈÈÄ

15 ms ÀÌ»ó ±â´Ù¸²


|


" FUNCTION SET "( 6¹ø ¸í·É )


|


4.1 ms ÀÌ»ó ±â´Ù¸² ; BF üũ ¾ÈµÊ


|


" FUNCTION SET "( 6¹ø ¸í·É )


|


100 us ÀÌ»ó ±â´Ù¸² ; BF üũ ¾ÈµÊ


|


" FUNCTION SET "( 6¹ø ¸í·É )


|


" FUNCTION SET "( 6¹ø ¸í·É )

" DISPLAY OFF "( 4¹ø ¸í·É )

" DISPLAY CLEAR "( 1¹ø ¸í·É )

" ENTRY MODE SET"( 3¹ø ¸í·É )




Á¶½ÉÇÒ Á¡Àº BF üũ°¡ ¾ÈµÇ´Â ºÎºÐÀÌ ÀÖÀ¸´Ï À¯ÀÇ ÇϽʽÿä.




¸í·ÉÇ¥¿¡ ³ª¿À´Â I/D, S, D, C ... µîµîÀÇ ±â´É ºñÆ®µé¿¡ ´ëÇÑ ¼³¸íÀº

ÇÊ¿äÇÏ´Ù°í »ý°¢µÇ´Â °Í¸¸À» ´ÙÀ½ °­Á¿¡¼­ ÇÏ°Ú½À´Ï´Ù.


" ¾²´Ùº¸´Ï ³»¿ëÀÌ Á» ¾î·Á¿îµí Çϱº¿ä. ÀÌÇØ°¡ ¾ÈµÇ¸é ¸î¹ø ´õ Àоî

Áֽʽÿä."

°è¼ÓÇϽðڽÀ´Ï±î? (Y/n) >>

±è°æ±Ù (maroboss)

[8051] LCD ¸í·É (2) 01/17 17:51 153 line


LCD ¸í·É(2)




( FUNCTION SET , ENTRY MODE SET )


¾Õ °­Á¿¡¼­ ÃʱâÈ­ ¼ø¼­µµ¸¦ º¸¸é " FUNCTION SET "(6¹ø) °ú " ENTRY

MODE SET "(3¹ø) ¸í·ÉÀ» ½ÇÇà½ÃÄÑ¾ß ÇÑ´Ù°í µÇÀÖ½À´Ï´Ù. ÀÌ µÎ°³ÀÇ

¸í·ÉÀº Áß¿äÇÏÁö¸¸ Çü½ÄÀûÀÎ ÃʱâÈ­ °úÁ¤¿¡¼­¸¸ »ç¿ëµÉ »Ó ÀÏ´Ü

ÃʱâÈ­°¡ ³¡³ª¸é »ç¿ëÀ» ¾ÈÇÑ´Ù°í º¸¼Åµµ µË´Ï´Ù.




FUNCTION SET : 0 0 1 DL N F * *


DL = 1 : 8 bit , DL = 0 : 4 bit

N = 1 : 2 line , N = 0 : 1 line

F = 1 : 5 x 10 dots , F = 0 : 5 x 7 dots


DL( Data Length )´Â 8 bit·Î ÇÏ°í N( liNe )Àº 2 lineÀ¸·Î F( Fonts

)´Â ¾Æ¹«°Å³ª ÇÏ½Ê½Ã¿ä ´Ü 5 x 10 dots·Î ¼³Á¤Çصµ LCDÀÚü°¡ 5 x 7

dotsÀÎ LCD´Â 5 x 7·Î¸¸ µË´Ï´Ù.




ENTRY MODE : 0 0 0 0 0 1 I/D S


I/D = 1 : ÀÚµ¿À¸·Î ¾îµå·¹½º Áõ°¡

I/D = 0 : ÀÚµ¿À¸·Î ¾îµå·¹½º °¨¼Ò

S = 1 : accompanies display shift


I/D( Increment/Decrement )´Â Áõ°¡·Î ¼³Á¤ÇÏ°í S( accompanies Shift

)´Â 0À¸·Î ÇÕ´Ï´Ù. I/D¸¦ 1·Î ÇÏ¸é ¿©·¯ ±ÛÀÚ¸¦ ¾µ¶§ ³ªÁß¿¡ ¾´ ±ÛÀÚ°¡

¸ÕÀú¾´ ±ÛÀÚ ´ÙÀ½¿¡(¿À¸¥ÂÊ¿¡) ¾²¿©Áö¹Ç·Î ¿ì¸® Á÷°¨°ú ÀÏÄ¡ÇÕ´Ï´Ù.

ÀÐÀ»¶§°í ¸¶Âù°¡Áö·Î ³»ºÎ ¾îµå·¹½º Ä«¿îÅÍ°¡ ÀÚµ¿ Áõ°¡ µË´Ï´Ù. S ´Â

0À¸·Î ÇØ ³õ´Â °ÍÀÌ Á¤»ó ÀÔ´Ï´Ù. ¼³¸íµå¸®±â°¡ °ï¶õÇѵ¥ Á¤ ±Ã±ÀÇϽÅ

ºÐÀº S¸¦ 1À¸·Î Çسõ°í LCD Áß¾Ó¿¡¼­ ºÎÅÍ ±ÛÀÚ¸¦ ½á º¸½Ê½Ã¿ä.




( SET ADDRESS & WRITE DATA )


Àúµµ óÀ½¿¡´Â ±×·¨Áö¸¸ ¸¹Àº ºÐµéÀÌ LCDÀÇ ¸Þ¸ð¸® ü°è¿¡ ´ëÇؼ­

Á¤¸³ÀÌ µÇ¾îÀÖÁö ¾ÊÀ» °Í °°±º¿ä. ¾Õ °­Á¿¡¼­µµ Àá±ñ ¼³¸í ÇßµíÀÌ

LCD´Â LCDÀÇ ±ÛÀÚ À§Ä¡¿¡ ÇØ´çµÇ´Â Display Data RAM( DD RAM )ÀÌ

À־ ÀÌ°÷¿¡ °ªÀ» ¾²¸é ¾´ °ª¿¡ ÇØ´çÇÏ´Â ±ÛÀÚ°¡ ³ªÅ¸³³´Ï´Ù. µû¶ó¼­

ÀÚ½ÅÀÌ ¿øÇÏ´Â °÷¿¡ ±Û¾¾¸¦ ¾²±â À§Çؼ­´Â ¸ÕÀú " SET DD RAM ADDRESS "

¸í·ÉÀ¸·Î À§Ä¡¸¦ ÁöÁ¤ÇØ ÁÖ¾î¾ß ÇÕ´Ï´Ù.




(MSB)

SET DD RAM : 1 ADDRESS( 7 bit )




¿¹¸¦ µé¸é LCDÀÇ À­Á٠ù±ÛÀÚÀÇ À§Ä¡ ºÎÅÍ ±Û¾¾¸¦ ¾²±â À§Çؼ­´Â

10000000B¸¦ LCD¿¡ ½á ÁÖ°í ±×´ÙÀ½¿¡ " WRITE DATA CG OR DD RAM "

¸í·ÉÀ» ÀÌ¿ëÇÏ¿© ASCII µ¥ÀÌŸ( ½ÇÁ¦´Â ASCII¿Í ¾à°£ ´Ù¸§ ) °ªÀ» ½á

ÁÖ¸é µË´Ï´Ù. ±×´ÙÀ½ À§Ä¡¿¡ ±ÛÀÚ¸¦ ¾µ°æ¿ì´Â DD RAM ¾îµå·¹½º Ä«¿îÅÍ°¡

ÀÚµ¿À¸·Î Áõ°¡( when I/D = 1 ) ÇÔÀ¸·Î " SET DD RAM ADDRESS " ¸í·ÉÀ»

»ç¿ëÇÏÁö ¾Ê°í ¹Ù·Î ´ÙÀ½ ±ÛÀÚ¸¦ " WRITE DATA CG OR DD RAM " ¸í·ÉÀ¸·Î

¾²¸é µË´Ï´Ù. ±ÄÀÌ ±× ´ÙÀ½ ¹øÁö¸¦ ¼³Á¤ÇÑµÚ °ªÀ» ¾²°Ú´Ù¸é ¸»¸®Áö´Â

¾Ê°Ú½À´Ï´Ù.


LCD ±ÛÀÚ Áß¿¡´Â ¿ì¸®°¡ ±× ¸ð¾çÀ» ¸¸µé ¼öµµ ÀÖ½À´Ï´Ù. º¸ÅëÀÇ ÄÚµå

µ¥ÀÌŸ´Â LCD ³»ºÎÀÇ ÆùÆ®·Ò¿¡¼­ ±× ÆÐÅÏÀ» °¡Á®¿Í¼­ Ç¥½ÃÇÏÁö¸¸ 00 ~

07H ÄÚµå´Â ¿ì¸®°¡ ¸¸µç ÆùÆ®·¥ Áï Character Generator RAM( CG RAM

)¿¡¼­ ±× ÆÐÅÏÀ» °¡Á®´Ù Ç¥½ÃÇÕ´Ï´Ù. CG RAM¿¡ ÆÐÅÏÀ» ³Ö¾î ¸¸µç

±ÛÀڵ鵵 À§¿¡¼­ ¸»ÇÑ ¹æ¹ý°ú µ¿ÀÏÇÑ ¹æ¹ýÀ¸·Î µð½ºÇ÷¹À̸¦ ÇÒ ¼ö

ÀÖ½À´Ï´Ù. DD RAM¿¡ 16Áø¼ö '41'À» ½á ³ÖÀ¸¸é 'A'ÀÚ°¡ ½áÁö µíÀÌ 00 ~

07H ÀÇ °ªÀ» ½á ³ÖÀ¸¸é »ç¿ëÀÚ°¡ CG RAMÀ¸·Î ¸ð¾çÀ» ¸¸µç ±ÛÀÚ°¡ Ç¥½Ã

µË´Ï´Ù.


ÀÌÇظ¦ ½±°Ô Çϱâ À§Çؼ­ ÇÑ°¡Áö ¿¹¸¦ µì´Ï´Ù. ÇÁ¸°ÅÍ·Î ±ÛÀÚ¸¦

Ãâ·ÂÇÒ¶§ ±× ±ÛÀÚ°¡ ÇѱÛÀÌµç ¿µ¹®ÀÌµç ±×±ÛÀÚ¿¡ ÇØ´çÇÏ´Â Äڵ带

´øÁ®ÁÖ¸é Ÿ´Ù´Ú ÂïÈü´Ï´Ù. ¸¸¾à 'A'ÀÚ¸¦ Âï°íÀÚ Çß´Ù¸é 41H°ªÀ» ÁÖ¾î¾ß

ÇÕ´Ï´Ù.( ½ÇÁ¦´Â ±× µÚ¿¡ ij¸®Áö ¸®ÅÏ °ªÀ» ÁÖ¾î¾ß ÇÏÁö¸¸ ÀÏ´ÜÀº »ý·«

) ÇÁ¸°ÅÍ¿¡¼­ 'A'ÀÚ¸¦ Âï´Â ¶Ç ´Ù¸¥ ¹æ¹ýÀº ±ÛÀÚ¸¦ ´¯Çô¼­(?) ±×·¡ÇÈ

ó·³ dot ÇϳªÇϳªÀÇ °ªÀ» ´øÁ®ÁÖ¾î ±×·Á ÁÖ´Â ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù.

LCD¿¡¼­µµ ÀÌ¿Í À¯»çÇÏ°Ô 'A'ÀÚ¸¦ ±×·Á ³ÖÀ» ¼ö ÀÖ½À´Ï´Ù. ij¸¯ÅÍ

LCD¿¡¼­´Â 'A'ÀÚ¸¦ ±×¸±¶§ ÇÁ¸°ÅÍ¿¡¼­¿Í °°ÀÌ ºñÆ® ÆÐÅÏ µ¥ÀÌŸ¸¦ ÇÑ

¹ÙÀÌÆ®¾¿ ´øÁ® ÁÖ´Â °ÍÀÌ ¾Æ´Ï°í ¹Ì¸® CG RAM¿¡ ¸ð¾çÀ» ¸¸µç µÚ( ½á³ÖÀº

µÚ ) ±×¿¡ ÇØ´çÇϴ ij¸¯ÅÍ Äڵ带 ºÒ·¯¼­ ¾²´Â ¹æ½ÄÀ» ÃëÇÕ´Ï´Ù. CG

RAMÀ¸·Î ¸¸µç ±ÛÀÚÀÇ Ä³¸¯ÅÍ ÄÚµå´Â 00H ~ 07H±îÁö ÀÔ´Ï´Ù. ÀÌ°÷Àº

ASCII Äڵ忡¼­´Â Á¦¾î Äڵ尡 À§Ä¡ ÇÏÁö¸¸ LCD¿¡¼­´Â Á¦¾î Äڵ尡 ÇÊ¿ä

¾øÀ¸¹Ç·Î ÀÌ°÷ÀÇ ÄÚµå °ªÀ» »ç¿ëÀÚ Á¤ÀÇ¿ë ÄÚµå·Î ÇÒ´çÇÑ °ÍÀÔ´Ï´Ù.


¾Æ·¡ ±×¸²Àº ij¸¯ÅÍ ÄÚµå 00H¿¡ CG RAM¿¡ 'A'ÀÚ¸¦ ³ÖÀº °ÍÀÔ´Ï´Ù.


( Âü°í: ij¸¯ÅÍ ÄÚµå´Â ¿µ¹®À̳ª ¼ýÀÚ´Â ASCII¿Í °°Áö¸¸ ³ª¸ÓÁö´Â

°¡Å¸°¡³ª ¿Í °úÇÐ ±âÈ£ »ç¿ëÀÚ Á¤ÀÇ °ø°£ µîÀ¸·Î ä¿öÁ® ÀÖ¾î

ASCII¿Í´Â ¾à°£ ´Ù¸£´Ù. )




. . . 0 1 1 1 0 <-- CG RAMÀÇ 0 ¹øÁö

. . . 1 0 0 0 1 ,, 1 ,,

. . . 1 0 0 0 1 ,, 2 ,,

. . . 1 0 0 0 1

. . . 1 1 1 1 1 .

. . . 1 0 0 0 1 .

. . . 1 0 0 0 1 .

. . . 0 0 0 0 0


|

| .°ú 0À» ¾ø´Ù°í º¸¸é

\|/


1 1 1 \

1 1 |

1 1 |

1 1 \ ÀÌ ±ÛÀÚ Àüü°¡

1 1 1 1 1 / ij¸¯ÅÍ ÄÚµå 00H¿¡

1 1 | ÇØ´ç µÈ´Ù.

1 1 |

/

À§ ±×¸²¿¡¼­ º¸µíÀÌ ÇÑ ±ÛÀÚ´Â 8¹ÙÀÌÆ® Áï 8°³ÀÇ CG RAMÀ¸·Î ±¸¼º

µË´Ï´Ù. »ç¿ëÀÚ¿ë ij¸¯ÅÍ ÄÚµå´Â 00h ~ 07h ÃÑ 8 ±ÛÀÚ À̹ǷΠCG RAMÀº

8 x 8 = 64 byte°¡ Á¸Àç ÇÕ´Ï´Ù. À§ ±×¸² ó·³ CG RAMÀÇ Ã³À½ 8 byte°¡

ij¸¯ÅÍ ÄÚµå 00h¿¡ ¸ÅĪµÇ¹Ç·Î, ±× ´ÙÀ½ 8 byteÀÇ CG RAMÀº ij¸¯ÅÍ ÄÚµå

01h¿¡ ´ëÀÀÇÕ´Ï´Ù. ÀÌ·±½ÄÀ¸·Î 8°³ÀÇ Äڵ忡 CG RAM 64 byte°¡ ¸ÅĪÀÌ

µË´Ï´Ù.

¹®Á¦ : " CG RAM 18 ¹øÁö´Â ij¸¯ÅÍ Äڵ尡 ¾î¶»°Ô µÇ¸ç ±ÛÀÚÀÇ ¸î¹ø°

ÁÙ ¸ð¾ç(pattern)ÀԴϱî? "

ij¸¯ÅÍ ÄÚµåÀÇ 08H ~ 0FH´Â 00H ~ 07H¿Í ¿ÏÀüÈ÷ °°½À´Ï´Ù. µû¶ó¼­ 00H¸¦

LCD¿¡ Ãâ·ÂÇÏ´Â °Í°ú 08H¸¦ Ãâ·ÂÇÏ´Â °ÍÀº µ¿ÀÏÇÕ´Ï´Ù. ¸ô¶óµµ µË´Ï´Ù.

(MSB)

SET CG RAM : 0 1 ADDRESS( 6 bit )

CG RAMÀÇ ¾îµå·¹½º ¼³Á¤Àº MSB¸¸ ´Ù¸¦ »Ó DD RAMÀÇ ¾îµå·¹½º ¼³Á¤°ú

°°½À´Ï´Ù.

¿©±â±îÁö Àаí ¯±¸°¡ Àß µ¹¾Æ°¡´Â ºÐµé Áß¿¡´Â ÀÌ»óÇÑ Á¡À» ´«Ä¡ ä½Å

ºÐµéÀÌ ÀÖÀ» °Í °°±º¿ä. DD RAM°ú CG RAM¿¡ ¾îµå·¹½º¸¦ ¼¼Æ® ½ÃÅ°´Â(

¶Ç´Â ¾²´Â ) ¸í·ÉÀº ¼­·Î ±¸ºÐµÇ¾î Àִµ¥ µ¥ÀÌŸ °ªÀ» ¾²´Â ¸í·ÉÀº "

WRITE DATA TO CG OR DD RAM " Çϳª·ÎµÇ ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù. ±×·¸´Ù¸é "

WRITE DATA TO CG OR DD RAM "À¸·Î °ªÀ» ¾´´Ù¸é ±× °ªÀº CG RAM¿¡ µé¾î

°¥±î¿ä? ¾Æ´Ï¸é DD RAM¿¡ µé¾î °¥±î¿ä? Á¤´äÀº " ³ªµµ ¸ð¸§ ". ¾îµð·Î

µé¾î °¡´Â Áö´Â °¡Àå ÃÖ±Ù¿¡ ¾î´À ¾îµå·¹½º¸¦ ¼¼Æ® Çß´À³Ä¿¡ µû¶ó

¹æÇâÀÌ °áÁ¤ µË´Ï´Ù.

" OK ? " ," º°·Î ¾î·ÆÁö ¾ÊÀ¸´Ï±î ÀÌÇØ Çß°ÚÁö¹¹. "


DD RAM¿¡ 00h¸¦ ¾²¸é CG RAM 00H ~ 07HÀÇ ºñÆ®°¡ ¸¸µé¾î³»´Â ¸ð¾çÀÌ

±×À§Ä¡¿¡ Ç¥½ÃµÈ´Ù°í Çß½À´Ï´Ù. ÀÌ ¸»Àº »ç¿ëÀÚ°¡ Á¤ÀÇ ±ÛÀÚ¸¦ µ¿½Ã¿¡

8°³¸¦ Ç¥½ÃÇÒ ¼ö ÀÖ´Ù´Â ¸»ÀÔ´Ï´Ù. CG RAMÀÇ ³»¿ëÀº ¾ðÁ¦³ª º¯°æÀÌ

°¡´ÉÇϹǷΠ±× °ªÀ» º¯°æ ½ÃÅ°¸é ¾ðÁ¦µçÁö ´Ù¸¥ ¸ð¾çÀ» Ç¥½Ã ÇÒ ¼ö

ÀÖ½À´Ï´Ù. - " ³Ê¹« ´ç¿¬ÇÏ´Ù°í¿ä. ³­~¶Ç Ȥ½Ã³ª Çؼ­.."

" ´ëÃæ ij¸¯ÅÍ LCD´Â ¼³¸íÀº ³¡³µ±º¿ä. ´ÙÀ½ °­ÁºÎÅÍ´Â LCD¸¦ Á÷Á¢

´Ù·ç¾î º¸°Ú½À´Ï´Ù. "

°è¼ÓÇϽðڽÀ´Ï±î? (Y/n) >>

±è°æ±Ù (maroboss)

[8051] LCD ¿¹Á¦ (1) 01/24 15:35 407 line


LCD ¿¹Á¦(1)

JS8051A¸¦ »ç¿ëÇÏ¿© LCD¿¡ ±ÛÀÚ¸¦ ³ªÅ¸³» º¸°Ú½À´Ï´Ù. ¾Æ·¡ ¿¹Á¦´Â

LCDÀÇ µÎ¹ø° ±ÛÀÚÀÇ À§Ä¡ºÎÅÍ 'ABC'¸¦ Ãâ·ÂÇÕ´Ï´Ù.

¾Æ·¡ ¿¹Á¦ È­ÀÏÀº JS8051A ³»Àå µð½ºÄÏ¿¡ ÀÖ´Â JS51_LCD.ASMÀ» ÁÙÀΰÍ

ÀÔ´Ï´Ù. ¿¹Á¦ ¾È¿¡ ÀÖ´Â LCD °ü·Ã ½áºê·çƾÀ» º¸¸é ÀÌÇØ Çϴµ¥ º°

¾î·Á¿òÀº ¾ø½À´Ï´Ù.


¾Æ·¡ LCD ½áºê·çƾÀ» º¸¸é ¸ðµÎ 'CL_'·Î ½ÃÀ۵Ǵµ¥ 'Character Lcd'ÀÇ

¾àÀÚÀÔ´Ï´Ù. ( ¿©±â °­Á¿¡¼­´Â ¼³¸íÇÏÁö ¾ÊÀº 'Graphic Lcd'ÀÇ 'GL_'·Î

½ÃÀ۵Ǵ ·çƾ°ú ±¸ºÐÇϱâ À§ÇÑ °ÍÀÔ´Ï´Ù. )

CL_INIT : initialize, LCD¿¡ µû¶ó¼­´Â Çѹø¸¸ CALL Çصµ ÃʱâÈ­°¡

µÇ´Â °ÍÀÌ ÀÖ°í ±× ÀÌ»ó ÇØÁÖ¾î¾ß Çϴ°ÍÀÌ ÀÖ´Ù.

CL_CLEAR : È­¸é Áö¿ì±â

CL_INC_WR : ±Û¾¾´Â Áõ°¡ ¹æÇâ( ¿À¸¥ÂÊ )À¸·Î WRITEÇÔ

CL_C_OFF : Ä¿¼­ ²û

CL_DDR1 : DDRAM ¼³Á¤

CL_CHAR1 : ÇѱÛÀÚ Ãâ·Â

CL_WAIT : LCD ¸í·É ÈÄ BUSY FLAG´ë½Å ÀÏ°ýÀûÀ¸·Î ÀÏÁ¤½Ã°£ ´ë±â.


¾Æ·¡ ¿¹Á¦´Â ÀÏ´Ü µÎ°³ÀÇ È­ÀÏ·Î ¸¸µå½Ê½Ã¿ä. 'END' ±îÁö¸¦ JS_LCD1.ASM

À̶ó À̸§À» ÁÖ°í ³ª¸ÓÁö LCD °ü·Ã ·çƾÀº JS_LCDH1.INC ¶ó´Â À̸§À¸·Î

ÀúÀåÇϽʽÿä.

'JS_LCD1.ASM' ³¡¿¡ "INCLUDE JS_LCDH1.INC"¶ó°í µÇÀִµ¥ ÀÌ°ÍÀº

ÇöÀçÀÇ µð·ºÅ丮¿¡ÀÖ´Â JS_LCDH1.INC¸¦ Àоîµé¿© ÇÕÄ¡¶ó´Â ÀǹÌÀÔ´Ï´Ù.

(´Ù¸¥ µð·ºÅ丮¿¡¼­ ÀаíÀÚ ÇÑ´Ù¸é È­ÀÏÀ̸§ ¾Õ¿¡ °æ·Î¸¦ ½áÁֽʽÿä.)

¿¹¸¦µé¾î ¾Æ·¡¿Í °°ÀÌ A.ASM, B.ASM, C.ASM À̶ó´Â À̸§ÀÇ ¼¼°³ÀÇ

È­ÀÏÀÌ ÀÖ´Ù¸é

A.ASM

123

B.ASM

456

789

10

C.ASM

123

456

789

10

C.ASMÀº INCLUDE '°ÅÁþ¸í·É'À» »ç¿ëÇÏ¿© ¾Æ·¡¿Í °°ÀÌ ¾µ ¼ö ÀÖ½À´Ï´Ù.

C.ASM

123

INCLUDE B.ASM

INCLUDE¸¦ ¾î¶»°Ô »ç¿ëÇÏ´ÂÁö ¾Æ½Ã°ÚÁö¿ä.

¾Æ·¡ ¿¹Á¦¿¡ ³ª¿À´Â JS_LCDH1.INC ´Â ´ÙÀ½ °­Á¿¡ ¿Ã¶ó°¡´Â ¿¹Á¦¿¡¼­µµ

»ç¿ëµË´Ï´Ù. ¹ö¸®Áö ¸¶¼¼¿ä.

;==================================================================

;

; JS_LCD1.ASM

;

;==================================================================

LCDCW1 EQU 0F200H

LCDCR1 EQU 0F201H

LCDDW1 EQU 0F202H

LCDDR1 EQU 0F203H

ORG 0000H

JMP START

ORG 0033H

START:

NOP

NOP

MOV SP,#70H

CALL CL_CLEAR

CALL CL_INIT

CALL CL_INIT

CALL CL_CLEAR

CALL CL_INC_WR

CALL CL_C_OFF

MOV A,#1 ; ¾îµå·¹½º = 01

CALL CL_DDR1 ; DDRAM ¼³Á¤

MOV A,#'A' ; A Ãâ·Â

CALL CL_CHAR1 ;

MOV A,#'B' ; B Ãâ·Â

CALL CL_CHAR1 ;

MOV A,#'C' ; C Ãâ·Â

CALL CL_CHAR1 ;

JMP $

INCLUDE JS_LCDH1.INC

END

==================================================================

;==================================================================

;

; JS_LCDH1.INC

;

;==================================================================

;(X-1)

; < CHARACTER LCD INIT >

;

; TRANSFER : NO

; CHANGE : A

; RETURN : NO

; REFERENCE :

;

;==================================================================

CL_INIT:

PUSH DPH

PUSH DPL

MOV DPTR,#LCDCW1

MOV A,#00111100B

MOVX @DPTR,A

CALL CL_WAIT

POP DPL

POP DPH

RET

;==================================================================

;==================================================================

;(X-2)

; < CHARACTER LCD CLEAR >

;

; TRANSFER : NO

; CHANGE : A

; RETURN : NO

; REFERENCE :

;

;==================================================================

CL_CLEAR:

PUSH DPH

PUSH DPL

MOV DPTR,#LCDCW1

MOV A,#00000001B

MOVX @DPTR,A

CALL D_1MS

CALL D_1MS

POP DPL

POP DPH

RET

;==================================================================

;==================================================================

;(X-4)

; < CHARACTER LCD INCREMENTAL WRITE >

;

; TRANSFER : NO

; CHANGE : A

; RETURN : NO

; REFERENCE :

;

;==================================================================

CL_INC_WR:

PUSH DPH

PUSH DPL

MOV DPTR,#LCDCW1

MOV A,#00000110B

MOVX @DPTR,A

CALL CL_WAIT

POP DPL

POP DPH

RET

;==================================================================

;==================================================================

;(X-8)

; < CHARACTER LCD CURSOR OFF >

;

; TRANSFER : NO

; CHANGE : A

; RETURN : NO

; REFERENCE :

;

;==============================================================

L_C_OFF:

PUSH DPH

PUSH DPL

MOV DPTR,#LCDCW1

MOV A,#00001100B

MOVX @DPTR,A

CALL CL_WAIT

POP DPL

POP DPH

RET

;==================================================================

;==================================================================

;(X-11)

; < CHARACTER LCD DISPLAY DATA RAM ADDRESS SET >

;

; TRANSFER : A

; CHANGE : A

; RETURN : NO

; REFERENCE :

;

;==================================================================

CL_DDR1:

PUSH DPH

PUSH DPL

MOV DPTR,#LCDCW1

ORL A,#10000000B

MOVX @DPTR,A

CALL CL_WAIT

POP DPL

POP DPH

RET

;==================================================================

;==================================================================

;(X-13)

; < CHARACTER LCD DISPLAY CHAR >

;

; TRANSFER : A

; CHANGE : A

; RETURN : NO

; REFERENCE :

;

;==================================================================


CL_CHAR1:


PUSH DPH

PUSH DPL

PUSH A


MOV DPTR,#LCDDW1

MOVX @DPTR,A

CALL CL_WAIT


POP A

POP DPL

POP DPH


RET


;==================================================================

;==================================================================

;(X-20)

; < DELAY FOR CHARACTER LCD >

;

;==================================================================


CL_WAIT:

PUSH R0

MOV R0,#50

DJNZ R0,$

POP R0

RET


;==================================================================

;==================================================================

; (3-1)

; < DELAY >

;

; CLK = 11.0592 MHz

;

;==================================================================


;;;;;;;;;;;;;;;;;;;;< 10 uS >;;;;;;;;;;;;;;;;;;;;


D_10US: ; 9*12/CLK

NOP ; = 10 uS

RET


;;;;;;;;;;;;;;;;;;;;< 100 uS >;;;;;;;;;;;;;;;;;;;;


D_100US: ; (13 + N * 2 )*12/CLK

PUSH PSW ; = 100 uS

PUSH R0

CLR RS1

CLR RS0

MOV R0,#36 ; N = 40

DJNZ R0,$

POP R0

POP PSW

RET


;;;;;;;;;;;;;;;;;;;;< 1 mS >;;;;;;;;;;;;;;;;;;;;


D_1MS:

PUSH PSW

PUSH R0

PUSH R1

CLR RS1

CLR RS0


MOV R0,#12

D_1MS_1:

MOV R1,#36

DJNZ R1,$

DJNZ R0,D_1MS_1

POP R1

POP R0

POP PSW

RET


;;;;;;;;;;;;;;;;;;;;< 10 mS >;;;;;;;;;;;;;;;;;;;;


D_10MS:

PUSH PSW

PUSH R0

PUSH R1

CLR RS1

CLR RS0


MOV R0,#70

D_10MS_1:

MOV R1,#63

DJNZ R1,$

DJNZ R0,D_10MS_1

POP R1

POP R0

POP PSW

RET


;;;;;;;;;;;;;;;;;;;;< 100 mS >;;;;;;;;;;;;;;;;;;;;


D_100MS:

PUSH PSW

PUSH R0

PUSH R1

CLR RS1

CLR RS0


MOV R0,#200

D_100MS_1:

MOV R1,#228

DJNZ R1,$

DJNZ R0,D_100MS_1

POP R1

POP R0

POP PSW

RET


;;;;;;;;;;;;;;;;;;;;< 1 S >;;;;;;;;;;;;;;;;;;;;


D_1S:

PUSH PSW

PUSH R0

CLR RS1

CLR RS0


MOV R0,#10

D_1S_1:

CALL D_100MS

DJNZ R0,D_1S_1

POP R0

POP PSW

RET


;==================================================================



°è¼ÓÇϽðڽÀ´Ï±î? (Y/n) >>

±è°æ±Ù (maroboss)

[8051] LCD ¿¹Á¦ (2) 01/24 15:36 130 line


LCD ¿¹Á¦(2)




LCD¸¦ »ç¿ëÇÏ´Ù º¸¸é Çѹ®ÀåÀ» Ãâ·ÂÇØ¾ß ÇÒ °æ¿ì°¡ »ý±â´Âµ¥, ÀÌ·¯ÇÑ

°æ¿ì ¾Õ¿¡¼­ ¹è¿î ÇѱÛÀÚ Ãâ·Â ·çƾÀÎ CL_CHAR1À» ¿©·¯¹ø »ç¿ëÇϸé

µÇÁö¸¸ ±×·¸°ÔÇÏ¸é ¿©°£ °¡±õÇÏ°í ÇÁ·Î±×·¥µµ ±æ¾îÁö°í Æǵ¶¼ºµµ ÇöÀúÈ÷

¶³¾îÁö°Ô µË´Ï´Ù. ±×·¸´Ù¸é °í±Þ¾ð¾î ó·³ ¹®ÀåÀ» Çϲ¨¹ø¿¡ Ãâ·ÂÇÏ´Â

¹æ¹ýÀº ¾øÀ»±î¿ä? ¾î´ÀÁ¤µµ ´É·ÂÀÌ µÇ´Â ºÐÀº Á÷Á¢ µµÀüÇØ º¸½Ê½Ã¿ä.

½¬¿î ¹æ¹ýÀ¸·Î´Â Ãâ·ÂÇÒ ¹®ÀåÀ» ÇÁ·Î±×·¥ÀÇ ³¡( ¶Ç´Â Àû´çÇÑ °÷)¿¡ ¸ðµÎ

¸ð¾Æ ³õ°í °¢ ¹®ÀåÀÇ ½ÃÀÛ ¹øÁö¿Í ±ÛÀÚ °¹¼ö¸¦ ÇÔ¼ö¿¡ ÀüÇØ ÁÖ°í

Ãâ·ÂÇÔ¼ö¸¦ ÄÝÇÏ¸é µË´Ï´Ù.

MSG1:

DB 'HELLOW'

MSG2:

DB 'I'm JEONG_YONG_WON'




±ÛÀÚÀÇ °¹¼ö¸¦ ¹®ÀåÀÇ ¸Ç ¾Õ¿¡ ½áÁÖ°í ½ÃÀÛ ¹øÁö¸¸ ³Ñ°ÜÁÖ´Â ¹æ¹ýµµ

ÀÖ½À´Ï´Ù.




MSG1:

DB 6,'HELLOW'

MSG2:

DB 18,'I'm JEONG_YONG_WON'




¸Å¹ø ±ÛÀÚÀÇ °¹¼ö¸¦ ¼¼¾î¼­ Àü´ÞÇØ ÁֱⰡ ±ÍÂúÀº °æ¿ì´Â ¹®ÀåÀÇ ³¡¿¡

³¡À̶ó´Â Ç¥½Ã¸¦ ÄÚµå·Î ÇÏ¸é µË´Ï´Ù. ¿¹¸¦ µé¸é 0À» ¹®ÀåÀÇ ³¡À»

Ç¥½ÃÇÏ´Â ÄÚµå·Î »ç¿ëÇÑ´Ù¸é ´ÙÀ½°ú °°ÀÌ µË´Ï´Ù.




MSG1:

DB 'HELLOW',0

MSG2:

DB 'I'm JEONG_YONG_WON',0




ÈùÆ®¸¦ ¸¹ÀÌ µå·ÈÀ¸´Ï Á÷Á¢ µµÀüÇØ º¸½Ê½Ã¿ä.




À§ÀÇ ¹æ¹ýµéÀÇ ´ÜÁ¡Àº Ãâ·ÂÇÒ ¹®ÀåÀ» ´Ù¸¥ °÷¿¡ µÎ¾î¾ß ÇÏ¸ç ¹øÁö¸¦

Àü´ÞÇØ ÁÖ¾î¾ß ÇÏ´Â °áÁ¡ÀÌ ÀÖ½À´Ï´Ù. ±×·¡¼­ ½ÇÁ¦ »ç¿ë¿¡´Â ¾Æ·¡ÀÇ

CL_STR1À» »ç¿ëÇϽʽÿä. ÀÌ ½áºê·çƾÀº Á»´õ Áøº¸µÈ ÇüÅ·Π¹®Àå Ãâ·Â

CALL ¸í·É ¹Ù·Î ´ÙÀ½¿¡ Ãâ·ÂÇÒ µ¥ÀÌŸ¸¦ µÎ´Â ¹æ¹ýÀÔ´Ï´Ù. ¿¹¸¦ µé¾î

'JEONG YONG WON'À» Ãâ·ÂÇÏ·Á¸é »ç¿ë Çü½ÄÀº ´ÙÀ½°ú °°½À´Ï´Ù.




CALL CL_STR1

DB 'JEONGYONGWON',0




Ãʺ¸ÀÚ ºÐµéÀº ¾Æ·¡ CL_STR1À» ºÐ¼®ÇÏÁö ¸»°í ±×³É ¾²¼Åµµ ÁÁ½À´Ï´Ù.

Ȥ½Ã ÀÚÁ¸½ÉÀÌ »óÇß´Ù¸é Á÷Á¢ ºÐ¼®ÇØ º¸½Ê½Ã¿ä.


ÈùÆ®¿Í ¼³¸íÀº ¿ÏÀüÈ÷ »ý·«ÇÕ´Ï´Ù. ´Ü, CL_STR1Àº ¹Ýµå½Ã LCALL·Î

ºÒ·¯ ¾´´Ù°í º¸°í ºÐ¼®ÇϽʽÿä.




"È÷È÷, Çѹø °í»ýÁ» ÇغÁ¶ó!"




´ÙÀ½À» JS_LCDH1.INC¿¡ Ãß°¡ ½ÃÄÑ Áֽʽÿä.


;==================================================================

;(X-13_1)

; < CHARACTER LCD PUT STRING >

;

; TRANSFER : NO

; CHANGE : A

; RETURN : NO

; REFERENCE :

;

;==================================================================


CL_STR1:


PUSH DPH

PUSH DPL


MOV A,SP

CLR C

SUBB A,#2

XCH A,SP

POP DPH

POP DPL

XCH A,SP


CL_STR_1:

CLR A

MOVC A,@A+DPTR

JZ CL_STR1END


PUSH DPH

PUSH DPL

MOV DPTR,#LCDDW1

MOVX @DPTR,A

POP DPL

POP DPH


CALL CL_WAIT


INC DPTR


JMP CL_STR_1




CL_STR1END:


INC DPTR

MOV A,SP

CLR C

SUBB A,#4

XCH A,SP

PUSH DPL

PUSH DPH

XCH A,SP


POP DPL

POP DPH


RET


;==================================================================





°è¼ÓÇϽðڽÀ´Ï±î? (Y/n) >>

±è°æ±Ù (maroboss)

[8051] HEX->BCD 01/24 15:37 210 line


HEX --> BCD




hogeun´Ô Áú¹®


" ¾È³çÇϼ¼¿ä.

8051 °­Á Á¤¸» °¨¸í ±í°Ô Àаí ÀÖÀ¾´Ï´Ù.

¾Æ½Ã´ÂºÐÀº ´Ù¸£±º Çϴ°ÍÀ» »õ»ï ´À³§´Ï´Ù.

°è¼Ó Áñ°Å¿î °­Á ºÎŹÇÕ´Ï´Ù.

Áú¹®Àº Á¦°¡ ¿äÁò RAM¿¡ ÀÖ´Â BINARY°ªÀ» LCD¿¡ ½ÊÁø¼ö·Î

Ç¥½ÃÇÒ·Á°í Çϴµ¥ 2Áø¼ö¸¦ 10Áø¼ö·Î º¯È¯Çϴ°ÍÀÌ Á¤¸» Èûµé±º¿ä.

Ã¥À» ã¾Æº¸¾Æµµ ¸íÈ®ÇÑ ´äÀÌ ³ª¿ÀÁö ¾Ê¾Æ¼­ ÀÌ·¸°Ô Áú¹®µå¸³´Ï´Ù.

Ä£ÀýÇÑ ´äº¯ ºÎŹÇÕ´Ï´Ù.

Àú´Â 8051À» óÀ½ Á¢ÇÏ´Â Ãʺ¸ÀÚ Àε¥ °­Á°¡ Á¤¸» À¯ÀÍÇÕ´Ï´Ù.

±×·³ ¾È³çÈ÷....

À¯ È£±Ù. "




´äº¯


À¯È£±Ù´Ô ¾È³çÇϼ¼¿ä. »¡¸® ¿Ã¸°´Ù ¿Ã¸°´Ù Çϸ鼭µµ ..... ³¡³» ÀÌ·¸°Ô

´Ê¾îÁ³±º¿ä. ¿äÁò ÇÏ´Â ÀÏ Àß µÇ½Ã´ÂÁö¿ä? ¼ú ÇÑÀÜ ¾ðÁ¦ »ì°Ì´Ï±î?


¾Æ·¡ HEX2DEC´Â Á¦°¡ ¸¸µé¾î ¾²´Â ·çƾ ÁßÀÇ Çϳª Àε¥ ¾à°£ ±æ±ä

ÇÏÁö¸¸ Á÷°¨ÀûÀ¸·Î ÀÌÇØÇϱⰡ ½±½À´Ï´Ù. ±ÞÇÏ½Ã¸é ºÐ¼®ÇÏÁö ¸»°í ¹Ù·Î

¾²¼¼¿ä.


»ç¿ë¹ýÀº HEX2DEC¸¦ ºÎ¸£±â Àü¿¡ ·¹Áö½ºÅÍ ¹ðÅ© 0ÀÇ R1, R2, R3¿¡ °ªÀ»

³ÖÀºµÚ ÇÔ¼ö¸¦ ÄÝÇϸé R4, R5, R6, R7¿¡ º¯È¯µÈ °ªÀÌ µé¾î°¡°Ô µË´Ï´Ù.

¿¹¸¦ µé¾î 00FFFFH¸¦ º¯È¯ÇÑ´Ù¸é ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µË´Ï´Ù.




MOV R1,#00H

MOV R2,#00H

MOV R3,#00H

CALL HEX2DEC

==> R4,R5,R6,R7 = 00065535H

ÇÁ·Î±×·¥ Áß¿¡ TEMP0 ~ TEMP3ÀÌ »ç¿ëµÇ´Âµ¥ ³»ºÎ ·¥ Áß¿¡ ¾È¾²´Â ºÎºÐ¿¡

ÇÒ´çÇØ ÁÖ½Ã¸é µË´Ï´Ù. ¿¹¸¦ µé¸é ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µË´Ï´Ù.




TEMP0 EQU 30H

TEMP1 EQU 31H

TEMP2 EQU 32H

TEMP3 EQU 33H




¾Æ·¡¿Í °°Àº ¹æ¹ýÀ¸·Î º¯È¯À» °è¼ÓÇÏ¸é ´õ¿í Å« ¼öÀÇ º¯È¯µµ

°¡´ÉÇÕ´Ï´Ù. ´õ Å« °ªÀÇ º¯È¯ÀÌ ÇÊ¿äÇϸé Á÷Á¢ Çغ¸¼¼¿ä. ¾ÈµÇ¸é ¿¬¶ô

ÁÖ¼¼¿ä.




;==================================================================

;

; < HEX TO DECIMAL 3 BYTE >

;

; TRANSFER : RS0 R1,2,3

; CHANGE : RS0, TEMP0 ~ TEMP3

; RETURN : R1,2,3 (HEX) -> 4,5,6,7 (DECIMAL)

; ( DON'T CARE CARRY )

; REF : BCD_ADD

;

;==================================================================

HEX2DEC:


PUSH PSW ; PSW

PUSH A


CLR RS1

CLR RS0 ; REGISTOR MODE = 00


MOV TEMP0,R0

MOV TEMP1,R1

MOV TEMP2,R2

MOV TEMP3,R3


MOV R4,#0

MOV R5,#0

MOV R6,#0

MOV R7,#0 ; CLEAR BASE


MOV A,TEMP3 ; TEMP3 CONVERSION

ANL A,#0FH

JZ HEX_D_2

MOV R0,#0 ; 1

MOV R1,#0 ;

MOV R2,#0 ;

MOV R3,#1 ;

HEX_D_1:

CALL BCD_ADD ; SUM = 0000 + ????

DJNZ A,HEX_D_1


HEX_D_2:

MOV A,TEMP3

SWAP A

ANL A,#0FH

JZ HEX_D_4

MOV R0,#0 ; 16

MOV R1,#0 ;

MOV R2,#0 ;

MOV R3,#16H ;

HEX_D_3:

CALL BCD_ADD ; SUM = SUM + ????

DJNZ A,HEX_D_3


HEX_D_4:

MOV A,TEMP2 ; TEMP2 CONVERSION

ANL A,#0FH

JZ HEX_D_6

MOV R0,#0 ; 256

MOV R1,#0 ;

MOV R2,#02H ;

MOV R3,#56H ;

HEX_D_5:

CALL BCD_ADD ; SUM = SUM + ????

DJNZ A,HEX_D_5


HEX_D_6:

MOV A,TEMP2

SWAP A

ANL A,#0FH

JZ HEX_D_8

MOV R0,#0 ; 4096

MOV R1,#0 ;

MOV R2,#40H ;

MOV R3,#96H ;

HEX_D_7:

CALL BCD_ADD ; SUM = SUM + ????

DJNZ A,HEX_D_7


HEX_D_8:

MOV A,TEMP1 ; TEMP1 CONVERSION

ANL A,#0FH

JZ HEX_D_10

MOV R0,#0 ; 65536

MOV R1,#06H ;

MOV R2,#55H ;

MOV R3,#36H ;

HEX_D_9:

CALL BCD_ADD ; SUM = SUM + ????

DJNZ A,HEX_D_9


HEX_D_10:

MOV A,TEMP1

SWAP A

ANL A,#0FH

JZ HEX_D_12

MOV R0,#01H ; 01048576

MOV R1,#04H ;

MOV R2,#85H ;

MOV R3,#76H ;

HEX_D_11:

CALL BCD_ADD ; SUM = SUM + ????

DJNZ A,HEX_D_11


HEX_D_12:

POP A

POP PSW ; PSW

RET


;==================================================================


;==================================================================

;

; < PACKED BCD ADD >

;

; TRANSFER : RS0

; CHANGE : RS0

; RETURN : R4,5,6,7 = R0,1,2,3 + R4,5,6,7

;

;==================================================================


BCD_ADD:


PUSH PSW ; PSW

PUSH A


CLR RS1

CLR RS0 ; REGISTOR MODE = 00


MOV A,R3

A,R7

DA A

MOV R7,A


MOV A,R2

ADDC A,R6

DA A

MOV R6,A


MOV A,R1

ADDC A,R5

DA A

MOV R5,A


MOV A,R0

ADDC A,R4

DA A

MOV R4,A


POP A

POP PSW ; PSW


RET


;==================================================================

°è¼ÓÇϽðڽÀ´Ï±î? (Y/n) >>

±è°æ±Ù (maroboss)

[8051] DSAM51&UPCOM µð½º¾î¼Àºí·¯ 01/25 17:23 18 line


DASM51, UPCOM


Solvy´Ô, wykoh´Ô ºÎŹÇÏ½Å°Í ÀÚ·á½Ç¿¡ ¿Ã·È½À´Ï´Ù.

Á» ´Ê¾úÁö¿ä. Á˼Û...


DASM51.EXE : 8051 DISASSEMBLER

UPCOM : JS8051-A UPLOAD PROGRAM FOR ALL COM PORT & ALL BAUD RATE.

±×³É UPCOM Ä¡¸é »ç¿ë¹ýÀÌ ³ª¿É´Ï´Ù.

14400bps ÀÌ¿ÜÀÇ baud rate¸¦ »ç¿ëÇÏ·Á¸é JS8051-AÀÇ

¸ð´ÏÅÍ ·ÒÀ» ¿øÇÏ´Â ¼Óµµ·Î ´Ù½Ã ÇÁ·Î±×·¥ÇØ Áֽʽÿä.


µÎ È­ÀÏ Çϳª·Î ÇÕÃļ­ ¿Ã¸²´Ï´Ù.


Âü, wykoh´Ô º¸³» ÁÖ½ÅÃ¥ Àß ¹Þ¾Ò½À´Ï´Ù.

¸î Ä¥Àü¿¡ ã¾Æ ¿Ô½À´Ï´Ù. °í¸¿½À´Ï´Ù.


- Á¤¿ë¿ø ¿Ã¸²

PRINTER/CAPTURE¸¦ OFF ÇϽðí Enter¸¦ ´©¸£½Ê½Ã¿À. ¸¶ÀÌÅ©·Î ÇÁ·Î¼¼¼­ [°­ÁÂ] () 313/313 (ÃÑ 210°Ç)

¹øÈ£ À̸§ ID ³¯Â¥ Á¶È¸ Pg Á¦ ¸ñ

313 ±è°æ±Ù maroboss 02/02 8 6 [8051] ÀÎÅÍ·´Æ®(1)

312 ±è°æ±Ù maroboss 02/02 5 15 [8051] LCD ¿¹Á¦(3)

311 µðÁöÅ» k2dig 02/01 25 1 À̶õÀº °­Á¶õÀÔ´Ï´Ù.

308 Áö¿µÁØ chee 01/27 45 18 [PIC16C71] A/D ÇÏ¿© Á÷·Ä Àü¼Û

307 ÀÌÁ¾±Õ NoSeeGo 01/26 33 2 [UP] I2C-BUS EEPROM ÇÁ·Î±×·¥ ¼öÁ¤ÇÑ °Í

306 ±è°æ±Ù maroboss 01/25 68 2 [8051] DSAM51&UPCOM µð½º¾î¼Àºí·¯

305 ±è°æ±Ù maroboss 01/24 38 14 [8051] HEX->BCD

304 ±è°æ±Ù maroboss 01/24 31 9 [8051] LCD ¿¹Á¦ (2)

303 ±è°æ±Ù maroboss 01/24 30 26 [8051] LCD ¿¹Á¦ (1)

302 ±è°æ±Ù maroboss 01/17 86 10 [8051] LCD ¸í·É (2)

300 ±è°æ±Ù maroboss 01/15 132 12 [8051] LCD ¸í·É (2)

299 ±è°æ±Ù maroboss 01/15 62 6 [8051] Å° ¸ÞÆ®¸¯½º

296 °í¿ø¿ë wykoh 01/06 79 8 [8051] JS8051A¿¡¼­ FORTH¸¦ ½á º¾½Ã´Ù (1)

295 ±è°æ±Ù maroboss 01/06 134 12 [8051] LCD ÀÎÅÍÆäÀ̽º

294 ±è°æ±Ù maroboss 01/06 102 6 [8051] LCD ÇÉ

293 ±è°æ±Ù maroboss 01/06 80 3 [8051] ij¸¯ÅÍ LCD¶ó´Â °ÍÀÌ Àִٸ鼭¿ä?

¹øÈ£/¸í·É(H,P,T,M,N,A,GO,PF,ME,MM,HI,Z,X)

>> PR 312 313

PRINTER/CAPTURE¸¦ ÁغñÇϽðí Enter¸¦ ´©¸£½Ê½Ã¿À

±è°æ±Ù (maroboss)

[8051] LCD ¿¹Á¦(3) 02/02 14:20 227 line


LCD ¿¹Á¦(3)




À̹ø¿¡´Â ¿©·¯ºÐÀÌ °¡Àå ¹Ì¿öÇÏ´Â(?) CGRAMÀ» Á¦¾îÇØ º¸°Ú½À´Ï´Ù.


¸ÕÀú Áö³­¹ø °­Á¸¦ ±î¸Ô¾ú³ª ¿ÎÀÎ ÇÏ°Ú½À´Ï´Ù. ¸¸¾à ÇϳªÀÇ °ü¹®À̶óµµ

Åë°úÇÏÁö ¸øÇÏ´Â ºÐÀº ÀÚ½ÅÀÇ ´ë°¡¸®¸¦ ½ê°Ô Áã¾î¹Ú°í LCD °ü·Ã ¾Õ

°­Á¸¦ ´Ù½Ã ÀÐÀ¸½Í½Ã¿ä. ( ¸¶À½°°¾Æ¼­´Â ³»°¡ Áã¾î ¹Ú°í ½ÍÀºµ¥... )


°ü¹® 1 ) LCD ij¸¯ÅÍ Äڵ忡¼­ 41H´Â 'A' ÀÔ´Ï´Ù. ±×·¸´Ù¸é 'B'¸¦

LCD¿¡ Ãâ·ÂÇÏ°íÀÚ ÇÑ´Ù¸é ÇØ´ç DDRAM¿¡ ¾î¶² °ªÀ» ³Ö¾î¾ß

Çմϱî?


°ü¹® 2 ) ¼Ò¹®¿¡ ÀÇÇϸé LCD¿¡¼­ »ç¿ëÀÚ°¡ 8±ÛÀÚ¸¦ ÀÓÀ¸·Î ¸¸µé¾î ¾µ

¼ö ÀÖ´Ù°í ÇÕ´Ï´Ù. ±×·¯ÇÑ »ç¿ëÀÚ Á¤ÀÇ ±ÛÀÚ ¸ð¾ç( charater

pattern )À» ´ã¾Æ µÎ´Â °÷À» CGRAMÀ̶ó°í ÇÕ´Ï´Ù. ±×·¸´Ù¸é

CGRAM¿¡ Á¤ÀÇÇÑ ±ÛÀÚ Áß 3¹ø° ±ÛÀÚ¿¡ ÇØ´çµÇ´Â CGRAM ¹øÁö¿Í

±× ±ÛÀÚÀÇ Ä³¸¯ÅÍ ÄÚµå´Â ¾î¶»°Ô µË´Ï±î?


°ü¹® 3 ) CGRAM¿¡ Á¤ÀÇÇÑ ±ÛÀÚ Áß 3¹ø° ±ÛÀÚ¸¦ LCD¿¡ Ãâ·ÂÇÏ·Á¸é

¾î¶»°Ô ÇØ¾ß Çմϱî? ( ±¸Ã¼ÀûÀ¸·Î )




ÇϳªÀÇ °ü¹®ÀÌ¶óµµ Åë°ú ¸øÇÑ ºÐµéÀº ¾ç½É²¯ µÇµ¹¾Æ °¡½Ê½Ã¿ä.






°ü¹® Åë°ú, ÃàÇÏ ÇÕ´Ï´Ù.


CGRAM¿¡ ´ëÇؼ­ ÃæºÐÈ÷ ¼³¸íÀ» µå·ÈÀ¸¹Ç·Î ¹Ù·Î Á¦¾î·Î ³Ñ¾î°¡°Ú

½À´Ï´Ù.¾Æ·¡ CL_CGR1À̶ó´Â ·çƾÀÌ Àִµ¥, ÀÌ ·çƾÀº °ªÀ» ¾²°íÀÚ ÇÏ´Â

CGRAMÀÇ ¹øÁö¸¦ ¼³Á¤ÇÏ´Â ±â´ÉÀ» ÇÕ´Ï´Ù. CL_DDR1°ú Çü½ÄÀº °°½À´Ï´Ù.


´ÙÀ½À» JS_LCDH1.INC¿¡ Ãß°¡ ½ÃÄÑ Áֽʽÿä.

( ¾Õ °­Á¿¡¼­ ¸»ÇÑ CL_STR1µµ Ãß°¡ ½ÃÄ×°ÚÁö¿ä? )


;==================================================================

;(X-12)

; < CHARACTER LCD DISPLAY CHARACTER GENERATOR RAM ADDRESS SET >

;

; TRANSFER : A

; CHANGE : A

; RETURN : NO

; REFERENCE :

;

;==================================================================


CL_CGR1:


PUSH DPH

PUSH DPL


MOV DPTR,#LCDCW1

ORL A,#01000000B

MOVX @DPTR,A

CALL CL_WAIT


POP DPL

POP DPH


RET


;==================================================================




¾Æ·¡ ÇÁ·Î±×·¥Àº CGRAM¿¡ µÎ°³ÀÇ °ýÈ£ '(',')'¸¦ ¸¸µç ¿¹ ÀÔ´Ï´Ù.


¾Æ½ºÅ° Äڵ忡µµ ±â¼ºÇ°(?)ÀÇ °ýÈ£°¡ Àִµ¥, °³ÀÎÀûÀ¸·Î º°·Î

¸¶À½¿¡µéÁö ¾Ê¾Æ ¸¸µé¾î¼­ ¾¹´Ï´Ù. ºñ±³ÇØ º¸½Ê½Ã¿ä.


¾Æ·¡ JS_LCD2.ASMÀ» ÀÚ¼¼È÷ ¼³¸íÇÏ´Â °ÍÀº ¿©·¯ºÐÀ» ¹«½ÃÇϴ ó»ç ÀΰÍ

°°±º¿ä. ÀÌÇØ Çϴµ¥ ÀüÇô ¾î·ÆÁö ¾Ê½À´Ï´Ù. ÀÐÀ¸¸é ½ºÀ¹~ ÀÌÇØ°¡....


CGRAMÀ» ÀÚÁÖ º¯°æÇØ¾ß ÇÏ´Â °æ¿ì´Â SET_CGRAMÀ» Á»´õ °£´ÜÇÏ°Ô ¹Ù²ã

º¸½Ê½Ã¿ä.( ¹Ù²ãº¸½Ê½Ã¿ä.(? ~ !) DHAµµ ¸¶½Ã°í, ¿ìÀ¯µµ ¸¶½Ã°í. È÷È÷ )

A¿¡ ±ÛÀÚ ¹øÈ£, DPTR¿¡ character patternÀÇ ½ÃÀÛ ¹øÁö¸¦ ³Ñ°ÜÁÖ¸é

µÇ°ÚÁö¿ä.




;==================================================================

;

; JS_LCD2.ASM

;

;==================================================================


LCDCW1 EQU 0F200H

LCDCR1 EQU 0F201H

LCDDW1 EQU 0F202H

LCDDR1 EQU 0F203H




ORG 0000H

JMP START


ORG 0033H

START:

NOP

NOP


MOV SP,#70H


CALL CL_CLEAR

CALL CL_INIT

CALL CL_INIT

CALL CL_CLEAR

CALL SET_CGRAM


CALL CL_INC_WR

CALL CL_C_OFF


MOV A,#2

CALL CL_DDR1

CALL CL_STR1

DB '(JS8051-A)',0

CALL D_1S


MOV A,#42H

CALL CL_DDR1

CALL CL_STR1

DB 2,'JS8051-A',3,0

JMP $


;==================================================================


SET_CGRAM:


MOV A,#16 ; CG RAM ADDRESS = 2

CALL CL_CGR1 ; UPPER 2 LINE

CALL CL_WAIT ;


MOV DPTR,#LCDDW1 ;

MOV A,#00000001B ; CG RAM 2 ( << )

MOVX @DPTR,A

CALL CL_WAIT

CALL CL_WAIT

MOV A,#00000011B

MOVX @DPTR,A

CALL CL_WAIT

CALL CL_WAIT

MOV A,#00000110B

MOVX @DPTR,A

CALL CL_WAIT

CALL CL_WAIT

MOV A,#00001100B

MOVX @DPTR,A

CALL CL_WAIT

CALL CL_WAIT

MOV A,#00000110B

MOVX @DPTR,A

CALL CL_WAIT

CALL CL_WAIT

MOV A,#00000011B

MOVX @DPTR,A

CALL CL_WAIT

CALL CL_WAIT

MOV A,#00000001B

MOVX @DPTR,A

CALL CL_WAIT

CALL CL_WAIT

MOV A,#00000000B

MOVX @DPTR,A

CALL CL_WAIT

CALL CL_WAIT


MOV A,#00010000B ; CG RAM 3 ( >> )

MOVX @DPTR,A

CALL CL_WAIT

CALL CL_WAIT

MOV A,#00011000B

MOVX @DPTR,A

CALL CL_WAIT

CALL CL_WAIT

MOV A,#00001100B

MOVX @DPTR,A

CALL CL_WAIT

CALL CL_WAIT

MOV A,#00000110B

MOVX @DPTR,A

CALL CL_WAIT

CALL CL_WAIT

MOV A,#00001100B

MOVX @DPTR,A

CALL CL_WAIT

CALL CL_WAIT

MOV A,#00011000B

MOVX @DPTR,A

CALL CL_WAIT

CALL CL_WAIT

MOV A,#00010000B

MOVX @DPTR,A

CALL CL_WAIT

CALL CL_WAIT

MOV A,#00000000B

MOVX @DPTR,A

CALL CL_WAIT

CALL CL_WAIT




;======

===============================================


INCLUDE JS_LCDH1.INC


END




" ±æ°í Áö·çÇß´ø LCD°­Á°¡ ´ëÃæ Á¤¸®°¡ µÇ´Â ±º¿ä.

À§ÀÇ ³»¿ë Á¤µµ¸¸ ¾Ë°í °è¼Åµµ ¾îµð°¡¼­ LCD´Â »ç¿ëÇÒ ÁÙ ¾È´Ù°í ¸» ÇÒ

¼ö ÀÖ½À´Ï´Ù.

±âÁö°ÔÇѹø Æð½Ã´Ù.

¾Æ~, ¾ÆÁ÷µµ °¥±æÀº ¸Ö°í ¼øźÇϱº. (?) "


" ÇÑ°¡Áö, ¿©·¯ºÐµéÀÌ Áú¹®ÇϽŠ³»¿ëµé Áß¿¡ ´äº¯À» ¾ÈÇѰ͵éÀº Á¦ ´É·ÂÀ»

¹þ¾î³ª´Â °Íµµ ÀÖÁö¸¸ ¸î¸î Áú¹®¿¡ ´ëÇؼ­´Â ÀǵµÀûÀ¸·Î ´äÀ» ¾ÈÇÏ´Â

°æ¿ìµµ ÀÖ½À´Ï´Ù. ÀÌÀ¯´Â ¸î°¡Áö°¡ ÀÖÁö¸¸ °¡Àå Å« ÀÌÀ¯´Â Áú¹® ÀÚü°¡

°­Á¿¡ ¶Ç´Â °­ÁÂÀÇ Áøµµ¿¡ ¾ÆÁ÷Àº ¾î¿ï¸®Áö ¾Ê´Â´Ù´Â °ÍÀÔ´Ï´Ù. Á¤±Ô

°­Á°¡ ¾î´À Á¤µµ ÁøÇàµÈ ÈÄ¿¡´Â Á»´õ ¸¹Àº ÀÀ¿ëÂÊ°ú Á»´õ ³ôÀº

Á¦¾îÂÊÀ¸·Î ¸ÂÃß¾î ³ª¾Æ°¥ »ý°¢ÀÔ´Ï´Ù. ±×·¸´Ù°í Áú¹®À» ÇÏÁö ¸»¶ó´Â

¿¹±â´Â ¾Æ´Õ´Ï´Ù. Á¦°¡ ¾Æ´Â Áú¹®¿¡ ´ëÇؼ­´Â ³ªÁß¿¡¶óµµ ´äÀ»

ÇÏ°Ú½À´Ï´Ù. "


Ãß°¡ : JS_LCDH1.INC ¿¡´Â LCD Á¦¾î ¸í·ÉÇ¥¿¡ ³ª¿Â ¸í·É Áß ÇÙ½É ¸í·É¸¸

»ÌÀº °ÍÀÔ´Ï´Ù. ³ª¸ÓÁö LCD Á¦¾î´Â JS8051 ³»Àå µð½ºÄϳ»ÀÇ

JS51_LCD.ASMÀ» ÂüÁ¶ÇϽðųª ÀÚ½ÅÀÌ ¸¸µé º¸½Ê½Ã¿ä.


" ÇÏÀÌÅÚ »ç¿ëÀÚ ºÐµéÀÇ Áú¹®Àº ¸ÞÀÏ·Î ÇØÁֽʽÿä."



°è¼ÓÇϽðڽÀ´Ï±î? (Y/n) >>

±è°æ±Ù (maroboss)

[8051] ÀÎÅÍ·´Æ®(1) 02/02 14:22 91 line


ÀÎÅÍ·´Æ®(1)


ÀϹÝÀûÀ¸·Î CPU¿¡¼­ ÀÔ·ÂÀ» ¹Þ¾ÆµéÀÌ´Â ¹æ¹ý¿¡´Â µÎ°¡Áö°¡ ÀÖ½À´Ï´Ù.

Çϳª´Â ÇÁ·Î±×·¡¸Ó°¡ ¸í·É¾î¸¦ »ç¿ëÇÏ¿© ÀÔ·Â ÇÉ ¶Ç´Â °ªÀ» °è¼Ó Àо

º¯È­¸¦ ¾Ë¾Æ³»´Â °ÍÀÌ°í ´Ù¸¥ Çϳª´Â CPU ÀÚü°¡ Çϵå¿þ¾îÀûÀ¸·Î ±×

º¯È­¸¦ üũÇÏ¿© º¯È­½Ã ÀÏÁ¤ÇÑ ´ëó¸¦ ÇÏ´Â °ÍÀÔ´Ï´Ù. ÀüÀÚ¸¦ polling

±â¹ýÀ̶ó°í ÇÏ°í ÈÄÀÚ¸¦ interrupt ±â¹ýÀ̶ó°í ÇÕ´Ï´Ù.


Æú¸µÀº ¿©·¯ºÐµéÀÌ ÀϹÝÀûÀ¸·Î »ç¿ëÇÏ´Â ¹æ¹ýÀ̶ó Á÷°¨ÀûÀ¸·Î ½±°Ô

ÀÌÇظ¦ ÇÏÁö¸¸ ÀÎÅÍ·´Æ®´Â ±×·¸Áö ¾Ê½À´Ï´Ù. ±×·¯³ª ÀÎÅÍ·´Æ® °­Á°¡

³¡³¯¶§ ÂëÀ̸é ÀÎÅÍ·´Æ®°¡ Ãʺ¸ÀÚ¸¦ ±«·ÓÈ÷±â À§Çؼ­ ¸¸µé¾î ³õÀº °ÍÀÌ

¾Æ´Ï¸ç »ý°¢Çغ¸¸é Àڽŵµ ÀÌ¹Ì ¾Ë°í ÀÖ´Â ´ç¿¬ÇÑ °³³äÀ̶ó´Â °ÍÀ» ¾Ë°Ô

µË´Ï´Ù.


Æú¸µ°ú ÀÎÅÍ·´Æ®´Â °¢±â Àå´ÜÀÌ ÀÖÀ¸¹Ç·Î ÀüÀûÀ¸·Î »ç¿ëÀÚ°¡ »ç¿ëÀ»

°áÁ¤ÇØ¾ß ÇÕ´Ï´Ù. Æú¸µÀº ¸ðµç °æ¿ìÀÇ ÀÔ·Â ¶Ç´Â °ªÀÇ º¯È­¿¡ ´ëÀÀÇÏ¿©

󸮰¡ °¡´ÉÇÏÁö¸¸ ÀÎÅÍ·´Æ®´Â Çϵå¿þ¾îÀûÀ¸·Î Áö¿øµÇ´Â ¸î°³ÀÇ

ÀÔ·Â ¶Ç´Â °ªÀÇ º¯È­¿¡¸¸ ´ëÀÀ 󸮰¡ °¡´ÉÇÕ´Ï´Ù. ´Ù½Ã ¸»Çϸé CPUÀÇ

ź»ý¿¡¼­ ºÎÅÍ ±»ÀºÀÚ(?)·Î °áÁ¤ÀÌ µÇÀÖ½À´Ï´Ù. ó¸® ¼Óµµ ¶ÇÇÑ

±Ø´ÜÀûÀ¸·Î´Â Æú¸µÀÌ ºü¸£Áö¸¸ ÀϹÝÀûÀ¸·Î´Â ÀÎÅÍ·´Æ®°¡ ºü¸¨´Ï´Ù. ¿¹¸¦

µé¸é ´Ü°Å¸®´Â Ä® ·çÀ̽º°¡ ºü¸£Áö¸¸ Àå°Å¸®´Â Ȳ¿µÁ¶°¡ ºü¸¦ °É¿ä. ¾Æ¸¶.


ÀϹÝÀûÀ¸·Î CPU ³»ºÎ ¶Ç´Â ÁÖº¯¿¡¼­´Â ¸¹Àº °ª ¶Ç´Â ½ÅÈ£ÀÇ º¯È­°¡ ÀÖ°Ô

µË´Ï´Ù. ¿¹¸¦ µé¸é ¿ÜºÎ ÀÔ·Â ÇÉÀÇ ·¹º§ÀÌ º¯È­Çϰųª ³»ºÎÀÇ Ä«¿îÅÍ°¡

Áõ°¡ÇÏ¿© 0ÀÌ ¾ú°Å³ª °©ÀÚ°¡ ½Ã¸®¾ó Æ÷Æ®·Î ÀÔ·Â ½ÅÈ£°¡ µé¾î¿Ô°Å³ª ...

µîµîÀÇ ¸¹Àº º¯È­°¡ µ¿½Ã ¶Ç´Â ¾à°£ÀÇ ½Ã°£Â÷¸¦ µÎ°í ¹«ÀÛÀ§·Î

¹ß»ýÇÕ´Ï´Ù. ¸¸¾à¿¡ ÀÎÅÍ·´Æ®¶ó´Â °ÍÀÌ ¾ø¾î¼­ ÀÌ ¸ðµç°ÍÀ»

ÇÁ·Î±×·¡¸Ó°¡ Á÷Á¢ °ü¸®ÇØ¾ß ÇÑ´Ù¸é ¾Æ¸¶µµ, ÇÁ·Î±×·¡¸Ó´Â ¸î½ÊÁÙÀÇ

ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ°í µÎÅë¾àÀ» Çϳª ¸Ô°í, ¾ó¸¶ÈÄ ´Ù½Ã µé¿©´Ù º¸¸é

°ÅÇ°À» ¹°°í ¾²·¯Á® Àִ°ÍÀ» ¹ß°ßÇÏ°Ô µË´Ï´Ù.


º¸Åë ƯÁ¤°ª ¶Ç´Â ÀÔ·Â ÇÉÀÇ ·¹º§ÀÌ º¯Çϸé ÇÁ·Î±×·¡¸Ó´Â CPU¿¡°Ô ±×¿¡

»óÀÀÇϴ ó¸®¸¦ Çϵµ·Ï ¸¸µé¾î ÁÝ´Ï´Ù. ¸¸¾à¿¡ Æú¸µ ±â¹ýÀ» »ç¿ëÇß´Ù¸é

ÇÁ·Î±×·¡¸Ó´Â ÀÚ½ÅÀÇ ¸¶À½´ë·Î ±×ÀÚ¸®¿¡¼­ 󸮸¦ Çϰųª CALL, JMP

µîÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª ÀÎÅÍ·´Æ® ±â¹ýÀ» »ç¿ëÇß´Ù¸é

ÇÁ·Î±×·¡¸Ó´Â ±× CPU¸¦ ¸¸µé¶§ ÀÌ¹Ì Á¤ÇØÁø ÀÏÁ¤ÇÑ ·ê(rule)¿¡ µû¶ó¾ß

ÇÕ´Ï´Ù. 80C31¿¡¼­´Â 5°³ÀÇ ÀÎÅÍ·´Æ®¸¦ Áö¿øÇϸé ƯÁ¤ ÀÎÅÍ·´Æ®°¡

¹ß»ýÇÏ¸é ±× ÀÎÅÍ·´Æ®¿¡ ÇÒ´çÇØÁØ Æ¯Á¤ ¹øÁö·Î Á¦¾î¸¦ ¿Å±é´Ï´Ù.

ºÐ±âÀÇ ¹æ¹ýÀº LCALL°ú À¯»çÇÕ´Ï´Ù. ÀÌ·¸°Ô ºÐ±âµÈ Á¦¾î´Â ÀÎÅÍ·´Æ®

Àü¿ë º¹±Í ¸í·ÉÀÎ RETI·Î ¿ø·¡ÀÇ È帧À¸·Î µÇµ¹¾Æ ¿É´Ï´Ù. À̰͵µ RET

¸í·É°ú ºñ½ÁÇÏÁö¸¸ ºÐ¸íÈ÷ ´Ù¸§´Ï´Ù.


ÀÎÅÍ·´Æ®¸¦ ¹ß»ý½Ãų ¼ö ÀÖµµ·Ï ¸¸µé¾îÁø °Í( ¿ÜºÎ ÀÔ·Â ÇÉ, Ä«¿îÅÍ,

½Ã¸®¾ó.. )À» ÀÎÅÍ·´Æ® ½î½º( interrupt source )¶ó°í ÇÏ°í ÀÎÅÍ·´Æ®

¹ß»ý½Ã ºÐ±â Àå¼Ò¸¦ ¾ò±â À§ÇÑ Æ¯Á¤ ¹øÁöÀÇ ³»¿ëÀ» ÀÎÅÍ·´Æ® Á¡ÇÁ

Å×ÀÌºí ¶Ç´Â ÀÎÅÍ·´Æ® º¤ÅÍ Å×À̺í À̶ó°í ÇÕ´Ï´Ù.( <= ´Ù½Ã ¾ð±Þ

ÇÕ´Ï´Ù. ) Á¦°¡ ¾Ë±â·Î´Â º¤ÅÍ(vector)´Â Å©±â¿Í ¹æÇâÀ» °¡Áø °ªÀ¸·Î

¾Æ´Âµ¥ ½ÇÁ¦·Î ÀÎÅÍ·´Æ® º¤Å¸ Å×ÀÌºí¿¡´Â ¹æÇ⸸ ÀÖ°í Å©±â´Â ¾ø½À´Ï´Ù.

µû¶ó¼­ ÀÎÅÍ·´Æ® ½ºÄ®¶ó Å×À̺íÀÌ ´õ ¾î¿ï¸®Áö ¾ÊÀ»±î... ±×¸®°í ÀÎÅÍ

·´Æ® ó¸® ÇÁ·Î±×·¥À» ÀÎÅÍ·´Æ® Çڵ鷯 ¶Ç´Â ÀÎÅÍ·´Æ® ½áºñ½º ·çƾ ¶Ç´Â

±×³É, ÀÎÅÍ·´Æ® ·çƾÀ̶ó°í ¸»ÇÕ´Ï´Ù. " ÀÏ´Ü ¿ë¾î´Â Èê·Á ³Ñ±â ½Ê½Ã¿ä."


ÀÎÅÍ·´Æ®´Â Çϵå¿þ¾îÀûÀ¸·Î CPU¸¦ ¸¸µé¶§ ºÎÅÍ º¹ÀâÇÏ°Ô ¼³°èµÇ¹Ç·Î

¸¹ÀÌ Á¦°ø µÇÁö´Â ¾Ê½À´Ï´Ù. 80C31¿¡¼­´Â 5°³ÀÇ ÀÎÅÍ ·´Æ®°¡ °¡´ÉÇϸç

6°³ÀÇ ÀÎÅÍ·´Æ® ½î½º°¡ ÀÖ½À´Ï´Ù. 5°³ÀÇ ÀÎÅÍ·´Æ®¶ó°í Çصµ ÀϹÝÀûÀÎ

»ç¿ë¿¡´Â Å©°Ô ºÎÁ·ÇÏÁö ¾Ê½À´Ï´Ù. Àúµµ ¾ÆÁ÷ 5°³ÀÇ ÀÎÅÍ·´Æ®¸¦ µ¿½Ã¿¡

¸ðµÎ »ç¿ëÇÑ °æ¿ì´Â ¾ø¾ú½À´Ï´Ù.( ¹°·Ð, Á¦ ³ª¸§µ¥·ÎÀÇ ºÒ¸¸Àº

ÀÖ½À´Ï´Ù. )


12MHz 80C31¿¡¼­ ´ëºÎºÐÀÇ ¸í·ÉÀº 1 us¿¡ ¼öÇàµË´Ï´Ù. µû¶ó¼­ ÇÑ ¸í·ÉÀÌ

¼öÇà ¿Ï·áµÇ±â ±îÁö´Â 12°³ÀÇ clockÀÌ CPU·Î µé¾î °©´Ï´Ù. ½ÇÁ¦·Î CPU´Â

10¹ø°ÀÇ clock ÀԷ¿¡¼­ ÀÎÅÍ·´Æ® üũ¸¦ ÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ÀÎÅÍ·´Æ®

°Ë»ç´Â ±â°èÀûÀÎ µ¿ÀÛÀ̹ǷΠCPU »ç¿ëÀÚ°¡ ÇÏÀÚ ¸»¶ó°í ¸»¸± ¼ö

¾ø½À´Ï´Ù. ´ÜÁö ƯÁ¤ ÀÎÅÍ·´Æ® ¶Ç´Â ¸ðµç ÀÎÅÍ·´Æ®¸¦ ¹«½ÃÇϵµ·Ï Áö½Ã

ÇÒ ¼ö ÀÖÀ» »ÓÀÔ´Ï´Ù.


ÇѹøÀÇ ÀÎÅÍ·´Æ® üũ°¡ ³¡³ª°í ±×´ÙÀ½ ÀÎÅÍ·´Æ® üũ¸¦ Çϱâ Àü¿¡

µé¾î¿Â( ¶Ç´Â ¹ß»ýÇÑ ) ÀÎÅÍ·´Æ®´Â CPU°¡ º¼¶§´Â ¸ðµÎ µ¿½Ã¿¡ ¹ß»ýÇÑ

°ÍÀ¸·Î °£ÁÖÇÕ´Ï´Ù. ÀÌ °æ¿ì CPU¿¡°Ô ¾î¶² ÀÎÅÍ·´Æ®¸¦ ¸ÕÀú ó¸® ÇÒ

°ÍÀΰ¡¸¦ ¾Ë·Á ÁÖ¾î¾ß Çϴµ¥, À̶§ ´ëµÎµÇ´Â °ÍÀÌ ÀÎÅÍ·´Æ® ÇÁ¶ó¾î¸®Æ¼

( interrupt priority, ÀÎÅÍ·´Æ® ¿ì¼±¼øÀ§ )ÀÔ´Ï´Ù. ÀÌ »óȲ¿¡¼­

ÀÎÅÍ·´Æ® ÇÁ¶óÀ̾Ƽ°¡ ³ôÀº ÀÎÅÍ·´Æ® ½î½º°¡ ¼±ÅÃµÇ°Ô µË´Ï´Ù.

´õ¿íÀÌ º¸´Ù ³ôÀº ¿ì¼±¼øÀ§¸¦ °¡Áø( ¶Ç´Â ¹èÁ¤ ¹ÞÀº ) ÀÎÅÍ·´Æ® ½î½º´Â

´Ù¸¥ ³·Àº ¿ì¼±¼øÀ§ÀÇ ÀÎÅÍ·´Æ®°¡ ÁøÇàÁßÀ̶ó ÇÒÁö¶óµµ ±×°ÍÀ» Áß´Ü

½ÃÅ°°í ÀÚ½ÅÀÇ ÀÏÀ» º¾´Ï´Ù(?).


80C31ÀÇ ÀÎÅÍ·´Æ®ÀÇ ¿ì¼±¼øÀ§´Â °¢ ÀÎÅÍ·´Æ® ½î½º¿¡ '³ô´Ù', '³·´Ù' Áß

Çϳª¸¦ ºÎ¿© ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿ì¼±¼øÀ§°¡ '³ô´Ù'·Î ¼³Á¤µÇ¸é '³·´Ù'·Î

¼³Á¤µÇ¾î ÀÖ´Â ¾î¶°ÇÑ ÀÎÅÍ·´Æ®º¸´Ù ¸·°­ÇÑ ±ÇÇÑÀ» °¡Áý´Ï´Ù. ±×·¸´Ù¸é

ÀÌ ½ÃÁ¡¿¡¼­ ÇϳªÀÇ Àǹ®ÀÌ »ý±è´Ï´Ù. " 5°³ÀÇ ÀÎÅÍ·´Æ®¸¦ ¸ðµÎ '³ô´Ù'

¶Ç´Â '³·´Ù'·Î ¼³Á¤Çϰųª ¶Ç´Â 2°³ ÀÌ»óÀÇ ÀÎÅÍ·´Æ® ÇÁ¶óÀ̾Ƽ¸¦

°°ÀÌ ¼³Á¤ÇÏ¸é ¾î¶»°Ô µÇ³ª? " ´äÀº, ±»ÀºÀÚ·Î Á¤ÇØÁø ¼ø¼­¿¡ ÀÇÇؼ­

Á¤ÇØÁö°Ô µË´Ï´Ù. ´Ù½Ã ¸»Çؼ­ »ç¿ëÀÚ°¡ °°Àº ¿ì¼± ¼øÀ§¸¦ ¼³Á¤Çß´Ù¸é

³ª¸ÓÁö´Â CPU ¸¸µç »ç¶÷ÀÌ ¹Ì¸® Á¤ÇسõÀº ¼ø¼­´ë·Î CPU°¡ °Ë»ç¸¦ Çϱâ

¶§¹®¿¡ ¸ÕÀú °Ë»çµÈ °ÍÀÌ ¸ÕÀú ¼öÇàÀÌ µË´Ï´Ù.




" °­ÁÂÀÇ ½ÃÀÛºÎÅÍ Çì¸Å°Ô ¸¸µç°Å ¾Æ´Ï°¡ ¸ð¸£°Ú³»¿ä. ±×¸²µµ ¾øÀÌ...

±×¸® ½¬¿î ³»¿ëÀº ¾Æ´ÏÁö¸¸ ±×·¸´Ù°í °ÅÇ°¹° Á¤µµ´Â ¾Æ´Ï´Ï ²ö±â¸¦

°¡Áö°í... "

PRINTER/CAPTURE¸¦ OFF ÇϽðí Enter¸¦ ´©¸£½Ê½Ã¿À. ¸¶ÀÌÅ©·Î ÇÁ·Î¼¼¼­ [°­ÁÂ] () 313/313 (ÃÑ 210°Ç)

¹øÈ£ À̸§ ID ³¯Â¥ Á¶È¸ Pg Á¦ ¸ñ

313 ±è°æ±Ù maroboss 02/02 8 6 [8051] ÀÎÅÍ·´Æ®(1)

312 ±è°æ±Ù maroboss 02/02 5 15 [8051] LCD ¿¹Á¦(3)

311 µðÁöÅ» k2dig 02/01 25 1 À̶õÀº °­Á¶õÀÔ´Ï´Ù.

308 Áö¿µÁØ chee 01/27 45 18 [PIC16C71] A/D ÇÏ¿© Á÷·Ä Àü¼Û

307 ÀÌÁ¾±Õ NoSeeGo 01/26 33 2 [UP] I2C-BUS EEPROM ÇÁ·Î±×·¥ ¼öÁ¤ÇÑ °Í

306 ±è°æ±Ù maroboss 01/25 68 2 [8051] DSAM51&UPCOM µð½º¾î¼Àºí·¯

305 ±è°æ±Ù maroboss 01/24 38 14 [8051] HEX->BCD

304 ±è°æ±Ù maroboss 01/24 31 9 [8051] LCD ¿¹Á¦ (2)

303 ±è°æ±Ù maroboss 01/24 30 26 [8051] LCD ¿¹Á¦ (1)

302 ±è°æ±Ù maroboss 01/17 86 10 [8051] LCD ¸í·É (2)

300 ±è°æ±Ù maroboss 01/15 132 12 [8051] LCD ¸í·É (2)

299 ±è°æ±Ù maroboss 01/15 62 6 [8051] Å° ¸ÞÆ®¸¯½º

296 °í¿ø¿ë wykoh 01/06 79 8 [8051] JS8051A¿¡¼­ FORTH¸¦ ½á º¾½Ã´Ù (1)

295 ±è°æ±Ù maroboss 01/06 134 12 [8051] LCD ÀÎÅÍÆäÀ̽º

294 ±è°æ±Ù maroboss 01/06 102 6 [8051] LCD ÇÉ

293 ±è°æ±Ù maroboss 01/06 80 3 [8051] ij¸¯ÅÍ LCD¶ó´Â °ÍÀÌ Àִٸ鼭¿ä?

¹øÈ£/¸í·É(H,P,T,M,N,A,GO,PF,ME,MM,HI,Z,X)

>> 298

¹øÈ£°¡ À߸øµÇ¾ú½À´Ï´Ù.

¸¶ÀÌÅ©·Î ÇÁ·Î¼¼¼­ [°­ÁÂ] () 313/313 (ÃÑ 210°Ç)

¹øÈ£ À̸§ ID ³¯Â¥ Á¶È¸ Pg Á¦ ¸ñ

313 ±è°æ±Ù maroboss 02/02 8 6 [8051] ÀÎÅÍ·´Æ®(1)

312 ±è°æ±Ù maroboss 02/02 5 15 [8051] LCD ¿¹Á¦(3)

311 µðÁöÅ» k2dig 02/01 25 1 À̶õÀº °­Á¶õÀÔ´Ï´Ù.

308 Áö¿µÁØ chee 01/27 45 18 [PIC16C71] A/D ÇÏ¿© Á÷·Ä Àü¼Û

307 ÀÌÁ¾±Õ NoSeeGo 01/26 33 2 [UP] I2C-BUS EEPROM ÇÁ·Î±×·¥ ¼öÁ¤ÇÑ °Í

306 ±è°æ±Ù maroboss 01/25 68 2 [8051] DSAM51&UPCOM µð½º¾î¼Àºí·¯

305 ±è°æ±Ù maroboss 01/24 38 14 [8051] HEX->BCD

304 ±è°æ±Ù maroboss 01/24 31 9 [8051] LCD ¿¹Á¦ (2)

303 ±è°æ±Ù maroboss 01/24 30 26 [8051] LCD ¿¹Á¦ (1)

302 ±è°æ±Ù maroboss 01/17 86 10 [8051] LCD ¸í·É (2)

300 ±è°æ±Ù maroboss 01/15 132 12 [8051] LCD ¸í·É (2)

299 ±è°æ±Ù maroboss 01/15 62 6 [8051] Å° ¸ÞÆ®¸¯½º

296 °í¿ø¿ë wykoh 01/06 79 8 [8051] JS8051A¿¡¼­ FORTH¸¦ ½á º¾½Ã´Ù (1)

295 ±è°æ±Ù maroboss 01/06 134 12 [8051] LCD ÀÎÅÍÆäÀ̽º

294 ±è°æ±Ù maroboss 01/06 102 6 [8051] LCD ÇÉ

293 ±è°æ±Ù maroboss 01/06 80 3 [8051] ij¸¯ÅÍ LCD¶ó´Â °ÍÀÌ Àִٸ鼭¿ä?

¹øÈ£/¸í·É(H,P,T,M,N,A,GO,PF,ME,MM,HI,Z,X)

>> PR 296

PRINTER/CAPTURE¸¦ ÁغñÇϽðí Enter¸¦ ´©¸£½Ê½Ã¿À

°í¿ø¿ë (wykoh )

[8051] JS8051A¿¡¼­ FORTH¸¦ ½á º¾½Ã´Ù (1) 01/06 14:14 124 line

CAMEL Forth¸¦ ½á º¾½Ã´Ù (1)

±¸Á¶È­ ÇÁ·Î±×·¥ ¹æ¹ýÀ¸·Î Å« ÇÁ·Î±×·¥À» ¿©·¯ °³ÀÇ

ÇÔ¼ö(ÀýÂ÷, ¼­ºê·çƾ, ¹«¾ùÀ̶ó°í ºÒ·¯µµ ¸¶Âù°¡ÁöÀÔ´Ï´Ù)·Î

³ª´©¾î ÀÛ¼ºÇÏ·Á¸é ÇÔ¼ö¿Í ÇÔ¼ö »çÀÌ¿¡ °ªÀ» ÁÖ°í ¹ÞÀ» ÇÊ¿ä°¡

ÀÖ½À´Ï´Ù. (¼³¸¶ ¾ÆÁ÷µµ GOTO³ª JMP¸¸À» ½á¼­ ÇÁ·Î±×·¡¹ÖÇÏ´Â

ºÐÀº ¾È °è½Ã°ÚÁö¿ä?) Æ÷½º¿¡¼­´Â ÀÌ ÇÔ¼ö(ÀýÂ÷, ¼­ºê·çƾ)À»

'³¹¸»(WORD)'À̶ó°í ºÎ¸¨´Ï´Ù. ±×¸®°í ´õ¹Ì(½ºÅÃ, stack)¸¦

»ç¿ëÇؼ­ ³¹¸»°ú ³¹¸» »çÀÌ¿¡ °ªµéÀÌ ÀúÀý·Î Àü´ÞµË´Ï´Ù.

P1@ .

¿¡¼­ ³¹¸» 'P1@'´Â ÀÔ·ÂÀº ÀüÇô ¾øÀÌ Æ÷Æ®1¿¡¼­ ÀÐÀº

¹ÙÀÌÆ®°ªÀ» Ãâ·ÂÇÕ´Ï´Ù. ³¹¸» '.'Àº ÀԷ¹ÞÀº °ªÀ» »ç¿ëÀÚ

Ãâ·Â ÀåÄ¡¿¡ ³ªÅ¸

³À´Ï´Ù. 'P1@'¿Í '.' »çÀÌ¿¡´Â ¹Ýµå½Ã ºóÄ­ÀÌ

ÀÖ¾î¾ß ÇÕ´Ï´Ù. Æ÷½º¿¡¼­ ¸ðµç ³¹¸»µéÀº ºóÄ­À¸·Î ±¸ºÐµË´Ï´Ù.

Æ÷½º ³¹¸»ÀÇ ÀԷ°ú Ãâ·ÂÀº º¸Åë °ýÈ£¾È¿¡ "( ÀÔ·Â -- Ãâ·Â

)"À¸·Î Ç¥½ÃÇÕ´Ï´Ù. 'P1@'´Â ÀÔ·ÂÀÌ ¾øÀÌ °ª Çϳª¸¸ Ãâ·ÂÇÏ°í

'.'Àº °ªÀ» Çϳª ÀÔ·Â ¹Þ°í ¾Æ¹«°Íµµ Ãâ·ÂÇÏÁö ¾ÊÀ¸¹Ç·Î

´õ¹Ì¿¡ ¹ÌÄ¡´Â È¿°ú¸¦ ³ªÅ¸³»¸é ´ÙÀ½°ú °°½À´Ï´Ù.

P1@ ( -- byte )

. ( x -- )

P1@ . ( -- )

µÎ ³¹¸» "P1@ ."ÀÌ ½ÃÄÑÁö°í ³ª¸é ´õ¹Ì¿¡´Â ¾Æ¹« º¯È­µµ

¾ø½À´Ï´Ù.´õ¹Ì¸¦ ¾²´Â °ÍÀº ¾ÆÁÖ Æí¸®ÇÕ´Ï´Ù. ÇϷ縸

¿¬½ÀÇÏ½Ã¸é ±Ý¹æ Àͼ÷ÇØÁú ¼ö ÀÖ½À´Ï´Ù. Æ÷½º¿¡¼­ Æí¸®ÇÑ Á¡

Çϳª´Â °ªÀ» ³ªÅ¸³»´Â µ¥ 2Áø¹ý¿¡¼­ 36Áø¹ý±îÁö ¾Æ¹« °Å³ª

¸¶À½´ë·Î ¾µ ¼ö ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù. ½ÇÁ¦·Î´Â 2Áø¹ý, ½ÊÁø¹ý,

½ÊÀ°Áø¹ýÀÌ ÁÖ·Î ¾²ÀÔ´Ï´Ù. Æ÷Æ®1¿¡¼­ ÀÐÀº °ªÀ» ³ªÅ¸³¾ ¶§

2Áø¹ýÀ» ¾²¸é °¢ ºñÆ®ÀÇ »óŸ¦ ¹Ù·Î ¾Ë ¼ö ÀÖ½À´Ï´Ù. Áø¹ýÀÇ

¹ØÀº BASE¶ó´Â À̸§ÀÇ º¯¼ö¿¡ µé¾î ÀÖ½À´Ï´Ù. ³¹¸»

'DECIMAL'À» ½ÃÄѼ­ ¾ðÁ¦µçÁö ½ÊÁø¹ýÀ¸·Î ¹Ù²Ü ¼ö ÀÖ½À´Ï´Ù.

DECIMAL 2 BASE !

¶ó°í ½ÃÄѼ­ BASE¿¡ 2¸¦ ´ãÀ¸¸é ÀÔÃâ·ÂÀÌ 2Áø¹ýÀ¸·Î

ÀÌ·ç¾îÁö°í

DECIMAL 16 BASE !

¶ó°í ½ÃÄѼ­ BASE¿¡ ¿­¿©¼¸À» ´ãÀ¸¸é ÀÔÃâ·ÂÀÌ 16Áø¹ýÀ¸·Î

ÀÌ·ç¾îÁý´Ï´Ù.CAMEL Æ÷½º¿¡´Â 16Áø¹ýÀ¸·Î ¹Ù²Ù´Â ³¹¸» 'HEX'°¡

µé¾î ÀÖÀ¸¹Ç·Î "DECIMAL 16 BASE !" ´ë½Å °£´ÜÈ÷ 'HEX'¶ó°í

½Ãų ¼ö ÀÖÀ¾´Ï´Ù."2 BASE !"´Â óÀ½¿¡ ¾ÆÁÖ ÀÌ»óÇÏ°Ô

º¸ÀÌ°ÚÁö¸¸ "_2_¸¦ _BASE_¿¡ _½á³Ö¾î¶ó_"¶ó´Â ¶æÀÔ´Ï´Ù.

¿ì¸®¸» ¼ø¼­¿Í ²À °°Áö ¾Ê½À´Ï±î? Æ÷½º¿¡¼­´Â ¸ðµç °ÍÀÌ

³¹¸»ÀÌ°í ³¹¸»µéÀº »çÀü¿¡ µé¾î ÀÖ½À´Ï´Ù. Æ÷½º Å뿪±â°¡

»çÀü¿¡¼­ ³¹¸»À» ãÀ¸¸é ±× ³¹¸»¿¡ µþ¸° ÀÏÀ» ÇÏ°í ³¹¸»À»

ãÁö ¸øÇÏ¸é °ªÀ¸·Î ¹Ù²Ù°í °ªÀ¸·Î ¹Ù²Ü ¼ö ¾øÀ¸¸é ¿¡·¯¸¦

¾Ë¸³´Ï´Ù. '2'´Â »çÀü¿¡ ¾ø´Â ³¹¸»À̹ǷΠ°ªÀ¸·Î ¹Ù²î¾î¼­ °ª

2°¡ ´õ¹ÌÀÇ ¸Ç À§¿¡ ¿Ã¶ó°©´Ï´Ù. (ASCII ¹®ÀÚ '2'(32h)¿Í °ª

2°¡ °°Áö ¾Ê´Ù´Â °ÍÀº ¾Ë°í °è½ÇÅ×Áö¿ä?) ³¹¸» BASE´Â ÁÖ¼Ò¸¦

´õ¹Ì¿¡ ¿Ã¸³´Ï´Ù. ³¹¸» '!'´Â ´õ¹ÌÀÇ ¸Ç À§¿¡ ÀÖ´Â ÁÖ¼Ò¿¡

´õ¹ÌÀÇ °ªÀ» ½á³Ö½À´Ï´Ù.'!'°¡ ¹«½¼ ÀÏÀ» ÇÏ´ÂÁö

CAMEL51.ASM¿¡¼­ ã¾Æº¸¸é ´ÙÀ½°ú °°½À´Ï´Ù. CAMEL Æ÷½º¿¡¼­

´õ¹ÌÀÇ °ªÀº ¸ðµÎ 16 ºñÆ® Å©±âÀÔ´Ï´Ù. ´õ¹ÌÀÇ ¸Ç À§ °ªÀº

dptr¿¡ µé¾î ÀÖ°í ´Ù¸¥ °ªµéÀº R0¸¦ °¡¸®Å´°ª(pointer)À¸·Î

¾²´Â ¼ÒÇÁÆ®¿þ¾î ´õ¹Ì¿¡ µé¾î ÀÖ½À´Ï´Ù. 8051

¸¶ÀÌÅ©·ÎÄÁÆ®·Ñ·¯ÀÇ ³»ºÎ ·¥¿¡ µé¾î ÀÖ´Â ´õ¹Ì´Â 8051 call, ret ¸í·ÉÀÌ »ç¿ë

ÇÕ´Ï´Ù. CAMLE51.ASMÀÇ ¾ÕºÎºÐÀ» º¸½Ã¸é ¾Ë ¼ö ÀÖµíÀÌ R0´Â °Çµå¸®Áö ¸»¾Æ¾ß

ÇÏÁö¸¸ R1-R5´Â ¸¶À½´ë·Î ¾µ ¼ö ÀÖÀ¾´Ï´Ù.

;C ! x a-addr -- store cell in Data mem

; Byte order is lo,hi.

.drw link

.set link,*+1

.db 0,1,"!"

STORE: movx a,@r0 ; low byte of X

inc r0

movx @dptr,a

inc dptr

movx a,@r0 ; high byte of X

inc r0

movx @dptr,a

ajmp poptos ; pop new TOS

¸¶Áö¸·ÀÇ "ajmp poptop"´Â ´õ¹ÌÀÇ µÎ °ªÀ» »ç¿ëÇßÀ¸¹Ç·Î

dptr¿¡ ´õ¹ÌÀÇ ´ÙÀ½ °ªÀ» ´ã¾Æ µÎ±â À§ÇØ ÇÊ¿äÇÑ °ÍÀÔ´Ï´Ù.

TOS´Â "Top Of Stack"ÀÇ ¾àÀÚÀÔ´Ï´Ù. À̸¸Å­ ÇØ µÎ°í

ÀÌÁø¹ýÀ¸·Î "P1@ ."ÀÇ °á°ú¸¦ Ç¥½ÃÇØ º¾½Ã´Ù. ´ÙÀ½Ã³·³

½ÃÅ°½Ê½Ã¿À.

ok 2 BASE !

ok P1@ . 01111111

ok P1@ . 01111011

ok P1@ . 01110111

ok P1@ . 01110011

'ok'´Â CAMEL Æ÷½º Å뿪±â°¡ º¸ÀÌ´Â °ÍÀÔ´Ï´Ù. ¸»¾¸µå·ÈµíÀÌ

'P1@ .'À» ÀÚÆÇ¿¡¼­ ÀÔ·ÂÇÑ ´ÙÀ½ S2¿Í S3¸¦ µû·Îµû·Î ¶Ç´Â µ¿

½Ã¿¡ ´©¸¥ »óÅ¿¡¼­ 'Enter'¼è¸¦ Ĩ´Ï´Ù.

³¹¸» 'P1@'°¡ ÇÏ´Â Àϵµ ½±°Ô ÀÌÇØÇÒ ¼ö ÀÖ½À´Ï´Ù.

;Z P1@ -- byte Read a byte from port 1

.drw link

.set link,*+1

.db 0,3,"P1@"

P1FETCH: dec r0 ; --

mov a,dph ; /\

movx @r0,a ; ´õ¹Ì¿¡ »õ °ªÀ» ¿Ã¸®±â À§ÇØ

dec r0 ; dptrÀÇ °ªÀ» ¿Å±é´Ï´Ù

mov a,dpl ; \/

movx @r0,a ; --

mov dpl,h'90 ; Æ÷Æ®1¿¡¼­ ÀÐÀº °ªÀ»

mov dph,#0 ; dptr¿¡ ´ã½À´Ï´Ù.

ret

ÀÌ°ÍÀ» ÀÌÇØÇϼÌÀ¸¸é CAMEL51.ASM¿¡ »õ ³¹¸»À» ´õÇÏ½Ç ¼ö ÀÖÀ»

°ÍÀÔ´Ï´Ù. ²À ÇÊ¿äÇÑ ¶§¸¸ ¾î¼Àºí¸®¾î·Î ³¹¸»À» ÁöÀ¸¸é µË´Ï

´Ù. ´ëºÎºÐÀÇ ÀÏÀº ÀÌ¹Ì µé¾î ÀÖ´Â Æ÷½º ³¹¸»À» ½á¼­ ÇÒ ¼ö ÀÖ

½À´Ï´Ù. °ð ¿Ã¸± Á¤¿ë¿ø´ÔÀÇ ¿¬½À ¹®Á¦ Ç®À̸¦ º¸½Ã¸é ¾Æ½Ç ¼ö

ÀÖÀ» °ÍÀÔ´Ï´Ù.

Æ÷½º¿¡ ´ëÇÑ Áú¹®Àº 'GO MUL 7'·Î µÎ·ç¹° µ¿È£È¸ÀÇ 'Forth Áú

¹®°ú ´ä'¶õÀ¸·Î °¡¼Å¼­ ±× °÷¿¡ ¿Ã·Á ÁֽʽÿÀ.

1996. 1. 6.

°í¿ø¿ë

ÇÏÀÌÅÚ: wykoh

ÀÎÅͳÝ: wykoh@pado.krict.re.kr

PRINTER/CAPTURE¸¦ OFF ÇϽðí Enter¸¦ ´©¸£½Ê½Ã¿À. ¸¶ÀÌÅ©·Î ÇÁ·Î¼¼¼­ [°­ÁÂ] () 313/313 (ÃÑ 210°Ç)

¹øÈ£ À̸§ ID ³¯Â¥ Á¶È¸ Pg Á¦ ¸ñ

313 ±è°æ±Ù maroboss 02/02 8 6 [8051] ÀÎÅÍ·´Æ®(1)

312 ±è°æ±Ù maroboss 02/02 5 15 [8051] LCD ¿¹Á¦(3)

311 µðÁöÅ» k2dig 02/01 25 1 À̶õÀº °­Á¶õÀÔ´Ï´Ù.

308 Áö¿µÁØ chee 01/27 45 18 [PIC16C71] A/D ÇÏ¿© Á÷·Ä Àü¼Û

307 ÀÌÁ¾±Õ NoSeeGo 01/26 33 2 [UP] I2C-BUS EEPROM ÇÁ·Î±×·¥ ¼öÁ¤ÇÑ °Í

306 ±è°æ±Ù maroboss 01/25 68 2 [8051] DSAM51&UPCOM µð½º¾î¼Àºí·¯

305 ±è°æ±Ù maroboss 01/24 38 14 [8051] HEX->BCD

304 ±è°æ±Ù maroboss 01/24 31 9 [8051] LCD ¿¹Á¦ (2)

303 ±è°æ±Ù maroboss 01/24 30 26 [8051] LCD ¿¹Á¦ (1)

302 ±è°æ±Ù maroboss 01/17 86 10 [8051] LCD ¸í·É (2)

300 ±è°æ±Ù maroboss 01/15 132 12 [8051] LCD ¸í·É (2)

299 ±è°æ±Ù maroboss 01/15 62 6 [8051] Å° ¸ÞÆ®¸¯½º

296 °í¿ø¿ë wykoh 01/06 79 8 [8051] JS8051A¿¡¼­ FORTH¸¦ ½á º¾½Ã´Ù (1)

295 ±è°æ±Ù maroboss 01/06 134 12 [8051] LCD ÀÎÅÍÆäÀ̽º

294 ±è°æ±Ù maroboss 01/06 102 6 [8051] LCD ÇÉ

293 ±è°æ±Ù maroboss 01/06 80 3 [8051] ij¸¯ÅÍ LCD¶ó´Â °ÍÀÌ Àִٸ鼭¿ä?

¹øÈ£/¸í·É(H,P,T,M,N,A,GO,PF,ME,MM,HI,Z,X)

>>