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)
¡¡
¡¡
¡¡
¡¡
¡¡
¡¡
¡¡
¡¡