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

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

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

Á¦ ¸ñ 13) USA RTÀÇ »ç¿ë¹ý
÷ºÎÆÄÀÏ


USA RTÀÇ »ç¿ë¹ý¡¡


¡¼USA RT¶õ? ¡½

USA RT¶õ,Universal Synchronous Asynchronous Receiver Transmitter ÀÇ
¾à¾î·Î, ¹®ÀÚ ±×´ë·Î ¹ü¿ëÀÇ µ¿±â½Ä°ú ºñµ¿±â½ÄÀÇ ½Ã¸®¾ó ¼Û¼ö½Å¿ëÀÇ ±â´ÉÀ» °¡Á®
ÀÖ½À´Ï´Ù.
¿©±â¿¡¼­´Â, °¡Àå ¸¹Àº »ç¿ë¹ýÀÎ, ºñµ¿±â½Ä(Á¶º¸µ¿±â½ÄÀ̶ó°íµµ ÇÑ´Ù)¿¡¼­ÀÇ »ç¿ë¹ý
(À»)¸¦ ¼³¸íÇÕ´Ï´Ù.

½Ã¸®¾ó Åë½ÅÀ̳ª Á¶º¸µ¿±â½ÄÀÇ ¼³¸íÀº,º°ÆäÀÌÁö(À»)¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä.

¡¼USA RTÀÇ ±¸¼º¡½

USA RT±â´ÉÀÇ ±¸¼º ºí·ÏÀº °£´ÜÇÏ°Ô °¡¸®Å°¸é(ÀÚ) ¹Ø±×¸²°ú °°ÀÌ µÇ¾î ÀÖ½À´Ï´Ù.
ÀÌ ±×¸²°ú °°ÀÌ ¼Û½Å°ú ¼ö½ÅÀÌ °¢°¢ µ¶¸³ÇÏ°í ÀÖÀ¸¹Ç·Î, ÀüÀÌÁß Åë½ÅÀÌ °¡´É
µÇ°í ÀÖ½À´Ï´Ù. Áï, ¾ðÁ¦¶óµµ µ¿½Ã¿¡ ¼Û½Å°ú ¼ö½ÅÀ» ÇÒ ¼ö ÀÖ´Ù°í ÇÏ´Â °ÍÀÔ´Ï´Ù.
±×·¯³ª, ÀÌ°Í¿¡´Â ¼Û¼ö½ÅÀÇ ÇÁ·Î±×·¥Ãøµµ ´ëÀÀ½ÃÅ°Áö ¾ÊÀ¸¸é °¡´ÉÇÏ´Ù°í´Â ¾ÈµÇ¾î,
ÀÌ°ÍÀ» °¡´É°ú Çϱâ À§Çؼ­´Â»õÄ¡±â¸¦ »ç¿ëÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù.

±×·¯³ª, ¿©±â¼­ÀÇ ¼³¸íÀº »õÄ¡±â¸¦ »ç¿ëÇÏÁö ¾Ê°í, ÇÁ·Î±×·¥À¸·Î ¼¾½º ÇÏ´Â »ç¿ë¹ýÀÔ´Ï´Ù
ÀÇ·Î, ¿ÏÀüÇÑ ÀüÀÌÁßÀº ¾Æ´Ï°í, ¹ÝÀÌÁß Åë½ÅÀÌ µÇ°í ÀÖ½À´Ï´Ù. Á¤È®ÇÏ°Ô ¸»Çϸé(ÀÚ),
¼ö½ÅÀº »ó½Ã °¡´ÉÇÕ´Ï´Ù¸¸, ¿¬¼Ó ¼Û½ÅÀº ÀüÀÌÁß¿¡¼­´Â ÇÒ ¼ö ¾ø½À´Ï´Ù.


¡¼USA RTÀÇ µ¿ÀÛ¡½

À­ ±×¸²À¸·Î USA RTÀÇ µ¿ÀÛÀ» ¼³¸íÇÕ´Ï´Ù.

