سفارش تبلیغ
صبا ویژن

برخی از دستورات مهم در برنامه نویسی میکروکنترلرهای ای وی آر

 

دستور HEX 
این دستور مقدار X را به مقدار هگزادسیمال آن تبدیل کرده و در متغیر VAR قرار می دهد.

(VAR=HEX(X

به مثال زیر توجه کنید:

Dim A As Byte , B As String * 5
A = 95
(B = Hex(a
Lcd B "lcd 5F
End

دستور HEXVAL 

این دستور X را که یک داده هگزادسیمال است به مقدار دسیمال آن تبدیل کرده و در متغیر VAR قرار می دهد.

(VAR=HEXVAL(X

به مثال زیر توجه کنید:

Dim A As Byte , B As String * 5
B = 5f
(A = Hexval(b
Lcd A "lcd 95
End

دستور STRING 
با این دستور می توان کد اسکی x را به تعداد n به رشته تبدیل و در متغیر VAR قرار داد.

(VAR=STRING(N , X

به مثال زیر توجه کنید:

Dim A As String * 20
(A = String(3 , 66
Lcd A "lcd BBB
End

لازمه که یه کم در مورد کد اسکی( ASCI ) براتون توضیح بدم. ببینید دوستان برای اینکه هر حرف،عدد یا کاراکتری را روی LCD نمایش دهیم باید کد اسکی آن را به پایه های 7 تا 14 LCD اعمال کنیم.
جدول کد اسکی حروف و اعداد


دستور ASC 
این دستور اولین کاراکتر رشته STRING را به مقدار اسکی آن تبدیل کرده و در متغیر VAR قرار می دهد.

(VAR=ASC(STRING

به مثال زیر توجه کنید:

Dim A As Byte , B As String * 5
"B = "LOVE
(A = Asc(b
Lcd A "lcd 76
End


دستور STR 
این دستور متغیر عددی X را به رشته تبدیل کرده و در متغیر VAR قرار می دهد.

(VAR=STR(X

به مثال زیر توجه کنید:

Dim A As Byte , B As String * 5
A = 156
(B = Str(a
"Lcd B "lcd"156
End

دستور VAL 

این دستور رشته X را به متغیر عددی تبدیل کرده و در متغیر VAR قرار می دهد.[این دستور دقیقاً عکس دستور STR عمل می کند.]

(VAR=VAL(X

به مثال زیر توجه کنید:

Dim A As Byte , B As String * 5
"B = "156
(A = Val(b
Lcd A "lcd 156
End

دستور IF 
در این دستور زمانی که شرط عبارت expression درست شود و دارای ارزش شد دستورالعمل statement اجرا می شود که این دستورالعمل می تواند موراد مختلفی از جمله یک یا صفر کردن یک پایه از میکرو باشد.

IF Expression THEN statement

که همچنین می توان این دستور را به شکل زیر نیز به کار برد که در آنصورت اگر شرط عبارت Epression1درست شد دستورالعمل statement1 اجرا خواهد شد و در صورتی که شرط عبارت Expression1 درست نبود ولی شرط عبارت Expression2 درست بود دستورالعمل statement2 اجرا خواهد شد و در غیر اینصورت یعنی موقعی که شرط هیچکدام از دو عبارت Expression1 و Expression2 درست نباشد دستورالعمل statement 3 اجرا خواهد شد.

IF Expression1 THEN
statement1
Elseif Expression2 THEN
statement2
Else
statement3
End if

به مثال زیر توجه فرمایید:

Config Pinc.0 = Input
Config Pinc.1 = Input
Config Pinc.2 = Output
Config Pinc.3 = Output
Config Pinc.4 = Output
A = Pinc.0
B = Pinc.1
C Alias Portc.2
D Alias Portc.3
E Alias Portc.4
If A = 1 Then
Set C
Elseif A = 0 Then
Set D
Elseif B = 1 Then
Set E
Else
Reset E
End If
End


در مثال بالا ابتدا توسط دستور CONFIG PORTX=INPUT/OUTPUT جهت پایه های پورت C را تعیین کردیم سپس برای هرکدام یک اسم مستعار در نظر گرفتیم و بعد با استفاده از دستور IF وضعیت پایه های ورودی را چک کردیم که در صورت درست شدن هریک از شرط ها دستورالعمل مربوطه اجرا خواهد شد.

حلقه تکرار DO - LOOP 

این دستور یک حلقه تکرار بی نهایت است که وقتی درون آن شرط ها و یا دستوراتی را قرار می دهیم درستی این شرط ها دائماً چک می شود و دستورالعمل های مربوطه انجام می شود و اگر دستوراتی را در این حلقه قرار دهیم این دستورات دائماً تکرار می شوند مانند وقتی که می خواهیم برای روشنایی ترتیبی LED از دستور ROTATE استفاده کنیم این دستور دائماً تکرار شده و به این ترتیب LED ها پشت سر هم روشن و خاموش می شوند.البته می توان با استفاده از گزینه اختیاری UNTIL expression به ازای عبارت expression از درون این حلقه تکرار خارج شد. فرم کلی این دستور به صورت زیر است:

DO
statement 
[LOOP [UNTIL expression

به مثال زیر توجه کنید:

"regfile = "m32def.dat$
$crystal = 8000000
Config Port A = Output
A Alias Porta
A = 128
Do
Rotate A , Left
Loop
End


در واقع ما با استفاده از برنامه بالا یک چشمک زن 8 کاناله ساخته ایم که شما می توانید آن را در محیط bascom نوشته و پس از کامپایل کردن آن را روی آی سی مورد نظر پروگرم(برنامه ریزی)کنید.

تابع POWER 
این دستور مقدار param1 را به توان مقدار param2 رسانده و در متغیر VAR قرار می دهد.

(VAR=POWER(param1 , param2

به مثال زیر توجه کنید:

Dim A As Byte , B As Byte , C As Byte
A = 2
B = 4
(C = Power(a , B
Lcd C "lcd 16
End

تابع sqr 
این دستور مقدار ریشه دوم یا همان جذر مقدار X را گرفته و در متغیر VAR قرار می دهد.

(VAR=sqr(X

به مثال زیر توجه کنید:

Dim A As Byte , B As Byte
A = 36
(B = Sqr(a
Lcd B "lcd 6
End

تابع LOG 
این دستور مقدار لگاریتم SOURCE را که باید از نوع SINGLE معرفی شده باشد گرفته و در متغیر VAR که این متغیر نیز از نوع داده SINGLE است قرار می دهد.

(VAR=LOG(source

به مثال زیر توجه کنید:

Dim A As Single , B As Single
A = 100
(B = Log(a
Lcd B "lcd 2
End

تابع ROUND 
این دستور مقدار X از نوع داده SINGLE را روند کرده و در متغیر VAR از نوع داده SINGLE قرار می دهد.

(VAR=ROUND(X

به مثال زیر توجه کنید:

Dim A As Single , B As Single
A = 2.7
(B = Round(a
Lcd B "LCD 3
End


تابع RND 

این دستور یک عدد تصادفی بین 0 و X بدست می آورد و در متغیر VAR قرار می دهد که X یک عدد مثبت است.

(VAR=RND(X

به مثال زیر توجه کنید:

Dim A As Byte
(A = Rnd(213
Lcd A "lcd 67
End


دستور SET 
توسط این دستور می توان مقدار یک بیت را یک کرد. که BIT می تواند یک پایه از یک پورت باشد.

SET BIT

به مثال زیر توجه کنید:

SET PORTA.5

دستور RESET 
توسط این دستور می توان یک بیت را صفر کرد.

دستور TOGGLE 
توسط این دستور می توان مقدار منطقی یک بیت را معکوس کرد یعنی اگر بیت صفر است یک می شود و اگر یک است صفر می شود.

دستور BITWAIT 
با استفاده از این دستور می توان اجرای برنامه را تا زمانی که بیت X صفر یا یک شود متوقف کرد و در صورت درست شدن شرط اجرای برنامه از خط بعد ادامه می یابد.

BITWAIT X , SET / RESET

به مثال زیر توجه کنید:

BITWAIT PORTC.2 , RESET
SET PORTC.4

تا زمانی که پایه 3 پورت C (پایه صفر که همان پایه یک حقیقی میکرو ماست هم حساب شده) صفر شود صبر می کند و پس از صفر شدن این پایه، پایه 5 پورت C یک می شود.

خوب فکر می کنم برای این پست کافی باشه امیدوارم که استفاده لازم رو ازشون ببرید اگه مشکلی داشتید حتماً تو نظرات بنویسید.

فعلاً BYE 

+ نوشته شده در چهارشنبه دهم مرداد 1386ساعت 15:56 توسط