------- Á¦Ç°¼±Åà -------
-
- °³¹ßÄÜÆ®·ÑPCB
ioT¸¶½ºÅÍ ¸±·¹ÀÌ4Æ÷Æ®...
´Ù±â´ÉâÀÇÇнÀÀνķκ¿
·¹ÀÌÀú °Ç ¼¹ÙÀ̹ú °ÔÀÓ...
¸®¸ðÄÁ Á¦¾î 20ä³Î
¹«¼±Ã¶±âÁ¦º»±â
¹ß °ü¸® µðÅ彺
À½¼º ¹æ¼Û±â
Â÷·® CCTV CONTROL...
ÄÞºñ400
Ŭ·¹ÀÌ»ç°Ý~
Åäµðº¯±â
- CONTROL PCBÆǸÅ
LCD Áß°í ÆǸÅ
- ÃÊÀú°¡ ÀüÀÚºÎÇ° Àç°í ÆǸÅ
74HCTLS74N
ATMEL 93C46SC
CQ 33-455D 455...
D4SB 80 2D (80...
IR ¸®¸ðÄÁ 32keyÁ¦¾î...
JRC 2902
KA2263
KA723D
ODS-H4056KDM
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