(1) ¼Û½Å µ¿ÀÛ
¡¡¼Û½ÅÀÇ °æ¿ì¿¡´Â, ¿ì¼± TRMT³ª TXIFÀÇ ½ºÅ×ÀÌÅͽº·Î ·¹À̵ð »óŸ¦ È®ÀÎÇØ
¡¡¼Û½Å Busy°¡ ¾Æ´Ï¸é, ¼Û½ÅÇÏ´Â µ¥ÀÌÅ͸¦ TXREG ·¹Áö½ºÅÍ¿¡ ÇÁ·Î±×·¥À¸·Î
¡¡±âÀÔÇÕ´Ï´Ù. (MOV ¸í·É) Á÷ÈÄ¿¡ TXIF°¡ Busy »óÅ·ΠµË´Ï´Ù.
¡¡ÈÄ´Â ÀÚµ¿ÀûÀ¸·Î µ¥ÀÌÅÍ°¡ TXREG ·¹Áö½ºÅͷκÎÅÍ TSR ·¹Áö½ºÅÍÀÇ Àü¼Û µÇ¾î
¡¡TSR ·¹Áö½ºÅͷκÎÅÍ ½Ã¸®¾ó¿¡ º¯È¯µÇ¾î TXÇÉ¿¡ ¼ø¼­ ÁÁ°Ô Ãâ·ÂµË´Ï´Ù.
¡¡ÀÌ Àü¼Û Á÷ÈÄ¿¡´Â TXIF°¡ ·¹À̵𰡠µÇ¾î, ´ÙÀ½ÀÇ µ¥ÀÌÅ͸¦ TXREG ·¹Áö½ºÅÍ¿¡
¡¡¼¼Æ® ÇÏ´Â °ÍÀÌ °¡´ÉÇØÁý´Ï´Ù¸¸, ½ÇÁ¦·Î Ãâ·ÂµÇ´Â °ÍÀº, ¾Õ¿¡ º¸³Â´Ù
¡¡µ¥ÀÌÅÍ°¡ Ãâ·Â ¿Ï·áÇÑ ÈÄ°¡ µË´Ï´Ù.
¡¡¿©±â¼­, ½Ã¸®¾ó·Î Ãâ·ÂÇÒ ¶§ÀÇ Ãâ·Â ÆÞ½ºÆøÀÌ, SPBRG¿¡ ¼¼Æ® µÇ¾ú´Ù
¡¡baud rate¸¦ °áÁ¤ÇÏ´Â °ª¿¡ µû¶ó °áÁ¤µÇ°í Á¦¾îµË´Ï´Ù.
¡¡½Ã¸®¾ó Ãâ·ÂÀÌ ¿Ï·áÇϸé(ÀÚ) TRMT°¡ ·¹À̵ð »óÅ·Πµ¹¾Æ¿Í, ´ÙÀ½ÀÇ µ¥ÀÌÅÍ ¼Û½ÅÀÌ
¡¡°¡´ÉÇØÁý´Ï´Ù

(2) ¼ö½Å µ¿ÀÛ
¡¡¼ö½ÅÀÇ °æ¿ì¿¡´Â, RXÇÉ¿¡ ÀÔ·ÂµÈ ½ÅÈ£¸¦ »ó½Ã °¨½ÃÇØ, ¼ö½Å »ùÇÃ
¡¡±×¸®°í, ¹Ì¸® SPBRG¿¡ ¼¼Æ® µÈ baud rate¿¡ µû¶ó ÀÔ·Â ½ÅÈ£¸¦ »ê
¡¡ÇÁ¸µ ÇØ, ¿ì¼± ½ÃÀÛ ºñÆ®¸¦ °ËÃâÇϸé(ÀÚ), ±× ÈÄ¿¡ °è¼ÓµÇ´Â µ¥ÀÌÅ͸¦ RSR
¡¡·¹Áö½ºÅÍ¿¡ ¼ø¼­¿¡ ´ã¾Æ °©´Ï´Ù. ±×¸®°í stop bit¸¦ °ËÃâÇϸé(ÀÚ),
¡¡RSR ·¹Áö½ºÅͷκÎÅÍ RXREG ·¹Áö½ºÅÍ¿¡ Àü¼Û ÇÕ´Ï´Ù.
¡¡ÀÌ ½ÃÁ¡¿¡¼­, RCIF°¡ ·¹À̵𰡠µÇ¾î, ¼ö½Å µ¥ÀÌÅÍÀÇ Áغñ¸¦ ÇÒ ¼ö ÀÖ´ø °ÍÀ» ÅëÁö
¡¡. ÇÁ·Î±×·¥¿¡¼­´Â, ÀÌ RCIF¸¦ °¨½ÃÇØ, ·¹À̵𰡠µÇ¸é, RXREG
¡¡·¹Áö½ºÅͷκÎÅÍ µ¥ÀÌÅ͸¦ ÀоîµéÀÔ´Ï´Ù.
¡¡ÀÌ RXREG ·¹Áö½ºÅÍ´Â 2 °èÃþÀÇ ´õºí ¹öÆÛ°¡ µÇ°í ÀÖÀ¸¹Ç·Î, ´ÙÀ½ÀÇ ´ÙÀ½ÀÇ
¡¡µ¥ÀÌÅ͸¦ ¼ö½Å ¿Ï·áÇϱâ±îÁö µ¥ÀÌŸ¸¦ »Ì±â ½ÃÀÛÇϸé Á¤»óÀûÀ¸·Î ¿¬¼Ó ¼ö½ÅÀ» ÇÒ ¼ö ÀÖ´Ù
¡¡µË´Ï´Ù. ÀÌ ´õºí ¹öÆÛÀÇ ´öºÐÀ¸·Î, ¼ö½Å ó¸®ÀÇ ½Ã°£À» ÆíÇÏ°Ô ÇÑ´Ù
¡¡ÀÏÀ» ÇÒ ¼ö ÀÖ½À´Ï´Ù¸¸, ¿¬¼Ó ¼ö½Å¶§·Î´Â, 1°³ÀÇ µ¥ÀÌÅ͸¦ ¼ö½ÅÇÏ´Â µ¿¾È¿¡ ó¸®
¡¡(À»)¸¦ ¿Ï·á½ÃÅ°´Â °ÍÀÌ ÇÊ¿äÇÕ´Ï´Ù.

