PicBasic Pro Compiler

¡¡

¡¡

micro Engineering Labs, Inc.

»ùÇÃÀüÀÚ

¡¡

1. µµÀÔ
PicBasic Pro ÄÄÆÄÀÏ·¯(PBP) ´Â Microchip Technology»çÀÇ PIC¸¶ÀÌÅ©·Î ÄÁÆ®·Ñ·¯¿ë ÇÁ·Î±×·¥ ¾ð¾îÀÔ´Ï´Ù. ¿µ¾îÇ¥±â¿Í À¯»çÇÑ BASIC ¾ð¾î´Â MicrochipÀÇ ¾î¼Àºí¸® ÇÁ·Î±×·¥ º¸´Ùµµ ÀÏ°í ¾²±â°¡ ½±½À´Ï´Ù. PicBasic Pro ÄÄÆÄÀÏ·¯´Â "BASIC Stamp II" °ú ºñ½ÁÇÏÁö¸¸ ÄÄÆÄÀÏ·¯¾ð¾îÀ̹ǷΠBASIC Stamp º¸´Ùµµ ¸Å¿ì ºü¸£°Ô µ¿ÀÛÇÕ´Ï´Ù. PBP´Â BASIC Stamp¿Í Á¤È®ÇÑ È£È¯¼ºÀ» À¯ÁöÇÏÁö ¾Ê½À´Ï´Ù.±×·¯³ª Ãʱâ¹öÁ¯Àº BS1À» ±âÃÊ·ÎÇÏ¿© Á¦À۵Ǿú½À´Ï´Ù. Á¶°Ç ÆǴܹ®ÀÌ °³¼±µÇ¾ú½À´Ï´Ù. IF..THEN ..ELSE .. ENDIF ¸¦ Áö¿øÇÏ°Ô µÇ¾ú½À´Ï´Ù. STAMP´Â IF..THEN (GOTO)¸¸ Áö¿øÇÕ´Ï´Ù. PBP´Â 4MHz·Î µ¿ÀÛÇÏ´Â PIC16F84-04/P °¡ µðÆúÆ®·Î ¼³Á¤µÇ¾îÀÖ½À´Ï´Ù 2 °³ÀÇ 22PF ijÆнÃÅÍ, 4MHz Å©¸®½ºÅ», /MCLRÇÉÀ» +5V¿¡ ¿¬°áÇÏ´Â Ç®¾÷ÀúÇ×µî ÃÖ¼ÒÇÑÀÇ ºÎÇ°ÀÌ ÇÊ¿äÇÕ´Ï´Ù. 16F84¿Í ´Ù¸¥ ¸¹Àº PIC ¸¶ÀÌÅ©·Î ÇÁ·Î¼¼¼­´Â 4MHz¿Í ´Ù¸¥¿À½Ç·¹ÀÌÅÍ ÁÖÆļö¸¦ »ç¿ëÇϸç PICBASIC Pro ÄÄÆÄÀÏ·¯¸¦ °°ÀÌ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

1.1 Pic Micro
PicBasic ProÄÄÆÄÀÏ·¯´Â 8 ÇɺÎÅÍ 68ÇɱîÁö ±×¸®°í A/DÄÁ¹öÅÍ, Çϵå¿þ¾îŸÀ̸Ó, ½Ã¸®¾óÆ÷Æ®µî ´Ù¾çÇÑ PICÄÁÆ®·Ñ·¯ÀÇ ³»Àå ±â´ÉÀ» Áö¿øÇÕ´Ï´Ù. ´ëºÎºÐÀÇ 14ºñÆ® Äھƿʹ޸® 12ºñÆ® ÄÚ¾ÆÀÎ PIC16C54¿Í 16C58À» Æ÷ÇÔÇÏ´Â PIC5x°è¿­ÀÇ PIC¸¶ÀÌÅ©·Î´Â Áö¿øÇÏÁö ¾Ê½À´Ï´Ù. PicBasic Pro ÄÄÆÄÀÏ·¯´Â 8 ·¹º§ÀÇ ½ºÅÃÀÇ 14ºñÆ® Äھ »ç¿ë °¡´ÉÇÕ´Ï´Ù. PIC ¸¶ÀÌÅ©·Î ÄÁÆ®·Ñ·¯´Â '5X¸¦ Æ÷ÇÔÇÏ¿© ´ë´ÜÈ÷ ¸¹Àº Á¾·ù°¡ ÀÖÀ¸¸ç ´ëºÎºÐ Pic Basic Pro ÄÄÆÄÀÏ·¯¿Í ÇÔ²² »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇöÀç »ç¿ë°¡´É Ĩ ¸®½ºÆ®¿¡´Â PIC16C554, 556, 558, 61, 62(A), 620, 621, 622, 63, 64(A), 71, 710, 711, 715, 72, 73(A), 74(A), 84, 923, 924 ¿Í PIC16F83, 84, PIC14C000 °¡ Æ÷ÇԵǾîÀÖÀ¸¸ç Microchip»ç´Â ´õ¸¹Àº Á¦Ç°À» Ãß°¡ÇÒ °ÍÀÔ´Ï´Ù. PIC16C54¿Í 58Àº Pic Basic Pro¿¡¼­ Áö¿øÇÏÁö ¾ÊÁö¸¸ PIC16C554, 558, 620 ±×¸®°í 622 ¿Í ºñ½ÁÇÑ °¡°ÝÀ¸·Î Á÷Á¢±³Ã¼°¡ °¡´ÉÇϹǷΠic Basic Pro ÄÄÆÄÀÏ·¯¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀϹÝÀûÀº ¿ëµµ·Î Pic Basic Pro ÄÄÆÄÀÏ·¯¸¦ ÀÌ¿ëÇÑ Á¦Ç°°³¹ßÀº PIC16F84 (F84¸¦ ÀÔ¼öÇÒ¼ö ¾øÀ¸¸é PIC16C84)¸¦ ÀÌ¿ëÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù.PIC16F84´Â Ç÷¡½¬¸Þ¸ð¸®°¡ ³»ÀåµÇ¾î À־ ¸Þ¸ð¸®ÀÇ ÀÌ·¹ÀÌÁî¿Í Àç ÇÁ·Î±×·¥ÀÌ ºü¸£°Ô ÀÌ·ç¾îÁö¹Ç·Î µð¹ö±ë ÀÛ¾÷ÀÌ ½±½À´Ï´Ù. ÇÁ·Î±×·¥ ¼ÒÇÁÆ®¿þ¾î¿¡¼­ ¸¶¿ì½ºÀÇ Å¬¸¯¸¸À¸·Î ½±°Ô ÀÌ·¹ÀÌÁî¿Í ÇÁ·Î±×·¥ÀÌ °è¼ÓÀûÀ¸·Î °¡´ÉÇÕ´Ï´Ù. PIC12C67x, 16C55x, 16C6x, 16C7x, 16C9x´Â ´Ü Çѹø¸¸ ÇÁ·Î±×·¥ÀÌ °¡´ÉÇÑĨ(OTP)ÀÔ´Ï´Ù. Àڿܼ±¿¡ÀÇÇÑ ¼Ò°Å°¡ °¡´ÉÇÑ Ä¨µµ ÀÖ½À´Ï´Ù. PIC16F84´Â Àü¿øÀÌ °ø±ÞµÇÁö ¾Ê¾Æµµ ÇÁ·Î±×·¥ µ¥ÀÌÅͳª ÆĶó¸ÞŸ¸¦ ÀúÀåÇÒ¼ö ÀÖ´Â 64¹ÙÀÌÆ®ÀÇ ºÒÈֹ߼º µ¥ÀÌŸ ¸Þ¸ð¸®¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. Pic Basic Pro ÄÄÆÄÀÏ·¯¿¡¼­ READ ¿Í WRITE ¸í·É¿¡ ÀÇÇÏ¿© µ¥ÀÌŸ¸¦ ±¸µ¿ÇÒ¼ö ÀÖ½À´Ï´Ù. (ÇÁ·Î±×·¥ ÄÚµå´Â Àü¿øÀÌ °ø±ÞµÇÁö ¾Ê¾Æµµ ¿µ±¸È÷ Äڵ念¿ª¿¡ ÀúÀåµÇ¾îÀÖ½À´Ï´Ù.) 16F84¸¦ »ç¿ëÇϸé ÃʱâÇÁ·Î±×·¥ ½ÃÇè°ú µð¹ö±ë ÀÛ¾÷ÀÌ ºü¸£°Ô ÁøÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇÁ·Î±×·¥ÀÇ ¸ÞÀÎ ·çƾÀÌ ¸¸Á·ÇÒ¸¸Å­ ¾ÈÁ¤µÇ°Ô µ¿ÀÛÇÑ´Ù¸é ´õ¸¹Àº ±â´É¸¦ È®ÀåÇϴ°ÍÀÌ °¡´ÉÇÕ´Ï´Ù. ¸¹Àº Á¾·ùÀÇ PIC ¸¶ÀÌÅ©·ÎÄÁÆ®·Ñ·¯¿¡ ´ëÇÏ¿© ¾ð±ÞµÉ °ÍÀÌÁö¸¸ Mictochip Tecnology»çÀÇ µ¥ÀÌÅ͸¦ Âü°íÇϽñ⠹ٶø´Ï´Ù.

1.2 º» ¼³¸í¼­¿¡ ´ëÇÏ¿©
BASIC ¾ð¾îÀÇ ¸ðµç »çÇ×À» ¼³¸íÇÏÁö´Â ¾Ê½À´Ï´Ù. PicBsic ProÄÄÆÄÀÏ·¯ÀÇ ¸í·É¿¡ ´ëÇÏ¿© ¿¹Á¦¿Í ÇÔ²² ¾î¶»°Ô ÀÌ¿ëÇÏ´Â °ÍÀΰ¡¸¦ ¼³¸íÇÕ´Ï´Ù. BASIC ¾ð¾î¸¦ »ç¿ëÇغ» °æÇèÀÌ ¾ø´Ù¸é ´Ù¸¥ °ü·Ã ¼­ÀûÀ» Âü°íÇϽñ⠹ٶø´Ï´Ù. BASICÀº »ç¿ëÇϱ⠽¬¿ì¸ç ÷ºÎµÈ ¿¹Á¦ ÇÁ·Î±×·¥Àº ¸¹Àº µµ¿òÀ» ÁÙ°ÍÀÔ´Ï´Ù. ´ÙÀ½ Àå¿¡¼­ Pic Basic ProÄÄÆÄÀÏ·¯ÀÇ ¼³Ä¡ÇÏ´Â °Í°ú óÀ½À¸·Î ÇÁ·Î±×·¥À» ±â¼úÇÏ´Â °Í¿¡ ´ëÇÏ¿© ¼³¸íÇÕ´Ï´Ù. ±×¸®°í ÄÄÆÄÀÌ·¯ÀÇ ¿©·¯°¡Áö ¼±Åûç¾ç¿¡ ´ëÇÏ¿© ¼³¸íÇÒ °ÍÀÔ´Ï´Ù. ±âº»ÀûÀÎ ÇÁ·Î±×·¥ ±ÔÄ¢°ú Pic Basic Pro ÄÄÆÄÀÏ·¯ÀÇ ¸í·É¾î¸¦ ÀÚ¼¼È÷ ¼³¸íÇÑ ·¹ÆÛ·±½º°¡ ÀÖ½À´Ï´Ù. ·ÊÆÛ·±½º¿¡¼­´Â ¸ðµç ¸í·ÉÀÇ ±âº» Çü½Ä°ú ¿¹Á¦¿Í ÇÔ²² ¼³¸íµË´Ï´Ù.. Å¥¾î¸® ºê¶óÄÏ { } Àº ¼±ÅÂÀûÀÎ ÆĶó¸ÞÅÍÀÓÀ» Ç¥½ÃÇÕ´Ï´Ù. ¸¶Áö¸· ºÎºÐ¿¡¼­ °í±Þ ÇÁ·Î±×·¡¸Ó¸¦ À§ÇÑ ÄÄÆÄÀÏ·¯ÀÇ ³»ºÎµ¿ÀÛ¿¡ °ü·ÃµÈ Á¤º¸°¡ ÀÖ½À´Ï´Ù.

2. ½ÃÀÛ

2.1 ¼ÒÇÁÆ®¿þ¾î¼³Ä¡
Pic Basic Pro ÄÄÆÄÀÏ·¯´Â MS-DOS ¸ðµå¿¡¼­ µ¿ÀÛÇÕ´Ï´Ù. ÇÁ·Î±×·¥ ¼³Ä¡¿Í ½ÇÇàÀ» DOS ¿¡¼­ ÇÏ¿©¾ß ÇÕ´Ï´Ù. PicBasic Pro ¼ÒÇÁÆ®¿þ¾î´Â »ç¿ëÇϱâÀü¿¡ Çϵåµð½ºÅ©¿¡ ÀúÀåÇÏ¿©¾ß ÇÕ´Ï´Ù. Çϵåµð½ºÅ©¿¡ PBP ¼­ºêµð·ºÅ丮¸¦ ¸¸µì´Ï´Ù.

md PBP

µð½ºÄÏÀÇ ¸ðµç ÇÁ·Î±×·¥À» Çϵåµð½ºÅ©·Î º¹»çÇÕ´Ï´Ù.

