آشنایی با نرم افزارPICBasic

زبان اسمبلی :37 دستورالعمل
زبان سطح بالا

C
و...
BASIC

 

 

 آشنایی با دستورات

(نامگذاری خطوط برنامه)Line Labels
[here:Serout ,N2400,["Hello world!",13,10 Goto here
(متغیر‌ها) Variables
{Label VAR Size{.Modifiers
dog var byte
cat var bit
w0 var word

(اسم مستعار)Aliases
fido var dog
b0 var w0.byte0

Arrays(آرایه)
[Label VAR Size[Number of elements
[sharks var byte[10

Maximum number of elements Size
256 Bit
*96 Byte
*48 Word





mice con 3
Symbols(نشانه)


Numeric Constants(ثابتهای عددی)

%100
$100


PORTB.1 = 1
Constants(مقادیر ثابت) Label CON Constant expression SYMBOL lion = cat 100 Pins

8-15 0-7 No. PIC micro Pins
GPIO* GPIO* 8-pin
PORTA* PORTB 18-pin
PORTC PORTB 28-pin(except 14 C000)
PORTD PORTC 28-pin(14C000)
PORTC PORTB 40-pin




با استفاده از این دستور می توان از فایلهای منبع که نوشته شده است در برنامه استفاده کرد


بعضی از موارد نظیر پینهای مربوط به ارتباط با LCD از طریق دستورهای BASIC از پیش مشخص هستند که این موارد با دستورDEFINE تعیین می شوند


دستورالعمل‌های ریاضی

W1 = W0 / 1000
B0 = B0 << 3
W1 = W0 >> 1
COS & SIN
B0 = SQR W1  
INCLUDE DEFINE DEFINE LCD_DREG PORTA 'LCD data port W1 = W0 * 1000

عملگرهای مقایسه

Description Comparison operator
Equal = or = =
Not Equal <> or ! =
Less than <
Greater than >
Less than or Equal < =
Greater than or equal > =


عملگرهای منطقی

Description Logical operator
logical and And or &&
logical or OR or II
logical exclusive or Xor or ^ ^
logical nand Not And
logical nor Not Or
logical Nxor Not Xor
 

BUTTON
Pin,Down,Delay,Rate,BVar,Action,Label
Pin
شماره پینی كه سویچ به آن وصل است Down
وضعیت پین وقتی سویچ فشار داده می شود Delay
عددی بین 0 و 256 كه تعداد سیكل تكرار را قبل از خواندن مجدد چك می كند

Rate
نرخ تكرار





COUNT Pin,Period,Var
این دستور تعداد پالسهای رخ داده شده در pin را در مدت زمان period كه بر حسب میلی ثانیه می باشد در متغیرvar ذخیره می كند


این دستور اجرای برنامه را متوقف می كند  
BUTTON BVar متغیری به صورت بایت كه برای شمارش مورد نیاز است Action مقدار 0 یا 1 و نمایشگر حالت سویچ برای عملكردن است Lable مكانی از نرم افزار كه در صورت فشردن دكمه باید اجرا شود COUNT END

FOR..NEXT
{FOR Count = Start TO End {STEP {-} Inc
{Body}

{NEXT {Count
مثال

Toggle PORB.1
Pause 500
NEXT i

GOSUB
GOSUB Label
این دستور باعث اجرای یك زیر برنامه می شود كه lable مشخص می كند البته مكان فعلی ذخیره می شود و بعد از پایان اجرای زیربرنامه با دستور return عمل بازگشت صورت می گیرد


GOTO Label
این دستور اجرای برنامه را از جایی كه lableمشخص می كند پی می گیرد


HIGH Pin
رویPin مشخص شده مقدار 1 دیجیتال بارگذاری می كند

رویPin مشخص شده مقدار 0 دیجیتال بارگذاری می كند  
FOR i = 1 TO 10 GOTO HIGH & low LOW Pin

IF..THEN
IF Comp {AND/OR Comp...} THEN Label
IF Comp {AND/OR Comp...} THEN
...Statement
ELSE
...Statement
ENDIF

If Pin0 = 0 Then pushed
If B0 >= 40 Then old
If (B0 = 10) AND (B1 = 20) Then loop
If B0 <> 10 Then
B0 = B0 + 1
B1 = B1 - 1
Endif

IF … THEN… ELSE
If B0 = 20 Then
led = 1
Else
led = 0
Endif  

INPUT &OUTPUT
INPUT Pin
OUTPUT Pin
پین مشخص شده را بصورت ورودی یا خروجی تعریف می كند

{...LCDOUT Item{,Item
"LCDOUT $FE, 1, "Hello
hello نمایش كلمه  
LCDOUT

LCDOUT



PAUSE & PAUSEUS
PAUSE Period
در اجرای برنامه وقفه ای به مدت زمان مشخص شده درPeriod كه بر حسب میلی ثانیه می باشد ایجاد می كند


در اجرای برنامه وقفه ای به مدت زمان مشخص شده درPeriod كه بر حسب میكرو ثانیه می باشد ایجاد می كند  
PAUSEUS

POT
POT Pin,Scale,Var
این دستور برای اندازه گیری مقدار پتانسیومتر متصل به پین مشخص شده به كار می رود
مقدار scale برای تنظیم rc مورد نیاز بكار می رود
این عدد باید برای rc كوچك مقداربالا(256) و برای rc بزرگ مقدار پایین داشته باشد


...SERIN Pin,Mode,{Timeout,Label,}{[Qual...],}{Item
[{...SEROUT Pin,Mode,[Item{,Item  
SERIN&SEROUT



  حالتهای کاری ارسال سریال

State Baude Rate Mode No. Mode
True 2400 0 T2400
1200 1 T1200
9600 2 T9600
300 3 T300
Inverted 2400 4 N2400
1200 5 N1200
9600 6 N9600
300 7 N300
 

SERIN&SEROUT
SERIN 1,N2400,[“A”],B0
[SEROUT 0,N2400,[#B0,10
WHILE..WEND
WHILE Condition
...Statement
WEND
i = 1
WHILE i <= 10
Serout 0,N2400,[”No:”,#i,13,10] i = i +1
WEND  



  مدار برنامه ریز

 


  برنامه LED چشمک زن

COUNTER VAR BYTE
BEGIN
COUNTER =0
PORTB=0
HOME
BUTTON 9,0,255,1,COUNTER,1,START
GOTO HOME

START
WHILE PORTA.1=0
lOW PORtB.4
high poRtB.5
lOW poRtB.6
high poRtB.7
pause 2000

high PORtB.4
low PORtB.5
high PORtB.6
low PORtB.7

pause 2000
WEND
goto BEGIN
END