¡¼°ü·Ã ·¹Áö½ºÅÍÀÇ ¼³Á¤¡½

USA RT¸¦ Á¶º¸µ¿±â¿¡ »ç¿ëÇÏ´Â °æ¿ìÀÇ ¼³Á¤Àº ¾Æ·¡¿Í °°ÀÌ ÇÕ´Ï´Ù.
¿ì¼± °ü·ÃÇÏ´Â ·¹Áö½ºÅÍÀÇ À϶÷Ç¥´Â ¾Æ·¡¿Í °°ÀÌ°¡ µË´Ï´Ù. ÀÌ ·¹Áö½ºÅÍÀÇ Á¸ÀçÇÑ´Ù
¹ðÅ©°¡ ³ª´µ°í ÀÖÀ¸¹Ç·Î ÁÖÀÇ°¡ ÇÊ¿äÇÕ´Ï´Ù. ƯÈ÷ ¼Û½ÅÀÇ TRMT ½ºÅ×ÀÌÅͽº
(Àº)´Â ¹ðÅ© 1 Ãø¿¡ ÀÖÀ¸¹Ç·Î ÁÖÀÇ°¡ ÇÊ¿äÇÕ´Ï´Ù.

ÁÖ¼Ò

¹ðÅ© 0

¹ðÅ© 1

±â´É °³¿ä

0CH

PIR1

  ¼Û¼ö½Å ¿Ï·á Ç÷¡±×
18H

RCSTA

TXSTA

½ºÅ×ÀÌÅͽº¿Í ¸ðµå ¼³Á¤
19H

TXREG


SPBRG

¼Û½Å ·¹Áö½ºÅÍ
baud rate ¼³Á¤
20H

RCREG

  ¼ö½Å ·¹Áö½ºÅÍ

(1) TXSTA ·¹Áö½ºÅÍÀÇ »ó¼¼¿Í ¼³Á¤
¡¡¡¡¼Û½ÅÀÇ µ¿ÀÛ ¸ðµå¸¦ ÁöÁ¤ÇÏ´Â ·¹Áö½ºÅÍ°¡ TXSTA ·¹Áö½ºÅÍ·Î, ³»ºÎ ±¸Á¶´Â
¡¡¡¡¹Ø±×¸²°ú °°ÀÌ µÇ¾î ÀÖ½À´Ï´Ù. ¹Ø±×¸²°ú °°ÀÌ º¸Åë Á¶º¸µ¿±â½ÄÀÇ °æ¿ì¿¡´Â,
¡¡¡¡8 ºøÆ®³íÆĸ®Æ¼¡¡(À»)¸¦ »ç¿ëÇϱ⠶§¹®¿¡ ¹Ø±×¸²°ú °°Àº ÁöÁ¤À¸·Î ÇÕ´Ï´Ù.
¡¡¡¡°Ô´Ù°¡ ÇÁ·Î±×·¥ ¼¾½º ¹æ½Ä¿¡¼­, ·¹À̵ð üũ¸¦ ÇÒ °æ¿ì¿¡´Â, TRMT
¡¡¡¡½ºÅ×ÀÌÅͽº¸¦ »ç¿ëÇϸé(ÀÚ), È®½ÇÈ÷ ÀüÀÇ µ¥ÀÌÅÍÀÇ ¼Û½ÅÀÌ ¿Ï·áÇÏ°í ³ª¼­ ·¹À̵ð¿Í
¡¡¡¡µÇ¹Ç·Î, PIR1 ·¹Áö½ºÅÍÁßÀÇ TXIF ½ºÅ×ÀÌÅͽº¸¦ »ç¿ëÇÏ´Â °Íº¸´Ù´Â, È®½ÇÇÑ ¹ÝÀÌÁß
¡¡¡¡Åë½ÅÀ¸·Î ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.









(2) RCSTA ·¹Áö½ºÅÍÀÇ »ó¼¼¿Í ¼³Á¤
¡¡¡¡¼ö½ÅÀÇ µ¿ÀÛ ¸ðµå¸¦ ÁöÁ¤ÇÏ´Â ·¹Áö½ºÅÍ°¡ RCSTA ·¹Áö½ºÅÍ·Î, ³»ºÎ ±¸¼ºÀº
¡¡¡¡¹Ø±×¸²°ú °°ÀÌ µÇ¾î ÀÖ½À´Ï´Ù. ÀÌ ¼³Á¤µµ ¼Û½Å°ú °°ÀÌ, Á¶º¸µ¿±â½ÄÀÇ
¡¡¡¡°æ¿ì¿¡´Â ¹Ø±×¸²°ú °°Àº ¼³Á¤À¸·Î ÇÕ´Ï´Ù.
¡¡¡¡¼ö½ÅÀÇ °æ¿ìÀÇ ·¹À̵ð üũ´Â PIR1 ·¹Áö½ºÅÍÁßÀÇ RCIF ½ºÅ×ÀÌÅͽº·Î ½Ç½ÃÇØ
¡¡¡¡.












(3) SPBRGÀÇ ¼³Á¤ ¹æ¹ý¹ý
¡¡¡¡Åë½Å ¼Óµµ¸¦ °áÁ¤ÇÏ´Â °ÍÀº, SPBRG ·¹Áö½ºÅÍ¿¡ ÀÇÇÑ baud rate Á¦³×·¹ÀÌÅÍ°¡
¡¡¡¡Á¦¾îÇÏ°í ÀÖ½À´Ï´Ù. ÀÌ SPBRG ·¹Áö½ºÅÍ¿¡·Î ¼³Á¤ÇÏ´Â ¼öÄ¡¿Í baud rateÀÇ
¡¡¡¡°ü°è´Â ¾Æ·¡ Ç¥¿Í °°ÀÌ µË´Ï´Ù. ´Ü, ¾Æ·¡ Ç¥´Â Á¶º¸µ¿±â½ÄÀÇ °æ¿ì »ÓÀÔ´Ï´Ù.
¡¡¡¡µ¿±â½ÄÀÇ °æ¿ì¿¡´Â ´Ù¸¥ °ªÀÌ µÇ±â ¶§¹®¿¡, PICÀÇ ¸Þ´º¾óÀ» ÂüÁ¶ÇØ
¡¡¡¡ÁÖ¼¼¿ä.

¡¡¡¡Å¬¶ô

baud rate

20MHz

16MHz

10MHz

SPBRG
¼³Á¤Ä¡

¿¡·¯
·¹ÀÌÆ®

SPBRG
¼³Á¤Ä¡

¿¡·¯
·¹ÀÌÆ®

SPBRG
¼³Á¤Ä¡

¿¡·¯
·¹ÀÌÆ®

1200

255

1.73

207

0.16

129

0.16

2400

129

0.16

103

0.16

64

0.16

9600

32

-1. 36

25

0.16

15

1.73

19. 2K

15

1.73

12

0.16

7

1.73

76. 8K

3

1.73

----

----

1

1.73

¡¡¡¡(ÁÖ) ¿¡¶ó·¹ÀÌÆ®¶õ, baud rate ÁÖÆļöÀÇ ¾ù°¥¸²ÀÌ ¸¹À½À»%·Î ³ªÅ¸³½ °ÍÀ¸·Î
¡¡¡¡¡¡¡¡¡¡1 ÇÁ·¹ÀÓ³»¿¡¼­ÀÇ ¾ù°¥¸²ÀÌ µË´Ï´Ù¸¸, 10ºñÆ®(start stop ¸ÂÃß¾î)
¡¡¡¡¡¡¡¡¡¡ÀÇ ÇÁ·¹ÀÓ¿¡¼­ÀÇ ¿¡·¯ ¸¶ÁøÀº, 1/2ºñÆ®Æø±îÁöÀÇ ¾ù°¥¸²À» Çã¿ë Çϸé(ÀÚ)
¡¡¡¡¡¡¡¡¡¡Çϸé, 50%10=5%°¡ µË´Ï´Ù.

¡¼USA RTÀÇ »ç¿ë¿¹¡½

½ÇÁ¦·Î USA RT¸¦ »ç¿ëÇÑ ¿¹¸¦ ¼³¸íÇÕ´Ï´Ù. ¿©±â¿¡¼­´Â, PCÀÇ RS232CÀÇ ½Ã¸®¾ó
ÀÎÅÍÆäÀ̽º¿ÍÀÇ Á¢¼ÓÀ» ¿¹·Î ÇØ ±¸Ã¼ÀûÀÎ »ç¿ë¹ýÀ» ¼³¸íÇÕ´Ï´Ù.
¿ì¼±, ÀÌ ¶§¹®¿¡ÀÇ PICÃøÀÇ È¸·Îµµ´Â ¹Ø±×¸²°ú °°ÀÌ ÇÕ´Ï´Ù. ¿©±â¿¡¼­´Â, ÇÊ¿äÇÑ ºÎºÐ
¸¶¼Å °¡¸®Å°°í ÀÖ½À´Ï´Ù. »ç¿ëÇÑ PIC´Â PIC16C73/JPÀÔ´Ï´Ù.
RS232CÀÇ ÀÎÅÍÆäÀ̽º¿¡ ¸ÂÃß±â À§ÇÑ ·¹º§ º¯È¯¿¡´Â, À¯¸íÇÑ MAX232
±×·¸´Ù°í ÇÏ´Â IC¸¦ »ç¿ëÇÏ°í ÀÖ½À´Ï´Ù. ÀÌ°Í¿¡´Â ÃÖ±Ù¿¡´Â °¢»ç·ÎºÎÅÍ µ¿ÀÏÇÑ ±â´ÉÀÇ IC°¡ ¹ß¸ÅµÇ¾î
ÀÖÀ¸¹Ç·Î, ¾î¶² °Í¿¡¼­µµ OKÀÔ´Ï´Ù. PCÃøÀº DOS/V±âÀ̸é, COM2 Æ÷Åä¿¡ Á¢¼Ó
ÇÕ´Ï´Ù.



¡¡¡¡¡¡¡¡

¡¼ÇÁ·Î±×·¥¿¹¡½

»ó±â ȸ·Îµµ¿¡¼­ ½ÇÁ¦ÀÇ Åë½ÅÀ» Å×½ºÆ®Çϱâ À§ÇÑ ÇÁ·Î±×·¥¿¹¸¦ ¼³¸íÇÕ´Ï´Ù.
À̹ø Å×½ºÆ®¿¡ »ç¿ëÇÑ ÇÁ·Î±×·¥Àº, ¾Æ·¡¿Í °°Àº ±â´ÉÀ» °®°í ÀÖ½À´Ï´Ù.

¡¤Åë½Å ¼Óµµ´Â 19. 2 Kbps·Î ÇØ, 8 ºøÆ®³íÆĸ®Æ¼ÀÇ Á¶º¸µ¿±â½ÄÀ¸·Î ÇÑ´Ù.

¡¤PC·ÎºÎÅÍÀÇ µ¥ÀÌÅÍ ¼ö½ÅÀ» »ó½Ã °¨½ÃÇØ, µ¥ÀÌÅ͸¦ ¼ö½ÅÇϸé(ÀÚ) µ¥ÀÌŸ¸Þ¸ð¸®
¡¡ÀÇ ¹ðÅ© 1ÃøÀÇ 96¹ÙÀÌÆ®ÀÇ ¿µ¿ª¿¡ °Ý³³ÇÑ´Ù.
¡¤¼ö½ÅÇÑ µ¥ÀÌÅÍ°¡ CRÄÚµå(0 D)À̸é(ÀÚ), ±× ½ÃÁ¡¿¡¼­ µ¥ÀÌŸ¸Þ¸ð¸®¿¡ °Ý³³
¡¡ÇÏ°í ÀÖ´ø µ¥ÀÌÅ͸¦ Â÷·ÊÂ÷·Ê PC Ãø¿¡ ¼Û½ÅÇÑ´Ù.
¡¤¼ö½Å µ¥ÀÌÅ͸¦ °Ý³³ÇÏ´Â ½ÃÁ¡¿¡¼­ 96¹ÙÀÌÆ®¸¦ ³Ñ¾úÀ» ¶§¿¡´Â, ±× ½ÃÁ¡¿¡¼­ÀÇ
¡¡µ¥ÀÌŸ¸Þ¸ð¸®ÀÇ 96¹ÙÀÌÆ®ÀÇ ³»¿ëÀ» ¸ðµÎ PC¿¡ ¼Û½ÅÇÑ´Ù.
¡¤µ¥ÀÌÅÍ ¼Û½ÅÀÇ ¸¶Áö¸·¿¡´Â, Ç×»ó¡±End of TX¡±¶ó°í ÇÏ´Â °íÁ¤ ¸Þ¼¼Áö¸¦ ºÎ°¡ÇØ
¡¡¼Û½ÅÇÑ´Ù.

¡ÚUSA RTÅ×½ºÆ® ÇÁ·Î±×·¥ ¿ø½Ã ÆÄÀÏ


º»ÇÁ·Î±×·¥¿¹¿¡¼­´Â, Åë½Å 󸮸¦ ½Ç½ÃÇÒ ¶§ÀÇ ¹öÆÛÀÇ Ã³¸®ÀÇ Ãë±Þ ¹æ¹ýµµ ¿¹¿Í
ÇØ ³Ö¾î µÓ´Ï´Ù.
¡¡¡¤µ¥ÀÌÅÍ ¸Þ¸ð ¸®¿¡ ¸®¾î¿¡ °Ý³³ÇØ ³ª°¡´Â ¹æ¹ý
¡¡¡¤°íÁ¤ Æ÷¸ËÀÇ µ¥ÀÌÅ͸¦ ¼Û½ÅÇÏ´Â ¹æ¹ý
ÀÇ 2 Á¾·ù¸¦ ¿¹·Î¼­ ÀÖ½À´Ï´Ù.


;*********************************************
;
;¡¡USART test program using USART module.
;¡¡Test condition is below
;¡¡¡¡Mode : Asyncronous transfer mode only
;¡¡¡¡Speed: 1200,2400,9600,19Kbps switchable
;¡¡¡¡Bit¡¡: startx1¡¡datax8¡¡stopx1
;¡¡¡¡Not use interrupt
;
;*********************************************
;
¡¡¡¡¡¡LIST¡¡¡¡¡¡ P=PIC16C73A
¡¡¡¡¡¡INCLUDE¡¡¡¡"P16C73A.INC"

;***********************************
;¡¡º¯¼ö Á¤ÀÇ
;¡¡¹ðÅ© 1ÀÇ ÀüºÎ(96¹ÙÀÌÆ®)¸¦ ¼Û¼ö½Å
;¡¡¹öÆ۷μ­ »ç¿ëÇÕ´Ï´Ù.
;***********************************
TEMP¡¡¡¡ EQU¡¡¡¡020H¡¡¡¡¡¡¡¡;work area
POINT¡¡¡¡EQU¡¡¡¡021H¡¡¡¡¡¡¡¡;pointer of table

BUFFER¡¡ EQU¡¡¡¡020H¡¡¡¡¡¡¡¡;buffer


¡¡¡¡¡¡¡¡ ORG¡¡¡¡0
;***********************************
;¡¡¼Û¼ö½Å ¸ðµåÀÇ ÃʱâÈ­
;¡¡¹ðÅ©ÀÇ À§Ä¡¿¡ ÁÖÀÇ
;¡¡Baud¡¡rate¡¡setting¡¡is¡¡below
;¡¡¡¡¡¡¡¡Clock¡¡10MHz¡¡¡¡¡¡20MHz¡¡¡¡¡¡¡¡¡¡
;¡¡¡¡¡¡¡¡Baud ¡¡SPBRG¡¡¡¡¡¡SPBRG
;¡¡¡¡¡¡¡¡1200¡¡¡¡81H¡¡¡¡¡¡¡¡FFH
;¡¡¡¡¡¡¡¡2400¡¡¡¡40H¡¡¡¡¡¡¡¡81H
;¡¡¡¡¡¡¡¡9600¡¡¡¡0FH¡¡¡¡¡¡¡¡20H
;¡¡¡¡¡¡¡¡19K ¡¡¡¡07H¡¡¡¡¡¡¡¡0FH¡¡¡¡
;***********************************
INIT
¡¡¡¡¡¡¡¡BSF¡¡¡¡ STATUS, RP0¡¡¡¡;¹ðÅ© 1¿¡ Àüȯ
¡¡¡¡¡¡¡¡MOVLW ¡¡081H¡¡¡¡¡¡¡¡¡¡;set portc
¡¡¡¡¡¡¡¡MOVWF¡¡ TRISC¡¡¡¡¡¡ ¡¡;PORTC
;
¡¡¡¡¡¡¡¡MOVLW¡¡ 020H¡¡¡¡¡¡¡¡¡¡;Set Async mode¡¡
¡¡¡¡¡¡¡¡MOVWF¡¡ TXSTA¡¡¡¡¡¡ ¡¡;Set TX mode
¡¡¡¡¡¡¡¡MOVLW¡¡ 07H¡¡¡¡¡¡¡¡¡¡ ;Set Baud Rate 19Kbps
¡¡¡¡¡¡¡¡MOVWF¡¡ SPBRG¡¡¡¡¡¡ ¡¡;Set BRG
¡¡¡¡¡¡¡¡BCF¡¡¡¡ STATUS, RP0¡¡¡¡;¹ðÅ© 0¿¡ µÇµ¹¸°´Ù
¡¡¡¡¡¡¡¡MOVLW¡¡ 090H¡¡¡¡¡¡¡¡¡¡;Set Async mode¡¡
¡¡¡¡¡¡¡¡MOVWF¡¡ RCSTA¡¡¡¡¡¡ ¡¡;Set RX mode

