¢À ºÎ·Ï
¿¹Á¦ ¹× ¼Ò½º ÇÁ·Î±×·¥Àº '»óÇ°°ü·Ã ÀÚ·á½Ç'¿¡ ÀÖ½À´Ï´Ù.
¢À ÁÖ¿ä³»¿ë ¢À
ÀÎÅÚÀÇ 8ºñÆ® ¸¶ÀÌÅ©·ÎÄÜÆ®·Ñ·¯ÀÎ 8051À» C¾ð¾î·Î »ç¿ëÇÏ¿© Á¦¾îÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¼³¸íÇÏ¿´´Ù.
8051 C¾ð¾î ÄÄÆÄÀÏ·¯´Â Archimedes C-51 ÄÄÆÄÀÏ·¯¸¦ »ç¿ëÇÏ¿´°í, ÀÌ¿¡ ´ëÇÑ »ç¿ë¹ý, Âü°í»çÇ×,
¿¹Á¦ µîÀ» ½Ç¾ú´Ù.
¢À Â÷·Ê ¢À
1ºÎ 8051C ¾ð¾î
1Àå C£51 »ç¿ëÇϱ⿡ ¾Õ¼
1.1 C¾ð¾î ÀåÁ¡°ú »ç¿ëȯ°æ
1.1.1 C¾ð¾î´Â ²æ¸Ô°í ¾Ë¸Ô°í? <Ư¡°ú ÀåÁ¡>
1.1.2 C£51°ú ½Ã½ºÅÛ »ç¿ëȯ°æ
1.2 C£51 ÄÄÆÄÀÏ·¯ÀÇ ±¸¼º
1.3 C£51 ¼³Ä¡Çϱâ
2Àå 8051°ú C£51 ÄÄÆÄÀÏ·¯
2.1 8051 ±âº» ±¸Á¶
2.2 ¸Þ¸ð¸® ¿µ¿ª
2.2.1 ÇÁ·Î±×·¥ ¸Þ¸ð¸®(CODE Memory)
2.2.2 ³»ºÎ µ¥ÀÌŸ ¸Þ¸ð¸®(DATA, IDATA Memory)
2.2.3 SFR (Special Funtion Register)
2.2.4 ¿ÜºÎ µ¥ÀÌŸ ¸Þ¸ð¸®(XDATA Memory)
2.3 ·¹Áö½ºÅÍ(REGISTER)
2.4 8051 ¸í·É¼¼Æ®
2.5 ½ºÅÃ(STACK)
2.5.1 8051 ½ºÅÃÀÇ Á¤ÀÇ¿Í ÀÛµ¿
2.5.2 C£51 V4.1ÀÇ ½ºÅà »ç¿ë
2.5.3 ÃÑ ¿ä±¸µÇ´Â ½ºÅà °ø°£ÀÇ ÃøÁ¤
2.5.4 ½ºÅà ũ±â, ½ºÅà üũ, ½ºÅà ¹æÇâ
2.5.5 ÇÔ¼öÀÇ È£Ãâ, º¹±Í
2.6 I / O Æ÷Æ®
2.7 ŸÀ̸Ó/Ä«¿îÅÍ
2.7.1 ŸÀ̸Ó/Ä«¿îÅÍ 0°ú ŸÀ̸Ó/Ä«¿îÅÍ 1
2.7.2 ŸÀ̸Ó/Ä«¿îÅÍ 2
2.7.3 C£51¿¡¼ ŸÀ̸Ó/Ä«¿îÅÍÀÇ »ç¿ë
2.8 ½Ã¸®¾ó Æ÷Æ®
2.8.1 ½Ã¸®¾ó Æ÷Æ®ÀÇ ±¸Á¶
2.8.2 ¸ÖƼ ÇÁ·Î¼¼¼ Åë½Å
2.8.3 ½Ã¸®¾ó Æ÷Æ® ·¹Áö½ºÅÍ(SCON)
2.8.4 º¸¿À·¹ÀÌÆ® (Baud rate)
2.8.5 C£51¿¡¼ ½Ã¸®¾ó Æ÷Æ®ÀÇ »ç¿ë
2.9 ÀÎÅÍ·´Æ®
2.9.1 ÀÎÅÍ·´Æ® Çڵ鸵 ÀýÂ÷
2.9.2 ÀÎÅÍ·´Æ® ÀýÂ÷ ¿¹
2.9.3 ·± ŸÀÓ ÀýÂ÷
2.9.4 C£51ÀÇ ÀÎÅÍ·´Æ® ¼ºñ½º ·çƾ »ç¿ë
2.9.5 ÀÎÅÍ·´Æ® ¼ºñ½º ·çƾ ¼±¾ð
2.9.6 ISRÀ» »ç¿ëÇÒ¶§ÀÇ °ü·Ê¿Í Á¦¾à
2.9.7 ¾î¼Àºí¸®¾î·Î ÀÛ¼ºÇÑ ÀÎÅÍ·´Æ® ÄÚµå ¿¹
3Àå C£51 ³»ºÎ±¸Á¶
3.1 ¼¼±×¸ÕÆ®(Segment)
3.1.1 Àý´ë ¼¼±×¸ÕÆ®¿Í »ó´ë ¼¼±×¸ÕÆ®
3.1.2 ¼¼±×¸ÕÆ®ÀÇ À̸§, ŸÀÔ, ¹°¸®ÀûÀÎ ÁÖ¼Ò
3.1.3 ¼¼±×¸ÕÆ®ÀÇ »ç¿ë
3.1.4 ¼¼±×¸ÕÆ®¿¡ °üÇÑ Á¤º¸
3.2 6°¡Áö ¸Þ¸ð¸® ¸ðµ¨
3.2.1 ¸Þ¸ð¸® ¸ðµ¨ ÁöÁ¤
3.2.2 ¸Þ¸ð¸® ¸ðµ¨ ¼±ÅÃ
3.3 ANSI C¿Í C£51
3.3.1 ANSI CÀÇ ±¸Á¶
3.3.2 ¸ðµâ ¸µÅ©
3.3.3 È®ÀåµÈ C£51 ÄÚµå
3.4 C£51 µ¥ÀÌÅÍ ÇüÅÂ¿Í ÀúÀå Ŭ·¡½º
3.4.1 µ¥ÀÌÅÍ ÇüÅÂ
3.4.2 ÀúÀå Ŭ·¡½º
3.4.3 Ưº°ÇÑ ÇüÅ Áö½ÃÀÚ
3.5 È®ÀåµÈ C£51 ¾ð¾î Å°¿öµå
3.5.1 È®ÀåµÈ ¾ð¾îÀÇ ¼Ò°³
3.5.2 È®ÀåµÈ ¾ð¾îÀÇ ¿ä¾à
3.5.3 È®ÀåµÈ Å°¿öµåÀÇ ÀνÄ
3.5.4 Å°¿öµå¿Í #pragma
3.5.5 SFR º¯¼ö ¼±¾ð
3.5.6 Bit º¯¼ö ¼±¾ð
3.5.7 CODE, DATA, IDATA, XDATA
3.5.8 ºñÈֹ߼º ¸Þ¸ð¸® Áö¿ø
3.5.9 Interrupt ÇÔ¼ö
3.6 Configuration
3.6.1 CSTARTUP.S03
3.6.2 Linker Control File(.XCL)
3.6.3 PUTCHAR.C
3.6.4 GETCHAR.C
3.6.5 ÀÔÃâ·Â Çì´õ ÈÀÏ (IO*.H)
3.6.6 HEAP.C
3.7 È¿°úÀûÀÎ C£51 ÄÚµå »ý¼º
3.7.1 È¿À²¼º°ú ¾ÐÃà
3.7.2 »ó¼ö, ·çÇÁ, ¿¬»êÀÚ
3.7.3 ·¹Áö½ºÅÍ º¯¼ö, Àý´ë Æ÷ÀÎÅÍ
3.8 Áö¿ªº¯¼ö ÇÒ´ç
3.8.1 Áö¿ª º¯¼ö ÇÒ´ç(Local Variable Allocation)
3.8.2 ÇÔ¼ö ºí·Ï
3.8.3 Reentrancy
3.8.4 Àç±Í(Recursion) ÇÔ¼ö
3.9 ¾î¼Àºí¸® ¾ð¾î¿Í ÀÎÅÍÆäÀ̽º
3.9.1 C¿Í ¾î¼Àºí¸®ÀÇ »ç¿ë
3.9.2 "Shell" ¿¹Á¦ ÇÁ·Î±×·¥
3.9.3 "Shell" ¿¹Á¦ ÇÁ·Î±×·¥ ¸®½ºÆ® ¼³¸í
3.9.4 ÄÄÆÄÀÏ·¯ ·¹Áö½ºÅÍ »ç¿ë
3.9.5 ÇÔ¼öÀÇ Áö¿ª ºí·°
3.9.6 ¾î¼Àºí¸®¸¦ Áö¿øÇÏ´Â Çü½Ä
3.10 Banked ¸Þ¸ð¸® ¸ðµ¨
3.10.1 Banked ¸Þ¸ð¸® ¸ðµ¨¿¡ °üÇØ
3.10.2 Banked ¸ðµå¿¡¼ÀÇ ¼Ò½º ÄÚµå
3.10.3 Banked ¸Þ¸ð¸® ¸ðµ¨ÀÇ »ç¿ë
2ºÎ C£51 ÄÄÆÄÀÏ°ú ¸µÅ©
1Àå C£51 ÇÁ·Î±×·¥ÀÇ ÄÄÆÄÀÏ
1.1 C£51 ÄÄÆÄÀÏ·¯
1.2 C ¼Ò½º ÈÀÏÀÇ »ý¼º
1.3 C ¼Ò½º ÈÀÏÀÇ ÄÄÆÄÀÏ
1.4 ÄÄÆÄÀÏ·¯ ¸®½ºÆ® ÈÀÏ
2Àå C£51 ÇÁ·Î±×·¥ÀÇ ¸µÅ©
2.1 C£51 ¸µÄ¿
2.2 C ÇÁ·Î±×·¥ÀÇ ¸µÅ©
2.3 ¸µÄ¿ ÄÜÆ®·Ñ ÈÀÏ(.XCL)
2.4 ¸µÄ¿ .MAP ÈÀÏ
3Àå CSTARTUP.S03¿Í PUTCHAR.C ÈÀÏÀÇ ¼öÁ¤
3.1 CSTARTUPÀÇ ¼öÁ¤°ú ¶óÀ̺귯¸®¿¡ ´ëü
3.1.1 CSTARTUP ÈÀÏ¿¡ ½Ã¸®¾ó Æ÷Æ® ÃʱâÈ ÄÚµå ÷
°¡
3.1.2 CSTARTUP.S03ÀÇ Àç ¾î¼Àºí¸µ
3.1.3 C ·±Å¸ÀÓ ¶óÀ̺귯¸®¿¡ CSTARTUP ´ëü
3.2 PUTCHAR.CÀÇ ¼öÁ¤°ú ¶óÀ̺귯¸®¿¡ ´ëü
3.2.1 PUTCHAR.C¿¡ TabÀ» Space·Î ¹Ù²Û ·çƾ ÷°¡
3.2.2 PUTCHAR.CÀÇ Àç ÄÄÆÄÀÏ
3.2.3 C ·±Å¸ÀÓ ¶óÀ̺귯¸®¿¡ putchar() ´ëü
4Àå È®ÀåµÈ ¾ð¾îÀÇ »ç¿ë
4.1 È®ÀåµÈ ¾ð¾î¸¦ »ç¿ëÇÑ ¿¹Á¦ ¸®½ºÆ®
4.2 TUT4.C¿¹Á¦ ¸®½ºÆ® ¼³¸í
5Àå ¸ÖƼ¸ðµâ(MultiModule) »ç¿ë
5.1 ¸ÖƼ ¸ðµâ ¿¹Á¦£TESTMAIN.C
5.2 ¸ÖƼÈÀÏÀÇ ÄÄÆÄÀÏ°ú ¾î¼Àºí¸µ
5.3 ¶óÀ̺귯¸® ÈÀÏ TESTLIB.R03ÀÇ »ý¼º
5.4 ¸ÖƼ ¸ðµâ ¸µÅ©
3ºÎ C£51 ÄÄÆÄÀÏ*Å°¿öµå
1Àå ¸í·É ¶óÀÎ ¿É¼Ç
1.1 ¸í·É ¶óÀÎ Çü½Ä
1.1.1 ÄÄÆÄÀÏ·¯ ½ÇÇà
1.1.2 ¸í·É ¶óÀÎ ¿É¼Ç Çü½Ä
1.1.3 ¸í·É ¶óÀÎ °æ°è ±âÈ£(Delimiter)
1.1.4 DOS, VMS, UNIX¿¡¼ÀÇ ´ë¼Ò¹®ÀÚ ±¸ºÐ
1.1.5 ¸í·É ¶óÀÎ ¿É¼Ç ¿¹
1.1.6 ȯ°æ º¯¼öÀÇ »ç¿ë
1.1.7 ¸í·É ÈÀÏ(Command file)ÀÇ ÀÌ¿ë
1.2 »ç¿ë °¡´ÉÇÑ ¼Ò½º ÈÀÏ Å©±â
1.3 ÀÔÃâ·Â ÈÀÏ Å¸ÀÔ°ú È®ÀåÀÚ
1.3.1 ÀÔ·Â ÈÀÏ
1.3.2 Ãâ·Â ÈÀÏ
1.4 C£51 µðÆúÆ® ÄÄÆÄÀÏ ¿É¼Ç
1.5 C£51 ¸í·É¶óÀÎ ¿É¼Ç
2Àå 8051 ¸Þ¸ð¸®¿¡¼
2.1 µ¥ÀÌŸ Çü½Ä
2.1.1 Ç¥ÁØ C ÇüÅÂ
2.1.2 µ¥ÀÌŸ ÇüÅÂÀÇ È®Àå
2.2 8051 ¸Þ¸ð¸®¿¡¼ µ¥ÀÌŸ Çü½Ä Ç¥Çö
2.2.1 bit µ¥ÀÌŸ ÇüÅÂ
2.2.2 sfr µ¥ÀÌŸ ÇüÅÂ
2.2.3 Ç÷ÎÆÃ(½Ç¼ö) Æ÷ÀÎÆ® °ª
2.2.4 µ¥ÀÌŸ °´Ã¼ Æ÷ÀÎÅÍ
2.2.5 »ó¼ö Æ÷ÀÎÅÍ
2.2.6 ÇÔ¼ö Æ÷ÀÎÅÍ
2.2.7 ºñÆ® Çʵå
3Àå È®ÀåµÈ C ¾ð¾î Å°¿öµå
3.1 È®ÀåµÈ Å°¿öµåÀÇ »ç¿ë
3.2 È®ÀåµÈ Å°¿öµåÀÇ Çؼ³
3.2.1 È®Àå Å°¿öµåÀÇ ¿ä¾à
3.2.2 È®Àå Å°¿öµå ·¹ÆÛ·±½º
4Àå ¼¼±×¸ÕÆ®
5Àå Çì´õ ÈÀÏ
5.1 ANSI C #include ÈÀÏ
5.2 8051 Ĩ Áö¿ø Çì´õ
5.3 Àú·¹º§ ±â´É Çì´õ
6Àå C ¶óÀ̺귯¸® ÇÔ¼ö
6.1 C Runtime ¶óÀ̺귯¸® ÈÀÏ CL8051*.R03
6.1.1 ¸Þ¸ð¸® ¸ðµ¨°ú ¶óÀ̺귯¸® ÈÀÏ
6.1.2 ¶óÀ̺귯¸® ÈÀϳ»ÀÇ ÇÔ¼ö ¸ðµâÀÇ ÇüÅÂ
6.1.3 ¶óÀ̺귯¸® ¸ðµâÀÇ ¼Ó¼º
6.1.4 ¶óÀ̺귯¸® ¸ðµâ³»ÀÇ Å¸ÀÔüũ Á¤º¸
6.2 ¼Ò½º Äڵ忡 Áö¿øµÇ´Â ¶óÀ̺귯¸® ¸ðµâ
6.3 ANSI C ÇÔ¼ö
6.3.1 °¢ Çì´õ ÈÀÏ¿¡¼ÀÇ ÇÔ¼ö ¿ä¾à
6.3.2 c£51 ÇÔ¼ö Çؼ³(¾ËÆĺª¼ø)
7Àå Ưº°ÇÑ Çڵ鸵À» À§ÇÑ µ¥ÀÌŸ ÇüÅÂ
7.1 °¡º¯ ¾Æ±Ô¸ÕÆ® Å©±â¸¦ °®´Â °£Á¢ ÇÔ¼ö
7.2 °£Á¢ ÇÔ¼ö È£ÃâÀ» ÅëÇÑ Recursion ÇÔ¼ö
8Àå ÄÄÆÄÀÏ·¯ Áø´Ü
8.1 C£51 ¿¡·¯ ¸Þ¼¼Áö Çü½Ä
8.2 ¿¡·¯¿Í °æ°í ¸Þ¼¼Áö ¿ä¾à
8.2.1 ¿¡·¯(ERROR) ¸Þ¼¼Áö ¿ä¾à
8.2.2 °æ°í(WARNING) ¸Þ¼¼Áö ¿ä¾à
4ºÎ C£51 ½ÇÇè*PK£51 ȸ·Î
*i8051 Å°Æ® µ¿ÀÛµµ*
1Àå ȸ·Î±¸Á¶
1.1 8051 ȸ·Î ±¸Á¶¿Í ½ºÀ§Ä¡ ¿¬°á
1.2 PK£51 ȸ·Î¿Í 51.BIOS
PK£51 ÇÁ·Î±×·¡¹ÖÅ°Æ®
2Àå PC Åë½Å°ú PROCOMM
2.1 PROCOMM DOS ¸í·É ¶óÀÎ
2.2 PROCOMM ±â´É ¿ä¾à
2.3 PK£51°úÀÇ Åë½ÅÀ» À§ÇÑ º¸µå·¹ÀÌÆ®¿Í
3Àå PK£51Å°Æ® »ç¿ë
3.1 PK£51 Å°Æ®·Î ÇÁ·Î±×·¥ ·Îµå¿Í ½ÇÇà
3.2 PK£51 Å°Æ®°¡ Á¦°øÇÏ´Â Åë½Å ±â´É
3.2.1 Æ÷Æ®ÀÇ ¼¼Æà (P ¸í·É)
3.2.2 ƯÁ¤ ¸Þ¸ð¸® ¿µ¿ªÀÇ ´ýÇÁ (U, S ¸í·É)
3.2.3 ƯÁ¤ RAM ¿µ¿ªÀÇ ¼öÁ¤
3.2.4 ÄÚµå µð¹ö±ë (T ¸í·É)
4Àå PK£51 Á¦¾î ÇÁ·Î±×·¥
4.1 IO51.H ÈÀÏÀÇ ¼öÁ¤
4.2 ¸µÄ¿ ÄÜÆ®·Ñ ÈÀÏÀÇ ÀÛ¼º
4.3 ÄÄÆÄÀÏ°ú ¸µÅ©
5Àå 8051 Á¦¾î ÇÁ·Î±×·¥ ¿¹Á¦
5.1 8051 Æ÷Æ® 1ÀÇ »ç¿ë
5.2 8155 Æ÷Æ®ÀÇ ÀÔÃâ·Â
5.3 8051 Æ÷Æ® 3ÀÇ ÇÉ P3.4, P3.5 »ç¿ë
5.4 8051 ÀÎÅÍ·´Æ®ÀÇ »ç¿ë
5.5 8051 ŸÀ̸Ó/Ä«¿îÅÍ Á¦¾î
5.6A 8051 ½Ã¸®¾ó ÀÎÅÍÆäÀ̽º
5.6B DIP º´·Ä µ¥ÀÌŸ¸¦ ½Ã¸®¾ó µ¥ÀÌŸ·Î º¯È¯
5.7 8051 Å°½ºÄµ ȸ·Î
5.8 8051 D/A ÄܹöÅÍ¿Í »ï°¢ÆÄ Á¦¾î
5.9 8051 A/D º¯È¯±â
5ºÎ <²¿¸¶£51>
1. 8051 °³¹ßÀåÄ¡ Çʿ伺
2. <²¿¸¶£51>±¸Á¶¿Í PC ¿¬°á
2.1 <²¿¸¶£51> ¿¬°á°ú ±¸¼ºµµ
2.2 <²¿¸¶£51> »ç¿ë¹æ¹ý
2.3 Kit51.EXE ½ÇÇà¹æ¹ý
2.3.1 Down loading À» ¹Ù·Î ½ÇÇàÇÒ °æ¿ì
2.4 ÁÖ ¸Þ´º·Î µ¿ÀÛÇÒ °æ¿ì <¿¹>
2.4.1 ´Ù¿î·Îµù<1.Down loading>
2.4.2 ¾÷ ·Îµù.<2. Up loading>
2.4.3 ¸Þ¸ð¸®ÀÇ data ä¿ì±â<3. Fill>
2.4.4 ¾ÏÈ£ Ç®±â < 4. Security Lock Clear >
2.4.5 ¾ÏÈ£ Àá±×±â <5. Security Lock Set>
2.4.6 ¸Þ¸ð¸® °ü¸® data Àоî¿À±â<6.Mcon Register read>
2.4.7 ¸Þ¸ð¸® °ü¸® data ½á³Ö±â<7.Mcon register write>
2.4.8 ³¡³»±â<0. Quit>