<Ãʺ¸ÀÚ¸¦ À§ÇÑ 8051 Á¦ 4ȸ °ÁÂ>
µåµð¾î ¸¶Áö¸· °Á¸¦ ¿Ã¸®°Ô ‰ç½À´Ï´Ù.
À̹øÀåÀº °¡Àå ¾î·Æ´Ù°í ÇÒ¼öµµ ÀÖÁö¸¸ °¡Àå À¯¿ëÇÏ´Ù°í ÇÒ¼öµµ ÀÖ½À´Ï´Ù.
À̹ø °Á¸¦ ÅëÇØ¼ home-automationÀ» ±¸Çö ÇÒ¼ö ÀÖ´Â ´É·ÂÀ» ¹è¾çÇÏ°í ´Ù¸¥ CPU¿ÍÀÇ Åë½ÅÀ» ÇÒ¼ö ÀÖ´Â ±âÃʸ¦ ¹è¿ì°Ô µÉ °ÍÀÔ´Ï´Ù.
ÀÛǰÀ» ¸¸µé°í ±×°ÍÀÇ ±¸µ¿À» À§Çؼ ÇÁ·Î±×·¥À» down-loadÇÒ ¶§ ÄÄÇ»ÅÍ¿ÍÀÇ Åë½ÅÀ» ¸¹ÀÌ »ç¿ëÇÏ°Ô µË´Ï´Ù.
°ÁÂÀÇ ¸¶Áö¸· ºÎºÐ¿¡´Â °£´ÜÇÑ Åë½ÅÇÁ·Î±×·¥À» ¿¹·Î µé¾î ÁÖ¼®À¸·Î ¼³¸í ÇϰڽÀ´Ï´Ù.
<Á÷·Ä Åë½Å>
°³¿ä : ¸¶ÀÌÅ©·Î ÄÄÇ»ÅÍ¿Í ¸¶ÀÌÅ©·Î ÄÄÇ»ÅÍ »çÀÌ, ¶Ç´Â ¸¶ÀÌÅ©·Î ÄÄÇ»ÅÍ¿Í ÁÖº¯ ÀåÄ¡ »çÀÌÀÇ µ¥ÀÌÅÍ Àü¼ÛÀº Á÷·Ä Åë½Å ¶Ç´Â º´·Ä Åë½Å¿¡
ÀÇÇØ ÀÌ·ç¾îÁø´Ù. º¸Åë Á÷·Ä Åë½ÅÀÌ º´·Ä Åë½Åº¸´Ù Àú·ÅÇϱ⠶§¹®¿¡ ¸¹ÀÌ »ç¿ëÇÑ´Ù.
MCS-51 °è¿ ¸¶ÀÌÅ©·Î ÇÁ·Î¼¼¼ÀÇ ½Ã¸®¾ó Æ÷Åä´Â µ¿½Ã¿¡ ¼Û¼ö½Å ÇÒ ¼ö ÀÖ´Â Àü ÀÌÁß ½Ã¸®¾ó Æ÷Æ®¸¦ ³»ÀåÇϰí ÀÖ´Ù. ÀÌ ½Ã¸®¾ó Æ÷Æ®ÀÇ
¼Û¼ö½ÅÀº io51.h(reg51.h) ¿¡ ¼±¾ðµÇ¾î ÀÖ´Â sfr SBUF¸¦ ÅëÇÏ¿© ÀÌ·ç¾îÁø´Ù. µ¥ÀÌÅ͸¦ ¼Û½ÅÇÒ ¶§´Â º¸³»·Á´Â µ¥ÀÌÅ͸¦ SBUF¿¡ ½á³Ö°í
¼ö½ÅÇÏ°í ¹ÞÀº µ¥ÀÌÅ͸¦ SBUF¿¡¼ ÀоîµéÀÌ¸é µÈ´Ù. µû¶ó¼ MCS-51 °è¿ÀÇ ¸¶ÀÌÅ©·Î ÇÁ·Î¼¼¼´Â ¼Û¼ö½Å ¸ðµÎ SBUF·¹Áö½ºÅ͸¦ °ÅÃļ
ÀÌ·ç¾îÁø´Ù.
* ½Ã¸®¾ó Æ÷Æ®´Â sfr(Special Function Register) ³»ÀÇ SBUF(Serial Port Buffer Register), SCON(Serial Port Control Register), PCON
(Power Control Register)ÀÇ 3°³ÀÇ ·¹Áö½ºÅ͸¦ ¼ÒÇÁÆ®¿þ¾îÀûÀ¸·Î Á¦¾îÇÑ´Ù.
*µ¥ÀÌÅÍ Àü¼Û ¹æ¹ý¿¡´Â µ¿±â ½ÅÈ£ÀÇ À¯¹«¿¡ µû¶ó¼ µ¿±â ¸ðµå¿Í ºñµ¿±â ¸ðµå·Î ³ª´¼ö ÀÖ´Ù.
µ¿±â ¸ðµå : Ŭ·° ÆÞ½º¿¡ ¸ÂÃç µ¥ÀÌÅ͸¦ Àü¼ÛÇÏ´Â ¹æ¹ý. Ŭ·°Àº µ¶¸³µÈ ¼±À¸·Î º¸³¾¼öµµ ÀÖ°í ¶Ç´Â µ¥ÀÌÅÍ¿¡ ³¢¿ö µ¥ÀÌÅÍ¿Í °°Àº ¼±¿¡
º¸³¾ ¼öµµ ÀÖ´Ù. µ¿±â ¸ðµå´Â ³ôÀº Àü¼Û È¿À²À» °¡Áö¹Ç·Î ¼±·Î¿¡ ÀâÀ½ÀÌ Àְųª °Å¸®°¡ ¸Õ °æ¿ì¿¡µµ ¸¶ÀÌÅ©·Î ÄÄÇ»ÅÍ¿Í ¸¶ÀÌÅ©
·Î ÄÄÇ»ÅÍ»çÀÌ¿¡¼ ´ë·®ÀÇ µ¥ÀÌÅ͸¦ Àü¼ÛÇϴµ¥ »ç¿ëÇÑ´Ù.
ºñµ¿±â ¸ðµå : ±âÁØ Å¬·° ¾øÀÌ µ¥ÀÌÅÍ ºñÆ®ÀÇ À¯Áö ½Ã°£À» ¼·Î ¾à¼ÓÇØ Àü¼ÛÇÏ´Â ¹æ¹ýÀÌ´Ù. Áï, ¼Û½Å±â°¡ ¾à¼ÓµÈ Á֯ļö·Î µ¥ÀÌÅ͸¦ º¸³»¸é
¼ö½Å±â°¡ °°Àº Á֯ļö·Î µ¥ÀÌÅ͸¦ Àд´Ù. ¼ö½Å±âÀÇ Å¬·°Àº °¢°¢ÀÇ ¹®ÀÚ¸¦ ´Ù½Ã µ¿±â ½ÃŰ´Â µ¥ ÇÊ¿äÇÏ´Ù.
ºñµ¿±â ¸ðµå´Â °¢°¢ÀÇ ¹®ÀÚ¸¶´Ù Á¦¾î ºñÆ®°¡ ÇÊ¿äÇϱ⠶§¹®¿¡ µ¿±â ¸ðµå º¸´Ù È¿À²ÀÌ ³·´Ù. ºñµ¿±â ¸ðµå´Â º¸Åë ¸¶ÀÌÅ©·Î
ÄÄÇ»ÅÍ¿Í Å͹̳ÎÀ» ¿¬°á Çϴµ¥ »ç¿ëµÈ´Ù.
<Åë½Å¹æ½Ä>
´Ü¹æÇâ(simplex) ¹æ½Ä : ÇÑÂÊ ¹æÇâÀ¸·Î¸¸ µ¥ÀÌÅ͸¦ Àü¼ÛÇÑ´Ù.
ºÒ¾ÈÀü ÀÌÁß(half duplex) ¹æ½Ä : ÇÑ ¼±¸¸À» »ç¿ëÇÏ¿© º¸³»±â¿Í ¹Þ±â¸¦ ÇÏ´Â ¹æ½ÄÀ¸·Î ÇÑ ¼ø°£¿¡ ÇÑÂÊ ¹æÇâÀ¸·Î Àü¼ÛÇÒ ¼ö ÀÖ´Ù.
Àü¼ÛÀÌ ³¡³ª¸é ¹Ý´ë ¹æÇâÀ¸·Î Àü¼ÛÇÒ ¼ö ÀÖÀ¸¹Ç·Î ¾ç¹æÇâÀ¸·Î Àü¼ÛÀÌ °¡´ÉÇϳª µ¿½Ã¿¡ Àü¼ÛÇÒ ¼ö ¾ø´Ù.
* ¿¹¸¦ µéÀÚ¸é ¹«Àü±â °°Àº °ÍÀÌ µÉ¼ö ÀÖ´Ù. ¹«Àü±â(±º¿¡ ´Ù³à¿Â »ç¶÷µéÀº ¾ËÅÙµ¥..)´Â µ¿½Ã¿¡ ¸»À» ÇÒ¼ö ¾ø´Ù. »ó´ë¹æÀÇ ¹«ÀüÀÌ ³¡³ª¾ß
ºñ·Î¼ ³»°¡ ¸»ÇÒ¼ö ÀÖ´Ù. ±×·¡¼ ¿µÈ¿¡¼ ó·³ ÀÚ½ÅÀÇ ¸»ÀÌ ³¡³µ´Ù´Â °ÍÀ» ¾Ë¸®±â À§ÇØ over¶ó´Â ¸»À» »ç¿ëÇÏ´Â °ÍÀÌ´Ù.
¿ÏÀü ÀÌÁß(full duplex) ¹æ½Ä : 2 ¼±À» »ç¿ëÇÏ¿© µ¿½Ã¿¡ º¸³»±â¿Í ¹Þ±â¸¦ ÇÏ´Â ¹æ½ÄÀ¸·Î µ¿½Ã¿¡ ¾ç¹æÇâ Àü¼ÛÀÌ °¡´ÉÇÏ´Ù. (ex> telephone)
8051ÀÇ Á÷·Ä Æ÷Æ®´Â µ¿±â ¸ðµå¿Í ºñµ¿±â ¸ðµå ¸ðµÎ¸¦ Á¦°øÇÑ´Ù.
µ¿±â ¸ðµå´Â ¸ðµå 0À¸·Î ºÒ¿ÏÀü ÀÌÁß ¹æ½ÄÀÌ¸ç ´ÜÀÏ º¸(baud)À²·Î µ¿ÀÛÇÑ´Ù. baud(º¸À²)Àº ŸÀ̸Ӹ¦ ¼³¸íÇÑ 2Àå¿¡¼ º¼¼ö ÀÖÀ» °ÍÀÌ´Ù.
ºñµ¿±â ¸ðµå´Â 3°¡Áö ¸ðµå°¡ ÀÖ°í ¿ÏÀü ÀÌÁß ¹æ½ÄÀÌ¸ç º¸³»±â¿Í ¹Þ±âÀÇ º¸¼Óµµ¸¦ ¼·Î ´Ù¸£°Ô ÇÒ ¼ö ÀÖ´Ù. ºñµ¿±â ¸ðµå´Â ÇÁ·¹ÀÓ ºñÆ®
¿À·ù °ËÃâ, ´ÙÁß ÇÁ·Î¼¼¼ Åë½Å, ±×¸®°í ÀÚµ¿ ÁÖ¼ÒÀÎ½Ä ±â´ÉÀ» Á¦°øÇÑ´Ù.

À§ÀÇ Ç¥´Â ¸ðµå¿Í µ¿±â¸¦ °°ÀÌ ³ªÅ¸³½ Ç¥ÀÌ´Ù.
SBUF ·¹Áö½ºÅÍ
SBUF´Â ¼Û½ÅÇÒ µ¥ÀÌÅÍ¿Í ¼ö½ÅÇÑ µ¥ÀÌÅ͸¦ ÀϽÃÀûÀ¸·Î ÀúÀåÇÏ´Â ·¹Áö½ºÅÍÀÌ´Ù. SBUF´Â ¼Û½Å¿ë°ú ¼ö½Å¿ëÀÌ °°Àº ¹øÁö¸¦ Áö´Ï°í ÀÖÀ¸³ª
¼·Î ´Ù¸¥ µÎ °³ÀÇ ·¹Áö½ºÅÍÀÌ´Ù. Áï, WR(Write), RD(Read)¸í·ÉÀ¸·Î ¼Û¼ö½Å SBUF¸¦ ÁöÁ¤ÇÏ°Ô µÈ´Ù.
SBUF = 'A' ; (¼Û½Å¿ë SBUF ÁöÁ¤)
r = SBUF ; (¼ö½Å¿ë SBUF ÁöÁ¤)
SBUF¸¦ ¾Õ¿¡ ¾µ ¶§¿Í µÚ¿¡ ¾µ ¶§¿ÍÀÇ Â÷À̸¦ ³ªÅ¸³»°í ÀÖ´Ù.
¼Û½Å ÇÒ ¶§´Â µ¥ÀÌÅ͸¦ '' »çÀÌ¿¡ µÐ´Ù.
¼ö½ÅºÎÀÇ XBUF´Â 2Áß ±¸Á¶·Î µÇ¾î ÀÖ¾î¼ ´ÙÀ½ ÇÁ·¹ÀÓÀÇ ¼ö½Å ½ÃÀÛ Àü¿¡ CUP°¡ ¼ö½Å ÀÎÅÍ·´Æ®¿¡ ÀÀ´äÇÏÁö ¾Ê¾Æ¼ µ¥ÀÌÅ͸¦ ÀоÁö
¸øÇصµ Over Run¿¡·¯¸¦ ¹æÁöÇÒ ¼ö ÀÖ´Ù.
SCON ·¹Áö½ºÅÍ
SCON ·¹Áö½ºÅÍ´Â ½Ã¸®¾ó Æ÷Æ®¸¦ Á¦¾îÇϱâ À§ÇÑ ·¹Áö½ºÅÍ·Î °¢ ºñÆ®ÀÇ ±â´ÉÀº ´ÙÀ½°ú °°´Ù.
![]()
* SM0, SM1 : ½Ã¸®¾ó Æ÷Æ®ÀÇ ¸ðµå¸¦ ¼³Á¤ÇÒ ¼ö ÀÖ´Â ºñÆ®ÀÌ´Ù. ÀÌ ºñÆ®µéÀÇ Á¶ÇÕ¿¡ µû¶ó ´ÙÀ½°ú °°ÀÌ ³× °³ÀÇ ¸ðµå¸¦ ¼³¸í ÇÒ¼ö ÀÖ´Ù.