;****************************************
;¡¡Main routine
;¡¡µ¥ÀÌÅ͸¦ ¼ö½ÅÇØ ¹öÆÛ¿¡ °Ý³³ÇÑ´Ù.
;¡¡¸¸¾à µ¥ÀÌÅÍ°¡ CR¶ó¸é Áö±Ý±îÁöÀÇ µ¥ÀÌÅ͸¦
;¡¡¼Û½Å Ãâ·ÂÇÑ´Ù.
;¡¡¶Ç ¹öÆÛ°¡ °¡µæÇÏ°Ô µÇ¾úÀ» ¶§µµ ¼Û½ÅÇÑ´Ù.
;****************************************
MAIN
;******¡¡Wait Receive data¡¡******
¡¡¡¡¡¡¡¡MOVLW¡¡ 0A0H¡¡¡¡¡¡¡¡¡¡;set buffer top address
¡¡¡¡¡¡¡¡MOVWF¡¡ FSR¡¡¡¡¡¡¡¡¡¡ ;°£Á¢ ÁÖ¼Ò Æ÷ÀÎÅÍ ÃʱâÈ­
LPRCV
¡¡¡¡¡¡¡¡BCF¡¡¡¡ PORTC, 5¡¡¡¡ ¡¡;LED on
;
¡¡¡¡¡¡¡¡BTFSS¡¡ PIR1, RCIF¡¡¡¡ ;check receive end flag
¡¡¡¡¡¡¡¡GOTO¡¡¡¡LPRCV
;
¡¡¡¡¡¡¡¡BSF¡¡¡¡ PORTC, 5¡¡¡¡ ¡¡;LED off
;**** error check¡¡****
¡¡¡¡¡¡¡¡BTFSC¡¡ RCSTA, FERR¡¡¡¡;framing error check
¡¡¡¡¡¡¡¡GOTO¡¡¡¡FRAME
¡¡¡¡¡¡¡¡BTFSC¡¡ RCSTA, OERR¡¡¡¡;overrun error
¡¡¡¡¡¡¡¡GOTO¡¡¡¡OVER
;*****¡¡get data and save¡¡*****
;** °£Á¢ ¾Öµå·¹½ÌÀ¸·Î ¹öÆÛ¿¡ °Ý³³ÇÑ´Ù ***
¡¡¡¡¡¡¡¡MOVF¡¡¡¡RCREG, W¡¡¡¡¡¡ ;get received data
¡¡¡¡¡¡¡¡MOVWF¡¡ INDF¡¡¡¡¡¡¡¡¡¡;save in buffer
¡¡¡¡¡¡¡¡SUBLW¡¡ 0DH¡¡¡¡¡¡¡¡ ¡¡;CR code?
¡¡¡¡¡¡¡¡BTFSC¡¡ STATUS, Z¡¡¡¡¡¡;data=CR?
¡¡¡¡¡¡¡¡GOTO¡¡¡¡SEND¡¡¡¡¡¡¡¡¡¡;to transfer
;****¡¡if buffer full then end¡¡*****
CHKBF
¡¡¡¡¡¡¡¡INCF¡¡¡¡FSR, F¡¡¡¡¡¡¡¡ ;pointer+1
¡¡¡¡¡¡¡¡BTFSS¡¡ STATUS, Z¡¡¡¡¡¡;buffer full?
¡¡¡¡¡¡¡¡GOTO¡¡¡¡LPRCV
¡¡¡¡¡¡¡¡GOTO¡¡¡¡SEND¡¡¡¡¡¡¡¡¡¡;full then end¡¡


;********¡¡ERROR PROCES¡¡******
;****¡¡framing error
FRAME
¡¡¡¡¡¡¡¡MOVF¡¡¡¡RCREG, W¡¡¡¡¡¡ ;dumy input & reset FERR
¡¡¡¡¡¡¡¡MOVLW¡¡ '? '
¡¡¡¡¡¡¡¡MOVWF¡¡ INDF¡¡¡¡¡¡¡¡¡¡;save ?
¡¡¡¡¡¡¡¡BTFSS¡¡ RCSTA, OERR¡¡¡¡;check more error?
¡¡¡¡¡¡¡¡GOTO¡¡¡¡CHKBF¡¡¡¡¡¡¡¡ ;to next
;*****¡¡overrun error
OVER
¡¡¡¡¡¡¡¡BCF¡¡¡¡ RCSTA, CREN¡¡¡¡;reset OERR
¡¡¡¡¡¡¡¡BSF¡¡¡¡ RCSTA, CREN
¡¡¡¡¡¡¡¡MOVLW¡¡ '? '
¡¡¡¡¡¡¡¡MOVWF¡¡ INDF¡¡¡¡¡¡¡¡¡¡;save ?
¡¡¡¡¡¡¡¡GOTO¡¡¡¡CHKBF¡¡¡¡¡¡¡¡ ;to next