xcopy a:*/* c:\PBP /s

¿É¼Ç /s´Â PBP ÀÇ ¼­ºêµð·ºÅä·¹¿¡ ÇÊ¿äÇÑ ¸ðµç ¼­ºêµð·ºÅ丮¸¦ ¸¸µé¶ó´Â °ÍÀÔ´Ï´Ù. CONFIG.SYS ¿¡¼­ FILES ¿Í BUFFERS°¡ ÃÖ¼Ò 50 ÀÌ»óÀ¸·Î ¼³Á¤µÇ¾î ÀÖ¾î¾ß ÇÕ´Ï´Ù.

2.2 ù¹ø° ÇÁ·Î±×·¥
PicBasic Pro ÄÄÆÄÀÏ·¯¸¦ »ç¿ëÇϱâ À§ÇÏ¿©´Â ¼Ò½ºÇÁ·Î±×·¥À» ¸¸µé±âÀ§ÇÑ ÅؽºÆ® ¿¡µðÅͳª ¿öµåÇÁ·Î¼¼¼­°¡ ÇÊ¿äÇÕ´Ï´Ù. EPIC Plus Pocket ÇÁ·Î±×·¡¸Ó¿Í PicBASIC Pro ÄÄÆÄÀÏ·¯°¡ ÇÊ¿äÇÕ´Ï´Ù. ¹°·Ð À̸ðµç°ÍÀÌ Àßµ¿À۵Ǵ PC°¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù. ¸ÕÀú BASIC ¼Ò½ºÇÁ·Î±×·¥À» ¸¸µì´Ï´Ù. ÀϹÝÀûÀÎ Text ÆíÁý±â¸é ¸ðµÎ °¡´ÉÇÕ´Ï´Ù. DOS ¿¡¼­ EDIT¸í·ÉÀ¸·Î ÆíÁýÇϰųª Window ¿¡¼­ NotePad¸¦ »ç¿ëÇÏ¸é µË´Ï´Ù. ¼Ò½º ÇÁ·Î±×¶÷Àº È®ÀåÀÚ°¡ .BAS °¡ µÇµµ·Ï ÇÕ´Ï´Ù.(±×·¸°Ô ÇÏÁö ¾Ê¾Æµµ ÁÁ½À´Ï´Ù) ¼Ò½º ÇÁ·Î±×·¥Àº ¼ø¼öÇÑ ASCII ¹®ÀÚÀ̾î¾ß ÇÕ´Ï´Ù. ¾î¶°ÇÑ Æ¯¼öÄڵ峪 ¾ç½Ä¿ë Á¦¾î¹®ÀÚ¸¦ Æ÷ÇÔÇÏ¸é ¾ÊµË´Ï´Ù. ´ëºÎºÐÀÇ ÆíÁý±â¿¡¼­ Pure DOS ³ª ASCII Text ¸ðµå·Î ÀúÀåÇÏ¸é µË´Ï´Ù. ´ÙÀ½ÀÇ ¿¹Á¦ÇÁ·Î±×·¥Àº PIC ¸¶ÀÌÅ©·Î ÄÁÆ®·Ñ·¯¸¦ ½ÃÇèÇϱâÀ§ÇÑ ÁÁÀº ¿¹Á¦ÀÔ´Ï´Ù. Á÷Á¢ ŸÀÌÇÎÇϰųª. SAMPLES µð·ºÅ丮¿¡ µé¾îÀִ°ÍÀ» Á÷Á¢ »ç¿ëÇصµ µË´Ï´Ù.

' Example Program to blink an LED connected to PORTB.0 about once a second

loop: High PORTB.0 ' Turn on LED
Puse 500 ' Delay for .5 seconds
Low PORTB.0 ' Turn off LED
Pause 500 ' Delay for .5 seconds
Goto loop ' Go back to loop and blink LED forever

End

ÇÁ·Î±×·¥ ÀÛ¼ºÀÌ ¿Ï·áµÇ¾úÀ¸¸é DOS ÇÁ·ÒÇÁÆ®¿¡¼­ PBP ´ÙÀ½¿¡ ÆÄÀÏÀ̸§À» ŸÀÌÇÎÇÑÈÄ ¿£ÅÍÅ°¸¦ ´©¸£¸é µË´Ï´Ù.

PBP blink

ÄÄÇ»ÅÍ´Â Ãʱâ¸Þ¼¼Áö¸¦ Ãâ·ÂÇÒ°ÍÀ̸ç ÁøÇà»óȲÀÌ Ç¥½ÃµÉ°ÍÀÔ´Ï´Ù. ¾î¼Àºí¸® ÆÄÀÏÀÌ ¸ÕÁ® ¸¸µé¾îÁö°í ´ÙÀ½À¸·Î ¿¡¼Àºí·¯ ÇÁ·Î±â·¥ÀÌ ½ÇÇàµÇ¾î ÃÖÁ¾ÀûÀÎ PIC ¸¶ÀÌÅ©·Î ÄÁÆ®·Ñ·¯¿ë Äڵ尡 ¸¸µé¾îÁý´Ï´Ù. ¸¸ÀÏ ÄÄÆÄÀÏ ¿¡¶ó°¡ ¹ß»ýÇÏ¸é ¼Ò½º ÇÁ·Î±×·¥À» ¼öÁ¤ÇÏ¿© ÄÄÆÄÀÏÀ» ¹Ýº¹ÇÏ¿©¾ß ÇÕ´Ï´Ù. ÁÁÀº ÇÁ·Î±×·¥À» °³¹ßÇÏ´Â ¹æ¹ýÀ¸·Î Àüü ÇÁ·Î±×·¥À» ÀÛÀº ºÎºÐÀ¸·Î ³ª´©¾î¼­ Å×½ºÆ® ÇÏ´Â °ÍÀÔ´Ï´Ù. Pic Basic Pro ÄÄÆÄÀÏ·¯´Â Ưº°È÷ ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é PIC16F84 ¿ë Äڵ带 ¸¸µì´Ï´Ù. ´Ù¸¥ PIC ¸¶ÀÌÅ©·Î ÄÁÆ®·Ñ·¯¸¦ »ç¿ëÇÏ·Á¸é -p ¿É¼Ç ¼±Åà ½ºÀ§Ä¡¸¦ »ç¿ëÇÕ´Ï´Ù. ¿¹¸¦µé¾î Ÿ°Ù ÄÁÆ®·Ñ·¯°¡ PIC16C74 À϶§ ´ÙÀ½°ú °°ÀÌ ÀÔ·ÂÇÕ´Ï´Ù.

PBP -p16c74 blink

3. ÄÄ¸Çµå ¶óÀÎ ¿É¼Ç

3.1 »ç¿ë¹ý
PicBasic Pro ÄÄÆÄÀÏ·¯´Â DOS ¸í·ÉÁÙ¿¡¼­ ´ÙÀ½°ú°°Àº ¸í·É Çü½Ä¿¡ ÀÇÇÏ¿© ½ÇÇàµË´Ï´Ù.

PBP Option Filename

¿É¼ÇÀ» ÁÖÁö ¾Ê°Å³ª ¿©·¯°³ÀÇ ¿É¼ÇÀ» ÁöÁ¤µÈ ÆÄÀÏ°ú °°ÀÌ PBP ¿¡ ÁÙ¼ö ÀÖ½À´Ï´Ù. ¿É¼ÇÀº (-) ¶Ç´Â ½½·¡½Ã(/)±âÈ£·Î ½ÃÀÛÇÕ´Ï´Ù. ¿É¼ÇÀÚü°¡ Ãß°¡ÀûÀÎ Á¤º¸¸¦ ¿øÇÒ°æ¿ì ¿¬¼ÓÇÏ¿© ±â¼úÇÏ¸é µË´Ï´Ù. ¿©·¯°³ÀÇ ¿É¼ÇÀÌ ±â¼úµÉ °æ¿ì °ø¹é¹®ÀÚ¿¡ ÀÇÇÏ¿© ±¸ºÐµË´Ï´Ù. ´ÙÀ½Àº ¿©·¯°³ÀÇ ¿É¼ÇÀÌ »ç¿ëµÇ´Â ¿¹ÀÔ´Ï´Ù.

PBP -p16c71 -ampasm blink

BLINK.BAS ÆÄÀÏÀ» Àо ¾î¼Àºí·¯¸¦ MPASMÀ¸·Î »ç¿ëÇÏ°í Ÿ°Ù ÇÁ·Î¼¼¼­°¡ PIC16C71 ÄÄÆÄÀÏÇÕ´Ï´Ù. "-" ±âÈ£°¡ ºÙÁö ¾ÊÀº ù¹ø° ¹®ÀÚ¿­ÀÌ ÆÄÀÏ À̸§À¸·Î °£Áֵ˴ϴÙ. È®ÀåÀÚ°¡ ¾øÀ¸¸é .BAS °¡ »ç¿ëµË´Ï´Ù. PBP´Â ÄÄÆÄÀÏ ¿¡·¯°¡ ¾øÀ¸¸é PM.EXE ¿¡¼Àºí·¯¸¦ ±âº»À¸·Î ½ÇÇàÇÕ´Ï´Ù. PBP.EXE¿Í PM.EXE´Â °°Àº µð·ºÅ丮³»¿¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù. ÄÄÆÄÀÏ·¯ ¿¡·¯°¡ ¹ß»ýÇÏ¿´°Å³ª -s ¿É¼ÇÀÌ »ç¿ëµÇ¾ú´Ù¸é ¾î¼Àºí¸®°¡ ½ÇÇàµÇÁö ¾Ê½À´Ï´Ù. PBP°¡ ¾Æ¹«·± ¿É¼ÇÀ̳ª ÆÄÀÏÀ̸§ÀÌ ÁÖ¾îÁ®ÀÖÁö ¾Ê´Ù¸é °£´ÜÇÑ µµ¿ò¸» ¸Þ½ÃÁö°¡ Ãâ·ÂµË´Ï´Ù.

3.2 ¿É¼Ç

3.2.1 ¿É¼Ç -a
PBP´Â ¾î¼Àºí¸® ¾ð¾î·Î PM°ú Microchip»çÀÇ MPASM À» ¼±ÅÃÇÏ¿© »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. MPASMÀ» »ç¿ëÇÏ·Á¸é (Microchip»ç·ÎºÎÅÍ ±¸ÀÔ)Ä¿¸àµå ¶óÀο¡¼­ -ampasm À» ÁöÁ¤ ÇÏ¿©¾ß ÇÕ´Ï´Ù.

PBP -ampasm filename

Ä¿¸àµå¶óÀο¡¼­ ¾Æ¹«·± ¾î¼Àºí·¯ÀÇ ÁöÁ¤ÀÌ ¾øÀ¸¸é PMÀÌ »ç¿ëµË´Ï´Ù. ´õ ÀÚ¼¼ÇÑ°ÍÀº ¾î¼Àºí¸® ÇÁ·Î±×·¥À» Âü°íÇϽñ⠹ٶø´Ï´Ù.

3.2.2 ¿É¼Ç -c
¾î¼Àºí¸®¾ð¾î ¼Ò½º ÆÄÀÏ ³»ºÎ¿¡ BASIC ¼Ò½ºÆÄÀÏÀ» ÁÖ¼®¹® ÇüÅ·Π»ðÀÔÇÕ´Ï´Ù. ÀÌ°ÍÀº µð¹ö±ë ÀÛ¾÷À» ½±°ÔÇÏ¿©ÁÖ¸ç PicBasic Pro ¸í·É¾î¿¡ ´ëÇÏ¿© ¾î¶² ¾î¼Àºí¸® ¾ð¾î°¡ ¸¸µé¾îÁö´Â°¡¸¦ ¹è¿ï ¼ö ÀÖ½À´Ï´Ù.

PBP -c filename

3.2.3 ¿É¼Ç -h ¶Ç´Â -?
PBP°¡ °£´ÜÇÑ µµ¿ò¸»À» Ãâ·ÂÇϵµ·Ï ÇÏ¿© ÁÝ´Ï´Ù. ¿É¼ÇÀ̳ª ÆÄÀÏ À̸§ÀÌ ÁöÁ¤µÇ¾îÀÖÁö ¾ÊÀº °æ¿ì¿¡µµ °°Àº µµ¿ò¸»ÀÌ µð½ºÇÁ·¹ÀÌ µË´Ï´Ù.

3.2.4 ¿É¼Ç -I
PicBasic Pro ¼Ò½ºÆÄÀÏ¿¡¼­ ±â¼úµÈ include ÆÄÀÏÀÇ Æнº¸¦ ÁöÁ¤ÇÕ´Ï´Ù.

3.2.5 ¿É¼Ç
PicBasic Pro °¡ »ç¿ëÇÒ ¶óÀ̺귯¸®¸¦ ¼±ÅÃÇÕ´Ï´Ù. º¸Åë À̿ɼÇÀº configuration ÆÄÀÏ¿¡ ¸¶ÀÌÅ©·Î ÄÁÆ®·Ñ·¯¿¡ µû¸¥ ¶óÀ̺귯¸®°¡ ¼³Á¤µÇ¾î ÀÖÀ¸¹Ç·Î »ç¿ëÇÒ ÇÊ¿ä°¡ ¾ø½À´Ï´Ù.

PBP -lpbpp2 filename

ÀÌ¿¹´Â PicBasic Pro °¡ PicStic2¶óÀ̺귯¸®¸¦ »ç¿ëÇÒ°ÍÀ» ¼±ÅÃÇÑ °ÍÀÔ´Ï´Ù.

3.2.5 ¿É¼Ç -o
¾î¼Àºí·¯¿¡°Ô ¿É¼ÇÀ» ³Ñ°Ü ÁÝ´Ï´Ù. Áï PBP ÀÚ½ÅÀº -oÀdz»¿ë°ú °ü°è ¾ø½À´Ï´Ù. ÄÄÆÄÀÏÈÄ¿¡ ¾î¼Àºí·¯ ÇÁ·Î±×·¥À¸·Î ¿É¼ÇÀÇ ³»¿ëÀ» ³Ñ°ÜÁÝ´Ï´Ù. ´ÙÀ½Ç¥´Â PM ¿É¼ÇÀÇ ÀϺÎÀÔ´Ï´Ù.

PM ¿É¼Ç ¼³¸í
OD ¸®½ºÆÃ, ½Éº¼Å×À̺í, ¸ÊÆÄÀÏÀÇ »ý¼º
OL ¸®½ºÆø¸ Ãâ·Â

PBP -ol filename

ÀÌ¿¹´Â ÄÄÆÄÀÏÀÌ ¼º°øÀûÀ¸·Î ¿Ï·áµÈ ÈÄ¿¡ .LST ÆÄÀÏÀÌ ¸¸µé¾î Áý´Ï´Ù. Çѹø¿¡ ´õ¸¹Àº ¿É¼ÇÀÌ ¾î¼Àºí·¯·Î Àü´ÞµÉ ¼ö ÀÖÀ¾´Ï´Ù. µð½ºÄÏ¿¡ Æ÷ÇԵǾîÀÖ´Â ¾î¼Àºí·¯¿¡ °üÇÑ Á¤º¸¸¦ È®ÀÎÇϽñ⠹ٶø´Ï´Ù.

3.2.7 ¿É¼Ç -p
PicBasic Pro ÄÄÆÄÀÏ·¯´Â Ưº°È÷ ´Ù¸¥ ÁöÁ¤ÀÌ ¾øÀ¸¸é PIC16F84¸¦ ±âÁØÀ¸·Î ÄÄÆÄÀÏÇÕ´Ï´Ù. ´Ù¸¥ ÇÁ·Î¼¼¼­¿ë Äڵ带 Ãâ·ÂÇϱ⠿øÇϸé -p ¿É¼ÇÀ» »ç¿ëÇÏ¿©¾ß ÇÕ´Ï´Ù. ¿¹¸¦µé¾î 16C74 °¡ Ÿ°ÙÇÁ·Î¼¼¼­ÀÎ °æ¿ì Ä¿¸Çµå ¶óÀο¡¼­ ´ÙÀ½°ú°°ÀÌ ÀÔ·ÂÇÕ´Ï´Ù.

PBP -p16c74 filename

3.2.8 ¿É¼Ç s
º¸Åë PicBasic Pro ÄÄÆÄÀÏ·¯´Â Á¤»óÀûÀ¸·Î ÄÄÆÄÀÏÀÌ ¿Ï·áµÈÈÄ ¾î¼Àºí¸® ÇÁ·Î±×·¥ÀÌ ½ÇÇàµË´Ï´Ù. -s ¿É¼ÇÀ» »ç¿ëÇϸé ÄÄÆÄÀÏ·¯´Â .ASM ÆÄÀϸ¸À» »ý¼ºÇÏ°í ¾î¼Àºí¸µÀ» ½ÃÀÛÇÏÁö ¾Ê½À´Ï´Ù.

3.2.9 ¿É¼Ç -v
-v ¿É¼ÇÀº ÄÄÆÄÀÏÀÌ ½ÇÇàµÇ´Âµ¿¾È ÀÚ¼¼ÇÑ Á¤º¸¸¦ Á¦°øÇϵµ·Ï ÇÕ´Ï´Ù.

4. PicBasic ProÀÇ ±âÃÊ

4.1 ¼±¾ðÀÚ
¼±¾ðÀÚ´Â °£´ÜÈ÷ Ç¥ÇöÇϸé À̸§À» ¶æÇÕ´Ï´Ù. PBP¿¡¼­ ¼±¾ðÀÚ´Â ¶óº§À̳ª º¯¼öÀ̸§ÀÌ ÇØ´çµË´Ï´Ù. ¼±¾ðÀÚ´Â ¹®ÀÚ, ¼ýÀÚ, ¾ð´õ½ºÄÚ¾î(_)ÀÇ ¹è¿­ÀÌ µÉ ¼ö ÀÖ½À´Ï´Ù. ´Ù¸¸ ¼±¾ðÀÚÀÇ Ã¹¹ø° ¹®ÀÚ°¡ ¼ýÀÚ·Î ½ÃÀÛÇÏ¸é ¾ÈµË´Ï´Ù. ¼±¾ðÀÚ´Â ¹®ÀÚÀÇ ´ë¹®ÀÚ, ¼Ò¹®ÀÚ ±¸º°À» ÇÏÁö ¾Ê½À´Ï´Ù. ±×·¯¹Ç·Î labelÀº LABEL °ú °°½À´Ï´Ù. PicBasic Pro¿¡¼­ ¶óº§ÀÇ ±æÀÌ´Â Á¦ÇÑÀÌ ¾øÁö¸¸ óÀ½ 32 ¹®ÀÚ¸¸ ÀνÄÇÕ´Ï´Ù.

4.2 ¶óÀÎ ¶óº§
GOTo ¹®À̳ª GOSUB ¹®ÀÇ À§Ä¡¸¦ ÂüÁ¶Çϱâ À§ÇÏ¿© »ç¿ëÇÕ´Ï´Ù. PicBasic Pro ÄÄÆÄÀÏ·¯´Â ¶óÀÎ¶óº§ Çü½ÄÀ» »ç¿ëÇÕ´Ï´Ù. ÃʱâÀÇ BASICÀº ¸ðµç ¶óÀο¡ ¹®¹øÈ£¸¦ »ç¿ëÇÏ¿´Áö¸¸ PicBasic Pro ÄÄÆÄÀÏ·¯´Â ¸ðµç ¶óÀο¡ ¹øÈ£¸¦ ÇÊ¿ä·Î ÇÏÁö ¾Ê½À´Ï´Ù. ¹Ý¸é¿¡ PBP´Â ¶óÀζ󺧷Π¸ðµç ¹®ÀåÀÌ ½ÃÀ۵ɼö ÀÖÀ¸¸ç ÄÝ·Ð(:) ±âÈ£¸¦ Ãß°¡ÇϸéµË´Ï´Ù.

here: Serout 0, N2400, ["Hello, World!", 13, 10]
Goto here

4.3 º¯¼ö
º¯¼ö´Â PicBasic Pro ÇÁ·Î±×·¥¿¡¼­ Àӽ÷Πµ¥ÀÌŸ¸¦ ÀúÀåÇÏ´Â °ø°£À» ÀǹÌÇÕ´Ï´Ù. º¯¼ö´Â Var Å°¿öµå¿¡ ÀÇÇÏ¿© ¼±¾ðµË´Ï´Ù. º¯¼ö´Â ºñÆ®, ¹ÙÀÌÆ®, ¿öµå°¡ µÉ¼ö ÀÖ½À´Ï´Ù. ¸ðµç º¯¼ö´Â PBP¿¡ÀÇÇÏ¿© ¸¶ÀÌÅ©·ÎÄÁÆ®·Ñ·¯ÀÇ RAM À§Ä¡¸¦ ÁöÁ¤ÇÕ´Ï´Ù. º¯¼ö¸¦ ¸¸µé±âÀ§ÇÑ Çü½ÄÀº ´ÙÀ½°ú °°½À´Ï´Ù.

Label1 Var Size {.Modifiers}

Label1Àº Å°¿öµå¸¦ Á¦¿ÜÇÑ ¸ðµç ¼±¾ðÀÚ°¡ µÉ¼ö ÀÖ½À´Ï´Ù. Size´Â BIT, BYTE ¶Ç´Â WORDÀÔ´Ï´Ù. Modifier´Â ¿É¼ÇÀÌ¸ç º¯¼ö°¡ ¾î¶»°Ô »ç¿ëµÇ´ÂÁö¿¡ ´ëÇÑ Ãß°¡ÀûÀÎ Á¤º¸¸¦ ³ªÅ¸³À´Ï´Ù.

dog var byte
cat var bit
w0 var word

PicBasic Pro´Â ¹Ì¸® Á¤ÇÏ¿©Áø »ç¿ëÀÚ º¯¼ö´Â ¾ø½À´Ï´Ù. ÆíÀÇ»ó BASIC Stamps¿Í ȣȯ¼ºÀ» À¯ÁöÇϱâ À§ÇÏ¿© "bs1defs.bas"¿Í "bs2defs.bas"¸¦ »ç¿ëÇÕ´Ï´Ù. À̵éÁß Çϳª¸¦ PicBasic Pro ÇÁ·Î±×·¥ óÀ½¿¡ Æ÷ÇÔÇÏ¸é µË´Ï´Ù.

Include "bs1defs.bas"

¶Ç´Â

Include "bs2defs.bas"

¿©±â¿¡´Â BASIC Stamps¿¡¼­ »ç¿ëÇÏ´Â Pin¿¡ ´ëÇÑ º¯¼ö°¡ Á¤ÀǵǾî ÀÖ½À´Ï´Ù. ±×·¯³ª ÀÌ·¯ÇÑ ³»Æ÷(include)ÆÄÀÏÀ» »ç¿ëÇϴ°ͺ¸´Ù ÇÁ·Î±×·¡¸Ó ÀÚ½ÅÀÇ °íÀ¯ÇÑ º¯¼öÀ̸§À» »ç¿ëÇÒ °ÍÀ» ±ÇÀåÇÕ´Ï´Ù. º¯¼öÀÇ °¹¼ö´Â PIC ¸¶ÀÌÅ©·ÎÄÁÆ®·Ñ·¯ÀÇ Á¾·ù¿Í »ç¿ëµÇ´Â º¯¼öÀÇ ¾ç¿¡ µû¶ó ´Ù¸¨´Ï´Ù. PBP´Â ÀÚ½ÅÀÌ µ¿ÀÛÇϱâÀ§ÇÏ¿© 24 ¹ÙÀÌÆ®Á¤µµÀÇ ÃÖ¼ÒÇÑÀÇRAM ¸Þ¸ð¸®¸¦ Á¡À¯ÇÕ´Ï´Ù. º¹ÀâÇÑ ¼ö½ÄÀ» ó¸®ÇÒ¶§ Àӽú¯¼ö¸¦ »ç¿ëÇϱâ À§ÇÏ¿© Ãß°¡ÀûÀ¸·Î RAM ¸Þ¸ð¸®°¡ ÇÊ¿äÇÕ´Ï´Ù.

4.4 º¯¼öÀÇ ÀçÁöÁ¤
º¯¼ö¸¦ ´Ù¸¥ À̸§À¸·Îµµ »ç¿ëÇÒ¶§ var¸¦ »ç¿ëÇÕ´Ï´Ù. º¯¼öÀÇ ³»ºÎ¸¦ ÁöÁ¤ÇÒ¶§ À¯¿ëÇÏ°Ô »ç¿ëµË´Ï´Ù.

fido var dog ' fido ´Â dogÀÇ ´Ù¸¥ À̸§ÀÔ´Ï´Ù.
b0 var w0.byte0 ' b0´Â w0ÀÇ Ã¹¹ø° ¹ÙÀÌÆ®ÀÔ´Ï´Ù.
b1 var w0.byte1 'b1 Àº w0ÀÇ µÎ¹ø° ¹ÙÀÌÆ® ÀÔ´Ï´Ù.

flea var dog.0   ' flea is bit0 of dog

÷ºÎ(Modifier) ¼³¸í
BIT0 or 0 ¹ÙÀÌÆ® ¶Ç´Â ¿öµå¿¡¼­ ºñÆ® 0 ÀÇ ÀçÁ¤ÀÇ
BIT1 or 1 ¹ÙÀÌÆ® ¶Ç´Â ¿öµå¿¡¼­ ºñÆ® 1 ÀÇ ÀçÁ¤ÀÇ
BIT2 or 0 ¹ÙÀÌÆ® ¶Ç´Â ¿öµå¿¡¼­ ºñÆ® 2 ÀÇ ÀçÁ¤ÀÇ
BIT3 or 0 ¹ÙÀÌÆ® ¶Ç´Â ¿öµå¿¡¼­ ºñÆ® 3 ÀÇ ÀçÁ¤ÀÇ
BIT4 or 0 ¹ÙÀÌÆ® ¶Ç´Â ¿öµå¿¡¼­ ºñÆ® 4 ÀÇ ÀçÁ¤ÀÇ
BIT5 or 0 ¹ÙÀÌÆ® ¶Ç´Â ¿öµå¿¡¼­ ºñÆ® 5 ÀÇ ÀçÁ¤ÀÇ
BIT6 or 0 ¹ÙÀÌÆ® ¶Ç´Â ¿öµå¿¡¼­ ºñÆ® 6 ÀÇ ÀçÁ¤ÀÇ
BIT7 or 0 ¹ÙÀÌÆ® ¶Ç´Â ¿öµå¿¡¼­ ºñÆ® 7 ÀÇ ÀçÁ¤ÀÇ
BIT8 or 0 ¿öµå¿¡¼­ ºñÆ® 8 ÀÇ ÀçÁ¤ÀÇ
BIT9 or 0 ¿öµå¿¡¼­ ºñÆ® 9 ÀÇ ÀçÁ¤ÀÇ
BIT10 or 0 ¿öµå¿¡¼­ ºñÆ® 10 ÀÇ ÀçÁ¤ÀÇ
BIT11 or 0 ¿öµå¿¡¼­ ºñÆ® 11 ÀÇ ÀçÁ¤ÀÇ
BIT12 or 0 ¿öµå¿¡¼­ ºñÆ® 12 ÀÇ ÀçÁ¤ÀÇ
BIT13 or 0 ¿öµå¿¡¼­ ºñÆ® 13 ÀÇ ÀçÁ¤ÀÇ
BIT14 or 0 ¿öµå¿¡¼­ ºñÆ® 14 ÀÇ ÀçÁ¤ÀÇ
BIT15 or 0 ¿öµå¿¡¼­ ºñÆ® 15 ÀÇ ÀçÁ¤ÀÇ
BYTE0 or LOWBYTE ¿öµå¿¡¼­ ·Î¿ì¹ÙÀÌÆ®ÀÇ ÀçÁ¤ÀÇ
BYTE1 or HIGHBYTE ¿öµå¿¡¼­ ÇÏÀ̹ÙÀÌÆ®ÀÇ ÀçÁ¤ÀÇ

4.5 ¹è¿­
¹è¿­Àº º¯¼ö¼±¾ð°ú ºñ½ÁÇÑ ¹æ¹ýÀ¸·Î ¼±¾ð ÇÕ´Ï´Ù.


Label1 var Size(¹è¿­ÀÇ °¹¼ö)

Label1Àº Å°¿öµå¸¦ Á¦¿ÜÇÑ ¼±¾ðÀÚÀÔ´Ï´Ù. Size´Â BIT, BYTE ¶Ç´Â WORD ÀÔ´Ï´Ù. ¹è¿­ÀÇ °¹¼ö´Â ¾ó¸¸Å­ À§Ä¡¸¦ Á¡À¯ÇÒ °ÍÀΰ¡¸¦ ³ªÅ¸³À´Ï´Ù.

sharks var byte[10]
fish var bit[8]

ù¹ø° ¹è¿­ÀÇ µ¥ÀÌŸ°¡ 0 À̵˴ϴÙ. fish ¹è¿­¿¡¼­ fish[0] ºÎÅÍ fish[7] ±îÁö 8 °³ÀÇ ±¸¼º¿øÀÌ µË´Ï´Ù.
¹è¿­Àº ´ÙÀ½°ú °°Àº Á¦ÇÑÀÌ ÀÖ½À´Ï´Ù.

Å©±â ¿ä¼ÒÀÇ ÃÖ´ë¼ö
BIT 128
BYTE 64
WORD 32

4.6 »ó¼ö
À̸§ÀÌ ºÎ°¡µÈ »ó¼ö´Â º¯¼ö¿Í ºñ½ÁÇÑ ¹æ¹ýÀ¸·Î ¼±¾ðµË´Ï´Ù. »ó¼öÀÚü¸¦ »ç¿ëÇϴ°ͺ¸´Ù Æí¸®ÇÕ´Ï´Ù. ¸¸ÀÏ ¼ýÀÚÀÇ º¯°æÀÌ ÇÊ¿äÇÏ´Ù¸é ¼Ò½ºÇÁ·Î±×·¥ ³»¿¡¼­¸¸ °¡´ÉÇÕ´Ï´Ù. º¯¼ö´Â »ó¼ö·Î½á ÀúÀåµÉ¼ö ¾ø½À´Ï´Ù.

Label1 CON Constant expression

»ó¼ö »ç¿ë¿¹

mice con 3
traps con mice * 1000

4.7 ½Éº¼
½Éº¼Àº º¯¼ö¿Í »ó¼ö¸¦ ÀçÁ¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù. ½Éº¼Àº º¯¼ö¸¦ Á¤ÀÇÇϴµ¥¿¡ »ç¿ëÇÒ¼ö ¾ø½À´Ï´Ù. º¯¼öÀÇ ¼±¾ðÀº var ·Î ÇÕ´Ï´Ù.

SYMBOL lion = cat ' cat was previously created using VAR
SYMBOL mouse = 1 ' Same as mouse con 1

4.8 ¼ýÀÚ »ó¼ö
PBP´Â 10 Áø¼ö, ¹ÙÀ̳ʸ®, Çí»çÀÇ 3 Á¾·ù ¼ýÀÚ »ó¼ö Çü½ÄÀ» Áö¿øÇÕ´Ï´Ù. ¹ÙÀ̳ʸ® »ó¼ö´Â Á¢µÎ¾î '%' ¸¦ »ç¿ëÇϸç Çí»çµ¥½Ã¸»Àº Á¢µÎ¾î '$'¸¦ »ç¿ëÇÕ´Ï´Ù. ½ÊÁø¼ö´Â ¾Æ¹«·± Á¢µÎ¾îµµ ÇÊ¿äÄ¡ ¾Ê½À´Ï´Ù.

100 ' Decimal Value
%100 ' Binary value for decimal 4
$100 ' Hexadecimal value for decimal 256

ÇÁ·Î±×·¥À» °£ÆíÈ÷ Çϱâ À§ÇÏ¿© ÇÑ°³ÀÇ ¹®ÀÚ°¡ ASCII °ª¿¡ ÇØ´çÇÏ´Â ¼ýÀÚ·Î º¯È¯µÉ ¼ö ÀÖ½À´Ï´Ù. ¹®ÀÚ »ó¼ö´Â ¹Ýµå½Ã ½Öµû¿ÈÇ¥¸¦ »ç¿ëÇÏ¿©¾ßÇÏ¸ç ¹Ýµå½Ã ÇÑ°³ÀÇ ASCII ¹®ÀÚ¸¸ Çã¿ëÇÕ´Ï´Ù.

"A" ' ASCII Value for decimal 65
"d" ' ASCII Value for decimal 100

4.9 ½ºÆ®¸µ »ó¼ö
PBP´Â ½ºÆ®¸µ Á¶ÀÛ±â´ÉÀ» Áö¿øÇÏÁö ¾Ê½À´Ï´Ù.±×·¯³ª ½ºÆ®¸µÀº ¾à°£ÀÇ ¸í·É¾î¿¡ ÀÇÇÏ¿© 󸮵˴ϴÙ. ½ºÆ®¸µ »ó¼ö´Â Çϳª ÀÌ»óÀÇ ¹®ÀÚ·Î ÀÌ·ç¾îÁö¸ç ¾ÕµÚ¿¡ ½Öµû¿ÈÇ¥ " ¸¦ »ç¿ëÇÕ´Ï´Ù.

"Hello" ' String (Short for "H", "e", "l", "l", "o")

½ºÆ®¸µÀº °³º°ÀûÀÎ ¹®ÀÚ°ªÀÇ ³ª¿­·Î 󸮵˴ϴÙ.

4.10 ÇÉ
PIC ÀÇ ÀÔÃâ·ÂÇÉÀº ¿©·¯°¡Áö ¹æ¹ýÀ¸·Î »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù. Æ÷Æ®ÀÇ À̸§°ú ºñÆ®ÀÇ À§Ä¡¸¦ ³ªÅ¸³»´Â ¼ýÀÚ¸¦ °°ÀÌ »ç¿ëÇÏ´Â °ÍÀÌ ÁÁÀº ¹æ¹ýÀÔ´Ï´Ù.

PORTB.1 = 1 ' Set PORTB, bit 1 to a 1

Æ÷Æ®ÇÉÀÇ »ç¿ë ¿ëµµ¸¦ ½±°Ô ±â¾ïÇϱâ À§ÇÏ¿© var ¿¡ ÀÇÇÏ¿© À̸§À» ÁöÁ¤ÇÏ´Â °ÍÀÌ °¡´ÉÇÕ´Ï´Ù.

led var PORTA.0 ' Rename PORTA.0 as led
High Led ' Set led (PORT.0) high

4.11 ÁÖ¼®¹®
PBP´Â ¹®ÀåÀÇ Ã³À½¿¡ REM Å°¿öµå·Î ½ÃÀÛÇϰųª ½Ì±Ûµû¿ÈÇ¥ (') ÀÌÈÄ¿¡ ³ªÅ¸³ª´Â ¸ðµç ¹®ÀÚ´Â ÁÖ¼®¹®À¸·Î °£ÁÖÇÕ´Ï´Ù. À̹ÝÀûÀ¸·Î ´Ù¸¥ BASIC °ú ´Þ¸® REM Àº REMark ÀÇ ¾àÀÚ°¡¾Æ´Ñ µ¶¸³ÀûÀÎ Å°¿öµå ÀÔ´Ï´Ù. µû¶ó¼­ REM ÀÚü´Â ¾ÈµÇÁö¸¸ REMÀ¸·Î ½ÃÀ۵Ǵ º¯¼ö¸¦ ¸¸µå´Â°ÍÀÌ °¡´ÉÇϹǷΠÁÖÀÇ ÇÏ¿©¾ßÇÕ´Ï´Ù. (REMÀÌ Á¤È®ÇÑ ÁÖ¼®¹®ÀÇ ½ÃÀÛÀ» ³ªÅ¸³»±â À§ÇÏ¿© REMÀÌÈÄ¿¡ ¹Ýµå½Ã °ø¹é¹®ÀÚ Çϳª°¡ ¿Àµµ·Ï ÇÕ´Ï´Ù.)

4.12 º¹ÇÕ¹®
³í¸®ÀûÀ¸·Î À¯»çÇÑ ¸í·ÉÀº ÇÑÁÙ¿¡ ±âÀÔÇϴ°ÍÀÌ Á»´õ °£°áÇÑ ÇÁ·Î±×·¥ ¹æ¹ýÀÌ µË´Ï´Ù. PBP´Â µ¿ÀÏÇÑ ¶óÀο¡¼­ ¿©·¯°³ÀÇ ¹®ÀåÀ» ÄÝ·Ð(:)±âÈ£¸¦ »ç¿ëÇÏ¿© ±¸ºÐ ÇÕ´Ï´Ù.

W2 = W0
W0 = W1
W1 = W2
´Â ´ÙÀ½°ú °°½À´Ï´Ù

W2 = W0 : W0 = W1 : W1 = W2

4.13 ¶óÀÎ È®Àå¹®ÀÚ
PBP´Â ÇÑÁÙÀÇ ÃÖ´ë Å©±â°¡ 256¹®ÀÚ°¡ µé¾î°¥ ¼ö ÀÖ½À´Ï´Ù. ÀÌ º¸´Ùµµ Å« BASIC ¹®ÀåÀÌ ÇÊ¿äÇÑ °æ¿ì ¾ð´õ½ºÄÚ¾î(_) ¸¦ »ç¿ëÇÏ¿© ¿¬ÀåÇÒ ¼ö ÀÖ½À´Ï´Ù.

Branch B0 , [label0, label1, label2,_
label3, label4]

4.14 ÆÄÀÏÀÇ ³»Æ÷(INCLUDE)
´Ù¸¥ BASIC ¼Ò½º ÇÁ·Î±×·¥À» ¸ÞÀÎ ÇÁ·Î±×·¥¿¡ Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù. Ç¥ÁØÈ­µÈ ¼­ºê·çƾ, ƯÁ¤ ¿ëµµ¿ë µ¥ÀÌŸ ¶Ç´Â º°µµ·Î º¸°üÇϱ⠿øÇÏ´Â ÆÄÀÏÀ» ³ª´©¾î¼­ °ü¸®ÇÏ´Â °ÍÀÌ °¡´ÉÇÕ´Ï´Ù.

INCLUDE "modedefs.bas"

4.15 Á¤ÀÇ (DEFINE)
Ŭ·° ¿À½Ç·¹ÀÌÅÍ ÁÖÆļö³ª LCD ÇÉ Á¤º¸¿Í °°Àº ¾î¶°ÇÑ ¿ä¼Ò´Â PBP¿¡¼­ ¼³Á¤ÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù. º¯°æÀ» ¿øÇÏ¸é ¼Ò½ºÇÁ·Î±×·¥¿¡¼­ º¯°æÇÏ¸é µË´Ï´Ù. DEFINE Àº ¹Ì¸® Á¤ÀÇµÈ ¿À½Ç·¹ÀÌÅÍ°ª, DEBUGÇÉ, ¹Ù¿ìµå·¹ÀÌÆ®, LCD ÇÉÀ§Ä¡¸¦ º¯°æÇÒ ÇÊ¿ä°¡ ÀÖÀ»¶§ »ç¿ëÇÕ´Ï´Ù. DEFINE ¿¡¼­ »ç¿ëµÇ´Â ¹®ÀÚ´Â ¹Ýµå½Ã ´ë¹®ÀÚ ÀÌ¿©¾ß ÇÕ´Ï´Ù.

DEFINE BUTTON_PAUSE 50 ' Button debounce delay in ms
DEFINE CHAR_PACING 1000 ' Serout pacing in us
DEFINE DEBUG_REG _PORTL ' Debug pin port
DEFINE DEBUG_BIT 0 ' Debug pin bit
DEFINE DEBUG_BAUD 2400 ' Debug baud rate
DEFINE DEBUG_MODE  1 ' Debug mode: 0 = True, 1 = Inverted
DEFINE DEBUG_PACING 1000 ' Debug pacing in us
DEFINE HSER_RCSTA 90h ' Set rcv reg
DEFINE HSER_TXSTA 20h ' Set transmit reg
DEFINE HSER_BAUD 2400 ' Set baud rate
DEFINE HSER_EVEN 1 ' Use only if even parity desired
DEFINE HSER_ODD 1 ' Use only if odd parity desired
DEFINE I2C_INTERNAL 1 ' Use for internal EEPROM on 16CExxx and 12CExxx
DEFINE I2C_SLOW 1 ' Use for >8mHz OSC with standard speed devices
DEFINE LCD_DREG PORTB ' LCD data port   
DEFINE LCD_DBIT 0 ' LCD data starting bit 0 or 4
DEFINE LCD_RSREG PORTB ' LCD register select
DEFINE LCD_RSBIT 4 ' LCD register select bit
DEFINE LCD_EREG PORTB ' LCD Enable port
DEFINE LCD_BITS  5 ' LCD enable bit
DEFINE LCD_LINES 2 ' number lines on LCD
DEFINE OSC 4 ' 3 4 8 10 12 16
DEFINE OSCCAL_1K 1 ' Set OSCCAL for PIC12C671
DEFINE OSCCAL_2K 1 ' Set OSCCAL for PIC12C672

4.16 ¼ö½Ä ¿¬»ê
PBP´Â ¸ðµç ¼ö½Ä ¿¬»êÀÇ °èÃþ ±¸Á¶¸¦ Áö¿øÇÕ´Ï´Ù. ÀÌ°ÍÀº ¿¬»êÀÚ°£ÀÇ ¿ì¼± ¼øÀ§°¡ ÀÖ´Ù´Â ¶æÀÔ´Ï´Ù. °öÇϱâ¿Í ³ª´©±â ¿¬»êÀº °¡»ê¿¬»ê°ú °¨»ê¿¬»ê ÀÌÀü¿¡ ½ÇÇàµË´Ï´Ù. °ýÈ£¸¦ »ç¿ëÇÏ¿© ¿¬»ê ¼ø¼­¸¦ Á¤ÇÏ´Â °Íµµ °¡´ÉÇÕ´Ï´Ù.

A = (B + C) * (D - E)

¸ðµç ¼ö½Ä ¿¬»êÀº 16 ºñÆ® ¹«ºÎÈ£ Á¤¼ö·Î 󸮵˴ϴÙ.

4.16.1 °ö¼À (Multiplication)
PBP´Â 16X16ÀÇ °ö¼ÀÀ» Áö¿øÇÕ´Ï´Ù. * ¿¬»êÀÚ´Â 32 ºñÆ® °á°úÀÇ ÇÏÀ§ 16 ºñÆ®¸¸ ¹ÝȯÇÕ´Ï´Ù. ** ´Â »óÀ§ 16 ºñÆ®¸¦ ¹ÝȯÇÕ´Ï´Ù. ÀÌ µÎ°³ÀÇ ¿¬»êÀÚ¸¦ »ç¿ëÇÏ¿© °ö¼ÀÀÇ 32 ºñÆ® °á°ú¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.

W1 = W0 * 1000 ' Multiply value in W0 by 1000 and place the result in W1
W2 = W0 ** 1000 ' Multiply W0 by 1000 and place the high order 16 bits (which may be 0) in W2

¿¬»êÀÚ */ ´Â 32 ºñÆ® °ö¼À °á°ú¿¡¼­ Áß°£ÀÇ 16 ºñÆ®°ªÀ» ¹ÝȯÇÕ´Ï´Ù.

4.16.2 ³ª´°¼À (Divide)
PBP´Â 16 x 16 ÀÇ ³ª´°¼ÀÀ» Áö¿øÇÕ´Ï´Ù. ¿¬»êÀÚ '/' ´Â 16 ºñÆ®ÀÇ °á°ú °ªÀ» ¹ÝȯÇÕ´Ï´Ù. ¿¬»êÀÚ '//'´Â ¿¬»ê°á°úÀÇ ³ª¸ÓÁö(remainder)¸¦ ¹ÝȯÇÕ´Ï´Ù.

W1 = W0 / 1000 ' Divede value in W0 by 1000 and place the result in W1
W2 = W0 // 1000 ' Divede value in W0 by 1000 and place the remainder in W2

4.16.3 ½¬ÇÁÆ® (Shift)
¿¬»êÀÚ '<<' ¿Í '>>' ´Â 1 ºÎÅÍ 15 ȸ±îÁö Shift Left ¿Í Shift Right ÀÔ´Ï´Ù. »õ·Ó°Ô ÁøÀÔÇÏ´Â ¼ö´Â 0 ÀÔ´Ï´Ù.

B0 = B0 << 3 ' Shift B0 left 3 places (same as multiply by 8)
W1 = W0 >> 1 ' Shift W0 right 1 position and places result in W1 (same as divide by 2)

4.16.4 Àý´ë°ª (ABS)
ABS´Â ¼ýÀÚÀÇ Àý´ë°ªÀ» ¹ÝȯÇÕ´Ï´Ù. ¹ÙÀÌÆ® º¯¼öÀÇ °ªÀÌ 127 º¸´Ù Å«°æ¿ì "256 - º¯¼ö°ª"À» ¹ÝȯÇÕ´Ï´Ù. ¿öµåº¯¼öÀÇ °ªÀÌ 32767 º¸´Ù Å«°æ¿ì "65536 - º¯¼ö°ª"À» ¹ÝȯÇÕ´Ï´Ù.

B1 = ABS B0

4.16.5 COS
COS´Â 8 ºñÆ®ÀÇ cosine °ªÀ» ¹ÝȯÇÕ´Ï´Ù. ¹Ýȯ°ªÀº 2 ÀÇ º¸¼ö(Áï -127 ºÎÅÍ 127)ÇüÅÂÀÔ´Ï´Ù. 4ºÐ¸é ¿þÀ̺ê Å×À̺í·ÎºÎÅÍ °ªÀ» °¡Á®¿É´Ï´Ù. 0 ºÎÅÍ 359µµ ±îÁöÀÇ ÀϹÝÀûÀΠü°è¿Í ´ÞÀÌ 0 ºÎÅÍ 255 ±îÁöÀÇ ¹ÙÀ̳ʸ® ¶óµð¾È ü°è¸¦ »ç¿ëÇÕ´Ï´Ù.

B0 = COS B0

4.16.6 µðÄÚµå ºñÆ®¼Â ÄÚµù ¼ýÀÚ(DCD )
DCD´Â ÁÖ¾îÁø ¼ýÀÚ¿¡ ÇØ´çµÇ´Â ºñÆ® À§Ä¡¸¦ ¼ÂÆ®ÇÑ ¼ýÀÚ °ªÀ» ¹ÝȯÇÕ´Ï´Ù. ³ª¸ÓÁö ºñÆ®´Â 0 ÀÔ´Ï´Ù.

B0 = DCD 2 ' Set B0 to %00000100

4.16.7 µ¥½Ã¸» µðÁöÆ®°ª(DIG)
DIG´Â ½ÊÁø¼öÀÇ ÁöÁ¤µÈ µðÁöÆ® °ªÀ» ¹ÝȯÇÕ´Ï´Ù.

B0 = 123 ' Set B0 to 123
B1 = B0 DIG 1 ' Sets B1 to 2 (digit 1 of 123)

4.16.8 ÃÖ´ëÄ¡, ÃÖ¼ÒÄ¡ (MAX, MIN)
Max¿Í Min Àº °¢°¢ µÎ¼öÁß¿¡¼­ ÃÖ´ëÄ¡¿Í ÃÖ¼ÒÄ¡¸¦ ±¸ÇÕ´Ï´Ù. ÀϹÝÀûÀ¸·Î º¯¼ö¿¡ ÀúÀåµÇ´Â °ªÀÇ Å©±â¸¦ Á¦ÇÑ ÇÒ¶§ »ç¿ëÇÕ´Ï´Ù.

B1 = B0 MAX 100 ' Set B1 to the larger of B0 and 100 (B1 will be between 100 & 255)
B1 = B0 MIN 100 ' Set B1 to the smaller of B0 and 100 (B1 can't be bigger than 100)

4.16.9 »óÀ§ºñÆ®À§Ä¡°ª ¹Ýȯ
NCD´Â º¯¼ö¿¡¼­ »óÀ§ºñÆ®(¿ÞÂÊ)ÀÇ À§Ä¡°ªÀ» ¹ÝȯÇÕ´Ï´Ù. 1 ºÎÅÍ 16 ±îÁö ¹üÀ§ÀÌ¸ç º¯¼ö°ª Áß¿¡ 1 ÀÌ Çϳªµµ ¾øÀ»°æ¿ì 0 ÀÌ ¹Ýȯ µË´Ï´Ù.

B0 = NCD %01001000 ' Sets B0 to 7

4.16.10 ¹ÝÀü(REV)
REV´Â º¯¼ö°ªÀÇ ÇÏÀ§ºñÆ®¸¦ ¹ÝÀüÇÕ´Ï´Ù ºñÆ® À§Ä¡´Â 1 ºÎÅÍ 16 ±îÁö ÀÔ´Ï´Ù.

B0 = %10101100 REV 4 ' Set B0 to %10100011

4.16.11 »çÀÎ (SIN)
SIN Àº 8 ºñÆ®ÀÇ sine °ªÀ» ¹Ýȯ ÇÕ´Ï´Ù. ¹Ýȯ°ªÀº 2 ÀǺ¸¼ö(Áï -127 ºÎÅÍ 127)ÇüÅÂÀÔ´Ï´Ù. 4ºÐ¸é ¿þÀ̺ê Å×À̺í·ÎºÎÅÍ °ªÀ» °¡Á®¿É´Ï´Ù. 0 ºÎÅÍ 359µµ ±îÁöÀÇ ÀϹÝÀûÀΠü°è¿Í ´ÞÀÌ 0 ºÎÅÍ 255 ±îÁöÀÇ ¹ÙÀ̳ʸ® ¶óµð¾È ü°è¸¦ »ç¿ëÇÕ´Ï´Ù.

B0 = COS B0

4.16.12 Æò¹æ±Ù(SQR)
SQRÀº Æò¹æ±ÙÀ» ±¸ÇسÀ´Ï´Ù. PicBasic Pro´Â Á¤¼ö¿¡ ´ëÇÑ ¿¬»êÀ» Áö¿øÇϹǷΠ°á°ú°ªÀº 8 ºñÆ® °ªÀÔ´Ï´Ù.

B0 = SQR W1 ' Sets B0 to sqare root of W1

4.16.13 ³í¸®¿¬»êÀÚ(Bitwise Operators)
Bitwise ¿¬»êÀÚ´Â BOOL ¿¬»ê ÀÛ¿ëÀ» ÇÕ´Ï´Ù. º¯¼öÀÇ ºñÆ®Áß ÀϺκÐÀ» ÃßÃâÇØ ³»°Å³ª ºñÆ®¸¦ ´õÇÏ´Â Á¶ÀÛÀÌ °¡´ÉÇÕ´Ï´Ù.

B0 = B0 & %00000001 ' Isolate bit 0 of B0
B0 = B0 | %00000001 ' Set bit 0 of B0
B0 = B0 ^ %00000001 ' Reverse state of bit 0 of B0

4.17 ºñ±³¿¬»êÀÚ(Comparision Operator)
ºñ±³ ¿¬»êÀÚ´Â IF -- THEN ¹®¿¡¼­ ¼ö½ÄÀÇ °ªÀ» ¼­·Î ºñ±³ °Ë»çÇÒ¶§ »ç¿ëµË´Ï´Ù. ´ÙÀ½°ú °°Àº ¿¬»êÀÚ¸¦ Áö¿øÇÕ´Ï´Ù.

ºñ±³¿¬»êÀÚ ¼³¸í
= or == Equal
<> or != Not Equal
< Less Than
> Greater Than
<= Less Than or Equal
>= Greater Than or Equal

4.18 ³í¸® ¿¬»êÀÚ(Logical Operators)
³í¸® ¿¬»êÀÚ´Â ºñÆ®¿¬»êÀÚ¿Í ´Ù¸¨´Ï´Ù. ³í¸® ¿¬»êÀÚ´Â °á°úÄ¡°¡ Ç×»ó True / False ¸¸ °¡Áý´Ï´Ù. ´ëºÎºÐ IF -- THEN ¹®°ú ÇѲ² »ç¿ëµÇ¸ç ´ÙÀ½°ú °°Àº ³í¸® ¿¬»êÀÚ°¡ Áö¿øµË´Ï´Ù.

³í¸®¿¬»êÀÚ ¼³¸í
AND or && Logical AND
Or or || Logical OR
XOR or ^^ Logical Exclusive OR
NOT AND Logical NAND
NOT OR Logical NOR
NOT XOR Logical XOR

If (A==big) AND (B > mean) then run

³í¸®¿¬»êÀÇ Á¤È®ÇÑ ¼ø¼­¸¦ ÁöÁ¤ÇϱâÀ§ÇÏ¿©´Â °ýÈ£¸¦ »ç¿ëÇÕ´Ï´Ù.

5. PicBasic ProÀÇ ½ÇÇ๮ ·¹ÆÛ·±½º

@ ÇÑ°³ÀÇ ¾î¼Àºí¸® ¾ð¾îÄÚµå »ðÀÔ
ASM..ENDASM ¾î¼Àºí¸® ¾ð¾î ÄÚµå ¼½¼Ç »ðÀÔ
BRANCH °è»êµÈ GOTO ( ON..GOTO ¿Í µî°¡)
BRANCHL ÆäÀÌÁö ¿µ¿ªÀ» ³Ñ´Â BRANCH (long BRANCH)
BUTTON ÁöÁ¤µÈ ÇÉ¿¡ ´ë¶ó¿© µð¹Ù¿î½º¿Í ÀÚµ¿ ¹Ýº¹ ÀÔ·Â
CALL ¾î¼Àºí¸® ¾ð¾îÀÇ È£Ãâ
CLEAR ¸ðµç º¯¼öÀÇ ÃʱâÈ­ ( º¯¼ö¸¦ 0 À¸·Î ¸¸µç´Ù)
COUNT ÇÉ¿¡ ÀԷµǴ ÆÞ¼öÀÇ ¼ö¸¦ Ä«¿îÆ®
DATA EEPROM¿¡ ÀúÀåµÇ´Â Ãʱâ»ó¼ö°ª Á¤ÀÇ
DEBUG ÁöÁ¤µÈ ÇÉ°ú ¹Ù¿ìµå·¹ÀÌÆ®¿¡ÀÇÇÑ ºñµ¿±â Á÷¿­ Ãâ·Â
DISABLE ON INTERUPT ó¸®ÀÇ ±ÝÁö
DTMFOUT ÁöÁ¤µÈ ÇÉ¿¡¼­ touch-tones »ý¼º
EEPROM ³»Àå EEPROMÀÇ ÃʱⵥÀÌŸ Á¤ÀÇ
ENABLE ON INTERRUPT ó¸®ÀÇ °¡´É»óÅ ¼³Á¤
END ÇÁ·Î±×·¥ ½ÇÇàÀ» ÁßÁöÇÏ°í ÀúÀü·Â¸ðµå »óÅ·Πµé¾î°£´Ù.
FOR..NEXT ½ÇÇ๮ÀÇ ¹Ýº¹½ÇÇà
FREQOUT ÇÉ¿¡ ´ëÇÏ¿© 2 Áß±îÁöÀÇ ÁÖÆļö Ãâ·Â
GOSUB ÁöÀåµÈ ¶óº§À§Ä¡ÀÇ ¼­ºê·çƾ È£Ãâ
GOTO ÁöÁ¤µÈ ¶óº§·Î ½ÇÇàÁ¦¾î À̵¿
HIGH ÇÉÀ» High»óÅ·Π¸¸µç´Ù.
HSERIN Çϵå¿þ¾î ºñµ¿±â ½Ã¸®¾ó ÀÔ·Â
HSEROUT Çϵå¿þ¾î ºñµ¿±â ½Ã¸®¾ó Ãâ·Â
I2CREAD I2C¼ÒÀڷκÎÅÍ µ¥ÀÌÅÍ ÀÔ·Â
I2CWRITE I2C ¼ÒÀÚ·Î µ¥ÀÌŸ Ãâ·Â
IF..THEN..ELSE Á¶°ÇºÎ ½ÇÇ๮ Á¦¾î
INPUT ÇÉÀ¸·ÎºÎÅÍ µ¥ÀÌŸ ÀÔ·Â
{LET} º¯¼ö¿¡ °ªÀ» ÁöÁ¤
LCDOUT LCD¿¡ ¹®ÀÚ Ç¥½Ã
LOOKDOWN °ªÀ» ã±âÀ§ÇÑ »ó¼öÅ×ÀÌºí °Ë»ç
LOOKDOWN2 °ªÀ» ã±âÀ§ÇÑ »ó¼ö/º¯¼ö Å×ÀÌºí °Ë»ç
LOOKUP Å×À̺í·ÎºÎÅÍ »ó¼ö°ªÀÇ °¡Á®¿À±â
LOOKUP2 Å×À̺í·ÎºÎÅÍ »ó¼ö/º¯¼ö°ª °¡Á®¿À±â
LOW ÇÉÀ» Low »óÅ·Π¸¸µç´Ù.
NAP ªÀº ÁÖ±â½Ã°£µ¿¾È ÇÁ·Î¼¼¼­ÀÇ µ¿ÀÛÀ» ¸ØÃá´Ù
ON INTERRUPT ÀÎÅÍ·´Æ® ¹ß»ý½Ã BASIC¼­ºê·çƾÀÇ ½ÇÇà
OUTPUT ÇÉÀ» Ãâ·Â¸ðµå·Î ¼³Á¤ÇÑ´Ù.
PAUSE 1mSec ´ÜÀ§ÀÇ Áö¿¬½Ã°£ ¹ß»ý
PAUSEUS 1uSec ´ÜÀ§ÀÇ Áö¿¬½Ã°£ ¹ß»ý
PEEK ·¹Áö½ºÅÍÀÇ µ¥ÀÌŸ Àбâ
POKE ·¹Áö½ºÅÍ·Î °ªÀ» ¾²±â
POT ÁöÁ¤ÇÑ ÇÉÀÇ ÀüÀ§°ª Àбâ
PULSIN ÇÉ¿¡´ëÇÑ ÆÞ½ºÆøÃøÁ¤
PULSEOUT ÇÉ¿¡ ÆÞ½º¸¦ Ãâ·ÂÇÑ´Ù.
PWM ÇÉ¿¡ ´ëÇÏ¿© ÆÞ½º¿­À» Ãâ·ÂÇÑ´Ù.
RANDOM ÀÇ»ç ·£´ý(³­¼ö)¹øÈ£ ¹ß»ý
RCTIME ÇÉÀÇ ÆÞ½ºÆøÃøÁ¤
READ ³»Àå EEPROM À¸·ÎºÎÅÍ µ¥ÀÌŸ Àбâ
RESUME ÀÎÅÍ·´Æ® 󸮰¡ ¿Ï·áµÈÈÄ¿¡ ¿¬¼ÓÇؼ­ ½ÇÇà
REVERSE ÀÔ·ÂÇÉÀ» Ãâ·ÂÇÉÀ¸·Î, Ãâ·ÂÇÉÀ» ÀÔ·ÂÇÉÀ¸·Î Àüȯ
SERIN ºñµ¿±â ½Ã¸®¾ó ÀÔ·Â(BS1 ½ºÅ¸ÀÏ)
SERIN2 ºñµ¿±â ½Ã¸®¾ó ÀÔ·Â(BS2 ½ºÅ¸ÀÏ)
SEROUT ºñµ¿±â ½Ã¸®¾ó Ãâ·Â(BS1 ½ºÅ¸ÀÏ)
SEROUT2 ºñµ¿±â ½Ã¸®¾ó Ãâ·Â(BS2 ½ºÅ¸ÀÏ)
SHIFTIN µ¿±â ½Ã¸®¾ó ÀÔ·Â
SHIFTOUT µ¿±â ½Ã¸®¾ó Ãâ·Â
SLEEP Á¤ÇØÁø ½Ã°£µ¿¾È ÆÄ¿ö ´Ù¿î¸ðµå
SOUND ÇÉ¿¡´ëÇÏ¿© È­ÀÌÆ®³ëÀÌÁî¶Ç´Â »ç¿îµå Ãâ·Â
STOP ÇÁ·Î±×·¥ ½ÇÇàÁßÁö
SWAP µÎ°³ÀÇ º¯¼ö°ª ±³È¯
TOGGLE ÇÉÀ» Åä±Û»óÅÂ(ÇöÀç Ãâ·Â°ª »óŹÝÀü) ¼³Á¤
WHILE..WEND Á¶°Ç °Ë»ç°ªÀÌ ÂüÀε¿¾ÈÀº °è¼Ó ¹Ýº¹ ½ÇÇà
WRITE EEPROM¿¡ µ¥ÀÌÅÍ ¾²±â
XIN X-10 ÀÔ·Â
XOUT X-10Ãâ·Â

