|
آشنایی با نرم افزار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 |