1. à¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´ŒÇ mikroC áÅСÒ÷´Åͧàº×ͧµŒ¹ l 1
é
à¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C
ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
´ŒÇ mikroC ¤ÍÁä¾àÅÍÃ
áÅСÒ÷´Åͧàº×éͧµŒ¹
Getting started C programming for PIC
microcontroller with mikro C compiler
¡ÄÉ´Ò ã¨àÂç¹
ªÑÂÇѲ¹ ÅÔÁ¾Ã¨ÔµÃÇÔäÅ
é
(C) Innovative Experiment Co.,Ltd.
INNOVATIVE EXPERIMENT
2. 2 là¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´ŒÇ mikroC áÅСÒ÷´Åͧàº×ͧµŒ¹
é
Getting started C programming for PIC microcontroller with mikro C compiler
à¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´ŒÇ mikroC áÅСÒ÷´Åͧàº×ͧµŒ¹
é
ISBN 978-974-05-3099-2
¡ÄÉ´Ò ã¨àÂç¹
ªÑÂÇѲ¹ ÅÔÁ¾Ã¨ÔµÃÇÔäÅ
é
ʧǹÅÔ¢ÊÔ·¸ÔµÒÁ ¾.Ã.º. ÅÔ¢ÊÔ·¸Ôì ¾.È. 2537
ì
ËŒÒÁ¡ÒÃÅÍ¡àÅÕ¹äÁ‹ÇÒʋǹ˹֧ʋǹ㴢ͧ˹ѧÊ×ÍàÅ‹Á¹Õé ¹Í¡¨Ò¡¨Ð䴌ú͹ØÒµ
‹ è Ñ
ã¤Ã¤ÇÃ㪌˹ѧÊ×ÍàÅ‹Á¹Õé
1. ¹Ñ¡àÃÕ¹ ¹Ôʵ ¹Ñ¡ÈÖ¡ÉÒ áÅкؤ¤Å·ÑÇä»·ÕÁ¤ÇÒÁʹã¨ã¹¡ÒÃà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
Ô è è Õ
´ŒÇÂÀÒÉÒ C
2. ʶҺѹ¡ÒÃÈÖ¡ÉÒ âçàÃÕ¹ ÇÔ·ÂÒÅÑ ÁËÒÇÔ·ÂÒÅÑ ·ÕÁ¡ÒÃà»´¡ÒÃàÃÕ¹¡ÒÃÊ͹ÇÔªÒÍÔàÅç¡·Ã͹ԡÊËÃ×ÍÀÒ¤ÇÔªÒ
è Õ
ÇÔÈÇ¡ÃÃÁÍÔàÅç¡·Ã͹ԡÊáÅФÍÁ¾ÔÇàµÍÃ
3. ¤³Ò¨Ò÷Á¤ÇÒÁµŒÍ§¡ÒÃÈÖ¡ÉÒ áÅÐàµÃÕÂÁ¡ÒÃàÃÕ¹¡ÒÃÊ͹ÇÔªÒäÁâ¤Ã¤Í¹â·ÃÅàÅÍà ã¹ÃдѺÍÒªÕÇÈÖ¡ÉÒáÅÐ
Õè Õ
»ÃÔÒµÃÕ
´íÒà¹Ô¹¡ÒèѴ¾ÔÁ¾áÅШíÒ˹‹ÒÂâ´Â
ºÃÔÉ· ÍÔ¹â¹àǵտ àÍç¡à¾ÍÃÔàÁ¹µ ¨íÒ¡Ñ´
Ñ
3133/53 «.ÊØ¢ÁÇÔ· 101/2 ¶.ÊØ¢ÁÇÔ· á¢Ç§ºÒ§¹Ò ࢵºÒ§¹Ò ¡ÃØ§à·¾Ï 10260
Ø Ø
â·ÃÈѾ· 0-2747-7001-4
â·ÃÊÒÃ 0-2747-7005
ÃÒÂÅÐàÍÕ´·Õ»ÃÒ¡¯ã¹Ë¹Ñ§Ê×ÍàÅ‹Á¹Õä´Œ¼Ò¹¡ÒõÃǨ·Ò¹Í‹ҧÅÐàÍÕ´áÅжŒÇ¹¶Õè à¾×ÍãËŒÁ¤ÇÒÁÊÁºÙóáÅж١
è é ‹ è Õ
µŒÍ§ÁÒ¡·ÕÊ´ÀÒÂ㵌à§×͹ä¢áÅÐàÇÅÒ·Õ¾§Áա͹¡ÒèѴ¾ÔÁ¾à¼Âá¾Ã‹ ¤ÇÒÁàÊÕÂËÒÂÍѹÍÒ¨à¡Ô´¨Ò¡ ¡ÒùíÒ¢ŒÍÁÙÅ
èØ è è Ö ‹
ã¹Ë¹Ñ§Ê×ÍàÅ‹Á¹Õä»ãªŒ ·Ò§ºÃÔÉ· ÍÔ¹â¹àǵտ àÍç¡à¾ÍÃÔàÁ¹µ ¨íÒ¡Ñ´ ÁÔä´ŒÁÀÒÃÐ㹡ÒÃÃѺ¼Ô´ªÍºáµ‹»ÃСÒÃã´
é Ñ Õ
¤ÇÒÁ¼Ô´¾ÅÒ´¤ÅÒ´à¤Å×͹·ÕÍÒ¨ÁÕáÅÐ䴌ú¡ÒèѴ¾ÔÁ¾à¼Âá¾Ã‹Í͡仹ѹ ·Ò§ºÃÔÉ·Ï ¨Ð¾ÂÒÂÒÁªÕᨧáÅÐ
è è Ñ é Ñ é
á¡Œä¢ã¹¡ÒèѴ¾ÔÁ¾¤Ãѧµ‹Íä»
é
3. à¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´ŒÇ mikroC áÅСÒ÷´Åͧàº×ͧµŒ¹ l 3
é
¤íÒ¹íÒ
¡ÒþѲ¹Òâ»Ãá¡ÃÁà¾×ͤǤºØÁäÁâ¤Ã¤Í¹â·ÃÅàÅÍôÇÂÀÒÉÒÃдѺÊÙ§ ઋ¹ ÀÒÉÒàºÊÔ¡ ËÃ×Í C Êԧ˹֧
è Œ è è
·ÕÁ¤ÇÒÁÊíÒ¤ÑÍ‹ҧÂÔ§¤×Í «Í¿µáÇ÷àÕè ÃÕÂ¡Ç‹Ò ¤ÍÁä¾àÅÍà (compiler) ËÃ×͵ÑÇá»Åâ»Ãá¡ÃÁ Áѹ¨Ð·íÒ˹ŒÒ·Õã¹
è Õ è è
¡ÒÃá»ÅÀÒÉÒÊÙ§¹Ñé¹ÁÒ໚¹ÀÒÉÒáÍÊà«ÁºÅÕ áŌǨҡ¹Ñ鹨ÐÁÕ«Í¿µáÇÃÍÕ¡µÑÇ˹Ö觷ÕàÃÕÂ¡Ç‹Ò áÍÊà«ÁàºÅÍÃ
(assembler) ·íÒ˹ŒÒ·Õ㹡ÒÃá»ÅÀÒÉÒáÍÊà«ÁºÅÕ໚¹ÀÒÉÒà¤Ã×ͧËÃ×ÍáÁªÕ¹â¤Œ´ÍÕ¡µ‹Í˹֧ â´Â·ÑÇä»áÅŒÇ㹪ش
è è è è
¢Í§¤ÍÁä¾àÅÍÃÁ¡¨Ð¼¹Ç¡àÍÒáÍÊà«ÁàºÅÍÃࢌÒäÇŒ´Ç¡ѹ à¾×ÍãËŒ¡ÒþѲ¹Òâ»Ãá¡ÃÁ໚¹ä»Í‹ҧÊдǡ áÅÐÅ´
Ñ Œ è
¢Ñ¹µÍ¹ã¹¡Ò÷íҧҹŧ
é
mikroC ¤ÍÁä¾àÅÍÃ໚¹Ë¹Ö§ã¹¤ÍÁä¾àÅÍ÷䴌ú¤ÇÒÁʹã¨ã¹áǴǧ¡ÒþѲ¹Òâ»Ãá¡ÃÁÀÒÉÒ C
è Õè Ñ
ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´ŒÇ¡ÒÃ㪌§Ò¹·Õ§Ò áÅÐÁÕà¤Ã×ͧÁ×ÍʹѺʹع㹡Ò÷íÒ§Ò¹ÁÒ¡ÁÒ ÃÇÁ价ѧ
è‹ è é
µÑǪ‹ÇÂÍ‹ҧä¿ÅäźÃÒÃÕ (library) ·ÕÁÍÂÙà‹ »š¹¨íҹǹÁÒ¡ ÃͧÃѺ¡ÑºÍØ»¡Ã³µÍ¾‹Ç§ËÅÒ¡ËÅÒ áÅдŒÇÂʋǹ¢Í§
è Õ ‹
«Í¿µáÇ÷㪌㹡ÒþѲ¹Òâ»Ãá¡ÃÁ·Õàè ÃÕÂ¡Ç‹Ò mikro IDE ¹Ñ¹ÁÕ¤ÇÒÁÊÁºÙóáÅкÃèØà¤Ã×ͧÁ×Í·ÕªÇÂ㹡ÒÃà¢Õ¹
Õè é è è‹
â»Ãá¡ÃÁäÇŒ¾ÃŒÍÁ ¨Ñ´ä´ŒÇÒ໚¹à¤Ã×ͧÁ×;Ѳ¹Òâ»Ãá¡ÃÁ·ÕÊÒÁÒöàÃÔÁµŒ¹ä´Œ§ÒÂÁÒ¡µÑÇ˹֧
‹ è è è ‹ è
ÊíÒËÃѺã¹Ë¹Ñ§Ê×ÍàÅ‹Á¹Õ¨Ð¹íÒàʹͶ֧ ¡ÒÃ㪌§Ò¹áÅÐÇÔ¸¡ÒþѲ¹Òâ»Ãá¡ÃÁÀÒÉÒ C ´ŒÇ mikroC ¤ÍÁ
é Õ
ä¾àÅÍÃÊÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC â´Â์¹ä»·Õàè ºÍà PIC16F877 áÅÐ PIC16F887 ÁÕ¤Ò͸ԺÒ¡ÒÃ㪌§Ò¹
í í
¿˜§¡ª¹áÅÐäźÃÒÃÕ·ÊÒ¤Ñ ÃÇÁ¶Ö§¡Ò÷´Åͧ·Ò§ÎÒôáÇ÷ÊÒÁÒöáÊ´§ãËŒàË繶֧¼Å¡Ò÷íҧҹ䴌Í‹ҧªÑ´à¨¹
Ñè Õè í Õè
áÅШѺµŒÍ§ä´Œ â´Âã¹áµ‹ÅСÒ÷´Åͧ¨ÐÁÕ¤Ò͸ԺÒ·ÄÉ®Õ Ç§¨Ã µÑÇÍ‹ҧâ»Ãá¡ÃÁ ¢Ñ¹µÍ¹¡Ò÷´Åͧ áÅмÅ
í é
·Õàè ¡Ô´¢Ö¹ à¾×ÍãËŒ¼àÙŒ ÃÕ¹ÊÒÁÒö·íÒ¤ÇÒÁࢌÒ㨠áÅеÃǨÊͺ¼Å¡Ò÷íÒ§Ò¹à»ÃÕºà·Õº䴌
é è
mikroC ໚¹«Í¿µáÇ÷ҧ¾Ò³ÔªÂ ¨ÐµŒÍ§ÁÕ¡ÒèѴ«×éÍÁÒÍ‹ҧ¶Ù¡µŒÍ§¨Ò¡à¨ŒÒ¢Í§ÅÔ¢ÊÔ·¸Ôì¹Ñ蹤×Í
Mikroelektronika ÊÒÁÒöÊѧ«×Íä´Œ·èÕ www.mikroe.com Í‹ҧäáçµÒÁ·Ò§ Mikroelektronika ¡ç䴌໴âÍ¡ÒÊãËŒ
è é
¼Ùʹã¨ÊÒÁÒö´ÒǹâËÅ´ mikroC Ãع 2K ä»·´Åͧ㪌§Ò¹ä´Œ¿ÃÕ â´ÂäÁ‹¨Ò¡Ñ´àÇÅÒ ÊÒÁÒö㪌§Ò¹à¤Ã×ͧÁ×;׹
Œ ‹ í è é
°Ò¹ä´Œ¤Ãº 㪌¡ºäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ä´Œ·¡àºÍ÷§ 12Fxxx, 16Fxxx áÅÐ 18Fxxxx Ëҡᵋ¨Ò¡Ñ´¢¹Ò´
Ñ Ø Ñé í
¢Í§ä¿ÅäÇŒ·Õè 2 ¡ÔâÅàÇÔô áÅÐàÁ×ÍÁÕ¡ÒèѴ«×ÍÃعÊÁºÙó¡¨ÐÊÒÁÒö㪌§Ò¹ä´ŒÍ‹ҧäÁ‹Á¢Í¨íÒ¡Ñ´
è é ‹ ç ÕŒ
µÑÇÍ‹ҧ¡Ò÷´Åͧ·Õ¹ÒàʹÍã¹Ë¹Ñ§Ê×ÍàÅ‹Á¹Õ·§ËÁ´ ÊÒÁÒö·íÒ§Ò¹ÀÒÂ㵌 mikroC Ãع 2K 䴌͋ҧ
è í é Ñé ‹
ÊÁºÙó
¢Í¢Íº¤Ø³ Mikroelektronika ÊíÒËÃѺ¡ÒÃà¼Âá¾Ã‹ mikroC Ãع 2K à¾×ÍãËŒ¹¡·´Åͧ䴌ÁâÍ¡ÒÊàÃÔÁµŒ¹ ‹ è Ñ Õ è
¡ÒþѲ¹Òâ»Ãá¡ÃÁäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´ŒÇÂÀÒÉÒ C ÊíÒËÃѺ¼Ù㪌§Ò¹·ÕµÍ§¡ÒÃ㪌ùÊÁºÙóÊÒÁÒöʹѺ Œ è Œ ‹Ø
ʹع¼Ù¾²¹Òä´Œ´Ç¡ÒèѴ«×ͨҡ Mikroelektronika ·Õè www.mikroe.com
Œ Ñ Œ é
¡ÒÃàÃÕ¹ÃÙäÁâ¤Ã¤Í¹â·ÃÅàÅÍÃǹ¹Õé ÀÒÉÒ C ໚¹»˜¨¨ÑÂ˹֧·Õ¹¡¾Ñ²¹Òâ»Ãá¡ÃÁäÁâ¤Ã¤Í¹â·ÃÅàÅÍÃÊÁÑÂ
Œ Ñ è è Ñ
ãËÁ‹µÍ§ãËŒ¤ÇÒÁʹ㨠à¾ÃÒй͡¨Ò¡¨Ðª‹ÇÂÅ´¤ÇÒÁ«Ñº«ŒÍ¹áÅÐÂاÂҡ㹡ÒþѲ¹Òâ»Ãá¡ÃÁáÅŒÇ Âѧª‹ÇÂãËŒ¡ÒÃ
Œ ‹
µ‹ÍÂÍ´áÅСÒûÃѺà»ÅÕ¹â»Ãá¡ÃÁã¹Í¹Ò¤µÊÒÁÒö·íÒä´Œ§Ò¢ֹ
è ‹ é
¡ÄÉ´Ò ã¨àÂç¹
ªÑÂÇѲ¹ ÅÔÁ¾Ã¨ÔµÃÇÔäÅ
é
4. 4 là¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´ŒÇ mikroC áÅСÒ÷´Åͧàº×ͧµŒ¹
é
ÊÒúÑ
º··Õè 1 á¹Ð¹íÒ mikroC..............................................................................................................7
º··Õè 2 ¡ÒÃà¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C àº×ͧµŒ¹ÊíÒËÃѺ mikroC ¤ÍÁä¾àÅÍÃ.....................35
é
º··Õè 3 ¡ÒÃà¢Õ¹â»Ãá¡ÃÁà¾×è͵Դµ‹Í¾Íõ¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
´ŒÇ mikroC...................................................................................................................55
»¯Ôºµ¡Ò÷Õè 1 ¢Ñº LED ·Õ¾Íõ C....................................................................61
Ñ Ô è
»¯Ôºµ¡Ò÷Õè 2 ¡ÒÃ㪌§Ò¹¾Íõ A áÅÐ E ໚¹àÍÒµ¾µ........................................65
Ñ Ô Ø
»¯Ôºµ¡Ò÷Õè 3 ¡ÒÃ㪌§Ò¹¾Íõ A áÅÐ B ໚¹àÍÒµ¾µ........................................67
Ñ Ô Ø
»¯Ôºµ¡Ò÷Õè 4 ·´Êͺ͋ҹ¤‹Ò¨Ò¡ÊÇÔµª............................................................69
Ñ Ô
º··Õè 4 ¡íÒà¹Ô´àÊÕ§´ŒÇ¿˜§¡ª¹ Sound.................................................................................73
Ñè
»¯Ôºµ¡Ò÷Õè 5 ¢ÑºàÊÕ§´ŒÇ¿˜§¡ª¹ Sound.........................................................75
Ñ Ô Ñè
º··Õè 5 ÍÔ¹àµÍÃûµã¹äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ¡Ñº mikroC ¤ÍÁä¾àÅÍÃ................77
Ñ
»¯Ôºµ¡Ò÷Õè 6 ÍÔ¹àµÍÃûµ·¢Ò RB0/INT...........................................................85
Ñ Ô Ñ Õè
º··Õè 6 ¡ÒõԴµ‹Í¡ÑºâÁ´ÙÅ LCD ´ŒÇ¿˜§¡ª¹¢Í§ mikroC ¤ÍÁä¾àÅÍÃ...........................87
Ñè
»¯Ôºµ¡Ò÷Õè 7 Ê‹§¢ŒÍÁÙÅáÊ´§¼Å·ÕâÁ´ÙÅ LCD â´Â㪌¿§¡ª¹ Lcd.........................95
Ñ Ô è ˜ Ñè
»¯Ôºµ¡Ò÷Õè 8 Ê‹§¢ŒÍÁÙÅáÊ´§¼Å·ÕâÁ´ÙÅ LCD â´Â㪌¿§¡ª¹ Lcd8.....................104
Ñ Ô è ˜ Ñè
»¯Ôºµ¡Ò÷Õè 9 Ê‹§¢ŒÍÁÙÅáÊ´§¼Å·ÕâÁ´ÙÅ LCD â´Â㪌¿§¡ª¹ Lcd_Custom.........112
Ñ Ô è ˜ Ñè
º··Õè 7 ¿˜§¡ª¹µÔ´µ‹Í¡ÑºË¹‹Ç¤ÇÒÁ¨íÒ¢ŒÍÁÙÅÍÕ;ÃÍÁ¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC.....115
Ñè Õ
»¯Ôºµ¡Ò÷Õè 10 ·´Êͺ¡ÒÃà¢Õ¹áÅÐ͋ҹ˹‹Ç¤ÇÒÁ¨íÒ¢ŒÍÁÙÅÍÕ;ÃÍÁ................117
Ñ Ô Õ
º··Õè 8 ¿˜§¡ª¹Í‹Ò¹¤‹Ò¨Ò¡âÁ´ÙÅá»Å§ÊÑÒ³ÍйÒÅ͡໚¹´Ô¨ÔµÍÅ
Ñè
¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC...................................................................................119
-
»¯Ôºµ¡Ò÷Õè 11 ¡ÒÃ㪌§Ò¹¿˜§¡ª¹ Adc_Read ¡Ñº PIC16F877..........................125
Ñ Ô Ñè
»¯Ôºµ¡Ò÷Õè 12 Í‹Ò¹¤‹Ò¨Ò¡âÁ´ÙÅ ADC ẺµÔ´µ‹Íâ´ÂµÃ§.................................131
Ñ Ô
»¯Ôºµ¡Ò÷Õè 13 Í‹Ò¹¤‹Ò¨Ò¡âÁ´ÙÅ ADC áÊ´§¼Å·ÕâÁ´ÙÅ LCD............................133
Ñ Ô è
5. à¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´ŒÇ mikroC áÅСÒ÷´Åͧàº×ͧµŒ¹ l 5
é
º··Õè 9 㪌§Ò¹¿˜§¡ª¹ PWM ¢Í§ mikroC............................................................................137
Ñè
»¯Ôºµ¡Ò÷Õè 9 ¤Çº¤ØÁ¤ÇÒÁàÃçǢͧÁÍàµÍôÇ¿˜§¡ª¹ PWM.............................140
Ñ Ô Œ èÑ
º··Õè 10 ¡ÒõԴµ‹Í USART âÁ´ÙÅÊ×ÍÊÒâŒÍÁÙžÍõ͹ءÃÁ¢Í§
è
äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´ŒÇ¿˜§¡ª¹¢Í§ mikroC ¤ÍÁä¾àÅÍÃ....................143
Ñè
»¯Ôºµ¡Ò÷Õè 15 ¡ÒÃÃѺʋ§¢ŒÍÁÙÅÃÐËÇ‹Ò§äÁâ¤Ã¤Í¹â·ÃÅàÅÍÃáÅФÍÁ¾ÔÇàµÍÃ.......146
Ñ Ô
»¯Ôºµ¡Ò÷Õè 16 Ê×ÍÊÒâŒÍÁÙÅ͹ءÃÁâ´Â㪌¡Ãкǹ¡Ò÷ҧ«Í¿µáÇÃ..................152
Ñ Ô è
»¯Ôºµ¡Ò÷Õè 17 ¡ÒÃÊ‹§¢ŒÍÁÙÅÍЫԧâ¤Ã¹ÑÊ´ŒÇ¡ÒáíÒ˹´¤‹ÒÃÕ¨ÊàµÍÃâ´ÂµÃ§........164
Ñ Ô Ô
»¯Ôºµ¡Ò÷Õè 18 ¡ÒÃÃѺ¢ŒÍÁÙÅÍЫԧâ¤Ã¹ÑÊ´ŒÇ¡ÒáíÒ˹´¤‹ÒÃÕ¨ÊàµÍÃâ´ÂµÃ§........166
Ñ Ô Ô
»¯Ôºµ¡Ò÷Õè 19 ¡ÒÃÃѺ¢ŒÍÁÙÅÍЫԧâ¤Ã¹ÑÊâ´Â㪌͹àµÍÃûµ................................168
Ñ Ô Ô Ñ
º··Õè 11 ¡ÒõԴµ‹ÍÍØ»¡Ã³ÃкººÑÊ I2C ´ŒÇ¿˜§¡ª¹¢Í§ mikroC ¤ÍÁä¾àÅÍÃ..............171
Ñè
»¯Ôºµ¡Ò÷Õè 20 µÔ´µ‹ÍºÍô¢ÑºÃÕàÅ 16 ª‹Í§ ZX-RELAY16 ´ŒÇ¿˜§¡ª¹ I2C........177
Ñ Ô Ñè
»¯Ôºµ¡Ò÷Õè 21 µÔ´µ‹Í¡ÑºâÁ´ÙÅà¢çÁ·ÔÈ´Ô¨µÍÅ CMPS03 ´ŒÇ¿˜§¡ª¹ I2C............183
Ñ Ô Ô Ñè
»¯Ôºµ¡Ò÷Õè 22 µÔ´µ‹ÍºÍô¢ÑºÃÕàÅ 16 ª‹Í§ ZX-RELAY16
Ñ Ô
´ŒÇ¿˜§¡ªÑè¹ Soft_I2C........................................................................192
º··Õè 12 ¡ÒõԴµ‹ÍÍØ»¡Ã³áºº SPI ¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
´ŒÇ¿˜§¡ª¹¢Í§ mikroC ¤ÍÁä¾àÅÍÃ.....................................................................197
èÑ
»¯Ôºµ¡Ò÷Õè 23 µÔ´µ‹Í¡Ñº MCP4922 äÍ«Õá»Å§ÊÑÒ³´Ô¨µÍÅ໚¹ÍйÒÅÍ¡....204
Ñ Ô Ô
º··Õè 13 ¡ÒõԴµ‹ÍÍØ»¡Ã³ÃкººÑÊ˹֧ÊÒ´ŒÇ¿˜§¡ª¹¢Í§ mikroC ¤ÍÁä¾àÅÍÃ......209
è Ñè
»¯Ôºµ¡Ò÷Õè 24 Í‹Ò¹¤‹ÒÍسËÀÙÁ¨Ò¡äÍ«Õ DS18B20 ´ŒÇ¿˜§¡ª¹ onewire............217
Ñ Ô Ô Ñè
ÀÒ¤¼¹Ç¡ : á¹Ð¹íÒà¤Ã×ͧÁ×Í㹡Ò÷´Åͧ·Ò§ÎÒôáÇÃ.....................................................223
è
6. 6 là¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´ŒÇ mikroC áÅСÒ÷´Åͧàº×ͧµŒ¹
é
7. à¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´ŒÇ mikroC áÅСÒ÷´Åͧàº×ͧµŒ¹
é l 7
º··Õè 1
á¹Ð¹íÒ mikroC
mikroC ໚¹ªØ´«Í¿µáÇþѲ¹Òâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
¼Ù¾²¹Ò¤×Í mikroElektronika (mikroE : www.mikroe.com) mikroC ä´ŒºÃèØà¤Ã×ͧÁ×Íà¾×ÍÍíÒ¹ÇÂ
Œ Ñ è è
¤ÇÒÁÊдǡ㹡ÒþѲ¹Òâ»Ãá¡ÃÁäÇŒÁÒ¡ÁÒ µÑÇá»Åâ»Ãá¡ÃÁÀÒÉÒ C ËÃ×Í C compiler ÁÕûẺ Ù
¡Ò÷íÒ§Ò¹·Õàè ¢ŒÒ¡Ñ¹ä´Œ¡º ANSI C Áҵðҹ ÁÕäźÃÒÃÕÃͧÃѺ¡ÒõԴµ‹Í¡ÑºÍØ»¡Ã³ÀÒ¹͡¨íҹǹ
Ñ
ÁÒ¡ ¾ÃŒÍÁ·Ñ§µÑÇÍ‹ҧâ»Ãá¡ÃÁ·ÕªÇÂÅ´àÇÅÒ㹡ÒþѲ¹Òâ»Ãá¡ÃÁ
é è ‹
¼Ù¾²¹Òâ»Ãá¡ÃÁÊÒÁÒöµÃǨÊͺ·ÃѾÂҡâͧäÁâ¤Ã¤Í¹â·ÃÅàÅÍÃä´ŒµÅÍ´àÇÅÒ «Ö§à»š¹
Œ Ñ è
»ÃÐ⪹Áҡ㹡óշÕè㪌ÃØ‹¹ÊÒ¸Ôµ ·Ñ駹Õéà¾×èͪ‹Ç»‡Í§¡Ñ¹äÁ‹ãËŒà¢Õ¹â»Ãá¡ÃÁÂÒÇà¡Ô¹¡Ç‹Ò¢ŒÍ¨íÒ¡Ñ´
mikroC ÊÒÁÒöãËŒä¿Å¼ÅÅѾ¸ .hex ´ŒÇ¡ÒäÅÔ¡à¾Õ§»ØÁà´ÕÂÇ ·íÒãˌŴ¢Ñ¹µÍ¹ã¹¡Ò÷íҧҹŧ䴌Í‹ҧ
† é
ÁÒ¡ áÅÐä¿Å .hex ÊÒÁÒö¹íÒä»ãªŒ¡ºà¤Ã×ͧâ»Ãá¡ÃÁäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC Áҵðҹ䴌·¡Ãع
Ñ è Ø ‹
ÊíÒËÃѺ㹡ÒÃ͸ԺÒ¶֧¡ÒÃ㪌§Ò¹áÅÐÃÒÂÅÐàÍÕ´¢Í§â»Ãá¡ÃÁ·´Åͧ¨Ð͌ҧ¶Ö§ mikroC
ã¹Ãع 2K ÍѹÁբͨíÒ¡Ñ´´ŒÒ¹¢¹Ò´¢Í§ä¿ÅËÅѧ¨Ò¡¤ÍÁä¾ÅËÃ×Íá»Å§à»š¹ÃËÑÊà¤Ã×ͧ (ä¿Å¹ÒÁÊ¡ØÅ
‹ Œ è
.hex) µŒÍ§äÁ‹à¡Ô¹ 2 ¡ÔâÅàÇÔô ᵋ¡ÁÒ¡à¾Õ§¾ÍÊíÒËÃѺ¡ÒþѲ¹Òâ»Ãá¡ÃÁÊíÒËÃѺ¡Ò÷´Åͧ㪌§Ò¹
ç
äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC àº×ͧµŒ¹ ÃÇÁ·Ñ§â»Ãá¡ÃÁÊíÒËÃѺ¤Çº¤ØÁ¡Ò÷íÒ§Ò¹¢Í§Ëع¹µÍµâ¹ÁѵÔ
é é ‹ Ñ
¢¹Ò´àÅç¡ä´Œà»š¹Í‹ҧ´Õ
ÊíÒËÃѺ¼ÙŒãªŒ§Ò¹·Õè·´Åͧ㪌 mikroC áÅŒÇÁÕ¤ÇÒÁʹ㨵ŒÍ§¡ÒÃÃØ‹¹ÊÁºÙóÊÒÁÒöµÔ´µ‹ÍÊÑè§
«×éÍä´Œ·ÕèàǺ䫵¢Í§¼ÙŒ¼ÅÔµ http://www.mikroe.com
1.1 ¡ÒõԴµÑ§ mikroC ¤ÍÁä¾àÅÍà Ãع 2K
é ‹
¡ÒÃä´ŒÁÒ«Ö§ä¿Åµ´µÑ§¢Í§ mikroC ã¹ÃعÊÒ¸Ôµ¹Õé ÁÕ 2 ·Ò§¤×Í
è Ô é ‹
1. ¨Ò¡á¼‹¹«Õ´ÃÍÁ·Õ¨´ÁÒ㹪ش·´ÅͧäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ËÃ×ͪش»ÃСͺ
Õ èÑ
Ëع¹µ Robo-PICA ¢Í§ inex
‹
2. ´ÒǹâËÅ´àÇÍê¹ãËÁ‹ÅÒÊØ´·ÕÍÒ¨ÁÕ·Õè www.mikroe.com
Ñè ‹ è
¨Ò¡¹Ñé¹·íÒ¡ÒõԴµÑé§àËÁ×͹¡Ñºâ»Ãá¡ÃÁ»ÃÐÂØ¡µ¢Í§ÇÔ¹â´ÇÊ
8. 8 là¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´ŒÇ mikroC áÅСÒ÷´Åͧàº×ͧµŒ¹
é
1.2 mikroC IDE à¤Ã×ͧÁ×ÍÊíÒËÃѺ¾Ñ²¹Òâ»Ãá¡ÃÁ
è
IDE ÁÒ¨Ò¡ Integrated Development Environment ËÁÒ¶֧ «Í¿µáÇ÷ÃǺÃÇÁà¤Ã×ͧÁ×Í
Õè è
áÅÐÊÀÒÇÐáÇ´ÅŒÍÁ㹡ÒþѲ¹Òâ»Ãá¡ÃÁàÍÒänj㹷Õàè ´ÕÂǡѹ â´ÂÀÒÂã¹ MikroC IDE »ÃСͺä»
´ŒÇ à¤Ã×ͧÁ×Íà¤Ã×ͧ㪌·ÍҹǤÇÒÁÊдǡ´Ñ§¹Õé
è è èÕ í
1. ⤌´àÍ´ÔàµÍà (Code editor) ໚¹â»Ãá¡ÃÁàÍ´ÔàµÍÃÊÒËÃѺà¢Õ¹áÅÐᡌ䢫ÍÃÊ
í
â»Ãá¡ÃÁÀÒÉÒ C â´Â⤌´àÍ´ÔàµÍèзíÒ¡ÒÃá¡áÂЪش¤íÒÊѧ, µÑÇá»Ã, ¢ŒÍÁÙŵÑÇàÅ¢, ÍÑ¡¢ÃÐ áÅÐ
è
¤íÒ͸ԺÒ ´ŒÇÂÊÕ (color syntax) ÃÇÁ·Ñ§ÃٻẺµÑÇÍÑ¡Éà ¼Ù㪌§Ò¹ÊÒÁÒöàÅ×Í¡»ÃѺà»ÅÕ¹ÃٻẺ
é Œ è
áÅÐÊÕÊѹ¢Í§¢ŒÍÁÙÅᵋÅЪ¹Ô´ä´Œàͧ
»ØÁ¤ÍÁä¾Åâ»Ãá¡ÃÁ
† ˹Œ Ò µ‹ Ò §´Ù ¤‹ Ò ÃÕ ¨Ô Ê àµÍÃ
(Watch window)
⤌´àÍ´ÔàµÍÃ
äÁâ¤Ã¤Í¹â·ÃÅàÅÍ÷㪌
Õè
ª‹Í§¡íÒ˹´¤ÇÒÁ¶ÕÊÒ³¹ÒÌ¡Ò
è Ñ
ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà ˹ŒÒµ‹Ò§¼ÅÅѾ¸
ÃÙ»·Õè 1-1 áÊ´§Ë¹ŒÒµ‹Ò§ËÅÑ¡¢Í§ mikroC IDE áÅÐʋǹ»ÃСͺ·ÕÊÒ¤Ñ
èí
9. à¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´ŒÇ mikroC áÅСÒ÷´Åͧàº×ͧµŒ¹
é l 9
2. äźÃÒÃÕÊÒàÃç¨ÃÙ» ã¹ mikroC ä´ŒàµÃÕÂÁäźÃÒÃբͧâ»Ãá¡ÃÁÀÒÉÒ C äÇŒ¨Ò¹Ç¹
í í
ÁÒ¡ à¾×èͪ‹ÇÂãËŒ¡ÒþѲ¹Òâ»Ãá¡ÃÁÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ÊÒÁÒö·íÒ䴌͋ҧÃÇ´àÃçÇ
äÁ‹Ç‹Ò¨Ð໚¹äźÃÒÃÕà¡ÕèÂǡѺ¡ÒõԴµ‹Í˹‹Ç¤ÇÒÁ¨íÒ ¡ÒÃáÊ´§¼Å¢ŒÍÁÙÅ ¡ÒÃÊ×èÍÊÒâŒÍÁÙÅ ¡ÒáÒÃ
¨Ñ´à¡çº¢ŒÍÁÙŵ‹Ò§æ áÅÐäºÃÒÃÕÊíÒËÃѺ¡ÒõԴµ‹ÍÍØ»¡Ã³ÀÒ¹͡
3. à¤Ã×ͧÁ×ͪ‹ÇÂà¢Õ¹â»Ãá¡ÃÁ ·ÕªÇÂáÊ´§¼Åâ¤Ã§ÊÌҧ¢Í§â»Ãá¡ÃÁ µÑÇá»Ã áÅÐ
è è‹
¿˜§¡ª¹µ‹Ò§ æ ÀÒÂã¹â»Ãá¡ÃÁ
Ñè
4. C ¤ÍÁä¾àÅÍà 㪌㹡ÒÃá»Åâ»Ãá¡ÃÁÀÒÉÒ C ໚¹ÀÒÉÒáÍÊà«ÁºÅÕ áÅм¹Ç¡
¡Ñºâ»Ãá¡ÃÁáÍÊà«ÁàºÅÍÃà¾×Íá»Åâ»Ãá¡ÃÁ໚¹áÁªÕ¹â¤Œ´¨Ñ´à¡çºã¹ÃٻẺä¿Å Hex Áҵðҹ
è
ÊÒÁÒö㪌¡ºà¤Ã×ͧâ»Ãá¡ÃÁ PIC Áҵðҹ䴌·§ËÁ´
Ñ è Ñé
5. «ÔÁàÙ ÅàµÍà ໚¹à¤Ã×ͧÁ×ÍʹѺʹع¡ÒèíÒÅͧ¡Ò÷íÒ§Ò¹¢Í§â»Ãá¡ÃÁ 㪌´¼Å¡ÒÃ
è Ù
·íÒ§Ò¹¢Í§â»Ãá¡ÃÁ·ÕÅÐÊàµç» áÅÐÂѧ㪌ªÇ¨ѺàÇÅÒ¡Ò÷íÒ§Ò¹¢Í§â»Ãá¡ÃÁ·ÕÅЪ‹Ç§ ÃÇÁ¶Ö§´Ù¡ÒÃ
‹
à»ÅÕ¹á»Å§¢Í§ÃÕ¨ÊàµÍõҧ æ 䴌͋ҧ§‹Ò´ÒÂ
è Ô ‹
6. àÍ¡ÊÒáÒÃ㪌§Ò¹¤Ø³ÀÒ¾ÊÙ§ ¹Í¡¨Ò¡¡ÒÃ㪌§Ò¹â»Ãá¡ÃÁ·Õ觋ÒÂáÅŒÇ mikroC Âѧ
ʹѺʹع¢ŒÍÁÙÅàÍ¡ÊÒáÒÃ㪌§Ò¹â»Ãá¡ÃÁ äźÃÒÃÕµ‹Ò§æ áÅеÑÇÍ‹ҧâ»Ãá¡ÃÁänj͋ҧÁÒ¡ÁÒÂ
ª‹ÇÂãËŒ¼àÙŒ ÃÔÁµŒ¹ÊÒÁÒöàÃÕ¹ÃÙ¡ÒÃà¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C ¨Ò¡µÑÇÍ‹ҧ䴌§Ò¢ֹ
è Œ ‹ é
1.2.1 ÃÒÂÅÐàÍÕ´¢Í§â¤Œ´àÍ´ÔàµÍà (Code Editor)
⤌´àÍ´ÔàµÍâͧ mikroC ໚¹àÍ´ÔàµÍ÷ÁҾÌÍÁà¤Ã×ͧÁ×ͪ‹ÇÂ㹡ÒÃà¢Õ¹â»Ãá¡ÃÁ ·íÒãËŒ
Õè è
¡ÒÃà¢Õ¹·íÒä´Œ§Ò¢ֹ´ŒÇ¤سÊÁºÑµµÒ§ æ ´Ñ§¹Õé
‹ é Ô‹
l »ÃѺᵋ§ÃٻẺÊբͧµÑÇÍÑ¡Éõ‹Ò§ æ ä´Œ
l àÅ×Í¡áÊ´§ªØ´¤íÒÊѧÍÍ¡ÁÒ â´Â¡´»ØÁ CTRL + Space bar
è †
l ´ÙÃÒÂÅÐàÍÕ´¤‹Ò¾ÒÃÒÁÔàµÍâͧªØ´¤íÒÊѧµ‹Ò§æ ä´Œ
è
l ÃͧÃѺ¡ÒÃ㪌§Ò¹à·Áà¾Åµ (template) ËÃ×Í¡ÒÃÊÌҧÃٻẺ⤌´Íѵâ¹Áѵ䴌
Ô
l µÃǨÊͺáÅÐá¡Œä¢â¤Œ´·Õàè ¢Õ¹¼Ô´ä´Œâ´ÂÍѵâ¹ÁѵÔ
l ¡íÒ˹´µíÒá˹‹§·ÕµÍ§¡ÒáÃÐâ´´ä»ÂѧºÃ÷Ѵ·ÕµÍ§¡ÒÃä´Œ
èŒ èŒ
l ÊÒÁÒö»ÃѺᵋ§¡ÒÃ㪌§Ò¹ä´Œ´Ç¡ÒÃàÅ×Í¡·Õàè Á¹Ù Tools à Option ËÃ×ͤÅÔ¡»ØÁ
Œ †
·Õè˹ŒÒµ‹Ò§ËÅÑ¡¢Í§â»Ãá¡ÃÁ¡çä´Œ
10. 10 là¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´ŒÇ mikroC áÅСÒ÷´Åͧàº×ͧµŒ¹
é
¡ÒÃáÊ´§ªØ´¤íÒÊѧ : Code Assistant [CTRL+SPACE]
è
à¾×ÍÊдǡ㹡ÒÃà¢Õ¹â»Ãá¡ÃÁËÃ×Í㹺ҧ¤Ãѧ¨íҪش¤íÒÊѧäÁ‹ä´Œ ãËŒ¡´¤ÕÂËÅÑ¡¢Í§ª×ͤíÒÊѧ
è é è è è
áŌǡ´»ØÁ CTRL+ SPACE (ËÁÒ¶֧¡´»ØÁ Ctrl ¤ŒÒ§äÇŒáŌǵÒÁ´ŒÇ¡Òá´»ØÁ Space bar) ¤íÒÊѧ·ÕÁÕ
† † † è è
¤ÕµÇÍÑ¡É÷Õàè Å×Í¡äÇŒÍÂٴҹ˹ŒÒ¨Ð»ÃÒ¡¯ÍÍ¡ÁҷѧËÁ´ à¾Õ§àÅ×͹à¤ÍÃà«ÍÃä»Âѧ¤íÒÊѧ·ÕµÍ§¡ÒÃ
Ñ ‹Œ é è è èŒ
áŌǡ´ Enter ¤íÒÊѧ¹Ñ¹¨Ð¶Ù¡àÃÕ¡¢Ö¹ÁÒ㪌§Ò¹
è é é
¨Ò¡µÑÇÍ‹ҧ໚¹¡ÒÃàÅ×Í¡¾ÔÁ¾¤ÒÊѧ Lcd áŌǡ´¤Õ CTRL áÅÐ SPACE ¨Ð»ÃÒ¡¯Ë¹ŒÒµ‹Ò§
í è
¢Í§¤íÒÊѧ·Õ¢¹µŒ¹´ŒÇ¤íÒÇ‹Ò Lcd ¢Ö¹ÁÒãËŒàÅ×Í¡
è è éÖ é
¡Òê‹ÇÂáÊ´§¾ÒÃÒÁÔàµÍà : Parameter Assistant [CTRL+SHIFT+SPACE]
ÊíÒËÃѺ¤íÒÊÑè§ËÃ×Í¿˜§¡ªÑè¹ã¹ä¿ÅäźÃÒÃÕÁҵðҹ¢Í§ mikroC àÁ×èÍ¡íÒ˹´ª×èÍ¿˜§¡ªÑè¹ËÃ×Í
¤íÒÊѧáŌǵÒÁ´ŒÇÂà¤Ã×ͧËÁÒÂǧàÅçºà»´ ( ËÃ×Í¡´¤Õ CTRL+SHIFT+SPACE (¡´¤Õ Ctrl µÒÁ´ŒÇÂ
è è
Shift áÅÐ Space bar) ¤‹Ò¾ÒÃÒÁÔàµÍâͧªØ´¤íÒÊѧ¹Ñ¹æ ¨Ð¶Ù¡áÊ´§¢Ö¹ÁÒâ´ÂÍѵâ¹Áѵãˌ㪌§Ò¹ä´Œ
è é é Ô
·Ñ¹·Õ
¨Ò¡µÑÇÍ‹ҧ໚¹¡ÒÃàÅ×Í¡¾ÔÁ¾¤íÒÊÑè§ Lcd_Out_CP( áŌǡ´¤Õ CTRL+SHIFT+SPACE
¨Ð»ÃÒ¡¯¾ÒÃÒÁÔàµÍà unsigned char * text ¢Ö¹Áҷѹ·Õ à¾×ͪ‹ÇÂãËŒ¼àÙŒ ¢Õ¹â»Ãá¡ÃÁ·ÃÒºÃÙ»
é è
Ẻ¡ÒáíÒ˹´¤‹Ò¾ÒÃÒÁÔàµÍâͧ¤íÒÊÑ觹ÕéÍ‹ҧ¶Ù¡µŒÍ§
11. à¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´ŒÇ mikroC áÅСÒ÷´Åͧàº×ͧµŒ¹
é l 11
µÃǨÊͺáÅÐᡌ䢤íÒ¼Ô´Íѵâ¹ÁÑµÔ : Auto Correct
໚¹¤Ø³ÊÁºÑµ¡ÒõÃǨÊͺ¤íÒ¼Ô´â´ÂÍѵâ¹ÁÑµÔ ÁÕ¡Ò÷íÒ§Ò¹¤ÅŒÒ¡Ѻ Microsoft Word áÅÐ
Ô
Âѧª‹ÇÂᡌ䢡ÒþÔÁ¾¤ÒÊѧ·ÕäÁ‹¶¡µŒÍ§¢Í§¼Ù㪌§Ò¹ â´Â¤íÒÊѧ·ÕÁ¡¾ÔÁ¾¼´º‹ÍÂæ ¹Ñ¹ ¼Ù㪌ÊÒÁÒöà¾ÔÁ
í è è Ù Œ è è Ñ Ô é Œ è
àµÔÁ¤íÒÊѧ䴌 â´Â¡ÒÃàÅ×Í¡àÁ¹Ù Tools à Options ¨Ò¡¹Ñ¹àÅ×Í¡ä»·ÕËÇ¢ŒÍ Auto Correct
è é è Ñ
¡ÒáíÒ˹´µíÒá˹‹§ Bookmark
㹡óշÕèâ»Ãá¡ÃÁÁÕ¤ÇÒÁÂÒÇÁÒ¡æ à¾×èÍãËŒ¡ÒáÃÐâ´´ä»ÂѧµíÒá˹‹§µ‹Ò§æ ¢Í§â»Ãá¡ÃÁ
䴌͋ҧÃÇ´àÃçÇ ¼ÙŒãªŒ§Ò¹ÊÒÁÒö¡íÒ˹´µíÒá˹‹§ºÃ÷Ѵ·Õ赌ͧ¡ÒÃänj㹠Bookmark «Öè§ÊÒÁÒö
¡ÃÐâ´´ä»ÂѧµíÒá˹‹§¹Ñ¹æ 䴌͋ҧÃÇ´àÃçÇ
é
¡íÒ˹´µíÒá˹‹§ Bookmark ·íÒä´Œâ´Â ¡´»ØÁ CTRL µÒÁ´ŒÇ SHIFT áÅФÕµÇàÅ¢ ¨Ò¡¹Ñ¹
† Ñ é
â»Ãá¡ÃÁ¨ÐáÊ´§µíÒá˹‹§ bookmark ·ÕµÍ§¡ÒÃ
èŒ
¡´ Ctrl+Shift+1
¡´ Ctrl+Shift+2
¡´ Ctrl+Shift+3
¡ÒÃࢌҶ֧µíÒá˹‹§ Bookmark ·íÒä´Œâ´Â¡Òá´»ØÁ CTRL+µÑÇàÅ¢áÊ´§µíÒá˹‹§ Bookmark
†
12. 12 là¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´ŒÇ mikroC áÅСÒ÷´Åͧàº×ͧµŒ¹
é
¡ÒáÃÐâ´´ä»ÂѧµíÒá˹‹§ºÃ÷Ѵ·ÕµÍ§¡Òà : GotoLine
è Œ
¹Í¡¨Ò¡¡ÒÃ㪌 bookmark áÅŒÇ ¼Ù㪌§Ò¹ÂѧÊÒÁÒö¡ÃÐâ´´ä»ÂѧºÃ÷Ѵµ‹Ò§æ ¢Í§â»Ãá¡ÃÁ
Œ
ä´Œâ´ÂµÃ§ ¼‹Ò¹¡Òá´¤Õ CTRL+G ¨Ð»ÃÒ¡¯Ë¹ŒÒµ‹Ò§ GotoLine ¢Ö¹ÁÒãËŒ»Í¹àÅ¢ºÃ÷Ѵ·ÕµÍ§¡ÒÃ
é ‡ èŒ
¡ÃÐâ´´ áŌǤÅÔ¡»ØÁ OK
†
Code Explorer
¤×Íʋǹ¢Í§Ë¹ŒÒµ‹Ò§·ÕèÇÒ§ÍÂÙ‹·Ò§´ŒÒ¹«ŒÒÂÁ×ͧ͢â»Ãá¡ÃÁ㪌áÊ´§¿˜§¡ªÑè¹áÅеÑÇá»Ã·Õè㪌
§Ò¹ÍÂÙ‹ã¹â»Ãá¡ÃÁ¢³Ð¹Ñé¹
13. à¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´ŒÇ mikroC áÅСÒ÷´Åͧàº×ͧµŒ¹
é l 13
˹ŒÒµ‹Ò§¢Í§¢ŒÍÁÙŪ‹ÇÂàËÅ×Íà˧´‹Ç¹ : Quick Help (QHelp)
ã¹á·ç»µ‹Í¨Ò¡ Code Explorer ໚¹Ë¹ŒÒµ‹Ò§¢ŒÍÁÙŪ‹ÇÂàËÅ×Í à¾×ÍãËŒ·ÃÒº¶Ö§¡ÒÃ㪌§Ò¹¿˜§¡ª¹
è Ñè
·ÕºÃèØÍÂÙã¹â»Ãá¡ÃÁ ઋ¹ ¡ÒÃàÃÕ¡㪌§Ò¹¿˜§¡ª¹µÔ´µ‹Í˹‹Ç¤ÇÒÁ¨íÒ Compact Flash ໚¹µŒ¹
è ‹ Ñè
ÃÒ¡ÒäÕÂÅ´ : Keyboard Shotcut
Ñ
ÍÂÙã¹µíÒá˹‹§á·ç»¢ÇÒÊØ´¢Í§Ë¹ŒÒµ‹Ò§ Code Explorer àÁ×ÍàÅ×͡ࢌÒÁÒ ¨ÐÁÕÃÒ¡Òâͧ¤ÕÂÅ´
‹ è Ñ
µ‹Ò§ æ ·Õ㪌ã¹â»Ãá¡ÃÁ ª‹ÇÂãËŒÊÒÁÒö㪌§Ò¹¤íÒÊѧµ‹Ò§æ 䴌͋ҧÃÇ´àÃçÇÂÔ§¢Ö¹
è è è é
14. 14 là¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´ŒÇ mikroC áÅСÒ÷´Åͧàº×ͧµŒ¹
é
˹ŒÒµ‹Ò§á¨Œ§¼ÅÅѾ¸ : Message Window
໚¹Ë¹ŒÒµ‹Ò§ÊíÒËÃѺáÊ´§¼ÅÅѾ¸¨Ò¡¡ÒäÍÁä¾Å ¶ŒÒ¡ÒäÍÁä¾ÅÁ¢Í¼Ô´¾ÅÒ´ ˹ŒÒµ‹Ò§¹Õé
Ռ
¨ÐáÊ´§¢ŒÍ¼Ô´¾ÅÒ´´ŒÇÂÍÑ¡ÉÃÊÕá´§ 㹡óÕäÁ‹¼´¾ÅÒ´ ˹ŒÒµ‹Ò§¹Õ¨ÐáÊ´§¢ŒÍ¤ÇÒÁÊÕÁǧ ¾ÃŒÍÁ·Ñ§
Ô é ‹ é
ᨌ§¢¹Ò´Ë¹‹Ç¤ÇÒÁ¨íÒ·ÕãªŒä» ¡Ã³ÕÁ¢Í¼Ô´¾ÅÒ´â»Ãá¡ÃÁ¨ÐäÁ‹ÊÌҧä¿Å hex ¼Ù㪌§Ò¹ÊÒÁÒöࢌÒ
è ÕŒ Œ
¶Ö§ºÃ÷Ѵ·Õèà¡Ô´¤ÇÒÁ¼Ô´¾ÅÒ´ä´Œâ´Â¡ÒôѺàºÔŤÅÔ¡·ÕèºÃ÷Ѵ·ÕèáÊ´§¢ŒÍ¼Ô´¾ÅÒ´ â»Ãá¡ÃÁ¨Ð
¡ÃÐâ´´ä»ÂѧµíÒá˹‹§·Õèà¡Ô´¢ŒÍ¼Ô´¾ÅÒ´·Ñ¹·Õ
1.2.2 à¤Ã×ͧÁ×;ÔàÈɪ‹ÇÂ㹡ÒþѲ¹Òâ»Ãá¡ÃÁ
è
1.2.2.1 µÒÃÒ§ÃËÑÊáÍÊ¡Õé (ASCII Chart)
໚¹à¤Ã×èͧÁ×Í·Õ誋ÇÂ㹡ÒÃà¢Õ¹â»Ãá¡ÃÁ·Õèà¡ÕèÂÇ¢ŒÍ§¡ÑºµÑÇÍÑ¡Éà ËÃ×Í¡ÒèѴ¡ÒâŒÍÁÙÅẺ
String â´ÂµÒÃÒ§áÍÊ¡Õ¹ªÇÂãËé¼àéÙ ¢Õ¹â»Ãá¡ÃÁ·ÃÒº¶Ö§ ¤èÒ¢éÍÁÙÅÃËÑÊáÍʡբͧµÑÇÍÑ¡ÉÃËÃ×͵ÑÇ-
é éÕ è é
àÅ¢ ·Õ¹ÂÁ㪌ÁÒ¡ ¤×Í ¡ÒÃà¢Õ¹¢ŒÍÁÙÅä»áÊ´§¼Å·ÕâÁ´ÙÅ LCD ໚¹µŒ¹ ¡ÒÃàÃÕ¡㪌§Ò¹µÒÃÒ§áÍÊ¡Õé
è Ô è
¨ÐàÃÕ¡¨Ò¡àÁ¹Ù Tools à Ascii Chart
16. 16 là¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´ŒÇ mikroC áÅСÒ÷´Åͧàº×ͧµŒ¹
é
1.2.2.4 ˹ŒÒµ‹Ò§Ê×ÍÊÒâŒÍÁÙż‹Ò¹¾Íõ USB ã¹âËÁ´ HID : HID Terminal
è
໚¹à¤Ã×ͧÁ×Íà¾×ͪ‹ÇÂ㹡ÒõԴµ‹ÍÃÐËÇ‹Ò§äÁâ¤Ã¤Í¹â·ÃÅàÅÍẤÍÁ¾ÔÇàµÍà ¼‹Ò¹¾Íõ
è è Ñ
USB «Ö§ã¹äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ºÒ§àºÍèÐÁÕâÁ´ÙÅ USB µÔ´µÑ§ÍÂÙ‹ ઋ¹ PIC18F4550 ໚¹µŒ¹
è é
¡ÒÃàÃÕ¡㪌§Ò¹¨ÐµŒÍ§ä»·Õàè Á¹Ù Tools à HID Teminal
1.2.2.5 ˹ŒÒµ‹Ò§Ê×ÍÊÒâŒÍÁÙż‹Ò¹Ãкºà¹çµàÇÔá : UDP Terminal
è
໚¹à¤Ã×ͧÁ×ÍÃѺʋ§á¾ç¡à¡çµ¢ŒÍÁÙÅã¹Ãкºà¹çµàÇÔá â´Âä»·Õàè Á¹Ù Tools à UDP Terminal
è
17. à¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´ŒÇ mikroC áÅСÒ÷´Åͧàº×ͧµŒ¹
é l 17
1.2.2.6 ˹ŒÒµ‹Ò§Ê×ÍÊÒâŒÍÁÙšѺ¡Òô˹‹Ç¤ÇÒÁ¨íÒ : MMC Card Terminal
è
໚¹à¤Ã×ͧÁ×ÍÊíÒËÃѺ¡ÒÃÍ‹Ò¹áÅÐà¢Õ¹¡Òô˹‹Ç¤ÇÒÁ¨íÒª¹Ô´ MMC ¼‹Ò¹¡ÒÃÊ×ÍÊÒÃ͹ءÃÁ
è è
¡ÒÃàÃÕ¡㪌§Ò¹¨ÐµŒÍ§ä»·Õàè Á¹Ù Tools à MMC Card Terminal
1.2.2.7 â»Ãá¡ÃÁ¡íÒ˹´¨Ø´ÀÒ¾ÊíÒËÃѺâÁ´ÙÅ¡ÃÒ¿¡ LCD : GLCD Bitmap Editor
໚¹à¤Ã×ͧÁ×ͪ‹Ç¡íÒ˹´¢ŒÍÁÙÅ¡ÒÃÊÌҧÀÒ¾ãËŒ¡º¡ÃÒ¿¡ LCD ä»à»š¹â¤Œ´ÀÒÉÒ C ÊÒÁÒö
è Ñ
㪌§Ò¹¡Ñº¡ÃÒ¿¡ LCD ËÅÒÂàºÍà ÍÒ·Ô KS0108, T6963 ËÃ×Í¡ÃÒ¿¡ LCD ¢Í§â·ÃÈѾ· Nokia3110
¡ÒÃàÃÕ¡㪌§Ò¹¨ÐµŒÍ§à¢ŒÒä»·Õàè Á¹Ù Tools à GLCD Bitmap Editor
1.2.2.8 â»Ãá¡ÃÁ¡íÒ˹´¢ŒÍÁÙÅÊíÒËÃѺ LED µÑÇàÅ¢ 7 ʋǹ : Seven Segment Decoder
໚¹à¤Ã×ͧÁ×ͪ‹Ç¡íÒ˹´¢ŒÍÁÙÅ 1 亵ÊÒËÃѺ¡ÒÃáÊ´§¼Å¢Í§ LED µÑÇàÅ¢ 7 ʋǹ ¡ÒÃàÃÕ¡
è í
㪌§Ò¹¨ÐµŒÍ§à¢ŒÒ·Õàè Á¹Ù Tools à Seven Segment Decoder
19. à¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´ŒÇ mikroC áÅСÒ÷´Åͧàº×ͧµŒ¹
é l 19
1.3 àÃÔÁµŒ¹ãªŒ§Ò¹ mikroC
è
1.3.1 㪌§Ò¹¨Ò¡µÑÇÍ‹ҧ
mikroC àµÃÕÂÁµÑÇÍ‹ҧ¡ÒÃà¢Õ¹â»Ãá¡ÃÁ¾×¹°Ò¹ÁÒãËŒ¼ãªŒ§Ò¹·´ÅͧËÅÒÂâ»Ãá¡ÃÁ â´Â
é ÙŒ
ËÅѧ¨Ò¡µÔ´µÑé§â»Ãá¡ÃÁ mikroC áÅŒÇ µÑÇÍ‹ҧâ»Ãá¡ÃÁµ‹Ò§æ ¨Ðà¡çºÍÂÙ‹ã¹â¿Åà´Íà C:Program
FilesMikroelektronikamikroCExamplesEasyPic4
ÊíÒËÃѺä¿Åâ»Ãà¨ç¡µáá·Õè¨Ðà»´¢Öé¹à»š¹µÑÇÍ‹ҧ¹Õé㪌äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC16F877A
«Ö§¡ç¤Í ä¿Å¢Í§â»Ãá¡ÃÁ信оÃÔº (LED Blinking)
è ×
¢Ñ鹵͹¡ÒÃà»´µÑÇÍ‹ҧâ»Ãà¨ç¡µ¢Öé¹ÁÒ㪌§Ò¹ ÁÕ¢Ñ鹵͹´Ñ§¹Õé
(1) à»´â»Ãá¡ÃÁ mikroC áÅŒÇä»·Õàè Á¹Ù Project à Open Project
(2) ·Õè˹ŒÒµ‹Ò§ Open àÅ×Í¡â¿Åà´ÍÃì C:Program FilesMikroelektronikamikroC
ExamplesEasyPic4P16F877ALED_Blinking àÃÕ¡໴ä¿Å LED_Blinking.ppc
20. 20 là¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´ŒÇ mikroC áÅСÒ÷´Åͧàº×ͧµŒ¹
é
(3) ·Õ˹ŒÒµ‹Ò§ Project Setup (ºÃÔàdz´ŒÒ¹«ŒÒ¢ͧ¨ÍÀÒ¾) ¨ÐáÊ´§àºÍâͧäÁâ¤Ã
è
¤Í¹â·ÃÅàÅÍà PIC ·Õàè Å×͡㪌 ¾ÃŒÍÁ·Ñ§¤ÇÒÁ¶ÕÊÒ³¹ÒÌ¡Ò ÊÒÁÒöà»ÅÕ¹໚¹àºÍÃ͹·ÕµÍ§¡ÒÃä´Œ
é è Ñ è ×è è Œ
¨Ò¡Ãٻ໚¹¡ÒÃàÅ×Í¡à»ÅÕ¹໚¹àºÍà PIC16F887 áÅФÇÒÁ¶ÕÊÒ³¹ÒÌ¡Ò (Clock) ෋ҡѺ 20MHz
è è Ñ
(4) ·Õ˹ŒÒµ‹Ò§á¡Œä¢â»Ãá¡ÃÁËÃ×Í Code Editor ¨ÐáÊ´§ÃÒÂÅÐàÍÕ´¢Í§«ÍÃÊâ»Ãá¡ÃÁ
è
LED_Blinking.c ´Ñ§áÊ´§ã¹â»Ãá¡ÃÁ·Õè 1-1
/*
* Project name:
LED_Blinking (Simple 'Hello World' project)
* Copyright:
(c) Mikroelektronika, 2005.
* Description:
This is a simple project. It turns on/off diodes connected to
PORTC. It uses bitwise negation to toggle PORTB pins.
* Test configuration:
MCU: PIC16F877A
Dev.Board: EasyPIC4
Oscillator: HS, 08.0000 MHz
Ext. Modules: -
SW: mikroC v7.0
* NOTES:
None.
*/
void main() {
PORTC = 0;
TRISC = 0;
while(1) {
PORTC = ~PORTC;
Delay_ms(1000);
}
}
¡Ò÷íÒ§Ò¹¢Í§â»Ãá¡ÃÁ
àÃÔÁµŒ¹´ŒÇ¡ÒáíÒ˹´ãËŒ¾Íõ C ໚¹àÍÒµ¾µ áÅŒÇ˹‹Ç§àÇÅÒ 500 äÁâ¤ÃÇÔ¹Ò·Õ ¨Ò¡¹Ñ¹ÊѧãËŒâ»Ãá¡ÃÁ
è Ø é è
·íÒ§Ò¹ã¹ÅÙ» While(1) à¾×Í¡ÅѺʶҹÐÅͨԡ·Õàè ÍÒµ¾µ¢Í§¾Íõ C áÅŒÇ˹‹Ç§àÇÅÒ 100 ä«à¡ÔÅ
è Ø
â»Ãá¡ÃÁ·Õè 1-1 µÑÇÍ‹ҧâ»Ãá¡ÃÁÀÒÉÒ C ¢Í§ä¿Å LED_Blinking.c ·Õ·Ò§Ò¹º¹ mikroC ¤ÍÁä¾àÅÍÃ
è í
21. à¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´ŒÇ mikroC áÅСÒ÷´Åͧàº×ͧµŒ¹
é l 21
(5) ·íÒ¡ÒäÍÁä¾Å«ÍÃÊ⤌´ÀÒÉÒ C ãˌ໚¹ÀÒÉÒà¤Ã×ͧ (.hex) â´Â¡´¤Õ CTRL+F9
è
ËÃ×ͤÅÔ¡·Õäͤ͹
è ·ÕºÃÔàdzᶺ´ŒÒ¹º¹¢Í§â»Ãá¡ÃÁ ËÃ×Íä»·Õàè Á¹Ù Project áÅŒÇàÅ×Í¡¤íÒÊѧ
è è
Build ¡çä´Œ
(6) ËÅѧ¨Ò¡¤ÍÁä¾Å ¼ÅÅѾ¸·ä´Œ¨ÐáÊ´§·Õ˹ŒÒµ‹Ò§ Messages ´ŒÒ¹Å‹Ò§¢Í§â»Ãá¡ÃÁ
Õè è
«Ö觶ŒÒäÁ‹ÁÕ¢ŒÍ¼Ô´¾ÅÒ´ã´æ ˹ŒÒµ‹Ò§ Messages ¨ÐáÊ´§¢ŒÍ¤ÇÒÁ Success ÊÕà¢ÕÂÇ áÅÐáÊ´§¨íҹǹ
˹‹Ç¤ÇÒÁ¨íÒâ»Ãá¡ÃÁáÅÐ˹‹Ç¤ÇÒÁ¨íÒ RAM ·Õ¶¡ãªŒ§Ò¹ èÙ
1.3.2 µÃǨÊͺ¼Å¡Ò÷íÒ§Ò¹¢Í§â»Ãá¡ÃÁ¼‹Ò¹ Debugger
â»Ãá¡ÃÁ Debugger ¢Í§ mikroC ·íÒ§Ò¹àËÁ×͹¡Ñº¡ÒèíÒÅͧ¡Ò÷íÒ§Ò¹ËÃ×Í«ÔÁàÙ ÅàµÍà à¾×Í
è
´Ù¼Å¡ÒÃà»ÅÕ¹á¼Å§·ÕèÊàµÍõҧ æ ÀÒÂã¹µÑÇäÁâ¤Ã¤Í¹â·ÃÅàÅÍà â´ÂäÁ‹¨Ò໚¹µŒÍ§´ÒǹâËÅ´
è èÕÔ ‹ í
â»Ãá¡ÃÁä»ÃѹãËŒ·Ò§Ò¹¨ÃÔ§ ÁÕ¢¹µÍ¹¡ÒÃ㪌§Ò¹´Ñ§¹Õé
í Ñé
(1) ä»·Õè àÁ¹Ù RUN àÅ×Í¡¤íÒÊѧ Start Debugger ËÃ×ͤÅÔ¡»ØÁ
è † ºÃÔàdzᶺà¤Ã×ͧÁ×Í
è
´ŒÒ¹º¹¢Í§â»Ãá¡ÃÁ ËÃ×Í¡´¤Õ F9 à¾×ÍàÃÔÁµŒ¹à»´Ë¹ŒÒµ‹Ò§ Debugger
è è
ËÁÒÂà赯 ¡‹Í¹¡ÒÃ㪌 Debugger ËÃ×ͨíÒÅͧ¡Ò÷íÒ§Ò¹ µŒÍ§·íÒ¡ÒäÍÁä¾Åâ»Ãá¡ÃÁ¡‹Í¹àÊÁÍ
22. 22 là¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´ŒÇ mikroC áÅСÒ÷´Åͧàº×ͧµŒ¹
é
(2) â»Ãá¡ÃÁ¨Ð໴˹ŒÒµ‹Ò§ Watch ¢Ö¹ÁÒ à¾×Í´Ù¤ÒµÑÇá»Ãµ‹Ò§æ ¼‹Ò¹Ë¹ŒÒµ‹Ò§ Watch
é è ‹
Window â´Â¨ÐµŒÍ§àÅ×Í¡ÃÕ¨ÊàµÍ÷µÍ§¡ÒõÃǨÊͺ¤‹ÒàÊÕ¡‹Í¹ ÊíÒËÃѺâ»Ãá¡ÃÁ LED_Blinking
Ô Õè Œ
ÃÕ¨ÊàµÍ÷㪌§Ò¹¤×Í PORTC áÅÐ TRISC ºÃÔàdzᶺáÊ´§Ê¶Ò¹Ð¨Í§Ë¹ŒÒµ‹Ò§ Watch ¨ÐáÊ´§
Ô Õè
µíÒá˹‹§¢Í§â»Ãá¡ÃÁà¤Ò¹àµÍà (¢³Ð«ÔÁàÙ ÅàµÍÃâ»Ãá¡ÃÁ) áÊ´§àÇÅÒ·Õ㪌àÁ×Í·íÒ¤íÒÊѧ (Stop watch)
è è è
áÅÐá¿Å¡áÊ´§Ê¶Ò¹Ð (ÃÕ¨ÊàµÍà Stutus)
Ô
à¾ÔÁµÑÇá»Ã
è
àÅ×Í¡µÑÇá»Ã
µíÒá˹‹§â»Ãá¡ÃÁà¤Ò¹àµÍà á¿Å¡ã¹ÃÕ¨ÊàµÍà STATUS
Ô
áÊ´§àÇÅÒàÁ×Í·íÒ¤íÒÊѧ
è è
(3) 㹡ÒèíÒÅͧ¡Ò÷íÒ§Ò¹ÊÒÁÒö㪌»Ø†Áµ‹Ò§æ ·ÕèÍÂÙ‹ºÃÔàdz´ŒÒ¹º¹¢Í§Ë¹ŒÒµ‹Ò§
Watch 㹡ÒôټšÒ÷íҧҹ䴌 ËÃ×Í¡´»ØÁ¤ÕÂÅ´´Ñ§¹Õé
† Ñ
F4 ËÃ×Í Ãѹâ»Ãá¡ÃÁ·ÕèµíÒá˹‹§à¤ÍÃà«ÍûÃÒ¡¯ÍÂÙ‹
F5 ËÃ×Í ¡íÒ˹´/¡àÅÔ¡¨Ø´àºÃ¡
F6 ËÃ×Í Ãѹ/ËÂØ´ªÑèǤÃÒÇ¡ÒèíÒÅͧ¡Ò÷íÒ§Ò¹
F7 ËÃ×Í Ãѹ໚¹Êàµç»â´ÂࢌÒä»ã¹â»Ãá¡ÃÁ‹ÍÂ
F8 ËÃ×Í Ãѹ໚¹Êàµç» â´ÂäÁ‹à¢ŒÒä»ã¹â»Ãá¡ÃÁ‹ÍÂ
Ctrl+F8 ËÃ×Í Ãѹ໚¹Êàµç»¨¹ÍÍ¡¨Ò¡â»Ãá¡ÃÁ‹ÍÂ
F9 ËÃ×Í à»´¡ÒèíÒÅͧ¡Ò÷íÒ§Ò¹ËÃ×Í«ÔÁÙàÅàµÍÃ
Ctrl+F2 ËÃ×Í »´¡ÒèíÒÅͧ¡Ò÷íÒ§Ò¹ËÃ×Í«ÔÁÙàÅàµÍÃ
Alt+D áÊ´§Ë¹ŒÒµ‹Ò§´ÔÊáÍÊà«ÁàºÅÍÃ
23. à¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´ŒÇ mikroC áÅСÒ÷´Åͧàº×ͧµŒ¹
é l 23
(4) ¤ÅÔ¡·Õ»Á
è ؆ ËÃ×Í¡´»ØÁ F8 à¾×ÍÃѹâ»Ãá¡ÃÁãËŒ·Ò§Ò¹áººÊàµç» ᵋäÁ‹à¢ŒÒä»
† è í
´Ù¡Ò÷íÒ§Ò¹ã¹â»Ãá¡ÃÁ‹Í ¡´»ØÁ F8 ä»àÃ×ÍÂæ ¨¹¶Ö§¤íÒÊѧ PORTC = ~PORTC; Êѧࡵ¤‹Ò¢Í§
† è è
PORTC Ç‹Ò ÁÕ¡ÒÃà»ÅÕ¹á»Å§ â´Â¶ŒÒ¤‹Òà´ÔÁ໚¹ 0x00 ¨Ðà»ÅÕ¹໚¹ 0xFF áÅжŒÒ¤‹Òà´ÔÁ໚¹ 0xFF
è è
¨Ðà»ÅÕ¹໚¹ 0x00
è
1.3.3 ¡ÒõÃǨÇÑ´¤‹Òä«à¡ÔÅ¡Ò÷íÒ§Ò¹´ŒÇ Stopwatch
àÅ×Í¡·Õàè Á¹Ù View à Debug WindowsView à Clock ¨Ð໚¹¡ÒÃ໴˹ŒÒµ‹Ò§ Stopwatch à¾×Í
è
㪌´¤ÒàÇÅÒ·Õ㪌㹡Ò÷íÒ¤íÒÊѧËÃ×Í¿˜§¡ª¹¨Ò¡¡ÒÃÃѹẺ·ÕÅÐÊàµç» ËÃ×ͨҡÃѹä»ËÂØ´·ÕµÒá˹‹§
Ù‹ è è Ñè èí
Breakpoint (¡íÒ˹´µíÒá˹‹§ËÂØ´¡Ò÷íÒ§Ò¹¢Í§â»Ãá¡ÃÁ ã¹âËÁ´«ÔÁÅàÅàµÍÃ)
Ù
â´Âã¹Ë¹ŒÒµ‹Ò§ Stopwatch áÊ´§¢ŒÍÁÙŴѧ¹Õé
1. Current Count áÊ´§¨íҹǹä«à¡ÔÅ¡Ò÷íÒ§Ò¹áÅÐàÇÅÒ·Õ㪌µ§áµ‹à»´Ë¹ŒÒµ‹Ò§ Debug
è Ñé
2. Delta ໚¹¡ÒÃáÊ´§¨íҹǹä«à¡ÔŢͧ¤íÒÊѧËÃ×Í¿˜§¡ª¹·Õàè ¾Ô§ÃѹãËŒ·Ò§Ò¹ä»Å‹ÒÊØ´
è Ñè è í
3. Stopwatch ໚¹¡ÒÃáÊ´§¨íҹǹä«à¡ÔÅ¡Ò÷íÒ§Ò¹áÅÐàÇÅÒ·Õè㪌 ËÅѧ¨Ò¡¡´»Ø†Á
Reset to Zero
27. à¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´ŒÇ mikroC áÅСÒ÷´Åͧàº×ͧµŒ¹
é l 27
5.RAM ໚¹¡ÒÃáÊ´§ÃÒÂÅÐàÍÕ´¢Í§Ë¹‹Ç¤ÇÒÁ¨íÒ RAM áÅÐÃÕ¨ÊàµÍõҧæ â´Â
Ô ‹
áÊ´§ª×èÍáÅеíÒá˹‹§áÍ´à´ÃʢͧÃÕ¨ÔÊàµÍÃáÅÐ˹‹Ç¤ÇÒÁ¨íÒàËÅ‹Ò¹Ñé¹
6.ROM ໚¹Ë¹ŒÒµ‹Ò§áÊ´§ÃÒÂÅÐàÍÕ´â»Ãá¡ÃÁÀÒÉÒáÍÊá«ÁºÅÕ·àèÕ ¡çºÍÂÙã¹Ë¹‹ÇÂ
‹
¤ÇÒÁ¨íÒâ»Ãá¡ÃÁ
28. 28 là¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´ŒÇ mikroC áÅСÒ÷´Åͧàº×ͧµŒ¹
é
1.5 ·´Êͺ¡Ò÷íÒ§Ò¹·Ò§ÎÒôáÇÃ
㹡Ò÷´Êͺ¡Ò÷íÒ§Ò¹¢Í§â»Ãá¡ÃÁÀÒÉÒ C ·Õèà¢Õ¹¢Öé¹à¾×èÍãËŒàË繼šÒ÷íÒ§Ò¹¨ÃÔ§æ
·Ò§ÎÒôáÇà ¨ÐµŒÍ§ÁÕ¡ÒôÒǹâËÅ´ä¿Å .hex «Ö§à»š¹ä¿Å¼ÅÅѾ¸¢Í§ mirkoC ¤ÍÁä¾àÅÍÃä»Âѧ
è
˹‹Ç¤ÇÒÁ¨íÒâ»Ãá¡ÃÁ¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´Ñ§¹Ñ¹ã¹¡Ò÷´Êͺ¹Õ¨ÐÁÕà¤Ã×ͧÁ×Í 2 µÑÇ·Õè
é é è
à¡ÕèÂÇ¢ŒÍ§¤×Í ÎÒôáÇÃÊíÒËÃѺâ»Ãá¡ÃÁáÅз´ÅͧäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC áÅЫͿµáÇÃ
ÊíÒËÃѺ¡ÒôÒǹâËÅ´â»Ãá¡ÃÁ
ÎÒôáÇ÷Õèá¹Ð¹íÒã¹Ë¹Ñ§Ê×ÍàÅ‹Á¹Õé»ÃСͺ´ŒÇÂ
1. ºÍôÊíÒËÃѺâ»Ãá¡ÃÁäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC/dsPIC ¼‹Ò¹¾Íõ USB ª×ÍÃØ¹è ‹
PX-200 ¢Í§ºÃÔÉ·ÍÔ¹â¹àǵտ àÍç¡à¾ÍÃÔàÁ¹µ ¨íÒ¡Ñ´ (www.inex.co.th)
Ñ
2. ºÍô·´ÅͧÃع NX-877 plusII ÊíÒËÃѺ¡Ã³ÕµÍ§¡Ò÷´Åͧ·ÑÇä» »¡µÔµ´µÑ§äÁâ¤Ã
‹ Œ è Ô é
¤Í¹â·ÃÅàÅÍà PIC18F877A äÇŒ ᵋÊÒÁÒöà»ÅÕ¹໚¹àºÍà PIC16F887 ËÃ×Í 18F4xxx ã¹Ãع 40 ¢Òä´Œ
è ‹
3. RBX-877 V2.0 ºÍô¤Çº¤ØÁËع¹µ Robo-PICA ·Õµ´µÑ§äÁâ¤Ã¤Í¹â·ÃÅàÅÍÃ
‹ èÔ é
PIC16F887 ᵋÊÒÁÒöà»ÅÕ¹໚¹àºÍà PIC16F877A ËÃ×Í 18F4xxx ã¹Ãع 40 ¢Ò ä´Œ
è ‹
ʋǹ«Í¿µáÇ÷Õè㪌¤×Í PICkit2TM Programming Software ¢Í§ Microchip ¼ÙŒ¼ÅÔµäÁâ¤Ã
¤Í¹â·ÃÅàÅÍà PIC ÒÁÒö´ÒǹâËÅ´ä´Œ¿ÃÕ·Õè www.microchip.com
1.5.1 ¡ÒõԴµÑ§«Í¿µáÇà PICkit2TM Programming software
é
PICkit2TM Programming Software ໚¹«Í¿µáÇÃÊÒËÃѺâ»Ãá¡ÃÁäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
í
áÅÐ dsPIC Ẻá¿Åª·ÕµÍ§·íҧҹËÇÁ¡Ñºà¤Ã×ͧâ»Ãá¡ÃÁ PICkit2TM ¢Í§ Microchip ËÃ×Íà¤Ã×ͧ
èŒ è è
â»Ãá¡ÃÁÍ×¹·ÕÁ¡Ò÷íÒ§Ò¹µÃ§¡Ñ¹ ã¹·Õ¹àÕé Å×͡㪌ºÍôâ»Ãá¡ÃÁÃع PX-200 «Ö§¾Ñ²¹Ò¢Ö¹â´ÂºÃÔÉ·
è è Õ è ‹ è é Ñ
ÍÔ¹â¹àǵտ àÍç¡à¾ÍÃÔàÁ¹µ ¨íÒ¡Ñ´ ¨Ò¡¢ŒÍÁÙÅ·Õàè ¼Âá¾Ã‹ÊÊÒ¸ÒóТͧà¤Ã×ͧâ»Ãá¡ÃÁ PICkit2TM â´Â
Ù‹ è
Microchip ÊíÒËÃѺ¡ÒÃâ»Ãá¡ÃÁ¢ŒÍÁÙÅŧã¹Ë¹‹Ç¤ÇÒÁ¨íÒâ»Ãá¡ÃÁ¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
¢Í§ºÍô PX-200 ¨Ð໚¹áººâ»Ãá¡ÃÁã¹Ç§¨Ã¼‹Ò¹·Ò§á¨¡ ICD2
1.5.1.1 µÔ´µÑ§¨Ò¡á¼‹¹«Õ´ÃÍÁ·ÕÁҡѺªØ´ PX-200
é Õ è
«Í¿µáÇ÷㪌¡º PX-200 ¤×Í PICkit2TM Programming Software â´Âã¹àÇÍÃ쪹ãËÁèæ ¹Ñ¹
Õè Ñ Ñ é
¾Ñ²¹ÒÁÒ¨Ò¡ Microsoft .NET ´Ñ§¹Ñ¹¡ÒõԴµÑ§â»Ãá¡ÃÁà¾×Í㪌§Ò¹ ¼Ù㪌§Ò¹µŒÍ§ÁÕ¡ÒõԴµÑ§ Microsoft
é é è Œ é
.NET Framework àÊÕ¡‹Í¹
29. à¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´ŒÇ mikroC áÅСÒ÷´Åͧàº×ͧµŒ¹
é l 29
(¡) ¡Ã³Õ·¤ÍÁ¾ÔÇàµÍÃäÁ‹Á¡ÒõԴµÑ§ Microsoft .NET Framework ÁÒ¡‹Í¹
Õè Õ é
µÔ´µÑ§ Microsoft .NET Framework â´ÂàÅ×Í¡µÔ´µÑ§¨Ò¡â¿Åà´Íà PICkit 2 Setup v2.01
é é
dotNET à dotnetfx ã¹á¼‹¹«Õ´ÃÍÁ ´ÑºàºÔŤÅÔ¡·Õä¿Å dotnetfx.exe ¨Ð㪌àÇÅÒ㹡ÒõԴµÑ§¤ÃÙ˹֧
Õ è é ‹ è
¨Ò¡¹Ñ¹¨Ö§µÔ´µÑ§â»Ãá¡ÃÁ PICkit2TM Programming Software â´ÂàÅ×Í¡ä¿Å PICkit2Setup.msi
é é
(¢) ¡Ã³Õ·¤ÍÁ¾ÔÇàµÍÃÁ¡ÒõԴµÑ§ Microsoft .NET Framework áÅŒÇ
Õè Õ é
µÔ´µÑ§â»Ãá¡ÃÁ PICkit2TM Programming Software â´ÂࢌÒä»·Õâ¿Åà´Íà PICkit 2
é è
Setup v2.01 ã¹á¼‹¹«Õ´ÃÍÁ ´ÑºàºÔŤÅÔ¡·Õä¿Å PICkit2Setup.msi
Õ è
1.5.1.2 µÔ´µÑ§¨Ò¡ä¿Å·´ÒǹâËÅ´¨Ò¡àǺ䫵¢Í§ Microchip
é Õè
ࢌÒä»ÂѧàǺ䫵¢Í§ Microchip ·Õè www.microchip.com àÅ×Í¡ËÑÇ¢ŒÍ Development tools à
Pickit 2 Programmer/Debugger
(¡) ¡Ã³Õ·¤ÍÁ¾ÔÇàµÍÃäÁ‹Á¡ÒõԴµÑ§ Microsoft .NET Framework ÁÒ¡‹Í¹
Õè Õ é
ãËŒ´ÒǹâËÅ´ä¿Å¨Ò¡ËÑÇ¢ŒÍ PICkit2V2.01 Install with .NET Framework ¨Ðä´Œä¿Å
PICkit 2 Setup v2.01 dotNET.zip (µÑÇàÅ¢àÇÍê¹ÍÒ¨à»ÅÕ¹á»Å§µÒÁÃع·ÕÁ¡ÒûÃѺ»ÃاŋÒÊØ´) áÅŒÇ
Ñ è ‹ è Õ
·íÒ¡ÒâÂÒÂä¿Å·Õè´ÒǹâËÅ´ÁÒ à¡çºäÇŒã¹â¿Åà´Íà PICkit 2 Setup v2.01 dotNET ¨Ò¡¹Ñé¹à¢ŒÒä»
ã¹â¿Åà´Íà PICkit 2 Setup v2.01 dotNET à dotnetfx àÅ×Í¡´ÑºàºÔŤÅÔ¡·Õä¿Å dotnetfx.exe ¨Ð㪌
è
àÇÅÒ㹡ÒõԴµÑ§¤ÃÙ˹֧ ¨Ò¡¹Ñ¹¨Ö§·íÒ¡ÒõԴµÑ§â»Ãá¡ÃÁ Pickiit2TM Programming Software â´Â
é ‹ è é é
ࢌÒä»áŌǴѺàºÔŤÅÔ¡·Õä¿Å PICkit2Setup.msi
è
(¢) ¡Ã³Õ·¤ÍÁ¾ÔÇàµÍÃÁ¡ÒõԴµÑ§ Microsoft .NET Framework áÅŒÇ
Õè Õ é
ãËŒ´ÒǹâËÅ´ä¿Å¨Ò¡ËÑÇ¢ŒÍ PICkit2V2.01 Install ¨Ðä´Œä¿Å PICkit 2 Setup v2.01.zip
(µÑÇàÅ¢àÇÍê¹ÍÒ¨à»ÅÕ¹á»Å§µÒÁÃع·ÕÁ¡ÒûÃѺ»ÃاŋÒÊØ´) áŌǷíÒ¡ÒâÂÒÂä¿Å·´ÒǹâËÅ´ÁÒ à¡çº
Ñ è ‹ è Õ Õè
äÇŒã¹â¿Åà´Íà PICkit 2 Setup v2.01 ¨Ò¡¹Ñ¹à¢ŒÒä»ã¹â¿Åà´Íà àÅ×Í¡´ÑºàºÔŤÅÔ¡·Õä¿Å PICkit2Setup.msi
é è
à¾×ÍàÃÔÁµŒ¹µÔ´µÑ§â»Ãá¡ÃÁ
è è é
30. 30 là¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´ŒÇ mikroC áÅСÒ÷´Åͧàº×ͧµŒ¹
é
1.5.1.3 ¢Ñ¹µÍ¹¡ÒõԴµÑ§â»Ãá¡ÃÁ
é é
(1) ´ÑºàºÔŤÅÔ¡ä¿Åµ´µÑ§ PICkit2Setup.msi ¨Ð»ÃÒ¡¯Ë¹ŒÒµ‹Ò§àÃÔÁ¡ÒõԴµÑ§ ¤ÅÔ¡»ØÁ Next
Ô é è é †
(2) ¨Ð»ÃÒ¡¯Ë¹ŒÒµ‹Ò§á¨Œ§µíÒá˹‹§â¿Åà´Í÷¨Ð·íÒ¡ÒõԴµÑ§ ËÒ¡äÁ‹µÍ§¡ÒÃà»ÅÕ¹á»Å§µíÒ
Õè é Œ è
á˹‹§â¿Åà´ÍÃãËŒ¤ÅÔ¡»ØÁ Next à¾×ͼ‹Ò¹¢Ñ¹µÍ¹¹Õä»
† è é é
(3) ¨Ð»ÃÒ¡¯Ë¹ŒÒµ‹Ò§á¨Œ§Â×¹Âѹ¡ÒõԴµÑ§â»Ãá¡ÃÁ ¤ÅÔ¡»ØÁ Next à¾×͵ͺµ¡Å§
é † è
31. à¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´ŒÇ mikroC áÅСÒ÷´Åͧàº×ͧµŒ¹
é l 31
(4) ˹ŒÒµ‹Ò§á¨Œ§ÅÔ¢ÊÔ·¸«Í¿µáÇûÃÒ¡¯¢Ö¹ ¤ÅÔ¡ I agree à¾×͵ͺÃѺ ¨Ò¡¹Ñ¹¤ÅÔ¡»ØÁ Next
é è é †
(5) ˹ŒÒµ‹Ò§á¨Œ§Ê¶Ò¹Ð¡ÒõԴµÑ§â»Ãá¡ÃÁ»ÃÒ¡¯¢Ö¹ Ãͨ¹¡Ãзѧ¡ÒõԴµÑ§àÊÃç¨ÊÁºÙó
é é è é
¨Ò¡¹Ñ¹Ë¹ŒÒµ‹Ò§á¨Œ§¡ÒõԴµÑ§â»Ãá¡ÃÁàÊÃç¨ÊÁºÙó ¨Ð»ÃÒ¡¯¢Ö¹ ãËŒ¤ÅÔ¡»ØÁ Close à¾×Í»´
é é é † è
˹ŒÒµ‹Ò§¹Õé ໚¹ÍѹàÊÃŒ¨ÊÔ¹¢Ñ¹µÍ¹¡ÒõԴµÑ§â»Ãá¡ÃÁ PICkit2TM Programming Software
é é é
32. 32 là¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´ŒÇ mikroC áÅСÒ÷´Åͧàº×ͧµŒ¹
é
1.5.2 ¡ÒÃàª×ÍÁµ‹Íà¾×Í·´Åͧ·Ò§ÎÒôáÇÃ
è è
(1) àÃÔÁµŒ¹´ŒÇ¡Òõ‹ÍÊÒ USB ÃÐËÇ‹Ò§ PX-200 ¡Ñº¾Íõ USB ¢Í§¤ÍÁ¾ÔÇàµÍà ¨Ò¡¹Ñ¹
è é
à»´â»Ãá¡ÃÁ Pickit2TM Programming Software â´ÂàÅ×Í¡·Õè Start à All programs à Microchip
à Pickit 2 V201 (àÅ¢àÇÍê¹ÍÒ¨à»ÅÕ¹á»Å§ä´ŒµÒÁ¡ÒûÃѺ»ÃاŋÒÊØ´) ã¹ÃÙ»·Õè 1-2 áÊ´§Ë¹ŒÒµ‹Ò§
Ñ è
ËÅÑ¡¢Í§â»Ãá¡ÃÁ Pickit2TM Programming Software
àÁ¹Ù¤ÒÊѧ
í è ¡Ãͺ Configuration
ᶺáÊ´§¡Ò÷íÒ§Ò¹ ª‹Í§áÊ´§Ê¶Ò¹Ð
»ØÁª‹ÇÂ㹡ÒÃ
† ᨌ § ·Õè Á Ңͧ
·íÒ§Ò¹ ä¿Å .hex ·ÕúèÑ
˹ŒÒµ‹Ò§ºÑ¿à¿ÍâÍÁÙŢͧ˹‹Ç¤ÇÒÁ¨íÒâ»Ãá¡ÃÁ
Œ ࢌÒÁÒà¡çºäÇŒã¹
ºÑ¿à¿ÍÃ
»ØÁª‹ÇÂ㹡ÒÃ
†
·íÒ§Ò¹
˹ŒÒµ‹Ò§ºÑ¿à¿ÍâÍÁÙŢͧ˹‹Ç¤ÇÒÁ¨íÒÍÕ;ÃÍÁ
Œ Õ
ÃÙ»·Õè 1-2 ˹ŒÒµ‹Ò§ËÅÑ¡¢Í§â»Ãá¡ÃÁ Pickiit2TM Programming Software
33. à¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´ŒÇ mikroC áÅСÒ÷´Åͧàº×ͧµŒ¹
é l 33
(2) µ‹ÍÊÒ ICD ÃÐËÇ‹Ò§ºÍôâ»Ãá¡ÃÁ PX-200 ¡ÑººÍô໇ÒËÁÒÂËÃ×ͺÍô·´Åͧ
(2.1) ¡Ã³Õ㪌¡ººÍô·´Åͧ NX-877 plusII
Ñ
µ‹Í¾Íõ USB
àª×ÍÁµ‹Í¡Ñ¹´ŒÇÂÊÒ ICD2
è
¨‹ÒÂä¿àÅÕ§
é
¡´ÊÇÔµªàÅ×Í¡âËÁ´
â»Ãá¡ÃÁ
(ä¿ÊÕá´§µÔ´ÊÇ‹Ò§)
¾×¹·ÕÊÒËÃѺµ‹Íǧ¨Ã·´Åͧ
é è í
(2.1) ¡Ã³Õ㪌¡ººÍô¤Çº¤ØÁËع¹µ RBX-877 Rev.2007)
Ñ ‹
ºÍôâ»Ãá¡ÃÁ PIC ÊÒ ICD2
Sound
4.8-6V
LCD
RC0
BATT RC7 RC6 RC4 RC3
RxD TxD SDA SCL
DOWNLOAD LCD
back
ICD2 light
POWER
ON
ON
Robo - PICARRobotR
PICRMicroRobotic
RESET
µ‹Í¡Ñº¾Íõ USB
M-1 M-2
¢Í§¤ÍÁ¾ÔÇàµÍà RB3
#3
#2
#1
RA4 RB0
SERVO
RB0/INT RA0 RA1 RA2 RA3 RA5 RE0 RE1 RE2
S+
ÊíÒËÃѺâ»Ãá¡ÃÁµÑÇÍ‹ҧ LED_Blinking ·ÕÁÒ¨Ò¡µÑÇÍ‹ҧã¹â¿Åà´Íà C:Program
è
FilesMikroelektronikamikroCExamplesEasyPic4P16F877ALED_Blinking ÁÕ¡ÒáíÒ˹´¡Òõ‹Í
ǧ¨ÃäÁ‹µÃ§¡ÑººÍô RBX-877 Rev.2007 ´Ñ§¹Ñ¹ã¹¡Ò÷´Êͺ¹Õ¨Ð͌ҧ¶Ö§ºÍô·´Åͧ NX-877 plus
é é
II ໚¹ËÅÑ¡ ÊíÒËÃѺµÑÇÍ‹ҧ¡Ò÷´Êͺ¡ÑººÍô RBX-877 Rev.200 ´ÙÃÒÂÅÐàÍÕ´à¾ÔÁàµÔÁã¹Ë¹Ñ§Ê×Í
è
àÃÕ¹ÃÙáÅÐÊÌҧËع¹µÍµâ¹Áѵ¡ºäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC «Ö§¨Ñ´ÁÒã¹Ø´Ëع¹µ Robo-PICA
Œ ‹ Ñ ÔÑ è ‹
34. 34 là¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´ŒÇ mikroC áÅСÒ÷´Åͧàº×ͧµŒ¹
é
(3) ¨Ò¡¹Ñ鹫ͿµáÇèеÃǨÊͺ¡ÒÃàª×èÍÁµ‹ÍáÅÐàºÍâͧäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
·Õèàª×èÍÁµ‹Í´ŒÇÂÍ‹ҧÍѵâ¹ÁÑµÔ áŌǨÐᨌ§àºÍ÷èÕ¾ºº¹Ë¹ŒÒµ‹Ò§¢Í§â»Ãá¡ÃÁ
(4) àÅ×Í¡ä¿Å .hex ·Õ赌ͧ¡ÒÃâ»Ãá¡ÃÁ â´Âä»·ÕèàÁ¹Ù File àÅ×Í¡ Import Hex ¨ÐÁÕ˹ŒÒµ‹Ò§
ÊíÒËÃѺ໴ä¿Å *.hex ·Õ赌ͧ¡ÒÃâ»Ãá¡ÃÁŧäÁâ¤Ã¤Í¹â·ÃÅàÅÍà 㹷Õè¹ÕéàÅ×Í¡ä»·Õè C:Program
FilesMikroelektronikamikroCExamplesEasyPic4P16F877ALED_Blinking àÅ× Í ¡ä¿Å ª×è Í
LED_Blinking.hex
(5) ¤ÅÔ¡»ØÁ Write à¾×Í´ÒǹâËÅ´â»Ãá¡ÃÁä»ÂѧºÍôäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
† è
(6) µ‹Íǧ¨Ãâ´Âµ‹Í¢Ò¾Íõ C ã´æ ࢌҡѺ LED
+5V
11 32 C6
+5V 0.1 F
50V
1+!
21+$.%%
R5
4k7
1
MCLR LED
SW2 R6
1k RCx
4-5-6
12 R1
390
31
13 XTAL1 14
20MHz
C2 C3
22pF 22pF
(7) ¡Ã³Õ㪌ºÍô NX-877 plus II ËÅѧ¨Ò¡â»Ãá¡ÃÁáÅŒÇ ãËŒ¡´ÊÇÔµª MODE ÁÒã¹âËÁ´ Run
áŌǡ´ÊÇÔµª RESET äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ¨ÐàÃÔÁ·íÒ§Ò¹ LED ·ÕµÍÍÂ٨еԴ¡Ð¾ÃԺ͋ҧµ‹Íà¹×ͧ
è è‹ ‹ è
INNOVATIVE EXPERIMENT
35. à¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´ŒÇ mikroC áÅСÒ÷´Åͧàº×ͧµŒ¹
é l 35
º··Õè 2
¡ÒÃà¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C àº×ͧµŒ¹
é
ÊíÒËÃѺ mikroC ¤ÍÁä¾àÅÍÃ
¡ÒþѲ¹Òâ»Ãá¡ÃÁÀÒÉÒ C ´ŒÇ mikroC ¨ÐµŒÍ§ÊÌҧä¿Åã¹Åѡɳмѧ§Ò¹ËÃ×Íä¿Åâ»Ãà¨ç¡µ
(project) «Ö§ÁÕ¢¹µÍ¹·ÕäÁ‹Â§ÂÒ¡ à¹×ͧ¨Ò¡ mikroC ÁÕà¤Ã×ͧÁ×Í·ÕªÇÂʹѺʹع¡ÒÃÊÌҧä¿Å áÅÐÅ´ÀÒÃÐ
è Ñé è Ø‹ è è è‹
㹡ÒÃà¢Õ¹â»Ãá¡ÃÁáÅСÒÃàª×ÍÁâ§ä¿Å
è
2.1 ¡ÒÃÊÌҧä¿Åâ»Ãà¨ç¡µ
ÁÕ¢Ñ鹵͹â´ÂÊÃØ»´Ñ§¹Õé
(1) à»´â»Ãá¡ÃÁ mikroC ä»·Õàè Á¹Ù Project àÅ×Í¡¤íÒÊѧ New Project ¨Ð»ÃÒ¡¯Ë¹ŒÒµ‹Ò§
è
¡ÒÃÊÌҧ Project ¢Ö¹ÁҴѧÃÙ»
é
¡íÒ˹´ª×Íâ»Ãà¨ç¡µ
è
¡íÒ˹´µíÒá˹‹§â¿Åà´ÍÃ
ÃÒÂÅÐàÍÕ´â»Ãà¨ç¡µ
äÁâ¤Ã¤Í¹â·ÃÅàÅÍ÷àÅ×͡㪌
Õè
¤ÇÒÁ¶ÕÊÒ³¹ÒÌ¡Ò
è Ñ
ª‹Í§¡íÒ˹´¤‹Ò¤Ø³Åѡɳзҧ
ÎÒôáÇÃËÃ×ͤ͹¿¡àêѹ
Ù è
36. 36 là¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´ŒÇ mikroC áÅСÒ÷´Åͧàº×ͧµŒ¹
é
¡ÒáíÒ˹´¤‹Òµ‹Ò§æ ã¹Ë¹ŒÒµ‹Ò§ New Project ÁÕ´§¹Õé
Ñ
(1.1) Project Name ໚¹¡ÒáíÒ˹´ª×Íä¿Åâ»Ãà¨ç¡µáÅЪ×Í«ÍÃÊâ»Ãá¡ÃÁ
è è
ÀÒÉÒ C ´ŒÇ â´Âä¿Åâ»Ãà¨ç¡µÁ¹ÒÁÊ¡ÅØ໚¹ .ppc ʋǹä¿Å«ÍÃÊâ»Ãá¡ÃÁÁÕ¹ÒÁÊ¡ØÅ໚¹ .c ã¹·Õè
Õ
¹Õ¡Ò˹´ª×ÍÇ‹Ò Project01
éí è
(1.2) Project Path ໚¹¡ÒáíÒ˹´µíÒá˹‹§â¿Åà´Í÷㪌à¡çºä¿Åâ»Ãà¨ç¡µ
èÕ
áÅЫÍÃÊâ»Ãá¡ÃÁ ã¹·Õ¹¡Ò˹´µíÒá˹‹§äÇŒ·Õè C:MikroC_Code ¼Ù㪌§Ò¹ÊÒÁÒö¡´¤ÕÂ
è Õé í Œ
à¾×èÍàÅ×Í¡µíÒá˹‹§â¿Åà´ÍôŒÇµ¹àͧ䴌
(1.3) Description ໚¹¾×¹·ÕÊÒËÃѺÃкØÃÒÂÅÐàÍÕ´à¡ÕÂǡѺâ»Ãà¨ç¡µ·ÊÌҧ¢Ö¹
é è í è èÕ é
¨ÐÃкØËÃ×ÍäÁ‹¡ä´Œ
ç
(1.4) Device ໚¹ª‹Í§ÊíÒËÃѺ¡íÒ˹´àºÍÃäÁâ¤Ã¤Í¹â·ÃÅàÅÍ÷àÕè Å×͡㪌§Ò¹
à¹×ͧ¨Ò¡äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ᵋÅÐàºÍÃÁ¤³ÊÁºÑµäÁ‹àËÁ×͹¡Ñ¹ ¨Ö§µŒÍ§àÅ×Í¡àºÍâͧäÁâ¤Ã
è ÕØ Ô
¤Í¹â·ÃÅàÅÍà PIC ãËŒ¶¡µŒÍ§ ã¹·Õ¹àÕé Å×͡໚¹àºÍà PIC16F887
Ù è
(1.5) Clock 㪌¡Ò˹´¤‹Ò¤ÇÒÁ¶ÕÊÒ³¹ÒÌ¡Ò·Õ㪌¡ºäÁâ¤Ã¤Í¹â·ÃÅàÅÍÃ
í è Ñ è Ñ
PIC ˹‹ÇÂ໚¹ MHz 㹷չ㪌¤ÇÒÁ¶Õàè ·‹Ò¡Ñº 20 MHz
è Õé
(2) ¡íÒ˹´¤‹Ò¤Ø³ÊÁºÑµÔ·Ò§ÎÒôáÇÃËÃ×ͤ͹¿¡ÙàêÑè¹ (configuration) ¢Í§äÁâ¤Ã
¤Í¹â·ÃÅàÅÍà PIC àºÍ÷àÕè Å×͡㪌§Ò¹·ÕªÍ§ Device Flags ÁÕµÇàÅ×Í¡ãˌ㪌§Ò¹ËÅÒÂÃٻẺઋ¹
è ‹ Ñ
_XT_OSC : ǧ¨Ã¡íÒà¹Ô´ÊÑÒ³¹ÒÌ¡ÒẺ¤ÃÔʵÍÅ ¤ÇÒÁ¶ÕäÁ‹à¡Ô¹ 4MHz
è
_HS_OSC : ǧ¨Ã¡íÒà¹Ô´ÊÑÒ³¹ÒÌ¡ÒẺ¤ÃÔʵÍŤÇÒÁ¶Õʧ (4MHz ¢Ö¹ä»)
è Ù é
_LP_OSC : ǧ¨Ã¡íÒà¹Ô´ÊÑÒ³¹ÒÌ¡ÒẺ¤ÃÔʵÍžÅѧ§Ò¹µèÒ
í
_RC_OSC : ǧ¨Ã¡íÒà¹Ô´ÊÑÒ³¹ÒÌ¡ÒẺ㪌µÇµŒÒ¹·Ò¹áÅеÑÇà¡çº»ÃШØ
Ñ
_LVP_ON,_LVP_OFF : àÍç¹àÍàºÔÅáÅдÔÊàÍàºÔÅ¡ÒÃâ»Ãá¡ÃÁ´ŒÇÂáç´Ñ¹µèÒ
í
_WDT_ON ,_WDT_OFF : àÍç¹àÍàºÔÅáÅдÔÊàÍàºÔÅÇ͵ª´Í¡ä·àÁÍÃ
ç
_CP_OFF,_CP_ALL : àÅ×Í¡ËÃ×ÍäÁ‹àÅ×Í¡»‡Í§¡Ñ¹¡ÒÃÍ‹Ò¹¢ŒÍÁÙÅ (Code Protect)
¡ÒáíÒ˹´¤‹ÒàËÅ‹Ò¹Õ¢¹ÍÂÙ¡ºäÁâ¤Ã¤Í¹â·ÃÅàÅÍÃᵋÅеÑÇ ÃÒÂÅÐàÍÕ´à¾ÔÁ
é Öé ‹ Ñ è
àµÔÁÊÒÁÒöÈÖ¡ÉÒä´Œ¨Ò¡´ÒµŒÒªÕµ¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍÃàºÍù¹ æ
Ñé
37. à¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´ŒÇ mikroC áÅСÒ÷´Åͧàº×ͧµŒ¹
é l 37
ÊíÒËÃѺ¡ÒÃÊÌҧâ»Ãà¨ç¡µ¤ÃÑ駹ÕéãËŒ¡íÒ˹´¤‹Ò໚¹¤‹ÒµÑ駵Œ¹ â´Â¤ÅÔ¡·Õè»Ø†Á
ÊíÒËÃѺ PIC16F887 ¤‹ÒµÑ§µŒ¹ ¤×Í
é
l ǧ¨ÃÊÑÒ³¹ÒÌ¡Ò໚¹áºº HS_OSC
l ´ÔÊàÍàºÔÅÇ͵ª´Í¡ä·àÁÍà (WDT_OFF)
ç
l ´ÔÊàÍàºÔÅ¡ÒÃâ»Ãá¡ÃÁẺ㪌áç´Ñ¹µèÒ (LVP_OFF)
í
ÊíÒËÃѺ»ØÁ
† ໚¹¡ÒáàÅÔ¡à¤Ã×ͧËÁÒ¶١˹ŒÒËÑÇ¢ŒÍ Config ·Ñ§ËÁ´
è é
àÁ×Í¡íÒ˹´¤‹ÒàÃÕºÌÍÂãËŒ¡´»ØÁ OK ໚¹ÍѹàÊÃç¨ÊÔ¹¡ÒÃÊÌҧä¿Åâ»Ãà¨ç¡µãËÁ‹
è † é
â»Ãá¡ÃÁ¨ÐÊÌҧä¿Å Project01.c ¢Ö¹ÁÒãËŒâ´ÂÍѵâ¹ÁѵÔ
é
(3) ËÅѧ¨Ò¡ÊÌҧä¿Åâ»Ãà¨ç¡µàÃÕºÌÍÂáÅŒÇ ¼ÙŒãªŒ§Ò¹ÂѧÊÒÁÒöᡌ䢢ŒÍÁÙÅ㹡ÒÃ
¡íÒ˹´¤‹Òµ‹Ò§æ ¢Í§ä¿Åâ»Ãà¨ç¡µä´Œ â´Âä»·Õàè Á¹Ù Project à Edit Project ËÃ×ͤÅÔ¡äͤ͹
·Õᶺà¤Ã×ͧÁ×ͧ͢â»Ãá¡ÃÁ mikroC
è è
ᵋ¶ŒÒµŒÍ§¡ÒÃà»ÅÕè¹àºÍâͧäÁâ¤Ã¤Í¹â·ÃÅàÅÍÃËÃ×ͤÇÒÁ¶ÕèÊÑÒ³
¹ÒÌ¡Ò ¼Ù¾²¹Òâ»Ãá¡ÃÁÊÒÁÒö¡íÒ˹´¤‹Òä´Œ¨Ò¡á·ç» Project Setup ·ÕÁÁÅ‹Ò§´ŒÒ¹«ŒÒ¢ͧ˹ŒÒµ‹Ò§
Œ Ñ è Ø
ËÅÑ¡ä´Œ·Ñ¹·Õ
(4) ËÅѧ¨Ò¡á¡Œä¢à»ÅÕè¹á»Å§¢ŒÍÁÙÅã¹ä¿Åâ»Ãà¨ç¡µáÅŒÇ ¨ÐµŒÍ§ºÑ¹·Ö¡¡ÒÃá¡Œä¢
â´ÂàÅ×Í¡·Õàè Á¹Ù Project à Save Project ËÃ×ͤÅÔ¡·Õäͤ͹
è ¡çä´Œ
38. 38 là¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´ŒÇ mikroC áÅСÒ÷´Åͧàº×ͧµŒ¹
é
2.2 â¤Ã§ÊÌҧâ»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺ mikroC ¤ÍÁä¾àÅÍÃ
ÃٻẺÀÒÉÒ C ¢Í§ mikroC ÁÕ¤ÇÒÁ¤ÅŒÒ¤ÅÖ§¡Ñºâ»Ãá¡ÃÁÀÒÉÒ C Áҵðҹ ´Ñ§¹Ñ¹¼Ù·Á¾¹
é Œ Õè Õ ×é
°Ò¹ÀÒÉÒ C ÁÒºŒÒ§áÅŒÇ ÊÒÁÒö·íÒ¤ÇÒÁࢌÒã¨áÅÐà¢Õ¹â»Ãá¡ÃÁ¡Ñº mikroC ä´Œ·¹·Õ ʋǹ·ÕµÍ§à¾ÔÁ
Ñ èŒ è
àµÔÁ¤×Í ¡Ò÷íÒ¤ÇÒÁࢌÒ㨡Ѻ¡Ò÷íÒ§Ò¹¢Í§âÁ´ÙÅ·Ò§ÎÒôáÇÃÀÒÂã¹äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
ã¹ÃÙ»·Õè 2-1 ໚¹¡ÒÃáÊ´§Ê‹Ç¹»ÃСͺ¢Í§â»Ãá¡ÃÁÀÒÉÒ C ·Õ¾²¹Òº¹ mikroC »ÃСͺ
è Ñ
´ŒÇ µÑÇá»ÃáÅСÒûÃСÒȵÑÇá»Ã, ¿˜§¡ª¹â»Ãá¡ÃÁËÅÑ¡ (main program), ¿˜§¡ª¹â»Ãá¡ÃÁ,
Ñè Ñè
ªØ´¤íÒÊѧ, ä¿Åàδà´Íà (Header) áÅФíÒ͸ԺÒÂâ»Ãá¡ÃÁ (comment)
è
ᵋÍ‹ҧ¹ŒÍ·ÕèÊش㹡ÒÃà¢Õ¹â»Ãá¡ÃÁ¨ÐµŒÍ§ÁÕâ»Ãá¡ÃÁËÅÑ¡ «Öè§ÁÕÅѡɳдѧ¹Õé
void main ()
{
ªØ´¤íÒÊѧ ;
è
}
ä¿Å Header
¤íÒ͸ԺÒÂâ»Ãá¡ÃÁ
µÑÇá»Ã
â»Ãá¡ÃÁËÅÑ¡
¤íÒ͸ԺÒÂâ»Ãá¡ÃÁ
¤íÒÊѧ
è
ÃÙ»·Õè 2-1 áÊ´§Ê‹Ç¹»ÃСͺ¢Í§â»Ãá¡ÃÁÀÒÉÒ C ·Õ¾²¹Òº¹ mikroC
è Ñ