àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
1
àÃÕ¹ÃÙ áÅÐÊà ҧËØ ¹Â¹µ Íѵâ¹ÁÑµÔ ¡ÑºäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC Robot experiment with PIC microcontroller ¡ÄÉ´Ò ã¨àÂç¹ ªÑÂÇѲ¹ ÅÔÁé ¾Ã¨ÔµÃÇÔäÅ
(C) Innovative Experiment Co.,Ltd.
˹Öè § ã¹Ë¹Ñ § Ê× Í ªØ ´ Ëع ¹µ à¾×Íè ¡ÒÃàÃÕ¹ÃÙ
2
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
Robot experiment with PIC microcontroller
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ISBN 974 - 92023 - 0 -9
¡ÄÉ´Ò ã¨àÂç¹ ªÑÂÇѲ¹ ÅÔÁé ¾Ã¨ÔµÃÇÔäŠʧǹÅÔ¢ÊÔ·¸Ôµì ÒÁ ¾.Ã.º. ÅÔ¢ÊÔ·¸Ôì ¾.È. 2521 Ë ÒÁ¡ÒÃÅÍ¡àÅÕ¹äÁ ÇÒ Ê Ç¹Ë¹Ö§è Ê Ç¹ã´¢Í§Ë¹Ñ§Ê×ÍàÅ Á¹Õé ¹Í¡¨Ò¡¨Ðä´ ÃºÑ Í¹ØÒµ ã¤Ã¤ÇÃ㪠˹ѧÊ×ÍàÅ Á¹Õé 1. ¹Ñ¡àÃÕ¹ ¹ÔÊµÔ ¹Ñ¡ÈÖ¡ÉÒ áÅкؤ¤Å·ÑÇè ä»·ÕÁè ¤Õ ÇÒÁʹã¨ã¹¡ÒÃÊà ҧËع ¹µ 굄 â¹Áѵ¢Ô ¹Ò´àÅç¡´ ÇÂäÁâ¤Ã ¤Í¹â·ÃÅàÅÍà PIC 2. ʶҺѹ¡ÒÃÈÖ¡ÉÒ âçàÃÕ¹ ÇÔ·ÂÒÅÑ ÁËÒÇÔ·ÂÒÅÑ ·ÕÁè ¡Õ ÒÃà» ´¡ÒÃàÃÕ¹¡ÒÃÊ͹ÇÔªÒÍÔàÅç¡·ÃÍ¹Ô¡Ê ËÃ×Í ÀÒ¤ÇÔªÒÇÔÈÇ¡ÃÃÁÍÔàÅç¡·ÃÍ¹Ô¡Ê áÅФÍÁ¾ÔÇàµÍà 3. ¤³Ò¨Òà·ÁÕè ¤Õ ÇÒÁµ ͧ¡ÒÃÈÖ¡ÉÒ áÅÐàµÃÕÂÁ¡ÒÃàÃÕ¹¡ÒÃÊ͹ÇÔªÒäÁâ¤Ãâ»Ãà«Êà«Íà - äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ã¹ÃдѺ¡ÅÒ§·Õµè Í §¡ÒÃ㪠§Ò¹â»Ãá¡ÃÁ¤ÍÁ¾ÔÇàµÍà ÀÒÉÒÊÙ§ 4. ˹ ǧҹàÍ¡ª¹·ÕÁè ¡Õ ÒþѲ¹Ò¼ÅÔµÀѳ± ´Ò ¹ÍÔàÅç¡·ÃÍ¹Ô¡Ê áÅФÍÁ¾ÔÇàµÍà ´íÒà¹Ô¹¡ÒèѴ¾ÔÁ¾ áÅШíÒ˹ ÒÂâ´Â ºÃÔÉ·Ñ ÍÔ¹â¹àǵտ àÍç¡à¾ÍÃÔàÁ¹µ ¨íÒ¡Ñ´ 3133/53 «.ÊØ¢ÁØ ÇÔ· 101/2 ¶.ÊØ¢ÁØ ÇÔ· á¢Ç§ºÒ§¹Ò ࢵºÒ§¹Ò ¡ÃØ§à·¾Ï 10260 â·ÃÈѾ· 0-2747-7001-4 â·ÃÊÒà 0-2747-7005 ÃÒÂÅÐàÍÕ´·Õ»è ÃÒ¡¯ã¹Ë¹Ñ§Ê×ÍàÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ¼ Ò¹¡ÒõÃǨ·Ò¹Í ҧ ÅÐàÍÕ´áÅж ǹ¶Õè à¾×Íè ãË Á¤Õ ÇÒÁÊÁºÙó áÅж١µ ͧÁÒ¡·ÕÊè ´Ø ÀÒÂãµ à§×Íè ¹ä¢áÅÐàÇÅÒ·Õ¾è §Ö ÁÕ¡Í ¹¡ÒèѴ¾ÔÁ¾ à¼Âá¾Ã ¤ÇÒÁàÊÕÂËÒÂÍѹÍÒ¨à¡Ô´¨Ò¡ ¡ÒùíÒ¢ ÍÁÙÅã¹Ë¹Ñ§Ê×ÍàÅ Á¹Õäé »ãª ·Ò§ºÃÔÉ·Ñ ÍÔ¹â¹àǵտ àÍç¡à¾ÍÃÔàÁ¹µ ¨íÒ¡Ñ´ ÁÔä´ ÁÕ ÀÒÃÐ㹡ÒÃÃѺ¼Ô´ªÍºáµ »ÃСÒÃã´ ¤ÇÒÁ¼Ô´¾ÅÒ´¤ÅÒ´à¤Å×Íè ¹·ÕÍè Ò¨ÁÕáÅÐä´ ÃºÑ ¡ÒèѴ¾ÔÁ¾ à¼Âá¾Ã ÍÍ¡ä»¹Ñ¹é ·Ò§º ÃÔÉ·Ñ Ï ¨Ð¾ÂÒÂÒÁªÕáé ¨§áÅÐá¡ ä¢ã¹¡ÒèѴ¾ÔÁ¾ ¤ÃÑ§é µ Íä»
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
3
¤íÒ¹íÒ ËØ ¹Â¹µ à» ¹ÊÔ觻ÃдÔÉ° ·ÕèºÙóҡÒÃͧ¤ ¤ÇÒÁÃÙ Í ҧ¤Ãº¶ ǹ·Ñé§ã¹´ Ò¹ÇÔ·ÂÒÈÒʵà ෤â¹âÅÂÕ ¡Ãкǹ¡ÒäԴ ¡ÒäǺ¤ØÁÍÒÃÁ³ áÅÐÊѹ·¹Ò¡Òà ´Ñ§¹Ñ¹é 㹡ÒÃàÃÕ¹ÃÙÇ ·Ô ÂÒ¡ÒÃÊÁÑ ãËÁ Ë¹Ø Â¹µ ¨§Ö ÁÕº·ºÒ·ÁÒ¡¢Ö¹é áÅÐà» ¹à¤Ã×Íè §Á×Í·ÕÊè Òí ¤Ñ㹡ÒÃÊà ҧ¡ØÈâźÒÂ㹡ÒÃàÃÕ¹ÃÙÇ ·Ô ÂÒÈÒʵà áÅÐà·¤â¹âÅÂÕ áÅЪ ÇÂãË ¡ÒÃàÃÕ¹ÃÙ㠹ᢹ§¹Õ·é àÕè ¤Â¶Ù¡¨íÒ¡Ñ´äÇ ã¹Ç§¨íÒ¡Ñ´ä´ ÃºÑ ¡ÒÃà» ´ÍÍ¡ãË ä´ ÃºÑ ÃÙã ¹ ǧ¡Ç Ò§ áÅÐà¢ Ò¶Ö§ä´ §Ò ¢ֹé ÀÒÂãµ §º»ÃÐÁÒ³·ÕÅè ´Å§Í ҧÁÒ¡ ¡ÒÃàÃÕ¹ÃÙ à¾×èÍÊà ҧËØ ¹Â¹µ Íѵâ¹ÁѵԢ¹Ò´àÅç¡â´Â㪠äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ໠¹µÑǤǺ¤ØÁ ¡Òà ·íÒ§Ò¹¹Ñé¹ ¼Ù àÃÕ¹¨Ðä´ ÃѺ¡Òý ¡½¹¤ÇÒÁÅÐàÍÕ´Ãͺ¤Íºã¹¡ÒþԨÒóÒáÅзíÒ¤ÇÒÁࢠÒ㨡Òà ·íÒ§Ò¹¢Í§ªÔé¹Ê ǹ·Ò§¡ÅáÅÐÍÔàÅç¡·ÃÍ¹Ô¡Ê ä´ ÃѺ¡Òý ¡ãª ¡Ãкǹ¡ÒäԴÍ ҧÁÕà˵ؼÅ㹡ÒÃà¢Õ¹ â»Ãá¡ÃÁà¾×Íè ¤Çº¤ØÁ¡Ò÷íÒ§Ò¹¢Í§Ëع ¹µ ÃÙ¨ ¡Ñ ¾Ô¨ÒóÒᡠ䢻 ËÒáÅÐÍØ»ÊÃä·ÕÍè Ò¨à¡Ô´¢Ö¹é 㹡Òà Êà ҧáÅз´Åͧ áÅзÕÊè Òí ¤Ñ«Ö§è ÍÒ¨Áͧ¢ ÒÁ令×Í ½ ¡ãË Ã¨Ù ¡Ñ ¡ÒäǺ¤ØÁÍÒÃÁ³ ã¹ÀÒÇÐ·Õ¾è º» ËÒ·Õè äÁ ¤Ò´ËÁÒÂ㹡ÒÃÊà ҧáÅз´Åͧ Ëع ¹µ à» ¹Ê×Íè ·Õ¹è Òí ͧ¤ ¤ÇÒÁÃÙ· áÕè µ¡µ Ò§¡Ñ¹Í ҧÊÔ¹é àªÔ§ 2 á¹Ç·Ò§ÁÒ¾ºáÅмÊÁ¼ÊÒ¹ ¡Ñ¹ à¾×èÍÊà ҧ»ÃÐ⪹ ä´ Í ҧàËÅ×Íàª×èÍ ¹Ñ蹤×Í ¤ÇÒÁÃÙ ´ Ò¹ÎÒà ´áÇà (hardware) áÅÐ «Í¿µ áÇà (software) Ëع ¹µ ¨§Ö à» ¹Ê×Íè ¡ÒÃàÃÕ¹ÃÙà ´ÕÂÇ·Õáè Ê´§ãË àËç¹Í ҧªÑ´à¨¹¶Ö§¡ÒùíÒͧ¤ ¤ÇÒÁÃÙ· §Ñé Êͧ´ Ò¹ÁÒ »ÃСͺ¡Ñ¹ à¾×Íè ãË à¡Ô´ªÔ¹é §Ò¹Êà ҧÊÃä áÅÐÊà ҧ¤ÇÒÁÊ¹Ø¡Ê¹Ò¹ä´ ã¹¤ÃÒÇà´ÕÂǡѹ ã¹Ë¹Ñ§Ê×ÍàÅ Á¹Õéä´ ¹íÒàʹ͢ ÍÁÙÅ·Õè¤Ãº¶ ǹÃͺ´ ҹ㹡ÒÃàÃÕ¹ÃÙ à¾×èÍÊà ҧáÅз´Åͧ¡Òà ·íÒ§Ò¹¢Í§ËØ ¹Â¹µ Íѵâ¹ÁѵԢ¹Ò´àÅç¡·Õè¤Çº¤ØÁ¡Ò÷íÒ§Ò¹´ ÇÂäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC Íѹ໠¹äÁâ¤Ã ¤Í¹â·ÃÅàÅÍà ·Õèä´ ÃѺ¤ÇÒÁ¹ÔÂÁÊÙ§ à¹×èͧ¨Ò¡ÁդسÊÁºÑµÔ·Ò§ÎÒà ´áÇà ·ÕèàËÁÒÐÍ ҧÂÔè§ã¹¡ÒùíÒÊà ҧ Ëع ¹µ 굄 â¹ÁÑµÔ â´Âá¹Ð¹íÒãË ·ÃÒº¶Ö§¡Ò÷íÒ§Ò¹¢Í§Ê ǹ»ÃСͺµ Ò§æ ¡ÒÃ㪠§Ò¹«Í¿µ áÇà ·ãÕè ª 㹡Òà ¾Ñ²¹Ò µÑÇÍ ҧ¡ÒÃÊà ҧËØ ¹Â¹µ µÑÇÍ ҧâ»Ãá¡ÃÁà¾×èͤǺ¤ØÁ¡Ò÷íÒ§Ò¹¢Í§ËØ ¹Â¹µ ã¹Åѡɳе Ò§æ µÑ§é áµ ¢¹Ñé ¾×¹é °Ò¹ä»¨¹¶Ö§¡Ò÷íÒ§Ò¹¡ÑºµÑǵÃǨ¨Ñºáººµ Ò§æ à¾×Íè ãË ä´ àÃÕ¹ÃÙ¡ Ò÷íÒ§Ò¹¢Í§Ãкº¤Çº¤ØÁ Íѵâ¹ÁѵÔä´ ·Ñé§ã¹·Ò§µÃ§áÅÐ·Ò§Í ÍÁ ¤³Ð¼Ù¨ ´Ñ ·íҢ͢ͺ¤Ø³ Microengineering Labs Inc. ÊËÃÑ°ÍàÁÃÔ¡Ò ·Õäè ´ à¼Âá¾Ã «Í¿µ áÇà PIC BASIC PRO ¤ÍÁä¾àÅÍà ã¹Ãع ·´Åͧ áÅÐ Mechnique ¨Ò¡Íѧ¡ÄÉ·Õäè ´ à¼Âá¾Ã «Í¿µ áÇà Microcode Studio «Ö§è 㪠ÃÇ Á¡Ñº PIC BASIC PRO ¤ÍÁä¾àÅÍà «Ö§è 㪠¾² Ñ ¹Òâ»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ ã¹Ë¹Ñ§Ê×ÍàÅ Á¹Õé ¡ÄÉ´Ò ã¨àÂç¹ ªÑÂÇѲ¹ ÅÔÁé ¾Ã¨ÔµÃÇÔäÅ
4
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
ÊÒÃºÑ º··Õè 1 á¹Ð¹íÒªÔ¹é Ê Ç¹áÅÐÍØ»¡Ã³ 㹡ÒÃÊà ҧËع ¹µ áÅСÒÃ㪠§Ò¹«Í¿µ áÇà ÊÒí ËÃѺ¾Ñ²¹Òâ»Ãá¡ÃÁ ..............................................7 1.1 ªÔ¹é Ê Ç¹¢Í§Ëع ¹µ Robo-PICA 1.2 à¤Ã×Íè §Á×Í·Õãè ª 㹡ÒÃÊà ҧËع ¹µ 1.3 «Í¿µ áÇà ÊÒí ËÃѺ¾Ñ²¹Òâ»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ º··Õè 2 RBX-877 ἧǧ¨ÃàÃÕ¹ÃÙá Åз´Åͧ¤Çº¤ØÁËع ¹µ ´Ç  äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ...................................................................................29 2.1 ¤Ø³ÊÁºÑµ·Ô ҧ෤¹Ô¤ 2.2 ¡Ò÷íÒ§Ò¹¢Í§Ç§¨Ã ¡Ô¨¡ÃÃÁ·Õè 1 : à¢Õ¹â»Ãá¡ÃÁ·´ÊͺºÍà ¤Çº¤ØÁ RBX-877 º··Õè 3 Êà ҧËع ¹µ Robo-PICA ...................................................................................55 ¡Ô¨¡ÃÃÁ·Õè 2 : »ÃСͺŠÍÊÒ¾ҹáÅÐâ¤Ã§Ëع ¹µ º··Õè 4 ¡ÒäǺ¤ØÁËع ¹µ àº×Íé §µ ¹ ..............................................................................61 ¡Ô¨¡ÃÃÁ·Õè 3 : µÃǨÊͺ·ÔÈ·Ò§¡ÒÃËÁع¢Í§ÁÍàµÍà ¡Ô¨¡ÃÃÁ·Õè 4 : ¤Çº¤ØÁ¡ÒÃàÅÕÂé ǢͧËع ¹µ ¡Ô¨¡ÃÃÁ·Õè 5 : ¡ÒäǺ¤ØÁ¤ÇÒÁàÃçǢͧËع ¹µ ¡Ô¨¡ÃÃÁ·Õè 6 : Ëع ¹µ à¤Å×Íè ¹·Õµè ÒÁÃٻẺ·Õ¡è Òí ˹´ º··Õè 5 Ëع ¹µ µÃǨ¨ÑºàÊ ¹Íѵâ¹ÁÑµÔ ...........................................................................71 5.1 µÑǵÃǨ¨Ñº¡ÒÃÊз ͹áʧÍÔ¹¿ÃÒàô ¡Ô¨¡ÃÃÁ·Õè 7 : ·´Êͺ¡ÒÃÍ Ò¹¤ ÒÊÑÒ³ÍйÒÅÍ¡ ¡Ô¨¡ÃÃÁ·Õè 8 : Ëع ¹µ Robo-PICA à¤Å×Íè ¹·Õµè ÒÁàÊ ¹
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
5
º··Õè 6 ¤Çº¤ØÁËع ¹µ ´Ç ÂÃÕâÁµ¤Í¹â·ÃÅ..................................................................81 6.1 ἧǧ¨ÃâÁ´ÙÅÃѺáʧÍÔ¹¿ÃÒàô 6.2 ÃÕâÁµ¤Í¹â·ÃÅ Easy Remote4 ËÃ×Í ER-4 ¡Ô¨¡ÃÃÁ·Õè 9 : µÔ´µÑ§é ἧǧ¨ÃâÁ´ÙÅÃѺáʧÍÔ¹¿ÃÒàô 38kHz ¡Ô¨¡ÃÃÁ·Õè 10 : Í Ò¹¤ Ò¨Ò¡ÃÕâÁµ¤Í¹â·ÃÅ Easy Remote4 ¡Ô¨¡ÃÃÁ·Õè 11 : ËØè¹Â¹µìà¤Å×è͹·Õè´ Ç¡ÒäǺ¤ØÁ¨Ò¡ÃÕâÁµ¤Í¹â·ÃÅ º··Õè 7 Ëع ¹µ µÃǨ¨ÑºÇѵ¶ØẺäÁ ÊÁÑ ¼ÑÊ ...................................................................89 7.1 ËÅÑ¡¡Ò÷íÒ§Ò¹¢Í§ ZX-08 ἧǧ¨ÃµÃǨ¨ÑºÇѵ¶Ø´Ç ÂáʧÍÔ¹¿ÃÒàô ¡Ô¨¡ÃÃÁ·Õè 12 : µÔ´µÑ§é ἧǧ¨ÃµÃÇǨѺÇѵ¶Ø ¡Ô¨¡ÃÃÁ·Õè 13 : ·´Êͺ¡Ò÷íÒ§Ò¹¢Í§á¼§Ç§¨ÃµÃǨ¨ÑºÇѵ¶Ø ¡Ô¨¡ÃÃÁ·Õè 14 : Ëع ¹µ à¤Å×Íè ¹·ÕËè źËÅÕ¡Çѵ¶ØẺäÁ ÊÁÑ ¼ÑÊ º··Õè 8 Robo-PICA ¡Ñº¡ÒÃÇÑ´ÃÐÂзҧ´ ÇÂâÁ´ÙÅÇÑ´ÃÐÂзҧẺÍÔ¹¿ÃÒàô ................95 8.1 ¢ ÍÁÙÅàº×Íé §µ ¹¢Í§ GP2D120/GP2D12 âÁ´ÙŵÃǨ¨ÑºáÅÐÇÑ´ÃÐÂзҧ´ ÇÂáʧÍÔ¹¿ÃÒàô 8.2 ËÅÑ¡¡Ò÷íÒ§Ò¹¢Í§âÁ´ÙŵÃǨÇÑ´ÃÐÂзҧ´ ÇÂáʧÍÔ¹¿ÃÒàô ¡Ô¨¡ÃÃÁ·Õè 15 : µÔ´µÑ§é âÁ´ÙÅ GP2D120 á¡ Robo-PICA ¡Ô¨¡ÃÃÁ·Õè 16 : ¡ÒÃà¢Õ¹â»Ãá¡ÃÁà¾×Íè Í Ò¹¤ Ò¨Ò¡ GP2D120 áÊ´§¼Å·Õâè Á´ÙÅ LCD ¡Ô¨¡ÃÃÁ·Õè 17 : ËźËÅÕ¡ÊÔ§è ¡Õ´¢ÇÒ§´ Ç¡ÒÃÇÑ´ÃÐÂзҧ
6
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
7
º··Õè 1
á¹Ð¹íÒªÔ¹é Ê Ç¹áÅÐÍØ»¡Ã³ 㹡ÒÃÊà ҧËع ¹µ áÅСÒÃ㪠§Ò¹«Í¿µ áÇà ÊÒí ËÃѺ¾Ñ²¹Òâ»Ãá¡ÃÁ 㹺·¹Õ¨é йíÒàʹͶ֧¢ ÍÁÙÅã¹àº×Íé §µ ¹¢Í§ªÔ¹é Ê Ç¹µ Ò§æ µÅÍ´¨¹à¤Ã×Íè §Á×Í·Õ¹è Òí ÁÒ㪠㹡Òà Êà ҧËØ ¹Â¹µ Íѵâ¹ÁѵԢ¹Ò´àÅç¡·Õè¤Çº¤ØÁ¡Ò÷íÒ§Ò¹´ ÇÂäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC «Ö觵Ñ駪×èÍÇ Ò Robo-PICA â´ÂẠ§ÍÍ¡à» ¹ 4 Ê Ç¹¤×Í 1. ªÔ¹é Ê Ç¹¢Í§Ëع ¹µ Robo-PICA 2. à¤Ã×Íè §Á×Í·Õãè ª 㹡ÒÃÊà ҧËع ¹µ 3. á¹Ð¹íÒ¡ÒÃ㪠§Ò¹«Í¿µ áÇà ·Õè㪠㹡ÒþѲ¹Òâ»Ãá¡ÃÁ¤Çº¤ØÁ¡Ò÷íÒ§Ò¹¢Í§ËØ ¹Â¹µ
1.1 ªÔ¹é Ê Ç¹¢Í§Ëع ¹µ Robo-PICA ÁÕ·§Ñé ÊÔ¹é 3 ¡ÅØÁ ËÅÑ¡ ´Ñ§¹Õé
1.1.1 ªÔ¹é Ê Ç¹·Ò§¡Å
ªØ´à¿ ͧ¢Ñº¾Ã ÍÁÁÍàµÍÃ
¢Ø´»ÃСͺŠÍÊÒ¾ҹ ªØ´»ÃСͺ°Ò¹ »ÃСͺ´ Ç ἠ¹°Ò¹áÅÐªÔ¹é µ ;ÅÒʵԡẺ ÁØÁ©Ò¡, á¹ÇµÃ§, ÁØÁ» Ò¹
¢Ø´¹Íµ-Ê¡ÃÙ, àÊÒÃͧ, ¢ ͵ Í áÅÐ᡹·Í§àËÅ×ͧ¢¹Ò´µ Ò§æ
8
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
1.1.2 ªÔ¹é Ê Ç¹·Ò§ÍÔàÅç¡·Ã͹ԡÊ
ἧǧ¨ÃÊÇÔµª ἧǧ¨ÃµÃǨ¨Ñº Çѵ¶ØẺÍÔ¹¿ÃÒàô
RBX-877 ἧ¤Çº¤ØÁËÅÑ¡ âÁ´ÙÅÃѺáʧÍÔ¹¿ÃÒàô 38kHz ἧǧ¨ÃµÃǨ¨Ñº áʧÊз ͹ÍÔ¹¿ÃÒàô
ER-4 ÃÕâÁµ¤Í¹â·ÃÅ ÍÔ¹¿ÃÒàô
¡ÐºÐ¶ Ò¹ AA 4 ¡ ͹¾Ã ÍÁÊÒµ Í
âÁ´ÙÅ LCD ¢¹Ò´ 16 µÑÇÍÑ¡Éà 2 ºÃ÷Ѵ ẺÁÕä¿Ê ͧËÅѧ
1.1.3 ÍØ»¡Ã³ àÊÃÔÁ (¨íÒ˹ ÒÂᡨҡªØ´Áҵðҹ)
à«Íà âÇÁÍàµÍà ¾Ã ÍÁÅ ÍáÅÐÂÒ§
ªØ´à¿ ͧ¢ÑºÁÍàµÍà 4 ÍѵÃÒ·´
ẵàµÍÃÕè AA 4 ¡ ͹
ªØ´»ÃСͺᢹ GP2D120 âÁ´ÙÅÇÑ´ÃÐÂзҧ ´ ÇÂáʧÍÔ¹¿ÃÒàô
1.2 à¤Ã×Íè §Á×Í·Õãè ª 㹡ÒÃÊà ҧËع ¹µ
¤ÕÁµÑ´»Í¡ÊÒÂä¿
ÁÕ´¤ÑµàµÍÃ
䢤ǧ»ÅÒÂá©¡
¤ÍÁ¾ÔÇàµÍÃ
µè ´Ô µÑ§é Ãкº»¯ÔºµÑ ¡Ô ÒÃÇÔ¹â´ÇÊ 98SE ¢Ö¹é ä» ÁÕ¾Íà µÍ¹Ø¡ÃÁáÅоÍà µ¢¹Ò¹
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
9
1.3 «Í¿µ áÇà ÊÒí ËÃѺ¾Ñ²¹Òâ»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ ã¹ËØ ¹Â¹µ Robo-PICA ·Õè¨Ð·íÒ¡Ò÷´ÅͧÊà ҧã¹Ë¹Ñ§Ê×ÍàÅ Á¹Õé¤Çº¤ØÁ¡Ò÷íÒ§ÇÒ¹´ Ç äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´Ñ§¹Ñ鹨֧ÊÒÁÒöà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁ¡Ò÷íÒ§Ò¹´ ÇÂâ»Ãá¡ÃÁÀÒÉÒ áÍÊà«ÁºÅÕ ÀÒÉÒàºÊÔ¡â´Â㪠«Í¿µ áÇà àºÊÔ¡¤ÍÁä¿àÅÍà ªÇ  áÅÐÀÒÉÒ C «Ö§è ¡çµÍ §¾Ö§è «Í¿µ áÇà C ¤ÍÁä¾àÅÍà ઠ¹¡Ñ¹ Í ҧäáçµÒÁ ·Õè¹íÒÁÒá¹Ð¹íÒã¹·Õè¹Õéà» ¹¡ÒþѲ¹Òâ»Ãá¡ÃÁ¤Çº¤ØÁ¡Ò÷íÒ§Ò¹¢Í§ËØ ¹Â¹µ ´ ÇÂÀÒÉÒàºÊÔ¡ à¹×èͧ¨Ò¡à» ¹ÀÒÉÒ·Õè§ Òµ Í¡ÒÃàÃÔèÁµ ¹àÃÕ¹ÃÙ áÅз´Åͧ ´Ñ§¹Ñ鹨֧µ ͧ㪠«Í¿µ áÇà àºÊÔ¡¤ÍÁä¾àÅÍà ËÃ×Í«Í¿µ áÇà ÊÒí ËÃѺá»Å§â»Ãá¡ÃÁ·ÀÒÉÒàºÊÔ¡à» ¹ÃËÑÊà¤Ã×Íè §ËÃ×ÍáÁªÕ¹â¤ ´ áÅЫͿµ áÇà ·¹Õè ÂÔ Á㪠ÁÒ¡·ÕÊè ´Ø ¤×Í PICBASIC PRO ¤ÍÁä¾àÅÍà ÊíÒËÃѺ PICBASIC PRO ¤ÍÁä¾àÅÍà ·Õè¹íÒÁÒ㪠˹ѧÊ×ÍàÅ Á¹Õé¨Ðà» ¹ÃØ ¹·´Åͧ㪠ËÃ×Í PICBASIC PRO DEMO «Ö§è ÁÕ¢Í ¨íҡѴ㹡Ò÷íÒ§Ò¹¾Í¤Çà ᵠ·Ç Ò«Í¿µ áÇà ¹áÕé ¨¡¿ÃÕ¨Ò¡¼Ù¾ ² Ñ ¹Ò ¹Ñ¹è ¤×Í Microemgineering Lab ÊÒÁÒö´Òǹ âËÅ´ä´ ·Õè www.melabs.com áÅмٷ ÊÕè ¹ã¨Ãع ÊÁºÙó ÊÒÁÒöµÔ´µ ͡ѺµÑÇ᷹㹻ÃÐà·Èä·Â¤×Í ºÃÔÉ·Ñ ÍÔ¹â¹àǵտ àÍç¡à¾ÍÃÔàÁ¹µ ¨íÒ¡Ñ´ www.inex.co.th Í ҧäáçµÒÁâ»Ãá¡ÃÁµÑÇÍ ҧ¡Ò÷´Åͧà¡×ͺ·Ñé§ËÁ´ÊÒÁÒö·íÒ§Ò¹ä´ ¡Ñº PICBASIC PRO ¤ÍÁä¾àÅÍÃ Ã¹Ø Demo ¹ÕÍé  ҧäÁ Á»Õ ËÒ ÊíÒËÃѺ¼Ù· µÕè Í §¡Ò÷ÃÒºÃÒÂÅÐàÍÕ´¢Í§¡Ò÷íÒ§Ò¹ áÅСÒÃà¢Õ¹â»Ãá¡ÃÁÀÒÉÒàºÊÔ¡ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC â´Â㪠PICBASIC PRO ¤ÍÁ ä¾àÅÍà ÊÒÁÒÃ¶Í Ò¹ä´ à¾ÔÁè àµÔÁ¨Ò¡Ë¹Ñ§Ê×Í àÃÕ¹ÃÙá ÅÐ㪠§Ò¹ PICBASIC PRO ¤ÍÁä¾àÅÍà à¢Õ¹ â»Ãá¡ÃÁÀÒÉÒàºÊÔ¡¤Çº¤ØÁäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ¨Ñ´¾ÔÁ¾ â´ÂºÃÔÉ·Ñ ÍÔ¹â¹àǵտ àÍç¡à¾ÍÃÔàÁ¹µ ¨íÒ¡Ñ´
1.3.1 PicBasic Pro Compiler àÇÍà ª¹Ñ ·´Åͧ㪠§Ò¹ (Demo version) à¹×Íè §¨Ò¡ PICBASIC PRO ¤ÍÁä¾àÅÍà ã¹àÇÍà ª¹Ñ ·Õãè ª §Ò¹ä´ ÊÁºÙó ¹¹Ñé ÁÕÃÒ¤Ò¤ ͹¢ Ò§ÊÙ§ ·Ò§ Microengineering Labs ¨Ö§ä´ ÍÍ¡àÇÍà ª¹Ñ ·´ÅͧÍÍ¡ÁÒãË ãª §Ò¹ä´ ¿ÃÕ à¾×Íè à» ´âÍ¡ÒÊãË ¼ÊÙ ¹ã¨ ä´ ·´Åͧ㪠§Ò¹ â´ÂÁÕ¢ ͨíÒ¡Ñ´´Ñ§¹Õé l
ÊÒÁÒö¤ÍÁä¾Å â»Ãá¡ÃÁÀÒÉÒàºÊÔ¡ä´ 31 ºÃ÷Ѵ äÁ ¹ºÑ ËÁÒÂà˵ØáÅкÃÃ·Ñ´Ç Ò§
l ãª ä´ ¡º Ñ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC àºÍà PIC16F627(A), PIC16F628(A), PIC16F84(A),
PIC16F870, PIC16F871 , PIC16F872 , PIC16F873(A), PIC16F874(A), PIC16F876(A) áÅÐ PIC16F877(A) l
äÁ ÊÒÁÒöàÃÕ¡ä¿Å ࢠÒÁÒ¼¹Ç¡´ ÇÂä´àÃ硵տ INCLUDE ä´
10
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
1.3.1.1 Ê Ç¹»ÃСͺáÅСÒ÷íÒ§Ò¹¢Í§ PICBASIC PRO ¤ÍÁä¾àÅÍà ˹ Ò·Õ¢è ͧ PICBASIC PRO ¤ÍÁä¾àÅÍà ¤Í× á»Åâ»Ãá¡ÃÁÀÒÉÒàºÊÔ¡ (.bas) à» ¹ÀÒÉÒà¤Ã×Íè § (.hex) ËÃ×ÍáÁªÕ¹â¤ ´ ¡Ò÷íÒ§Ò¹¢Í§ PICBASIC PRO ¤ÍÁä¾àÅÍà à¾×Íè ãË ä´ áÁªÕ¹â¤ ´ÁÕ´§Ñ ¹Õé 1. ¹íÒâ»Ãá¡ÃÁÀÒÉÒàºÊÔ¡ÁÒá»Å§à» ¹ÀÒÉÒáÍÊà«ÁºÅÕ ä´ ¼ÅÅѾ¸ à» ¹ä¿Å .asm 2. ·íÒ¡ÒÃáÍÊà«ÁàºÅÍà â»Ãá¡ÃÁÀÒÉÒáÍÊà«ÁºÅÕ ä´ ¼ÅÅѾ¸ à» ¹ä¿Å .hex ´Ñ§¹Ñ¹é Ê Ç¹»ÃСͺ·ÕÊè Òí ¤ÑÁÒ¡¢Í§ PICBASIC PRO ¤ÍÁä¾àÅÍà ¤Í× Ê Ç¹á»Å§ÀÒÉÒàºÊÔ¡ à» ¹áÍÊà«ÁºÅÕ â´ÂÀÒÂã¹ PICBASIC PRO ¤ÍÁä¾àÅÍà ¨ÐÁÕµÇÑ á»ÅÀÒÉÒáÍÊà«ÁºÅÕ 2 µÑǤ×Í PM (PICmicro Macro assembler «Ö§è à» ¹¢Í§ Microengineering Labs àͧ ¡Ñº MPASM ¢Í§ Microchip â´Â»¡µÔËÃ×ͤ ÒµÑ§é µ ¹·Õ¡è Òí ˹´ÁҡѺµÑǤÍÁä¾àÅÍà ¨ÐàÅ×͡㪠PM à» ¹ËÅÑ¡ ¡Ãкǹ¡ÒÃá»ÅËÃ×ͤÍÁä¾Å ¢Í§ PICBASIC PRO ¤ÍÁä¾àÅÍà ¨Ð´íÒà¹Ô¹¡ÒÃä»ã¹¤ÃÒÇ à´ÕÂǡѹµÑé§áµ á»ÅÀÒÉÒàºÊÔ¡à» ¹áÍÊà«ÁºÅÕ áÅШҡÀÒÉÒáÍÊà«ÁºÅÕà» ¹áÁªÕ¹â¤ ´ ä´ à» ¹ä¿Å .hex à¾×Íè ¹íÒä»â»Ãá¡ÃÁŧã¹äÁâ¤Ã¤Í¹â·ÃÅàÅÍà µÍ ä»
1.3.1.2 ¤íÒʧǹ¢Í§ PICBASIC PRO ¤ÍÁä¾àÅÍà ËÁÒ¶֧ ¤íÒËÃ×Í¢ ͤÇÒÁ·Õäè Á ÊÒÁÒö¹íÒÁÒ㪠㹡ÒÃµÑ§é ª×Íè µÑÇá»Ãã¹â»Ãá¡ÃÁÀÒÉÒàºÊÔ¡·Õè 㪠PICBASIC PRO ¤ÍÁä¾àÅÍà 㹡ÒÃá»Å «Ö§è ¡ç¤Í× ª×Íè ¤íÒÊѧè áÅоÒÃÒÁÔàµÍà ·àÕè ¡ÕÂè Ç¢ ͧ㹤íÒÊѧè àÃÕ§ ÅíҴѺµÒÁµÑÇÍÑ¡ÉÃÀÒÉÒÍѧ¡ÄÉä´ ´Ñ§¹Õé µÑÇÍÑ¡Éà A ABS
ADCIN
AND
ANDNOT
ASM
AUXIO
BANK1 BANK9 BIN BIN8 BIN16
BANK2 BANK10 BIN1 BIN9 BIT
BANK3 BANK11 BIN2 BIN10 BRANCH
BANK4 BANK12 BIN3 BIN11 BRANCHL
BANK5 BANK13 BIN4 BIN12 BUTTON
BANK6 BANK14 BIN5 BIN13 BYTE
CASE
CLEAR
CLEARWDT
CON
COS
COUNT
DCD DEC5
DEBUG DEFINE
DEBUGIN DIG
DEC DISABLE
DEC1 DIV32
DEC2 DTMFOUT
ELSE
ENABLE
END
ENDASM
ENDIF
ERASECODE EXT
µÑÇÍÑ¡Éà B BANK0 BANK8 BANKA BIN7 BIN15
BANK7 BANK15 BIN6 BIN14
µÑÇÍÑ¡Éà C CALL
µÑÇÍÑ¡Éà D DATA DEC4
DEC3
µÑÇÍÑ¡Éà E EEPROM
µÑÇÍÑ¡Éà F FOR
FREQOUT
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
11
µÑÇÍÑ¡Éà G GET
GOSUB
GOTO
HEX1 HSEROUT
HEX2
HEX3
HEX4
HEX5
HIGH
HPWM
I2CWRITE IBIN7 IBIN15 IF INPUT ISBIN5 ISBIN13 ISDEC4
IBIN IBIN8 IBIN16 IHEX INTERRUPT ISBIN6 ISBIN14 ISDEC5
IBIN1 IBIN9 IDEC IHEX1 IS ISBIN7 ISBIN15 ISHEX
IBIN2 IBIN10 IDEC1 IHEX2 ISBIN ISBIN8 ISBIN16 ISHEX1
IBIN3 IBIN11 IDEC2 IHEX3 ISBIN1 ISBIN9 ISDEC ISHEX2
IBIN4 IBIN12 IDEC3 IHEX4 ISBIN2 ISBIN10 ISDEC1 ISHEX3
IBIN5 IBIN13 IDEC4 IHEX5 ISBIN3 ISBIN11 ISDEC2 ISHEX4
LCDOUT
LET
LIBRARY
LOOKDOWN
LOOKDOWN2
LOOKUP
LOOKUP2
µÑÇÍÑ¡Éà H HEX HSERIN
µÑÇÍÑ¡Éà I I2CREAD IBIN6 IBIN14 IDEC5 INCLUDE ISBIN4 ISBIN12 ISDEC3 ISHEX5
µÑÇÍÑ¡Éà L LCDIN LOW
µÑÇÍÑ¡Éà M MAX
MIN
MOD
NCD
NEXT
NOT
ON
OR
ORNOT
OUTPUT
OWIN
OWOUT
PAUSEUS POLLRUN
PEEK POLLWAIT
PEEKCODE POT
POKE PULSIN
POKECODE PULSOUT
POLLIN PUT
POLLMODE PWM
RCTIME REVERSE
READ
READCODE
REM
REP
RESUME
RETURN
SBIN1 SBIN9 SDEC SERIN2 SHEX5 STEP
SBIN2 SBIN10 SDEC1 SEROUT SHIFTIN STOP
SBIN3 SBIN11 SDEC2 SEROUT2 SHIFTOUT STR
SBIN4 SBIN12 SDEC3 SHEX SIN SWAP
SBIN5 SBIN13 SDEC4 SHEX1 SKIP SYMBOL
SBIN6 SBIN14 SDEC5 SHEX2 SLEEP SYSTEM
SBIN7 SBIN15 SELECT SHEX3 SOUND
THEN
TO
TOGGLE
USBIN
USBINIT
USBOUT
WORD
WRITE
WRITECODE
µÑÇÍÑ¡Éà N NAP
µÑÇÍÑ¡Éà O OFF
µÑÇÍÑ¡Éà P PAUSE POLLOUT
µÑÇÍÑ¡Éà R RANDOM REV
µÑÇÍÑ¡Éà S SBIN SBIN8 SBIN16 SERIN SHEX4 SQR
µÑÇÍÑ¡Éà T µÑÇÍÑ¡Éà U µÑÇÍÑ¡Éà V µÑÇÍÑ¡Éà W WAIT
VAR
WAITSTR
WEND
WHILE
XOR
XORNOT
XOUT
µÑÇÍÑ¡Éà X XIN
12
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
1.3.1.3 ¡ÒõԴµÑ§é PICBASIC PRO ¤ÍÁä¾àÅÍà Ãع Demo â»Ãá¡ÃÁ PICBASIC PRO Ãع DEMO ¨ÐÁÕãË ´Òǹ âËÅ´¿ÃÕ·àÕè ǻ䫵 www.melabs.com ËÃ×Í´Ùä´ ¨Ò¡«Õ´ÃÕ ÍÁ·Õ¨è ´Ñ ÁҾà ÍÁ¡ÑºªØ´Ëع ¹µ Robo-PICA·íÒ¡ÒäѴÅÍ¡â»Ãá¡ÃÁ·Ñé§â¿Åà´Íà ¢Í§ PICBASIC PRO DEMO ä»ÂѧÎÒà ´´ÔÊ¡ (á¹Ð¹íÒãË ¹íÒä»äÇ ·Õèä´Ã¿ C:) â´Â㪠¤íÒÊÑè§ Copy áÅÐ Paste à» ¹ÍѹàÊÃç¨ÊÔ¹é ¡ÒõԴµÑ§é â»Ãá¡ÃÁ PICBASIC PRO DEMO
13.1.4 ¡ÒõԴµÑ§é PICBASIC PRO Ãع Áҵðҹ PICBASIC PRO ¤ÍÁä¾àÅÍÃ Ã¹Ø Áҵðҹ໠¹Ãع ·Õ·è Òí §Ò¹ä´ Í ҧÊÁºÙó ÊÒÁÒöµÔ´µ ÍÊÑ§è «×éÍâ»Ãá¡ÃÁä´ ¨Ò¡ºÃÔÉÑ· ÍÔ¹â¹àǵտ àÍç¡à¾ÍÃÔàÁ¹µ ¨íÒ¡Ñ´ «Ö觡ÒõԴµÑ駨ÐàËÁ×͹¡ÑºÃØ ¹ Demo ¹Ñ¹è ¤×Í ¤Ñ´ÅÍ¡ä¿Å â»Ãá¡ÃÁ¨Ò¡á¼ ¹´ÔÊ¡ â»Ãá¡ÃÁ PICBASIC PRO Compiler ä»ÂѧÎÒà ´´ÔÊ¡ ã¹ à¤Ã×èͧ¤ÍÁ¾ÔÇàµÍà ·Õèµ Í§¡ÒõԴµÑé§
1.3.1.5 ¡ÒÃ㪠§Ò¹ PICBASIC PRO ¤ÍÁä¾àÅÍà º¹Ãкº»¯ÔºµÑ ¡Ô ÒÃÇÔ¹â´ÇÊ â´Âá· ¨ÃÔ§áÅ Ç PICBASIC PRO ¤ÍÁä¾àÅÍà ໠¹«Í¿µ áÇà ··Õè Òí §Ò¹º¹Ãкº»¯ÔºµÑ ¡Ô ÒôÍÊ áÅÐÊÒÁÒöàÃÕ¡㪠§Ò¹ã¹áººà¢Õ¹¤íÒÊѧè àÃÕ§ºÃ÷ѴËÃ×Í command line ¹Ñ¹è ¤×ͼÙã ª §Ò¹µ ͧ¨´¨íÒ ¾ÒÃÒÁÔàµÍà »ÃСͺãË ä´ ´Ç  «Ö§è ÍÒ¨äÁ Êдǡ¹Ñ¡áÅÐã¹·Õ¹è ¨Õé ÐäÁ ¹Òí ÁÒàÊ¹Í ËÒ¡µ ͧ¡Ò÷ÃÒºÃÒ ÅÐàÍÕ´ÊÒÁÒö´Ùä´ ¨Ò¡ä¿Å ¤ÁÙ Í× ¡ÒÃ㪠§Ò¹ PICBASIC PRO ÀÒÉÒÍѧ¡ÄÉ (´Òǹ âËÅ´ä´ ¨Ò¡ www.melabs.com áÅÐÁÕÁҾà ÍÁ¡Ñº«Í¿µ áÇà àÁ×Íè ¨Ñ´«×Íé ã¹Ãع ÊÁºÙó ) à¹×Íè §¨Ò¡» ¨¨Øº¹Ñ Ãкº»¯ÔºµÑ ¡Ô Òâͧ¤ÍÁ¾ÔÇàµÍà ÊÇ ¹ãË à» ¹ÇÔ¹â´ÇÊ ´Ñ§¹Ñ¹é 㹡ÒÃ㪠§Ò¹ PICBASIC PRO ¤ÍÁä¾àÅÍà ¡ºÑ Ãкº»¯ÔºµÑ ¡Ô ÒÃÇÔ¹â´ÇÊ ãË ä´ ÃºÑ ¤ÇÒÁÊдǡ¨Ö§µ ͧ㪠§Ò¹Ã ÇÁ¡Ñº «Í¿µ áÇà ¨Ñ´¡ÒõԴµ ͡Ѻ¼Ù 㪠§Ò¹·ÕèÁÕ˹ ÒµÒã¹áºº¡ÃÒ¿ ¡ËÃ×ͺҧ·ÕàÃÕÂ¡Ç Ò IDE (Integrated Development Environment) ÊíÒËÃѺ PICBASIC PRO ¤ÍÁä¾àÅÍà Á¼Õ ¨Ù ´Ñ ·íÒ«Í¿µ áÇÃ Å¡Ñ É³Ð¹Õàé ¼Â á¾Ã ÍÂÙ 2 µÑǤ×Í Code Designer ¢Í§ CSMicro Systems áÅÐ Microcode Studio ¢Í§ Mecanique áÅзÕèá¹Ð¹íÒãË ãª ã¹·Õè¹Õé¤×Í Microcode Studio à¹×Íè §¨Ò¡ÊÒÁÒö´Òǹ âËÅ´ÁÒ㪠§Ò¹ä´ ¿ÃÕ áÅÐÊÒÁÒÃ¶ãª ä´ ¡Ñº PICBASIC PRO ¤ÍÁä¾àÅÍà ·Ñé§ã¹ÃØ ¹ÊÁºÙó áÅÐÃØ ¹·´Åͧ㪠¹Í¡¨Ò¡¹Ñé¹ Microcode Studio ÂѧÁÕ˹ ÒµÒáÅÐÇÔ¸¡Õ ÒÃ㪠§Ò¹ µÅÍ´¨¹àÁ¹Ù¤Òí ÊÑ§è ·Õãè ª §Ò¹§ Ò ໠¹ÁԵáѺ¼Ùã ª §Ò¹ÊÙ§ (friendly user) áÁ ÇÒ ¨ÐÁÕ¢Í ¨íҡѴ㹡Ò÷íÒ´Õº¡Ñ à¡Íà «§Öè ¨Ðµ ͧ¨Ñ´«×Íé ã¹Ãع Plus ¡çµÒÁ áµ ÊÒí ËÃѺÃع Áҵðҹ¡çÊÒÁÒö㪠§Ò¹ä´ ´Õ ¡ÒõԴµÑ§é à¾×Íè 㪠§Ò¹ PICBASIC PRO ¤ÍÁä¾àÅÍà ¡ºÑ Microcode Studio ¡çÊдǡ à¾ÃÒÐ Microcode Studio ÊÒÁÒö¤ ¹â¿Åà´Íà ·µÕè ´Ô µÑ§é PICBASIC PRO ¤ÍÁä¾àÅÍÃ ä´ àͧ
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
13
1.3.2 Microcode Studio «Í¿µ áÇà ¾² Ñ ¹Òâ»Ãá¡ÃÁÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC â´Â㪠ÃÇ Á¡Ñº¤ÍÁä¾àÅÍà Microcode Studio à» ¹¢Í§ Mecanique »ÃÐà·ÈÍѧ¡ÄÉ ÊÒÁÒö´Òǹ âËÅ´ä´ ¿ÃÕ·Õè www.mecanique.com â´Â¡ÒÃ㪠§Ò¹¨Ðµ ͧ㪠à ÇÁ¡Ñº PICBASIC PRO ¤ÍÁä¾àÅÍà ·Ñé§ã¹ÃØ ¹ ÊÁºÙó áÅÐÃع Demo
1.3.2.1 ¡ÒõԴµÑ§é â»Ãá¡ÃÁ Microcode Studio ઠ¹à´ÕÂǡѺ PICBASIC PRO ¤ÍÁä¾àÅÍÃ Ã¹Ø Demo â»Ãá¡ÃÁ Microcode Studio ÊÒÁÒö àÅ×Í¡µÔ´µÑé§ä´ ¨Ò¡ä¿Å mcstudio.exe «Öè§ÍÂ٠㹫մÕÃÍÁ·Õè¨Ñ´ÁҾà ÍÁ¡ÑºªØ´ËØ ¹Â¹µ Robo-PICA ã¹ â¿Åà´Íà PIC\Tools\MicroCode Studio 2.1.0.1 (ËÁÒÂàÅ¢àÇÍà ªÑ¹·Õèµ Í· ÒÂÍÒ¨à»ÅÕè¹á»Å§ä´ ) ãË ´ºÑ àºÔŤÅÔ¡·Õäè ¿Å mcstudio.exe ã¹â¿Åà´Íà ¹àÕé ¾×Íè àÃÔÁè ¡ÒõԴµÑ§é ¡´»ØÁ µÍºÃѺµÒÁ¢Ñ¹é µÍ¹µ Ò§æ ¨¹¡ÒõԴµÑé§àÊÃç¨ÊÁºÙó àÁ×è͵ ͧ¡ÒÃÃѹâ»Ãá¡ÃÁ Microcode Studio ÊÒÁÒö价Õè»Ø Á Start à Program à Microcode Studio à Microcode Studio ¨Ð»ÃÒ¡¯Ë¹ Òµ Ò§àÃÔÁè µ ¹·íÒ§Ò¹¢Í§ Microcode Studio ´Ñ§ã¹ÃÙ»·Õè 1-1
ÃÙ»·Õè 1-1 ˹ Òµ Ò§ËÅÑ¡ÊíÒËÃѺàÃÔÁè µ ¹¡Ò÷íÒ§Ò¹¢Í§ Microcode Studio
14
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
ÃÙ»·Õè 1-2 ˹ Òµ Ò§ PICBasic Option 㪠ÊÒí ËÃѺ¡íÒ˹´ ËÃ×ͤ ¹ËÒà¾×Íè µíÒá˹ §¢Í§â¿Åà´Íà ËÃ×Íä´àÃ硵ÍÃÕè ÃÙ»·Õè 1-3 ˹ Òµ Ò§¤ ¹ËÒâ¿Åà´Íà ¢Í§â»Ãá¡ÃÁ PICBASIC PRO ´ ǵ¹àͧ ·Õµè ´Ô µÑ§é PICBASIC PRO ¤ÍÁä¾àÅÍÃ
1.3.2.2 ¡ÒáíÒ˹´µíÒá˹ §ãË PICBASIC PRO à¾×Íè ãË Microcode Studio ·ÃÒºµíÒá˹ §µÔ´µÑ§é ¢Í§ PICBASIC PRO ¤ÍÁä¾àÅÍà Ãع Demo ¨Ðµ ͧÃкصÒí á˹ §àËÅ Ò¹Õ·é Õè àÁ¹Ù View à PICBasic Option ¢Í§ Microcode Studio â´Â˹ Òµ Ò§ PICBasic Option áÊ´§ã¹ÃÙ»·Õè 1-2 㹡óյ´Ô µÑ§é PICBASIC PRO ¤ÍÁä¾àÅÍÃ Ã¹Ø Demo (ËÃ×ÍÁҵðҹ)äÇ ã¹ÎÒà ´´ÔÊ¡ áÅ Ç ÊÒÁÒö¡´»Ø Á à¾×èÍãË ¤ ¹ËÒâ´ÂÍѵâ¹ÁÑµÔ áµ ã¹¡Ã³Õ¢ ÍÁÙÅã¹ÎÒà ´´ÔÊ¡ ÁÕÁÒ¡ à¾×Íè ¡íÒ˹´µíÒá˹ §¢Í§â»Ãá¡ÃÁ´ Ç ÍÒ¨¨ÐàÊÕÂàÇÅÒ㹡Òä ¹ËÒ ÊÒÁÒö¡´»ØÁ µ¹àÍ§ä´ â´ÂàÁ×Íè ¡´»ØÁ ¹Õé ¨Ð»ÃÒ¡¯Ë¹ Òµ Ò§´Ñ§ÃÙ»·Õè 1-3 à¾×Íè ¤ ¹ËÒä´àáµÍÃÕËè Ã×Íâ¿Åà´Íà ·µÕè ´Ô µÑ§é PICBASIC PRO ¤ÍÁä¾àÅÍà ´Ç µ¹àͧ àÁ×Íè ¾ºáÅ Ç ãË ¡´»ØÁ à¾×Íè Â×¹Âѹ ËÁÒÂà赯 ¼Ùã ª §Ò¹ÊÒÁÒöµÃǨÊͺ¤ÇÒÁ¶Ù¡µ ͧ¢Í§¡ÒáíÒ˹´µíÒá˹ §¤ÍÁä¾àÅÍÃ ä´ â´Â¡ÒÃà» ´â»Ãá¡ÃÁ µÑÇÍ ҧ¢Ö¹é ÁÒ ¡´»ØÁ F9 à¾×Íè ¤ÍÁä¾Å â»Ãá¡ÃÁ ãË Ê§Ñ à¡µ·Õáè ¶ºáÊ´§Ê¶Ò¹Ð´ ҹŠҧ Ëҡᨠ§¢ ͤÇÒÁ unable to find compiler (ÃÙ» (¡)) áÊ´§Ç Ò ¡ÒÃÃкصÒí á˹ §ÂѧäÁ ¶¡Ù µ ͧ ãË á¡ ä¢ Ëҡᨠ§¢ ͤÇÒÁ Success : xx words used. (ÃÙ» (¢)) áÊ´§Ç Ò ·Ø¡Í ҧ¶Ù¡µ ͧ
(¡) ʶҹÐËÒ PICBASIC PRO ¤ÍÁä¾àÅÍà äÁ ¾º
(¢) ʶҹСÒäÍÁä¾Å àÊÃç¨ÊÁºÙó
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
15
1.3.2.3 Ê Ç¹»ÃСÍÔºáÅФسÊÁºÑµÔ·Õè¹ Òʹ㨢ͧ Microcode Studio
Microcode Studio à» ¹â»Ãá¡ÃÁÊà ҧÊÀÒÇÐáÇ´Å ÍÁ¡ÒÃà¢Õ¹â»Ãá¡ÃÁ´ ÇÂÀÒÉÒàºÊÔ¡ ÊíÒËÃѺ PICBASIC PRO ¤ÍÁä¾àÅÍà ·íÒãË ¡ÒÃà¢Õ¹â»Ãá¡ÃÁ¤Çº¤ØÁäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´ ÇÂÀÒÉÒàºÊÔ¡¹Ñé¹à» ¹àÃ×èͧ§ Ò â´ÂÁÕÊ Ç¹»ÃСͺ·ÕèÊíҤѴѧ¹Õé
1. ¾×¹é ·Õàè ¢Õ¹â»Ãá¡ÃÁ ¨Ð㪠ÊáÕ ÅФÇÒÁ˹ҢͧµÑÇÍÑ¡ÉÃà» ¹µÑÇẠ§á¡¤íÒÊѧè ÅÒàºÅ ¤ÍÁ àÁ¹µ áÅТ ÍÁÙŵ Ò§æ ÍÍ¡¨Ò¡¡Ñ¹ ·íÒãË ¡Ò÷íÒ¤ÇÒÁࢠÒ㨡Ѻâ»Ãá¡ÃÁ·íÒä´ § Ò 2. ˹ Òµ Ò§ Code Explorer à¾×Íè ¡ÃÐâ´´ä»ÂѧµíÒá˹ §ÅÒàºÅ µÑÇá»Ã ¤ Ò¤§·Õµè Ò § æ ä´ Í ҧ ÃÇ´àÃçÇ ·Ñé§ÂѧÊÒÁÒöᨡᨧ¡ÒáíÒ˹´µíÒá˹ §ÅÒàºÅËÃ×͵ÑÇá»Ãµ Ò§ æ ä´ § ÒÂÍÕ¡´ Ç ˹ Òµ ҧࢠҶ֧ËÑÇ¢ ÍËÅÑ¡¢Í§ ᶺàÁ¹Ù â»Ãá¡ÃÁ (Code Explorer) ᶺà¤Ã×Íè §Á×Í
ᶺáÊ´§Ê¶Ò¹Ð (Status Bar)
ᶺª×Íè â»Ãá¡ÃÁ·Õàè » ´äÇ áÅ Ç
¾×¹é ·Õàè ¢Õ¹â»Ãá¡ÃÁÀÒÉÒàºÊÔ¡
ÃÙ»·Õè 1-4 áÊ´§Ê ǹ»ÃСͺ·ÕÊè Òí ¤Ñã¹Ë¹ Òµ Ò§ËÅÑ¡¢Í§ Microcode Studio
˹ Òµ Ò§áÊ´§¢ ͼԴ¾ÅÒ´
16
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
3. ˹ Òµ Ò§áÊ´§¢ ͼԴ¾ÅÒ´ àÁ×èͤÍÁä¾Å â»Ãá¡ÃÁ ÍÒ¨à¡Ô´¢ ͼԴ¾ÅÒ´¢Öé¹ä´ ˹ Òµ Ò§¹Õé ¨ÐáÊ´§¢ ͼԴ¾ÅÒ´µ Ò§æ ¢Ö¹é ÁÒ ¼Ùã ª §Ò¹ÊÒÁÒö㪠àÁÒÊ ¤ÅÔ¡·Õºè Ã÷ѴàËŠҹѹé â»Ãá¡ÃÁ¨ÐáÊ´§ ᶺ¢Öé¹·ÕèºÃ÷Ѵ·Õè¼Ô´¾ÅÒ´ ·íÒãË ÊÒÁÒöࢠÒä»á¡ ä¢â»Ãá¡ÃÁä´ § Ò 4. ᶺáÊ´§Ê¶Ò¹Ð áÊ´§´ ÇÂÊÑÅѡɳ û٠LED ÊÕá´§áÅÐà¢ÕÂÇ à¾×Íè ãË Ê§Ñ à¡µä´ §Ò  5. ᶺà¤Ã×èͧÁ×Í ÃÇÁ¤íÒÊÑè§á¡ ä¢áÅФÍÁä¾Å â»Ãá¡ÃÁäÇ ·íÒãË ¼Ù àÃÔèÁµ ¹ÊÒÁÒö㪠§Ò¹ â»Ãá¡ÃÁä´ Í ҧÃÇ´àÃçÇ 6. ˹ Òµ Ò§Ê×Íè ÊÒâ ÍÁÙÅ͹ءÃÁ (Serial Communications Window) 㪠ªÇ ÂáÊ´§¼Å¢ ÍÁÙŠ͹ءÃÁ·ÕÊè § ÁÒ¨Ò¡äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ¼Ò ¹¤íÒÊѧè DEBUG ËÃ×Í SEROUT â´ÂÊÒÁÒö¡íÒ˹´¤ Ò Áҵðҹ¡ÒÃÊ×Íè ÊÒõ Ò§ æ ä´ Í ҧÍÔÊÃÐ ¹Í¡¨Ò¡¹Ñé¹ÂѧÁդسÊÁºÑµÔ¾ÔàÈÉÍ×è¹æ ·Õè¹ Òʹ㨠l à» ´Ë¹ Òµ Ò§«Íà Êâ»Ãá¡ÃÁä´ ËÅÒÂ˹ Òµ Ò§à¾×Í è á¡ ä¢ ËÃ×Í´ÙÃÒÂÅÐàÍÕ´¾Ã ÍÁ¡Ñ¹ä´ l àÅ×Í¡ÃٻẺ¡ÒäÍÁä¾Å 仨¹¶Ö§¡ÒÃâ»Ãá¡ÃÁ¢ ÍÁÙÅŧäÁâ¤Ã¤Í¹â·ÃÅàÅÍÃ ä´ Í ҧ ËÅÒ¡ËÅÒ áÅÐËÅѧ¨Ò¡¡íÒ˹´¤ ÒáÅ Ç ÊÒÁÒöÊÑ觧ҹ¨Ò¡¤íÒÊÑè§à´ÕÂÇà¾×èͤÍÁä¾Å áÅÐâ»Ãá¡ÃÁ l ÊíÒËÃѺ¼Ùã ª §Ò¹·Õãè ª §Ò¹Ã ÇÁ¡ÑººÍà ´ ICD (In Circuit Debugger) ¨ÐÁÕà¤Ã×Í è §Á×ÍÊíÒËÃѺ ¡ÒÃÃѹâ»Ãá¡ÃÁẺ«Ô§à¡ÔÅÊàµç»à¾×èʹټšÒ÷íÒ§Ò¹¢Í§â»Ãá¡ÃÁä´
1.3.2.4 àÁ¹Ù㪠§Ò¹¢Í§â»Ãá¡ÃÁ Microcode Studio àÁ¹Ù File NEW (Ctrl+N) Êà ҧ˹ Òµ Ò§ãËÁ ÊÒí ËÃѺ¡ÒÃà¢Õ¹â»Ãá¡ÃÁ Open (Ctrl+O) à» ´«Íà Êâ»Ãá¡ÃÁ·Õºè ¹Ñ ·Ö¡äÇ áÅ Ç¡ ͹˹ Ò¹Õé Save (Ctrl+S) ºÑ¹·Ö¡«Íà Êâ»Ãá¡ÃÁ Save As 㪠º¹Ñ ·Ö¡ä¿Å ŧ´ÔÊ¡ ẺÃкØâ¿Åà´Íà áÅЪ×Íè ä¿Å ãËÁ Save All 㪠º¹Ñ ·Ö¡ä¿Å ·§Ñé ËÁ´·Õàè » ´ÍÂÙ Close 㪠»´ ˹ Òµ Ò§«Íà Êâ»Ãá¡ÃÁ·Õáè Í¡µÕ¿ÍÂÙã ¹¢³Ð¹Ñ¹é Close All » ´Ë¹ Òµ Ò§«Íà Êâ»Ãá¡ÃÁ·Ñ§é ËÁ´ Reopen 㪠໠´«Íà Êâ»Ãá¡ÃÁÅ ÒÊØ´·ÕÁè ¡Õ ÒÃà» ´ãª §Ò¹¡ ͹˹ Ò¹Õé Print Setup 㪠¡Òí ˹´¤ Òà¤Ã×Íè §¾ÔÁ¾ à¾×Íè ¾ÔÁ¾ «Íà ´â»Ãá¡ÃÁ Print Preview ÊíÒËÃѺáÊ´§¼Å¡ÒþÔÁ¾ ·ËÕè ¹ Ҩ͡ ͹¾ÔÁ¾ Print ÊíÒËÃѺ¾ÔÁ¾ «Íà Êâ»Ãá¡ÃÁÍÍ¡·Ò§à¤Ã×Íè §¾ÔÁ¾ Exit ÍÍ¡¨Ò¡â»Ãá¡ÃÁ Microcode Studio
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
àÁ¹Ù Edit
Undo (Ctrl+Z) 㪠¡àÅÔ¡¡ÒáÃзíÒ·Õ·è Òí 仡 ͹˹ Ò¹Õé Redo (Shift+Ctrl+Z) 㪠·Òí «éÒí ¤íÒÊÑ§è ·Õ¶è ¡Ù Â¡àÅÔ¡¡ ͹˹ Ò¹Õé Cut (Ctrl+X) µÑ´¢ ͤÇÒÁ Copy (Ctrl+C) ¤Ñ´ÅÍ¡¢ ͤÇÒÁ Paste (Ctrl+V) ÇÒ§¢ ͤÇÒÁã¹¾×¹é ·Õè ·Õ¡è Òí ˹´ Delete (Ctrl+Del) ź¢ ͤÇÒÁ Select All (Ctrl+A) àÅ×Í¡¢ ͤÇÒÁ·Ñ§é ËÁ´ Find (Ctrl+F) ¤ ¹ËÒ¢ ͤÇÒÁ Replace (Ctrl+R) ¤ ¹ËÒáÅ Çá·¹·Õ´è Ç Â¢ ͤÇÒÁ·Õ¡è Òí ˹´ Find Next (F3) 㪠¤¹ ËÒ¢ ͤÇÒÁ¶Ñ´ä»
àÁ¹Ù View Code Explorer à» ´ËÃ×Í» ´Ë¹ Òµ Ò§ Code Explorer ÊíÒËÃѺ ¡ÒÃà¢ Ò¶Ö§Ê Ç¹µ Ò§ æ ¢Í§â»Ãá¡ÃÁä´ â´Â§ Ò Serial Communications Window (F4) 㪠໠´Ë¹ Òµ Ò§Ê×Íè ÊÒà ¢ ÍÁÙÅ͹ءÃÁ ´Ñ§áÊ´§ã¹ÃÙ» ÊÒÁÒö¡íÒ˹´ÃÙ»áººä´ µÒÁµ ͧ¡ÒÃ
Toolbars àÅ×Í¡áÊ´§á¶ºà¤Ã×Íè §Á×Í·Õ¡è Òí ˹´·ÕËè ¹ Ò¨Í â´Âᶺ à¤Ã×Íè §Á×͵ Ò§ æ ÁÕ´§Ñ ¹Õé Standard : à¤Ã×Íè §Á×Í¾×¹é °Ò¹ ä´ á¡ Êà ҧä¿Å ãËÁ (New), à» ´ ä¿Å ·ÁÕè ÍÕ ÂÙá Å Ç (Open) ËÃ×ͺѹ·Ö¡ä¿Å (Save) à» ¹µ ¹
l
17
18
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
Compile and Program : à¤Ã×Íè §Á×ÍÊíÒËÃѺ¤ÍÁä¾Å â»Ãá¡ÃÁáÅÐ ´Òǹ âËÅ´ä»ÂѧäÁâ¤Ã¤Í¹â·ÃÅàÅÍÃ ä´ á¡ ¡ÒáíÒ˹´àºÍà ¢Í§äÁâ¤Ã ¤Í¹·ÃÅàÅÍà , ¤ÍÁä¿Å â»Ãá¡ÃÁ, àÃÕ¡˹ Òµ Ò§ Serial Communications In Circuit Debug (ICD) : à¤Ã×Íè §Á×ʹټŢͧ¢ ÍÁÙÅÀÒÂã¹â»Ãá¡ÃÁ µ ͧµ ͡ѺÎÒà ´áÇà ੾ÒÐÊíÒËÃѺ¡Ò÷íÒ In Circuit Debug ´ Ç (㪠äÁ ä´ ¡ºÑ PICBASIC PRO ¤ÍÁä¾àÅÍÃ Ã¹Ø Demo) Edit : à¤Ã×Íè §Á×Íᡠ䢫Íà Êâ»Ãá¡ÃÁ »ÃСͺ´ Ç ¤ ¹ËÒ (Find), á·¹·Õ¢è Í ÁÙÅ (Replace), ¡Ò÷íÒãË ºÃ÷Ѵ·Õ¡è Òí ˹´à» ¹ Comment à» ¹µ ¹
PICBASIC OPTION ¡íÒ˹´¡ÒÃ㪠§Ò¹ PICBASIC ¤ÍÁä¾àÅÍà áÅЫͿµ áÇà ·ãÕè ª â»Ãá¡ÃÁäÁâ¤Ã¤Í¹â·ÃÅàÅÍà ÁÕÃÒÂÅÐàÍÕ´´Ñ§¹Õé
Compiler : ¡íÒ˹´â¿Åà´Íà áÅФسÊÁºÑµ¢Ô ͧ¤ÍÁä¾àÅÍà Assambler â´Â»¡µÔ Microcode Studio ·íÒ¡ÒÃáÍÊà«ÁàºÅÍà «ÍÃ Ê â»Ãá¡ÃÁâ´Â㪠ä¿Å PM.EXE «Ö§è ÃͧÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC 㹠͹ءÃÁ 12 áÅÐ 14 ºÔµ·Ñ§é ËÁ´ ·íÒãË äÁ ¨Òí à» ¹µ ͧ¡íÒ˹´¤ ÒãË ÊÇ ¹¹Õé Programmer 㪠àÃÕ¡«Í¿µ áÇà ÊÒí ËÃѺâ»Ãá¡ÃÁ¢ ÍÁÙÅŧã¹äÁâ¤Ã ¤Í¹â·ÃÅàÅÍà â´ÂÍѵâ¹ÁѵÔ
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
Editor Option ¡íÒ˹´ÊÀÒÇÐáÇ´Å ÍÁ㹡ÒÃà¢Õ¹ â»Ãá¡ÃÁ â´ÂẠ§á¡໠¹Ê ǹ ÍÂ æ ´Ñ§¹Õé General : ¡íÒ˹´¤ Òàº×Íé §µ ¹ ä´ á¡ ¡íÒ˹´µíÒá˹ §â¿Åà´Íà àÃÔÁè µ ¹,àÅ×Í¡áÊ´§àÅ¢ºÃ÷Ѵ, ¨Ñ´¡Òà ·íÒ§Ò¹¢Í§á·ç», ¡ÃÐⴴ仵íÒá˹ §·ÕÁè ¢Õ Í ¼Ô´¾ÅÒ´ à» ¹µ ¹
Highlighter »ÃѺᵠ§ÊÕáÅÐÃٻẺ¢Í§µÑÇÍÑ¡Éà à¾×Íè Ạ§á¡¤íÒÊÑ§è ¤ÍÁàÁ¹µ ª¹Ô´¢Í§µÑÇàÅ¢ µÑÇá»Ã áÅÐ ÊÑÅѡɳ µÒ § æ ÍÍ¡¨Ò¡¡Ñ¹
Program Header ¡íÒ˹´ãË ãÊ ¤ÍÁàÁ¹µ äÇ ·ÊÕè Ç ¹ËÑÇ ¢Í§â»Ãá¡ÃÁâ´ÂÍѵâ¹ÁÑµÔ ÊÒÁÒö¡íÒ˹´ª×Íè ¼Ùà ¢Õ¹«ÍÃ Ê â»Ãá¡ÃÁ Ê Ç¹ã¹ºÃ÷Ѵ ·Õàè » ¹Çѹ·Õè ¨ÐãÊ Ç¹Ñ ·Õ·è àÕè ÃÔÁè µ ¹Êà ҧ â»Ãá¡ÃÁãË â´ÂÍѵâ¹ÁѵÔ
Online Updating àÅ×Í¡ÊíÒËÃѺãË â»Ãá¡ÃÁµÃǨÊͺ ¢ ÍÁÙÅã¹âÎÁྨ¢Í§¼Ù¼ Å﵂ ÒÁÕâ»Ãá¡ÃÁàÇÍà ª¹Ñ ãËÁ ËÃ×ÍäÁ â´Â¨ÐµÃǨÊͺàÁ×Íè Í͹äŹ ࢠÒÊÙÍ ¹Ô àµÍà à¹çµáÅ Çà· Ò¹Ñ¹é ¶ Ò äÁ µÍ §¡ÒÃ㪠¤ÇÒÁÊÒÁÒö¹Õ¡é Òí ˹´à» ¹áºº Manual ä´
l
19
20
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
àÁ¹Ù Help Help Topics 㪠ÊÒí ËÃѺ໠´à¢ ÒÊÙË ¹ Òµ Ò§áÊ´§ÃÒÂÅÐàÍÕ´¡ÒÃ㪠§Ò¹â»Ãá¡ÃÁ Microcode Studio áÅСÒÃ㪠§Ò¹ PICBASIC PRO àº×Íé §µ ¹ Microcode Studio Plus áÊ´§ÃÒÂÅÐàÍÕ´¤Ø³ÊÁºÑµ¢Ô ͧâ»Ãá¡ÃÁ MicroCode Studio Plus áÅÐÃÒÂÅÐàÍÕ´¢Í§¼Ù¼ ÅÔµ ÊíÒËÃѺ«Í¿µ áÇà ã¹Ãع Plus ¨Ðµ ͧàÊÕ¤ Ò㪠¨Ò Âà¾ÔÁè áµ ¤ÇÒÁÊÒÁÒö¢Í§â»Ãá¡ÃÁ¡ç¨Ðà¾ÔÁè µÒÁ´ ÇÂ
About áÊ´§ÃÒÂÅÐàÍÕ´àÇÍà ª¹Ñ ¢Í§â»Ãá¡ÃÁ Microcode Studio
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
21
1.3.3 Miracle PIC «Íµ áÇà ÊÒí ËÃѺâ»Ãá¡ÃÁ¢ ÍÁÙÅŧã¹Ë¹ ǤÇÒÁ¨íҢͧ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC àÁ×èÍ·íÒ¡ÒÃà¢Õ¹â»Ãá¡ÃÁÀÒÉÒàºÊÔ¡´ Ç Microcode Studio áÅ Ç µ ͧ·íÒ¡ÒäÍÁä¾Å ´ Ç PICBASIC PRO ¤ÍÁä¾àÅÍà ¨Ðä´ ä¿Å .hex Íѹ໠¹ä¿Å ÀÒÉÒà¤Ã×Íè §¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ¨Ò¡¹Ñ¹é µ ͧ·íÒ¡ÒÃà¢Õ¹ËÃ×Íâ»Ãá¡ÃÁ¢ ÍÁÙŹÕÅé §ã¹Ë¹ ǤÇÒÁ¨íÒÀÒÂã¹äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC «Öè§ã¹·Õè¹Õé㪠«Í¿µ áÇà ·Õèª×èÍ Miracle PIC ¾Ñ²¹Ò¢Öé¹â´ÂºÃÔÉÑ· ÍÔ¹â¹àǵտ àÍç¡à¾ÍÃÔàÁ¹µ ¨íÒ¡Ñ´ ÊÒÁÒö´Òǹ âËÅ´ä´ ·Õè www.inex.co.th â´Â Miracle PIC ¹Õ¨é зíÒ§Ò¹¡Ñºá¼§Ç§¨Ã RBX-877 Íѹ à» ¹á¼§Ç§¨Ã¤Çº¤ØÁ¡Ò÷íÒ§Ò¹¢Í§Ëع ¹µ Robo-PICA ·Õ¨è зíÒ¡ÒÃÊà ҧ¡Ñ¹ã¹Ë¹Ñ§Ê×ÍàÅ Á¹Õé
1.3.3.1 ¡ÒõԴµÑ§é â»Ãá¡ÃÁ ࢠÒä»·Õèâ¿Åà´Íà PIC\Tools\Miracle_PIC ã¹á¼ ¹«Õ´ÕÃÍÁ·ÕèÁҾà ÍÁ¡ÑºªØ´ËØ ¹Â¹µ RoboPICA µÔ´µÑé§â´Â´ÑºàºÔŤÅÔ¡·Õèä¿Å mPICSetup161.exe (ËÁÒÂàÅ¢àÇÍà ªÑ¹ÍÒ¨à»ÅÕè¹á»Å§ä´ ) ËÃ×Ͷ Ò´Òǹ âËÅ´ÁÒ¡çãË ´ÑºàºÔŤÅÔ¡·Õèä¿Å ª×èÍËÅÑ¡à´ÕÂǡѹ¹Õé ¨Ð»ÃÒ¡¯Ë¹ Òµ Ò§¢ ͤÇÒÁᨠ§¡Òà Â×¹ÂѹµÔ´¡µÑé§â»á¡ÃÁ ãË ¡´»Ø Á OK µÍºÃѺ仨¹¡ÃзÑ觡ÒõԴµÑé§àÊÃç¨ÊÁºÙó
1.3.3.2 ÃÒÂÅÐàÍÕ´»ØÁ 㪠§Ò¹¢Í§ Miracle PIC àÃÕ¡㪠â»Ãá¡ÃÁ Miracle PIC ä´ â´Âä»·Õ»è ÁØ Start à Program à Miracle PIC à Miracle PIC Flash ¨Ð»ÃÒ¡¯Ë¹ Òµ Ò§ËÅÑ¡¢Í§â»Ãá¡ÃÁ´Ñ§ã¹ÃÙ»·Õè 1- 4
ᶺ¤íÒÊÑè§
àÅ×Í¡àºÍà ¢Í§ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà »ØÁ µÃǨÊͺàºÍà äÁâ¤Ã ¤Í¹â·ÃÅàÅÍÃ ÍµÑ â¹ÁѵÔ
»Ø Á㪠§Ò¹ âËÁ´ÊÑÒ³¹ÒÌ ¡Ò áÊ´§ÃٻẺ¢Í§ ¡Òû ͧ¡Ñ¹¢ ÍÁÙŠᨠ§àºÍà äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ·ÕèàÅ×Í¡
ÃÙ»·Õè 1-4 ˹ Òµ Ò§ËÅÑ¡¢Í§â»Ãá¡ÃÁ Miracle PIC
ᶺáÊ´§Ê¶Ò¹Ð¡Ò÷íÒ§Ò¹ áÊ´§ ID ¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ·ãÕè ª áÊ´§¤ Ò Configuration word
22
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
2.4.2.1 »ØÁ ¤Çº¤ØÁ¡Ò÷íÒ§Ò¹ËÅÑ¡ 1. »ØÁ
OPEN 㪠໠´ä¿Å ¹ÒÁÊ¡ØÅ .HEX ·Õµè Í §¡ÒÃâ»Ãá¡ÃÁŧã¹äÁâ¤Ã¤Í¹â·ÃÅàÅÍÃ
2. »ØÁ
SAVE 㪠º¹Ñ ·Ö¡«Íà Ê⤠´«Ö§è à» ¹ä¿Å ¹ÒÁÊ¡ØÅ .HEX ŧã¹ÎÒà ´´ÔÊ¡ ËÃ×Í¿ÅÍ»» ´ ÊÔ ¡
PROGRAM 㪠à¢Õ¹¢ ÍÁÙŢͧä¿Å .HEX ŧã¹Ë¹ ǤÇÒÁ¨íҢͧäÁâ¤Ã¤Í¹â·ÃÅàÅÍà 3. »ØÁ VERIFY 㪠µÃǨÊͺ¡ÒÃâ»Ãá¡ÃÁ â´Â·íÒ¡ÒÃà»ÃÕºà·Õº¢ ÍÁÙÅ㹺ѿà¿Íà ¡ºÑ ¢ ÍÁÙÅ·ÕÍè Ò ¹ä´ 4. »ØÁ ¨Ò¡äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ËÅѧ¨Ò¡·Õâè »Ãá¡ÃÁ¢ ÍÁÙÅáÅ Ç 5. »ØÁ READ 㪠ÍÒ ¹¢ ÍÁÙŨҡäÁâ¤Ã¤Í¹â·ÃÅàÅÍà ·àÕè Å×Í¡äÇ 6. »ØÁ BLANK CHECK 㪠µÃǨÊͺ¢ ÍÁÙÅÇ Ò§ÀÒÂã¹äÁâ¤Ã¤Í¹â·ÃÅàÅÍà 7. »ØÁ ERASE 㪠ź¢ ÍÁÙÅÀÒÂã¹Ë¹ ǤÇÒÁ¨íÒâ»Ãá¡ÃÁ¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ·àÕè Å×Í¡ 8. ª ͧàÅ×Í¡àºÍà äÁâ¤Ã¤Í¹â·ÃÅàÅÍÃ
2.4.2.2 àÁ¹Ù㪠§Ò¹¢Í§â»Ãá¡ÃÁ àÁ¹Ù File
Open File Save File As Recent Files Exit
㪠໠´ä¿Å ¹ÒÁÊ¡ØÅ .HEX ·Õµè Í §¡ÒÃâ»Ãá¡ÃÁ ·íÒ§Ò¹àËÁ×͹¡Ñº»ØÁ OPEN 㪠º¹Ñ ·Ö¡á¿ Á¢ ÍÁÙÅ㹪×Íè Í×¹è 㪠໠´ä¿Å ·àÕè ¤Âà» ´ãª §Ò¹¡ ͹˹ Ò¹Õé ÍÍ¡¨Ò¡â»Ãá¡ÃÁ
àÁ¹Ù View 㪠´¤Ù Ò ¾ÒÃÒÁÔàµÍà ·§Ñé ËÁ´¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC Program Buffer (F11) 㪠áÊ´§ÃÒÂÅÐàÍÕ´¢Í§«Íà Ê⤠´ àÁ×Íè àÅ×Í¡àÁ¹Ù¹¨Õé лÃÒ¡¯Ë¹ Òµ Ò§áÊ´§ ¢ ÍÁÙÅã¹ÃÙ»·Õè 2-4 â´ÂáÊ´§¢ ÍÁÙŷѧé ã¹ÃÙ»¢Í§àÅ¢°Ò¹ÊԺˡáÅÐÃËÑÊáÍÊ¡Õé ¼Ùã ª §Ò¹ÊÒÁÒÃ¶á¡ ä¢ (edit) ¢ ÍÁÙÅä´ â´ÂàÅ×Í¡µíÒá˹ §¢Í§Ë¹ ǤÇÒÁ¨íÒ·Õµè Í §¡ÒÃáÅ Ç» ͹¤ Òä´ ·¹Ñ ·Õ ËÃ×ͨÐ㪠¿§ ¡ ª¹Ñè Fill Program Buffer ¡çä´ Data Buffer (F12) 㪠áÊ´§ÃÒÂÅÐàÍÕ´¢Í§Ë¹ ǤÇÒÁ¨íÒ¢ ÍÁÙÅÍÕÍ¾Õ ÃÍÁ àÁ×Íè àÅ×Í¡àÁ¹Ù¹¨Õé лÃÒ¡¯ ˹ Òµ Ò§áÊ´§¢ ÍÁÙÅã¹ÃÙ»·Õè 2-5 ¼Ùã ª ÊÒÁÒÃ¶á¡ ä¢ (edit) ¢ ÍÁÙÅä´ â´ÂàÅ×Í¡µíÒá˹ §¢Í§Ë¹ ǤÇÒÁ¨íÒ·Õµè Í §¡ÒÃáÅ Ç » ͹¤ Òä´ ·¹Ñ ·Õ ËÃ×ͨÐ㪠¿§ ¡ ª¹Ñè Fill Data Buffer ¡çä´ Configuration (F9) áÊ´§ÃÒÂÅÐàÍÕ´·Ò§ÎÒà ´áÇà ·µÕè Í §àÅ×Í¡¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC â´Â àÁ×Íè àÅ×Í¡¨Ð»ÃÒ¡¯Ë¹ Òµ Ò§ Configuration ´Ñ§ã¹ÃÙ»·Õè 2-6 Count Program 㪠áÊ´§¨íҹǹ¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ·¹Õè Òí ÁÒâ»Ãá¡ÃÁÇ Ò ·íÒ¡ÒÃâ»Ãá¡ÃÁ ¡Õµè ÇÑ ÁÕ¨Òí ¹Ç¹¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ·âÕè »Ãá¡ÃÁäÁ ÊÒí àÃç¨à· Òã´ Always on top 㪠¡Òí ˹´ãË Ë¹ Òµ Ò§ËÅÑ¡¢Í§ Miracle-PIC ÍÂÙã ¹µíÒá˹ §º¹ÊØ´·Ø¡¤Ãѧé
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
23
ÃÙ»·Õè 1-5 ˹ Òµ Ò§áÊ´§¢ ÍÁÙŢͧ˹ ǤÇÒÁ¨íÒâ»Ãá¡ÃÁ
ÃÙ»·Õ1-6 è ˹ Òµ Ò§áÊ´§¢ ÍÁÙŢͧ˹ ǤÇÒÁ¨íÒ¢ ÍÁÙÅÍÕÍ¾Õ ÃÍÁ
àÁ¹Ù Device 㪠ÊÒí ËÃѺàÅ×Í¡àºÍà ¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ·µÕè Í §¡ÒõԴµ Í´ ÇÂ
àÁ¹Ù Command
Program Chip (F4) 㪠â»Ãá¡ÃÁäÁâ¤Ã¤Í¹â·ÃÅàÅÍà ·íÒ§Ò¹àËÁ×͹¡Ñº»ØÁ PROGRAM Verify Chip (F5) 㪠µÃǨÊͺ¡ÒÃà¢Õ¹¢ ÍÁÙÅŧã¹äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ÇÒ ¶Ù¡µ ͧËÃ×ÍäÁ Read Chip (F6) 㪠ÍÒ ¹¢ ÍÁÙŨҡäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ·íÒ§Ò¹àËÁ×͹¡Ñº»ØÁ READ Erase Chip (F7) 㪠ź¢ ÍÁÙÅÀÒÂã¹Ë¹ ǤÇÒÁ¨íҢͧäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC Blank Chip (F8) 㪠µÃǨÊͺ¢ ÍÁÙÅÇ Ò§ÀÒÂã¹Ë¹ ǤÇÒÁ¨íҢͧäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
àÁ¹Ù Option Ạ§à» ¹ 4 Ê Ç¹¤×Í Ê Ç¹¡íÒ˹´ÃٻẺ¡ÒÃâ»Ãá¡ÃÁáÅеÃǨÊͺ ÁÕÃÒÂÅÐàÍÕ´´Ñ§¹Õé Program/Verify Program àÅ×Í¡à¾×èÍâ»Ãá¡ÃÁáÅеÃǨÊͺ¢ ÍÁÙÅ·Õèâ»Ãá¡ÃÁŧã¹äÁâ¤Ã ¤Í¹â·ÃÅàÅÍà ÅÒ ÊØ´¡Ñº¢ ÍÁÙÅ㹺ѿà¿ÍÃ
24
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
Program/Verify Data àÅ×Í¡à¾×Íè â»Ãá¡ÃÁáÅеÃǨÊͺ¢ ÍÁÙÅã¹Ë¹ ǤÇÒÁ¨íÒ¢ ÍÁÙÅã¹äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ËÅѧ¨Ò¡ä´ ÃºÑ ¡ÒÃâ»Ãá¡ÃÁÅ ÒÊØ´ Program/Verify ID àÅ×Í¡à¾×Íè â»Ãá¡ÃÁáÅеÃǨÊͺ¤ Ò ID ¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà Program/Verify Configuration àÅ×Í¡à¾×Íè â»Ãá¡ÃÁáÅеÃǨÊͺ¡ÒáíÒ˹´¤ Ò¾ÒÃÒÁÔàµÍà ËÃ×Í ¤ Ò Configuration ¢Í§¢ ÍÁÙÅ·Õâè »Ãá¡ÃÁŧã¹äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ÅÒ ÊØ´ Ê Ç¹·ÕÊè ͧ໠¹¡ÒÃàÅ×͡㪠¤ÇÒÁÊÒÁÒö¾ÔàÈÉÍ×¹è ¢Í§ Miracle -PIC »ÃСͺ´ Ç Auto verify after program àÅ×Í¡ãË µÃǨÊͺ¢ ÍÁÙÅËÅѧ¨Ò¡â»Ãá¡ÃÁàÊÃç¨Í ҧÍѵâ¹ÁÑµÔ Auto erase before program àÅ×͡ź¢ ÍÁÙÅÀÒÂã¹Ë¹ ǤÇÒÁ¨íÒ¡ ͹¡ÒÃâ»Ãá¡ÃÁ Program all address àÅ×Í¡ãË â»Ãá¡ÃÁ¢ ÍÁÙÅŧ㹷ءáÍ´à´Ãʢͧ˹ ǤÇÒÁ¨íÒâ»Ãá¡ÃÁ ËÒ¡ ¢ ÍÁÙÅ·Õ¹è Òí ÁÒâ»Ãá¡ÃÁÁÕ¢¹Ò´àÅç¡¡Ç Ò Ê Ç¹·Õàè ËÅ×ͨÐà¢Õ¹¢ ÍÁÙÅ 0x3FFF Å§ä» Ê Ç¹·ÕÊè ÒÁ Confirm erase message àÅ×Í¡áÊ´§¢ ͤÇÒÁàµ×͹¡ ͹ź˹ ǤÇÒÁ¨íÒâ»Ãá¡ÃÁ Ê Ç¹ÊØ´· Ò Parallel port 㪠àÅ×Í¡¾Íà µ¢¹Ò¹·Õµè ´Ô µ Í àÅ×Í¡ä´ 3 µíÒá˹ §¤×Í LPT1- LPT3
2.4.2.3 ¡ÒáíÒ˹´¤ Ò Configuration
ä»·Õàè Á¹Ù View à Configuration ÁÕÃÒÂÅÐàÍÕ´´Ñ§¹Õé
Oscillator 㪠àÅ×Í¡ª¹Ô´¢Í§Ç§¨Ã¡íÒà¹Ô´ÊÑÒ³¹ÒÌ ¡Ò¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ÁÕ 8 Ẻ¤×Í LP : ¤ÃÔʵÍÅẺ¡íÒÅѧ§Ò¹µèÒí XT : ¤ÃÔʵÍŤÇÒÁ¶Õäè Á à¡Ô¹ 4MHz HS : ¤ÃÔʵÍŤÇÒÁ¶Õè 4MHz ¢Ö¹é ä» EXTCLK : ãª Ê Ñ Ò³¹ÒÌ ¡ÒÀÒ¹͡ INTRC : 㪠ǧ¨Ã RC ÀÒÂã¹ EXTRC (ER) : 㪠ǧ¨Ã RC ÀÒ¹͡ INTRC clockout : 㪠ǧ¨Ã RC ÀÒÂã¹ â´Â·Õ¢è Ò OSC2 ¨ÐÁÕÊ Ñ Ò³¤ÇÒÁ¶Õè fOSC/4 Ê §ÍÍ¡ÁÒ´ Ç EXTRC Clockout : 㪠ǧ¨Ã RC ÀÒ¹͡â´Â·Õ¢è Ò OSC2 ¨ÐÁÕÊ Ñ Ò³¤ÇÒÁ¶Õè fOSC/4 Ê §ÍÍ¡ÁÒ´ Ç Code protect 㪠àÅ×Í¡âËÁ´¢Í§¡Òû ͧ¡Ñ¹¡ÒÃÍ Ò¹¢ ÍÁÙÅÍÍ¡¨Ò¡äÁâ¤Ã¤Í¹â·ÃÅàÅÍÃ
ÃÙ»·Õè 1-7 ˹ Òµ Ò§¡íÒ˹´¤ Ò Configuration ¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ã¹â»Ãá¡ÃÁ Miracle PIC
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
25
Configuration 㪠àÅ×Í¡ãË ¤ÇÒÁÊÒÁÒö¾ÔàÈɢͧäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ·íÒ§Ò¹ ¤ÇÒÁÊÒÁÒö·ÕÊè Òí ¤Ñä´ á¡ WDT (Watchdog timer) : àÅ×Í¡ãË Ç͵ª ´Íç ¡ä·àÁÍà ·Òí §Ò¹/äÁ ·Òí §Ò¹ PWRT (Power-up Timer) : àÅ×Í¡ãË à¾ÒàÇÍÃ Í»Ñ ä·àÁÍà ·Òí §Ò¹/äÁ ·Òí §Ò¹ BODEN (Brown-out Reset) : àÅ×Í¡ãË Ç§¨ÃºÃÒÇàÍÒµ ´àÕ ·ç¡µ «§Öè ·íÒ˹ Ò·ÕÃè àÕ «µäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC àÁ×Íè áç´Ñ¹ä¿àÅÕÂé §Å´Å§µèÒí ¡Ç Ò·Õ¡è Òí ˹´äÇ ·Òí §Ò¹ LVP (Low Voltage Program) : àÅ×Í¡ãË â»Ãá¡ÃÁ¢ ÍÁÙÅŧã¹äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ´ ÇÂáç´Ñ¹ µèÒí +5V á·¹·Õ¨è Ð㪠+12V µÒÁ»¡µÔ WRT (Write flash memory) : 㪠àÍç¹àÍàºÔÅ¡ÒÃà¢Õ¹¢ ÍÁÙÅŧã¹Ë¹ ǤÇÒÁ¨íÒâ»Ãá¡ÃÁ´ ǵÑÇ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà àͧ
1.3.3.3 ¡ÒÃ㪠§Ò¹ Miracle PIC à ÇÁ¡Ñº Microcode Studio Microcode Studio ÊÒÁÒöàÃÕ¡㪠§Ò¹«Í¿µ áÇà ÊíÒËÃѺ´Òǹ âËÅ´¢ ÍÁÙÅŧäÁâ¤Ã ¤Í¹â·ÃÅàÅÍà PIC ä´ ·¹Ñ ·Õ ËÅѧ¨Ò¡·Õ·è Òí ¡ÒäÍÁä¾Å â»Ãá¡ÃÁ´ Ç PICBASIC PRO ¤ÍÁä¾àÅÍà áÅ Ç ·íÒãË ¡ÒþѲ¹Òâ»Ãá¡ÃÁÊдǡÁÒ¡ à¾ÃÒÐà¾Õ§¡´»Ø Á F10 ã¹ Microcode Studio à¾Õ§»Ø Á à´ÕÂÇ ¡ç¨ÐàÃÔÁè ·íÒ¡ÒäÍÁä¾Å , áÍÊà«ÁàºÅÍà áÅдÒǹ âËŴ⤠´Å§ã¹äÁâ¤Ã¤Í¹â·ÃÅàÅÍà àÊÃç¨ ÊÁºÙó Í ҧäáçµÒÁ ¡ ͹·Õè¨Ðઠ¹¹Ñé¹ä´ ¨Ðµ ͧÃкصíÒá˹ §·ÕèµÔ´µÑ駫Ϳµ áÇà ÃÇÁ·Ñ駪×èͧ͢ «Í¿µ áÇà ·µÕè Í §¡ÒÃãË Microcode Studio ·ÃÒºàÊÕ¡ ͹ ´Ñ§ÁÕ¢¹Ñé µÍ¹µ Í仹Õé ¢Ñ¹é µÍ¹·Õè 1 à» ´â»Ãá¡ÃÁ Microcode Studio áÅ ÇàÅ×Í¡àÁ¹Ù VIEW à PICBasic Option à¾×Íè à» ´Ë¹ Òµ Ò§ PICBasic Option ¢Ö¹é ÁÒ àÅ×Í¡á·ç» Programmer ´Ñ§ÃÙ»
26
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
¢Ñ鹵͹·Õè 2 ¡´»Ø Á à¾×èÍà¾ÔèÁà¤Ã×èͧâ»Ãá¡ÃÁµÑÇãËÁ ࢠÒä» »ÃÒ¡¯ ˹ Òµ Ò§¾Ã ÍÁµÑÇàÅ×Í¡¢Í§à¤Ã×èͧâ»Ãá¡ÃÁ¾Ã ÍÁ«Í¿µ áÇà µ Ò§ æ ÁÒãË àÅ×Í¡´Ñ§ÃÙ»
¢Ñ¹é µÍ¹·Õè 3 à¹×Íè §¨Ò¡ Miracle PIC äÁ ÁÍÕ ÂÙã ¹ÃÒ¡ÒùÕé ãË ¤ÅÔ¡àÅ×Í¡·ÕËè ÇÑ ¢ Í Create a custom â»Ãá¡ÃÁ¨ÐáÊ´§Ë¹ Òµ Ò§ãË ãÊ ªÍ×è «Í¿µ áÇà ãË ÃÐºØ programmer entry ¨Ò¡¹Ñ¹é ¡´»ØÁ à¾×Íè ·íÒ¢Ñ¹é µÍ¹µ Íä» ª×Íè Miracle PIC ¡´»ØÁ ¢Ñ鹵͹·Õè 4 â»Ãá¡ÃÁ¨Ðᨠ§ãË ãÊ ª×èÍä¿Å â»Ãá¡ÃÁËÅÑ¡·ÕèÃѹãË ·íÒ§Ò¹ ã¹·Õè¹Õéª×èÍä¿Å ¤×Í mPICFlash.exe ãÊ Å§ã¹ª Í§Ç Ò§´Ñ§ã¹ÃÙ» ¨Ò¡¹Ñ¹é ¡´»ØÁ à¾×Íè ·íÒµÒÁ¢Ñ¹é µÍ¹µ Íä»
¢Ñ¹é µÍ¹·Õè 5 ¤ ¹ËÒä´àáµÍÃÕ·è àÕè ¡çºâ»Ãá¡ÃÁ Miracle PIC äÇ â´ÂÊÒÁÒöËÒẺÍѵâ¹ÁÑµÔ ËÃ×ÍÃÐºØ´Ç Âµ¹àͧ â´Â¡Òá´·Õ»è ÁØ â´Â¡Òá´·Õ»è ÁØ
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
27
¢Ñ¹é µÍ¹·Õè 6 à¾×Íè ãË ¡Ò÷íÒ§Ò¹¢Í§ Miracle PIC àÁ×Íè àÃÕ¡㪠§Ò¹¨Ò¡ Microcode Studio à» ¹ ä»Í ҧÍѵâ¹ÁÑµÔ ¨Ðµ ͧ¡íÒ˹´¾ÒÃÒÁÔàµÍà Miracle PIC ´Ñ§¹Õé -e -l $hex-filename$ -p -v -x
¤ Ò¾ÒÃÒÁÔàµÍà -e -l $hex-filename$
ÃÒÂÅÐàÍÕ´ ·íÒ¡ÒÃź¢ ÍÁÙÅã¹äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ¡Í ¹â»Ãá¡ÃÁ âËÅ´ä¿Å .hex ¨Ò¡ Microcode Studio
-p
ãË Á¡Õ ÒÃâ»Ãá¡ÃÁäÁâ¤Ã¤Í¹â·ÃÅàÅÍÃ
-v
ãË Á¡Õ ÒõÃǨÊͺ¤ÇÒÁ¼Ô´¾ÅÒ´¨Ò¡¡ÒÃâ»Ãá¡ÃÁ
-x
ÍÍ¡¨Ò¡ Miracle PIC ËÅѧâ»Ãá¡ÃÁ¢ ÍÁÙÅàÊÃç¨
â´Â¤ÇÒÁËÁÒ¢ͧ¾ÒÃÒÁÔàµÍà ·Õè¡íÒ˹´Å§ä»ÁմѧáÊ´§ã¹µÒÃÒ§ ËÃ×Í´ÙÃÒÂÅÐàÍÕÂ´ä´ ¨Ò¡ ä¿Å Using parameter with MicroCode.txt ã¹â¿Åà´Íà ·àÕè ¡çºä¿Å Miracle PIC ËÅѧ¨Ò¡¡íÒ˹´¤ Ò àÊÃç¨àÃÕºà Í ãË ¡´»ØÁ à¾×Íè ¨º¡ÒáíÒ˹´¤ ÒãË ¡ºÑ â»Ãá¡ÃÁ Miracle PIC
28
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
29
º··Õè 2
RBX-877 ἧǧ¨ÃàÃÕ¹ÃÙ áÅз´Åͧ
¤Çº¤ØÁËØ ¹Â¹µ ´ ÇÂäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ËØ ¹Â¹µ Robo-PICA ·íÒ§Ò¹ä´ ´ Ç¡ÒäǺ¤ØÁ¨Ò¡ºÍà ´ RBX-877 (PIC16F877 Robot controller Experiment board) â´ÂäÁâ¤Ã¤Í¹â·ÃÅàÅÍà ·ãÕè ª ¤Çº¤ØÁ¡Ò÷íÒ§Ò¹¤×Í PIC16F877 ã¹ ÃÙ»·Õè 2-1 áÊ´§ä´ÍÐá¡ÃÁ¡Ò÷íÒ§Ò¹àº×Íé §µ ¹¢Í§ºÍà ´ RBX-877 «Ö§è 㹺·¹Õ¨é йíÒàʹ͡Ò÷íÒ§Ò¹ àº×Íé §µ ¹¢Í§ºÍà ´ RBX-877 à¾×Íè 㪠¢Í ÁÙÅÍ Ò§ÍÔ§ÊíÒËÃѺ㪠㹡ÒÃÊà ҧËع ¹µ 㹺·µ Íæ ä» Ç§¨ÃÊà ҧáç´Ñ¹ä¿ÊÙ§ ÊíÒËÃѺâ»Ãá¡ÃÁ
ÀÒ¤¨ ÒÂä¿ áººÊÇÔµª ª§Ôè
+12V
+5V
ẵàµÍÃÕè AA 4 ¡ ͹
ǧ¨ÃáÊ´§Ê¶Ò¹Ð ẵàµÍÃÕè
ǧ¨Ãâ»Ãá¡ÃÁ äÁâ¤Ã¤Í¹â·ÃÅàÅÍÃ
Ê Ç¹àª×Íè Áµ ÍâÁ´ÙÅ LCD
ǧ¨ÃÊ×Íè ÊÒâ ÍÁÙż Ò¹ ¾Íà µÍ¹Ø¡ÃÁ RS-232
¢ÑºÅíÒ⾧໠Ââ«
Ê Ç¹Ê×Íè ÊÒÃÃкººÑÊ I C
äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC16F877(A)-20
¾Íà µÍÔ¹¾ØµàÍÒµ ¾Øµ áÅÐÍ Ò¹¤ ÒÊÑÒ³ ÍйÒÅÍ¡¨Ò¡ÀÒ¹͡
ǧ¨Ã¢ÑºÁÍàµÍà 俵ç
¢Ñºà«Íà âÇÁÍàµÍÃ
ǧ¨Ã¡íÒà¹Ô´ ÊÑÒ³¹ÒÌÔ¡Ò 20MHz
ÃÙ»·Õè 2-1 ºÅçÍ¡ä´ÍÐá¡ÃÁáÊ´§¡Ò÷íÒ§Ò¹ã¹Ê ǹµ Ò§ æ ¢Í§ºÍà ´ RBX-877
30
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
¨Ø´µ ;Íà µ¢¹Ò¹´Òǹ âËÅ´â»Ãá¡ÃÁ ÅíÒ⾧໠Ââ« (µ Í¢Ò RA4) ¨Ø´µ ;Íà µÍ¹Ø¡ÃÁ RS-232 (µ Í¢Ò RC6 áÅÐ RC7) ¨Ø´µ ÍâÁ´ÙÅ LCD ¨Ø´µ ÍÃкººÑÊ I2C ¨Ø´µ Í ÊÇÔµª à» ´/» ´ ẵàµÍÃÕè (µ Í¢Ò RC0, RC5, RD4-RD7) (µ Í¢Ò RC3 áÅÐ RC4)
äÁâ¤Ã¤Í¹â·ÃÅàÅÍÃ
21+ $.&%%
¨Ø´µ Íà«Íà âÇÁÍàµÍà ÊÇÔµª àÅ×Í¡âËÁ´ LED áÊ´§¼Å (µ Í¢Ò RB2-RB0) ¾Íà µÍÔ¹¾ØµàÍÒµ ¾µØ à͹¡»ÃÐʧ¤ (µ Í¢Ò RB5-RB3) ÃÑ ¹ /â»Ãá¡ÃÁ ¨Ø´µ ÍÁÍàµÍà 俵ç (µ Í¢Ò RA0-RA3, RA5, RE0-RE2) (µ Í¢Ò RC2, RD0, RD1 ÊÇÔµª ÃàÕ «µ áÅÐ RC1, RD2, RD3)
ÃÙ»·Õè 2-2 áÊ´§Ê ǹ»ÃСͺµ Ò§æ ·ÕÊè Òí ¤Ñ¢Í§ºÍà ´ RBX-877
2.1 ¤Ø³ÊÁºÑµ·Ô ҧ෤¹Ô¤ 㪠äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC16F877(A)-20 ¤Çº¤ØÁ¡Ò÷íÒ§Ò¹·Ñ§é ËÁ´ l ´Òǹ âËÅ´â»Ãá¡ÃÁ¨Ò¡¤ÍÁ¾ÔÇàµÍà ¼Ò ¹¾Íà µ¢¹Ò¹ áÅÐÁÕ¨´ Ø µ ;Íà µÍ¹Ø¡ÃÁà¾×Íè Ê×Íè ÊÒâ ÍÁÙÅ l ÁÕǧ¨Ã¢ÑºÁÍàµÍà 俵ç 2 ªØ´¾Ã ÍÁ LED áÊ´§·ÔÈ·Ò§¡ÒÃËÁع l ¢Ñºà«Íà âÇÁÍàµÍà ¢¹Ò´àÅç¡ 4.8-6V ä´ 3 µÑÇ l ÁÕÅÒí ⾧໠Ââ«ÊíÒËÃѺ¢ÑºàÊÕ§ l ÁÕ LED áÊ´§¼Å 3 ª ͧµ ͵ç¡Ñº¢Ò¾Íà µ¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà l ÁÕ¨´ Ø µ ÍâÁ´ÙÅ LCD ÃͧÃѺ·Ñ§é Ẻ¸ÃÃÁ´ÒáÅÐẺÁÕä¿Ê ͧËÅѧ l ¨Ø´µ ͺÑÊ I2C ÊíÒËÃѺàª×Í è Áµ ͡ѺÍØ»¡Ã³ ·ÁÕè ¡Õ ÒÃÊ×Íè ÊÒâ ÍÁÙż Ò¹ÃкººÑÊ I2C l ÁÕ¨´ Ø µ ÍÍÔ¹¾ØµàÍÒµ ¾µØ Ẻ´Ô¨µÔ ÍÅáÅÐÍÔ¹¾ØµÍйÒÅÍ¡ 8 ª ͧ l ¤ÇÒÁÅÐàÍÕ´¢Í§Ç§¨Ãá»Å§ÊÑÒ³ÍйÒÅÍ¡à» ¹´Ô¨ÔµÍÅ 10 ºÔµ l ·íÒ§Ò¹´ ÇÂẵàµÍÃÕè AA 4 ¡ ͹ ãª ä´ ·§Ñé ẺÍÑŤÒäŹ áÅÐẺ»ÃШØä¿ãËÁ l ¢¹Ò´ 2.375 x 6.25 ¹ÔÇé l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
R7 510
+Vpp +5V
K1 DOWNLOAD (RJ11-6)
+5V
IC4/5 14 1
D0 D1
2
R8/1 10k
3 IC4/3
D2 D3 ACK GND
40
4 7
R10 4k7
+5V
IC4/4 10
+Vpp
R9 10k
IC4/1 5 6
R8/3 10k
11
C8 0.1/50V
R8/2 10k
39
Q2 BC557
R11 10k
R12 510
LED2 RUN
11
32 12
RB7
+Vm LED1 LOW-BAT.
+
-
C2 C1 220/16V 0.1/50V
R13 220
S2 RESET
S1 MODE
+5V
RB4
C10
C12
6 7 8
1 2 3 4 5
RB3 16
1 3
C11
38 37 36
L1 6 50µH (radial) 3
D1 1N4001
R2 47k
8
IC5 ICL232
7
IC2 TL499A ZD1 5V6
R5 30k
2
R4 150
C3 0.01/50V
C4 220/16V
ZD2 5V1
4
IC1 KIA7042
R6 10k
5
R18 510
LED6
Q2
LED5
R17 510
LED4
R16 510
Q1 Q0
+5V JP1
4 5
S
+5V
Q1 IRFZ414
2
C13
7
10
25
8
9
26
6
R1 1k
R3 4.7R
MCLR
RB5
C10-C14 10/50V
1 +V RESET 3 GND 2
1
D
D2 1N5819
S1 POWER
+5V R14 4k7
G
31 RB6
IRF414
+-o
8
+4.8~6Vdc
IC3/1-IC3/5 74LS07 LED3 PGM
KIA 7042 5
7
K1 DC input
C9 0.1/50V
C6 0.22/50V
4
IC3 MAX662
6
C7 4.7/50V
IC4 PIC16F877-20
+5V
2
31
3
1 C5 0.22/50V
l
RC0
RC6/TxD RC7/RxD
RC5
15
4
24
6
BLA
DSP1 LCD 16x2 (back light option)
RS E
+V Vo
15
C14
D7 D6 D5 D4 D3 D2 D1 D0 R/W 14 13 12 11 10 9 8 7 5
K2 SERIAL PORT
15
R15 27
BACK LIGHT ON
1 VR1 10k
3
BRIGHTNESS
BLK GND 16 2
RD7 RD6
+5V J8 PORT7
10
J7 PORT6
9
J6 PORT5
8
J5 PORT4
7
J4 PORT3
5
J3 PORT2
4
J2 PORT1
3
J1 PORT0
2
RD5 RE2/AN7
RD4
RE1/AN6
+5V
RA4
RE0/AN5
RA3/AN3 RA2/AN2
J14 I2C bus
SDA SCL
RD0 RD1
RA1/AN1
RD2 RD3
RA0/AN0
R24 4k7
23 RC4/SDA
+5V +Vm
RB1
16
19
2
20
7 2A 1
1A
21
15 4A
22
10
16
9
35 +Vm
34
J13 SERVO #3
+Vm
J12 SERVO #2
+Vm
J11 SERVO #1
8
Vcc1
12EN
C15 0.1/63V
1Y 3 2Y
IC6 L293D
4Y 3Y
+ +
R21 1k
DIRECT LED6 DIR. #A
6 14
LED7 DIR. #B
11 R22 1k
3A 34EN
13 12 5
4
INVERT
C16 0.1/63V J10A-J10B MOTOR-B
INVERT
+ + DIRECT
RC3/SCL
GND
RB0
CR1 Ceramic Resonator 20MHz
R19 4k7
RC2/CCP1 17
RC1/CCP2
18
J9A-J9B MOTOR-A
Q3 BC557
SP1 PIEZO
RB2 R23 4k7
R20 10k
RA5/AN4
+5V
+5V
6
13
33
14
ÃÙ»·Õè 2-2 áÊ´§Ç§¨ÃÊÁºÙó ¢Í§ºÍà ´ RBX-877
2.2 ¡Ò÷íÒ§Ò¹¢Í§Ç§¨Ã
2.2.1 Ê Ç¹äÁâ¤Ã¤Í¹â·ÃÅàÅÍÃ
ËÑÇã¨ÊíҤѤ×Í IC4 äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC16F877 «Ö§è ÁÕÊÒí ËÃѺµ Í㪠§Ò¹ÁÒ¡¶Ö§ 32 ¢Ò ´Ñ§¹Ñé¹´ ÇÂäÁâ¤Ã¤Í¹â·ÃÅàÅÍà à¾Õ§µÑÇà´ÕÂǨ֧µ ͡ѺÍØ»¡Ã³ ÍÔ¹¾ØµàÍÒµ ¾Øµà¾×èÍÊà ҧ໠¹ËØ ¹Â¹µ ä´ Í ҧ§ Ò´Ò â´ÂÁÕ CR1 à«ÃÒÁÔ¡àÃâ«à¹àµÍà 20MHz ¡íÒà¹Ô´¤ÇÒÁ¶ÕÊè Ñ Ò³¹ÒÌ ¡ÒãË á¡ IC4
32
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
2.2.2 ÀÒ¤¨ ÒÂä¿ º¹ºÍà ´ RBX-877 㪠ǧ¨ÃÀÒ¤¨ ÒÂä¿ÊÇÔµª ª§Ôè Ẻ»ÃѺ¢Ö¹é (step up) à¾×Íè ãË ÊÒÁÒö·íÒ§Ò¹ ä´ ¡ÑºáºµàµÍÃÕèÍÑŤÒäŹ áÅÐẺ»ÃШØä¿ãËÁ ä´ â´Â¨Ø´ÁØ §ËÁÒÂà¾×èÍÃÑ¡ÉÒÃдѺáç´Ñ¹ä¿àÅÕé§ ¤§·Õ·è Õè +5V à¾×Íè ¨ ÒÂãË ¡ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà áÅÐäÍ«Õ··Õè Òí §Ò¹´ ÇÂáç´Ñ¹ä¿àÅÕÂé § +5V µ ÇÑ Í×¹è æ ·Ñ駹Õéà¹×èͧ¨Ò¡àÁ×èÍàÃÔèÁµ ¹¨ ÒÂä¿ãË á¡ Ç§¨Ã ÃдѺ¢Í§áç´Ñ¹·ÕèẵàµÍÃÕè¨Ð¤ ÍÂæ Ŵŧ ´ Ç¡ÒÃ㪠ǧ¨Ã¨ ÒÂä¿ÊÇÔµª ªÔè§áºº»ÃѺ¢Öé¹ ¨Ö§·íÒãË áç´Ñ¹ä¿àÅÕé§ǧ¨ÃÃÇÁÂѧ¤§ÃÑ¡ÉÒÃдѺÍÂÙ ·Õè +5V ÍÂÙ ä´ ¨¹¡Ç ÒÃдѺáç´Ñ¹¢Í§áºµàµÍÃÕè¨ÐŴŧµèíÒÁÒ¡¨ÃÔ§æ (»ÃÐÁÒ³ 1.5V) ¨Ö§äÁ ÊÒÁÒöÃÑ¡ÉÒ ÃдѺáç´Ñ¹äÇ ä´ ÊÇÔµª S1 ·íÒ˹ Ò·Õèà» ¹ÊÇÔµª à» ´» ´à¾×èͨ ÒÂä¿ãË ¡ÑºÇ§¨Ã·Ñé§ËÁ´ IC1 àºÍà KIA7042 ·í Ò Ë¹ Ò ·Õè µ ÃǨ¨Ñ º áç´Ñ ¹ ä¿àÅÕé  § ¶ Ò áç´Ñ ¹ ä¿àÅÕé  §ÁÕ Ã Ð´Ñ º µèí Ò ¡Ç Ò 4.2V ¢ÒàÍÒµ ¾Ø µ ¢Í§ IC1 ¨ÐÁÕÅͨԡ໠¹ 0 ·íÒãË LED1 µÔ´ÊÇ Ò§ ᨠ§àµ×͹ÊÀÒÇÐẵàµÍÃÕ¾è Åѧ§Ò¹µèÒí (LOW-BAT) ¶Ñ´¨Ò¡ ǧ¨ÃµÃǨÊͺẵàµÍÃÕè¨ÐÁÕµÑǵ Ò¹·Ò¹ R3, ä´âÍ´ D1 áÅЫÕà¹Íà ä´âÍ´ ZD1 ·íÒ˹ Ò·Õè¨íÒ¡Ñ´ áç´Ñ¹·Õ»è Í ¹ãË ¡ºÑ IC2 äÁ ãË ÁáÕ Ã§´Ñ¹à¡Ô¹ 5.6V ÊíÒËÃѺ IC2 à» ¹äÍ«ÕÊÇÔµª ª§Ôè à¾ÒàÇÍà «¾Ñ ¾ÅÒ¡ÃÐáʵèÒí àºÍà TL499A ÊÒÁÒöÃѺáç´Ñ¹ ÍÔ¹¾Øµä´ µ§Ñé áµ ªÇ § 4.2-5.6V à¾×Íè Êà ҧä¿àÅÕÂé §¤§·Õè +5V áµ à¾×Íè » ͧ¡Ñ¹¤ÇÒÁàÊÕÂËÒ·ÕÍè Ò¨à¡Ô´¢Ö¹é ¨Ò¡ ¨Ò¡¡Ò÷íÒ§Ò¹·Õ¼è ´Ô ¾ÅÒ´¢Í§ IC2 ¨ÐÁÕ«àÕ ¹Íà ä´âÍ´ ZD2 ·íÒ˹ Ò·Õ»è Í §¡Ñ¹áç´Ñ¹äÁ ãË à¡Ô¹ +5.1V àÍÒäÇ ´ ÇÂ
2.2.3 Ê Ç¹â»Ãá¡ÃÁ¢ ÍÁÙÅ áç´Ñ¹ä¿àÅÕé§ +5V Ê Ç¹Ë¹Ö觨ÐÊ §ãË ¡ÑºäÍ«Õ MAX662 à¾×èÍÊà ҧáç´Ñ¹ä¿ÊÙ§ +12.5V ÊíÒËÃѺ㪠㹡ÒÃâ»Ãá¡ÃÁ¢ ÍÁÙÅã¹äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC16F877 Ê Ç¹¡ÒôÒǹ âËÅ´¢ ÍÁÙŨҡ¤ÍÁ¾ÔÇàµÍà ¨ÐÁÕÊÇÔµª S2 㪠àÅ×Í¡Ç Òµ ͧ¡ÒÃãË PIC16F877 ÍÂÙ ã¹âËÁ´â»Ãá¡ÃÁËÃ×ÍÃѹ Ê Ç¹Ë¹Ö觢ͧÊÇÔµª ¨Ðà» ¹¡ÒÃàÅ×Í¡¡Òè ÒÂä¿ãË ¡Ñº LED áÊ´§ ÊÀÒÇСÒ÷íÒ§Ò¹¢Í§ PIC16F877 â´Â¶ ÒÍÂÙã ¹âËÁ´â»Ãá¡ÃÁ LED ÊÕá´§¨ÐµÔ´ÊÇ Ò§ áµ ¶Ò ÍÂÙã ¹ âËÁ´Ãѹ LED ÊÕà¢ÕÂǨеԴÊÇ Ò§ ÍÕ¡Ê Ç¹Ë¹Ö觢ͧÊÇÔµª ¨ÐàÅ×Í¡¡Ò÷íÒ§Ò¹¢Í§¢Ò MCLR â´Âã¹ âËÁ´Ãѹ¢Ò MCLR ¨Ðµ ÍࢠҡѺÊÇÔµª RESET à¾×Íè 㪠ã¹ÃÕ૵¡Ò÷íÒ§Ò¹¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ¶ ÒÍÂÙ ã¹âËÁ´â»Ãá¡ÃÁ ¢Ò MCLR ¨Ðµ ÍࢠҡѺǧ¨ÃÊà ҧáç´Ñ¹ä¿ÊÙ§ÊíÒËÃѺâ»Ãá¡ÃÁ àÁ×èÍ¢Ò MCLR ä´ ÃºÑ áç´Ñ¹ +12.5V äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC16F877 ¨ÐࢠÒÊÙâ ËÁ´â»Ãá¡ÃÁ â´ÂÁÕ¡ÒÃ Ê §¼ Ò¹¢ ÍÁÙŢͧ¡ÒÃâ»Ãá¡ÃÁ¨Ð¡ÃзíÒ¼ Ò¹¢Ò RB6 áÅÐ RB7 ¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍÃ
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
33
2.2.4 Ê Ç¹áÊ´§¼Å ÊíÒËÃѺ¡ÒÃáÊ´§¼Å¢ ͤÇÒÁ ºÍà ´ RBX-877 ÁÕ¨´Ø µ ÍâÁ´ÙÅ LCD ¢¹Ò´ 16 µÑÇÍÑ¡Éà 2 ºÃ÷Ѵ â´Â㪠¢Ò RD4-RD7 à» ¹¢ÒÊ §¢ ÍÁÙŠ㪠¢Ò RC5 à» ¹¢Ò E ÊíÒËÃѺ» ͹ÊÑÒ³¾ÑÅÊ àÍç¹àÍàºÔÅ¡Òà ·íÒ§Ò¹¢Í§âÁ´ÙÅ LCD áÅÐ¢Ò RC0 à» ¹¢Ò RS ÊíÒËÃѺ¡íÒ˹´ÃٻẺ¢Í§¢ ÍÁÙÅ·ÕèÊ §ä»ÂѧâÁ´ÙÅ LCD â´ÂÁÕµÑǵ Ò¹·Ò¹»ÃѺ¤ Òä´ VR1 ·íÒ˹ Ò·Õè»ÃѺ¤ÇÒÁࢠÁ¢Í§¨ÍáÊ´§¼Å ÊíÒËÃѺ¡Ã³Õ·Õè㪠âÁ´ÙÅ LCD ·ÕÁè äÕ ¿Ê ͧËÅѧ (back light) ÊÒÁÒö㪠¨ÁÑê à»Íà àÅ×͡㪠ä¿Ê §ËÅѧËÃ×ÍäÁ ¡äç ´ ¡ÒÃáÊ´§¼Å¼ Ò¹ LED ¢Ò RB3, RB4 áÅÐ RB5 ¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC16F877 µ ͵çࢠҡѺ LED4, LED5 áÅÐ LED6 à¾×Íè áÊ´§Ê¶Ò¹Ð¡Ò÷íÒ§Ò¹ ¡ÒÃáÊ´§¼Å´ ÇÂÊÑÒ³àÊÕ§ ¡ÒâѺÊÑÒ³àÊÕ§¢Í§ºÍà ´ RBX-877 㪠¢Ò¾Íà µ RA4 ¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC16F877 µ Íà ÇÁ¡ÑºÇ§¨Ã¢ÂÒÂÊÑÒ³«Öè§ãª ·ÃÒ¹«ÔÊàµÍà Q3 à¾×èÍ ¢ÑºÅíÒ⾧໠Ââ«
2.2.5 Ê Ç¹¾Íà µÍÔ¹¾ØµàÍÒµ ¾µØ ¡ÒÃÃѺÊÑÒ³ÍÔ¹¾ØµËÃ×͢ѺÍØ»¡Ã³ àÍÒµ ¾ØµÀÒ¹͡ÊÒÁÒö¡ÃзíÒä´ â´ÂµÃ§¼ Ò¹¢Ò RA0-RA3 , ¢Ò RA5 áÅÐ ¢Ò RE0-RE2 â´Â¢Ò¾Íà µàËÅ Ò¹ÕÊé ÒÁÒö¡íÒ˹´¡Ò÷íÒ§Ò¹ä´ 3 Ẻ¤×Í 1. à» ¹¢ÒÍÔ¹¾ØµÍйÒÅÍ¡ à¾×Íè ÃѺÊÑÒ³ÍÔ¹¾ØµáººÍйÒÅÍ¡Ê §à¢ Òä»»ÃÐÁÇżÅÂѧǧ¨Ã á»Å§ÊÑÒ³ÍйÒÅÍ¡à» ¹´Ô¨ÔµÍÅ¢¹Ò´ 10 ºÔµÀÒÂã¹äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC16F877 2. à» ¹¢ÒÍÔ¹¾Øµ´Ô¨µÔ ÍÅ 3. à» ¹¢ÒàÍÒµ ¾µØ ´Ô¨µÔ ÍÅ à¾×Íè Ê §Åͨԡ 0 áÅÐ 1 ä»ÂѧÍØ»¡Ã³ ÀÒ¹͡µ Ò§ æ ã¹ÀÒÇл¡µÔ àÁ×èÍàÃÔèÁ¨ ÒÂ俤ÃÑé§áá ¢Ò¾Íà µ·Ñé§ËÁ´¨Ðà» ¹¢ÒÍÔ¹¾ØµÍйÒÅÍ¡ ¨Ø´µ Í 3 ¢Ò·Õãè ª àª×Íè Áµ ÍÍØ»¡Ã³ ÀÒ¹͡ ¨ÐÁÕä¿àÅÕÂé § +5V áÅСÃÒÇ´ ÃÇÁä»´ ÇÂ
ÃÙ»·Õè 2-3 âÁ´ÙÅ LCD ·Õãè ª ¡ºÑ ºÍà ´ RBX-877
ÃÙ»·Õè 2-4 µÑÇÍ ҧἧǧ¨ÃµÃǨ¨ÑºÊÑÒ³·Õãè ª ¡ºÑ ºÍà ´RBX-877
34
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
2.2.5 Ê Ç¹Ê×Íè ÊÒâ ÍÁÙż Ò¹¾Íà µÍ¹Ø¡ÃÁ RS-232 ¡ÒÃÊ×èÍÊÒâ ÍÁÙÅÃÐËÇ Ò§¤ÍÁ¾ÔÇàµÍà ¡ÑºäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC16F877 ÊÒÁÒö·íÒä´ ¼ Ò¹·Ò§¢Ò RC6 áÅÐ RC7 «Ö§è à» ¹¢Ò¾Íà µÊ×Íè ÊÒâ ÍÁÙŢͧâÁ´ÙÅ USART ÍÂÙá Å Ç IC5 àºÍà ICL232 ·íÒ˹ Ò·Õèà»ÅÕè¹ÃдѺáç´Ñ¹¨Ò¡¢Ò¾Íà µ¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ãË µÃ§µÒÁÁҵðҹ RS-232 ¡ ͹¨Ð¶Ù¡Ê §ÍÍ¡ä»Âѧ¨Ø´µ Í K2 «Ö§è à» ¹¤Í¹à¹ç¡àµÍà Ẻ DB-9
2.2.6 ǧ¨Ã¢ÑºÁÍàµÍà ¡ÒâѺÁÍàµÍà 俵ç¢Í§ºÍà ´ RBX-877 㪠IC6 àºÍà L293D â´ÂÁÍàµÍà A ¨Ð¤Çº¤ØÁ ¡ÒâѺà¤Å×è͹¨Ò¡¢Ò¾Íà µ RD0 ¡Ñº RD1 áÅÐàÍç¹àÍàºÔÅ¡Ò÷íÒ§Ò¹´ ÇÂ¢Ò RC2 Ê Ç¹ÁÍàµÍà B ¨Ð¤Çº¤ØÁ¡ÒâѺà¤Å×Íè ¹´ Ç¢ҾÍà µ RD2 ¡Ñº RD3 áÅÐàÍç¹àÍàºÔÅ¡Ò÷íÒ§Ò¹´ Ç¢ҾÍà µ RC1 â´Â ÁÕ LED6 áÅÐ LED7 «Ö§è à» ¹ LED 2 ÊÕ áÊ´§¼Å¡Ò÷íÒ§Ò¹¢Í§ÁÍàµÍà áç´Ñ¹·Õè¨ ÒÂãË ¡Ñºä»äÍ«Õ L293D »ÃСͺ´ ÇÂáç´Ñ¹ä¿àÅÕé§ +5V áÅÐáç´Ñ¹ÀÒ¤¢Ñº ÁÍàµÍà (+Vm) «Ö§è µ Íâ´ÂµÃ§¨Ò¡áºµàµÍÃÕè ·íÒãË ÊÒÁÒö¢Ñº¡ÃÐáÊä´ Í ҧàµçÁ·Õè ¢Ò¾Íà µ RB0, RB1 áÅÐ RB2 㪠¢ºÑ à«Íà âÇÁÍàµÍà â´Âä¿àÅÕÂé §¢Í§à«Íà âÇÁÍàµÍÃ ä´ ÁÒ ¨Ò¡áºµàµÍÃÕè à¾×Íè ãË Á¡Õ ÃÐáÊÁÒ¡¾Í·Õãè ª ¢ºÑ ÁÍàµÍÃ
2.2.7 Ê Ç¹àª×Íè Áµ ÍÃкººÑÊ I2C à¾×Íè ãË ºÍà ´ RBX-877 ÊÒÁÒö¢ÂÒÂÃкºáÅÐÊÒÁÒö»ÃÐÂØ¡µ 㪠§Ò¹µ Ò§æ ä´ ËÅÒ¡ËÅÒ ÁÒ¡ÂÔ§è ¢Ö¹é ¢Ò RC3/SCL áÅÐ¢Ò RC4/SDA ¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC16F877 ¨Ð¶Ù¡ãª à» ¹¢Ò ¾Íà µÊíÒËÃѺàª×Íè Áµ ͡ѺÃкººÑÊ I2C â´ÂÁÕµÇÑ µ Ò¹·Ò¹ R23 áÅÐ R24 à» ¹µÑǵ Ò¹·Ò¹¾ÙÅÍÑ»ãË ¡ÑºÃкººÑÊ I2C
E
ã¹â»Ãá¡ÃÁµÑÇÍ ҧ·Ñé§ËÁ´¡íÒ˹´ãË ãª äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC16F877 Êѧࡵ¨Ò¡â»Ãá¡ÃÁã¹ ºÃ÷Ѵ @ DEVICE
PIC16F877,HS_OSC ' Use PIC16F877 and HS Oscilator
¶ ÒËÒ¡ÁÕ¡ÒÃà»ÅÕÂè ¹á»Å§àºÍà ¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ໠¹ PIC16F877A ËÃ×ÍàºÍà ͹×è æ µ ͧ ·íÒ¡ÒÃá¡ ä¢â»Ãá¡ÃÁ·ÕèºÃ÷Ѵ´Ñ§¡Å ÒǹÕé´ Ç à¾ÃÒÐÍÒ¨·íÒãË â»Ãá¡ÃÁ¢ ÍÁÙÅŧã¹äÁâ¤Ã ¤Í¹â·ÃÅàÅÍà äÁ ä´ áÅÐÍÒ¨ÁÕ¤ÇÒÁ¼Ô´¾ÅҴ㹡Ò÷íÒ§Ò¹¢Í§â»Ãá¡ÃÁ¤Çº¤ØÁä´
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
35
¡Ô¨¡ÃÃÁ·Õè 1 à¢Õ¹â»Ãá¡ÃÁ·´ÊͺºÍà ¤Çº¤ØÁ RBX-877 ¨Ø´»ÃÐʧ¤ à¾×Íè ½ ¡ËÑ´¡ÒÃà¢Õ¹â»Ãá¡ÃÁÀÒÉÒàºÊÔ¡â´Â㪠à¤Ã×Íè §Á×Í·Ò§«Í¿µ áÇà ÃÇ Á¡Ñ¹¤×Í PICBASIC PRO ¤ÍÁ ä¾àÅÍà , Microcode Studio áÅÐ Miracle PIC 㹡ÒÃÊà ҧâ»Ãá¡ÃÁ¤Çº¤ØÁäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ¡ ͹·Õ¨Ð ¹íÒä»ãª 㹡ÒÃÊà ҧËع ¹µ Robo-PICA µ Íä»
¢Ñ¹é µÍ¹¡Ò÷´Åͧ
1. à» ´â»Ãá¡ÃÁ Microcode Studio ·Õäè ´ ¼¹Ç¡¡ÒÃàª×Íè Áµ ͡Ѻ PICBASIC PRO ¤ÍÁä¾àÅÍà (¨Ðà» ¹Ãع ·´Åͧ 㪠ËÃ×ÍÃع ÊÁºÙó ¡äç ´ â´Â·Ø¡â»Ãá¡ÃÁ㹡Ԩ¡ÃÃÁ¹Õãé ª Ã¹Ø ·´ÅÍ§ä´ ·§Ñé ËÁ´) áÅÐ Miracle PIC äÇ àÃÕºà ÍÂáÅ Ç 2. à¢Õ¹â»Ãá¡ÃÁ·´ÅͧµÒÁµÑÇÍ ҧã¹áµ ÅСԨ¡ÃÃÁ Í£ 3. àª×Íè Áµ ÍÊÒ CX-6 ¢Í§ºÍà ´ RBX-877 ࢠҡѺ¾Íà µ¢¹Ò¹¢Í§¤ÍÁ¾ÔÇàµÍà 4. àª×Íè Áµ ÍÍØ»¡Ã³ ·ãÕè ª à¾ÔÁè àµÔÁã¹áµ ÅСÒ÷´ÅͧࢠҡѺ¨Ø´µ ;Íà µ¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà º¹ºÍà ´ RBX-877 ¨Ò¡¹Ñ¹é à» ´ÊÇÔµª ¨Ò Âä¿ãË á¡ ºÍà ´ RBX-877 5. àÅ×Í¡âËÁ´¡Ò÷íÒ§Ò¹¢Í§ºÍà ´ RBX-877 ÁÒ·Õè PROGRAM ËÃ×Í PGM. 6. ·íÒ¡ÒäÍÁä¾Å áÅдÒǹ âËÅ´â»Ãá¡ÃÁŧº¹ºÍà ´ RBX-877 7. ¡´ÊÇÔµª à¾×Íè à»ÅÕÂè ¹âËÁ´¡Ò÷íÒ§Ò¹¢Í§ºÍà ´ RBX-877 à» ¹âËÁ´Ãѹ (RUN) à¾×Íè ·´Êͺ¡Ò÷íÒ§Ò¹
¡Ô¨¡ÃÃÁ Í·Õè 1-1 áÊ´§¼Å´ Ç LED ¨Ò¡ÃÙ»·Õè A1-1 ¢Ò RB3,RB4 áÅÐ RB5 ¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC 㪠µÍ ࢠҡѺ LED â´ÂÁÕµÇÑ µ Ò¹·Ò¹ 510Ω ·íÒ˹ Ò·Õ¨è Òí ¡Ñ´¡ÃÐáÊãË á¡ LED ¨Ò¡Ç§¨Ã¡ÒâѺËÃ×ͤǺ¤ØÁãË LED µÔ´ÊÇ Ò§¨Ðµ Í§Ê §Åͨԡ 1 ãË ¡ºÑ ¢Ò¾Íà µàËÅ Ò¹Õé Ê Ç¹¡Ò÷íÒãË ´ºÑ µ Í§Ê §Åͨԡ 0 ÍÍ¡ä»á·¹ PIC16F877-20 LED6
RB5 RB4 RB3
38 4*#
R18 510
LED5
R17 510
LED4
R16 510
37 4*" 36 4*!
ÃÙ»·Õè A1-1 áÊ´§Ç§¨ÃáÅеíÒá˹ §¡Òõ Í LED º¹ºÍà ´ RBX-877
36
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
' File : a0101.bas ' Description : Drive LED at RBb by HIGH command @ DEVICE PIC16F877,HS_OSC ' Use PIC16F877 and HS Oscilator DEFINE OSC 20 ' Use Oscillator 20 MHz HIGH PORTB.3 LOOP: GOTO LOOP
' Set LED at RB3 --> ON ' Still Here
¡Ò÷íÒ§Ò¹¢Í§â»Ãá¡ÃÁ â»Ãá¡ÃÁ¹Õãé ª ¤Òí Êѧè HIGH à¾×Íè ¢Ñº LED ·Õµè Í ¡Ñº¢Ò RB3 â´Â¤íÒÊѧè HIGH ÁÕ¡Ò÷íÒ§Ò¹ 2 ¢Ñ¹é µÍ¹¤×Í ¡íÒ˹´ãË ¢Ò¾Íà µ RB3 à» ¹àÍÒµ ¾µØ áÅ ÇÊ §Åͨԡ 1 ÍÍ¡ä»·Õ¢è Ò¹Õé ¨Ò¡¹Ñ¹é ¤íÒÊÑ§è ¶Ñ´ÁÒ¨ÐãË â»Ãá¡ÃÁǹÅÙ» ·íÒ§Ò¹«éÒí ÍÂÙ· µÕè Òí á˹ §à´ÔÁ ËÃ×Íà» ¹¡ÒÃËÂØ´¡Ò÷íÒ§Ò¹¢Í§â»Ãá¡ÃÁ¹Ñ¹è àͧ ·íÒãË LED ·Õ¢è Ò RB3 µÔ´¤ Ò§
â»Ãá¡ÃÁ·Õè A1-1 â»Ãá¡ÃÁà¾×Íè Êѧè ãË LED «Ö§è µ ÍÍÂÙ¡ ºÑ ¢Ò RB3 µÔ´ÊÇ Ò§ A1.1.1 à¢Õ¹â»Ãá¡ÃÁ·Õè A1-1 ·íÒ¡ÒäÍÁä¾Å áÅ Ç´Òǹ âËÅ´ä»ÂѧºÍà ´ RBX-877 Êѧࡵ¼Å¡Ò÷íÒ§Ò¹ LED ·Õµè Òí á˹ § RB3 µÔ´¤ Ò§ A1.1.2 ¨Ò¡â»Ãá¡ÃÁ·Õè A1-1 à¾×Íè ãË àËç¹ÀÒ¾¡Ò÷íÒ§Ò¹¢Í§¤íÒÊÑ§è ·Õªè ´Ñ à¨¹ ´Ñ§¹Ñ¹é 㹡Ò÷´Åͧµ Í仨ÐáÊ´§ãË àË繶֧¤íÒÊÑ§è ·Õãè ª ¢ºÑ LED ·ÕÅè ÐàÍÕ´¢Ö¹é «Ö§è µ ͧ㪠2 ¤íÒÊÑ§è ¤×Í OUTPUT PORTB.4 à» ¹¡ÒáíÒ˹´ãË ¢Ò RB4 à» ¹àÍÒµ ¾µØ áŠǨ֧㪠¤Òí ÊÑ§è ¡íÒ˹´ãË RB4 ÁÕÅͨԡ 1 㹺Ã÷Ѵµ Íä» ´Ñ§áÊ´§ã¹â»Ãá¡ÃÁ·Õè A1-2 ' File : a0102.bas ' Description : Drive LED at RB4 by basic method @ DEVICE PIC16F877,HS_OSC ' Use PIC16F877 and HS Oscilator DEFINE OSC 20 ' Use Oscillator 20 MHz OUTPUT PORTB.4 PORTB.4 = 1 LOOP: GOTO LOOP
' RB4 --> OUTPUT ' Set LED at RB4 --> ON ' Still Here
â»Ãá¡ÃÁ·Õè A1-2 áÊ´§â»Ãá¡ÃÁà¾×Íè ¡íÒ˹´ãË LED ·Õ¢è Ò RB4 µÔ´ÊÇ Ò§ â´Âãª Ç¸Ô ¡Õ ÒÃ¾×¹é °Ò¹¤×Í ¡íÒ˹´ãË ¢Ò¾Íà µà» ¹àÍÒµ ¾µØ ¡ ͹ ¨Ò¡¹Ñ¹é Ê §¢ ÍÁÙÅ ]1^ ä»Âѧ¢Ò¾Íà µ·Õµè Í §¡Òà ' File : a0103.bas ' Description : Basic 3-dots running light @ DEVICE PIC16F877,HS_OSC DEFINE OSC 20 TRISB = %11000111 LOOP: PORTB = %00001000 PAUSE 500 PORTB = %00010000 PAUSE 500 PORTB = %00100000 PAUSE 500 GOTO LOOP
' ' ' ' ' ' ' ' '
Use PIC16F877 and HS Oscilator Use Oscillator 20 MHz RB3,RB4,RB5 --> OUTPUT LED at RB3 --> ON Delay Time 0.5 Sec LED at RB4 --> ON Delay Time 0.5 Sec LED at RB5 --> ON Delay Time 0.5 Sec
â»Ãá¡ÃÁ·Õè A1-3 â»Ãá¡ÃÁ·ÕÊè §Ñè §Ò¹ãË LED µÔ´áººä¿ÇÔ§è â´Â㪠¡ÒõԴµ ÍẺ亵
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
37
ËÅÑ¡¡ÒÃàº×Íé §µ ¹ã¹¡ÒâѺÍØ»¡Ã³ àÍÒµ ¾µØ ¤×Í ¡íÒ˹´ãË ¢Ò¾Íà µ·íÒ˹ Ò·Õàè » ¹àÍÒµ ¾µØ ¡ ͹ ¨Ò¡¹Ñ¹é ¨Ö§Ê §¤ ÒÍÍ¡ä»ÂѧµíÒá˹ §¢Ò¾Íà µ¹Ñ¹é ÊíÒËÃѺâ»Ãá¡ÃÁ·Õè A1-3 ¡çÁÇÕ ¸Ô ¡Õ ÒÃઠ¹à´ÕÂǡѹ â´Â¡íÒ˹´¤ Òä»Âѧ¾Íà µâ´ÂµÃ§á·¹´ Ç¢ ÍÁÙÅã¹ÃдѺ 亵 (8 ºÔµ) ´ ǤíÒÊѧè TRISB ¶ Òµ ͧ¡ÒÃãË ¢Òã´·íÒ˹ Ò·Õàè » ¹àÍÒµ ¾µØ µ ͧ¡íÒ˹´ºÔµ¹Ñ¹é ãË ÁÅÕ Í¨Ô¡à» ¹ 0 ¶ Òµ ͧ¡ÒÃãË ¢Òã´·íÒ˹ Ò·Õàè » ¹ÍÔ¹¾Øµ µ ͧ¡íÒ˹´ºÔµ¹Ñ¹é ãË ÁÅÕ Í¨Ô¡à» ¹ 1 ÊíÒËÃѺ¡ÒÃÊ §¤ Ò¢ ÍÁÙÅÍÍ¡ä»áÊ´§·Õ¾è Íà µ¹Ñ¹é ÊÒÁÒÃ¶Ê §¢ ÍÁÙÅ 8 ºÔµµÃ§ÍÍ¡ä»Âѧ¾Íà µ·Õµè Í §¡ÒÃä´ àÅ ´Ñ§áÊ´§ã¹µÑÇÍ ҧâ»Ãá¡ÃÁ A1.1.3 à¢Õ¹â»Ãá¡ÃÁ·Õè A1-3 ·íÒ¡ÒäÍÁä¾Å áÅ Ç´Òǹ âËÅ´ä»ÂѧºÍà ´ RBX-877 Êѧࡵ¼Å¡Ò÷íÒ§Ò¹ LED ·Ñ§é 3 ´Ç§·Õµè Òí á˹ § RB3, RB4 áÅÐ RB5 ¨ÐµÔ´-´ÑºÊÅѺ¡Ñ¹ä»ã¹ÅѡɳТͧä¿ÇÔ§è
¡Ô¨¡ÃÃÁ Í·Õè 1-2 Í Ò¹¤ ÒÍÔ¹¾Øµ´Ô¨ÔµÍÅ´ ÇÂÊÇÔµª º¹ºÍà ´ RBX-877 äÁ ÁÊÕ ÇÔµª ÊÒí ËÃѺ¡ÒÃ㪠§Ò¹»¡µÔµ´Ô µÑ§é ÍÂÙ ¨ÐÁÕ¡àç ¾Õ§ÊÇÔµª ·ãÕè ª àÅ×Í¡âËÁ´¡Ò÷íÒ§Ò¹ (MODE) áÅÐÊÇÔµª ÃàÕ «µ (RESET) à· Ò¹Ñ¹é ´Ñ§¹Ñ¹é à¾×Íè ãË à¢ Ò㨶֧¡ÒÃÃѺ¤ ÒÍÔ¹¾Øµ´Ô¨µÔ ÍÅ´ ÇÂÊÇÔµª à¾×Íè ¹íÒ仵ѴÊÔ¹ ã¨ÊÑ§è ¡Òõ Ò§ æ ¨Ö§¨íÒà» ¹µ ͧµ Íἧǧ¨ÃÊÇÔµª ¨Ò¡ÀÒ¹͡ࢠҡѺºÍà ´ RBX-877
¡Ò÷íÒ§Ò¹¢Í§á¼§Ç§¨ÃÊÇÔµª ¨Ò¡Ç§¨Ãã¹ÃÙ»·Õè A1-2 áÊ´§ãË àËç¹Ç ÒàÁ×Íè äÁ Á¡Õ Òá´ÊÇÔµª ¢Ò DATA ¨ÐÁÕÅͨԡ 1 ¨Ò¡µÑǵ Ò¹·Ò¹ R2 ¤ Ò 10kΩ ·Õµè Í ¾ÙÅÍÑ»äÇ àÁ×Íè ÁÕ¡Òá´ÊÇÔµª S1 ¨Ðµ Í¢Ò DATA ŧ¡ÃÒÇ´ ·íÒãË ¢Ò DATA ÁÕÅͨԡ 0 «Ö§è ¡ç·Òí ãË ÁÕ ¡ÃÐáÊäËż Ò¹µÑǵ Ò¹·Ò¹ R1 Ê §¼ÅãË LED µÔ´ÊÇ Ò§µÒÁ¡Òá´ÊÇÔµª +V
LED R1 510
R2 10k DATA
S1 GND
ÃÙ»·Õè A1-2 áÊ´§ÅѡɳÐáÅÐǧ¨Ã¢Í§á¼§Ç§¨ÃÊÇÔµª «Ö§è àÁ×Íè ¡´ÊÇÔµª ·àÕè ÍÒµ ¾µØ DATA ¨Ðà» ¹Åͨԡ ]0^
38
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
¡ÒÃà¢Õ¹â»Ãá¡ÃÁà¾×èÍÍ Ò¹¤ Ò¨Ò¡ÊÇÔµª ¡ÒõÃǨÊͺ¡Òá´ÊÇÔµª ã¹â»Ãá¡ÃÁÀÒÉÒàºÊÔ¡·Õãè ª PICBASIC PRO ¤ÍÁä¾àÅÍà ÇÔ¸·Õ §Õè Ò Â·ÕÊè ´Ø ¤×Í Ç¹ÅÙ»áŠǵÃǨÊͺ´ ǤíÒÊѧè IF...THEN ¶ ÒÁÕ¡Òá´ÊÇÔµª ¡ãç Ë ¡ÃÐâ´´ä»·íÒ§Ò¹µÒÁà§×Íè ¹ä¢µ Ò§æ 㹡ÒÃà¢Õ¹â»Ãá¡ÃÁ¨Ðµ ͧàÅ×Í¡¾Íà µ·Õµè Í §¡Òõ ͡ѺÊÇÔµª ¡Í ¹ ¨Ò¡¹Ñ¹é ¡íÒ˹´ãË ¢Ò¾Íà µ¹Ñ¹é ·íÒ˹ Ò·Õè à» ¹¾Íà µÍÔ¹¾Øµ´Ô¨µÔ ÍÅ â´Âà¢Õ¹¢ ÍÁÙÅÊíÒËÃѺ¡íÒ˹´¡Ò÷íÒ§Ò¹ä»ÂѧÃÕ¨ÊÔ àµÍà ADCON1
¡Ò÷´Åͧ A1.2.1 µ Íἧǧ¨ÃÊÇÔµª ࢠҡѺºÍà ´ RBX-877 ·Õªè Í § RA0 ´Ñ§ÃÙ»·Õè A1-3 A1.2.2 à¢Õ¹â»Ãá¡ÃÁ·Õè A1-4 ·íÒ¡ÒäÍÁä¾Å áÅ Ç´Òǹ âËÅ´ä»ÂѧºÍà ´ RBX-877 A1.2.3 ·´Åͧ¡´ÊÇÔµª áÅ ÇÊѧࡵ¼Å¡Ò÷íÒ§Ò¹¢Í§ºÍà ´ RBX-877 ·Õàè ¡Ô´¢Ö¹é ¨Ðä´ Â¹Ô àÊÕ§ÍÍ¡·Ò§ÅíÒ⾧ µÒÁ¨Ñ§ËÇСÒá´ÊÇÔµª 㹡Ò÷´Åͧ¹Õãé ª ¾Íà µ A «Ö§è »¡µÔ¨Ðà» ¹¾Íà µÍÔ¹¾ØµÍйÒÅÍ¡ ´Ñ§¹Ñ¹é ¨Ö§µ ͧµÔ´µ ͡ѺÃÕ¨ÊÔ àµÍà ADCON1 à¾×èÍ¡íÒ˹´ÅѡɳСÒ÷íÒ§Ò¹ãËÁ à¾×èÍ¡íÒ˹´ãË à» ¹ÍÔ¹¾Øµ´Ô¨ÔµÍÅá·¹ ¤ Ò·Õèà¢Õ¹ä»Âѧ ÃÕ¨ÊÔ àµÍà ADCON1 ¨Ö§à· ҡѺ $07
µíÒá˹ §µ Íἧǧ¨ÃÊÇÔµª
ÃÙ»·Õè A1-3 áÊ´§µíÒá˹ §¢Í§¨Ø´µ Í RA0 º¹ºÍà ´ RBX-877 ·Õãè ª àª×Íè Áµ ͡Ѻἧǧ¨ÃÊÇÔµª ÊÒí ËÃѺ·´Åͧ ¡ÒÃÍ Ò¹¤ ÒÍÔ¹¾Øµ´Ô¨µÔ ÍŢͧäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ' File : a0104.bas ' Description : Reading digital input via switch board @ DEVICE PIC16F877,HS_OSC ' Use DEFINE OSC 20 ' Use ÄDCON1 = $07 ' Set LOOP: IF PORTA.0 = 0 THEN FREQOUT PORTA.4,300,1000 ENDIF GOTO LOOP
PIC16F877 and HS Oscilator Oscillator 20 MHz PORTA & PORTE --> Digital I/O ' Test Switch at RA0 Press ? ' Show Sound on Piezo 0.3 Sec ' Test Again
â»Ãá¡ÃÁ·Õè A1-4 â»Ãá¡ÃÁÍ Ò¹¤ ÒÍÔ¹¾Øµ´Ô¨µÔ ÍŨҡÊÇÔµª à¾×Íè ¹íÒÁҤǺ¤ØÁ¡ÒâѺàÊÕ§ÍÍ¡·Ò§ÅíÒ⾧
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
39
¡Ô¨¡ÃÃÁ Í·Õè 1-3 áÊ´§¢ ͤÇÒÁº¹âÁ´ÙÅ LCD º¹ºÍà ´ RBX-877 Í͡ẺãË Á¨Õ ´Ø ÊíÒËÃѺàª×Íè Áµ ÍâÁ´ÙÅ LCD àÍÒäÇ àÃÕºà ÍÂáÅ Ç â´ÂÁÕÃÒÂÅÐàÍÕ´ ¢Í§Ç§¨Ãàª×Íè Áµ ʹѧÃÙ»·Õè A1-4 «Ö§è ¨Ðµ ͧ㪠ÃÒÂÅÐàÍÕ´¡ÒÃàª×Íè Áµ ͹Õäé »ÃкØã¹â»Ãá¡ÃÁà¾×Íè ãË PICBASIC PRO ¤ÍÁä¾àÅÍÃ ÃºÑ ·ÃÒºÇ Ò µ ͧµÔ´µ ͡ѺâÁ´ÙÅ LCD ¼ Ò¹·Ò§¢Ò¾Íà µã´º Ò§ ¡ÒÃàª×Íè Áµ ÍâÁ´ÙÅ LCD ¢Í§ºÍà ´ RBX-877 㪠¢Ò¾Íà µ 6 ¢Ò »ÃСͺ´ Ç¢ҾÍà µ RD4-RD7 µ ͡Ѻ¢Ò ¢ ÍÁÙÅ D4-D7 à¾×Íè 㪠ʧ ¢ ÍÁÙÅä»ÂѧâÁ´ÙÅ LCD ã¹âËÁ´ 4 ºÔµ ¶Ñ´ÁÒ¢Ò¾Íà µ RC0 µ ͡Ѻ¢Ò RS áÅÐ RC5 µ ͡Ѻ ¢Ò E Ê Ç¹¢Ò R/W ¢Í§âÁ´ÙÅ LCD ãË µÍ ŧ¡ÃÒÇ´ à¾×Íè ¡íÒ˹´ãË à¢Õ¹¢ ÍÁÙŨҡäÁâ¤Ã¤Í¹â·ÃÅàÅÍà ä»ÂѧâÁ´ÙÅ LCD à¾Õ§·Ò§à´ÕÂÇ
¡ÒáíÒ˹´µíÒá˹ §¢Ò¾Íà µ·Õµè Í ¡ÑºâÁ´ÙÅ LCD ãË PICBASIC PRO ¤ÍÁä¾àÅÍÃ ÃºÑ Ã٠㹡ÒÃà¢Õ¹â»Ãá¡ÃÁÀÒÉÒàºÊÔ¡ÊíÒËÃѺ PICBASIC PRO ¤ÍÁä¾àÅÍà à¾×Íè àª×Íè Áµ ÍäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ¡Ñº âÁ´ÙÅ LCD ¨Ðµ ͧÁÕ¡ÒûÃСÒÈËÃ×Í¡íÒ˹´ª×Íè ¢ÒãË µÇÑ ¤ÍÁä¾àÅÍÃ ÃºÑ ·ÃÒºµÑ§é áµ µÍ¹µ ¹¢Í§â»Ãá¡ÃÁ ´Ñ§¹Õé 1: DEFINE 2: DEFINE 3: DEFINE 4: DEFINE 5: DEFINE 6: DEFINE 7: DEFINE 8: DEFINE 9: DEFINE 10:DEFINE
LCD_DREG PORTD ' LCD_DBIT 4 ' LCD_RSREG PORTC ' LCD_RSBIT 0 ' LCD_EREG PORTC ' LCD_EBIT 5 ' LCD_BITS 4 ' LCD_LINES 2 ' LCD_COMMANDUS 2000 LCD_DATAUS 50
Set LCD Data port Set starting Data bit (0 or 4) if 4-bit bus Set LCD Register Select port Set LCD Register Select bit Set LCD Enable port Set LCD Enable bit Set LCD bus size (4 or 8 bits) Set number of lines on LCD ' Set command delay time in microsecond ' Set data delay time in microsecond +5V JP1
RC0 15
4
24
6
RC5 PIC16F877-20 RB7 RB6 RB5 RB4
40
RS E
DSP1 LCD 16x2 (back light option)
BLA +V Vo
D7 D6 D5 D4 D3 D2 D1 D0 R/W BLK GND 14 13 12 11 10 9 8 7 5 16 2
15
4 # %
BACK LIGHT ON
1 3 VR1 10k
BRIGHTNESS
39 38 37
ÃÙ»·Õè A1-4 ǧ¨Ãàª×Íè Áµ ÍâÁ´ÙÅ LCD ¢¹Ò´ 16 µÑÇÍÑ¡Éà 2 ºÃ÷Ѵ¡ÑºäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC16F877 º¹ºÍà ´ RBX-877
40
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
¤íÒÊѧè DEFINE LCD ¨Ðµ ͧÃкطÊÕè Ç ¹ËÑǢͧâ»Ãá¡ÃÁ ¡ ͹àÃÕ¡㪠¤Òí Êѧè à¾×Íè µÔ´µ ͡ѺâÁ´ÙÅ LCD ´Ñ§ÁÕÃÒÂÅÐàÍÕ´¢Í§â»Ãá¡ÃÁáµ ÅкÃ÷Ѵ´Ñ§¹Õé ºÃ÷Ѵ·Õè 1 ºÃ÷Ѵ·Õè 2 ºÃ÷Ѵ·Õè 3 ºÃ÷Ѵ·Õè 4 ºÃ÷Ѵ·Õè 5 ºÃ÷Ѵ·Õè 6 ºÃ÷Ѵ·Õè 7 ºÃ÷Ѵ·Õè 8 ºÃ÷Ѵ·Õè 9 ºÃ÷Ѵ·Õè 10
¡íÒ˹´ãË PORTD à» ¹¾Íà µÊíÒËÃѺ¢Ò¢ ÍÁÙÅ D4-D7 DEFINE LCD_DBIT 4 ¡íÒ˹´ãË ¢Ò¢ ÍÁÙÅàÃÔÁè µ ¹¹Ñº¨Ò¡ 4 (D4) ¡ÒáíÒ˹´¤ ҢͧºÃ÷Ѵ¹Õ¡é Òí ˹´¤ Òä´ à¾Õ§Êͧ¤ Òà· Ò¹Ñ¹é ¤×Í 0 ËÃ×Í 4 DEFINE LCD_DREG PORTD
DEFINE LCD_RSREG PORTC DEFINE LCD_RSBIT 0 DEFINE LCD_EREG PORTC DEFINE LCD_EBIT 5 DEFINE LCD_BITS 4 DEFINE LCD_LINES 2 DEFINE LCD_COMMANDUS 2000 DEFINE LCD_DATAUS 50
¡íÒ˹´ãË PORTC à» ¹¾Íà µÊíÒËÃѺ¢Ò RS ÃкصÒí á˹ §ºÔµ¢Í§¢Ò RS à» ¹ºÔµ 0 (RC0) ¡íÒ˹´ãË PORTC à» ¹¾Íà µÊíÒËÃѺ¢Ò E ÃкغµÔ ·Õè 5 ¢Í§ PORTC à» ¹¢Ò E (RC5) ¡íÒ˹´¨íҹǹºÔµã¹¡ÒÃÊ×Íè ÊÒâ ÍÁÙÅà» ¹áºº 4 ºÔµ ¡íÒ˹´¨íҹǹºÃ÷Ѵ¢Í§âÁ´ÙÅ LCD à» ¹ 2 ºÃ÷Ѵ ¡íÒ˹´ª ǧ˹ ǧàÇÅÒÊíÒËÃÑºÊ §¤íÒÊѧè 2000 äÁâ¤ÃÇÔ¹Ò·Õ ¡íÒ˹´ª ǧ˹ ǧàÇÅÒÊíÒËÃÑºÊ §¢ ÍÁÙÅ 50 äÁâ¤ÃÇÔ¹Ò·Õ
¤íÒÊÑ§è ·Õãè ª 㹡ÒÃÊ §¢ ͤÇÒÁä»áÊ´§¼Å·Õâè Á´ÙÅ LCD ¤×Í LCDOUT ¡ÒäǺ¤ØÁâÁ´ÙÅ LCD ¨Ðµ Í§Ê § ¤íÒÊÑè§áÅТ ÍÁÙŠ㹡óÕà¢Õ¹¤íÒÊѧè àÃÔÁè ¨Ò¡à¢Õ¹ÃËÑÊ $FE à¾×Íè ᨠ§ãË ¤ÍÁä¾àÅÍà ·ÃÒºÇ Ò ¢ ÍÁÙŵ ͨҡ¹Õ¨é Ðà» ¹¢ ÍÁÙÅ ¤íÒÊѧè ¡µÑÇÍ ҧ ¤íÒÊѧè à¤ÅÕÂà ¨ÍáÊ´§¼Å¨Ðµ Í§Ê §¤ Ò $FE Í͡仡 ͹ µÒÁ´ Ç¢ ÍÁÙŤíÒÊÑ§è ¡ÒÃà¤ÅÕÂà ¨ÍáÊ´§ ¼Å¤×Í $01 áÊ´§µÑÇÍ ҧ¡ÒÃ㪠§Ò¹ã¹â»Ãá¡ÃÁ·Õè A1-5 â´ÂàÃÔÁè µÑ§é áµ ºÃ÷Ѵ Main à» ¹µ ¹ä» ´Ñ§¹Õé ºÃ÷Ѵáá LCDOUT $FE,$01 à» ¹¡ÒÃÊ §¤íÒÊѧè à¾×Íè à¤ÅÕÂà ¨ÍáÊ´§¼Å ºÃ÷Ѵ·Õè 2 LCDOUT "Innovative" ¹íÒ¢ ͤÇÒÁ Innovative áÊ´§·ÕèâÁ´ÙÅ LCD ºÃ÷Ѵáá ºÃ÷Ѵ·Õè 3 LCDOUT $FE,$C0 à» ¹¡ÒÃÊ §¤íÒÊѧè à¾×Íè ãË à¤Íà à«Íà àÅ×Íè ¹ä»·Õºè Ã÷Ѵ·Õè 2 ºÃ÷Ѵ·Õè 4 LCDOUT "Experiment" ¹íÒ¢ ͤÇÒÁ Experiment áÊ´§·ÕèâÁ´ÙÅ LCD ºÃ÷ѴÊͧ ËÁÒÂà赯 ¤íÒÊÑè§à¾×èÍãË à¤Íà à«Íà ¢Í§âÁ´ÙÅ LCD ¡ÃÐâ´´¡ÅѺ价ÕèµíÒá˹ §áá¢Í§ºÃ÷Ѵº¹ ¤×Í $FE,$80 ¶ Òµ ͧ¡ÒÃãË à¤Íà à«Íà 任ÃÒ¡¯·Õµ è Òí á˹ §¶Ñ´¨Ò¡¹Õé ÊÒÁÒö·íÒä´ â´Â¡ÒáíÒ˹´¤ ÒáÍ´à´ÃÊàÅ×Íè ¹ ¶Ñ´ä»
¡Ò÷´Åͧ A1.3.1 ¹íÒâÁ´ÙÅ LCD ÁÒàÊÕºŧº¹¤Í¹à¹ç¡àµÍà 16 ¢Òº¹ºÍà ´ RBX-877 ËÒ¡µ ͧ¡ÒÃãË ä¿Ê ͧËÅѧ·íÒ§Ò¹ µ ͧàÊÕº¨ÑÁê à»Íà ·µÕè Òí á˹ § LCD backlight
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
41
A1.3.2 à¢Õ¹â»Ãá¡ÃÁ·Õè A1-5 ·íÒ¡ÒäÍÁä¾Å áÅ Ç´Òǹ âËÅ´ä»ÂѧºÍà ´ RBX-877 áÅ ÇÊѧࡵ¼Å¡Ò÷íÒ§Ò¹¢Í§ ºÍà ´ RBX-877 ·Õàè ¡Ô´¢Ö¹é ·Õâè Á´ÙÅ LCD áÊ´§¢ ͤÇÒÁ Innovative 㹺Ã÷Ѵº¹ áÅÐ Experiment 㹺Ã÷ѴŠҧ ' File : a0105.bas ' Description : Show message on LCD module @ DEVICE PIC16F877,HS_OSC DEFINE OSC 20
' Use PIC16F877 and HS Oscilator ' Use Oscillator 20 MHz
DEFINE DEFINE DEFINE DEFINE DEFINE DEFINE DEFINE DEFINE DEFINE DEFINE
LCD_DREG PORTD LCD_DBIT 4 LCD_RSREG PORTC LCD_RSBIT 0 LCD_EREG PORTC LCD_EBIT 5 LCD_BITS 4 LCD_LINES 2 LCD_COMMANDUS 2000 LCD_DATAUS 50
' ' ' ' ' ' ' ' ' '
Set Set Set Set Set Set Set Set Set Set
Main:
LCDOUT LCDOUT LCDOUT LCDOUT
' ' ' '
Send Command To Clear Screen Show Text on Line 1 Set Cursor on Line 2 Show Text on Line 2
$FE,$01 "Innovative" $FE,$C0 "Experiment"
LCD Data port starting Data bit (0 or 4) if 4-bit bus LCD Register Select port LCD Register Select bit LCD Enable port LCD Enable bit LCD bus size (4 or 8 bits) number of lines on LCD command delay time in us data delay time in us
END
â»Ãá¡ÃÁ·Õè A1-5 â»Ãá¡ÃÁ·´ÅͧáÊ´§¢ ͤÇÒÁº¹âÁ´ÙÅ LCD ¢Í§ºÍà ´ RBX-877
ÃÙ»·Õè A1-5 áÊ´§¼Å¡Ò÷íÒ§Ò¹¢Í§â»Ãá¡ÃÁ·Õè A1-5 º¹âÁ´ÙÅ LCD ¢Í§ºÍà ´ RBX-877 ¡Ã³Õ¡ÒÃáÊ´§¢ ͤÇÒÁ·Õ¨è ͧ͢âÁ´ÙÅ LCD ÁÕ¤ÇÒÁࢠÁÁÒ¡ËÃ×Í ¹ ÍÂà¡Ô¹ä» ÊÒÁÒö»ÃѺ¤ÇÒÁࢠÁ (ËÃ×ͤÇÒÁÊÇ Ò§) ä´ ¨Ò¡ µÑǵ Ò¹·Ò¹»ÃѺ¤ Òä´ ºÃÔàdz´ Ò¹º¹¢Í§âÁ´ÙÅ LCD ´Ñ§ã¹ÃÙ»
42
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
¡Ô¨¡ÃÃÁ Í·Õè 1-4 ¡ÒÃÊ×èÍÊÒâ ÍÁÙšѺ¤ÍÁ¾ÔÇàµÍà ¼ Ò¹¾Íà µÍ¹Ø¡ÃÁ ¡ÒÃÊ×Íè ÊÒâ ÍÁÙÅÃÐËÇ Ò§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ¡ºÑ ¤ÍÁ¾ÔÇàµÍà Áѡ㪠¡ÒÃÊ×Íè ÊÒü Ò¹¾Íà µÍ¹Ø¡ÃÁ â´Â㪠Áҵðҹ¡ÒÃÊ×Íè ÊÒà RS-232 «Ö§è ·Ñ§é ÀÒ¤ÃѺáÅÐÀÒ¤Ê §¨Ðµ ͧ¡íÒ˹´¤ ÒÍѵÃҺʹáÅÐÃٻẺ¢ ÍÁÙÅãË µÃ§¡Ñ¹ ÊíÒËÃѺºÍà ´ RBX-877 ä´ àµÃÕÂÁǧ¨ÃÊíÒËÃѺàª×Íè Áµ ͡Ѻ¤ÍÁ¾ÔÇàµÍà ¼Ò ¹¾Íà µÍ¹Ø¡ÃÁµÒÁÁҵðҹ RS-232 äÇ áÅ Ç â´Â㪠äÍ«Õ ICL232 ´Ñ§áÊ´§ã¹ÃÙ»·Õè A1-6 â´ÂäÍ«Õ ICL232 ¨Ð·íÒ˹ Ò·Õàè »ÅÕÂè ¹ÃдѺáç´Ñ¹¨Ò¡ÃдѺ TTL ¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ãË à» ¹áç´Ñ¹µÒÁÁÒµ°Ò¹ RS-232 ÊíÒËÃѺ¢ÒÊ §¢ ÍÁÙÅ ã¹·Ò§¡ÅѺ¡Ñ¹·Õ¢è ÒÃѺ¢ ÍÁÙÅ ¨Ð·íÒ ¡ÒÃà»ÅÕÂè ¹ÃдѺáç´Ñ¹µÒÁÁҵðҹ RS-232 ¡ÅѺä»à» ¹ÃдѺ TTL +5V C10-C14 10/50V
C12
6 7 8
1 2 3 4
16
1 3
C10
C11
2
IC5 ICL232
PIC16F877-20
4 5
C13
7
10
25
8
9
26
5
6
RC6/TxD RC7/RxD
15
C14
SERIAL PORT
ÃÙ»·Õè A1-6 ǧ¨Ãàª×Íè Áµ ;Íà µÍ¹Ø¡ÃÁ RS-232 ¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC16F877 º¹ºÍà ´ RBX-877
à¤Ã×èͧÁ×Í·Ò§«Í¿µ áÇà ·Õè㪠ª ÇÂ㹡ÒÃÃÑºÊ §¢ ÍÁÙšѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà (¡) Hyper terminal Hyper Terminal à» ¹â»Ãá¡ÃÁÊ×Íè ÊÒâ ÍÁÙÅ͹ءÃÁÂÍ´¹ÔÂÁ »¡µÔ¨ÐµÔ´µÑ§é ÁҾà ÍÁ¡ÑºÃкº»¯ÔºµÑ ¡Ô Òà ÇÔ¹â´ÇÊ áÅ Ç ã¹¡ÒÃàÃÕ¡㪠§Ò¹à¢ Òä»·Õàè Á¹Ù Accessories à Communications àÅ×Í¡â»Ãá¡ÃÁ Hyper Terminal «Ö§è ÁÕäͤ͹໠¹ÃÙ» ÁÕ¢¹Ñé µÍ¹¡ÒáíÒ˹´¤ Òµ Ò§æ ¢Í§â»Ãá¡ÃÁ´Ñ§¹Õé
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
43
¢Ñ¹é µÍ¹·Õè 1 àÁ×Íè àÃÕ¡㪠§Ò¹¤Ãѧé áá â»Ãá¡ÃÁ¨Ðᨠ§ãË ¢Ñ鹵͹·Õè 2 àÅ×Í¡¾Íà µÍ¹Ø¡ÃÁ·Õèµ Í§¡ÒõԴµ Í·Õèª Í§ » ͹ª×Íè ·Õªè Í § Name áÅ Ç¡´»ØÁ OK Connect using àÅ×Í¡ COM1 ËÃ×Í COM ã´æ
¢Ñ¹é µÍ¹·Õè 4 ËÅѧ¨Ò¡¡íÒ˹´¤ ÒàÊÃç¨àÃÕºà Í â»Ãá¡ÃÁ ¨ÐáÊ´§Ë¹ Òµ Ò§ÊíÒËÃѺ¡ÒÃÊ×Íè ÊÒâ ÍÁÙÅ¢Ö¹é ÁÒ ¾Ã ÍÁ ¢Ñ鹵͹·Õè 3 ¡íÒ˹´¤ ÒÍѵÃҺʹ ÃÇÁ·Ñé§ÃٻẺ¢Í§ µÔ´µ ÍÊ×Íè ÊÒáѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà (µÑÇàÅ¢ã¹ÀÒ¾ ¢ ÍÁÙÅ㹡ÒÃÊ×Íè ÊÒâ ÍÁÙÅãË µÃ§¡Ñº¤ Ò·Õ¡è Òí ˹´ãË ¡ºÑ à» ¹¤ Ò·Õàè ¡Ô´¢Ö¹é ËÅѧ¨Ò¡µÔ´µ ͡ѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà äÁâ¤Ã¤Í¹â·ÃÅàÅÍà »¡µÔà» ¹ 9600 8N1 ä´ àÃÕºà ÍÂáÅÐÁÕ¡ÒÃÊ×Íè ÊÒâ ÍÁÙÅà¡Ô´¢Ö¹é áÅ Ç
(¢) ÊíÒËÃѺ¼Ùã ª §Ò¹â»Ãá¡ÃÁ Microcode Studio ¶ Òà¢Õ¹â»Ãá¡ÃÁÀÒÉÒàºÊÔ¡¼ Ò¹«Í¿µ áÇà Microcode Studio ÍÂÙá Å Ç ã¹ Microcode Studio ä´ ¨´Ñ àµÃÕÂÁ˹ Òµ Ò§ÊíÒËÃѺÊ×èÍÊÒâ ÍÁÙÅ͹ءÃÁÁÒãË ´ Ç ÊÒÁÒöàÃÕ¡㪠§Ò¹ä´ â´Âä»·ÕèàÁ¹Ù View à Serial Communication Window ËÃ×Í¡´»ØÁ F4 ËÃ×ͤÅÔ¡·Õäè ͤ͹ º¹Ë¹ Òµ Ò§ËÅÑ¡¢Í§ Microcode Studio ¡çä´ ã¹ÃÙ»·Õè A1-7 áÊ´§Ë¹ Òµ Ò§¡ÒÃÊ×Íè ÊÒâ ÍÁÙÅ͹ءÃÁËÃ×Í Serial communication ¢Í§ Microcode Studio ¼Ùã ª §Ò¹ÊÒÁÒö»ÃѺ¤ ÒÍѵÃҺʹáÅФ ÒÁҵðҹ¡ÒÃÊ×Íè ÊÒâ ÍÁÙÅÍ×¹è æ ¼ ҹ˹ Òµ Ò§¹Õäé ´ â´ÂµÃ§
44
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
ÃÙ»·Õè A1-7 áÊ´§Ë¹ Òµ Ò§ Serial Communication Window ÊíÒËÃѺÃÑºÊ §¢ ÍÁÙšѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍÃ
¡ÒÃà¢Õ¹â»Ãá¡ÃÁà¾×èÍÊ×èÍÊÒâ ÍÁÙÅ͹ءÃÁ¢Í§ PICBASIC PRO ¤ÍÁä¾àÅÍà ¤íÒÊѧè ÊíÒËÃѺ¡ÒÃÃѺáÅÐÊ §¢ ÍÁÙÅ͹ءÃÁ·ÕÁè ÍÕ ÂÙã ¹ PICBASIC PRO ¤ÍÁä¾àÅÍà Á´Õ Ç Â¡Ñ¹ËÅÒ¤íÒÊÑ§è ´Ñ§¹Õé SEROUT SEROUT2 HSEROUT SERIN SERIN2 HSERIN
â´Â¡Ô¨¡ÃÃÁ Í¹ըé Ð͸ԺÒ¶֧¡ÒÃ㪠§Ò¹¤íÒÊѧè ã¹ÃٻẺµ Ò§æ µÅÍ´¨¹¢ Í´ÕáÅТ ÍàÊÕ´ ÇÂ
¡ÒÃ㪠§Ò¹¤íÒÊѧè SEROUT
SEROUT à» ¹¤íÒÊѧè Ê §¢ ÍÁÙÅ͹ءÃÁ¨Ò¡äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ä»Âѧ¾Íà µÍ¹Ø¡ÃÁ¢Í§¤ÍÁ¾ÔÇàµÍà Í ҧ
§ Ò·ÕÊè ´Ø â´Â¼Ùã ª §Ò¹äÁ ¨Òí à» ¹µ ͧ¡íÒ˹´¤ Ò¾ÒÃÒÁÔàµÍà µÒ §æ ÁÒ¡¹Ñ¡ ÁÕû٠Ẻ¡ÒÃ㪠§Ò¹´Ñ§¹Õé SEROUT Pin,Mode,[Item {,Item...}] Pin ËÁÒ¶֧ ¢Ò¾Íà µ·Õµ è Í §¡ÒÃ㪠ʧ ¢ ÍÁÙÅ
ËÁÒ¶֧ ¡ÒáíÒ˹´¤ ÒÍѵÃҺʹáÅÐÃٻẺ¡ÒÃÊ×Íè ÊÒâ ÍÁÙŠઠ¹ ¶ Ò෠ҡѺ 0 à» ¹¡ÒÃÊ×Íè ÊÒà ¢ ÍÁÙÅ´ ÇÂÍѵÃҺʹ 2,400 ºÔµµ ÍÇÔ¹Ò·Õ ¶ Ò෠ҡѺ 2 à» ¹¡ÒÃÊ×Íè ÊÒâ ÍÁÙÅ´ ÇÂÍѵÃҺʹ 9,600 ºÔµµ ÍÇÔ¹Ò·Õ Item ¤×Í ¢ ÍÁÙÅ·Õµ è Í §¡ÒÃÊ §ÍÍ¡ä» ¢ ͨíÒ¡Ñ´¢Í§¤íÒÊѧè SEROUT ¤×Í äÁ ÊÒÁÒö¨Ñ´ÃٻẺ¢ ÍÁÙÅ·Õµè Í §¡ÒÃÊ §ä´ áÅÐÊÒÁÒÃ¶Ê §ä´ ੾ÒÐÃËÑÊáÍÊ¡Õàé · ҹѹé Mode
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
45
' File : a0106.bas ' Description : Send serial data to computer by SEROUT command @ DEVICE PIC16F877,HS_OSC DEFINE OSC 20 A VAR BYTE A = 0 MAIN: SEROUT PORTC.6,2,[A] PAUSE 10 A = A+1 GOTO MAIN
' Use PIC16F877 and HS Oscilator ' Use Oscillator 20 MHz ' ' ' ' '
Start A with 0 Send A Delay 10 Millisecond Increment A Again
¤íÒ͸ԺÒÂà¾ÔÁè àµÔÁ ã¹â»Ãá¡ÃÁ¹Õãé ª µÇÑ á»Ã A ·íÒ˹ Ò·Õàè ¡çº¤ Ò¢ ÍÁÙÅ ¡ Í¹Ê §ÍÍ¡ä»Âѧ¾Íà µÍ¹Ø¡ÃÁ â´Â¤ Ò·Õ¹è Òí ä»áÊ´§¨Ð ÁÕ¤Ò µÑ§é áµ 0-255 àÁ×Íè Ê §ä»Âѧâ»Ãá¡ÃÁÊ×Íè ÊÒâ ÍÁÙÅ͹ءÃÁ ÍÒ·Ô Hyper Terminal ¢ ÍÁÙŨÐä´ ÃºÑ ¡ÒèѴÍÂÙã ¹ ÃٻẺ¢Í§ÃËÑÊáÍÊ¡Õé ·Ò§´ Ò¹ÎÒôáÇà â»Ãá¡ÃÁàÅ×͡㪠¢Ò¾Íà µ RC6 㹡ÒÃÊ §¢ ÍÁÙÅÍÍ¡ä»Âѧ¾Íà µÍ¹Ø¡ÃÁ áºÐ¡íÒ˹´ ¤ Ò Mode ෠ҡѺ 2 «Ö§è ËÁÒ¶֧ àÅ×Í¡ÍѵÃҺʹ 9,600 ºÔµµ ÍÇÔ¹Ò·Õ㹡ÒÃÊ×Íè ÊÒâ ÍÁÙÅ ´Ñ§¹Ñ¹é ·Õâè »Ãá¡ÃÁÊ×Íè ÊÒâ ÍÁÙź¹¤ÍÁ¾ÔÇàµÍà ¨Ðµ ͧ¡íÒ˹´¤ ÒÍѵÃҺʹãË µÃ§¡Ñ¹´ ÇÂ
â»Ãá¡ÃÁ·Õè A1-6 â»Ãá¡ÃÁ·´Åͧ㪠¤Òí Êѧè SEROUT à¾×Íè Ê §¢ ÍÁÙŢͧµÑÇá»Ã A ÍÍ¡ä»Âѧ¤ÍÁ¾ÔÇàµÍà A1.4.1 à¢Õ¹â»Ãá¡ÃÁ·Õè A1-6 ·íÒ¡ÒäÍÁä¾Å áÅ Ç´Òǹ âËÅ´ä»ÂѧºÍà ´ RBX-877 A1.4.2 àª×Íè Áµ ÍÊÒÂÃÐËÇ Ò§ºÍà ´ RBX-877 ¡Ñº¾Íà µÍ¹Ø¡ÃÁ A1.4.3 à» ´â»Ãá¡ÃÁ Hyper Terminal ËÃ×Í˹ Òµ Ò§ Serial Communication ã¹ Microcode Studio áÅ ÇàÅ×Í¡ ÍѵÃҺʹ໠¹ 9,600 ºÔµµ ÍÇÔ¹Ò·Õ ÃٻẺ¢ ÍÁÙÅà» ¹ 8N1 A1.4.4 Ãѹâ»Ãá¡ÃÁ áÅ ÇÊѧࡵ¡ÒÃáÊ´§¼Å¢Í§â»Ãá¡ÃÁ Hyper Terminal ËÃ×Í˹ Òµ Ò§ Serial Communication ã¹ Microcode Studio ·ÕËè ¹ Òµ Ò§ËÅÑ¡¢Í§ Hyper Terminal áÊ´§¼Å¡Ò÷íÒ§Ò¹´Ñ§¹Õé ËÁÒÂà赯 ¢ ÍÁÙÅÍ ҧÅÐàÍÕ´à¡ÕÂè ǡѺ¡ÒÃ㪠§Ò¹ ¤íÒÊѧè SEROUT áÅФíÒÊÑ§è ·Ñ§é ËÁ´ ¢Í§ PICBASIC PRO ¤ÍÁä¾àÅÍà ÊÒÁÒö´ÙÃÒÂÅÐàÍÕÂ´ä´ ¨Ò¡Ë¹Ñ§Ê×Í àÃÕ¹ÃÙá ÅÐ㪠§Ò¹ PICBASIC PRO ¤ÍÁä¾àÅÍà ¨Ñ´¾ÔÁ¾ â´Â ºÃÔÉ·Ñ ÍÔ¹â¹àǵտ àÍç¡à¾ÍÃÔàÁ¹µ ¨íÒ¡Ñ´ (www.inex.co.th) ËÃ×ͨҡ ˹ Òµ Ò§ ª ÇÂàËÅ×ͧ͢ Microcode Studio
46
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
¡ÒÃ㪠§Ò¹¤íÒÊѧè SEROUT2 ÃٻẺ¡ÒÃ㪠§Ò¹¤íÒÊѧè SEROUT2 DataPin{\FlowPin},Mode,{Pace,} {Timeout,Label,}[Item...] DATAPIN MODE
Item
ËÁÒ¶֧ ¢Ò¾Íà µ·Õãè ª ʧ ¢ ÍÁÙÅ
ËÁÒ¶֧ ¤ Ò·Õãè ª ¡Òí ˹´ÃٻẺ¡ÒÃÊ×Íè ÊÒâ ÍÁÙÅáÅÐÍѵÃҺʹ·Õãè ª ઠ¹ ¶ ÒàÅ×Í¡ÍѵÃҺʹ 9,600 ºÔµµ ÍÇÔ¹Ò·Õ ÃٻẺ¢ ÍÁÙÅà» ¹ 8N1 µ ͧ¡íÒ˹´¤ Ò Mode ෠ҡѺ 84 ¶ ÒàÅ×Í¡ÍѵÃҺʹ 2,400 ºÔµµ ÍÇÔ¹Ò·Õ ÃٻẺ¢ ÍÁÙÅà» ¹ 8N1 µ ͧ¡íÒ˹´¤ Ò Mode ෠ҡѺ 396 ¤×Í ¢ ÍÁÙÅ·Õµè Í §¡ÒÃÊ §ÍÍ¡ä»
¢ Íᵡµ Ò§·Õàè Ëç¹ä´ Í ҧªÑ´à¨¹¢Í§¤íÒÊѧè SEROUT áÅÐ SEROUT2 ¡ç¤Í× SEROUT2 ÊÒÁÒö¡íÒ˹´ ¤ Ò¾ÒÃÒÁÔàµÍà µÒ §æ ä´ ÁÒ¡¡Ç Ò àª ¹ ÊÒÁÒö¡íÒ˹´ÃٻẺ¢Í§¢ ÍÁÙÅ·Õ·è Òí ¡ÒÃÊ §, ÃٻẺ¢Í§¡ÒÃÊ § áÅÐÍѵÃÒ àÃçÇ㹡ÒÃÊ §ä´ ã¹â»Ãá¡ÃÁ·´Åͧ·Õè A1-7 áÊ´§ãË àË繶֧¡ÒáíÒ˹´ÃٻẺ¢ ÍÁÙÅ·Õáè Ê´§à» ¹àÅ¢°Ò¹ÊÔº (ÃÐºØ ¤íÒÊѧè DEC äÇ ·´Õè Ò ¹Ë¹ Ңͧ¢ ÍÁÙÅ·Õµè Í §¡ÒÃÊ § )áÅеÑÇàÅ¢°Ò¹Êͧ (ÃкؤÒí Êѧè BIN äÇ ·´Õè Ò ¹Ë¹ Ңͧ¢ ÍÁÙÅ·Õè µ ͧ¡ÒÃÊ §) ¹Í¡¨Ò¡¹ÕÊé ÒÁÒöÊѧè ãË àÅ×Íè ¹à¤Íà à«Íà ä»ÂѧµíÒá˹ §Ë¹ ÒÊØ´¢Í§ºÃ÷ѴáÅÐ¢Ö¹é ºÃ÷ѴãËÁ ä´ â´Â¡ÒÃ Ê §ÃËÑÊáÍÊ¡Õé $0D áÅÐ $0A µÒÁÅíҴѺ A1.4.5 à¢Õ¹â»Ãá¡ÃÁ·Õè A1-7 ·íÒ¡ÒäÍÁä¾Å áÅ Ç´Òǹ âËÅ´ä»ÂѧºÍà ´ RBX-877 A1.4.6 àª×Íè Áµ ÍÊÒÂÃÐËÇ Ò§ºÍà ´ RBX-877 ¡Ñº¾Íà µÍ¹Ø¡ÃÁ A1.4.7 à» ´â»Ãá¡ÃÁ Hyper Terminal ËÃ×Í˹ Òµ Ò§ Serial Communication ã¹ Microcode Studio áÅ ÇàÅ×Í¡ ÍѵÃҺʹ໠¹ 2,400 ºÔµµ ÍÇÔ¹Ò·Õ ÃٻẺ¢ ÍÁÙÅà» ¹ 8N1 ' File : a0107.bas ' Description : Send serial data to computer by SEROUT2 command @ DEVICE PIC16F877,HS_OSC ' Use PIC16F877 and HS Oscilator DEFINE OSC 20 ' Use Oscillator 20 MHz A VAR BYTE A = 0 ' Start A with 0 MAIN: SEROUT2 PORTC.6,396,[DEC A," ",BIN A,$0D,$0A] ' Show A in Decimal Mode PAUSE 10 ' Delay A = A+1 ' Increment A GOTO MAIN
¤íÒ͸ԺÒÂà¾ÔÁè àµÔÁ ã¹â»Ãá¡ÃÁ¹Õ¡é Òí ˹´¤ Ò Mode ¢Í§¤íÒÊѧè SEROUT2 äÇ à· Ò¡Ñº 396 «Ö§è ËÁÒ¶֧ àÅ×Í¡ÍѵÃҺʹ㹡Òà Ê×Íè ÊÒâ ÍÁÙÅ෠ҡѺ 2,400 ºÔµµ ÍÇÔ¹Ò·Õ ÃٻẺ¢ ÍÁÙÅà» ¹áºº 8N1 ´Ñ§¹Ñ¹é ·Õâè »Ãá¡ÃÁ Hyper Terminal ¨Ðµ ͧ ¡íÒ˹´¤ ÒÁҵðҹ¢Í§¡ÒÃÊ×Íè ÊÒÃãË µÃ§¡Ñ¹´ ÇÂ
â»Ãá¡ÃÁ·Õè A1-7 â»Ãá¡ÃÁ·´Åͧ㪠¤Òí Êѧè SEROUT2 à¾×Íè Ê §¢ ÍÁÙÅä»Âѧ¤ÍÁ¾ÔÇàµÍÃ
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
47
A1.4.8 Ãѹâ»Ãá¡ÃÁ áÅ ÇÊѧࡵ¡ÒÃáÊ´§¼Å¢Í§â»Ãá¡ÃÁ Hyper Terminal ËÃ×Í˹ Òµ Ò§ Serial Communication ã¹ Microcode Studio ·ÕËè ¹ Òµ Ò§ËÅÑ¡¢Í§ Hyper Terminal áÊ´§¼Å¡Ò÷íÒ§Ò¹´Ñ§¹Õé
¡ÒÃ㪠§Ò¹¤íÒÊѧè HSEROUT ÃٻẺ¡ÒÃ㪠§Ò¹¤íÒÊѧè HSEROUT [Item {,Item...}] Item
¤×Í ¢ ÍÁÙÅ·Õµè Í §¡ÒÃÊ §ÍÍ¡ä»
à» ¹¤íÒÊѧè Ê §¢ ÍÁÙÅ͹ءÃÁ·Õãè ª ¡ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC «Ö§è ÁÕâÁ´ÙÅÊ×Íè ÊÒÃ͹ءÃÁ UART ËÃ×Í USART ÍÂÙ ÀÒÂã¹ ´Ñ§¹Ñ鹡 ͹㪠§Ò¹¤íÒÊÑ觨е ͧ¡íÒ˹´¤ ÒàÃÔèÁµ ¹ãË ¡ÑºâÁ´ÙÅ USART ÀÒÂã¹µÑÇäÁâ¤Ã ¤Í¹â·ÃÅàÅÍà ¡Í ¹¼ Ò¹·Ò§¤íÒÊѧè DEFINE â´ÂÁÕÃÒÂÅÐàÍÕ´´Ñ§¹Õé HSEROUT
DEFINE HSER_RCSTA 90h
àÍç¹àÍàºÔÅ¡ÒÃÃѺ¢ ÍÁÙÅ
DEFINE HSER_TXSTA 20h
àÍç¹àÍàºÔÅ¡ÒÃÊ §¢ ÍÁÙÅ
DEFINE HSER_BAUD 2400
¡íÒ˹´¤ ÒÍѵÃҺʹ ´ ÇÂÇÔ¸¡Õ ÒÃãÊ ¤Ò ÍѵÃҺʹŧä»â´ÂµÃ§
¡íÒ˹´¤ ÒÍѵÃҺʹ¼ Ò¹ÃÕ¨ÊÔ àµÍà SPBRG «Ö§è à» ¹ÃÕ¨ÊÔ àµÍà ÊíÒËÃѺ¡íÒ˹´¤ ÒÍѵÃҺʹ¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ·ÕÁè âÕ Á´ÙÅÊ×Íè ÊÒÃ͹ءÃÁÍÂÙÀ ÒÂã¹ DEFINE HSER_SPBRG 25
48
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
¨Ð¾ºÇ Ò¤íÒÊѧè HSEROUT ¡Ñº SEROUT2 ÁÕ¤ÇÒÁ¤Å Ò¤ÅÖ§¡Ñ¹ ¨Ø´áµ¡µ Ò§¤×Í ¤íÒÊѧè HSEROUT ¨Ð㪠§Ò¹ä´ ¡ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ·ÕÁè âÕ Á´ÙÅÊ×Íè ÊÒâ ÍÁÙÅ͹ءÃÁÍÂÙÀ ÒÂã¹à· ҹѹé áÅСÒÃÃÑºÊ §¢ ÍÁÙŨм Ò¹·Ò§ ¢Ò¾Íà µ·Õàè ª×ÍÁµ ͡ѺâÁ´ÙÅÊ×Íè ÊÒâ ÍÁÙÅ͹ءÃÁ¹Õé äÁ ÊÒÁÒöà»ÅÕÂè ¹á»Å§¢Ò¾Íà µä´ ã¹¢³Ð·Õ¤è Òí Êѧè SEROUT2 ÊÒÁÒÃ¶ãª ä´ ¡ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ã¹Í¹Ø¡ÃÁ 14 ºÔµ¢Ö¹é ä»ä´ ·¡Ø àºÍà äÁ ÇÒ ÀÒÂã¹µÑÇÁѹ¨ÐÁÕâÁ´ÙÅÊ×Íè ÊÒà ¢ ÍÁÙÅ͹ءÃÁÍÂÙÀ ÒÂã¹ËÃ×ÍäÁ áµ Í ҧäáçµÒÁ¤íÒÊѧè HSEROUT ¨Ð㪠¾¹×é ·ÕËè ¹ ǤÇÒÁ¨íÒâ»Ãá¡ÃÁ¹ ÍÂ¡Ç Ò ´Ñ§¹Ñ¹é Ëҡ㪠äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ·ÕÁè âÕ Á´ÙÅÊ×Íè ÊÒâ ÍÁÙÅ͹ءÃÁÍÂÙÀ ÒÂ㹤ÇÃàÅ×͡㪠¤íÒÊѧè HSEROUT ¨Ðª ÇÂÅ´¢¹Ò´¢Í§â»Ãá¡ÃÁä´ ÁÒ¡¡Ç Ò A1.4.9 à¢Õ¹â»Ãá¡ÃÁ·Õè A1-8 ·íÒ¡ÒäÍÁä¾Å áÅ Ç´Òǹ âËÅ´ä»ÂѧºÍà ´ RBX-877 ' File : a0108.bas ' Description : Send serial data to computer by HSEROUT command @ DEVICE PIC16F877,HS_OSC DEFINE OSC 20 DEFINE HSER_RCSTA 90h DEFINE HSER_TXSTA 20h DEFINE HSER_BAUD 2400 A VAR BYTE A = 0 Main: HSEROUT ["Innovative HSEROUT ["Experiment A = A+1 GOTO MAIN
' ' ' ' '
Use Use Set Set Set
PIC16F877 and HS Oscilator Oscillator 20 MHz receive register to receiver enabled transmit register to transmitter enabled baud rate
' Start A with 0 "] ' Show Text in String ",DEC A,$0D,$0A] ' Show String and Decimal Number ' increment A
â»Ãá¡ÃÁ·Õè A1-8 â»Ãá¡ÃÁ·´Åͧ㪠¤Òí Êѧè HSEROUT à¾×Íè Ê §¢ ÍÁÙÅä»Âѧ¤ÍÁ¾ÔÇàµÍà A1.4.10 àª×Íè Áµ ÍÊÒÂÃÐËÇ Ò§ºÍà ´ RBX-877 ¡Ñº¾Íà µÍ¹Ø¡ÃÁ à» ´â»Ãá¡ÃÁ Hyper Terminal ËÃ×Í˹ Òµ Ò§ Serial communication ã¹ Microcode Studio áÅ ÇàÅ×Í¡ÍѵÃҺʹ໠¹ 2,400 ºÔµµ ÍÇÔ¹Ò·Õ ÃٻẺ¢ ÍÁÙÅà» ¹ 8N1 A1.4.11 Ãѹâ»Ãá¡ÃÁ áÅ ÇÊѧࡵ¡ÒÃáÊ´§¼Å¢Í§â»Ãá¡ÃÁ Hyper Terminal ·ÕËè ¹ Òµ Ò§ËÅÑ¡¢Í§ Hyper Terminal áÊ´§¼Å¡Ò÷íÒ§Ò¹´Ñ§¹Õé
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
49
¡ÒÃÃѺ¢ ÍÁÙÅ͹ءÃÁâ´Â㪠¤Òí Êѧè SERIN ÃٻẺ¡ÒÃ㪠§Ò¹¤íÒÊѧè SERIN Pin,Mode,{Timeout,Label,}{[Qual...],}{Item...}
Ñ ¢ ÍÁÙÅ ÊíÒËÃѺºÍà ´ RBX-877 㪠¢Ò RC7 (PORTC.7) Pin ¤×Í ¢Ò¾Íà µ·Õãè ª ú Mode 㪠¡Òí ˹´ÍѵÃҺʹáÅÐÃٻẺ¡ÒÃÊ×Í è ÊÒâ ÍÁÙÅ ¶ Ò෠ҡѺ 0 ËÁÒ¶֧ ¡íÒ˹´¤ ÒÍѵÃҺʹ໠¹
2,400 ºÔµµ ÍÇÔ¹Ò·Õ ¶ Ò෠ҡѺ 2 ËÁÒ¶֧ ¡íÒ˹´ÍѵÃҺʹ෠ҡѺ 9,600 ºÔµµ ÍÇÔ¹Ò·Õ ÃٻẺ¢ ÍÁÙÅà» ¹áºº 8N1 Timeout ËÁÒ¶֧ ª ǧàÇÅÒÃÍÃѺ¢ ÍÁÙÅ ÁÕ˹ ÇÂà» ¹ÁÔÅÅÔǹ Ô Ò·Õ ¶ ÒËÒ¡ÃÍÃѺ¢ ÍÁÙÅà¡Ô¹àÇÅÒ·Õ¡è Òí ˹´ «Õ¾ÂÕ ¨Ù СÃÐâ´´ä»·íÒ§Ò¹ÂѧµíÒá˹ §·Õ¡è Òí ˹´â´Â Label Qual à» ¹¢ ÍÁÙÅ·Õãè ª à»ÃÕºà·Õº¡Ñº¢ ÍÁÙÅ·ÕÍ è Ò ¹ä´ ¶ ҵç¡Ñ¹ãË ¹Òí ¢ ÍÁÙŵÑǵ Íä»à¡çº·Õµè ÇÑ á»Ã Item SERIN à» ¹¤íÒÊÑ§è § Ò·ÕÊ è ´Ø ã¹¡ÒÃÃѺ¢ ÍÁÙŨҡ¤ÍÁ¾ÔÇàµÍà ÁÒáÊ´§ áµ ¨ÐäÁ ÊÒÁÒöµÃǨÊͺ ¡ÒÃÊ×Íè ÊÒõ Ò§æ ä´ â´Â·íÒä´ à¾Õ§ÃÍÃѺ¢ ÍÁÙÅÀÒÂã¹àÇÅÒ·Õ¡è Òí ˹´à· ҹѹé A1.4.12 à¢Õ¹â»Ãá¡ÃÁ·Õè A1-9 ·íÒ¡ÒäÍÁä¾Å áÅ Ç´Òǹ âËÅ´ä»ÂѧºÍà ´ RBX-877 ' File : a0109.bas ' Description : Receive serial data from computer by SERIN command @ DEVICE PIC16F877,HS_OSC ' Use DEFINE OSC 20 ' Use DEFINE LCD_DREG PORTD ' Set DEFINE LCD_DBIT 4 ' Set DEFINE LCD_RSREG PORTC ' Set DEFINE LCD_RSBIT 0 ' Set DEFINE LCD_EREG PORTC ' Set DEFINE LCD_EBIT 5 ' Set DEFINE LCD_BITS 4 ' Set DEFINE LCD_LINES 2 ' Set DEFINE LCD_COMMANDUS 2000 ' Set DEFINE LCD_DATAUS 50 ' Set A VAR BYTE LOOP: SERIN PORTC.7,0,["R"],A LCDOUT $FE,$01,A GOTO LOOP
PIC16F877 and HS Oscilator Oscillator 20 MHz LCD Data port starting Data bit (0 or 4) if 4-bit bus LCD Register Select port LCD Register Select bit LCD Enable port LCD Enable bit LCD bus size (4 or 8 bits) number of lines on LCD command delay time in us data delay time in us
¤íÒ͸ԺÒÂà¾ÔÁè àµÔÁ ¡ÒÃÃÍÃѺ¢ ÍÁÙŨҡ¤ÍÁ¾ÔÇàµÍà ´Ç ¤íÒÊѧè SERIN ã¹â»Ãá¡ÃÁ¹Õ¨é Ð㪠µÇÑ ÍÑ¡Éà R à» ¹µÑÇ¡íÒ˹´¡ÒÃàÃÔÁè µ ¹ÃѺ¢ ÍÁÙÅ ¨Ò¡¹Ñ¹é ¨ÐÃѺ¢ ÍÁÙÅ·Õµè ÒÁËÅѧµÑÇÍÑ¡Éà R ÁÒà¡çºäÇ ·µÕè ÇÑ á»Ã A áÅ Ç㪠¤Òí Êѧè LCDOUT à¾×Íè ¹íÒ¢ ÍÁÙÅ ·ÕÃè ºÑ ä´ ÁÒáÊ´§¼Å·Õâè Á´ÙÅ LCD ÊíÒËÃѺ¡ÒáíÒ˹´ Mode 㹤íÒÊѧè SERIN à» ¹ 0 ËÁÒ¤ÇÒÁÇ Ò àÅ×Í¡ãª ÍµÑ ÃҺʹ 2,400 ºÔµµ ÍÇÔ¹Ò·Õ ÃٻẺ¢ ÍÁÙÅà» ¹áºº 8N1
â»Ãá¡ÃÁ·Õè A1-9 â»Ãá¡ÃÁ·´Åͧ㪠§Ò¹¤íÒÊѧè SERIN à¾×Íè ÃѺ¢ ÍÁÙÅ͹ءÃÁ¨Ò¡¤ÍÁ¾ÔÇàµÍà ÁÒáÊ´§¼Å ·Õâè Á´ÙÅ LCD º¹ºÍà ´ RBX-877
50
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
A1.4.13 àª×Íè Áµ ÍÊÒÂÃÐËÇ Ò§ºÍà ´ RBX-877 ¡Ñº¾Íà µÍ¹Ø¡ÃÁ à» ´â»Ãá¡ÃÁ Hyper Terminal ËÃ×Í˹ Òµ Ò§ Serial communication ã¹ Microcode Studio áÅ ÇàÅ×Í¡ÍѵÃҺʹ໠¹ 2,400 ºÔµµ ÍÇÔ¹Ò·Õ ÃٻẺ¢ ÍÁÙÅà» ¹ 8N1 Í ҧäáçµÒÁÊíÒËÃѺ¡Ò÷´Êͺâ»Ãá¡ÃÁ¤ÃÒǹդé ÇÃàÅ×͡㪠˹ Òµ Ò§ Serial Communication ¢Í§ Microcode Studio ¨ÐàËÁÒÐÊÁ¡Ç Ò à¹×Íè §¨Ò¡ÊÒÁÒöáÊ´§¤ Ò·ÕÊè § Í͡仨ҡ¤ÍÁ¾ÔÇàµÍà ãË ¼ãÙ ª §Ò¹àËç¹´ Ç A1.4.14 Ãѹâ»Ãá¡ÃÁ áÅ Ç¡´¤Õº Íà ´à¾×Íè Ê §¢ ÍÁÙÅä»ÂѧºÍà ´ RBX-877 ¼ Ò¹·Ò§ª ͧ Send ã¹Ë¹ Òµ Ò§ Serial Comminication ¢Í§ Microcode Studio ¨Ò¡¹Ñ¹é ¡´»ØÁ Connect Êѧࡵ¡ÒÃáÊ´§¼Å¢Í§âÁ´ÙÅ LCD º¹ºÍà ´ RBX-877 à»ÃÕºà·Õº¡Ñº¤ Ò·Õáè Ê´§º¹Ë¹ Òµ Ò§ Serial Communication ¢Í§ Microcode Studio ·ÕËè ¹ Òµ Ò§ Serial Communication ¢Í§ Microcode Studio áÊ´§¼Å¡Ò÷íÒ§Ò¹´Ñ§¹Õé
¡ÒÃÃѺ¢ ÍÁÙÅ͹ءÃÁâ´Â㪠¤Òí Êѧè SERIN2 ¤íÒÊѧè SERIN2 »ÃѺ»Ãا¡ÒÃ㪠§Ò¹à¾ÔÁè àµÔÁ¨Ò¡¤íÒÊѧè SERIN â´ÂÊÒÁÒö¡íÒ˹´ÃٻẺ¡ÒÃÃѺ¢ ÍÁÙÅ ä´ ËÅÒÂẺ ÃÇÁ¶Ö§ÊÒÁÒöµÃǨÊͺ¡ÒÃÃѺ¢ ÍÁÙÅä´ ´Ç  ÃٻẺ¡ÒÃ㪠§Ò¹¤íÒÊѧè ÁÕ´§Ñ ¹Õé SERIN2 DataPin{\FlowPin},Mode,{ParityLabel,} {Timeout,Label,}[Item...] DataPin ¤×Í ¢Ò¾Íà µ·Õãè ª ú Ñ ¢ ÍÁÙÅ ÊíÒËÃѺºÍà ´ RBX-877 㪠¢Ò RC7 (PORTC.7) Mode 㪠¡Òí ˹´ÍѵÃҺʹáÅÐÃٻẺ¡ÒÃÊ×Í è ÊÒâ ÍÁÙÅ ¶ Ò¡íÒ˹´¤ Ò෠ҡѺ 396 ÍѵÃҺʹ෠ҡѺ 2,400
ºÔµµ ÍÇÔ¹Ò·Õ ¶ Ò¡íÒ˹´¤ Ò෠ҡѺ 84 ¨Ðä´ ÍµÑ ÃҺʹ෠ҡѺ 9,600 ºÔµµ ÍÇÔ¹Ò·Õ ÃٻẺ¢ ÍÁÙÅà» ¹áºº 8N1 ParityLabel ËÁÒ¶֧ µíÒá˹ §·Õè¡íÒ˹´ãË â»Ãá¡ÃÁ¡ÃÐâ´´ä» àÁ×èÍà¡Ô´¤ÇÒÁ¼Ô´¾ÅÒ´¨Ò¡¡Òà µÃǨÊͺ¾ÒÃÔµÕé «Ö§è ¨Ð㪠§Ò¹ä´ àÁ×Íè ÁÕ¡ÒáíÒ˹´ãË Á¡Õ ÒõÃǨÊͺ¾ÒÃÔµàÕé · ҹѹé (ºÔµ 13 ¢Í§ Mode à» ¹ 1 ) Timeout ËÁÒ¶֧ ÃÐÂÐàÇÅÒ㹡ÒÃÃÍÃѺ¢ ÍÁÙÅ â´Â¶ ÒäÁ Á¢ Õ Í ÁÙÅࢠÒÁÒ ãË ¡ÃÐâ´´ä»·íÒ§Ò¹µÒÁ Label ·Õ¡è Òí ˹´ â´Â¤ ÒàÇÅÒ·Õ¡è Òí ˹´ÁÕ˹ ÇÂà» ¹ÁÔÅÅÔÇ¹Ô Ò·Õ Item ËÁÒ¶֧ µÑÇá»Ã 1 µÑÇËÃ×ÍÁÒ¡¡Ç ÒÊíÒËÃѺà¡çº¢ ÍÁÙÅ·Õäè ´ ú Ñ ¨Ò¡¢Ò Datapin ÊÒÁÒö¡íÒ˹´ÃÙ» Ẻ¢Í§µÑÇá»Ãà» ¹áººÍÒà ààà¾×Íè ÃѺ¢ ÍÁÙÅ·ÕÅè ÐËÅÒ æ 亵 ä´
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
51
' File : a0110.bas ' Description : Receive serial data from computer by SERIN2 command @ DEVICE PIC16F877,HS_OSC ' Use PIC16F877 and HS Oscilator DEFINE OSC 20 ' Use Oscillator 20 MHz DEFINE LCD_DREG PORTD ' Set LCD Data port DEFINE LCD_DBIT 4 ' Set data bit start at bit4 in 4-bit mode DEFINE LCD_RSREG PORTC ' Set LCD Register Select port DEFINE LCD_RSBIT 0 ' Set LCD Register Select bit DEFINE LCD_EREG PORTC ' Set LCD Enable port DEFINE LCD_EBIT 5 ' Set LCD Enable bit DEFINE LCD_BITS 4 ' Set LCD bus size (4 or 8 bits) DEFINE LCD_LINES 2 ' Set number of lines on LCD DEFINE LCD_COMMANDUS 2000 ' Set command delay time in us DEFINE LCD_DATAUS 50 ' Set data delay time in us DAT VAR BYTE[9] LOOP: SERIN2 PORTC.7,396,3000,OUT,[str DAT\9 ] ' Recieve Data 9 bytes save to DAT LCDOUT $FE,$01,STR DAT\9 ' Show data on LCD Module GOTO LOOP ' Again OUT: FREQOUT PORTA.4,100,2000 ' If Timeout, generate sound GOTO LOOP
¤íÒ͸ԺÒÂà¾ÔÁè àµÔÁ ¨Ò¡â»Ãá¡ÃÁà» ¹¡ÒÃÃѺ¢ ÍÁÙŵÑÇÍÑ¡Éà 9 µÑÇࢠÒÁÒà¡çºã¹µÑÇá»Ã DAT «Ö§è à» ¹µÑÇá»ÃẺÍÐàà¨Ò¡¹Ñ¹é ¹íÒ¤ Òä»áÊ´§·Õâè Á´ÙÅ LCD 㹡óշäÕè Á Á¡Õ ÒÃÊ §¢ ÍÁÙŨҡ¤ÍÁ¾ÔÇàµÍà ¹Ò¹à¡Ô¹ 3 ÇÔ¹Ò·Õ ãË ¡ÃÐâ´´ä»·íÒ§Ò¹ ·Õâè »Ãá¡ÃÁ Í OUT Íѹ໠¹â»Ãá¡ÃÁ ÍÂÊà ҧÊÑÒ³àÊÕ§¢ÑºÍÍ¡·Ò§ÅíÒ⾧à¾×Íè àµ×͹¼Ùã ª §Ò¹ãË ÃºÑ ÃÙ
â»Ãá¡ÃÁ·Õè A1-10 â»Ãá¡ÃÁ·´Åͧ㪠§Ò¹¤íÒÊѧè SERIN2 à¾×Íè ÃѺ¢ ÍÁÙÅ͹ءÃÁ¨Ò¡¤ÍÁ¾ÔÇàµÍà ÁÒáÊ´§¼Å ·Õâè Á´ÙÅ LCD º¹ºÍà ´ RBX-877 A1.4.15 à¢Õ¹â»Ãá¡ÃÁ·Õè A1-10 ·íÒ¡ÒäÍÁä¾Å áÅ Ç´Òǹ âËÅ´ä»ÂѧºÍà ´ RBX-877 A1.4.16 àª×Íè Áµ ÍÊÒÂÃÐËÇ Ò§ºÍà ´ RBX-877 ¡Ñº¾Íà µÍ¹Ø¡ÃÁ à» ´â»Ãá¡ÃÁ Hyper Terminal ËÃ×Í˹ Òµ Ò§ Serial communication ã¹ Microcode Studio áÅ ÇàÅ×Í¡ÍѵÃҺʹ໠¹ 2,400 ºÔµµ ÍÇÔ¹Ò·Õ ÃٻẺ¢ ÍÁÙÅà» ¹ 8N1 Í ҧäáçµÒÁÊíÒËÃѺ¡Ò÷´Êͺâ»Ãá¡ÃÁ¤ÃÒǹդé ÇÃàÅ×͡㪠˹ Òµ Ò§ Serial Communication ¢Í§ Microcode Studio ¨ÐàËÁÒÐÊÁ¡Ç Ò à¹×Íè §¨Ò¡ÊÒÁÒöáÊ´§¤ Ò·ÕÊè § Í͡仨ҡ¤ÍÁ¾ÔÇàµÍà ãË ¼ãÙ ª §Ò¹àËç¹´ Ç A1.4.17 Ãѹâ»Ãá¡ÃÁ áÅ Ç¡´¤Õº Íà ´à¾×Íè Ê §¢ ÍÁÙÅä»ÂѧºÍà ´ RBX-877 ¼ Ò¹·Ò§ª ͧ Send ã¹Ë¹ Òµ Ò§ Serial Comminication ¢Í§ Microcode Studio ¨Ò¡¹Ñ¹é ¡´»ØÁ Connect Êѧࡵ¡ÒÃáÊ´§¼Å¢Í§âÁ´ÙÅ LCD º¹ºÍà ´ RBX-877 à»ÃÕºà·Õº¡Ñº¤ Ò·Õáè Ê´§º¹Ë¹ Òµ Ò§ Serial Communication ¢Í§ Microcode Studio ·ÕËè ¹ Òµ Ò§ Serial Communication ¢Í§ Microcode Studio áÊ´§¼Å¡Ò÷íÒ§Ò¹´Ñ§ã¹ÃÙ»·Õè A1-8
52
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
¼Å·ÕËè ¹ Òµ Ò§ Serial Communication ¼Å·Õâè Á´ÙÅ LCD º¹ºÍà ´ RBX-877
ÃÙ»·Õè A1-8 áÊ´§¼Å¡Ò÷´Åͧ㪠§Ò¹¤íÒÊѧè SERIN2 à¾×Íè ÃѺ¢ ÍÁÙÅ͹ءÃÁ¨Ò¡¤ÍÁ¾ÔÇàµÍà ÁÒáÊ´§¼Å ·Õâè Á´ÙÅ LCD º¹ºÍà ´ RBX-877 ¨Ò¡â»Ãá¡ÃÁ·Õè A1-10 ¡ÒÃÃѺ¢ ÍÁÙÅ͹ءÃÁâ´Â㪠¤Òí Êѧè HSERIN HSERIN à» ¹¤íÒÊѧè ÃѺ¢ ÍÁÙÅ͹ءÃÁ·Õãè ª ¡º Ñ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC «Ö§è ÁÕâÁ´ÙÅÊ×Íè ÊÒÃ͹ءÃÁ UART ËÃ×Í
USART ÍÂÙÀ ÒÂã¹ ¡ ͹㪠§Ò¹¤íÒÊÑ§è ¨Ðµ ͧ¡íÒ˹´¤ ÒàÃÔÁè µ ¹ãË ¡ºÑ âÁ´ÙÅ USART ÀÒÂã¹µÑÇäÁâ¤Ã¤Í¹â·ÃÅàÅÍà ¡ ͹¼ Ò¹·Ò§¤íÒÊѧè DEFINE â´ÂÁÕÃÒÂÅÐàÍÕ´´Ñ§¹Õé EFINE HSER_RCSTA 90h àÍç¹àÍàºÔÅ¡ÒÃÃѺ¢ ÍÁÙÅ DEFINE HSER_TXSTA 20h àÍç¹àÍàºÔÅ¡ÒÃÊ §¢ ÍÁÙÅ DEFINE HSER_BAUD 2400 ¡íÒ˹´¤ ÒÍѵÃҺʹ ´ ÇÂÇÔ¸¡Õ ÒÃãÊ ¤Ò ÍѵÃҺʹŧä»â´ÂµÃ§ DEFINE HSER_SPBRG 25 ¡íÒ˹´¤ ÒÍѵÃҺʹ¼ Ò¹ÃÕ¨ÊÔ àµÍà SPBRG «Ö§è à» ¹ÃÕ¨ÊÔ àµÍà ÊíÒËÃѺ¡íÒ˹´¤ ÒÍѵÃҺʹ¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ·ÕÁè âÕ Á´ÙÅÊ×Íè ÊÒÃ͹ءÃÁÍÂÙÀ ÒÂã¹ ÊíÒËÃѺ¢Ò¾Íà µ·Õãè ª ÃºÑ ¢ ÍÁÙŨж١¡íÒ˹´äÇ µÒµÑÇ ¢Ö¹é ÍÂÙ¡ ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC àºÍà ¹¹Ñé æ Ç Ò ¢Ò¾Íà µ·Õãè ª ÃºÑ ¢ ÍÁÙÅ͹ءÃÁ (RxD) ¢Í§âÁ´ÙÅÊ×Íè ÊÒâ ÍÁÙÅ͹ءÃÁà» ¹¢Òã´ ÊíÒËÃѺ PIC16F877 ¤×Í¢Ò RC7 ÁÕû٠Ẻ¡ÒÃ㪠¤Òí ÊÑ§è ´Ñ§¹Õé HSERIN {ParityLabel,}{Timeout,Label,}[Item{,...}]
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ParityLabel
µÃǨÊͺ¾ÒÃÔµÕé
l
53
ËÁÒ¶֧ µíÒá˹ §·Õè¡íÒ˹´ãË â»Ãá¡ÃÁ¡ÃÐâ´´ä» àÁ×èÍà¡Ô´¤ÇÒÁ¼Ô´¾ÅÒ´¨Ò¡¡ÒÃ
Timeout ËÁÒ¶֧ ÃÐÂÐàÇÅÒ㹡ÒÃÃÍÃѺ¢ ÍÁÙÅ â´Â¶ ÒäÁ Á¢ Õ Í ÁÙÅࢠÒÁÒ ãË ¡ÃÐâ´´ä»·íÒ§Ò¹µÒÁ Label
·Õ¡è Òí ˹´ â´Â¤ ÒàÇÅÒ·Õ¡è Òí ˹´ÁÕ˹ ÇÂà» ¹ÁÔÅÅÔÇ¹Ô Ò·Õ Item ËÁÒ¶֧ µÑÇá»Ã 1 µÑÇËÃ×ÍÁÒ¡¡Ç ÒÊíÒËÃѺà¡çº¢ ÍÁÙÅ·Õäè ´ ú Ñ ¨Ò¡¢Ò RxD «Ö§è ¡ç¤Í× ¢Ò¾Íà µ RC7 ÊÒÁÒö¡íÒ˹´ÃٻẺ¢Í§µÑÇá»Ãà» ¹áººÍÒà ààà¾×Íè ÃѺ¢ ÍÁÙŤÃÒÇÅÐËÅÒÂæ 亵 ä´ ¨Ð¾ºÇ Ò¤íÒÊѧè HSERIN ¡Ñº SERIN2 ÁÕ¤ÇÒÁ¤Å Ò¤ÅÖ§¡Ñ¹ ¨Ø´áµ¡µ Ò§¤×Í ¤íÒÊѧè HSERIN ¨Ð㪠§Ò¹ ä´ ¡ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ·ÕÁè âÕ Á´ÙÅÊ×Íè ÊÒâ ÍÁÙÅ͹ءÃÁÍÂÙÀ ÒÂã¹à· ҹѹé áÅÐäÁ ÊÒÁÒöà»ÅÕÂè ¹á»Å§¢Ò¾Íà µ ä´ ã¹¢³Ð·Õ¤è Òí Êѧè SERIN2 ÊÒÁÒÃ¶ãª ä´ ¡ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ã¹Í¹Ø¡ÃÁ 14 ºÔµ¢Ö¹é ä»ä´ ·¡Ø àºÍà äÁ ÇÒ ÀÒÂã¹µÑÇÁѹ¨ÐÁÕâÁ´ÙÅÊ×Íè ÊÒâ ÍÁÙÅ͹ءÃÁÍÂÙÀ ÒÂã¹ËÃ×ÍäÁ áµ Í ҧäáçµÒÁ¤íÒÊѧè HSERIN ¨Ð㪠¾¹×é ·ÕËè ¹ ǤÇÒÁ ¨íÒâ»Ãá¡ÃÁ¹ ÍÂ¡Ç Ò ´Ñ§¹Ñ¹é Ëҡ㪠äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ·ÕÁè âÕ Á´ÙÅÊ×Íè ÊÒâ ÍÁÙÅ͹ءÃÁÍÂÙÀ ÒÂ㹤ÇÃàÅ×͡㪠¤íÒÊѧè HSERIN ¨Ðª ÇÂÅ´¢¹Ò´¢Í§â»Ãá¡ÃÁä´ ÁÒ¡¡Ç ÒáÅÐÊдǡ¡Ç Ò A1.4.18 à¢Õ¹â»Ãá¡ÃÁ·Õè A1-11 ·íÒ¡ÒäÍÁä¾Å áÅ Ç´Òǹ âËÅ´ä»ÂѧºÍà ´ RBX-877 ' File : a0111.bas ' Description : Receive serial data from computer by HSERIN command @ DEVICE PIC16F877,HS_OSC DEFINE OSC 20 DEFINE HSER_RCSTA 90h DEFINE HSER_TXSTA 20h DEFINE HSER_BAUD 2400 DAT VAR BYTE
' ' ' ' '
LOOP:
' Recieve Data 9 Byte Save To DAT
HSERIN [DAT] DAT = DAT + 3 HSEROUT [DAT] GOTO LOOP
Use Use Set Set Set
PIC16F877 and HS Oscilator Oscillator 20 MHz receive register to receiver enabled transmit register to transmitter enabled baud rate
' Send Back To Serial ' Again
¤íÒ͸ԺÒÂà¾ÔÁè àµÔÁ ¨Ò¡â»Ãá¡ÃÁáÊ´§ãË àË繶֧¡ÒÃÃѺ¢ ÍÁÙŨҡ¾Íà µÍ¹Ø¡ÃÁ´ ǤíÒÊѧè HSERIN ¨Ò¡¹Ñ¹é ¹íÒ¤ Ò·Õäè ´ ºÇ¡¢Ö¹é ä»ÍÕ¡ 3 áÅ ÇÊ §¡ÅѺ价վè Íà µÍ¹Ø¡ÃÁÍÕ¡¤Ãѧé à» ¹¡ÒÃáÊ´§ãË àËç¹Ç Ò¢ ÍÁÙÅ·ÕÃè ºÑ à¢ ÒÁÒ¨Ò¡¾Íà µÍ¹Ø¡ÃÁÊÒÁÒö ¹íÒÁÒ¡ÃзíÒ¡Ò÷ҧ¤³ÔµÈÒÊµÃ ä´ ·¹Ñ ·Õ
â»Ãá¡ÃÁ·Õè A1-11 â»Ãá¡ÃÁ·´Åͧ㪠§Ò¹¤íÒÊѧè HSERIN à¾×Íè ÃѺ¢ ÍÁÙÅ͹ءÃÁ¨Ò¡¤ÍÁ¾ÔÇàµÍà ÁÒ»ÃѺ»Ãا ¤ Ò´ Ç¡Ãкǹ¡Ò÷ҧ¤³ÔµÈÒʵà áÅ ÇÊ §¡ÅѺä»Âѧ¤ÍÁ¾ÔÇàµÍà à¾×èÍáÊ´§¼ÅÂѧ˹ Òµ Ò§ Serial Communication ¢Í§ Microcode Studio
54
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
A1.4.19 àª×Íè Áµ ÍÊÒÂÃÐËÇ Ò§ºÍà ´ RBX-877 ¡Ñº¾Íà µÍ¹Ø¡ÃÁ à» ´â»Ãá¡ÃÁ˹ Òµ Ò§ Serial communication ã¹ Microcode Studio áÅ ÇàÅ×Í¡ÍѵÃҺʹ໠¹ 2,400 ºÔµµ ÍÇÔ¹Ò·Õ ÃٻẺ¢ ÍÁÙÅà» ¹ 8N1 A1.4.20 Ãѹâ»Ãá¡ÃÁ áÅ Ç¡´¤Õº Íà ´à¾×Íè Ê §¢ ÍÁÙÅä»ÂѧºÍà ´ RBX-877 ¼ Ò¹·Ò§ª ͧ Send ã¹Ë¹ Òµ Ò§ Serial Comminication ¢Í§ Microcode Studio ¨Ò¡¹Ñ¹é ¡´»ØÁ Connect Êѧࡵ¼Å¡Ò÷íҧҹ㹪 ͧ Receive ¢Í§Ë¹ Ò µ Ò§ Serial Communication ËÅѧ¨Ò¡Ê §¢ ÍÁÙÅÍÍ¡ä» ·ÕËè ¹ Òµ Ò§ Serial Communication ¢Í§ Microcode Studio áÊ´§¼Å¡Ò÷íÒ§Ò¹´Ñ§ã¹ÃÙ»
¢ ÍÁÙÅ·ÕÊè § ÍÍ¡ä»
¢ ÍÁÙÅ·ÕÃè ºÑ ¡ÅѺÁÒ ¨ÐÁÕ¤Ò à· Ò¡Ñº ¢ ÍÁÙÅ·ÕÊè § +3 ઠ¹ Ê §ÃËÑÊáÍÊ¡Õé ¢Í§àÅ¢ 1 ¤×Í 21h ¤ Ò·ÕÃè ºÑ ¡ÅѺÁÒ ¤×Í 24h «Ö§è µÃ§¡ÑºÃËÑÊáÍÊ¡Õ¢é ͧ àÅ¢ 4
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
55
º··Õè 3
Êà ҧËع ¹µ Robo-PICA ÁÒ¶Ö§º·¹Õàé » ¹¡ÒùíÒàʹ͡ÒÃÊà ҧËع ¹µ Robo-PICA Íѹ໠¹Ëع ¹µ 굄 â¹Áѵ¢Ô ¹Ò´àÅç¡ ·Õ¤è Ǻ¤ØÁ¡Ò÷íÒ§Ò¹´ ÇÂäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC16F877 â´Â¨ÐẠ§ÍÍ¡à» ¹ 2 ª ǧ¤×Í á¹Ð¹íÒ ¡ÒûÃСͺªØ´à¿ ͧ¢Ñºã¹ª ǧáá áÅлÃСͺµÑÇËع ¹µ 㹪 ǧ·ÕÊè ͧ Ëع ¹µ Robo-PICA ·ÕÊè à ҧ ¢Ö¹é 㹺·¹ÕÂé §Ñ à» ¹Ëع ¹µ ¾¹×é °Ò¹·ÕÂè §Ñ äÁ Á¡Õ ÒõԴµ ͡ѺÍØ»¡Ã³ µÃǨ¨Ñºã´æ ´Ñ§¹Ñ¹é ¡ÒäǺ¤ØÁ¡Òà à¤Å×Íè ¹·Õ·è §Ñé ËÁ´¨Ö§à» ¹¡ÒäǺ¤ØÁáÅеѴÊԹ㨨ҡâ»Ãá¡ÃÁ·Õºè ÃèØäÁâ¤Ã¤Í¹â·ÃÅàÅÍà ·§Ñé ÊÔ¹é «Ö§è ¨Ðä´ ¡Å ÒǶ֧¡ÒâѺà¤Å×Íè ¹Ëع ¹µ Robo-PICA ¢Ñ¹é µ ¹ã¹º··Õè 4 Robo-PICA PIC16F877(A) mobile robot
¢Ñºà¤Å×Íè ¹´ ÇÂ࿠ͧ¢ÑºÁÍàµÍà ¤áÙ ÅЪشŠÍÊÒ¾ҹ l ¤Çº¤ØÁ´ ÇÂäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC16F877(A) â»Ãá¡ÃÁä´ ã¹µÑÇ l ÊÒÁÒöµÔ´µÑ§é ἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàôà¾×Íè µÃǨ¨ÑºàÊ ¹, ἧǧ¨ÃÊÇÔµª µÃǨ¨Ñº¡Òê¹, ἧǧ¨ÃÃѺáʧÍÔ¹¿ÃÒàôà¾×Íè ¤Çº¤ØÁ¨Ò¡ÃÐÂÐä¡Å, ἧǧ¨ÃµÃǨ¨ÑºÇѵ¶ØẺÍÔ¹¿ÃÒàôà¾×Íè ËźËÅÕ¡ ÊÔ§è ¡Õ´¢ÇÒ§áÅÐἧǧ¨ÃµÃǨ¨Ñº¤Å×¹è ÍÑŵÃÒ⫹ԡà¾×Íè ÇÑ´ÃÐÂзҧáÅÐËźËÅÕ¡ÊÔ§è ¡Õ´¢ÇҧẺäÁ ÊÁÑ ¼ÑÊ l ÁÕâÁ´ÙÅ LCD ¢¹Ò´ 16 µÑÇÍÑ¡Éà 2 ºÃ÷ѴáÅÐ LED ÊíÒËÃѺáÊ´§¼Å¡Ò÷íÒ§Ò¹ l
56
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
¡Ô¨¡ÃÃÁ·Õè 2
»ÃСͺŠÍÊÒ¾ҹáÅÐâ¤Ã§ËØ ¹Â¹µ Š͢ѺÊÒ¾ҹãË x 2 Å Í»ÃФͧÊÒ¾ҹãË x 2 ´ØÁÅ Í»ÃФͧ x 8 Ê¡ÃÙ 3x6 ÁÁ. x 3 Å Í»ÃФͧÊÒ¾ҹ¡ÅÒ§ x 6 Ê¡ÃÙà¡ÅÕÂǻŠÍ 2 ÁÁ. x 2
àÊÒ¾ÅÒʵԡ ËÅÒ¢¹Ò´
ªØ´µ ÍÊÒ¾ҹ x 2 Ê¡ÃÙ 3x10 ÁÁ. x 16
ÁÍàµÍÃ ä ¿µÃ§ ¾Ã Í Áà¿ Í §¢Ñ º à´ÕÂè Ç x 2
Ê¡ÃÙ 3x25 ÁÁ. x 3 ¹Íµ 3 ÁÁ. x 20 ᡹¡ÅÁ x 4 ªÔ¹é µ ÍÁØÁ©Ò¡,á¹ÇµÃ§áÅÐÁØÁ» Ò¹ x 60 RBX-877 ἧǧ¨ÃäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC16F877 x 1 á¼ ¹°Ò¹ x 1 ©Ò¡ÂÖ´Å Í»ÃФͧẺÊѹé x 2 ¡ÐºÐ¶ Ò¹ AA 4 ¡ ͹ ¾Ã ÍÁÊÒµ ÍáÅÐẵàµÍÃÕè 1 ªØ´ ©Ò¡ÂÖ´Å Í»ÃФͧ (ẵàµÍÃÕµè Í §¨Ñ´ËÒà¾ÔÁè àµÔÁ) ẺÂÒÇ x 2
âÁ´ÙÅ LCD 16 µÑÇÍÑ¡Éà 2 ºÃ÷Ѵ ẺÁÕä¿Ê ͧËÅѧ ἧǧ¨ÃµÃǨ¨Ñºáʧ Êз ͹ÍÔ¹¿ÃÒàô x 2
ÃÙ»·Õè A2-1 áÊ´§ÍØ»¡Ã³ ÊÒí ËÃѺÊà ҧŠÍÊÒ¾ҹáÅÐâ¤Ã§¢Í§Ëع ¹µ Robo-PICA
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
57
A2.1 àÃÔÁè µ ¹´ Ç¡ÒûÃСͺÊÒ¾ҹ¨íҹǹÊͧàÊ ¹ â´ÂÊÒ¾ҹ 1 àÊ ¹»ÃСͺ仴 Ç ÊÒ¾ҹ 30 ¢ ͵ Í 1 àÊ ¹, ÊÒ¾ҹ 10 ¢ ͵ Í 1 àÊ ¹ áÅÐÊÒ¾ҹ 8 ¢ ͵ Í 2 àÊ ¹ (¶ Ò»ÃСͺàÊÃç¨àÃÕºà ÍÂÊÒ¾ҹµÖ§ËÃ×ÍË ͹ à¡Ô¹ä» ÊÒÁÒö»ÃѺµíÒá˹ §¡ÒÃÂÖ´¢Í§Å Í»ÃФͧ à¾×Íè ãË ¾Í´Õ¡ºÑ ¤ÇÒÁÂÒǢͧÊÒÂ¾Ò¹ä´ ) ÊÒ¾ҹ 30 ¢ ͵ Í x 1
ÊÒ¾ҹ 10 ¢ ͵ Í x 1
ÊÒ¾ҹ 8 ¢ ͵ Í x 2
A2.2 ¹íÒ»ÅÒÂÊÒ¾ҹ 30 ¢ ͵ ÍàÊÕºࢠҡѺ»ÅÒ´ Ò¹Ë¹Ö§è ¢Í§ÊÒ¾ҹ 10 ¢ ͵ Í ¨Ò¡¹Ñ¹é ¹íÒ»ÅÒÂÍÕ¡´ Ò¹ ¢Í§ÊÒ¾ҹ 10 ¢ ͵ ÍàÊÕºࢠҡѺ»ÅÒÂÊÒ¾ҹ 8 ¢ ͵ Í ¹íÒ»ÅÒÂÍÕ¡´ Ò¹¢Í§ÊÒ¾ҹ 8 ¢ ͵ ÍàÊÕºࢠҡѺ »ÅÒÂÊÒ¾ҹ 8 ¢ ͵ ÍàÊ ¹·ÕÊè ͧ ÊØ´· Ò¹íÒ»ÅÒ´ Ò¹·Õàè ËÅ×ͧ͢ÊÒ¾ҹ 8 ¢ ͵ ÍàÊ ¹·ÕÊè ͧàÊÕº ͹¡Ñºä» ·ÕÊè Ò¾ҹ 30 ¢ ͵ Í ¨Ðä´ ÅÍ ÊÒ¾ҹ·ÕÊè ÁºÙó ãË ·Òí àËÁ×͹¡Ñ¹ 2 ªØ´
¡ÒÃÊà ҧŠÍÊÒ¾ҹ¨Ò¡¡Òõ ÍÊÒ¾ҹËÅÒÂæ µÑÇࢠҴ Ç¡ѹ ÁըشÁØ §ËÁÒµ ͧ¡ÒÃãË ¼Ù Êà ҧ ÊÒÁÒö»ÃѺᵠ§¤ÇÒÁÂÒǢͧÊÒÂ¾Ò¹ä´ ËÅÒ¢¹Ò´´ ǵ¹àͧ Ëع ¹µ ·ÊÕè à ҧ¢Ö¹é äÁ ¨Òí à» ¹µ ͧ ÁÕ¢¹Ò´¢Í§Å ÍÊÒ¾ҹµÒÁ·ÕÃè кØàÊÁÍä» A2.3 ¹íҪش࿠ͧÁÍàµÍÃ Â´Ö à¢ Ò¡Ñºá¼ ¹°Ò¹ ¨Ò¡¹Ñ¹é à ÍÂÊ¡ÃÙ 3x10 ÁÁ.áÅÐÊ¡ÃÙ 3x6 ÁÁ.µÒÁµíÒá˹ §·ÕÃè кØã¹ ÃÙ» ¨ÐàËç¹Ç ÒÂÖ´à¾Õ§ 3 ¨Ø´ à¹×Íè §¨Ò¡¨Ðµ ͧàËÅ×ÍäÇ Ê Òí ËÃѺµÔ´µÑ§é ©Ò¡ÂÖ´Å Í»ÃФͧẺÂÒÇ
58
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
A2.4 ¹íÒŠ͢ѺÊÒ¾ҹËÅÑ¡àÊÕºࢠҡѺ᡹ËÁع¢Í§ÁÍàµÍà ¨Ò¡¹Ñ¹é 㪠ʡÃÙà¡ÅÕÂǻŠÍ 2 ÁÁ.¢Ñ¹ÂÖ´ãË á¹ ¹ ·íÒઠ¹¹Õ·é §Ñé Êͧ¢ Ò§
A2.5 ¹íÒ©Ò¡ÂÖ´Å ÍÂÒÇÂÖ´¡Ñºá¼ ¹°Ò¹´ ÇÂÊ¡ÃÙ 3x10 ÁÁ. â´Â¢Ñ¹ÂִࢠÒä»ã¹ÃÙ嫅 ÁÍàµÍà ·àÕè ËÅ×ÍÍÂÙÍ ¡Õ µíÒá˹ § Ë¹Ö§è ¨Ò¡¢Ñ¹é ¨Í¹·Õè A2.3 Ê Ç¹ÍÕ¡´ ҹ˹֧è ãË ÃÍ ÂÊ¡ÃÙ 3x10 ÁÁ. ¨Ò¡´ Ò¹º¹áÅТѹÂÖ´´ ǹ͵ 3 ÁÁ.´Ñ§ã¹ÃÙ»
A2.6 ¹íÒ©Ò¡ÂÖ´Å ÍÊѹé ÂִࢠҡѺἠ¹°Ò¹ã¹ÍÕ¡´ Ò¹µÃ§¢ ÒÁ¡Ñº´ Ò¹·Õµè ´Ô µÑ§é ÁÍàµÍà â´Â¹ÑºÃÙ¨Ò¡ÃÔÁÊشࢠÒÁÒ 4 ÃÙà¨ÒÐ ´Ñ§ã¹ÃÙ» ¨Ò¡¹Ñ¹é 㪠ʡÃÙ 3x10 ÁÁ. ¢Ñ¹ÂÖ´©Ò¡ãË á¹ ¹´ ǹ͵ 3 ÁÁ. ·íÒઠ¹¹Õ·é §Ñé Êͧ´ Ò¹ ¨Ò¡¹Ñ¹é ¹íÒÊÍ´ ᡹âÅËСÅÁࢠÒä»ã¹©Ò¡ÂÖ´á¡¹Å Í áŠǹíÒÅ Í»ÃФͧÊÒ¾ҹãË àÊÕºࢠҷջè ÅÒ¢ͧ᡹âÅËзѧé Êͧ¢ Ò§ Å Í»ÃФͧãË á¡¹¡ÅÁ ´ØÁÅ Í
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
59
A2.7 Êʹ᡹âÅËзѧé 3 àÊ ¹à¢ Òä»ã¹Ã٢ͧ©Ò¡Âִ᡹ŠÍÂÒÇã¹µíÒá˹ §·Õè 1, 4 áÅÐ 7 (¹Ñº¨Ò¡´ ҹ㴡çä´ ) áŠǹíÒÅ Í»ÃФͧÊÒ¾ҹ¡ÅÒ§µÔ´µÑ§é ࢠҷջè ÅÒ·ѧé Êͧ¢ Ò§¢Í§á¡¹âÅËзѧé 3 àÊ ¹ » ´´ Ç´ØÁÅ Íà¾×Íè ãË á¹ ¹ Å Í»ÃФͧ¢¹Ò´¡ÅÒ§
᡹âÅËСÅÁ
´ØÁÅ Í
A2.8 ¹íÒἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàôà Í´ ÇÂÊ¡ÃÙ 3x15 ÁÁ. áÅ Ç㪠àÊÒÃͧ¾ÅÒʵԡ 3 ÁÁ. ¨íҹǹ ÊͧµÑÇà ÍÂࢠÒÍÕ¡ÍÕ¡´ Ò¹¢Í§á¼§Ç§¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô ·íÒàËÁ×͹¡Ñ¹ÊͧªØ´ ¨Ò¡¹Ñ¹é ÂִࢠҡѺ°Ò¹ ´ ҹŠҧ¢Í§Ëع ¹µ ºÃÔàdz´ ҹ˹ Ò (½ § µÃ§¢ ÒÁ¡Ñº·Õµè ´Ô µÑ§é ÁÍàµÍà ) â´ÂÁÕÃÐÂÐË Ò§ÃÐËÇ Ò§á¼§Ç§¨ÃµÃǨ¨Ñº ·Ñ§é Êͧ»ÃÐÁÒ³ 3 ¶Ö§ 4 «Á. ¢Ñ¹ÂÖ´ãË á¹ ¹´ ǹ͵ 3 ÁÁ. ÊѧࡵÃÐÂÐË Ò§¢Í§á¼§Ç§¨ÃµÃǨ¨ÑºáʧÊз ͹ ÍÔ¹¿ÃÒàô¡Ñº¾×¹é »ÃÐÁÒ³ 5 ÁÁ.
A2.9 ¹íҡкж ҹà Í´ ÇÂÊ¡ÃÙ 3x25 ÁÁ. ÊͧµÑÇ ÊíÒËÃѺ»ÅÒÂÍÕ¡´ Ò¹¢Í§Ê¡ÃÙãË ÊÇÁàÊÒÃͧ¾ÅÒʵԡ 15 ÁÁ. ¨Ò¡¹Ñ¹é ¹íҡкж Ò¹ÂִࢠҡѺἠ¹°Ò¹¢Í§Ëع ¹µ â´ÂËѹ´ Ò¹¢ÑÇé µ ÍÊÒÂä»Âѧ·ÔÈ·Ò§à´ÕÂǡѺÁÍàµÍà à¹×Íè §¨Ò¡ µíÒá˹ §¨Ø´µ ͧ͢ÁÍàµÍà áÅÐẵàµÍÃÕÍè ÂÙã ¡Å ¡¹Ñ ¢Ñ¹ãË á¹ ¹´ ǹ͵ 3 ÁÁ.
60
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
A2.10 ¹ÓªÔ¹é µèÍÁØÁ©Ò¡ÂÖ´à¢éÒ·Õ´è Òé ¹Ë¹éÒ 2 ¨Ø´áÅдéÒ¹ËÅѧ¢Í§á¼è¹°Ò¹ã¹µÓá˹觹͡ÊØ´ â´ÂãªéÊ¡ÃÙ 3x10 ÁÁ. ¡Ñº¹Íµ 3 ÁÁ. ¢Ñ¹ÂÖ´ãË á¹ ¹´Ñ§ã¹ÃÙ» â´ÂµíÒá˹ §·ÕÂè ´Ö ·Ñ§é 3 µíÒá˹ §¹Ñ¹é ¨ÐÊÑÁ¾Ñ¹¸ ¡ºÑ µíÒá˹ §ÃÙ嫅 ¢Í§ ºÍà ´ RBX-877 ¨Ò¡¹Ñ¹é µ ÍªÔ¹é µ Íá¹ÇµÃ§à¢ ҡѺ»ÅÒ¢ͧªÔ¹é µ ÍÁØÁ©Ò¡à¾×Íè ÃÍ¡ÒÃÂÖ´»ÃСººÍà ´ RBX-877 µ Íä» ´ Ò¹ËÅѧ¢Í§â¤Ã§ËØ ¹Â¹µ ´ ҹ˹ Ңͧâ¤Ã§ËØ ¹Â¹µ
ªÔ¹é µ ÍÁØÁ©Ò¡
ªÔ¹é µ ÍÁØÁ©Ò¡
A2.11 ¹íÒªÔ¹é µ ÍÁØÁ©Ò¡ÂִࢠҡѺºÍà ´ RBX-877 ã¹µíÒá˹ § ·Õµè ç¡ÑºªÔ¹é µ ÍÁØÁ©Ò¡·ÕÂè ´Ö ¡Ñºâ¤Ã§Ëع ¹µ ã¹¢Ñ¹é µÍ¹·Õè A2.10 â´Â㪠ʡÃÙ 3x10 ÁÁ.¡Ñº¹Íµ 3 ÁÁ. A2.12 ¹íÒẵàµÍÃÕè AA 4 ¡ ͹ºÃèØŧ㹡кж Ò¹ áÅ Ç» ´ ½Ò¡ÐºÐ¶ Ò¹ ¨Ò¡¹Ñ¹é ¨Ö§¹íÒºÍà ´ RBX-877 ·Õµè ´Ô µÑ§é ªÔ¹é µ ÍÁØÁ©Ò¡ áÅ Ç ÁÒ»ÃСºà¢ ҡѺâ¤Ã§Ëع ¹µ ·äÕè ´ ¨Ò¡¢Ñ¹é µÍ¹·Õè A2.10 â´Â »ÅÒ¢ͧªÔ¹é µ ÍÁØÁ©Ò¡·Õºè Íà ´ RBX-877 ¨Ðµ ÍáࢠһÅÒ¢ͧ ªÔ¹é µ Íá¹ÇµÃ§·Õâè ¤Ã§Ëع ¹µ ¾Í´Õ ´ Ç¡ÒÃÊà ҧẺ¹Õ¨é Ъ ÇÂãË ¶Í´ºÍà ´ RBX-877 ÍÍ¡ä´ ÊдǡàÁ×Íè ÁÕ¤ÇÒÁµ ͧ¡ÒÃà»ÅÕÂè ¹ ẵàµÍÃÕè A2.12 àÊÕº¢ÑÇé ¢Í§ÁÍàµÍÃ à¢ Ò·Õ¨è ´Ø µ Í¢ÑÇé ÁÍàµÍà M-1 áÅÐ M-2 â´ÂÊÒÁÒöÊÅѺµíÒá˹ §¡ÒÃàÊÕº¢ÑÇé ÁÍàµÍà à¾×Íè ¡íÒ˹´ ·ÔÈ·Ò§¡ÒÃËÁع¢Í§ÁÍàµÍà ãË ¶Ù¡µ Í§ä´ «Öè§ÊÒÁÒö»ÃѺᵠ§ ãËÁ ä´ ã¹¡Ô¨¡ÃÃÁ¢Ñºà¤Å×Íè ¹Ëع ¹µ ÊíÒËÃѺÊÒ¨ҡ¡ÐºÐ¶ Ò¹ ¹Ñ¹é ãË àÊÕºࢠҡѺ¨Ø´µ Í 4.8-6V ã¹µíÒá˹ §ã¡Å ¡ºÑ ÊÇÔµª »´ à» ´ ¨Ñ´ÊÒÂàª×èÍÁµ Í·Ñé§ËÁ´ãË àÃÕºà Í A2.13 ¹íÒÊÒ¾ҹ·Õ»è ÃСͺäÇ áÅ Çã¹¢Ñ¹é µÍ¹¡ ͹˹ Ò¹Õ¤é Šͧ ࢠҡѺŠ͢Ѻà¤Å×Íè ¹áÅÐÅ Í»ÃФͧ A2.14 ¹íÒÊÒµ ͨҡἧǧ¨ÃµÃǨ¨Ñº¡ÒÃÊз ͹àÊÕºࢠҡѺ µíÒá˹ § RA0 áÅÐ RA1 ¢Í§ºÍà ´ RBX-877 à» ¹¡ÒÃàÊÃç¨ÊÔ¹é ¡ÒÃÊà ҧËع ¹µ Robo-PICA
ªÔ¹é µ Íá¹ÇµÃ§
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
61
º··Õè 4
¡ÒäǺ¤ØÁËØ ¹Â¹µ àº×éͧµ ¹
ÊÔ§è áá·Õ·è Òí ãË ÃÇÙ Ò ÊÒÁÒö¤Çº¤ØÁ¡Ò÷íÒ§Ò¹¢Í§Ëع ¹µ ä´ ¤Í× ¡ÒáíÒ˹´ãË Ë¹Ø Â¹µ à¤Å×Íè ¹ ·Õäè »ã¹·ÔÈ·Ò§·Õµè Í §¡ÒÃä´ ´Ñ§¹Ñ¹é Ê Ç¹áá·Õµè Í §·íÒ¤ÇÒÁࢠÒ㨤×Í Ê Ç¹¢Í§¡ÒâѺà¤Å×Íè ¹ «Ö§è ËÑÇ㨠ÊíҤѤ×Í Ç§¨Ã¢ÑºÁÍàµÍà ã¹ËØ ¹Â¹µ Robo-PICA 㪠ÁÍàµÍà 俵ç·íҧҹà ÇÁ¡ÑºªØ´à¿ ͧ㹡ÒâѺà¤Å×è͹ ÍØ»¡Ã³ ËÅÑ¡·Õãè ª ã¹Ç§¨Ã¢ÑºÁÍàµÍà 俵ç¤×Í äÍ«ÕàºÍà L293D «Ö§è ÊÒÁÒö¢ÑºÁÍàµÍÃ ä¿µÃ§ä´ 2 µÑÇ â´Â 㪠¢Ò¤Çº¤ØÁ¨Ò¡äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC16F877 ·Ñ§é ËÁ´ 6 ¢Ò äÍ«Õ L293D ÁÕ¤³ Ø ÊÁºÑµ·Ô ¹Õè Ò Ê¹ã¨ ´Ñ§¹Õé l
¨ Ò¡ÃÐáʢѺÁÍàµÍà 俵çã¹áµ ÅЪ Í§ä´ µÍ à¹×Íè § 600mA
l ¨ Ò¡ÃÐáÊÊÙ§Êش㹪 ǧÊѹ é æ ä´ 1.2A ã¹áµ ÅЪ ͧ l
ÁÕǧ¨Ã» ͧ¡Ñ¹ÍسËÀÙÁÔÊÙ§à¡Ô¹¡Ç Ò¤ Ò·Õè¡íÒ˹´
l
·¹µ ÍÊÑҳú¡Ç¹ä´ ´Õ
l
¡íÒ˹´Åͨԡ 0 «Ö§è 㪠㹡ÒäǺ¤ØÁä´ µ§Ñé áµ áç´Ñ¹ 1.5V ŧÁÒ¶Ö§ 0V
l
ÁÕä´âÍ´» ͧ¡Ñ¹¡ÃÐáÊ ͹¡ÅѺ¨Ò¡ÁÍàµÍà µ ÍäÇ ÀÒÂã¹
ÃٻẺ¡ÒâѺÁÍàµÍà 俵çãË ·Òí §Ò¹ÁÕ 4 ÃٻẺ¤×Í 1. ¢ÑºãË ÁÍàµÍà ËÁعµÒÁà¢çÁ¹ÒÌ ¡Ò 2. ¢ÑºãË ÁÍàµÍà ËÁع·Ç¹à¢çÁ¹ÒÌ ¡Ò 3. »Å ÍÂ᡹ÁÍàµÍà ÍÊÔ ÃÐ 4. Åç͡᡹ÁÍàµÍà ¡ÒäǺ¤ØÁÁÍàµÍà ·Ñé§ËÁ´¢Í§äÍ«Õ L293D ä´ ÃѺ¡ÒáíÒ˹´¨Ò¡ÊÑÒ³Åͨԡ ´Ñ§áÊ´§ ÃÒÂÅÐàÍÕ´㹵ÒÃÒ§·Õè 4-1
62
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
¢Ò 12EN/34EN
¢Ò 1A/3A
¢Ò 2A/4A
¡Ò÷íÒ§Ò¹¢Í§ÁÍàµÍÃ
0
X
X
1
0
0
1
0
1
1
1
0
1
1
1
᡹ÁÍàµÍà ໠¹ÍÔÊÃР᡹ÁÍàµÍà ¶Ù¡ÅçÍ¡ ÁÍàµÍà ËÁعµÒÁà¢çÁ¹ÒÌÔ¡Ò ÁÍàµÍà ËÁع·Ç¹à¢çÁ¹ÒÌÔ¡Ò á¡¹ÁÍàµÍà ¶Ù¡ÅçÍ¡
X ËÁÒ¶֧ à» ¹Åͨԡ "0" ËÃ×Í "1" ¡çä´
µÒÃÒ§·Õè 4-1 áÊ´§¡Òû ͹Åͨԡà¾×Íè ¡íÒ˹´·ÔÈ·Ò§¢Í§ÁÍàµÍà ÊíÒËÃѺǧ¨Ãµ Í㪠§Ò¹¡ÑºäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC16F877 ¹Ñ¹é áÊ´§´Ñ§ÃÙ»·Õè 4-1 «Ö§è à» ¹ ǧ¨Ãà´ÕÂǡѺ·Õãè ª 㹺Íà ´ RBX-877 ÁÍàµÍà A ¤Çº¤ØÁ·ÔÈ·Ò§ä´ ¨Ò¡¢Ò¾Íà µ RD0 áÅÐ¢Ò RD1 â´ÂàÍç¹àÍàºÔÅ¡Ò÷íÒ§Ò¹¢Í§Ç§¨Ã¢ÑºÁÍàµÍà µÇÑ ¹Õ¨é Ò¡¢Ò¾Íà µ RC2 Ê Ç¹ÁÍàµÍà B ¤Çº¤ØÁ·ÔÈ·Ò§ ä´ ¨Ò¡¢Ò¾Íà µ RD2 áÅÐ RD3 â´ÂàÍç¹àÍàºÔÅ¡Ò÷íÒ§Ò¹¢Í§Ç§¨Ã¢ÑºÁÍàµÍà B ´ Ç¢ҾÍà µ RC1 ÊíÒËÃѺàÍÒµ ¾µØ ¢Í§äÍ«Õ L293D «Ö§è µ ͧµ ÍࢠҡѺÁÍàµÍà ¹¹Ñé ¨ÐÁÕ LED áÊ´§¢ÑÇé ¢Í§áç´Ñ¹àÍÒµ ¾Øµ·Õ¨è Ò ÂãË á¡ ÁÍàµÍà â´Â LED ·Õãè ª à» ¹ LED ÊͧÊÕ áÊ´§ÊÕá´§áÅÐà¢ÕÂÇ ¶ ÒËÒ¡àÍÒµ ¾µØ ÁÕ¡Òè Ò áç´Ñ¹ãË µÃ§¢ÑÇé LED ¨ÐáÊ´§à» ¹ÊÕà¢ÕÂÇ áÅж Ò¡ÅѺ¢ÑÇé ¨Ðà» ¹ÊÕá´§ ¨Ö§¾Í·Õ¨è Ðãª Ê·Õ àÕè ¡Ô´¢Ö¹é ¹Õáé Ê´§ ·ÔÈ·Ò§¡Ò÷íÒ§Ò¹¢Í§ÁÍàµÍÃ ä´ â´Â㪠ÊàÕ ¢ÕÂÇáÊ´§¡ÒáíÒ˹´ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õäè »¢ ҧ˹ Ò Ê Ç¹ ÊÕá´§áÊ´§¡Ò÷ÕËè ¹Ø Â¹µ à¤Å×Íè ¹·Õäè »´ Ò¹ËÅѧ ÊíÒËÃѺ¨Ø´µ ÍÁÍàµÍà ÁÕ 2 ¨Ø´ ¡íÒ˹´à» ¹ DIRECT áÅÐ INVERT ÊÒÁÒö¡ÅѺÊÒ¢ͧÁÍàµÍÃ ä´ à¾×Íè ¡íÒ˹´·ÔÈ·Ò§¡ÒÃËÁع¢Í§ÁÍàµÍà ãË ¶¡Ù µ ͧ J9A-J9B MOTOR-A +5V +Vm
IC4 PIC16F877
16 RD0 RD1
19
2
20
7 2A
RC2/CCP1 17 RD2 RD3 RC1/CCP2
1
1A
8
Vcc1
1Y 3
IC6 6 L293D 2Y
12EN
21
15 4A
22
10
16
9
C15 0.1/63V
4Y 3Y
14
+ +
R21 1k
DIRECT LED6 DIR. #A
LED7 DIR. #B
11 R22 1k
3A 34EN
13 12 5
INVERT
4
C16 0.1/63V J10A-J10B MOTOR-B
ÃÙ»·Õè 4-1 áÊ´§Ç§¨Ã¢ÑºÁÍàµÍà ¢Í§ºÍà ´ RBX-877
INVERT
+ + DIRECT
áÊ´§µíÒá˹ §¢Í§¢Ñéǵ Í ÁÍàµÍà áÅÐ LED ·Õãè ª áÊ´§ ¢ÑÇé ¢Í§áç´Ñ¹·Õ¨è Ò ÂãË á¡ ÁÍàµÍà º¹ºÍà ´ RBX-877 «Öè§ãª ¡íÒ˹´·ÔÈ·Ò§¡Òà ËÁع¢Í§ÁÍàµÍà ä´
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
63
¡Ô¨¡ÃÃÁ·Õè 3
µÃǨÊͺ·ÔÈ·Ò§¡ÒÃËÁع¢Í§ÁÍàµÍà A3.1 à» ´â»Ãá¡ÃÁ Microcode Studio à¢Õ¹«Íà Êâ»Ãá¡ÃÁÀÒÉÒàºÊÔ¡ ´Ñ§ã¹â»Ãá¡ÃÁ·Õè P3-1 A3.2 µ ÍÊÒ´Òǹ âËÅ´¨Ò¡¤ÍÁ¾ÔÇàµÍà ä»ÂѧËع ¹µ à» ´ÊÇÔµª ¨Ò Âä¿ ¡´ÊÇÔµª MODE àÅ×Í¡âËÁ´â»Ãá¡ÃÁ ËÃ×Í¡´»ØÁ F10 à¾×Íè Ê §â»Ãá¡ÃÁä»ÂѧËع ¹µ Robo-PICA (LED ÊÕá´§µÔ´ÊÇ Ò§) ¨Ò¡¹Ñ¹é ¡´»ØÁ '*********************************************************** '* Name : P0301.BAS * '* Notes : Test Direction of Motor * '*********************************************************** @ DEVICE PIC16F877,HS_OSC ; used PIC16F877 DEFINE OSC 20 ; Oscillator = 20 MHz LOOP: ;***** Motor Free *************** FREQOUT PORTA.4,200,2000 ; Beep ;..... Motor A ......... LOW PORTC.2 ; Disable Motor A LOW PORTD.0 LOW PORTD.1 ;..... Motor B ......... LOW PORTC.1 ; Disable Motor B LOW PORTD.2 LOW PORTD.3 PAUSE 5000 ; Delay 5 Second ;***** Motor Lock *************** FREQOUT PORTA.4,200,2000 ; ;..... Motor A ......... HIGH PORTC.2 ; ;..... Motor B ......... HIGH PORTC.1 ; PAUSE 5000 ;
Beep Enable Motor A Enable Motor B Delay 5 Second
;***** Motor Forward ************ FREQOUT PORTA.4,200,2000 ; Beep ;..... Motor A ......... LOW PORTD.0 HIGH PORTD.1 ;..... Motor B ......... HIGH PORTD.2 LOW PORTD.3 PAUSE 5000 ; Delay 5 Second ;***** Motor Backword *********** FREQOUT PORTA.4,200,2000 ; Beep ;..... Motor A ......... HIGH PORTD.0 LOW PORTD.1 ;..... Motor B ......... LOW PORTD.2 HIGH PORTD.3 PAUSE 5000 ; Delay 5 Second GOTO LOOP
â»Ãá¡ÃÁ·Õè P3-1 â»Ãá¡ÃÁ·´Åͧ¢ÑºÁÍàµÍà ã¹ÃٻẺµ Ò§æ ¢Í§Ëع ¹µ Robo-PICA
64
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
A3.3 ·íÒ¡ÒÃà»ÅÕÂè ¹âËÁ´à» ¹âËÁ´Ãѹ (LED ÊÕà¢ÕÂǵԴÊÇ Ò§) ´Ù¼Å¡Ò÷íÒ§Ò¹¢Í§â»Ãá¡ÃÁ«Ö§è ͸ԺÒÂä´ ´§Ñ ¹Õé Ê Ç¹áá ¡íÒ˹´ãË ¢Ò·Õãè ª ¤Çº¤ØÁÁÍàµÍà ·§Ñé ËÁ´à» ¹Åͨԡ 0 ·íÒãË äÁ Á¡Õ Òû ͹áç´Ñ¹ä»ÂѧÁÍàµÍà ·Ñ§é ÊͧµÑÇ á¡¹ÁÍàµÍà ·§Ñé ÊͧµÑÇà» ¹ÍÔÊÃÐ Ê Ç¹·Õè 2 ¡íÒ˹´ãË àÍç¹àÍàºÔÅǧ¨Ã¢ÑºÁÍàµÍà ·§Ñé ÊͧµÑÇ â´Â¡íÒ˹´ãË ÁÅÕ Í¨Ô¡ 1 Ê Ç¹¢Ò·Õãè ª ¢ºÑ ÁÍàµÍà Âѧ¤§ÁÕÅͨԡ 0 ઠ¹à´ÔÁ ·íÒãË ¢ÇÑé ¢Í§ÁÍàµÍà ·§Ñé Êͧ¢ÑÇé ä´ ÃºÑ ä¿Åº·Ñ§é ¤Ù ᡹¢Í§ÁÍàµÍà ¨Ð¶Ù¡ÅçÍ¡ Ê Ç¹·Õè 3 ¡íÒ˹´ãË ÁÍàµÍà ËÁع仴 ҹ˹ Ò â´Â¡Òû ͹ãË ¢ÇÑé ´ Ò¹Ë¹Ö§è ¢Í§ÁÍàµÍà ãË ä´ ÃºÑ ä¿ºÇ¡ â´Â ¡íÒ˹´ãË ¢Ò RD0 áÅÐ RD2 à» ¹ 1 Ê Ç¹¢ÑÇé ÍÕ¡´ Ò¹Ë¹Ö§è ¢Í§ÁÍàµÍÃ ä´ ÃºÑ áç´Ñ¹ 0V à¹×Íè §¨Ò¡¡íÒ˹´ãË ¢Ò RD1 áÅÐ¢Ò RD3 à» ¹ 0 Ê Ç¹·Õè 4 ¡ÅѺ¡ÒÃËÁع¢Í§ÁÍàµÍà â´Â¡ÅѺµíÒá˹ §¡Òû ͹Åͨԡ ¡íÒ˹´ãË ¢Ò RD0 áÅÐ RD2 à» ¹ 0 Ê Ç¹¢Ò RD1 áÅÐ RD3 à» ¹ 1 ¹Í¡¨Ò¡¹Õãé ¹ª ǧ¡ÒÃà»ÅÕÂè ¹Ê¶Ò¹Ðã¹áµ ÅФÃÑ§é ¡íÒ˹´ãË Á¡Õ ÒÃÊ §àÊÕ§¤ÇÒÁ¶Õè 2kHz à» ¹àÇÅÒ 0.2 ÇÔ¹Ò·Õ ÍÍ¡ÁÒ´ Ç à¾×Íè ãË ¼ãÙ ª §Ò¹·ÃÒºÇ Ò â»Ãá¡ÃÁ¡íÒÅѧ·íÒ§Ò¹ã¹Ê ǹã´ÍÂÙ àÁ×èÍ·´ÅͧÃѹâ»Ãá¡ÃÁãË ·´Êͺ´Ù¼Å¡Ò÷íÒ§Ò¹¢Í§ÁÍàµÍà áÅдٷÔÈ·Ò§¡ÒÃËÁع¢Í§ÁÍàµÍà ãË ¶Ù¡µ ͧ´ Ç ¡Å ÒǤ×Í àÁ×Íè â»Ãá¡ÃÁ¡íÒ˹´ãË ÁÍàµÍà à¤Å×Íè ¹·Õäè »´ ҹ˹ Ò (forward) ä¿áÊ´§¼Å¡Ò÷íÒ§Ò¹¢Í§ ÁÍàµÍà ¤ÇõԴ໠¹ÊÕà¢ÕÂÇ áÅÐàÁ×Íè ¡íÒ˹´ãË ÁÍàµÍà à¤Å×Íè ¹·Õ¶è ÍÂËÅѧ (backward) ä¿áÊ´§¼Å¡Ò÷íÒ§Ò¹¢Í§ ÁÍàµÍà ¤ÇõԴ໠¹ÊÕá´§ ´Ñ§¹Ñ¹é ·ÔÈ·Ò§¡ÒÃËÁع¢Í§ÁÍàµÍà ¤ÇÃÊÑÁ¾Ñ¹¸ ¡ºÑ ¡ÒÃáÊ´§¼Å¢Í§ LED ´ Ç ¶ ÒµíÒá˹ § ·ÔÈ·Ò§äÁ ¶¡Ù µ ͧãË ¡ÅѺÊÒÂàª×Íè Áµ ÍÁÍàµÍà ä»ÂѧµíÒá˹ §µÃ§¢ ÒÁá·¹
ÃÙ»·Õè A3-1 áÊ´§¡ÒáÅѺµíÒá˹ §¢ÑÇé µ ÍÁÍàµÍà àÁ×Íè ·ÔÈ·Ò§¡ÒÃËÁع¢Í§ÁÍàµÍà äÁ ¶¡Ù µ ͧ
E
ÊíÒËÃѺÁÍàµÍà áç´Ñ¹µèíÒ ¤ÇÒÁµ Ò¹·Ò¹ÀÒÂ㹢ͧÁÍàµÍà ¨Ð¹ Í ·íÒãË àÁ×èÍ᡹ ÁÍàµÍà ÅÍç ¡¨ÐäÁ àË繤ÇÒÁᵡµ Ò§ÃÐËÇ Ò§¡ÒÃÅç͡᡹ËÃ×Í᡹໠¹ÍÔÊÃÐ
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
65
¡Ô¨¡ÃÃÁ·Õè 4
¤Çº¤ØÁ¡ÒÃàÅÕéÂǢͧËØ ¹Â¹µ Ëع ¹µ Robo-PICA à¤Å×Íè ¹·Õäè ´ â´Â㪠ÁÍàµÍà 俵ç¢Ñºà¤Å×Íè ¹ÊÒ¾ҹ ´Ñ§¹Ñ¹é ¡ÒÃà¤Å×Íè ¹·Õäè »¢ ҧ˹ ÒáÅÐ ¶ÍÂËÅѧ¨Ð¡íÒ˹´ãË ÁÍàµÍà ·§Ñé ÊͧµÑÇËÁعä»ã¹·ÔÈ·Ò§à´ÕÂǾà ÍÁæ ¡Ñ¹ áµ ¶Ò µ ͧ¡ÒÃãË àÅÕÂé Ç ÊÒÁÒö·íÒä´ â´Â 1. ËÂØ´¡Ò÷íÒ§Ò¹¢Í§ÁÍàµÍà µÇÑ ã´µÑÇ˹֧è àÍÒäÇ áÅ ÇãË ÁÍàµÍÃ Í¡Õ µÑÇËÁع ¶ ÒÁÍàµÍà ¢ÇÒÁ×Í ËÁع仴 ҹ˹ Ò Ëع ¹µ ¨ÐàÅÕÂé Çä»·Ò§« Ò ¶ ÒÁÍàµÍà «Ò ÂÁ×ÍËÁع仴 ҹ˹ Ò Ëع ¹µ ¨ÐàÅÕÂé Çä»·Ò§¢ÇÒ ÇÔ¸¡Õ Òà ¹Õ¤é ÇÒÁàÃçÇ㹡ÒÃàÅÕÂé ǨÐà· Òæ ¡Ñº¡ÒÃà¤Å×Íè ¹·Õäè »¢ ҧ˹ Ò áµ ÁÍàµÍà ··Õè Òí ˹ Ò·ÕËè Áع¨Ðµ ͧÍÍ¡áçÁÒ¡¡Ç Ò»¡µÔ à¹×Íè §¨Ò¡¨Ðµ ͧÅÒ¡ÀÒÃÐÊÒ¾ҹ¢Í§Å Í´ Ò¹·ÕËè ÂØ´ÍÂÙ¡ ºÑ ·Õãè Ë º´Ô µÑǵÒÁ¡ÒÃàÅÕÂé Çä»´ Ç áÅШشËÁع¢Í§Ëع ¹µ ¨ÐÍÂÙ· ÅÕè Í ´ Ò¹·ÕÍè ÂØ´ÍÂÙ¡ ºÑ ·Õè ´Ñ§ã¹ÃÙ»·Õè A4-1
¨Ø´ËÁع
¨Ø´ËÁع
ÃÙ»·Õè A4-1 áÊ´§¡ÒÃàÅÕÂé ǢͧËع ¹µ â´ÂãË ÁÍàµÍà ´Ò ¹Ë¹Ö§è ËÂØ´ÍÂÙ¡ ºÑ ·Õè
¨Ø´ËÁع
¨Ø´ËÁع
ÃÙ»·Õè A4-2 ¡ÒÃàÅÕÂé ǢͧËع ¹µ â´ÂãË ÁÍàµÍà ·§Ñé ÊͧµÑÇËÁعä»ã¹·ÔÈ·Ò§µÃ§¡Ñ¹¢ ÒÁ
66
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
2. ãË ÁÍàµÍà µÇÑ Ë¹Ö§è ËÁع仴 ҹ˹ ÒÊ Ç¹ÍÕ¡µÑÇ˹֧è ËÁع¶ÍÂËÅѧ ¶ ÒÁÍàµÍà «Ò ÂËÁع仢 ҧ˹ Ò áÅÐÁÍàµÍà ¢ÇÒËÁع¶ÍÂËÅѧ Ëع ¹µ ¨ÐËÁعµÑÇä»·Ò§¢ÇÒÁ×Í ã¹·Ò§¡ÅѺ¡Ñ¹ ¶ ÒÁÍàµÍà ·¢ÇÒÁ×ÍËÁع仴 ҹ˹ Ò ÁÍàµÍà «Ò ÂÁ×ÍËÁع¶ÍÂËÅѧ ¨Ðà» ¹¡ÒÃàÅÕÂé ÇËÃ×ÍËÁعµÑÇä»·Ò§« Ò à¹×Íè §¨Ò¡ÁÍàµÍà ·§Ñé ÊͧµÑÇ·íÒ§Ò¹¾Ã ÍÁ¡Ñ¹ áµ ä»ã¹·ÔÈ·Ò§µÃ§¡Ñ¹¢ ÒÁ¡Ñ¹ ¨Ö§·íÒãË ¤ÇÒÁàÃçÇ㹡ÒÃËÁعµÑÇÊÙ§¡Ç Ò»¡µÔ 2 à· Ò áÅÐäÁ à¡Ô´¡ÒÃàÊÕ´·Ò¹·Õ¾è ¹×é Ê Ç¹¨Ø´ËÁع¨ÐÍÂÙ¡ §Öè ¡ÅÒ§¢Í§Ëع ¹µ ÃÐËÇ Ò§Å ÍÊÒ¾ҹ·ÕÊè ÁÑ ¼ÑÊ¾×¹é ·Ñ§é Êͧ´ Ò¹ ´Ñ§áÊ´§ã¹ÃÙ»·Õè A4-2 A4.1 à¢Õ¹â»Ãá¡ÃÁ·Õè P4-1 ¨Ò¡¹Ñ¹é à» ´ÊÇÔµª ¨Ò Âä¿ãË ¡ºÑ Ëع ¹µ áÅС´ÊÇÔµª MODE àÅ×Í¡à» ¹âËÁ´â»Ãá¡ÃÁ ¨Ò¡¹Ñ¹é ¡´»ØÁ Compile and Program ËÃ×Í¡´»ØÁ F10 à¾×Íè Ê §â»Ãá¡ÃÁä»ÂѧËع ¹µ A4.2 ¡´»ØÁ MODE à¾×Íè à»ÅÕÂè ¹à» ¹âËÁ´Ãѹ à¾×Íè Êѧè ãË Ë¹Ø Â¹µ ·Òí §Ò¹ â´Â´Ù¼Å¡ÒÃàÅÕÂé ǢͧËع ¹µ ÊÑ§à¡µä´ ÇÒ ¡ÒÃàÅÕÂé Çâ´Â¢ÑºÁÍàµÍà à¾Õ§µÑÇà´ÕÂÇ¹Ñ¹é ¨ÐàÅÕÂé Çä´ ªÒ ¡Ç Ò¡ÒâѺÁÍàµÍà ÊͧµÑÇ·íÒ§Ò¹¾Ã ÍÁ¡Ñ¹ áÅÐãË Ê§Ñ à¡µ¨Ø´ËÁع¢Í§ÁÍàµÍà ÊÒí ËÃѺ¡ÒÃàÅÕÂé Ƿѧé ÊͧẺ¨ÐÁÕµÒí á˹ §¢Í§¨Ø´ËÁع·Õáè µ¡µ Ò§¡Ñ¹ '***************************************************************** '* Name : P0401.BAS * '* Notes : Turn Robot And Spin Robot * '***************************************************************** @ DEVICE PIC16F877,HS_OSC ; used PIC16F877 DEFINE OSC 20 ; Oscillator = 20 MHz HIGH PORTC.2 ; Enable Motor A HIGH PORTC.1 ; Enable Motor B LOOP: ;***** Motor Turn Left **************** FREQOUT PORTA.4,200,2000 LOW PORTD.0 : LOW PORTD.1 HIGH PORTD.2 : LOW PORTD.3 PAUSE 5000
; Beep ;.. Motor A .... ;.. Motor B .... ; Delay 5 Second
;***** Motor Turn Right **************** FREQOUT PORTA.4,200,2000 LOW PORTD.0 : HIGH PORTD.1 LOW PORTD.2 : LOW PORTD.3 PAUSE 5000
; Beep ;.. Motor A .... ;.. Motor B .... ; Delay 5 Second
;***** Motor Spin Left **************** FREQOUT PORTA.4,200,2000 HIGH PORTD.0 : LOW PORTD.1 HIGH PORTD.2 : LOW PORTD.3 PAUSE 5000
; Beep ;.. Motor A .... ;.. Motor B .... ; Delay 5 Second
;***** Motor Spin Right **************** FREQOUT PORTA.4,200,2000 LOW PORTD.0 : HIGH PORTD.1 LOW PORTD.2 : HIGH PORTD.3 PAUSE 5000
; Beep ;.. Motor A .... ;.. Motor B .... ; Delay 5 Second
GOTO LOOP
¤íÒ͸ԺÒÂà¾ÔÁè àµÔÁ â»Ãá¡ÃÁ¹Õ¤é Ǻ¤ØÁãË Ë¹Ø Â¹µ àÅÕÂé Ç« Ò 5 ÇÔ¹Ò·Õ ¨Ò¡¹Ñ¹é Êѧè ãË Ë¹Ø Â¹µ àÅÕÂé Ç¢ÇÒÍÕ¡ 5 ÇÔ¹Ò·Õ áÅ ÇÊѧè ãË ËÁع µÑÇ·Ò§« Ò 5 ÇÔ¹Ò·Õ áÅÐËÁعµÑÇä»·Ò§¢ÇÒÍÕ¡ 5 ÇÔ¹Ò·Õ ·íÒ«éÒí 仵ÅÍ´ ·Ø¡¤ÃÑ§é ·Õàè »ÅÕÂè ¹¡Ò÷íÒ§Ò¹¨ÐÊ §àÊÕ§ µÔ´é 1 ¤Ãѧé
â»Ãá¡ÃÁ·Õè P4-1 â»Ãá¡ÃÁ·´ÅͧÊÑ§è §Ò¹ãË Ë¹Ø Â¹µ Robo-PICA àÅÕÂé ÇáÅÐËÁعµÑÇ
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
67
¡Ô¨¡ÃÃÁ·Õè 5
¡ÒäǺ¤ØÁ¤ÇÒÁàÃçǢͧËØ ¹Â¹µ Ëع ¹µ Robo-PICA ÁÕ¡ÒÃàµÃÕÂÁ¤ÇÒÁ¾Ã ÍÁÊíÒËÃѺ¡ÒûÃѺ¤ÇÒÁàÃçÇÁÍàµÍà äÇ àÃÕºà ÍÂáÅ Ç â´Â» ͹ ÊÑҳࢠҷբè ÒàÍç¹àÍàºÔÅ¡Ò÷íÒ§Ò¹¢Í§äÍ«Õ¢ºÑ ÁÍàµÍà (EN) «Ö§è ¨Ò¡Ç§¨Ãã¹ÃÙ»·Õè 4-1 (㹺·¹Õ)é áÊ´§ãË àËç¹Ç Ò ¢ÒàÍç¹àÍàºÔŶ١µ ÍäÇ ¡ºÑ ¢Ò¾Íà µ RC2/CCP1 áÅÐ RC1/CCP2 «Ö§è ¢Ò¾Íà µ·Ñ§é Êͧ¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ÊÒÁÒö ¡íÒ˹´ãË à» ¹¢ÒÊà ҧÊÑÒ³ PWM (¾ÑÅÊ Ç´Ô ¸ ÁÍ´ÙàÅàµÍà ) à¾×Íè »ÃѺ¤ÇÒÁàÃçǢͧÁÍàµÍà ä´
¡Ò÷íÒ§Ò¹¢Í§¾ÑÅÊ Ç´Ô ¸ ÁÍ´ÙàÅàµÍÃ
㹡ÒäǺ¤ØÁÁÍàµÍà â´Â»¡µÔ¹¹Ñé ¨Ð» ͹áç´Ñ¹ä¿µÃ§ãË ¡ºÑ ÁÍàµÍà ÁÍàµÍà ¡¨ç зíÒ§Ò¹àµçÁ¡íÒÅѧ «Ö§è ÍÒ¨ ¨ÐÁÕ¤ÇÒÁàÃçÇÁÒ¡à¡Ô¹ä» ´Ñ§¹Ñ¹é ¡ÒûÃѺ¤ÇÒÁàÃçǢͧÁÍàµÍà ¨§Ö ãª Ç¸Ô ÅÕ ´ÃдѺáç´Ñ¹·Õ»è Í ¹ãË ¡ºÑ ÁÍàµÍà ÇÔ¸·Õ ¹Õè ÂÔ Á ¤×Í ¡Òû ͹¾ÑÅÊ ä»¢ÑºÁÍàµÍà ᷹ áÅ Ç㪠¡ÒûÃѺ¤ÇÒÁ¡Ç Ò§¾ÑÅÊ ªÇ §ºÇ¡ à¾×Íè ãË ä´ ¤Ò áç´Ñ¹à©ÅÕÂè µÒÁµ ͧ¡Òà ÇÔ¸¡Õ ÒùÕàé ÃÕÂ¡Ç Ò ¾ÑÅÊ Ç´Ô ¸ ÁÍ´ÙàÅàµÍà (PWM) â´Â¤ÇÒÁ¡Ç Ò§¾ÑÅÊ ªÇ §ºÇ¡àÁ×Íè à·Õº¡Ñº¤ÇÒÁ¡Ç Ò§¾ÑÅÊ ·§Ñé ËÁ´àÃÕ¡ Ç Ò ´ÔǵÕäé «à¡ÔÅ â´Â¨Ð¤Ô´¤ Ò´ÔǵÕäé «à¡ÔÅà» ¹à»Íà à«ç¹µ ¢Í§¤ Ò¤ÇÒÁ¡Ç Ò§¾ÑÅÊ ·§Ñé ËÁ´
V o lt
V o lt
4 .8 V
4 .8 V
áç´Ñ¹à©ÅÕÂè
´ÔǵÕäé «à¡ÔÅ 50%
2 .4 V
V o lt
(¡) áç´Ñ¹à©ÅÕÂè
Tim e
´ÔǵÕäé «à¡ÔÅ 75%
4 .8 V
Tim e
(¢) V o lt
áç´Ñ¹à©ÅÕÂè ´ÔǵÕäé «à¡ÔÅ 25 %
4 .8 V
3 .6 V 1 .2 V Tim e
(¤)
Tim e
(§)
ÃÙ»·Õè A5-1 áÊ´§¡ÒÃà»ÃÕºà·Õº¤ Òáç´Ñ¹·Õàè ¡Ô´¢Ö¹é àÁ×Íè 㪠PWM (¡) ¡Òû ͹ÊÑҳ俵ç (¢) PWM ÁÕ´ÇÔ µÕäé «à¡ÔÅ 50 % (¤) PWM ÁÕ´ÇÔ µÕäé «à¡ÔÅ 75 % (§) PWM ÁÕ´ÇÔ µÕäé «à¡ÔÅ 25 %
68
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
µÑÇÍ ҧ¨Ò¡ÃÙ»·Õè A5-1(b) ÁÕ¤Ò ´ÔǵÕäé «à¡ÔÅ 50% ËÁÒ¶֧ ¤ÇÒÁ¡Ç Ò§¢Í§¾ÑÅÊ ªÇ §ºÇ¡ÁÕ¤ÇÒÁ¡Ç ҧ໠¹ 50% ¢Í§¤ÇÒÁ¡Ç Ò§·Ñ§é ËÁ´ ´Ñ§¹Ñ¹é áç´Ñ¹à©ÅÕÂè ·Õäè ´ ¨ÐÁÕ¤Ò à· Ò¡Ñº (50 x 4.8) /100 = 2.4V ÊíÒËÃѺÃÙ»·Õè A5-1(c) áÅÐ (d) à» ¹¡ÒáíÒ˹´¤ Ò´ÔǵÕäé «à¡ÔÅ 75% áÅÐ 25% µÒÁÅíҴѺ ÊíÒËÃѺ¡ÒÃÊà ҧÊÑÒ³ PWM ´ ÇÂâ»Ãá¡ÃÁÀÒÉÒàºÊÔ¡¢Í§ PICBASIC PRO ¤ÍÁä¾àÅÍà ·íÒä´ â´Â㪠¤íÒÊѧè HPWM «Ö§è à» ¹¤íÒÊѧè Êà ҧÊÑÒ³ PWM ·Ò§ÎÒà ´áÇà ÍÍ¡·Ò§¢Ò¾Íà µ RC2 áÅÐ RC1 ´Ñ§áÊ´§â»Ãá¡ÃÁ µÑÇÍ ҧ¡ÒÃ㪠§Ò¹ PWM ã¹â»Ãá¡ÃÁ·Õè P5-1 '***************************************************************** '* Name : P0501.BAS * '* Notes : Speed Control * '***************************************************************** @ DEVICE PIC16F877,HS_OSC ; used PIC16F877 DEFINE OSC 20 ; Oscillator = 20 MHz OUTPUT PORTC.1 ; RC1 = OUTPUT BEFORE USE CH#2 LOOP: HPWM 1 ,(100*255)/100,20000 ; Alway ON HPWM 2 ,(100*255)/100,20000 ; Alway ON ;***** Motor Forward **************** FREQOUT PORTA.4,200,2000 ; Beep LOW PORTD.0 : HIGH PORTD.1 ; ..... Motor A HIGH PORTD.2 : LOW PORTD.3 ; ..... Motor B PAUSE 5000 ; Delay 5 Second FREQOUT HPWM HPWM PAUSE
PORTA.4,200,2000 1 ,(90*255)/100,20000 2 ,(90*255)/100,20000 5000
; ; ; ;
Beep 20kHz, Duty Cycle 90% 20kHz, Duty Cycle 90% Delay 5 Second
FREQOUT HPWM HPWM
PORTA.4,200,2000 1 ,(80*255)/100,20000 2 ,(80*255)/100,20000
; Beep ; 20kHz , Duty Cycle 80% ; 20kHz , Duty Cycle 80%
PAUSE
5000
; Delay 5 Second
GOTO
LOOP
â»Ãá¡ÃÁ·Õè P5-1 â»Ãá¡ÃÁ»ÃѺ¤ÇÒÁàÃçÇ¡ÒÃà¤Å×Íè ¹·Õ¢è ͧËع ¹µ â´Âãª Ç¸Ô ¡Õ ÒÃÊà ҧÊÑÒ³ PWM
E
ÊíÒËÃѺ¡ÒâѺËع ¹µ ¤Ò ´ÔǵÕäé «à¡ÔŤÇÃÁÕ¤Ò ÁÒ¡¡Ç Ò 70% à¾×Íè ãË ÊÒÁÒö¢Ñºà¤Å×Íè ¹ ÁÍàµÍà ãË à¤Å×Íè ¹·Õäè »ä´ ¡ÒáíÒ˹´¤ Ò¤ÇÒÁàÃçÇ·Õ¹è Í Âà¡Ô¹ä»ÍÒ¨¨·íÒãË Ë¹Ø Â¹µ ÁáÕ Ã§ºÔ´µÑÇã¹ÃÐËÇ Ò§¡ÒÃàÅÕÂé ÇäÁ à¾Õ§¾Íä´
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
69
A5.1 㪠â»Ãá¡ÃÁ Microcode Studio à¢Õ¹â»Ãá¡ÃÁ·Õè P5-1 ¨Ò¡¹Ñ¹é ´Òǹ âËÅ´â»Ãá¡ÃÁä»ÂѧËع ¹µ Robo-PICA à¾×Íè ·´Åͧ´Ù¼Å¡Ò÷íÒ§Ò¹¢Í§â»Ãá¡ÃÁ ÁÕÃÒÂÅÐàÍÕ´¡Ò÷íÒ§Ò¹¢Í§â»Ãá¡ÃÁ´Ñ§¹Õé 1. 㹵͹àÃÔÁè µ ¹¡íÒ˹´ãË PORTC ºÔµ 1 à» ¹àÍÒµ ¾µØ (áµ äÁ ¨Òí à» ¹µ ͧ¡íÒ˹´ãË PORTC ºÔµ 2 à» ¹ àÍÒµ ¾µØ à¹×Íè §¨Ò¡¤íÒÊѧè HPWM ¨Ð¡íÒ˹´ãË âÍÂÍѵâ¹ÁÑµÔ ) 2. ¡íÒ˹´¤ Ò PWM ÁÕ¤Ò ¤ÇÒÁ¶Õàè · ҡѺ 20kHz áÅдÔǵÕäé «à¡ÔÅ 100% «Ö§è ËÁÒ¶֧ ¢Ò EN ¢Í§äÍ«Õ L293D ä´ ÃºÑ Åͨԡ 1 µÅÍ´àÇÅÒ à» ¹¡ÒáíÒ˹´ãË ÁÍàµÍà ·Òí §Ò¹àµçÁ·Õè 100% 3. Ê §àÊÕ§ µÔ´é áÅ ÇÊѧè ãË ÁÍàµÍà à¤Å×Íè ¹·Õäè »¢ ҧ˹ Ò à» ¹àÇÅÒ 5 ÇÔ¹Ò·Õ 4. Ê §àÊÕ§ µÔ´é áÅ Çà»ÅÕÂè ¹¤ Ò´ÔǵÕäé «à¡ÔŢͧÊÑÒ³ PWM à» ¹ 90% à¾×Íè Å´¤ÇÒÁàÃçÇ㹡ÒÃà¤Å×Íè ¹·Õè ¢Í§Ëع ¹µ ŧ໠¹àÇÅÒ 5 ÇÔ¹Ò·Õ 5. Ê §àÊÕ§ µÔ´é áÅ Çà»ÅÕÂè ¹¤ Ò´ÔǵÕäé «à¡ÔÅà» ¹ 80% à¾×Íè Å´¤ÇÒÁàÃçǢͧÁÍàµÍà ŧä»ÍÕ¡ à» ¹àÇÅÒ 5 ÇÔ¹Ò·Õ â´Â¨Ò¡â»Ãá¡ÃÁ¹Õ¼é ãÙ ª §Ò¹ÊÒÁÒö»ÃѺᵠ§¤ÇÒÁàÃçÇ¡ÒÃà¤Å×Íè ¹·Õ¢è ͧËع ¹µ ä´ µÒÁµ ͧ¡Òà A5.2 ¡´»ØÁ MODE à¾×Íè à»ÅÕÂè ¹à» ¹âËÁ´Ãѹ à¾×Íè Êѧè ãË Ë¹Ø Â¹µ ·Òí §Ò¹ â´Â´Ù¼Å¡Ò÷íÒ§Ò¹ Ëع ¹µ Robo-PICA ¨Ðà¤Å×Íè ¹·Õàè ÃçÇ·ÕÊè ´Ø à» ¹àÇÅÒ 5 ÇÔ¹Ò·Õ ¨Ò¡¹Ñ¹é ¨ÐÅ´¤ÇÒÁàÃçÇŧ áÅ Ç¡ÅѺä»à¤Å×Íè ¹ ·Õàè ÃçÇ¢Ö¹é ÍÕ¡¤Ãѧé ǹ·íҧҹઠ¹¹Õäé »µÅÍ´
¡Ô¨¡ÃÃÁ·Õè 6
ËØ ¹ ¹µ à ¤Å×è Í ¹·Õè µ ÒÁÃÙ » Ẻ·Õè ¡í Ò Ë¹´ ¡ÒäǺ¤ØÁãË Ë¹Ø Â¹µ Robo-PICA à¤Å×Íè ¹·Õäè »ÂѧµíÒá˹ §·Õµè Í §¡Òõ ͧ¾Ô¨ÒóҶ֧Ãкº¢Ñº à¤Å×Íè ¹¢Í§Ëع ¹µ´ Ç à¹×Íè §¨Ò¡ Robo-PICA 㪠ÁÍàµÍà 俵çà ÇÁ¡ÑºªØ´à¿ ͧ ´Ñ§¹Ñ¹é ¨Ö§äÁ ÊÒÁÒöÃÐºØ ¨íҹǹÃͺ¢Í§¡ÒÃËÁعÁÍàµÍà ·áÕè ¹ ¹Í¹ä´ ´Ñ§¹Ñ¹é ÇÔ¸·Õ ·Õè Òí ä´ ã¡Å à¤Õ§·ÕÊè ´Ø ¤×Í ¡ÒáíÒ˹´ÃÐÂÐàÇÅÒã¹ ¡ÒÃà¤Å×Íè ¹·Õè «Ö§è ã¹¢³Ðà¢Õ¹â»Ãá¡ÃÁ¨Ðµ ͧà¼×Íè ÃÐÂÐàÇÅÒ·ÕÁè ÍàµÍà àÃÔÁè µ ¹·íÒ§Ò¹áÅÐáçà©×Íè ·Õàè ¡Ô´¢Ö¹é ËÅѧ ÁÍàµÍà ËÂØ´·íÒ§Ò¹áÅ ÇàÍÒäÇ ´Ç  A6.1 à» ´â»Ãá¡ÃÁ Microcode Studio à¢Õ¹â»Ãá¡ÃÁ·Õè P6-1 áÅ Ç·´ÅͧÃѹãË ·Òí §Ò¹ â´Â੾ÒСÒäǺ¤ØÁ ãË Ë¹Ø Â¹µ àÅÕÂé Ç 90 ͧÈÒ «Ö§è ã¹â»Ãá¡ÃÁ¡íÒ˹´ÃÐÂÐàÇÅÒäÇ à· Ò¡Ñº 600 ÁÔÅÅÔÇ¹Ô Ò·Õ ÊíÒËÃѺËع ¹µ ºÒ§ µÑÇÍÒ¨¨ÐàÅÕÂé Çä´ äÁ ¶§Ö 90 ͧÈÒ áµ ºÒ§µÑÇÍÒ¨¨ÐàÅÕÂé Çà¡Ô¹ ´Ñ§¹Ñ¹é ¼Ùã ª §Ò¹µ ͧ»ÃѺᵠ§ÃÐÂÐàÇÅÒ¹Õãé Ë àËÁÒÐÊÁÊíÒËÃѺËع ¹µ áµ ÅеÑÇ ÊíÒËÃѺÃÒÂÅÐàÍÕ´¡Ò÷íÒ§Ò¹¢Í§â»Ãá¡ÃÁÁÕ´§Ñ ¹Õé
70
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
'***************************************************************** '* Name : P0601.BAS * '* Notes : Control Movement * '***************************************************************** @ DEVICE PIC16F877,HS_OSC ; used PIC16F877 DEFINE OSC 20 ; Oscilator = 20 MHz HIGH PORTC.2 ; Enable Motor A HIGH PORTC.1 ; Enable Motor B TRISD = %11110000 ; RD0-RD3 = OUTPUT Loop: GOSUB FORWARD : PAUSE 2000 ; Forward 2 second GOSUB S_LEFT90 ; Turn Left 90 deg. GOSUB FORWARD : PAUSE 2000 ; Forward 2 second GOSUB S_RIGHT90 ; Turn Right 90 deg. GOSUB BACKWARD : PAUSE 2000 ; Backward 2 second GOSUB S_RIGHT90 ; Turn Right 90 deg. GOTO Loop ; Do again FORWARD: BACKWARD: S_LEFT90:
PORTD = %00000110 : RETURN ; Forward routine PORTD = %00001001 : RETURN ; Backward routine PORTD = %00000101 : PAUSE 600 : RETURN ; Turn left 90 deg. routine S_RIGHT90: PORTD = %00001010 : PAUSE 600 : RETURN ; Turn right 90 deg. routine
â»Ãá¡ÃÁ·Õè P6-1 áÊ´§¡ÒâѺà¤Å×Íè ¹Ëع ¹µ µÒÁÃÐÂÐàÇÅÒ·Õ¡è Òí ˹´ 1. àÍç¹àÍàºÔÅ¡Ò÷íÒ§Ò¹¢Í§ÁÍàµÍà A áÅÐÁÍàµÍà B áÅСíÒ˹´ãË ¢Ò RD0-RD3 à» ¹àÍÒµ ¾µØ ÊíÒËÃѺ Ê §ÊÑÒ³ä»Âѧǧ¨Ã¢ÑºÁÍàµÍà â´Â¡ÒÃà¢Õ¹â»Ãá¡ÃÁµ Í仹Õàé » ¹¡ÒáíÒ˹´¤ Ò¾Íà µâ´ÂµÃ§ ¨ÐäÁ 㪠¤Òí Êѧè HIGH ËÃ×Í LOW ã¹áµ ÅкԵ à¹×Íè §¨Ò¡ÇÔ¸¡Õ Òôѧ¡Å ÒÇ㪠¨Òí ¹Ç¹¤íÒÊѧè ÁÒ¡à¡Ô¹ä» 2. ÊÑ§è §Ò¹ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õµè ç仢 ҧ˹ Ò 2 ÇÔ¹Ò·Õ àÅÕÂé Ç« Ò 90 ͧÈÒ à¤Å×Íè ¹·Õµè çÍÕ¡ 2 ÇÔ¹Ò·Õ àÅÕÂé Ç ¢ÇÒ 90 ͧÈÒ ¶ÍÂËÅѧ 2 ÇÔ¹Ò·Õ àÅÕÂé Ç¢ÇÒ 90 ͧÈÒ ¡ ͹·Õ¨è ÐãË â»Ãá¡ÃÁ¡ÅѺä»Ç¹ÅÙ»àÃÔÁè µ ¹·íÒ§Ò¹ãËÁ Í¡Õ ¤Ãѧé 3. ÊíÒËÃѺâ»Ãá¡ÃÁ Í¤Ǻ¤ØÁ¡Ò÷íÒ§Ò¹¢Í§ÁÍàµÍà ¨Ðà» ¹¡ÒáíÒ˹´¤ ÒãË ¡ºÑ µíÒá˹ §¾Íà µ·Õµè Í §¡Òà â´ÂµÃ§ ÊíÒËÃѺ¡ÒÃÊѧè àÅÕÂé ǹѹé ã¹â»Ãá¡ÃÁ¨Ðà» ¹¡ÒÃàÅÕÂé Çâ´ÂãË ÅÍ ·Ñ§é Êͧ¢ Ò§ËÁعä»ã¹·ÔÈ·Ò§µÃ§¡Ñ¹¢ ÒÁ â´Â ¡íÒ˹´ÃÐÂÐàÇÅÒ¡ÒÃ˹ ǧäÇ ã¹â»Ãá¡ÃÁ Í ÊÒÁÒö»ÃѺà»ÅÕÂè ¹¤ Òà¾×Íè ãË Ë¹Ø Â¹µ àÅÕÂé Çà» ¹ÁØÁ©Ò¡ÁÒ¡¢Ö¹é ä´
E
à¹×Íè §¨Ò¡Ëع ¹µ 㪠¾Åѧ§Ò¹¨Ò¡áºµàµÍÃÕè ´Ñ§¹Ñ¹é ª ǧ·Õáè ºµàµÍÃÕàè µçÁáÅÐẵàµÍÃÕÍè Í ¹ ¤ÇÒÁàÃçÇ㹡Òà ËÁع¢Í§ÁÍàµÍà ¨ÐäÁ ෠ҡѹ Ê §¼ÅãË ÃÐÂзҧ·Õàè ¤Å×Íè ¹·Õäè »äÁ ෠ҡѹ
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
71
º··Õè 5
Ëع ¹µ µÃǨ¨ÑºàÊ ¹Íѵâ¹ÁÑµÔ ¨Ò¡¡Ô¨¡ÃÃÁ㹺·¡ ͹˹ Ò¹Õé¨Ð¾º¢ ͨíÒ¡Ñ´¢Í§ËØ ¹Â¹µ ·Õè¢Ñºà¤Å×è͹´ ÇÂÁÍàµÍà 俵çÍÂÙ »ÃСÒÃ˹Ö觤×Í ¡ÒäǺ¤ØÁµíÒá˹ §¡ÒÃà¤Å×è͹·Õè¢Í§ËØ ¹Â¹µ «Öè§äÁ ÊÒÁÒöÃкصíÒá˹ §·Õèá¹ ¹Í¹ ä´ ´Ñ§¹Ñ¹é 㹺·¹Õ¨é Ðà¾ÔÁè ´Ç§µÒàÊÁ×͹ ãË ¡ºÑ Ëع ¹µ à¾×Íè ãË ÊÒÁÒöà¤Å×Íè ¹·Õäè »ã¹¾×¹é ·Õ·è ¡Õè Òí ˹´ ä´ â´Â㪠ËÅÑ¡¡ÒõÃǨ¨Ñº¡ÒÃÊз ͹¡ÅѺ¢Í§áʧÍÔ¹¿ÃÒàô â´Â¾×¹é ·ÕÊè àÕ ¢ Á¨ÐÁÕ¡ÒÃÊз ͹¡ÅѺ ¢Í§áʧÍÔ¹¿ÃÒàÃ´ä´ ¹ Í ᵠ¾×é¹·ÕèÊÕÍ Í¹¨ÐÁÕ¡ÒÃÊз ͹¡ÅѺ¢Í§áʧÍÔ¹¿ÃÒàÃ´ä´ ´Õ¡Ç Ò
5.1 µÑǵÃǨ¨Ñº¡ÒÃÊз ͹áʧÍÔ¹¿ÃÒàô ¡ÒõÃǨ¨ÑºáʧÊз ͹¹Ñ¹é ¨ÐÁÕÊÇ ¹»ÃСͺÊíҤѤ×Í ÀÒ¤Ê §áʧáÅÐÀÒ¤ÃѺáʧÊз ͹ ÊíÒËÃѺµÑǵÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô ¨Ð㪠LED ÍÔ¹¿ÃÒàô·íÒ˹ Ò·ÕÊè § áʧÍÔ¹¿ÃÒàôÍÍ¡ä» Êз ͹Çѵ¶Ø áÅÐÃѺáʧ·ÕÊè з ͹¡ÅѺÁÒ´ ÇÂâ¿âµ ·ÃÒ¹«ÔÊàµÍà àÁ×Íè â¿âµ ·ÃÒ¹«ÔÊàµÍÃ ä´ ÃºÑ áʧ ÍÔ¹¿ÃÒàô·ÕÊè з ͹¡ÅѺÁÒ¨ÐÂÍÁãË ¡ÃÐáÊä¿¿ ÒäËż Ò¹µÑÇÁѹ ÂÔ§è ä´ ÃºÑ áʧÊз ͹¡ÅѺ·ÕÁè ¤Õ ÇÒÁ ࢠÁÁÒ¡à· Òã´ ¡ç¨ÐÂÔ§è ¹íÒ¡ÃÐáÊÁÒ¡¢Ö¹é ෠ҹѹé ÃÙ»·Õè 5-1 áÊ´§µÑÇÍ ҧ¢Í§á¼§µÃǨ¨Ñº¡ÒÃÊз ͹áʧ ẺÍÔ¹¿ÃÒàô ÃÇÁ·Ñ§é Ãٻà ҧ¢Í§µÑǵÃǨ¨Ñº·Õãè ª ¨Ò¡Ç§¨Ãã¹ÃÙ»·Õè 5-1 LED ÍÔ¹¿ÃÒàô¨Ðä´ ÃºÑ ¡Òè ÒÂáç´Ñ¹µÅÍ´àÇÅÒ¨Ò¡ä¿àÅÕÂé § +V ¢Í§¢ÑÇé µ ͵ÑǵÃǨ¨Ñº â´ÂÁÕµÇÑ µ Ò¹·Ò¹ 510Ω µ ͨíÒ¡Ñ´¡ÃÐáÊãË á¡ LED ´ Ò¹ÀÒ¤ÃѺáʧÊз ͹ÍÔ¹¿ÃÒàô ¨Ø´µ ÍÊÑÒ³ +V TCRT5000
OUT GND
10k
µÑǵÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô
ÃÙ»·Õè 5-1 áÊ´§Ãٻà ҧáÅÐǧ¨Ã¢Í§á¼§Ç§¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô
510
72
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
㪠â¿âµ ·ÃÒ¹«ÔÊàµÍà µÍ à» ¹Ç§¨ÃẠ§áç´Ñ¹¡ÑºµÑǵ Ò¹·Ò¹ 10kΩ ¶ ÒäÁ ÁáÕ Ê§ÍÔ¹¿ÃÒàôÁÒ¡Ãзº ·Õâè ¿âµ ·ÃÒ¹«ÔÊàµÍà ¨ÐäÁ ¹Òí ¡ÃÐáÊ ¨Ø´µ Í OUT ¨ÐÁÕáç´Ñ¹ã¡Å à¤Õ§¡Ñº 0V àÁ×Íè Í Ò¹¤ Ò¨Ò¡Ê Ç¹ ǧ¨Ãá»Å§ÊÑÒ³ÍйÒÅÍ¡à» ¹´Ô¨ÔµÍŢͧ Robo-PICA ¡ç¨Ðä´ ¤ ÒÍÍ¡ÁÒ¹ Í 㹡óշÕèâ¿âµ ·ÃÒ¹«ÔÊàµÍÃ ä´ ÃºÑ áʧÍÔ¹¿ÃÒàô â¿âµ ·ÃÒ¹«ÔÊàµÍà ¨ÐÂÍÁãË ¡ÃÐáÊäËż Ò¹µÑÇÁÑ¹ä´ «Ö§è ¨ÐÁÕ »ÃÔÁÒ³ÁÒ¡ËÃ×͹ Í¡ç¢Öé¹ÍÂÙ ¡Ñº¤ÇÒÁࢠÁ¢Í§áʧÍÔ¹¿ÃÒàô·Õèä´ ÃѺ ÊíÒËÃѺµÑÇá»Ã·ÕèÁռŵ Í¡ÒÃÊз ͹¡ÅѺ¢Í§áʧÍÔ¹¿ÃÒàô¹Í¡¨Ò¡¾×é¹¼ÔǢͧÇѵ¶ØáÅ Ç Âѧ ÁÕàÃ×Íè §¢Í§ÃÐÂÐË Ò§ÃÐËÇ Ò§á¼§Ç§¨ÃµÃǨ¨Ñº¡Ñº¾×¹é ¼ÔÇ´ Ç â´ÂÃÐÂÐË Ò§·Õàè ËÁÒÐÊÁÊíÒËÃѺµÑǵÃǨ ¨Ñºáºº¹Õ¨é ÐÍÂÙà ÐËÇ Ò§ 0.3-0.8 ૹµÔàÁµÃ «Ö§è ¨Ð·íÒãË ÍÒ ¹¤ Òáç´Ñ¹¨Ò¡á¼§Ç§¨Ãä´ ¤Ò ÍÂÙà ÐËÇ Ò§ 0.14.8V áÅÐãË ¤Ò ¢Í§¢ ÍÁÙÅàÁ×Íè Í Ò¹¼ ҹǧ¨Ãá»Å§ÊÑÒ³ÍйÒÅÍ¡à» ¹´Ô¨µÔ ÍÅÍÂÙã ¹ª ǧ 20-1,000 ´Ñ§¹Ñé¹á¼§Ç§¨ÃËÃ×͵ÑǵÃǨ¨Ñºáºº¹Õé¨Ö§àËÁÒÐÍ ҧÂÔ觷Õè¨Ð¹íÒÁÒ㪠໠¹µÑǵÃǨ¨ÑºàÊ ¹ ·Ñé§ àÊ ¹ÊÕ¢ÒÇËÃ×ÍàÊ ¹ÊÕ´Òí «Ö§è ¨Ð¢Ö¹é ÍÂÙ¡ ºÑ ¡ÒùíÒ¤ Ò·ÕÍè Ò ¹ä´ ä»»ÃÐÁÇżÅã¹ÅѡɳÐ㴠㹪شËع ¹µ Robo-PICA ¨Ð㪠ἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô¹Õé 2 ªØ´à¾×Íè µÃǨ¨ÑºàÊ ¹ã¹Åѡɳе Ò§æ
E
·Õ¾è ¹×é ¼ÔÇËÃ×ÍàÊ ¹ÊÕ´Òí ἧǧ¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô¨ÐÍ Ò¹¤ Òä´ ¹Í Â¡Ç Ò 200 ·Õè¾¹×é ¼ÔÇÊÕ¢ÒÇËÃ×ÍàÊ ¹ÊÕ¢ÒÇ á¼§Ç§¨ÃµÃǨ¨ÑºáʧÊз ͹ÍÔ¹¿ÃÒàô¨ÐÍ Ò¹¤ Òä´ ÁÒ¡¡Ç Ò 600
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
73
¡Ô¨¡ÃÃÁ·Õè 7
·´Êͺ¡ÒÃÍ Ò¹¤ ÒÊÑÒ³ÍйÒÅÍ¡ Ëع ¹µ Robo-PICA 㪠äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC16F877 㹡ÒäǺ¤ØÁ¡Ò÷íÒ§Ò¹ â´ÂÀÒÂã¹ PIC16F877 ÁÕâÁ´ÙÅá»Å§ÊÑÒ³ÍйÒÅÍ¡à» ¹´Ô¨µÔ ÍÅ (ADC) ¢¹Ò´ 10 ºÔµ ¨íҹǹ 8 ª ͧ â´Â¢Ò¾Íà µ·Õãè ª à» ¹¢Ò ÍÔ¹¾ØµÊÑÒ³ÍйÒÅÍ¡ä´ ¤Í× RA0-RA3, RA5, RE0-RE2 «Ö§è ¡ÒÃàÅ×Í¡Í Ò¹ÊÑÒ³ÍйÒÅÍ¡¨Ò¡¢Ò¾Íà µã´ ¹Ñé¹ÊÒÁÒöÊÑè§§Ò¹ä´ ¼ Ò¹·Ò§«Í¿µ áÇà ÊíÒËÃѺ¡ÒÃ㪠§Ò¹âÁ´ÙÅ ADC Í ҧÅÐàÍÕ´ÊÒÁÒö´Ùä´ ¨Ò¡Ë¹Ñ§Ê×Í »¯ÔºµÑ ¡Ô ÒÃäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC16F87x ¢Í§ºÃÔÉ·Ñ ÍÔ¹â¹àǵտ àÍç¡à¾ÍÃÔàÁ¹µ ¨íÒ¡Ñ´ ÊíÒËÃѺÃÕ¨ÊÔ àµÍà ÊÒí ¤Ñ·Õ¨è е ͧ¡íÒ˹´¤ ÒàÁ×Íè 㪠§Ò¹âÁ´ÙÅ ADC ¤×ÍÃÕ¨ÊÔ àµÍà ADCON1
ºÔµ
%
$
#
"
ADFM
-
-
-
!
PCFG3 PCFG2 PCFG1 PCFG0
R/W-0 R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
: ÊÒÁÒÃ¶Í Ò¹ËÃ×Íà¢Õ¹ºÔµ¹Õéä´ ÊÀÒÇÐàÁ×èÍàÃÔèÁ¨ ÒÂä¿ÁÕÅͨԡ໠¹ "0"
ÊíÒËÃѺÃÕ¨ÊÔ àµÍà ADCON0 ¶ Òà¢Õ¹â»Ãá¡ÃÁ´ Ç¡ÒÃ㪠PICBASIC PRO ¤ÍÁä¾àÅÍà äÁ ¨Òí à» ¹µ ͧ ¡íÒ˹´¤ Ò´ ǵ¹àͧÊÒÁÒö¡ÃзíÒ¼ Ò¹¤íÒÊѧè DEFINE ADC ä´ 4 ºÔµÅ Ò§¢Í§ÃÕ¨ÊÔ àµÍà ADCON1 㪠¡Òí ˹´ ¡Ò÷íÒ§Ò¹¢Í§¢Ò¾Íà µÇ Ò µ ͧ¡ÒÃãË ¢Òã´à» ¹¢ÒÃѺÊÑÒ³ÍйÒÅÍ¡ ¢Òã´à» ¹ÍÔ¹¾ØµàÍÒµ ¾µØ ´Ô¨µÔ ÍÅ»¡µÔ â´ÂáÊ´§ÃÒÂÅÐàÍÕ´˹ Ò·Õàè ËÅ Ò¹Õãé ¹µÒÃÒ§·Õè A5-1 ÊíÒËÃѺºÔµ 7 ¢Í§ÃÕ¨ÊÔ àµÍà ADCON1 ¤×ͺԵ ADFM 㪠àÅ×Í¡ÃٻẺ¼ÅÅѾ¸ ¢Í§¡ÒÃá»Å§ÊÑÒ³ ¶ ÒºÔµ ¹Õ¡é Òí ˹´ãË à» ¹ 0 ¼ÅÅѾ¸ 10 ºÔµ ¨ÐªÔ´·Ò§´ Ò¹« Ò¢ͧ¡ÅØÁ ¢ ÍÁÙÅ 16 ºÔµ (4 ºÔµÅ ҧ໠¹ 0 ËÁ´) áµ ¶Ò à» ¹ 1 ¼ÅÅѾ¸ ¡ÒÃá»Å§¤ Ò 10 ºÔµ ¨ÐªÔ´·Ò§´ Ò¹¢ÇҢͧ¡ÅØÁ ¢ ÍÁÙÅ 16 ºÔµ (4 ºÔµº¹à» ¹ 0 ËÁ´)
¼ÅÅѾ¸ 10 ºÔµ b
b
b
b
b
b
b
b
b
b
0
0
0
0
0
0
15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
ADFM = 0 ¼ÅÅѾ¸ ẺªÔ´« ÒÂ
¼ÅÅѾ¸ 10 ºÔµ 0
0
0
0
0
0
b
b
b
b
b
b
b
b
b
b
15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
ADFM = 1 ¼ÅÅѾ¸ ẺªÔ´¢ÇÒ
ÃٻẺ¡ÒáíÒ˹´¤ Ò¼ÅÅѾ¸ ¼Ò ¹ºÔµ ADFM ¢Í§ÃÕ¨ÊÔ àµÍà ADCON1
74
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
PCFG3PCFG0 0000 0001 0010 0011 0100
AN7 AN6 AN5 AN4 AN3 AN2 AN1 AN0 Vref ª ͧÍйÒÅÍ¡ : Vref+ (RE2) (RE1) (RE0) (RA5) (RA3) (RA2) (RA1) (RA0) - áç´Ñ¹Í Ò§ÍÔ§ A A A A A A A A V,, V55 8:1 A A A A Vref+ A A A AN3 V55 7:1 D D D A A A A A V,, V55 5:0 D D D A Vref+ A A A AN3 V55 4:1 D D D D A D A A V,, V55 3:0
0101 011X
D D
D D
D D
D D
Vref+ D
1000 1001 1010
A D D
A D D
A A A
A A A
1011 1100 1101 1110 1111
D D D D D
D D D D D
A D D D D
A A D D D
D D
A D
A D
AN3 -
V55 -
2:1 0:0
Vref+ VrefA A Vref+ A
A A A
A A A
AN3 V,, AN3
AN2 V55 V55
6:2 6:0 5:1
Vref+ Vref+ Vref+ D Vref+
A A A D D
A A A A A
AN3 AN3 AN3 V,, AN3
AN2 AN2 AN2 V55 AN2
4:2 3:2 2:2 1:0 1:2
VrefVrefVrefD Vref-
A ¤×Í ÍÔ¹¾ØµÍйÒÅÍ¡, D ¤×Í ÍÔ¹¾ØµàÍÒµ ¾Øµ, Vref+ ¤×Í㪠¢Ò¹Õéà» ¹áç´Ñ¹Í Ò§ÍÔ§ºÇ¡, Vref- ¤×Í ãª ¢Ò¹Õéà» ¹áç´Ñ¹Í Ò§Íԧź, V,, ¤×Í áç´Ñ¹Í Ò§Íԧ෠ҡѺä¿àÅÕé§, V55 ¤×Í áç´Ñ¹Í Ò§Íԧ෠ҡѺ¡ÃÒÇ´ , AN3 ¤×Í ãª ÍÔ¹¾ØµÍйÒÅÍ¡ª ͧ 3 à» ¹¢Òáç´Ñ¹Í Ò§ÍÔ§ºÇ¡ , AN2
µÒÃÒ§·Õè A5-1 áÊ´§¡ÒáíÒ˹´¤ Ò¼ Ò¹ºÔµ PCFG3-PCFG0 ã¹ÃÕ¨ÊÔ àµÍà ADCON1 à¾×Íè àÅ×Í¡¡Ò÷íÒ§Ò¹ ¢Í§¢Ò¾Íà µ·Õàè ¡ÕÂè Ç¢ ͧ¡ÑºÊÑÒ³ÍйÒÅÍ¡
¡ÒõԴµ ͡ѺâÁ´ÙÅá»Å§ÊÑÒ³ÍйÒÅÍ¡à» ¹´Ô¨µÔ ÍÅ (ADC) ÀÒÂã¹äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC16F877 ´ Ç PICBASIC PRO ¤ÍÁä¾àÅÍà PICBASIC PRO ¤ÍÁä¾àÅÍà Á¤Õ Òí Êѧè ÊíÒËÃѺµÔ´µ ͡ѺâÁ´ÙÅ ADC ¹Ñ¹è ¤×ͤíÒÊѧè ADCIN ÁÕû٠Ẻ´Ñ§¹Õé ADCIN Channel,Var
â´Â·Õè Channel ËÁÒ¶֧ ª ͧ¢Í§ÍÔ¹¾ØµÍйÒÅÍ¡·Õµè Í §¡ÒõԴµ Í ¡íÒ˹´¤ Òä´ µ§Ñé áµ 0 ¶Ö§ 7 Var ËÁÒ¶֧ µÑÇá»Ã·Õãè ª à¡çº¢ ÍÁÙÅ·ÕÍè Ò ¹ä´ ¨Ò¡âÁ´ÙÅ ADC â´Â»¡µÔ¡Òí ˹´¤ ÒµÑÇá»Ãà» ¹áºº 16 ºÔµ ¹Í¡¨Ò¡¹ÕÂé §Ñ ÊÒÁÒö»ÃѺᵠ§¡ÒÃÍ Ò¹¤ Ò¨Ò¡âÁ´ÙÅ ADC ä´ ËÅÒ¡ËÅÒÂ¢Ö¹é ´ Ç¡ÒÃ㪠¤Òí Êѧè DEFINE ã¹ PICBASIC PRO ¤ÍÁä¾àÅÍà ´Ñ§¹Õé DEFINE ADC_BITS ¡íÒ˹´¨íҹǹºÔµ¢ ÍÁÙÅ·Õµ è Í §¡ÒÃÍ Ò¹¤ Ò »¡µÔ¡Òí ˹´à» ¹ 8, 10 áÅÐ 12 ºÔµ ¢Ö¹é ÍÂÙ¡ ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà àÅÍà ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC16F877 ÊÒÁÒö¡íÒ˹´¡ÒÃÍ Ò¹¤ Òà» ¹ 8 ËÃ×Í 10 ºÔµ ¶ Ò¨íҹǹºÔµÁÒ¡ ¤ÇÒÁÅÐàÍÕ´㹡ÒÃÍ Ò¹¤ Ò¡ç¨ÐÁÒ¡µÒÁ ¶ Ò¡íÒ˹´ 8 ºÔµ ¤ÇÒÁÅÐàÍÕ´㹠¡ÒÃÍ Ò¹¤ Ò¨Ð෠ҡѺ 256 ÃдѺ ¶ Ò¡íÒ˹´ 10 ºÔµ ¤ÇÒÁÅÐàÍÕ´¨Ðà¾ÔÁè à» ¹ 1,024 ÃдѺ ¶ Ò¡íÒ˹´ 12 ºÔµ ¤ÇÒÁÅÐàÍÕ´㹡ÒÃÍ Ò¹¤ Ò¨Ð෠ҡѺ 4,096 ÃдѺ
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC DEFINE ADC_CLOCK
l
75
¡íÒ˹´ÃٻẺ¢Í§ÊÑÒ³¹ÒÌ ¡Ò·Õãè ª ¡ºÑ âÁ´ÙÅ ADC àÅ×Í¡ä´ µ§Ñé áµ 0-3 â´Â
ÁÕÃÒÂÅÐàÍÕ´´Ñ§¹Õé 0 : ãª Ê Ñ Ò³¹ÒÌ ¡ÒÀÒÂã¹ËÒà 2 (FOSC/2) 1 : ãª Ê Ñ Ò³¹ÒÌ ¡ÒÀÒÂã¹ËÒà 8 (FOSC/8) 2 : ãª Ê Ñ Ò³¹ÒÌ ¡ÒÀÒÂã¹ËÒà 32 (FOSC/32) 3 : ãª Ê Ñ Ò³¹ÒÌ ¡Ò¨Ò¡Ç§¨Ã RC ÀÒÂã¹ (FRC)
¡íÒ˹´¤ Ò˹ ǧàÇÅÒ ÁÕ˹ ÇÂà» ¹äÁâ¤ÃÇÔ¹Ò·Õ â´Âá·Ã¡¤íÒÊÑè§ PAUSEUS ࢠÒä»ãË â»Ãá¡ÃÁ˹ ǧàÇÅÒã¹ÃÐËÇ Ò§¡ÒáíÒ˹´¤ Ò Channel áÅÐàÃÔÁ è µ ¹¡ÒÃá»Å§ÊÑÒ³ DEFINE ADC_SAMPLEUS 50
¡ÒÃÍ Ò¹¤ ҨҡἧµÃǨ¨Ñº¡ÒÃÊз ͹áʧÍÔ¹¿ÃÒàô ¨Ò¡¡Ô¨¡ÃÃÁ·Õè 3 ä´ µ´Ô µÑ§é ἧµÃǨ¨Ñº¡ÒÃÊз ͹áʧÍÔ¹¿ÃÒàôäÇ ·´Õè Ò ¹Å Ò§¢Í§Ëع ¹µ Robo-PICA à» ¹·Õàè ÃÕºà ÍÂáÅ Ç áÅе ÍÊÒ¨ҡἧǧ¨ÃµÃǨ¨ÑºÁÒࢠҷբè Ò¾Íà µ RA0 áÅÐ RA1 ã¹¢Ñ¹é µÍ¹µ Íä»à» ¹¡Òà à¢Õ¹â»Ãá¡ÃÁà¾×Íè ·´ÊÍºÍ Ò¹¤ Ҩҡἧǧ¨ÃµÃǨ¨ÑºÁÒáÊ´§·Õâè Á´ÙÅ LCD ¢Í§Ëع ¹µ Robo-PICA '***************************************************************** '* Name : P0701.BAS * '* Notes : Test Direction of Motor * '***************************************************************** @ DEVICE PIC16F877,HS_OSC ' used PIC16F877 SENSOR0 DEFINE DEFINE DEFINE DEFINE
VAR WORD OSC 20 ADC_BITS 10 ADC_CLOCK 3 ADC_SAMPLEUS
' Oscilator = 20 MHz ' Set number of bits in result ' Set clock source (Internal RC = 3) 50 ' Set sampling time in microseconds
DEFINE DEFINE DEFINE DEFINE DEFINE DEFINE DEFINE DEFINE DEFINE DEFINE
LCD_DREG PORTD LCD_DBIT 4 LCD_RSREG PORTC LCD_RSBIT 0 LCD_EREG PORTC LCD_EBIT 5 LCD_BITS 4 LCD_LINES 2 LCD_COMMANDUS LCD_DATAUS 50
' Set ' Set ' Set ' Set ' Set ' Set ' Set ' Set 2000 ' Set
ADCON1 = %10000000 MAIN:ADCIN
LCD Data port starting Data bit (0 or 4) if 4-bit bus LCD Register Select port LCD Register Select bit LCD Enable port LCD Enable bit LCD bus size (4 or 8 bits) number of lines on LCD ' Set command delay time in us data delay time in us ' All PORTA & PORTE is Analog
0, SENSOR0 ' Read channel 2 LCDOUT $FE,$01,"SENSOR0 = ", DEC SENSOR0 PAUSE 500 GOTO MAIN
â»Ãá¡ÃÁ·Õè P7-1 â»Ãá¡ÃÁÍ Ò¹¤ Ò¨Ò¡âÁ´ÙÅ ADC ª ͧ 0 ¢Í§ PIC16F877 áÊ´§¼Å·Õâè Á´ÙÅ LCD
76
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
A8.1 µÔ´µÑ§é âÁ´ÙÅ LCD 16 µÑÇÍÑ¡Éà 2 ºÃ÷Ѵŧº¹ºÍà ´ RBX-877 A8.2 à» ´â»Ãá¡ÃÁ Microcode Studio à¢Õ¹â»Ãá¡ÃÁ·Õè P8-1 ¨Ò¡¹Ñ¹é ´Òǹ âËÅ´ä»ÂѧËع ¹µ Robo-PICA A8.3 ¡´»ØÁ MODE à¾×Íè Ãѹâ»Ãá¡ÃÁ (LED ÊÕà¢Õ§ µíÒá˹ § RUN µÔ´ÊÇ Ò§) Êѧࡵ¡ÒÃáÊ´§¼Å·Õâè Á´ÙÅ LCD âÁ´ÙÅ LCD áÊ´§¢ ͤÇÒÁ SENSOR0 = xxx (xxx ÁÕ¤Ò 0-1023) A8.4 ¹íÒËع ¹µ Robo-PICA ÁÒÇÒ§º¹¾×¹é ÊÕ¢ÒÇ â´ÂãË µÒí á˹ §á¼§Ç§¨ÃµÃǨ¨Ñº¡ÒÃÊз ͹áʧÍÔ¹¿ÃÒàô·Õè µ ͡Ѻ¢Ò¾Íà µ RA0 ÍÂÙº ¹¾×¹é ÊÕ¢ÒÇ´ Ç Êѧࡵ¤ Ò·Õáè Ê´§º¹âÁ´ÙÅ LCD ºÑ¹·Ö¡¤ Ò·ÕÍè Ò ¹ä´ A8.5 ¹íÒËع ¹µ Robo-PICA ÁÒÇÒ§ãË µÒí á˹ §¢Í§á¼§Ç§¨ÃµÃǨ¨Ñº¡ÒÃÊз ͹áʧÍÔ¹¿ÃÒàô·Õµè Í ¡Ñº¢Ò¾Íà µ RA0 ÍÂÙº ¹¾×¹é ÊÕ´Òí Êѧࡵ¤ Ò·Õáè Ê´§º¹âÁ´ÙÅ LCD ºÑ¹·Ö¡¤ Ò·ÕÍè Ò ¹ä´ A8.6 ´Ñ´á»Å§â»Ãá¡ÃÁ·Õè P8-1 â´Âà»ÅÕÂè ¹ª ͧ¡ÒÃÍ Ò¹¤ Ò¨Ò¡ª ͧ 0 (¢Ò RA0) ÁÒà» ¹ª ͧ 1 (¢Ò RA1) â´Â à»ÅÕÂè ¹â»Ãá¡ÃÁ¨Ò¡ ADCIN 0 , SENSOR0
à» ¹ ADCIN 1 , SENSOR0
áÅ Ç·íÒ¡ÒôÒǹ âËÅ´â»Ãá¡ÃÁáÅзíÒµÒÁ¢Ñ¹é µÍ¹ã¹¢ Í A8.4-A8.5 ÍÕ¡¤Ãѧé Êѧࡵ¼Å·Õäè ´ ÇÒ áµ¡µ Ò§ËÃ×Í ã¡Å à¤Õ§¡Ñºá¼§Ç§¨ÃµÃǨ¨Ñº¡ÒÃÊз ͹áʧÍÔ¹¿ÃÒàô·Õµè Í ÍÂÙ¡ ºÑ ¢Ò RA0 ËÃ×ÍäÁ Í ҧäà ¨Ò¡¡Ò÷´Åͧ¾ÍÊÃØ»¼Åä´ Ç Ò º¹¾×é¹·ÕèÊÕ¢ÒǹÑ鹤 Ò ·ÕèÍ Ò¹ä´ ¨ÐÍÂÙ ÃÐËÇ Ò§ 400-900 Ê Ç¹¾×é¹·ÕèÊÕ´íÒ¤ Ò·ÕèÍ Ò¹ä´ ¨ÐÍÂÙà ÐËÇ Ò§ 0-150 «Ö§è ¼Å¤ÇÒÁᵡµ Ò§¹Õé ÊÒÁÒö¡íÒ˹´¤ Ò Í Ò§ÍÔ§à¾×Íè 㪠໠¹¤ Ò¡ÅÒ§¢Í§¾×¹é ·ÕÊè ¢Õ ÒÇáÅдíÒ ¨Ò¡¹Ñ¹é ¨Ö§¹íÒ¤ Ò ¡ÅÒ§¹Õéä»à»ÃÕºà·Õº¡Ñº¤ Ò·ÕèÍ Ò¹ä´ ¶ Ò¤ Ò·ÕÍè Ò ¹ä´ ÁÒ¡¡Ç Ò¤ Ò¡ÅÒ§ ËÁÒ¤ÇÒÁÇ Ò ¾×¹é à» ¹ÊÕ¢ÒÇ ¶ Ò¤ Ò·ÕÍè Ò ¹ä´ ¹Í Â¡Ç Ò¤ Ò¡ÅÒ§ áÊ´§Ç Ò à» ¹ÊÕ´Òí
ÃÙ»·Õè A7-1 áÊ´§¼Å¡ÒÃÍ Ò¹¤ Ҩҡἧ ¨Ò¡¹Ñ¹é ¨Ö§Êѧè ãË â»Ãá¡ÃÁ¡ÃÐâ´´ä»·íÒ§Ò¹µÒÁÃٻẺ·Õ¡è Òí ˹´ ǧ¨ÃµÃǨ¨Ñº¡ÒÃÊз ͹áʧÍÔ¹¿ÃÒàô¼ Ò¹ âÁ´ÙÅ LCD ¢Í§Ëع ¹µ Robo-PICA
E
¶ Ò¡ÒÃÍ Ò¹¤ ÒÃÐËÇ Ò§¾×¹é ¼ÔÇÊÕ¢ÒǡѺ¾×¹é ¼ÔÇÊÕ´Òí ä´ ¤Ò ¤ÇÒÁµ Ò§¹ ÍÂà¡Ô¹ä» ãË »ÃѺÃÐÂÐË Ò§¢Í§á¼§ ǧ¨ÃµÃǨ¨Ñº¡ÒÃÊз ͹áʧÍÔ¹¿ÃÒàôãË à¢ Òã¡Å ¾¹×é ÁÒ¡¢Ö¹é ¡ÒÃÍ Ò¹¤ Ò¨Ò¡¾×¹é ¼ÔǶ ÒäÁ à¡Ô´¡ÒÃÊз ͹¡ÅѺ¢Í§áʧ ઠ¹ ¡µÑÇËع ¹µ ¢¹Öé ÊÙ§æ ¼Å¡ÒÃÍ Ò¹¤ Ò¨Ò¡ ἧǧ¨ÃµÃǨ¨Ñº¡ÒÃÊз ͹¨Ðä´ ¤Ò ã¡Å à¤Õ§ 0
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
77
¡Ô¨¡ÃÃÁ·Õè 8
Ëع ¹µ Robo-PICA à¤Å×Íè ¹·Õµè ÒÁàÊ ¹ -1 ¨Ò¡¡Ô¨¡ÃÃÁ¡ ͹˹ Ò¹Õéà» ¹¡ÒõÃǨÊͺ¤Ø³ÊÁºÑµÔ¡ÒÃÊз ͹áʧÍÔ¹¿ÃÒàô¢Í§¾×é¹ÊÕ¢ÒÇáÅÐÊÕ´íÒ à¾×Íè 㪠໠¹¤ ÒÍ Ò§ÍÔ§ÊíÒËÃѺ¡ÒÃà»ÃÕºà·Õº 㹡Ԩ¡ÃÃÁ¹Õ¨é йíҼŷÕäè ´ ¹¹Ñé ÁÒ»ÃÐÂØ¡µ à¾×Íè ¤Çº¤ØÁãË Ë¹Ø Â¹µ RoboPICA ÊÒÁÒöà¤Å×Íè ¹·Õµè ÒÁàÊ ¹ ÊÒÁÒö¡íÒ˹´ÅѡɳСÒ÷íÒ§Ò¹ä´ 4 Ẻ¤×Í
1. ἧǧ¨ÃµÃǨ¨ÑºàÊ ¹·Ñ§é ÊͧµÑÇÍÂÙº ¹¾×¹é ÊÕ¢ÒÇ 2. ἧǧ¨ÃµÃǨ¨ÑºàÊ ¹·Ñ§é ÊͧµÑÇÍÂÙº ¹¾×¹é ÊÕ´Òí µÕ¤ÇÒÁä´ ÇÒ Ëع ¹µ ¡Òí Åѧ¤Ã ÍÁÍÂÙº ¹àÊ ¹ ¨Ö§¡íÒ˹´ µÕ¤ÇÒÁä´ ÇÒ Ëع ¹µ ÍÂÙº ÃÔàdzÊÕáè ¡ ÍÒ¨Êѧè ãË Ë¹Ø Â¹µ ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õäè »¢ ҧ˹ Ò à¤Å×Íè ¹·Õäè »¢ ҧ˹ Ò àÅÕÂé Ç« ÒÂËÃ×Í¢ÇÒ 90 ͧÈÒ¡çä´
3. ἧǧ¨ÃµÃǨ¨ÑºàÊ ¹·Ò§« ÒÂÍÂÙ º¹¾×é¹ÊÕ´íÒ µÕ¤ÇÒÁÇ ÒËØ ¹Â¹µ ¡íÒÅѧÍÍ¡¹Í¡àÊ ¹ä»·Ò§¢ÇÒ µ ͧ ¡íÒ˹´ãË ËØ ¹Â¹µ à¤Å×è͹·Õèä»·Ò§« Ò à¾×èÍãË ËØ ¹Â¹µ ¤Ã ÍÁÍÂÙº ÃÔàdzàÊ ¹ÊÕ´Òí àËÁ×͹à´ÔÁ
4. ἧǧ¨ÃµÃǨ¨ÑºàÊ ¹·Ò§¢ÇÒÍÂÙ º¹¾×é¹ÊÕ´íÒ µÕ¤ÇÒÁÇ ÒËØ ¹Â¹µ ¡íÒÅѧÍÍ¡¹Í¡àÊ ¹ä»·Ò§« Ò µ ͧ ¡íÒ˹´ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õäè »·Ò§´ Ò¹¢ÇÒ à¾×Íè ãË Ë¹Ø Â¹µ ¤Ã ÍÁÍÂÙº ÃÔàdzàÊ ¹ÊÕ´Òí àËÁ×͹à´ÔÁ
78
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
¡ÒÃËÒ¤ Ò¡ÅÒ§ÃÐËÇ Ò§ÊÕ¢ÒÇáÅÐÊÕ´íÒ ¤ Ò¡ÅÒ§·ÕÇè Ò ¹Õãé ª ÊÒí ËÃѺà»ÃÕºà·Õºã¹â»Ãá¡ÃÁ â´Â㪠ÃкØã¹ÊÁ¡Òà ¶ Ò¤ Ò·ÕÍè Ò ¹ä´ ¨Ò¡á¼§Ç§¨ÃµÃǨ¨Ñº¡ÒÃÊз ͹áʧÍÔ¹¿ÃÒàô¹ ÍÂ¡Ç Ò¤ Ò¡ÅÒ§ ÁÍ§ä´ ÇÒ ºÃÔ àdz·ÕèÍ Ò¹¤ Òä´ à» ¹¾×é¹ÊÕ´íÒ ¶ Ò¤ Ò·ÕèÍ Ò¹ä´ ¨Ò¡á¼§Ç§¨ÃµÃǨ¨Ñº¡ÒÃÊз ͹áʧÍÔ¹¿ÃÒàôÁÒ¡¡Ç Ò¤ Ò¡ÅÒ§ ÁÍ§ä´ Ç Ò ºÃÔàdz·ÕèÍ Ò¹¤ Òä´ à» ¹¾×é¹ÊÕ¢ÒÇ â´Â ¤ Ò¡ÅÒ§ ËÒä´ ¨Ò¡ (¤ ÒµèÒí ÊØ´·ÕÍè Ò ¹ä´ ¨Ò¡¾×¹é ·ÕÊè ¢Õ ÒÇ + ¤ ÒÊÙ§ÊØ´¢Í§¾×¹é ·ÕÊè ´Õ Òí ) / 2
µÑÇÍ ҧ
¶ Ò¤ ÒµèÒí ÊØ´·ÕÍè Ò ¹ä´ ¨Ò¡¾×¹é ·ÕÊè ¢Õ ÒÇ à· Ò¡Ñº 300 ¤ ÒÊÙ§ÊØ´¢Í§¾×¹é ·ÕÊè ´Õ Òí ෠ҡѺ 100 ¤ Ò¡ÅÒ§ÁÕ¤ Ò෠ҡѺ (300+100) / 2 = 200
¨Ò¡ÃٻẺà§×Íè ¹ä¢·Õµè ÃǨ¾ºä´ ¨Ò¡á¼§Ç§¨ÃµÃǨ¨Ñº¡ÒÃÊз ͹áʧÍÔ¹¿ÃÒàô·Ñ§é 2 ªØ´ÊÒÁÒö¹íÒÁÒ à¢Õ¹â»Ãá¡ÃÁà¾×Íè ¤Çº¤ØÁãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õµè ÒÁàÊ ¹ä´ ´§Ñ â»Ãá¡ÃÁ·Õè P9-1 ÁÕÅÒí ´Ñº¡Ò÷íÒ§Ò¹´Ñ§¹Õé 1. ¡íÒ˹´¤ ÒàÃÔÁè µ ¹ÊíÒËÃѺµÔ´µ ÍâÁ´ÙÅá»Å§ÊÑÒ³ÍйÒÅÍ¡à» ¹´Ô¨µÔ ÍÅ 2. àÍç¹àÍàºÔÅãË ÁÍàµÍà A áÅÐ ÁÍàµÍà B ¾Ã ÍÁ·Õ¨è ж١Êѧè ãË ·Òí §Ò¹ 3. Í Ò¹¢ ÍÁÙŨҡἧǧ¨ÃµÃǨ¨Ñº¡ÒÃÊз ͹áʧÍÔ¹¿ÃÒàô«Ö§è µ ÍÍÂÙ¡ ºÑ ¢Ò¾Íà µ RA0 áÅÐ RA1 â´Â ¡íÒ˹´µÑÇá»Ã SENSOR0 áÅÐ SENSOR1 ÊíÒËÃѺà¡çº¤ Ò·ÕÍè Ò ¹ä´ 4. à»ÃÕºà·Õº¤ Ò·ÕÍè Ò ¹ä´ ¡ºÑ ¤ Ò¡ÅÒ§ ¶ Ò¤ Ңͧ SENSOR0 áÅÐ SENSOR1 ÁÒ¡¡Ç Ò¤ Ò¡ÅÒ§·Ñ§é ¤Ù ¡íÒ˹´ãË ËØ ¹Â¹µ à¤Å×è͹·Õè仢 ҧ˹ Ò 5. ¶ Ò¤ Ò SENSOR0 áÅÐ SENSOR1 ¹ ÍÂ¡Ç Ò¤ Ò¡ÅÒ§·Ñ§é ¤Ù ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õäè »¢ ҧ˹ Ò (à» ¹ÀÒÇÐ ¾º·Ò§á¡ áÅ Ç¡íÒ˹´ãË à¤Å×Íè ¹·Õµè çµ Íä») 6. ¶ Ò¤ Ò SENSOR0 ¹ ÍÂ¡Ç Ò¤ Ò¡ÅÒ§à¾Õ§µÑÇà´ÕÂÇ ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õäè »·Ò§« Ò 7. ¶ Ò¤ Ò SENSOR1 ¹ ÍÂ¡Ç Ò¤ Ò¡ÅÒ§à¾Õ§µÑÇà´ÕÂÇ ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õäè »·Ò§¢ÇÒ
ÃÙ»·Õè A8-1 ¡ÒõԴµÑ§é ἧǧ¨ÃµÃǨ¨ÑºàÊ ¹à¾ÔÁè à¾×Íè ãË ÊÒÁÒöµÃǨÊͺ·Ò§áÂ¡ä´ ´¢Õ ¹Öé
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
79
'***************************************************************** '* Name : P0801.BAS * '* Notes : Track Line * '***************************************************************** @ DEVICE PIC16F877,HS_OSC ; used PIC16F877 SENSOR0 VAR WORD SENSOR1 VAR WORD DEFINE DEFINE DEFINE DEFINE
OSC ADC_BITS ADC_CLOCK ADC_SAMPLEUS
20 10 3 50
HIGH PORTC.2 HIGH PORTC.1 TRISD = %11110000 ADCON1 = %10000000 MAIN:ADCIN 0,SENSOR0 ADCIN 1,SENSOR1 IF (SENSOR0 IF (SENSOR0 IF (SENSOR0 IF (SENSOR1 GOTO MAIN FORWARD: BACKWARD: S_LEFT: S_RIGHT:
PORTD PORTD PORTD PORTD
= = = =
> < < <
Oscilator = 20 MHz Set number of bits in result Set clock source (Internal RC = 3) Set sampling time in microseconds
; ; ; ;
Enable Motor A Enable Motor B RD0-RD3 = OUTPUT All PORTA & PORTE is Analog
; Read channel 0 ; Read Channel 1
200) 200) 200) 200)
%00000110 %00001001 %00000101 %00001010
; ; ; ;
: : : :
AND (SENSOR1 > 200) THEN Forward AND (SENSOR1 < 200) THEN Forward THEN S_Left THEN S_Right GOTO GOTO GOTO GOTO
MAIN MAIN MAIN MAIN
; ; ; ;
Forward Routine Backward Routine Turn Left Routine Turn Right Routine
â»Ãá¡ÃÁ·Õè P8-1 â»Ãá¡ÃÁ·´Åͧ¤Çº¤ØÁãË Ë¹Ø Â¹µ Robo-PICA à¤Å×Íè ¹·Õµè ÒÁàÊ ¹
ÊÃØ»¼Å¡Ò÷íÒ§Ò¹ ¡Ò÷ÕèËØ ¹Â¹µ Íѵâ¹ÁѵԨÐà¤Å×è͹·ÕèµÒÁàÊ ¹ä´ ´Õ «Í¿µ áÇà «§Öè ¡ç¤Í× â»Ãá¡ÃÁ·Õãè ª ¤Çº¤ØÁ¡Ò÷íÒ§Ò¹ ¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ¤ÇÃÊÒÁÒö·Õ¨è ФǺ¤ØÁãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õ·è Ò§µÃ§ ·Ò§â¤ § áÅеÃǨÊͺÊÕáè Â¡ä´ Ê Ç¹¡ÒõÃǨÊͺ·Ò§ÊÒÁáÂ¡ä´ ¨Ðµ ͧà¾ÔÁè ἧǧ¨Ã µÃǨ¨ÑºàÊ ¹à¢ Òä»ÍÕ¡ 1-2 ªØ´ Ê Ç¹·Ò§´ Ò¹ÎÒà ´áÇà ¡ÒûÃѺµíÒá˹ §¢Í§ ἧǧ¨ÃµÃǨ¨ÑºàÊ ¹ãË ÍÂÙË Ò §¨Ò¡àÊ ¹Í ҧàËÁÒÐÊÁ (¡) (¢) ¨Ðª ÇÂãË ¡ÒõÃǨ¨Ñº·íÒä´ ´Õ à¹×èͧ¨Ò¡¶ Òἧǧ¨Ã ÃÙ»·Õè A8-2 ¼Å¡ÒõԴµÑ§é ἧǧ¨ÃµÃǨ¨ÑºàÊ ¹ µÃÇǨ¨ÑºàÊ ¹ÍÂÙã ¡Å àÊ ¹à¡Ô¹ä» Ëع ¹µ ¨ÐµÃǨ¾ºàÊ ¹ (¡) áÊ´§¡ÒõԴµÑ§é ἧǧ¨ÃµÃǨ¨ÑºàÊ ¹ã¡Å ¡¹Ñ ÊÕ´Òí º ÍÂà¡Ô¹ä» à» ¹¼Å·íÒãË Ë¹Ø Â¹µ àÅÕÂé Ç« ÒÂÊÅѺ¢ÇÒ à¡Ô¹ä»·íÒãË Ë¹Ø Â¹µ ÊÒ Âä»Ê ÒÂÁÒ ¤Å Ò¡Ѻ§ÙàÅ×éÍ «Öè§à» ¹¼Å·íÒãË ËØ ¹Â¹µ à¤Å×è͹·ÕèµÒÁ (¢) µÔ´µÑ§é ἧǧ¨ÃË Ò§ÍÍ¡¨Ò¡àÊ ¹·íÒãË Ë¹Ø Â¹µ àÊ ¹ä´ ª Òŧ
ÁÕªÇ §ÃÐÂСÒÃà¤Å×Íè ¹·Õµè çÁÒ¡ÂÔ§è ¢Ö¹é
80
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
81
º··Õè 6
¤Çº¤ØÁËØ ¹Â¹µ ´ ÇÂÃÕâÁµ¤Í¹â·ÃÅ ÃÕâÁµ¤Í¹â·ÃÅ (remote control) á»Åà» ¹ä·ÂÍ ҧ§ ÒÂæ ¤×Í Ê Ç¹¤Çº¤ØÁ¨Ò¡ÃÐÂÐä¡Å ÊíÒËÃѺ¡ÒÃ㪠§Ò¹¡ÑºËØ ¹Â¹µ Robo-PICA ¨Ð㪠ÃÕâÁµ¤Í¹â·ÃÅ㹡ÒÃÊ §¢ ÍÁÙŤǺ¤ØÁ¼ÊÁÁҡѺ áʧÍÔ¹¿ÃÒàô ´Ñ§¹Ñ¹é 㹡Ò÷íÒ§Ò¹¨Ö§µ ͧ㪠ÃâÕ Áµ¤Í¹â·ÃÅ Easy Remote4 ËÃ×Í ER-4 ÊíÒËÃÑºÊ § ¢ ÍÁÙÅáÅÐἧǧ¨ÃÃѺáʧÍÔ¹¿ÃÒàô 38kHz ËÃ×ͺÍà ´ ZX-05 㹡ÒÃÃѺ¢ ÍÁÙÅ â´Â¢ ÍÁÙÅ·Õäè ´ ÃºÑ Áҹѹé ÊÒÁÒö¹íÒä»ãª 㹡ÒäǺ¤ØÁãË Ë¹Ø Â¹µ Robo-PICA ·íÒ§Ò¹ä´ µÒÁµ ͧ¡ÒÃ
6.1 ἧǧ¨ÃâÁ´ÙÅÃѺáʧÍÔ¹¿ÃÒàô ¨Ò¡º·¡ ͹˹ Ò¹Õ¡é Å ÒǶ֧¡ÒÃÊз ͹áʧâ´Âãª Ç¸Ô ¡Õ ÒÃÊ §áʧÍÔ¹¿ÃÒàôÍÍ¡ä» áÅ ÇÃÍÃѺ ¡ÒÃÊз ͹¡ÅѺÁÒ´ ÇÂâ¿âµ ·ÃÒ¹«ÔÊàµÍà «Öè§ÍÂÙ ã¹âÁ´ÙÅà´ÕÂǡѹ ·íÒãË ÃÐÂзҧ㹡ÒÃÊ §áÅÐÃѺ áʧ¹Ñ¹é ·íÒä´ ã¹ª ǧÊѹé æ ÊíÒËÃѺ¡ÒÃÊ §áʧÍÔ¹¿ÃÒàô¨Ò¡µÑÇÊ §·ÕèÍÂÙ ä¡Å (»ÃÐÁÒ³ 5-10 àÁµÃ àËÁ×͹¡ÑºÃÕâÁµ ¤Í¹â·ÃŢͧà¤Ã×Íè §ÃѺâ·Ã·Ñȹ ) ¨Ðµ Í§ãª Ç¸Ô ¡Õ ÒüÊÁ¤ÇÒÁ¶Õ¾è ÒË à¢ Ò¡Ñº¢ ÍÁÙÅ·Õµè Í §¡ÒÃÊ §ÍÍ¡ä» à¾×Íè » ͧ¡Ñ¹áʧÍÔ¹¿ÃÒàô¨Ò¡ÀÒ¹͡ÁÒú¡Ç¹ÊÑÒ³·ÕÊè § ÍÍ¡ä» «Ö§è ·íÒãË ÀÒ¤ÃѺ¨Ðµ ͧ¡Ãͧ ¤ÇÒÁ¶Õ¾è ÒË ·ÃÕè ºÑ ä´ ÍÍ¡¡ ͹ ¨Ò¡¹Ñ¹é ¨Ö§¹íÒÊÑÒ³¢ ÍÁÙÅÊ §ä»ãË äÁâ¤Ã¤Í¹â·ÃÅàÅÍà µÍ ä» ´ Ç ¡ÒÃãª Ê Ñ Ò³¾ÒË áÅТÂÒÂÊÑÒ³¹Õàé ͧ·íÒãË ÊÒÁÒÃ¶Ê §¢ ÍÁÙÅä´ ä¡Å¶Ö§ 10 àÁµÃ 0.1uF 50V
3 1 Out 2 GND
1
3 Vcc 1
ἧǧ¨ÃâÁ´ÙÅÃѺáʧÍÔ¹¿ÃÒàô 38 kHz 㪠µÃǨ¨ÑºáʧÍÔ¹¿Òàô·Õ¼è ÊÁÊÑÒ³¾ÒË ¤ÇÒÁ¶Õè 38 kHz
2
3
Out GND
2
Infrared Module
ÃÙ»·Õè 6-1 áÊ´§Ãٻà ҧáÅÐǧ¨Ã¢Í§á¼§Ç§¨ÃâÁ´ÙÅÃѺáʧÍÔ¹¿ÃÒàô
Vcc
82
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC +3-5V
K A IR-LED
"A"
Easy remote4
"B"
2-5V
SW2 "C"
*
"D" SW3
)
(¡)
(¢)
GP0
GP5 6
5
SW3
, +
7
SW1
LED1 IR-LED
1 V,,
3
GP1
IC1 ER4-FW
2
R1 1k Q1 BC338
GP2
GP4
GND 8
(¤)
ÃÙ»·Õè 6-2 Ãٻà ҧ˹ ÒµÒáÅÐǧ¨Ã¢Í§ÃÕâÁµ¤Í¹â·ÃÅ Easy remote4
6.2 ÃÕâÁµ¤Í¹â·ÃÅ Easy Remote4 ËÃ×Í ER-4 ÃÕâÁµ¤Í¹â·ÃÅ Easy remote4 à» ¹ÃÕâÁµ¤Í¹â·ÃÅẺÍÔ¹¿ÃÒàô·ÕÍè ͡ẺãË ãª §Ò¹ä´ à͹¡»ÃÐʧ¤ â´Â㹡ÒÃÊ §ÊÑÒ³ÍÍ¡¹Ñ鹨Ðà» ¹¢ ÍÁÙÅ͹ءÃÁ·Õè¼ÊÁ¡Ñº¤Å×è¹¾ÒË 38kHz â´Â ¡Ãкǹ¡Ò÷ѧé ËÁ´ä´ ÃºÑ ¡ÒäǺ¤ØÁ¨Ò¡äÁâ¤Ã¤Í¹â·ÃÅàÅÍà º¹µÑÇÃÕâÁµ¤Í¹â·ÃÅà¾Õ§µÑÇà´ÕÂÇ
6.2.1 ¤Ø³ÊÁºÑµ·Ô ҧ෤¹Ô¤ 㪠äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ¤Çº¤ØÁ¡ÒÃÊà ҧáÅÐÊ §ÊÑÒ³¢ ÍÁÙÅ l 㪠LED ÍÔ¹¿ÃÒàô¢¹Ò´ 3 ÁÔÅÅÔàÁµÃ ÃÐÂзíÒ¡Òà 8-10 àÁµÃã¹¾×¹ é ·Õâè Å § l ÁÕÊÇÔµª ¤Çº¤ØÁÍÔÊÃе ͡ѹ 4 ª ͧ ·íÒ§Ò¹ã¹ÅѡɳС´µÔ´ ¡´´Ñº l ¡Ô¹¡íÒÅѧ§Ò¹µèÒí â´ÂࢠÒÊÙâ ËÁ´»ÃÐËÂÑ´¾Åѧ§Ò¹·Ñ¹·ÕàÁ×Í è Ê §¢ ÍÁÙÅáÅ Ç l 㪠ä¿àÅÕÂé § 2.4-3.0V ¨Ò¡áºµàµÍÃÕè AA ¨íҹǹ 2 ¡ ͹ ãª ä´ ·§Ñé Ẻ¸ÃÃÁ´ÒáÅлÃШØä´ l Ê §¢ ÍÁÙÅÍ͡Ẻ͹ءÃÁ´ ÇÂÁҵðҹ RS-232 ÍѵÃҺʹ 1,200 ºÔµµ ÍÇÔ¹Ò·Õ ã¹ÃٻẺ 8N1 (ºÔµ¢ ÍÁÙÅ 8 ºÔµ äÁ Á¡Õ ÒõÃǨÊͺ¾ÒÃÔµÕé áÅкԵ» ´· Ò 1 ºÔµ) l
6.2.2 ¡Ò÷íÒ§Ò¹¢Í§Ç§¨Ã
ǧ¨Ã¢Í§ Easy remote4 áÊ´§ã¹ÃÙ»·Õè 6-2 (¤) ¨ÐàËç¹Ç ÒÁÕÍ»Ø ¡Ã³ ¹Í ÂÁÒ¡ ÁÕà¾Õ§ÊÇÔµª ·µÕè Í à¢ Ò ¡Ñº¢Ò GP0,GP1, GP2 áÅÐ GP4 ¢Í§ IC1 «Ö§è 㪠äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC12F629 ෠ҹѹé äÁ ¨Òí à» ¹µ ͧ µ ͵Ñǵ Ò¹·Ò¹¾ÙÅÍÑ»ÀÒ¹͡à¹×Íè §¨Ò¡¡íÒ˹´ãË Á¡Õ ÒþÙÅÍÑ»ä´ ¼Ò ¹·Ò§«Í¿µ áÇÃ Ê Ç¹¡ÒâѺ LED ÍÔ¹¿ÃÒàôà¾×Íè ãË Á¡Õ Òí ÅÑ§Ê §ÊÙ§ ÊÒÁÒÃ¶Ê §ä´ ä¡Å ¨Ö§µ ͼ ҹǧ¨Ã¢ÂÒÂâ´Â㪠·ÃÒ¹«ÔÊàµÍà Q1
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
83
6.2.3 ÃٻẺ¡ÒÃÊ §¢ ÍÁÙŢͧÃÕâÁµ¤Í¹â·ÃÅ Easy remote4 à¾×Íè ãË ÀÒ¤ÃѺÊÒÁÒÃ¶Í Ò¹¢ ÍÁÙÅ¡Òá´ÊÇÔµª ¨Ò¡ÃÕâÁµ¤Í¹â·ÃÅä´ â´Â§ Ò 㹡ÒÃÊ §¢ ÍÁÙÅ ¢Í§ Easy remote4 ¨Ö§ãª ¡ÒÃÊ §¢ ÍÁÙÅẺ͹ءÃÁ µÒÁÁҵðҹ RS-232 ´ ÇÂÍѵÃҺʹ 1,200 ºÔµµ Í ÇÔ¹Ò·Õ ã¹ÃٻẺ 8N1 ¢ ÍÁÙÅ·ÕÊè § ¹Ñ¹é à» ¹µÑÇÍÑ¡Éâֹé ÍÂÙ¡ ºÑ ¡Òá´ÊÇÔµª µÇÑ ã´ ´Ñ§áÊ´§µíÒá˹ §¢Í§ ÊÇÔµª ã¹ÃÙ»·Õè 6-2 (¢) ¡´ÊÇÔµª A Ê §¢ ÍÁÙŵÑÇÍÑ¡Éà A µÑǾÔÁ¾ ãË ÊÅѺµÑǾÔÁ¾ àÅç¡ ¡´ÊÇÔµª B Ê §¢ ÍÁÙŵÑÇÍÑ¡Éà B µÑǾÔÁ¾ ãË ÊÅѺµÑǾÔÁ¾ àÅç¡ ¡´ÊÇÔµª C Ê §¢ ÍÁÙŵÑÇÍÑ¡Éà C µÑǾÔÁ¾ ãË ÊÅѺµÑǾÔÁ¾ àÅç¡ ¡´ÊÇÔµª D Ê §¢ ÍÁÙŵÑÇÍÑ¡Éà D µÑǾÔÁ¾ ãË ÊÅѺµÑǾÔÁ¾ àÅç¡ ÊÒà˵طÊÕè § ÊÅѺµÑǾÔÁ¾ ãË ¡ºÑ µÑǾÔÁ¾ àÅç¡à¾×Íè ãË µÇÑ ÃѺ·ÃÒºÇ Ò ¡Òá´ÊÇÔµª ¹¹Ñé à» ¹¡Òá´ Ẻ¤ Ò§µ Íà¹×Íè § ËÃ×Íà» ¹¡ÒᴻŠÍÂà» ¹¨Ñ§ËÇÐ «Ö§è ¨ÐãË ¼ÅÅѾ¸ 㹡ÒäǺ¤ØÁ·Õáè µ¡µ Ò§¡Ñ¹ ¹Ñ¹è ¤×Ͷ Ò¡´ÊÇÔµª à» ¹¨Ñ§ËÇÐ ¤ÃÑé§áá¨ÐÊ §¢ ÍÁÙŵÑÇÍÑ¡ÉÃẺµÑǾÔÁ¾ ãË ¶ Ò¡´µÑÇà´ÔÁ㹤ÃÑ駵 ÍÁÒ ¢ ÍÁÙÅ·ÕÊè § ÍÍ¡¨Ðà» ¹µÑÇÍÑ¡ÉÃẺµÑǾÔÁ¾ àÅç¡ áµ ¶Ò ËÒ¡¡´¤ Ò§µ Íà¹×Íè § ¨ÐÊ §¢ ÍÁÙŵÑÇÍÑ¡ÉÃẺ Å ÒÊØ´¹Ñé¹ÍÍ¡ÁÒµÅÍ´àÇÅÒ
¡Ô¨¡ÃÃÁ·Õè 9
µÔ´µÑ§é ἧǧ¨ÃâÁ´ÙÅÃѺáʧÍÔ¹¿ÃÒàô 38kHz ÍØ»¡Ã³ áÅÐà¤Ã×Íè §Á×Í Ê¡ÃÙ 3x10 ÁÁ. x 1 àÊÒ¾ÅÒʵԡ 3 ÁÁ. x 1
¹Íµ 3 ÁÁ. x 1
ªÔ¹é µ ÍÁØÁ» Ò¹ x 1
âÁ´ÙÅÃѺáʧÍÔ¹¿ÃÒàô 38kHz x 1
¢Ñ¹é µÍ¹¡ÒûÃСͺ A9.1 㪠ʡÃÙ 3x10 ÁÁ. à ͼ ҹἧǧ¨ÃâÁ´ÙÅÃѺáʧÍÔ¹¿ÃÒàô¨Ò¡´ ҹ˹ Ò áÅ Ç㪠àÊÒ¾ÅÒʵԡ 3 ÁÁ. ÊÇÁࢠÒä»´ Ò¹ËÅѧà¾×Íè » ͧ¡Ñ¹ªÔ¹é µ ;ÅÒʵԡÁØÁ» Ò¹ ·Õ¨è е ͧ¹íÒÁÒµÔ´µÑ§é àºÕ´¡Ñº¨Ø´ºÑ´¡Ãբͧἧǧ¨Ã
84
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
A9.2 㪠ª¹Ôé µ ÍÁØÁ» Ò¹ÂִࢠÒÊ¡ÃÙáÅТѹãË á¹ ¹´ ǹ͵ 3 ÁÁ.
A9.3 ¤ÅÒÂÊ¡ÃÙ·ÂÕè ´Ö àÊÒÃͧ·Í§àËÅ×ͧ´ ҹ˹ ÒÍÍ¡à¾×Íè àÊÕºªÔ¹é µ ÍÁØÁ » Ò¹·ÕèÂÖ´¡Ñºá¼§Ç§¨ÃâÁ´ÙÅÃѺáʧÍÔ¹¿ÃÒàô¨Ò¡¢Ñ鹵͹·Õè A9.2 ¨Ò¡¹Ñ¹é ¢Ñ¹Ê¡ÃÙ¡ÅѺࢠÒä»ãË á¹ ¹
A9.4 µ ÍÊÒ¨ҡἧǧ¨ÃâÁ´ÙÅÃѺáʧÍÔ¹¿ÃÒàô 38kHz à¢ Ò·Õ¨è ´Ø µ Í ¾Íà µ RA2 ´Ñ§¹Ñé¹ã¹¡ÒÃà¢Õ¹â»Ãá¡ÃÁÀÒÉÒàºÊÔ¡·Õè㪠PICBASIC PRO ¤ÍÁä¾àÅÍà à¾×èÍÍ Ò¹¤ Ҩҡἧǧ¨ÃâÁ´ÙÅÃѺáʧÍÔ¹¿ÃÒàô 38kHz ¨Ðµ ͧà¢Õ¹â»Ãá¡ÃÁµÔ´µ Í·Õµè Òí á˹ § PORTA.2
¹Ñº¨Ò¡¹Õé Ëع ¹µ Robo-PICA ¡ç¨ÐÁÕ¤ÇÒÁÊÒÁÒöà¾ÔÁè ÍÕ¡ 1 Í ҧ ¹Ñ¹è ¤×Í ÊÒÁÒöÊ×Íè ÊÒâ ÍÁÙÅ͹ءÃÁ ¼ Ò¹áʧÍÔ¹¿ÃÒàôä´
E
¶ Òµ ͧ¡ÒÃ㪠¾Íà µ A ·Ñ§é ËÁ´à» ¹¢Ò¾Íà µÍÔ¹¾ØµàÍÒµ ¾µØ ´Ô¨µÔ ÍÅ ¨Ðµ ͧ¡íÒ˹´¤ ÒãË ¡ºÑ ÃÕ¨ÊÔ àµÍà ADCON1 ෠ҡѺ 0x07 ¡ ͹
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
85
¡Ô¨¡ÃÃÁ·Õè 10
Í Ò¹¤ Ò¨Ò¡ÃÕâÁµ¤Í¹â·ÃÅ Easy Remote4 ¡ ͹·Õè¨Ð¹íÒÃÕâÁµ¤Í¹â·ÃÅä»ãª »ÃÐ⪹ 㹡ÒäǺ¤ØÁÍØ»¡Ã³ µ Ò§æ ¨Ðµ ͧÁÒÃѺÃÙ à§×è͹䢡 Í¹Ç Ò ¢ ÍÁÙÅ·ÕÃè âÕ Áµ¤Í¹â·ÃÅÊ §ÍÍ¡Áҹѹé ÁÕû٠ẺÍ ҧäà ÁÕÇ¸Ô ãÕ ª â»Ãá¡ÃÁ㹡ÒÃÍ Ò¹¤ ÒÍ ҧäà áÅÐÍ Ò¹¤ ÒáŠǨРµÃǨÊͺ¤ ҢͧÊÇÔµª ·ÍÕè Ò ¹ä´ àËŠҹѹé Í ҧäà â´Ââ»Ãá¡ÃÁ·Õè P10-1 à» ¹µÑÇÍ ҧ¡ÒÃÍ Ò¹¤ Ò¨Ò¡ÃÕâÁµ¤Í¹â·ÃÅ áŠǹíÒ¼Åä»áÊ´§¼Å·Õâè Á´ÙÅ LCD ¹Í¡¨Ò¡¹Õ¡é ¨ç йíÒ¤ Ò·ÕÍè Ò ¹ä´ ¹ÁÕé Òà»ÃÕºà·Õ异 Òà» ¹¤ Ò¤Õ· ¡Õè Òí ˹´ËÃ×ÍäÁ â´Â áÊ´§¤ÇÒÁᵡµ Ò§¢Í§¤Õµ Ò §æ ÍÍ¡ÁÒ·Ò§ÅíÒ⾧໠Ââ«´ ǤíÒÊѧè FREQOUT ¢Í§â»Ãá¡ÃÁÀÒÉÒàºÊÔ¡·Õãè ª PICBASIC PRO ¤ÍÁä¾àÅÍà '***************************************************************** '* Name : P1001.BAS * '* Notes : Use SERIN2 Receive Data From Remote Control * '***************************************************************** @ DEVICE PIC16F877,HS_OSC ' used PIC16F877 KEY VAR BYTE DEFINE OSC 20 ' Oscilator = 20 MHz DEFINE LCD_DREG PORTD ' Set LCD Data port DEFINE LCD_DBIT 4 ' Set starting Data bit (0 or 4) DEFINE LCD_RSREG PORTC ' Set LCD Register Select port DEFINE LCD_RSBIT 0 ' Set LCD Register Select bit DEFINE LCD_EREG PORTC ' Set LCD Enable port DEFINE LCD_EBIT 5 ' Set LCD Enable bit DEFINE LCD_BITS 4 ' Set LCD bus size (4 or 8 bits) DEFINE LCD_LINES 2 ' Set number of lines on LCD DEFINE LCD_COMMANDUS 2000 ' Set command delay time in us DEFINE LCD_DATAUS 50 ' Set data delay time in us ADCON1 = $07 ' ALL PORTA & PORTE = Digital I/O MAIN: SERIN2 PORTA.2,813,2000,MAIN,[KEY] ' Receive Data From IR Module LCDOUT
$FE,$01," KEY = ", KEY
IF (KEY = "A") OR (KEY = "a") THEN FREQOUT PORTA.4,100,2000 ENDIF IF (KEY = "B") OR (KEY = "b") THEN FREQOUT PORTA.4,100,2200 ENDIF IF (KEY = "C") OR (KEY = "c") THEN FREQOUT PORTA.4,100,2400 ENDIF IF (KEY = "D") OR (KEY = "d") THEN FREQOUT PORTA.4,100,2600 ENDIF
' Show Data On LCD Module ' Check Key = "A" or "a" ? ' 2kHz Beep ' Check Key = "B" or "b" ? ' 2.2kHz Beep ' Check Key = "C" or "c" ? ' 2.4kHz Beep ' Check Key = "D" or "d" ? ' 2.6kHz Beep
GOTO MAIN
â»Ãá¡ÃÁ·Õè P10-1 â»Ãá¡ÃÁÍ Ò¹¤ Ò¨Ò¡ÃÕâÁµ¤Í¹â·ÃÅ ER4 áÅ ÇáÊ´§¼Å´ ÇÂàÊÕ§áÅÐâÁ´ÙÅ LCD
86
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
A10.1 à» ´â»Ãá¡ÃÁ Microcode Studio à¢Õ¹â»Ãá¡ÃÁ·Õè P12-1 A10.2 ´Òǹ âËÅ´â»Ãá¡ÃÁ¹Õäé »ÂѧËع ¹µ Robo-PICA ¨Ò¡¹Ñ¹é ¡´ÊÇÔµª MODE à¾×Íè ãË ÍÂÙã ¹âËÁ´Ãѹ (LED ÊÕ à¢ÕÂÇ·Õµè Òí á˹ § RUN µÔ´ÊÇ Ò§) A10.3 㪠ÃâÕ Áµ¤Í¹â·ÃÅ Easy Remote4 ¡´ÊÇÔµª ʧ ÊÑÒ³ä»Âѧἧǧ¨ÃâÁ´ÙÅÃѺáʧÍÔ¹¿ÃÒàô 38kHz Êѧࡵ¡Ò÷íÒ§Ò¹¢Í§âÁ´ÙÅ LCD ·Õ¨è ÍáÊ´§¼Å¢Í§âÁ´ÙÅ LCD ¨ÐáÊ´§µÑÇÍÑ¡Éà A,B,C,D ËÃ×Í a,b,c,d ¾Ã ÍÁ·Ñ§é ¢ÑºàÊÕ§ µÔ´é Êѹé æ ·ÕèÁÕ¤ÇÒÁ¶Õèᵡµ Ò§¡Ñ¹ä»ã¹áµ ÅФÕ ËÃ×ÍÊÇÔµª ÍÍ¡·Ò§ÅíÒ⾧໠Ââ«
¡Ô¨¡ÃÃÁ·Õè 11
ËØ ¹Â¹µ à¤Å×è͹·Õè´ Ç¡ÒäǺ¤ØÁ¨Ò¡ÃÕâÁµ¤Í¹â·ÃÅ ¡Ô¨¡ÃÃÁ¹Õàé » ¹¡ÒÃ㪠ÃâÕ Áµ¤Í¹â·ÃÅ ER-4 ÁÒà» ¹µÑÇÊ §¢ ÍÁÙÅÊíÒËÃѺ¡ÒâѺà¤Å×Íè ¹ãË á¡ Robo-PICA â´Â ¢ ÍÁÙÅ·ÕÊè § ÁÒ¹Ñ¹é ¨Ð¡íÒ˹´ãË Robo-PICA à¤Å×Íè ¹·Õäè »·Ò§´ ҹ˹ Ò à¤Å×Íè ¹·Õ¶è ÍÂËÅѧ àÅÕÂé Ç« Ò áÅÐàÅÕÂé Ç¢ÇÒ ÁÕÅ¡Ñ É³Ð¡Ò÷íÒ§Ò¹¤Å Ò¡ѺöÇÔ·Âغ§Ñ ¤Ñº A11.1 à» ´â»Ãá¡ÃÁ Microcode Studio à¢Õ¹â»Ãá¡ÃÁ·Õè P11-1 A11.2 ´Òǹ âËÅ´â»Ãá¡ÃÁ¹Õäé »ÂѧËع ¹µ Robo-PICA ¨Ò¡¹Ñ¹é ¡´ÊÇÔµª MODE à¾×Íè ãË ÍÂÙã ¹âËÁ´Ãѹ (LED ÊÕ à¢ÕÂÇ·Õµè Òí á˹ § RUN µÔ´ÊÇ Ò§) Ëع ¹µ Robo-PICA ¨ÐËÂØ´¹Ô§è ÍÂÙ¡ ºÑ ·Õè ¨¹¡Ç Ò¨ÐÁÕ¡Òá´ÊÇÔµª ·ÃÕè âÕ Áµ¤Í¹â·ÃÅ ER-4 ¡ÒÃÊÑ§è §Ò¹ ¨Ò¡ÃÕâÁµ¤Í¹â·ÃÅẺÍÔ¹¿ÃÒàô¹Ñ¹é ¨Ðµ Í§Ê §áʧÍÔ¹¿ÃÒàôãË µÃ§¡ÑºÀÒ¤ÃѺ ÁÔ©Ð¹Ñ¹é ¨ÐÊ×Íè ÊÒâ ÍÁÙÅäÁ ä´ ÃÕâÁµ¤Í¹â·ÃÅ Easy Remote4
Ëع ¹µ Robo-PICA
○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
ἧǧ¨ÃâÁ´ÙÅÃѺáʧÍÔ¹¿ÃÒàô 38kHz
ÃÙ»·Õè A11-1 áÊ´§¡ÒäǺ¤ØÁËع ¹µ ·µÕè Í §Ê §áʧÍÔ¹¿ÃÒàô¨Ò¡ÃÕâÁµ¤Í¹â·ÃÅ ER-4 ãË µÃ§¡Ñº ἧǧ¨ÃâÁ´ÙÅÃѺáʧÍÔ¹¿ÃÒàô 38kHz ·Õµè ´Ô µÑ§é ÍÂÙ´ Ò ¹Ë¹ ҢͧËع ¹µ Robo-PICA
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
87
'***************************************************************** '* Name : P1101.BAS * '* Notes : Control ROBO-PICA With Remote Control * '***************************************************************** @ DEVICE PIC16F877,HS_OSC ' used PIC16F877 KEY VAR BYTE DEFINE OSC 20 ' Oscilator = 20 MHz ADCON1 = $07 ' ALL PORTA & PORTE = Digital I/O HIGH PORTC.2 ' Enable Motor A HIGH PORTC.1 ' Enable Motor B TRISD = %11110000 ' RD0-RD3 = OUTPUT MAIN: SERIN2 PORTA.2,813,100,FREE,[KEY] ' Wait Recieve Motor ' If No Data Stop Motor IF (KEY = "A") OR (KEY = "a") THEN Backward ' Pess A or a action IF (KEY = "B") OR (KEY = "b") THEN S_Right ' Press B or b action IF (KEY = "C") OR (KEY = "c") THEN S_Left ' Press C or c action IF (KEY = "D") OR (KEY = "d") THEN Forward ' Press D or d action GOTO MAIN FREE: FORWARD: BACKWARD: S_LEFT: S_RIGHT:
PORTD PORTD PORTD PORTD PORTD
= = = = =
%00000000 %00000110 %00001001 %00000101 %00001010
: : : : :
GOTO goto Goto GOTO GOTO
Main Main Main Main Main
' ' ' ' '
Stop motor routine Forward routine Backward routine Turn left routine Turn right routine
¤íÒ͸ԺÒ¡Ò÷íÒ§Ò¹¢Í§â»Ãá¡ÃÁà¾ÔÁè àµÔÁ àÃÔÁè µ ¹´ Ç¡ÒáíÒ˹´ãË ¾Íà µ A áÅÐ E à» ¹¾Íà µÍÔ¹¾ØµàÍÒµ ¾µØ ´Ô¨µÔ ÍÅ´ ǤíÒÊѧè ADCON1 = $07 ¨Ò¡¹Ñ¹é àÍç¹àÍàºÔÅǧ¨Ã¢ÑºÁÍàµÍà A áÅÐ B à¾×Íè ãË Ë¹Ø Â¹µ ¾Ã ÍÁà¤Å×Íè ¹·Õ´è Ç Â¤ÇÒÁàÃçÇÊÙ§ÊØ´ ÅíҴѺµ ÍÁÒ Í Ò¹ ¤ Ҩҡἧǧ¨ÃâÁ´ÙÅÃѺáʧÍÔ¹¿ÃÒàô¼ Ò¹·Ò§¢Ò RA2 ´ ǤíÒÊѧè SERIN2 áŠǹíÒ¤ Òä´ à¡çºäÇ ã¹µÑÇá»Ã KEY ¶ ÒäÁ Á¡Õ Òá´¤ÕÂã ´æ ¹Ò¹à¡Ô¹ 100 ÁÔÅÅÔÇ¹Ô Ò·Õ ãË ¡ÃÐâ´´ä»·íÒ§Ò¹·ÕÅè ÒàºÅ FREE «Ö§è à» ¹¡ÒÃËÂØ´¡ÒÃà¤Å×Íè ¹·Õè ¢Í§ÁÍàµÍà ËÅѧ¨Ò¡Í Ò¹¤ Ò¨Ò¡ÃÕâÁµ¤Í¹â·ÃÅáÅ Ç ¹íÒä»à»ÃÕºà·ÕÂºÇ ÒµÃ§¡Ñº¤ ÒÊÇÔµª ¢Í§ÃÕâÁµ¤Í¹â·ÃÅËÃ×ÍäÁ ¶ ҵç¡ÑºÊÇÔµª D ËÃ×Í d ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õäè »¢ ҧ˹ Ò ¶ ҵç¡ÑºÊÇÔµª C ËÃ×Í c ãË Ë¹Ø Â¹µ àÅÕÂé Ç·Ò§´ Ò¹« Ò ¶ ҵç¡ÑºÊÇÔµª B ËÃ×Í b ãË Ë¹Ø Â¹µàÅÕÂé Ç·Ò§´ Ò¹¢ÇÒ ¶ ҵç¡ÑºÊÇÔµª A ËÃ×Í a ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õ¶è ÍÂËÅѧ
â»Ãá¡ÃÁ·Õè P11-1 â»Ãá¡ÃÁ¤Çº¤ØÁËع ¹µ Robo-PICA ãË à¤Å×Íè ¹·Õ´è Ç Â¢ ÍÁÙÅ͹ءÃÁ·ÕÊè § ÁÒ¨Ò¡ ÃÕâÁµ¤Í¹â·ÃÅ ER-4
88
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
89
º··Õè 7
Ëع ¹µ µÃǨ¨ÑºÇѵ¶ØẺäÁ ÊÁÑ ¼ÑÊ ¨Ò¡º··Õáè Å Çἧǧ¨ÃâÁ´ÙÅÃѺáʧÍÔ¹¿ÃÒàô 38kHz ÁÕ¤ÇÒÁÊÒÁÒö㹡ÒÃÃѺáʧÍÔ¹¿ÃÒàô ·ÕÊè § ÁÒä´ ¨Ò¡ÃÐÂзҧ¤ ͹¢ Ò§ä¡Å ·íÒãË àÁ×Íè ¹íÒἧǧ¨ÃâÁ´ÙÅÃѺáʧÍÔ¹¿ÃÒàô 38kHz ÁÒà» ¹µÑÇ µÃǨ¨Ñº¡ÒÃÊз ͹áʧÍÔ¹¿ÃÒàô ·íÒãË ÃÐÂСÒÃÊз ͹¡ÅѺ¢Í§áʧà¾ÔÁè ÁÒ¡¢Ö¹é ¨Ö§¹íÒÁÒÃÇÁࢠҡѺ ÀÒ¤Ê §ÊÑÒ³ÍÔ¹¿ÃÒàô¤ÇÒÁ¶Õè 38 kHz à¾×Íè Êà ҧ໠¹µÑǵÃǨ¨Ñº¡ÒÃÊз ͹áʧ â´Â㪠ªÍ×è Ç Ò ZX-08 ἧǧ¨ÃµÃǨ¨ÑºÇѵ¶Ø´Ç ÂáʧÍÔ¹¿ÃÒàô (infrared objector)
7.1 ËÅÑ¡¡Ò÷íÒ§Ò¹¢Í§ ZX-08 ἧǧ¨ÃµÃǨ¨ÑºÇѵ¶Ø´Ç ÂáʧÍÔ¹¿ÃÒàô ã¹á¼§Ç§¨Ã¹Õàé » ¹·Ñ§é ÀÒ¤ÃѺáÅÐÊ §áʧÍÔ¹¿ÃÒàôÃÇÁÍÂÙ´ Ç Â¡Ñ¹ ÊíÒËÃѺÀÒ¤Ê §»ÃСͺ´ Ç IC1 àºÍà IRD-629FW «Ö§è ¨Ð·íÒ˹ Ò·ÕÊè à ҧ¤ÇÒÁ¶Õè 38kHz ÍÍ¡·Ò§¢Ò 3 àÁ×Íè ÁÕ¡Òû ͹Åͨԡ 1 à¢ Ò ÁÒ·ÕÍè ¹Ô ¾Øµ·Ò§¢Ò 5 àÍÒµ ¾µØ ¨Ò¡¢Ò 3 ¢Í§ IC1 ¶Ù¡Ê §µ Íä»Âѧ·ÃÒ¹«ÔÊàµÍà Q1 à¾×Íè ¢ÂÒÂÊÑÒ³ãË ÁÕ¤ÇÒÁáçÁÒ¡¢Öé¹ â´ÂÁÕµÑǵ Ò¹·Ò¹»ÃѺ¤ Òä´ VR1 µÑǵ Ò¹·Ò¹ R2 áÅÐ R3 ·íÒ˹ Ò·Õè»ÃѺ¤ÇÒÁ áç¢Í§ÊÑÒ³ ÊÑÒ³¨Ð¶Ù¡Ê §ÍÍ¡ä»´ Ç LED1 «Ö§è à» ¹ LED ÍÔ¹¿ÃÒàô +V IC1 IRD-629FW
K1 IR-Tx
5
+V = 3-6V 1
GP4/LED GP2/TxE GP0/DET
K2 IR-Rx
R1 150
2
GP5/DIN
3
R2 2k2
VR1 10k SENSE
7 R5 1k
Çѵ¶ØËÃ×ÍÊÔ§è ¡Õ´¢ÇÒ§
R4 150 LED1 IR-LED Q1 BC337
R3 2k2
+V
8 LED2 DETECT
C1 0.1/50V M1 38kHz IRM
ÃÙ»·Õè 7-1 áÊ´§Ç§¨ÃÊÁºÙó áÅÐÃٻà ҧ˹ ҵҢͧἧǧ¨ÃµÃǨ¨ÑºÇѵ¶Ø
áʧÍÔ¹¿ÃÒàô
90
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
ÊíÒËÃѺÀÒ¤ÃѺ 㪠âÁ´ÙÅÃѺáʧÍÔ¹¿ÃÒàô M1 ÃѺÊÑÒ³Êз ͹·Õäè ´ ¨Ò¡ÀÒ¤Ê § àÍÒµ ¾µØ ¢Í§ M1 ¨Ð¶Ù¡Ê §ä»Âѧ IC1 à¾×Íè 㪠áÊ´§¼Å¡ÒÃÃѺ¤ Òä´ ÍÍ¡·Ò§ LED2 ¾Ã ÍÁ¡Ñ¹¹Ñ¹é ÊÑÒ³¨Ð¶Ù¡ Ê §ÍÍ¡ä»Âѧ¤Í¹à¹ç¡àµÍà K2 à¾×Íè Ê §µ Íä»ÂѧäÁâ¤Ã¤Í¹â·ÃÅàÅÍà ´Ç  â´ÂÁÕµÇÑ µ Ò¹·Ò¹ R1 ¤ Ò 150 âÍË Á·íÒ˹ Ò·Õ»è Í §¡Ñ¹¤ÇÒÁàÊÕÂËÒ¡ѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà ¡Ã³Õà¡Ô´¡Ò깡ѹ¢Í§¢ ÍÁÙÅ ¤ÇÒÁäǢͧ¡ÒõÃǨ¨ÑºÇѵ¶Ø¹Ñ鹨ТÖé¹ÍÂÙ ¡Ñº¡ÒûÃѺ¤ Ңͧ VR1 ¨Ö§·íÒãË ¼Ù 㪠§Ò¹ÊÒÁÒö àÅ×Í¡»ÃѺÃÐÂÐ㹡ÒõÃǨ¨ÑºÇѵ¶Øä´ ´ ÇÂÇÔ¸Õ¡Ò÷ҧÎÒà ´áÇÃ
¡Ô¨¡ÃÃÁ·Õè 12
µÔ´µÑé§á¼§Ç§¨ÃµÃÇǨѺÇѵ¶Ø ÍØ»¡Ã³ áÅÐà¤Ã×Íè §Á×Í àÊÒÃͧ¾ÅÒʵԡ 3 ÁÁ. Ê¡ÃÙ 3x10 ÁÁ. ¹Íµ 3 ÁÁ.
¢Ñ¹é µÍ¹¡ÒûÃСͺ
ªÔ¹é µ ÍÁØÁ» Ò¹
ªÔ¹é µ Íá¹ÇµÃ§
ZX-08 ἧǧ¨ÃµÃǨ¨ÑºÇѵ¶Ø ´ ÇÂáʧÍÔ¹¿ÃÒàô
A12.1 Êà ҧᢹÊíÒËÃѺÂִἧǧ¨ÃµÃǨ¨ÑºÇѵ¶Ø â´Âà ÍÂÊ¡ÃÙ 3x10 ÁÁ. ÂÖ´ ἧǧ¨ÃµÃǨ¨ÑºÇѵ¶Ø¡ºÑ ªÔ¹é µ ÍÁØÁ» Ò¹ â´Â㪠àÊÒÃͧ¾ÅÒʵԡ 3 ÁÁ. ¡Ñ¹é ÃÐËÇ Ò§¡ÅÒ§ ÊíÒËÃѺ»ÅÒÂÍÕ¡´ Ò¹¢Í§ªÔ¹é µ ÍÁØÁ» Ò¹ãË µÍ ¡ÑºªÔ¹é µ Íá¹Ç µÃ§à¾×Íè àª×Íè ÁࢠҡѺªÔ¹é µ ÍÁØÁ» Ò¹ÍÕ¡ªÔ¹é â´ÂÊà ҧᢹÂÖ´ÊíÒËÃѺἧǧ¨Ã µÃǨ¨ÑºÇѵ¶Ø¢¹Öé ÁÒ 2 ªØ´
A12.2 ¤ÅÒÂÊ¡ÃÙÂ´Ö á¼§Ç§¨Ã¢Í§ºÍà ´ RBX-877 ÍÍ¡¾ÍãË àÊÕºªÔ¹é µ ÍÁØÁ» ҹࢠÒä»ä´ â´Â¤ÅÒÂÍÍ¡·Ñ§é Êͧ´ Ò¹ ¨Ò¡¹Ñ¹é ¹íÒἧǧ¨ÃµÃǨ¨ÑºÇѵ¶ØàÊÕºࢠÒä» áÅ Ç㪠䢤ǧ¢Ñ¹ÂÖ´ãË á¹ ¹
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
91
A12.3 µ ÍÊÒ¨ҡ ZX-08 ἧǧ¨ÃµÃǨ¨ÑºÇѵ¶Ø´Ç ÂáʧÍÔ¹¿ÃÒàôä»Âѧ ºÍà ´ RBX-877 â´Âµ ÍÊÒ´ѧ¹Õé Rx ¢Í§á¼§Ç§¨Ã´ Ò¹« Òµ ÍࢠҡѺ¢Ò RA3 Rx ¢Í§á¼§Ç§¨Ã´ Ò¹¢ÇÒµ ÍࢠҡѺ¢Ò RA5 Tx ¢Í§á¼§Ç§¨Ã´ Ò¹« Òµ ÍࢠҡѺ¢Ò RE0 Tx ¢Í§á¼§Ç§¨Ã´ Ò¹¢ÇÒµ ÍࢠҡѺ¢Ò RE1 ¨Ðä´ Ë¹Ø Â¹µ Robo-PICA ·ÕÁè Õ µÒ ÊíÒËÃѺµÃǨ¨ÑºÇѵ¶Ø·ÍÕè ÂÙ´ Ò ¹ ˹ Òä´ â´ÂäÁ µ ͧÊÑÁ¼ÑÊ
¡Ô¨¡ÃÃÁ·Õè 13
·´Êͺ¡Ò÷íÒ§Ò¹¢Í§á¼§Ç§¨ÃµÃǨ¨ÑºÇѵ¶Ø ¡Ô¨¡ÃÃÁ¹Õ¨é зíÒ¡ÒõÃǨÊͺ¼Å¨Ò¡á¼§Ç§¨ÃµÃǨ¨Ñº·Ñ§é ÊͧµÑÇ áŠǹíҼŷÕäè ´ áÊ´§¼Å·Õâè Á´ÙÅ LCD â´Â»¡µÔàÁ×Íè ¨ ÒÂä¿ãË ¡ºÑ ZX-08 ἧǧ¨ÃµÃǨ¨ÑºÇѵ¶Ø´Ç ÂáʧÍÔ¹¿ÃÒàô ἧǧ¨ÃµÃǨ¨ÑºÇѵ¶Ø¡¨ç зíÒ§Ò¹ä´ ·Ñ¹·Õ à¹×Íè §¨Ò¡¢Ò Tx ä´ ÃºÑ Åͨԡ 1 ¨Ò¡µÑǵ Ò¹·Ò¹¾ÙÅÍÑ» ¼Ùã ª §Ò¹¨ÐàËç¹ LED ÊÕá´§µÔ´ÊÇ Ò§àÁ×Íè ÁÕÇµÑ ¶ØÁÒ ¢ÇÒ§¡Ñ¹é ´ ҹ˹ Òἧǧ¨ÃµÃǨ¨ÑºÇѵ¶Ø 㹡óշáÕè ¼§Ç§ÃÁÕ¤ÇÒÁäÇÁÒ¡à¡Ô¹ä»áÅеԴ¤ Ò§µÅÍ´àÇÅÒ ãË »ÃѺµÑÇ µ Ò¹·Ò¹»ÃѺ¤ Òä´ º¹á¼§Ç§¨Ã à¾×Íè Å´¤ÇÒÁäǢͧ LED ÍÔ¹¿ÃÒàôŧ A13.1 à» ´â»Ãá¡ÃÁ Microcode Studio à¢Õ¹â»Ãá¡ÃÁ·Õè P13-1 A13.2 ´Òǹ âËÅ´â»Ãá¡ÃÁ¹Õäé »ÂѧËع ¹µ Robo-PICA ¨Ò¡¹Ñ¹é ¡´ÊÇÔµª MODE à¾×Íè ãË ÍÂÙã ¹âËÁ´Ãѹ A13.3 ¹íÒÇѵ¶ØÁÒÇÒ§´ ҹ˹ ҢͧËع ¹µ ¨Ò¡¹Ñ¹é ·´Åͧ»ÃѺµÑǵ Ò¹·Ò¹»ÃѺ¤ Òä´ º¹á¼§Ç§¨ÃµÃǨ¨ÑºÇѵ¶Ø ¨¹¡Ãзѧè LED ÊÕá´§¢Í§á¼§Ç§¨ÃµÃǨ¨ÑºÇѵ¶Øµ´Ô ÊÇ Ò§ áÊ´§Ç ÒµÃǨ¨Ñº¾ºÇѵ¶ØáÅ Ç ¾Ã ÍÁ¡Ñ¹¹Ñ¹é ·Õâè Á´ÙÅ LCD ¨ÐáÊ´§¢ ͤÇÒÁᨠ§¼Å¡ÒõÃǨ¨Ñº´ ÇÂઠ¹¡Ñ¹ ÊíÒËÃѺÃÐÂСÒõÃǨ¨Ñº¢Í§á¼§Ç§¨ÃµÃǨ¨ÑºÇѵ¶Ø ¨ÐäÁ á¹ ¹Í¹ ¢Ö¹é ÍÂÙ¡ ºÑ Çѵ¶Ø·¶Õè ¡Ù Êз ͹ ઠ¹ ¶ ÒÇѵ¶ØÁÊÕ ¢Õ ÒÇ á¼§Ç§¨ÃµÃǨ ¨ÑºÇѵ¶Ø¡ç¨ÐµÃǨ¨ÑºÇѵ¶Øä´ ·ÕèÃÐÂзҧ¤ ͹¢ Ò§ä¡Å áµ ¶ ÒÁÕÊÕ·Öº ÃÐÂÐ㹡ÒõÃǨ¨Ñº¡ç¨ÐÊÑé¹Å§ ¹Í¡¨Ò¡¹Õé¡ÒûÃѺµÑǵ Ò¹·Ò¹º¹ ἧǧ¨ÃµÃǨ¨ÑºÇѵ¶Ø¡çÁռŴ Ç ¹Í¡¨Ò¡¹Ñé¹Âѧ¾ºÇ Ò ¶ Òἧǧ¨ÃµÃǨ¨ÑºÇѵ¶Ø·Ñé§ÊͧÇÒ§ ËѹࢠÒã¡Å ¡¹Ñ ÁÒ¡à¡Ô¹ä»¨Ðà¡Ô´¡ÒÃú¡Ç¹¡Ñ¹¢Ö¹é «Ö§è ·íÒãË á¼§Ç§¨Ã µÃǨ¨Ñºä´ µÅÍ´àÇÅÒ ¤ÇÃËѹ·ÔÈ·Ò§¢Í§á¼§Ç§¨Ãä»ã¹·ÔÈ·Ò§µÃ§ ÃÙ»·Õè A13-1 ¡ÒÃáÊ´§¼Å·Õâè Á´ÙÅ LCD ¡Ñ¹¢ ÒÁ áÅлÃѺ¤ÇÒÁࢠÁ¢Í§áʧÍÔ¹¿ÃÒàôãË àËÁÒÐÊÁ´ Ç àÁ×Íè µÃǨ¾ºÇѵ¶Ø·Ò§« ÒÂÁ×Í
92
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
'***************************************************************** '* Name : P1301.BAS * '* Notes : Detect Wall Show Status ON LCD * '***************************************************************** @ DEVICE PIC16F877,HS_OSC ' Use PIC16F877 DEFINE
OSC
20
DEFINE DEFINE DEFINE DEFINE DEFINE DEFINE DEFINE DEFINE DEFINE DEFINE
LCD_DREG PORTD LCD_DBIT 4 LCD_RSREG PORTC LCD_RSBIT 0 LCD_EREG PORTC LCD_EBIT 5 LCD_BITS 4 LCD_LINES 2 LCD_COMMANDUS 2000 LCD_DATAUS 50
' Oscilator = 20 MHz ' ' ' ' ' ' ' ' ' '
Set Set Set Set Set Set Set Set Set Set
LCD data port starting Data bit LCD register Select port LCD register Select bit LCD enable port LCD enable bit LCD bus size (4 or 8 bits) number of lines on LCD command delay time in us data delay time in us
ADCON1 = $07 ' ALL PORTA & PORTE = Digital I/O MAIN:HIGH PORTE.1 ' Infrared LED ON HIGH PORTE.0 IF (PORTA.3 = 0) THEN ' Check IR MOdule detection LCDOUT $FE,$01,"DETECT WALL_L" ' If detect, show on LCD ENDIF IF (PORTA.5 = 0) THEN LCDOUT $FE,$01,"DETECT WALL_R" ENDIF PAUSE 100 ' Delay LCDOUT $FE,$01 GOTO MAIN ' Check again
¡Ò÷íÒ§Ò¹¢Í§â»Ãá¡ÃÁ 1. ¡íÒ˹´¤ ÒàÃÔÁè µ ¹ãË ¡ºÑ âÁ´ÙÅ LCD ¡ ͹ â´Â㪠ºÃ÷Ѵ DEFINE LCD_ «Ö§è ÁÕ·§Ñé ËÁ´ 10 ºÃ÷Ѵ 2. ¡íÒ˹´ãË ¢Ò¾Íà µ·Ñ§é ËÁ´à» ¹¢Ò´Ô¨µÔ ÍÅÍÔ¹¾ØµàÍÒµ ¾µØ â´Â¡íÒ˹´ãË Ã¨Õ ÊÔ àµÍà ADCON1 = $07 3. ãË LED ÍÔ¹¿ÃÒàôàÃÔÁè µ ¹Ê §¤ÇÒÁ¶Õè 38 kHz â´Â¡íÒ˹´ãË ¢Ò Tx ¢Í§á¼§Ç§¨Ã·Ñ§é ÊͧÁÕÅͨԡ 1 4. µÃǨÊͺ¢Ò Rx «Ö§è à» ¹¢ÒÃѺ¢ ÍÁÙŨҡ¡ÒÃÊз ͹¡ÅѺ¢Í§áʧ¨Ò¡Çѵ¶ØÇÒ ÁÕ¡ÒÃÊз ͹¡ÅѺËÃ×Í äÁ ÊíÒËÃѺ·Ò§« ÒÂÁ×Í àÁ×Íè ÁÕ¡ÒÃÊз ͹¡ÅѺ ¢Ò RA3 ¨ÐÁÕÅͨԡ 0 ãË áÊ´§¢ ͤÇÒÁ DETECT WALL_L ·Õâè Á´ÙÅ LCD ¶ ÒäÁ 㪠ãË µÃǨÊͺà§×Íè ¹ä¢·Ò§´ Ò¹¢ÇÒÁ×Í àÁ×Íè ·Ò§¢ÇÒÁ×ÍÁÕ¡ÒÃÊз ͹¡ÅѺ ¢Ò¾Íà µ RA5 ¨ÐÁÕÅͨԡ 0 ãË áÊ´§¢ ͤÇÒÁ DETECT WALL_R ·Õâè Á´ÙÅ LCD 5. ¶ ÒµÃǨÊͺáÅ Ç äÁ ¾ºÇ ÒÁÕ¡ÒÃÊз ͹¡ÅѺ ãË ·Òí ¡ÒÃà¤ÅÕÂà ¨ÍáÊ´§¼Å¢Í§âÁ´ÙÅ LCD ¨Ò¡¹Ñ¹é ¡ÅѺä»àÃÔÁè µ ¹·íÒ¡ÒõÃǨÊͺµÒÁ¢ Í 4 ãËÁ Í¡Õ ¤Ãѧé
â»Ãá¡ÃÁ·Õè P13-1 â»Ãá¡ÃÁÀÒÉÒàºÊÔ¡ÊíÒËÃѺµÃǨÊͺ¡Ò÷íÒ§Ò¹¢Í§á¼§Ç§¨ÃµÃǨ¨ÑºÇѵ¶Ø´Ç  áʧÍÔ¹¿ÃÒàô¢Í§Ëع ¹µ Robo-PICA
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
93
¡Ô¨¡ÃÃÁ·Õè 14
ËØ ¹Â¹µ à¤Å×è͹·ÕèËźËÅÕ¡Çѵ¶ØẺäÁ ÊÑÁ¼ÑÊ ´ ÇÂËع ¹µ ·µÕè ´Ô µÑ§é ἧǧ¨ÃµÃǨ¨ÑºÇѵ¶Ø´Ç ÂáʧÍÔ¹¿ÃÒàôäÇ ´Ò ¹Ë¹ Ò à»ÃÕºàÊÁ×Í¹Ç Ò Ëع ¹µ ÁÕ µÒ ·ÕÁè ͧàËç¹ÊÔ§è ¡Õ´¢ÇÒ§´ ҹ˹ Ò ´Ñ§¹Ñ¹é ¨Ö§µ ͧà¢Õ¹â»Ãá¡ÃÁà¾×Íè ãË Ê Ç¹ÊÁͧ ËÃ×ÍäÁâ¤Ã¤Í¹â·ÃÅàÅÍà µ´Ñ ÊÔ¹ ã¨Ç Ò ¨ÐãË Ë¹Ø Â¹µ ·Òí Í ҧäõ Íä»àÁ×Íè ¾ºÊÔ§è ¡Õ´¢ÇÒ§ËÃ×ÍÇѵ¶ØÍÂÙ´ Ò ¹Ë¹ Ò '***************************************************************** '* Name : P1401.BAS * '* Notes : Detect Wall * '***************************************************************** @ DEVICE PIC16F877,HS_OSC ' used PIC16F877 DEFINE OSC 20 ' Oscilator = 20 MHz ADCON1 = $07 ' ALL PORTA & PORTE = Digital I/O HIGH PORTC.2 ' Enable Motor A HIGH PORTC.1 ' Enable Motor B TRISD = $F0 ' Set low nibble PORTD for driving motor MAIN: HIGH PORTE.1 ' Infrared LED on HIGH PORTE.0 IF (PORTA.3 = 1) AND (PORTA.5 = 1) THEN FORWARD ' Not detect, straight IF (PORTA.3 = 0) THEN LEFT ' Detect from left IF PORTA.5 = 0 THEN RIGHT ' Detect from right GOTO MAIN FORWARD: LEFT: RIGHT:
PORTD = %00000110 :GOTO MAIN PORTD = %00001001 : PAUSE 1000 : PORTD = %00000101 : PAUSE 800 GOTO MAIN PORTD = %00001001 : PAUSE 1000 : PORTD = %00001010 : PAUSE 800 GOTO MAIN
go
¤íÒ͸ԺÒ¡Ò÷íÒ§Ò¹¢Í§â»Ãá¡ÃÁà¾ÔÁè àµÔÁ 1.¡íÒ˹´ãË ¢Ò¾Íà µ A áÅÐ E ·íÒ˹ Ò·Õàè » ¹¾Íà µÍÔ¹¾ØµàÍÒµ ¾µØ 2. àÍç¹àÍàºÔÅ¡Ò÷íÒ§Ò¹¢Í§ÁÍàµÍà ¡íÒ˹´ãË ¢Ò RD0-RD3 à» ¹¢ÒàÍÒµ ¾µØ ÊíÒËÃѺ¤Çº¤ØÁÁÍàµÍà 3. Ê §Åͨԡ 1 ãË ¡ºÑ ÀÒ¤Ê §ÊÑÒ³ÍÔ¹¿ÃÒàô¢Í§á¼§Ç§¨ÃµÃǨ¨ÑºÇѵ¶Ø·§Ñé ÊͧµÑÇ 4. µÃǨÊͺ¡ÒÃÃѺáʧÍÔ¹¿ÃÒàô¨Ò¡á¼§Ç§¨ÃµÃǨ¨ÑºÇѵ¶Ø·§Ñé ÊͧµÑÇ ¶ ÒäÁ Á¡Õ ÒÃÊз ͹ ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õäè »¢ ҧ˹ Ò â´ÂàÃÕ¡â»Ãá¡ÃÁ Í FORWARD à¾×Íè ¤Çº¤ØÁãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õäè »¢ ҧ˹ Ò 5. ¶ ÒÁÕ¡ÒÃÊз ͹¨Ò¡á¼§Ç§¨Ã·Ò§« Ò àÃÕ¡â»Ãá¡ÃÁ Í LEFT à¾×Íè ¤Çº¤ØÁãË Ë¹Ø Â¹µ ¶ÍÂËÅѧ áÅ Ç àÅÕÂé Ç¢ÇÒà¾×Íè ËźËÅÕ¡ÊÔ§è ¡Õ´¢ÇÒ§ 6. ¶ ÒÁÕ¡ÒÃÊз ͹¨Ò¡á¼§Ç§¨Ã·Ò§¢ÇÒ àÃÕ¡â»Ãá¡ÃÁ Í RIGHT à¾×Íè ¤Çº¤ØÁãË Ë¹Ø Â¹µ ¶ÍÂËÅѧ áÅ ÇàÅÕÂé Ç« ÒÂà¾×Íè ËźËÅÕ¡ÊÔ§è ¡Õ´¢ÇÒ§ 7. ãË â»Ãá¡ÃÁ¡ÅѺä»àÃÔÁè µ ¹·íÒ¡ÒõÃǨÊͺ¨Ò¡¢ Í 4 ãËÁ áÅ Çǹ·íҧҹ͠ҧ¹Õäé »µÅÍ´
â»Ãá¡ÃÁ·Õè P14-1 â»Ãá¡ÃÁ¤Çº¤ØÁãË Ë¹Ø Â¹µ Robo-PICA à¤Å×Íè ¹·ÕËè źÊÔ§è ¡Õ´¢ÇҧẺäÁ ÊÁÑ ¼ÑÊ
94
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
A14.1 à» ´â»Ãá¡ÃÁ Microcode Studio à¢Õ¹â»Ãá¡ÃÁ·Õè P14-1 A14.2 ´Òǹ âËÅ´â»Ãá¡ÃÁ¹Õäé »ÂѧËع ¹µ Robo-PICA ¨Ò¡¹Ñ¹é ¡´ÊÇÔµª MODE à¾×Íè ãË ÍÂÙã ¹âËÁ´Ãѹ àÁ×Íè àÃÔÁè µ ¹·íÒ§Ò¹ Ëع ¹µ ¨Ðà¤Å×Íè ¹·Õäè »¢ ҧ˹ ÒÍ ҧµ Íà¹×Íè § àÁ×Íè ¾ºÊÔ§è ¡Õ´¢ÇÒ§ Ëع ¹µ ¨Ð¶ÍÂËÅѧ áÅ Çà»ÅÕè¹àÊ ¹·Ò§ä»ã¹·ÔÈ·Ò§µÃ§¡Ñ¹¢ ÒÁ¡Ñº·Õ辺ÊÔ觡մ¢ÇÒ§ ¨Ò¡¡Ò÷´Êͺà¤Å×Íè ¹·Õ¢è ͧËع ¹µ ¡ºÑ ÊÀÒ¾áÇ´Å ÍÁµ Ò§æ ¾ºÇ Ò ã¹ºÒ§¤Ãѧé Ëع ¹µ ¨ÐµÃǨÊͺ¾º Çѵ¶Øã¹ÃÐÂзҧ·Õãè ¡Å ÁÒ¡¨¹à¡×ͺª¹ ÊÒà˵ؤÍ× ã¹µíÒá˹ §·ÕËè ¹Ø Â¹µ µÃǨ¨Ñºä´ ¹¹Ñé ÁÕ¡ÒÃÊз ͹áʧÍÔ¹¿ÃÒàô ä´ ¹Í  áÅШзíÒ§Ò¹ä´ ´¡Õ ºÑ ¾×¹é ·Õ·è ÁÕè ÊÕ ÍÕ Í ¹áÅÐÁÕ¾¹Ôé ¼ÔÇã¡Å à¤Õ§¡Ñ¹
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
95
º··Õè 8
Robo-PICA ¡Ñº¡ÒÃÇÑ´Ãзҧ´ Ç âÁ´ÙÅÇÑ´ÃÐÂзҧẺÍÔ¹¿ÃÒàô Íա˹Ö觵ÑǵÃǨ¨Ñº·Õè¹ Òʹ㨤×Í âÁ´ÙŵÃǨ¨ÑºáÅÐÇÑ´ÃÐÂзҧ´ ÇÂáʧÍÔ¹¿ÃÒàôàºÍà GP2D12 áÅÐ GP2D120 ¨Ò¡ Sharp â´ÂâÁ´ÙŹÕãé Ë ¼Å¡Ò÷íҧҹ໠¹áç´Ñ¹ä¿µÃ§·ÕÊè ÁÑ ¾Ñ¹¸ ¡ºÑ ÃÐÂÐ ·Ò§·Õµè ÃǨ¨Ñºä´ ´Ñ§¹Ñ¹é ¨Ö§ÊÒÁÒö¹íÒàª×Íè Áµ ͡ѺËع ¹µ Robo-PICA ä´ Í ҧ§ Ò´Ò â´Âµ ÍࢠҷÕè ÍÔ¹¾ØµÊÑÒ³ÍйÒÅÍ¡ ÊíÒËÃѺâÁ´ÙÅ·Õ¨è йíÒÁÒ㪠㹺·¹Õ¤é Í× GP2D120 ·ÕÊè ÒÁÒöÇÑ´ÃÐÂÐ·Ò§ä´ 4 ¶Ö§ 30 ૹµÔàÁµÃ ã¹¢³Ð·Õè GP2D12 ÇÑ´ä´ 10 ¶Ö§ 80 ૹµÔÁàµÃ
8.1 ¢ ÍÁÙÅàº×Íé µ ¹¢Í§ GP2D120/GP2D12 âÁ´ÙŵÃǨ¨ÑºáÅÐÇÑ´ÃÐÂзҧ ´ ÇÂáʧÍÔ¹¿ÃÒàô ÁդسÊÁºÑµÔ·Õè¹ Òʹ㨴ѧ¹Õé l 㪠¡ÒõÃǨ¨ÑºÃÐÂзҧ´ Ç¡ÒÃÊз ͹áʧÍÔ¹¿ÃÒàô l ÇÑ´ÃÐÂÐ·Ò§ä´ 10 ¶Ö§ 80 «Á. ÊíÒËÃѺ GP2D12 áÅÐ 4 ¶Ö§ 30 «Á.ÊíÒËÃѺ GP2D120 l ä¿àÅÕÂ é § 4.5 ¶Ö§ 5V ¡ÃÐáÊä¿¿ Ò 33mA l ãË àÍÒµ ¾µ Ø à» ¹áç´Ñ¹ã¹Â Ò¹ 0.4 ¶Ö§ 2.4V ·Õäè ¿àÅÕÂé § +5V GP2D12/GP2D120 à» ¹âÁ´ÙŵÃǨ¨ÑºÃÐÂзҧẺÍÔ¹¿ÃÒàôÁÕ¢Òµ Í㪠§Ò¹ 3 ¢Ò¤×Í ¢Òµ Í ä¿àÅÕÂé § (Vcc), ¢Ò¡ÃÒÇ´ (GND) áÅТÒáç´Ñ¹àÍÒµ ¾µØ (Vout) ¡ÒÃÍ Ò¹¤ Òáç´Ñ¹¨Ò¡ GP2D12 ¨Ðµ ͧ ÃÍãË ¾¹ ª ǧàµÃÕÂÁ¤ÇÒÁ¾Ã ÍÁ«Ö§è 㪠àÇÅÒ»ÃÐÁÒ³ 32. ¶Ö§ 52.9 ÁÔÅÅÔÇ¹Ô Ò·Õ ´Ñ§¹Ñ¹é ¡ÒÃÍ Ò¹¤ Ò¨Ö§¤Çà ÃÍãË ¾ ¹ª ǧàÇÅҴѧ¡Å ÒÇ仡 ͹ âÁ´ÙÅ GP2D12 áÅÐ GP2D120 à» ¹ÍØ»¡Ã³ àÊÃÔÁ äÁ ÃÇÁÍÂÙã ¹ÍØ»¡Ã³ Áҵðҹ¢Í§ªØ´Ëع ¹µ Robo-PICA
96
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
LED ÍÔ¹¿ÃÒàôµÑÇÊ §
ä¿àÅÕé§
µÑÇÃѺáʧÍÔ¹¿ÃÒàô
38.3±9.6
/2 , /2 , Vout
GND
Vcc
ÁÔÅÅÔÇ¹Ô Ò·Õ
¡ÒÃÇÑ´ÃÐÂÐË Ò§
ÇÑ´¤ÃÑ§é ·Õè 1
áç´Ñ¹àÍÒµ ¾Øµ
äÁ á¹ ¹Í¹
ÇÑ´¤ÃÑ§é ·Õè 2
ÇÑ´¤ÃÑ§é ·Õè n
àÍÒµ ¾µØ ¤ÃÑ§é ·Õè 1 àÍÒµ ¾µØ ¤ÃÑ§é ·Õè 2
àÍÒµ ¾µØ ¤ÃÑ§é ·Õè n
5 ÁÔÅÅÔÇ¹Ô Ò·Õ
¡ÃÒ¿áÊ´§¡Ò÷íÒ§Ò¹¢Í§ GP2D120 ¡ÃÒ¿áÊ´§¡Ò÷íÒ§Ò¹¢Í§ GP2D12 áç´Ñ¹àÍÒµ ¾µØ (V)
áç´Ñ¹àÍÒµ ¾µØ (V)
2.8
2.8
2.4
2.4
2.0
2.0
1.6
1.6
1.2
1.2
0.8
0.8
0.4
0.4
0
0
4
8
12
16
20
24
28
ÃÐÂÐË Ò§¨Ò¡Çѵ¶Ø·µèÕ ÃǨ¨Ñº (cm)
32
0
0
10
20
30
40
50
60
70
ÃÐÂÐË Ò§¨Ò¡Çѵ¶Ø·µèÕ ÃǨ¨Ñº (cm)
80
* 㪠¡ ÃдÒÉà·Ò ¢ÒÇÃØ ¹ R-27 ¢Í§ Kodak «Ö§è ´ Ò¹¢ÒÇ ÁÕÍѵÃÒ¡ÒÃÊз ͹ áʧ 90% à» ¹Çѵ¶Ø ÊíÒËÃѺÊз ͹áʧ à¾×èÍÇÑ´ÃÐÂзҧ
ÃÙ»·Õè 8-1 áÊ´§Ãٻà ҧ ¡ÒèѴ¢Ò ä´ÍÐá¡ÃÁàÇÅҨѧËÇСÒ÷íÒ§Ò¹ áÅСÃÒ¿áÊ´§¡Ò÷íÒ§Ò¹¢Í§ GP2D12/GP2D120 ¤ Òáç´Ñ¹àÍÒµ ¾µØ ¢Í§ GP2D120 ·ÕÃè ÐÂзҧ 30 ૹµÔàÁµÃ·Õäè ¿àÅÕÂé § +5V ÍÂÙã ¹ª ǧ 0.25 ¶Ö§ 0.55V â´Â¤ Ò¡ÅÒ§¤×Í 0.4V ª ǧ¢Í§¡ÒÃà»ÅÕÂè ¹á»Å§áç´Ñ¹àÍÒµ ¾µØ ·ÕÃè ÐÂзҧ 4 ૹµÔàÁµÃ¤×Í 2.25V ±0.3V ¤ Òáç´Ñ¹àÍÒµ ¾µØ ¢Í§ÃÐÂзҧ 80 ૹµÔàÁµÃ·Õäè ¿àÅÕÂé § +5V ÍÂÙã ¹ª ǧ 0.25-0.55V â´Â¤ Ò ¡ÅÒ§¤×Í 0.4V ª ǧ¢Í§¡ÒÃà»ÅÕÂè ¹á»Å§áç´Ñ¹àÍÒµ ¾µØ ·ÕÃè ÐÂзҧ 10 ૹµÔàÁµÃ¤×Í 2V ±0.25V
8.2 ËÅÑ¡¡Ò÷íÒ§Ò¹¢Í§âÁ´ÙŵÃǨÇÑ´ÃÐÂзҧ´ ÇÂáʧÍÔ¹¿ÃÒàô
¡ÒÃÇÑ´ÃÐÂзҧÊÒÁÒö·íÒä´ ËÅÒÂÃٻẺ ÃٻẺ·ÕÁè ·Õ Òí ¤ÇÒÁࢠÒã¨ä´ §Ò ·ÕÊè ´Ø ¤×Í ÍÑÅµÃ Ò â«¹Ô¡·Õàè » ¹¡ÒùíÒàÍÒÊÑÒ³àÊÕÂ§Ê §ä»¡ÃзºÇѵ¶ØáŠǹѺàÇÅÒ·Õàè ÊÕ§¹Ñ¹é Êз ͹µÍº¡ÅѺÁÒ à¹×Íè § ¨Ò¡¤ÇÒÁàÃçǢͧàÊÕ§¹Ñé¹ÁÕ¤ÇÒÁàÃçÇäÁ ÁÒ¡¹Ñ¡ ¾Í·Õè¨Ð㪠à¤Ã×èͧÁ×͵ÃǨÇÑ´ä´ áµ ÊíÒËÃѺâÁ´ÙÅÇÑ´ ÃÐÂзҧ´ ÇÂáʧÍÔ¹¿ÃÒàô ¡ÒÃÊ §áʧÍÔ¹¿ÃÒàô仡ÃзºÇѵ¶ØáÅ ÇÇÑ´¤ ÒÃÐÂÐàÇÅÒ¡ÒÃÊз ͹¹Ñ¹é ·íÒäÁ ä´ à¹×Íè §¨Ò¡¤ÇÒÁàÃçÇáʧ¹Ñ¹é ÁÕ¤ÇÒÁàÃçÇÁÒ¡à¡Ô¹ä» à¡Ô¹¡Ç Òà¤Ã×Íè §Á×Í»¡µÔ¨Ð·íÒ¡ÒõÃǨ¨Ñºä´ ¨Ö§µ ͧ㪠ËÅÑ¡¡Ò÷íÒ§Ò¹´Ñ§¹Õé
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
97
ÃÙ»·Õè 8-2 áÊ´§¡Ãкǹ¡Ò÷íÒ§Ò¹¢Í§âÁ´ÙÅ GP2D12/GP2D120 áʧÍÔ¹¿ÃÒàô¨Ò¡µÑÇÊ §¨Ð¶Ù¡Ê §ä»¡ÃзºÇѵ¶Ø ¼ Ò¹àÅ¹Ê ¹Ù¹à¾×èÍâ¿¡ÑÊáʧãË ÁÕ¤ÇÒÁࢠÁ áʧä»Âѧ¨Ø´ã´¨Ø´Ë¹Ö§è àÁ×Íè áʧ仡ÃзºÇѵ¶Ø¨Ðà¡Ô´¡ÒáÃÐà¨Ô§¢Í§áʧä»ã¹·ÔÈ·Ò§µ Ò§æ áÊ§Ê Ç¹ Ë¹Ö§è ¨Ð¡ÃÐà¨Ô§ä»ÂѧÀÒ¤ÃѺ â´ÂÁÕàÅ¹Ê ÀÒ¤ÃѺ·íÒ˹ Ò·ÕÃè ÇÁáʧáÅСíÒ˹´¨Ø´µ¡¡Ãзº áʧ¨Ð¶Ù¡ Ê §¼ Ò¹ä»Âѧâ¿âµ ·ÃÒ¹«ÔÊàµÍà ¨íҹǹÁÒ¡·Õèµ ÍàÃÕ§µÑǡѹ໠¹ÍÐààµíÒá˹ §·Õèáʧµ¡¡Ãзº¹Õé ÊÒÁÒö¹íÒÁÒ¤íҹdzËÒÃÐÂзҧ (L) ¨Ò¡ÀÒ¤Ê §ä»ÂѧÇѵ¶Øä´ â´Â㪠ʵ٠ÃËÒÊÒÁàËÅÕÂè Á¤Å Ò´ѧ¹Õé L F = A X
´Ñ§¹Ñ¹é ¤ Ò L ¨ÐÁÕ¤Ò à· Ò¡Ñº L=
F×A X
â´Â¤ Ò·ÕÇè ´Ñ ÃÐÂÐä´ ¨Ò¡â¿âµ ·ÃÒ¹«ÔÊàµÍà ¨Ð¶Ù¡Ê §ä»Âѧǧ¨Ã»ÃÐÁÇżÅÊÑÒ³¡ ͹¨Ðà»ÅÕÂè ¹¤ Ò à» ¹ÃдѺáç´Ñ¹ «Ö§è ãË ¼Å¡ÒÃà»ÅÕÂè ¹á»Å§áç´Ñ¹µÒÁÃÐÂзҧ·Õµè ÃǨÇÑ´ä´
98
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
8.3 ¡ÒùíÒâÁ´ÙÅ GP2D120 ÁÒ㪠¡ºÑ Ëع ¹µ
¼ÅÅѾ¸ ·äÕè ´ ¨Ò¡ GP2D12 ËÃ×Í GP2D120 à» ¹áç´Ñ¹ ¨Ðµ ͧ¹íÒ¤ Ò·Õäè ´ ÁÒáÊ´§¼Åã¹ÃÙ»¢Í§ ÃÐÂзҧ â´Âá»Å§¤ Òáç´Ñ¹¨Ò¡¡ÃÒ¿à»ÃÕºà·Õº¤ Òáç´Ñ¹¡Ñº¤ ÒÃÐÂзҧ à¾×Íè ¤ÇÒÁÊдǡ¨Ö§ÁÕ ¼ÙÊ Ã Ò§ÊÁ¡ÒÃàªÔ§àÊ ¹ÍÍ¡ÁÒãË ãª §Ò¹ä´ §Ò  ´Ñ§¹Õé
â´Â
4=
' " − 8 +#
ÊíÒËÃѺ GP2D120
4=
$%&% −" 8−!
ÊíÒËÃѺ GP2D12
R ËÁÒ¶֧ÃÐÂзҧ˹ ÇÂà» ¹à«¹µÔàÁµÃ V ËÁÒ¶֧¢ ÍÁÙŨҡǧ¨Ãá»Å§ÊÑÒ³ÍйÒÅÍ¡à» ¹´Ô¨µÔ ÍÅ
¡Ô¨¡ÃÃÁ·Õè 15
µÔ´µÑ§é âÁ´ÙÅ GP2D120 á¡ Robo-PICA A15.1 㪠ª¹Ôé µ ÍÁØÁ©Ò¡Âִࢠҷպè ÃÔàdz´ ҹ˹ ҢͧºÍà ´ RBX-877 â´Â㪠ʡÃÙ 3x10 ÁÁ. ¢Ñ¹ÂÖ´àÍÒäÇ A15.2 ·Õµè Òí á˹ §µÃ§¡Ñ¹´ ҹŠҧ ºÃÔàdzἠ¹°Ò¹ãË ¹äªÔ¹é µ ÍÁØÁ©Ò¡ÍÕ¡Íѹ ÂִࢠÒä»´ Ç ¢Ñ¹ãË á¹ ¹´ ÇÂÊ¡ÃÙ 3x10 ÁÁ.
A15.3 ¹íÒâÁ´ÙÅ GP2D120 ÁÒà Í´ ÇÂÊ¡ÃÙ 3x10 ÁÁ. áÅТѹ´ ǹ͵ 3 ÁÁ. â´Â¢Ñ¹é ¹ÕÂé §Ñ äÁ µÍ §¢ÑÂãË á¹ ¹ ¹íÒâÁ´ÙÅ GP2D120 ÂÖ´à¢ Ò¡ÑºÊ Ç¹¢Í§ªÔ¹é µ ÍÁØÁ©Ò¡·Õµè ´Ô µÑ§é äÇ ã¹¢Ñ¹é µÍ¹·Õè A15.1 áÅÐ A15.2 A15.4 µ ÍÊÒÂÊÑÒ³¨Ò¡âÁ´ÙÅ GP2D120 à¢ Ò·Õ¨è ´Ø µ Í RE2 «Ö§è ¨Ðä´ ÃºÑ ¡ÒáíÒ˹´ãË à» ¹ÍÔ¹¾ØµÊÑÒ³ÍйÒÅÍ¡ª ͧ 7(AN7) ¢Í§ PIC16F877 ´Ñ§¹Ñ¹é 㹡ÒÃà¢Õ¹â»Ãá¡ÃÁ¨Ö§µ Í§Í Ò¹¤ ÒÊÑÒ³¨Ò¡¾Íà µ¹Õé
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
99
¤íÒàµ×͹à¡ÕÂè ǡѺÊÒÂÊÑÒ³¢Í§ GP2D12 áÅÐ GP2D120 à¹×Íè §¨Ò¡âÁ´ÙÅ GP2D12 áÅÐ GPD120 ÁÕ¡ÒèѴ¢ÒÊÑÒ³·Õáè µ¡µ Ò§¨Ò¡¨Ø´µ ͺ¹ºÍà ´ StampBOX áÁ ÇÒ ¨ÐÁÕû٠à ҧàËÁ×͹¡Ñ¹¡çµÒÁ ´Ñ§¹Ñ¹é ¨Ö§ÁÕ¡Òõ ÍÊÒÂÊÑҳẺ¾ÔàÈÉãË á¡ âÁ´ÙÅ GP2D12 áÅÐ GP2D120 â´Â¨Ðµ ÍࢠҡѺâÁ´ÙÅäÇ áÅ Ç ¼Ùã ª §Ò¹à¾Õ§¹íÒ»ÅÒ¢ͧÊÒÂÊÑÒ³ÍÕ¡´ Ò¹Ë¹Ö§è µ Í à¢ Ò¡Ñº¨Ø´µ ÍÊÑÒ³º¹ºÍà ´ Stamp-BOX ä´ àÅ â´Âµ ͧäÁ ¶Í´ÊÒÂÊÑҳ㹴 Ò ¹·Õµè ´Ô ¡ÑºµÑÇ âÁ´ÙÅÍ ҧà´ç´¢Ò´ áÅÐË ÒÁà»ÅÕÂè ¹ÊÒÂÊÑÒ³¢Í§âÁ´ÙÅ GP2D120 ÊÅѺ¡ÑºÊÒÂÊÑÒ³¢Í§µÑÇ µÃǨ¨ÑºáººÍÔ¹×è æ à´ç´¢Ò´
¡Ô¨¡ÃÃÁ·Õè 16
¡ÒÃà¢Õ¹â»Ãá¡ÃÁà¾×èÍÍ Ò¹¤ Ò¨Ò¡ GP2D120 áÊ´§¼Å·Õâè Á´ÙÅ LCD A16.1 à» ´â»Ãá¡ÃÁ Microcode Studio à¢Õ¹â»Ãá¡ÃÁ·Õè P16-1 A16.2 ´Òǹ âËÅ´â»Ãá¡ÃÁ¹Õäé »ÂѧËع ¹µ Robo-PICA ¨Ò¡¹Ñ¹é ¡´ÊÇÔµª MODE à¾×Íè ãË ÍÂÙã ¹âËÁ´Ãѹ '**************************************************************** '* Name : P1601.BAS * '* Notes : Read data from GP2D120 module * '**************************************************************** @ DEVICE PIC16F877a , HS_OSC ' Use PIC16F877 and HS Oscilator DAT VAR Word ' Save Raw Data SENSOR7 VAR WORD ' Save Data I var byte ' Counter R var word ' Save Converted Data DEFINE OSC 20 ' Use Oscillator 20 MHz DEFINE ADC_BITS 10 ' Set number of bits in result DEFINE ADC_CLOCK 3 ' Set clock source (Internal RC = 3) DEFINE ADC_SAMPLEUS 50 ' Set sampling time in microseconds DEFINE DEFINE DEFINE DEFINE DEFINE DEFINE DEFINE DEFINE
LCD_DREG PORTD LCD_DBIT 4 LCD_RSREG PORTC LCD_RSBIT 0 LCD_EREG PORTC LCD_EBIT 5 LCD_BITS 4 LCD_LINES 2
' ' ' ' ' ' ' '
Set Set Set Set Set Set Set Set
LCD Data port starting Data bit (0 or 4) if 4-bit bus LCD Register Select port LCD Register Select bit LCD Enable port LCD Enable bit LCD bus size (4 or 8 bits) number of lines on LCD
â»Ãá¡ÃÁ·Õè P16-1 â»Ãá¡ÃÁÍ Ò¹¤ ÒâÁ´ÙÅ GP2D120 ÁÒáÊ´§¼Å·Õâè Á´ÙÅ LCD ¢Í§ Robo-PICA (ÁÕµÍ )
100
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
DEFINE DEFINE
LCD_COMMANDUS 2000 LCD_DATAUS 50
' Set command delay time in us ' Set data delay time in us
ADCON1 = %10000000
' All PORTA & PORTE is Analog
Dat = 0 For i = 1 to 5 ADCIN 7,SENSOR7 dat = (Sensor7 + next DAT = DAT/5 LCDOUT $FE,$01,"Raw R = (2914 / (DAT+5)) LCDOUT $FE,$C0,"Far pause 200 goto Main
' ' ' '
Main:
DAT)
Clear data for Averate Loop 5 time for averate data Read channel 7 sum data
' averate = ",DEC3 Dat ' -1 ' = ",DEC2 R," CM"'
data show RAW data on LCD Convert data ==> centimeter Show On LCD
' Again
â»Ãá¡ÃÁ·Õè P16-1 â»Ãá¡ÃÁÍ Ò¹¤ ÒâÁ´ÙÅ GP2D120 ÁÒáÊ´§¼Å·Õâè Á´ÙÅ LCD ¢Í§ Robo-PICA (¨º) ¡Ò÷íÒ§Ò¹¢Í§â»Ãá¡ÃÁ·Õè P16-1 ¨Ð¡íÒ˹´ãË äÁâ¤Ã¤Í¹â·ÃÅàÅÍÃ Í Ò¹¤ ÒÊÑÒ³ÍйÒÅÍ¡¨Ò¡ ª ͧÊÑÒ³ Analog 7 (AN7) «Ö觵ç¡Ñº¢Ò RE2 ¢Í§äÁâ¤Ã¤Í¹â·ÃÅàÅÍà â´Â¡ÒÃÍ Ò¹¤ Ò¹Ñ¹é ¨ÐÍ Ò¹«éÒí 5 ¤ÃÑé§ áŠǹíÒÁÒËÒ¤ Òà©ÅÕè à¾×èÍãË ä´ ¼Å¡ÒÃÇÑ´·ÕèÁÕ ¤ÇÒÁáÁ ¹ÂíÒÁÒ¡ÂÔ§è ¢Ö¹é ¡ ͹¹íÒä»áÊ´§¼Å·Õâè Á´ÙÅ LCD ¨Ò¡¹Ñé¹¹íÒ¤ Ò·ÕèÍ Ò¹ä´ ÁÒá»Å§ãË ÍÂÙ ã¹Ë¹ Ç ¢Í§à«¹µÔàÁµÃ áŠǹíÒ¤ Ò˹ ÇÂૹµÔàÁµÃ¹Õäé »áÊ´§·Õè âÁ´ÙÅ LCD 㹺Ã÷Ѵ·Õè 2 ¨Ò¡¹Ñ¹é Ç¹Í Ò¹¤ Òµ Íà¹×Íè §
¡Ô¨¡ÃÃÁ·Õè 17
ËźËÅÕ¡ÊÔ觡մ¢ÇÒ§´ Ç¡ÒÃÇÑ´ÃÐÂзҧ 㹡Ԩ¡ÃÃÁ¹Õàé » ¹¡ÒùíÒ¤ÇÒÁÃÙá ÅмšÒ÷íÒ§Ò¹¨Ò¡¡Ô¨¡ÃÃÁ·Õè 16 ÁҾѲ¹Òà» ¹â»Ãá¡ÃÁà¾×Íè ¤Çº¤ØÁ ãË Ë¹Ø Â¹µ Robo-PICA ÊÒÁÒöµÃǨÊͺÇѵ¶Ø·¡Õè ´Õ ¢ÇÒ§ÍÂÙ´ Ò ¹Ë¹ Òã¹ÃÐÂзաè Òí ˹´ä´ ã¹¢³Ð·Õ¡è Òí Åѧà¤Å×͹·Õè áÅÐàÁ×Íè µÃǨ¾ºãË ·Òí ¡ÒÃËźËÅÕ¡ ËÅÑ¡¡Òä×Í Í Ò¹¤ Ò¨Ò¡âÁ´ÙÅ GP2D120 áŠǹíÒÁÒà»ÃÕºà·Õº¡Ñº¤ Ò·Õµè §Ñé äÇ ¶ ÒÁÕ¤Ò ÁÒ¡¡Ç Ò¤ Ò·Õµè §Ñé äÇ áÊ´§Ç ÒÁÕÇµÑ ¶ØÍÂÙ´ Ò ¹Ë¹ Ò ÂÔ§è ¤ Ò·Õµè §Ñé äÇ Á¤Õ Ò ÁÒ¡Çѵ¶Ø§Ôè ÍÂÙã ¡Å ÁÒ¡ ¨ÐÊѧè ãË Ë¹Ø Â¹µ à¤Å×Íè ¹·Õ¶è ÍÂËÅѧ 0.5 ÇÔ¹Ò·Õ áÅ ÇËÁعµÑÇ·Ò§« ÒÂÍÕ¡ 1 ÇÔ¹Ò·Õ áµ ¶ ÒµÃǨÊͺäÁ ¾ºÇѵ¶ØÍÂÙ ´ ҹ˹ Ò ¡çãË ËØ ¹Â¹µ à¤Å×è͹·ÕèµÃ§ä»´ ҹ˹ Ò ¾Ã ÍÁ·Ñ§é áÊ´§¤ Ò·ÕÍè Ò ¹ä´ ·¨Õè ÍáÊ´§¼Å¢Í§âÁ´ÙÅ LCD ´ ÇÂ
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC
l
101
'**************************************************************** '* Name : P1701.BAS * '* Notes : Robo-PICA in Object detection mission * '**************************************************************** @ DEVICE PIC16F877a , HS_OSC ' Use PIC16F877 and HS Oscilator SENSOR7 VAR WORD ' Save Data DEFINE OSC 20 ' Use Oscillator 20 MHz DEFINE ADC_BITS 10 ' Set number of bits in result DEFINE ADC_CLOCK 3 ' Set clock source (Internal RC = 3) DEFINE ADC_SAMPLEUS 50 ' Set sampling time in microseconds DEFINE LCD_DREG PORTD ' Set LCD Data port DEFINE LCD_DBIT 4 ' Set starting Data bit (0 or 4) if 4-bit bus DEFINE LCD_RSREG PORTC ' Set LCD Register Select port DEFINE LCD_RSBIT 0 ' Set LCD Register Select bit DEFINE LCD_EREG PORTC ' Set LCD Enable port DEFINE LCD_EBIT 5 ' Set LCD Enable bit DEFINE LCD_BITS 4 ' Set LCD bus size (4 or 8 bits) DEFINE LCD_LINES 2 ' Set number of lines on LCD DEFINE LCD_COMMANDUS 2000 ' Set command delay time in us DEFINE LCD_DATAUS 50 ' Set data delay time in us HIGH PORTC.2 HIGH PORTC.1 TRISD = %11110000 ADCON1 = %10000000
' ' ' '
Enable Motor A Enable Motor B RD0-RD3 = OUTPUT All PORTA & PORTE is Analog
Main: ADCIN 7,SENSOR7 ' Read channel 7 LCDOUT $FE,$80,"Raw = ",DEC3 Sensor7 ' show RAW data on LCD IF (sensor7 > 350) then PORTD = %00001001 ' Robot Backward Pause 500 PORTD = %00000101 ' Robot Spin Left pause 1000 endif PORTD = %00000110 ' Robot Forward goto Main
â»Ãá¡ÃÁ·Õè P17-1 â»Ãá¡ÃÁÍ Ò¹¤ ÒâÁ´ÙÅ GP2D120 à¾×Íè ¤Çº¤ØÁ¡ÒÃà¤Å×Íè ¹·Õ¢è ͧËع ¹µ Robo-PICA àÁ×Íè µÃǨ¾ºÇѵ¶Ø¢ÇÒ§·Ò§´ ҹ˹ Ò A17.1 à» ´â»Ãá¡ÃÁ Microcode Studio à¢Õ¹â»Ãá¡ÃÁ·Õè P17-1 A17.2 ´Òǹ âËÅ´â»Ãá¡ÃÁ¹Õäé »ÂѧËع ¹µ Robo-PICA »Å´ÊÒ´Òǹ âËÅ´ÍÍ¡ A17.3 ¹íÒËع ¹µ Robo-PICA ä»ÇÒ§º¹¾×¹é ·Õ·è ´Êͺ·ÕÁè ¡Õ ÒèѴÇÒ§ÊÔ§è ¡Õ´¢ÇÒ§ ¨Ò¡¹Ñ¹é ¡´ÊÇÔµª MODE à¾×Íè ãË ÍÂÙã ¹âËÁ´Ãѹ Êѧࡵ¡Ò÷íÒ§Ò¹¢Í§Ëع ¹µ
102
l
àÃÕ¹ÃÙá ÅÐÊà ҧËع ¹µ 굄 â¹Áѵ¡Ô ºÑ äÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC