آشنايي با نرم افزارPICBasic
زبان اسمبلي :37 دستورالعمل
زبان سطح بالا
BASIC
C
و...
آشنايي با دستورات
(نامگذاري خطوط برنامه)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
Constants(مقادير ثابت)
Label CON Constant expression
mice con 3
Symbols(نشانه)
SYMBOL lion = cat
Numeric Constants(ثابتهاي عددي)
100
%100
$100
Pins
PORTB.1 = 1
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
INCLUDE
با استفاده از اين دستور مي توان از فايلهاي منبع که نوشته شده است در برنامه استفاده کرد
DEFINE
بعضي از موارد نظير پينهاي مربوط به ارتباط با LCD از طريق دستورهاي BASIC از پيش مشخص هستند که اين موارد با دستورDEFINE تعيين مي شوند
DEFINE LCD_DREG PORTA 'LCD data port
دستورالعملهاي رياضي
W1 = W0 * 1000
W1 = W0 / 1000
B0 = B0 << 3
W1 = W0 >> 1
COS & SIN
B0 = SQR W1
عملگرهاي مقايسه
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 كه تعداد سيكل تكرار را قبل از خواندن مجدد چك مي كند
BUTTON
Rate
نرخ تكرار
BVar متغيري به صورت بايت كه براي شمارش مورد نياز است
Action مقدار 0 يا 1 و نمايشگر حالت سويچ براي عملكردن است
Lable مكاني از نرم افزار كه در صورت فشردن دكمه بايد اجرا شود
COUNT
COUNT Pin,Period,Var
اين دستور تعداد پالسهاي رخ داده شده در pin را در مدت زمان period كه بر حسب ميلي ثانيه مي باشد در متغيرvar ذخيره مي كند
END
اين دستور اجراي برنامه را متوقف مي كند
FOR..NEXT
{FOR Count = Start TO End {STEP {-} Inc
{Body}
{NEXT {Count
مثال
FOR i = 1 TO 10
Toggle PORB.1
Pause 500
NEXT i
GOSUB
GOSUB Label
اين دستور باعث اجراي يك زير برنامه مي شود كه lable مشخص مي كند البته مكان فعلي ذخيره مي شود و بعد از پايان اجراي زيربرنامه با دستور return عمل بازگشت صورت مي گيرد
GOTO
GOTO Label
اين دستور اجراي برنامه را از جايي كه lableمشخص مي كند پي مي گيرد
HIGH & low
HIGH Pin
رويPin مشخص شده مقدار 1 ديجيتال بارگذاري مي كند
LOW Pin
رويPin مشخص شده مقدار 0 ديجيتال بارگذاري مي كند
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
{...LCDOUT Item{,Item
"LCDOUT $FE, 1, "Hello
hello نمايش كلمه
LCDOUT
PAUSE & PAUSEUS
PAUSE Period
در اجراي برنامه وقفه اي به مدت زمان مشخص شده درPeriod كه بر حسب ميلي ثانيه مي باشد ايجاد مي كند
PAUSEUS
در اجراي برنامه وقفه اي به مدت زمان مشخص شده درPeriod كه بر حسب ميكرو ثانيه مي باشد ايجاد مي كند
POT
POT Pin,Scale,Var
اين دستور براي اندازه گيري مقدار پتانسيومتر متصل به پين مشخص شده به كار مي رود
مقدار scale براي تنظيم rc مورد نياز بكار مي رود
اين عدد بايد براي rc كوچك مقداربالا(256) و براي rc بزرگ مقدار پايين داشته باشد
SERIN&SEROUT
...SERIN Pin,Mode,{Timeout,Label,}{[Qual...],}{Item
[{...SEROUT Pin,Mode,[Item{,Item
حالتهاي کاري ارسال سريال
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
علاقه مندی ها (بوک مارک ها)