¡¡

5.1. @

@ Statement

¶óÀξտ¡ @À» »ç¿ëÇϸé PBP ÇÁ·Î±×·¥¿¡ ÇÑÁÙÀÇ ¾î¼Àºí¸®¾î¸£ »ç¿ëÇÏ´Â ´ÜÃà¸í·É¾î°¡ µË´Ï´Ù. PicBASIC Pro ¹®¿¡¼­ ¾î¼Àºí¸®¾î¸¦ ÀÚÀ¯·Ó°Ô È¥¿ëÇÏ¿© »ç¿ëÇÕ´Ï´Ù.

i var   byte

rollme var byte

    FOR i = 1 to 4

@ rlf _rollme, F ; Rotate byte left once

   NEXT i

¡¡

´ÜÃàÅ° @´Â ´Ù¸¥ ÆÄÀÏÀÇ ¾î¼Àºí¸®·çƾÀ» ³»Æ÷ Çϴµ¥ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦µé¾î

@  Include "fp.asm"

@´Â ¾î¼Àºí¸® ÀνºÆ®·°¼ÇÀ» ½ÇÇàÇϱâÀü¿¡ ·¹Áö½ºÅÍÆäÀÌÁö¸¦ 0À¸·Î ¸®¼ÂÇÕ´Ï´Ù. ·¹Áö½ºÅÍ ÆäÀÌÁö´Â @¿¡ÀÇÇÏ¿© º¯°æÇÒ¼ö ¾ø½À´Ï´Ù.

´õÀÚ¼¼ÇÑ°ÍÀº ¾î¼Àºí¸® ¾ð¾î ÇÁ·Î±×·¡¹ÖÀ» Âü°íÇϽñ⠹ٶø´Ï´Ù.

¡¡

5.2. ASM..ENDASM

ASM°ú ENDASM ¸í·ÉÀº PBP¿¡°Ô ÀÌ µÎ¸í·É¾î ¾È¿¡ Àִ°ÍÀº ¾î¼Àºí¸® ¸í·É¾îÀ̸ç PicBasic Pro ¸í·É¹®À¸·Î Çؼ®ÇÏÁö ¸»°ÍÀ» Áö½ÃÇÕ´Ï´Ù. ÀÌ µÎ¸í·ÉÀº PicBasic¹®°ú ÇÔ²² ÀÚÀ¯·Ó°Ô ¾î¼Àºí¸® ¾ð¾î¸¦ È¥¿ëÇÏ¿© »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ÇÕ´Ï´Ù.

¾î¼Àºí¸®¹®ÀÇ ÃÖ´ëÅ©±â´Â 8KÀÔ´Ï´Ù. ÀÌÅ©±â´Â ½ÇÁ¦ÄÚµå, Æ÷ÇÔµÈ ÁÖ¼®¹®À» Æ÷ÇÔÇÑ ÃÖ´ëÅ©±âÀÔ´Ï´Ù. ¸¸¾à À̺¸´Ù »çÀÌÁî°¡ ´õÅ©´Ù¸é ¿©·¯°³ÀÇ ASM..ENDASMÀ» »ç¿ëÇϰųª ºÐ¸®µÈ º°µµÀÇ ÆÄÀÏÀ» ³»Æ÷ÇÏ´Â ¹æ¹ýÀ» »ç¿ëÇÕ´Ï´Ù. ASMÀº ·¹Áö½ºÅÍÆäÀÌÁö¸¦ 0À¸·Î ¸®¼ÂÇÕ´Ï´Ù. ¸¸¾à ¾î¼Àºí¸®¾ð¾î°¡ ·¹Áö½ºÅÍÆÄÀÏÀ» º¯°æÇÏ¿´´Ù¸é ENDASM ¹®ÀÌ »ç¿ëµÇ±â Àü¿¡ ·¹Áö½ºÅÍÆäÀÌÁö¸¦ 0 À¸·Î ¸®¼ÂÇÏ¿©¾ß ÇÕ´Ï´Ù.

´õÀÚ¼¼ÇÑ°ÍÀº ¾î¼Àºí¸® ¸í·É¾î¸¦ Âü°íÇϽñ⠹ٶø´Ï´Ù.

ASM

   bsf PORTA, 0 ; Set bit 0 on PORTA

  bcf PORTB, 0 ; Clear bit 0 on PORTB

ENDASM

5.3 BRANCH

BRANCH Index, [Label1 {, Label...}]

BRANCH¸í·ÉÀº »öÀκ¯¼ö¿¡ ÀÇÇÏ¿© ÇÁ·Î±×·¥ÀÌ ´Ù¸¥ À§Ä¡·Î Á¡ÇÁÇÕ´Ï´Ù. ÀÌ ¸í·ÉÀº ´Ù¸¥ BASIC ¾ð¾î¿¡¼­ On..Goto¸í·É¾î¿Í ºñ½ÁÇÕ´Ï´Ù.

Index´Â ¶óº§¸®½ºÆ®ÀÇÇϳª¸¦ ¼±ÅÃÇÕ´Ï´Ù.Index°ªÀÌ 0À̸é ù¹ø° ¶óº§·Î Á¡ÇÁÇÕ´Ï´Ù. ¸¸¾à Index°ªÀÌ 1À̸é ÇÁ·Î±×·¥Àº µÎ¹ø° ¶óº§·Î Á¡ÇÁÇÕ´Ï´Ù. ¸¸¾à Index°ªÀÌ ¶óº§ °¹¼ö¿Í µ¿ÀÏÇϰųª Å©´Ù¸é Á¡ÇÁ°¡ ½ÇÇàµÇÁö ¾Ê½À´Ï´Ù. BRANCH¸í·ÉÀº 256°³ÀÇ ¶óº§À» »ç¿ëÇÒ¼ö ÀÖ½À´Ï´Ù.

Label1Àº BRANCH ¸í·É¾î¿Í µ¿ÀÏÇÑ ÄÚµåÆäÀÌÁö¿©¾ß ÇÕ´Ï´Ù. ¸¸¾à µ¿ÀÏÇÑ ÄÚµåÆäÀÌÁöÀÎÁö È®½ÇÄ¡ ¾Ê´Ù¸é BRANCHL ¸í·ÉÀ» »ç¿ëÇÕ´Ï´Ù.

BRANCH B4, [dog, cat, fish]

'same as:

' If B4 = 0 Then dog (goto dog)

If B4 = 1 Then cat (goto cat)

If B4 = 2 Then fish (goto fish)

¡¡

¡¡

¡¡

¡¡

¡¡

¡¡

¡¡

sample-main-1.gif (2759 bytes)

¡¡