;*************************
;******¡¡Send answer¡¡******
SEND
¡¡¡¡¡¡¡¡MOVLW¡¡¡¡0A0H¡¡¡¡¡¡¡¡ ;reset pointer
¡¡¡¡¡¡¡¡MOVWF¡¡¡¡FSR
LPSD
¡¡¡¡¡¡¡¡BCF¡¡¡¡¡¡PORTC, 5¡¡¡¡¡¡;LED on¡¡
¡¡¡¡¡¡¡¡MOVF¡¡¡¡ INDF, W¡¡¡¡ ¡¡;get data
¡¡¡¡¡¡¡¡CALL¡¡¡¡ TX¡¡¡¡¡¡¡¡¡¡ ;send execute
¡¡¡¡¡¡¡¡BSF¡¡¡¡¡¡PORTC, 5¡¡¡¡¡¡;LED off
¡¡¡¡¡¡¡¡MOVF¡¡¡¡ INDF, W¡¡¡¡¡¡ ;re-get data
¡¡¡¡¡¡¡¡SUBLW¡¡¡¡0DH¡¡¡¡¡¡¡¡¡¡;CR?
¡¡¡¡¡¡¡¡BTFSC¡¡¡¡STATUS, Z¡¡¡¡ ;end check
¡¡¡¡¡¡¡¡GOTO¡¡¡¡ TEXT¡¡¡¡¡¡¡¡ ;end text send
;****¡¡if buffer end then end¡¡*****
¡¡¡¡¡¡¡¡INCF¡¡¡¡ FSR, F¡¡¡¡¡¡¡¡;pointer+1
¡¡¡¡¡¡¡¡BTFSS¡¡¡¡STATUS, Z¡¡¡¡ ;buffer end?
¡¡¡¡¡¡¡¡GOTO¡¡¡¡ LPSD¡¡¡¡¡¡¡¡ ;loop
¡¡¡¡¡¡¡¡GOTO¡¡¡¡ TEXT¡¡¡¡¡¡¡¡ ;end

;************¡¡text send process¡¡¡¡*****
;** °íÁ¤ µ¥ÀÌÅÍÀÇ ¼Û½Å¿¹¡¡****
TEXT
¡¡¡¡¡¡¡¡CLRF¡¡¡¡ POINT¡¡¡¡¡¡¡¡;reset table pointer
LPTEX
¡¡¡¡¡¡¡¡MOVF¡¡¡¡ POINT, W¡¡¡¡¡¡;get pointer offset
¡¡¡¡¡¡¡¡ANDLW¡¡¡¡0FH¡¡¡¡¡¡¡¡¡¡;limit upper
¡¡¡¡¡¡¡¡CALL¡¡¡¡ TABLE¡¡¡¡¡¡¡¡;get text data
¡¡¡¡¡¡¡¡ADDLW¡¡¡¡0¡¡¡¡¡¡¡¡¡¡¡¡;test zero?
¡¡¡¡¡¡¡¡BTFSC¡¡¡¡STATUS, Z¡¡¡¡ ;end zero?
¡¡¡¡¡¡¡¡GOTO¡¡¡¡ MAIN
¡¡¡¡¡¡¡¡CALL¡¡¡¡ TX¡¡¡¡¡¡¡¡¡¡ ;send
¡¡¡¡¡¡¡¡INCF¡¡¡¡ POINT, F¡¡¡¡¡¡;pointer+1
¡¡¡¡¡¡¡¡GOTO¡¡¡¡ LPTEX
;*****¡¡text data table¡¡*****
;** RETLW ¸í·ÉÀ¸·Î Å×À̺íÀ» ÀÛ¼º ****
TABLE
¡¡¡¡¡¡¡¡ADDWF¡¡¡¡PCL, F¡¡¡¡¡¡¡¡;PC+offset
¡¡¡¡¡¡¡¡DT¡¡¡¡¡¡ "End of TX", 0,0,0,0,0,0,0,0


;**************************************
;¡¡Transmit subroutine
;¡¡·¹À̵ð üũ´Â ¼Û½Å ·¹Áö½ºÅÍÇϴÿ¡¼­ È®ÀÎ
;¡¡Áï, TRMT=1À¸·Î ·¹À̵ð¿Í ÆÇÁ¤
;¡¡TXSTA°¡ ÀÖ´Â ¹ðÅ©¿¡ ÁÖÀÇ
;**************************************
TX
¡¡¡¡¡¡¡¡MOVWF¡¡¡¡TEMP¡¡¡¡¡¡¡¡¡¡;data¡¡save
¡¡¡¡¡¡¡¡BSF¡¡¡¡¡¡STATUS, RP0¡¡¡¡;switch to Bank1
LPTX
¡¡¡¡¡¡¡¡BTFSS¡¡¡¡TXSTA, TRMT¡¡¡¡;ready check
¡¡¡¡¡¡¡¡GOTO¡¡¡¡ LPTX
;
¡¡¡¡¡¡¡¡BCF¡¡¡¡¡¡STATUS, RP0¡¡¡¡;return to Bank0
¡¡¡¡¡¡¡¡MOVF¡¡¡¡ TEMP, W¡¡¡¡¡¡¡¡;get data
¡¡¡¡¡¡¡¡MOVWF¡¡¡¡TXREG¡¡¡¡¡¡¡¡ ;start send
¡¡¡¡¡¡¡¡RETURN

¡¡¡¡¡¡¡¡END


¸ñ·Ïº¸±â

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

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