* SM2 : ¸ðµå 2, 3 ÀÇ ¸ÖƼÇÁ·Î¼¼¼ Åë½Å¿¡¼´Â SM2°¡ '1'·Î ¼³Á¤µÇ°í ¼ö½Å µ¥ÀÌÅÍÀÇ 9¹øÂ° ºñÆ®°¡ '1'ÀÌ¸é µ¥ÀÌÅ͸¦ ¼ö½ÅÇÒ ¼ö ÀÖ´Ù.
SM2°¡ '0'À¸·Î ¼³Á¤µÇ°í ¼ö½Å µ¥ÀÌÅÍÀÇ 9¹øÂ° ºñÆ®°¡ '0'ÀÌ¸é µ¥ÀÌÅ͸¦ ¹«½ÃÇÑ´Ù. ¸ðµå 1 ¿¡¼´Â SM2°¡ '1'ÀÌ°í ¾à¼ÓµÈ ½ºÅé ºñÆ®°¡
¼ö½ÅµÇÁö ¾ÊÀ¸¸é ¼ö½Å ÀÎÅÍ·´Æ®(RI)°¡ ¹ß»ýµÇÁö ¾Ê´Â´Ù. ¸ðµå 0¿¡¼´Â 'SM2 °¡ 0'À¸·Î ¼³Á¤µÇ¾î¾ß ÇÑ´Ù.
* REN(D4) : ½Ã¸®¾ó Æ÷Æ®ÀÇ ¼ö½ÅÀ» °¡´ÉÇÏ°Ô ÇÏ´Â ºñÆ®ÀÌ´Ù. '1'·Î ¼³Á¤ÇÏ¸é ¼ö½ÅÀ» °¡´ÉÇÏ°Ô Çϰí '0'À¸·Î ¼³Á¤ÇÏ¸é ¼ö½ÅÀ» ÇÒ ¼ö ¾ø´Ù.
* TB8 : ¸ðµå 2, 3¿¡¼ '1'·Î ¼³Á¤ÇÏ¿´À» ¶§´Â 9¹øÂ° µ¥ÀÌÅÍ ºñÆ®°¡ '1'ÀÎ ¾îµå·¹½º Á¤º¸¸¦ ¼Û½ÅÇϰí '0'À¸·Î ¼³Á¤ÇÏ¿´À» ¶§´Â 9¹øÂ°
µ¥ÀÌÅÍ ºñÆ®°¡ '0'À¸·Î ¼³Á¤ÇÏ¿´À» ¶§´Â 9¹øÂ° µ¥ÀÌÅÍ ºñÆ®°¡ '0'ÀÎ ¾îµå·¹½º Á¤º¸¸¦ Àü¼ÛÇÑ´Ù.
* RB8 : ¸ðµå 2, 3¿¡¼ '1'·Î ¼³Á¤ÇÏ¿´À» ¶§´Â 9¹øÂ° µ¥ÀÌÅÍ ºñÆ®°¡ '1'ÀÎ ¾îµå·¹½º Á¤º¸¸¦ ¼ö½ÅÇϰí '0'À¸·Î ¼³Á¤ÇÏ¿´À» ¶§´Â 9¹øÂ° µ¥ÀÌÅÍ
ºñÆ®°¡ '0'ÀÎ ¾îµå·¹½º Á¤º¸¸¦ ¼ö½ÅÇÑ´Ù. ¸ðµå 1¿¡¼´Â SM2°¡ '0'ÀÏ ¶§´Â RB8Àº ½ºÅé ºñÆ®ÀÇ ¼ö½ÅÀ» ³ªÅ¸³½´Ù. ¸ðµå 0¿¡¼´Â »ç¿ëµÇÁö
¾Ê´Â´Ù.
* TI : ¼Û½Å ¿Ï·á ÀÎÅÍ·´Æ® Ç÷¡±×ÀÌ´Ù. ÀÌ ºñÆ®´Â ¹Ýµå½Ã ¼Û½Å ÈÄ ¼ÒÇÁÆ®¿þ¾îÀûÀ¸·Î '0'À» ¸¸µé¾î ÁÖ¾î¾ß ÇÑ´Ù.
* RI : ¼ö½Å ¿Ï·á ÀÎÅÍ·´Æ® Ç÷¡±×ÀÌ´Ù. ÀÌ ºñÆ®´Â ¹Ýµå½Ã ¼ö½Å ÈÄ ¼ÒÇÁÆ®¿þ¾îÀûÀ¸·Î '0'À» ¸¸µé¾î ÁÖ¾î¾ß ÇÑ´Ù.
PCON ·¹Áö½ºÅÍ
PCON ·¹Áö½ºÅÍ´Â º¸·¹ÀÌÆ®¸¦ Á¶Á¤ÇÒ ¼ö ÀÖ´Â ·¹Áö½ºÅÍÀÌ¸ç °¢ ºñÆ® ±â´ÉÀº ´ÙÀ½°ú °°´Ù.
![]()
SM0D : 2 ¹è º¸·¹ÀÌÆ® Ç÷¹±× SM0D¸¦ '1'·Î ÇÏ¸é º¸·¹ÀÌÆ®°¡ 2¹è·Î µÈ´Ù.
* ¸ðµå ¼³¸í
µ¿±â ¸ðµå(¸ðµå 0)
SM0 = 0 ; SM1 = 0
¸ðµå 0Àº µ¿±â ¸ðµå·Î ºÒ¿ÍÀü ÀÌÁß ¹æ½ÄÀÌ´Ù. ÁÖ·Î shift-register¸¦ »ç¿ëÇØ ĨÀÇ I/O ±â´ÉÀ» È®ÀåÇϱâ À§ÇØ »ç¿ëÇÑ´Ù.
TXD(CLK) ÇÉÀ¸·Î µ¿±â Ŭ·° ÆÞ½º¸¦ Ãâ·ÂÇϰí RXD(DATA) ÇÉÀ¸·Î µ¥ÀÌÅÍ ¹ÙÀÌÆ®¸¦ º¸³»°Å³ª ¹Þ´Â´Ù.
µ¥ÀÌÅÍ ¹ÙÀÌÆ®´Â ÃÖÇÏÀ§ ºñÆ® LSBºÎÅÍ º¸³»Áø´Ù. ¹Þ´Â µ¥ÀÌÅ͵µ ¸¶Âù°¡Áö·Î LSBºÎÅÍ º¸³»Áø´Ù. ¹Þ´Â µ¥ÀÌÅ͵µ ¸¶Âù°¡Áö·Î LSBºÎÅÍ
¹Þ¾ÆÁø´Ù.
¸ðµå Àü¼Û ¼Óµµ(º¸¼Óµµ)´Â Fosc/12·Î °íÁ¤µÈ´Ù.
º¸³»±â - Á÷·Ä Æ÷Æ® Á¦¾î SCON ·¹Áö½ºÅÍÀÇ ¹Þ±â Çã¿ë RENºñÆ®¸¦ 0À¸·Î Áö¿ö º¸³»±â ¸ðµå·Î ¼³Á¤ÇÏ°í º¸³»±â Ç¥½Ã±â TI¸¦ Áö¿î´Ù.
REN = 0 (¹Þ±â Çã¿ë = ±ÝÁö => º¸³»±â); T=0 (º¸³»±â Ç¥½Ã±â¸¦ Áö¿î´Ù)
º¸³¾ ¹ÙÀÌÆ®¸¦ Á÷·Ä ¹öÆÛ SBUF ·¹Áö½ºÅÍ¿¡ ¾´´Ù. ¾²±â µ¿ÀÛÀÌ Çϵå¿þ¾î¿¡°Ô ÀÚµ¿À¸·Î º¸³¾ °ÍÀ» Áö½Ã ÇÑ´Ù.
SBUF = send ; (µ¥ÀÌÅ͸¦ º¸³½´Ù)
µ¥ÀÌÅ͸¦ ´Ù º¸³»¸é Çϵå¿þ¾î°¡ º¸³»±â Ç¥½Ã±â TI¸¦ 1·Î ¼³Á¤ÇØ º¸³»±â°¡ ³¡³µÀ½À» Ç¥½Ã ÇÑ´Ù.
while (!TI) ; (´Ù º¸³»Áú ¶§±îÁö ±â´Ù¸°´Ù)
±×·¯¸é ÇÁ·Î±×·¥¿¡¼ ´ÙÀ½ µ¥ÀÌÅ͸¦ Á÷·Ä ¹öÆÛ SBUF ·¹Áö½ºÅÍ¿¡ ¾µ ¼ö ÀÖ´Ù.
TI = 0 ; (º¸³»±â Ç¥½Ã±â¸¦ Áö¿î´Ù)
SBUF = SEND ; (´ÙÀ½ µ¥ÀÌÅ͸¦ º¸³½´Ù)
¹Þ±â - Á÷·Ä Æ÷Æ® Á¦¾î SCON ·¹Áö½ºÅÍÀÇ ¹Þ±â Çã¿ë REN ºñÆ®¸¦ ¼³Á¤ÇÏ¿© ¹Þ±â ¸ðµå·Î ¼³Á¤ÇÏ°í ¹Þ±â Ç¥½Ã±â RIºñÆ®¸¦ Áö¿î´Ù.
REN = 1 ; (¹Þ±â Çã¿ë = ¼³Á¤)
RI = 0 ; (¹Þ±â Ç¥½Ã±â¸¦ Áö¿î´Ù)
ù ¹øÂ° ºñÆ®°¡ µé¾î¿À¸é ÀÚµ¿ÀûÀ¸·Î ¹Þ±â¸¦ ½ÃÀÛÇÑ´Ù.
µ¥ÀÌÅ͸¦ ´Ù ¹ÞÀ¸¸é Çϵå¿þ¾î°¡ ¹Þ±â Ç¥½Ã±â RI¸¦ 1·Î ¼³Á¤ÇØ ¹Þ±â°¡ ³¡³µÀ½À» Ç¥½ÃÇÑ´Ù.
while (!RI) ; (´Ù ¹ÞÀ» ¶§±îÁö ±â´Ù¸°´Ù)
±×·¯¸é ÇÁ·Î±×·¥¿¡¼ ¹ÞÀº µ¥ÀÌÅ͸¦ Á÷·Ä ¹öÆÛ SBUF·¹Áö½ºÅͷκÎÅÍ ÀÐÀ» ¼ö ÀÖ´Ù.
recv = SBUF ; (µ¥ÀÌÅ͸¦ Àд´Ù)
ºñµ¿±â ¸ðµå (¸ðµå 1,2,3)
ºñµ¿±â ¸ðµå´Â 3°¡ÁöÀÇ µ¿ÀÛ ¸ðµå°¡ ÀÖ´Ù.
- ¸ðµå 1 : ¿ÏÀü ÀÌÁß ¹æ½ÄÀ¸·Î 1:1 Åë½Å¿¡ »ç¿ëÇÑ´Ù. µ¥ÀÌÅÍ ÇÁ·¹ÀÓÀº 10ºñÆ®·Î ±¸¼ºµÈ´Ù.
½ÃÀÛ ºñÆ® 1 , µ¥ÀÌÅÍ ºñÆ® 8, Á¤Áö ºñÆ® 1.
º¸¼Óµµ´Â ŸÀ̸Ó1 ¶Ç´Â ŸÀ̸Ó2ÀÇ ³Ñħ¿¡ ÀÇÇØ ¹ß»ýÇÑ´Ù.
¼³Á¤ SM1 = 0 ; SM0 = 1; (¸ðµå 1)
¸ðµå 1¿¡¼ µ¥ÀÌÅ͸¦ ´Ù ¹Þ¾ÒÀ» ¶§, Á¤Áö ºñÆ®°¡ Á÷·Ä Æ÷Æ® Á¦¾î SCON ·¹Áö½ºÅÍÀÇ ¹Þ±â RB8 ºñÆ®¿¡ ÀúÀåµÈ´Ù.
- ¸ðµå 2,3 : ¸ðµå2 ¿Í 3Àº ¿ÏÀü ÀÌÁß ¹æ½ÄÀ¸·Î 1 : n Åë½Å¿¡ »ç¿ëÇÑ´Ù.
µ¥ÀÌÅÍ ÇÁ·¹ÀÓÀº 11ºñÆ®·Î ±¸¼ºµÈ´Ù : ½ÃÀÛ ºñÆ® 1, µ¥ÀÌÅÍ ºñÆ® 8(LSB°¡ ù ¹øÂ°·Î º¸³»Áö°í ¹Þ¾ÆÁø´Ù) ÇÁ·Î±×·¡¸Óºí 9¹øÂ° ºñÆ® 1
Á¤Áö ºñÆ® 1.
¼³Á¤ SM1 = 1 ; SM0 = 0 ; (¸ðµå 2)
¼³Á¤ SM1 = 1 ; SM0 = 1 ; (¸ðµå 3)
µ¥ÀÌÅ͸¦ ´Ù ¹Þ¾ÒÀ» ¶§, 9 ¹øÂ° ºñÆ® D8ÀÌ Á÷·Ä Æ÷Æ® Á¦¾î SCON ·¹Áö½ºÅÍÀÇ RB8 ºñÆ®¿¡ ÀúÀåµÈ´Ù. ÇÁ·Î±×·¥¿¡¼ Á÷·Ä Æ÷Æ®Á¦¾î
SCON ·¹Áö½ºÅÍÀÇ º¸³»±â ºñÆ® TB8 ºñÆ®¿¡ ÇÑ ºñÆ®¸¦ ½á ³ÖÀ¸¸é µ¥ÀÌÅ͸¦ º¸³¾ ¶§ 9¹øÂ° ºñÆ® D8¿¡ Ãß°¡µÈ´Ù. ÀÌ 9¹øÂ° ºñÆ®´Â
ÁÖ¼Ò/µ¥ÀÌÅÍ Ç¥½Ã±â·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù.
¸ðµå 2¿¡¼, Àü¼Û ¼Óµµ(º¸¼Óµµ)´Â Fosc/32, ¶Ç´Â Fosc64·Î °íÁ¤µÈ´Ù. ¸ðµå 3¿¡¼, º¸¼Óµµ´Â ŸÀ̸Ó1 ¶Ç´Â ŸÀ̸Ó2ÀÇ ³Ñħ¿¡ ÀÇÇØ
¹ß»ýÇÑ´Ù.
º¸³»±â - (¸ðµå 1,2,3)
º¸³»±â Ç¥½Ã±â¸¦ Áö¿î´Ù. ¸ðµå 2/3ÀÇ °æ¿ì 9¹øÂ° ºñÆ® D8À» Á÷·Ä Æ÷Æ® Á¦¾î SCON·¹Áö½ºÅÍÀÇ º¸³»±â ºñÆ® TB8¿¡ ¾´´Ù.
TI = 0 ; (º¸³»±â Ç¥½Ã±â¸¦ Áö¿î´Ù)
RI = 1 ; (1 : ÁÖ¼ÒÇÁ·¹ÀÓ , 0 : µ¥ÀÌÅÍ ÇÁ·¹ÀÓ)
ÀÌÁ¦ ¿¹Á¦¸¦ º¸¸é¼ ÇÁ·Î ±×·¥¿¡¼ Àû¿ëµÇ´Â °ÍÀ» ¾Ë¾Æº¸ÀÚ.
#include "reg51.h"
#define PASSWORD 0x55 // Åë½Å»ó¿¡¼ »ç¿ëÇÒ password¸¦ Á¤ÀÇ
data unsigned int buffer = 0; // buffer ¶ó´Â º¯¼ö
serial() interrupt 4 // interrupt ÇÔ¼ö »ç¿ë
{
if(RI) // ¼ö½Å¿Ï·á È®ÀÎ
{
buffer = SBUF; // ¼ö½Å¿ë
RI = 0;
while(!TI); // ¼Û½Å¿Ï·á È®ÀÎ
SBUF = buffer; // ¼Û½Å¿ë
TI = 0;
}
}
void main()
{
TMOD = 0x20; //Åë½Å ¸ðµå ¼³Á¤ TMOD = 0010 0000
EA = 1; // Àüü interrupt Enable
ET1 = 0; // ŸÀ̸Ó1 interrupt Disable
TH1 = 243; // »óÀ§ºñÆ® ¼³Á¤
TL1 = 243; // ÇÏÀ§ºñÆ® ¼³Á¤
TR1 = 1;
SCON = 0x70 // SCON ¼³Á¤ SCON = 0111 0000
PCON = 0x00 // PCON ¼³Á¤ PCON = 0000 0000
ES = 1;
while(SBUF != PASSWORD)
SBUF = 0x00;
RI = 0;
TI = 0;
SBUF = PASSWORD;
ES = 1;
while(1);
}
À§ÀÇ ÇÁ·Î±×·¥À» ÀÌÇØ Çϸé ÀÚ½ÅÀÌ Á÷Á¢ ÇÁ·Î±×·¥À» ÇØº¸´Â °ÍÀÌ ÁÁ°Ú´Ù.
°Á Àü¹ÝºÎ¿¡¼µµ ¸»ÇßÁö¸¸ À̷и¸ÀÌ ¾Æ´Ñ °æÇèÀÌ Áß¿äÇϱ⠶§¹®ÀÌ´Ù