±è°æ±Ù (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)
>>