• ¡Welcome to Square Theme!
  • This news are in header template.
  • Please ignore this message.
مهمان عزیز خوش‌آمدید. ورود عضــویت


امتیاز موضوع:
  • 17 رای - 2.12 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
Title: آموزش کامل بسکام به همراه مثال
حالت خطی
#9
Log10 :
اين دستور لگاريتم Source که از نوع Single يا Double ميباشد را در مبناي 10 محاسبه کرده ونتيجه را در متغيير Target که از نوع جنس Single يا Double ميباشد مي باشد قرار مي دهد.
Target = Log10 (Source)
مانند :
$regfile = "m16def.dat"
$crystal = 1000000
Config Lcd = 16 * 2 : Cls
Config Lcdpin = Pin , Db4 = PORTD.0 , Db5 = PORTD.1 , Db6 = PORTD.2_
, Db7 = PORTD.3 , E = PORTD.4 , Rs = PORTD.5
Dim X As Single
X = Log10(100)
Locate 1 , 1
Lcd X 'X = 2
X = Log10(100000)
Locate 2 , 1
Lcd X 'X = 5
End

Rnd :
اين دستور يک عدد را تصادفي برمي گرداند .
Var= Rnd (Limit)
عدد تصادفي بين 0 و 1 - Limit بدست آمده و در متغير Var قرار مي گيرد . با هربار استفاده از اين دستور عدد مثبت تصادفي ديگري بدست خواهد آمد .
مانند :
$regfile = "m16def.dat"
$crystal = 1000000
Config Lcd = 16 * 2 : Cls
Config Lcdpin = Pin , Db4 = PORTD.0 , Db5 = PORTD.1 , Db6 = PORTD.2_
, Db7 = PORTD.3 , E = PORTD.4 , Rs = PORTD.5
Dim X As Byte
Do
X = Rnd(100)
Lcd X 'get random number (0-99)
Waitms 500
Loop
End

Frac:
اين دستور مقدار اعشاري يک متغير از جنس Single را جدا مي کند و در يک متغير Single ديگر (Var) مي ريزد .
Var = frac (Single)
مانند :
$regfile = "m16def.dat"
$crystal = 1000000
Config Lcd = 16 * 2 : Cls
Config Lcdpin = Pin , Db4 = PORTD.0 , Db5 = PORTD.1 , Db6 = PORTD.2_
, Db7 = PORTD.3 , E = PORTD.4 , Rs = PORTD.5
Dim X As Single , A As Single
X = 57.35456
Locate 1 , 1
Lcd Frac(x) 'X = 0.35456
X = 123.000456789
A = Frac(x)
Locate 2 , 1
Lcd A 'A = 0.000456789
End

Int:
اين دستور مقدار صحيح يک متغير از جنسSingle يا Doubleرا محاسبه مي کند و حاصل را در متغير Var قرار مي دهد ( محدوده متغير Var بايد با محدوده جواب مناسب باشد) .
Var = Int (Source)
مانند :
$regfile = "m16def.dat"
$crystal = 1000000
Config Lcd = 16 * 2 : Cls
Config Lcdpin = Pin , Db4 = PORTD.0 , Db5 = PORTD.1 , Db6 = PORTD.2_
, Db7 = PORTD.3 , E = PORTD.4 , Rs = PORTD.5
Dim X As Single , A As Byte
Cls
X = 57.35456
Locate 1 , 1
Lcd Int(x) 'X =57
X = X * 3
A = Int(x)
Locate 2 , 1
Lcd A 'A = 172
End

Sin و Cos و Tan :
اين دستور سينوس يا کسينوس يا تانژانت ثابت يا متغير Source را در متغير Var از نوع Single قرار مي دهد .
Var = Sin | Cos | Tan (Source)
تمام دستورات مثلثاتي با راديان کار مي کنند و ورودي اين دستور بايستي راديان باشد .
مثال :
$regfile = "m16def.dat"
$crystal = 1000000
Config Lcd = 16 * 2 : Cls
Config Lcdpin = Pin , Db4 = PORTD.0 , Db5 = PORTD.1 , Db6 = PORTD.2_
, Db7 = PORTD.3 , E = PORTD.4 , Rs = PORTD.5
Dim X As Single
X = Cos(3.14159)
Locate 1 , 1
Lcd Fusing(x , "#.#")
X = Sin(3.14159)
Locate 1 , 9
Lcd Fusing(x , "#.#")
X = Tan(3.14159)
Locate 2 , 1
Lcd Fusing(x , "#.#")
X = cos(0.78539)
Locate 2 , 9
Lcd Fusing(x , "#.#")
End

SinH و CosH و TanH :
اين دستور کسينوس هايپربوليک يا سينوس هايپربوليک يا تانژانت هايپربوليک ثابت يا متغير Source را در متغير Var از نوع Single قرار مي دهد .
Var = Cosh | Sinh | Tanh (Source)
تمام دستورات مثلثاتي با راديان کار مي کنند و ورودي اين دستور بايستي راديان باشد .
مانند :
$regfile = "m16def.dat"
$crystal = 1000000
Config Lcd = 16 * 2 : Cls
Config Lcdpin = Pin , Db4 = PORTD.0 , Db5 = PORTD.1 , Db6 = PORTD.2_
, Db7 = PORTD.3 , E = PORTD.4 , Rs = PORTD.5
Dim X As Single
Dim Q As Single
Q = .512
X = Cosh(q)
Locate 1 , 1
Lcd Fusing(x , "#.#####")
X = Sinh(q)
Locate 1 , 10
Lcd Fusing(x , "#.#####")
X = Tanh(q)
Locate 2 , 1
Lcd Fusing(x , "#.#####")
End

Asin و Acos و Atan :
اين دستور آرک سينوس يا آرک کسينوس يا آرک تانژانت ثابت يا متغير Source را در متغير Var از نوع Single قرار مي دهد .
Var = Asin | Acos | Atn (source)
تمام دستورات مثلثاتي با راديان کار مي کنند و ورودي اين دستور بايستي راديان باشد .
مانند :
$regfile = "m16def.dat"
$crystal = 1000000
Config Lcd = 16 * 2 : Cls
Config Lcdpin = Pin , Db4 = PORTD.0 , Db5 = PORTD.1 , Db6 = PORTD.2_
, Db7 = PORTD.3 , E = PORTD.4 , Rs = PORTD.5
Dim X As Single
Dim Q As Single
Q = .512
X = Acos(q)
Locate 1 , 1 : Lcd Fusing(x , "#.#####")
X = Asin(q)
Locate 1 , 10 : Lcd Fusing(x , "#.#####")
X = Atn(q)
Locate 2 , 1 : Lcd Fusing(x , "#.#####")
Q = -1 : X = Acos(q)
Locate 2 , 10 : Lcd Fusing(x , "#.#####")
End

: Rad2deg
براي تبديل راديان به درجه از اين دستوراستفاده مي شود .
Var = Rad2deg (Single)
راديان Single به درجه تبديل مي شود و در متغير Var از نوع داده Single قرار مي گيرد .

Deg2rad :
براي تبديل درجه به راديان از اين دستوراستفاده مي شود .
Var = Deg2rad (single)
زاويه Single به راديان تبديل مي شود و در متغير Var از نوع داده Single قرار مي گيرد .
مانند :
$regfile = "m16def.dat"
$crystal = 1000000
Config Lcd = 16 * 2 : Cls
Config Lcdpin = Pin , Db4 = PORTD.0 , Db5 = PORTD.1 , Db6 = PORTD.2_
, Db7 = PORTD.3 , E = PORTD.4 , Rs = PORTD.5
Dim X As Single
Dim Q As Single
Q = 180
X = Deg2rad(q)
Locate 1 , 1
Lcd X
Q = Rad2deg(x)
Locate 2 , 1
Lcd Q
End

: Round
متغير يا داده X از نوع Single روند شده و در متغير Var از نوع داده Single قرار مي گيرد .
VAR = Round (X)
مثال :
$regfile = "m16def.dat"
$crystal = 1000000
Config Lcd = 16 * 2 : Cls
Config Lcdpin = Pin , Db4 = PORTD.0 , Db5 = PORTD.1 , Db6 = PORTD.2_
, Db7 = PORTD.3 , E = PORTD.4 , Rs = PORTD.5
Dim X As Single
Dim Q As Single
X = 2.8
Q = 5.2
Locate 1 , 1
Lcd Round(x)
Locate 2 , 1
Lcd Round(q)
End

Max و Min:
با اين دو دستور مي توان کمترين و بيشتر مقدار يک متغير آرايه اي از جنس Word يا Byte را بدست آورد ، اين دو دستور به فرم کلي زير هستند :
Var1 = Min (Var2)
Var1 = Max (Var2)
Var2 : نام متغير آرايه است و Var يک متغير ديگري است که نتيجه در آن ريخته مي شود .
مانند :
$regfile = "m16def.dat"
$crystal = 1000000
Config Lcd = 16 * 2 : Cls
Config Lcdpin = Pin , Db4 = PORTD.0 , Db5 = PORTD.1 , Db6 = PORTD.2_
, Db7 = PORTD.3 , E = PORTD.4 , Rs = PORTD.5
Dim A(10) As Byte , B(3) As Byte , C As Byte
A(5) = 10 : B(1) = 100 : B(2) = 25 : B(3) = 6
Do
Locate 1 , 1 : Lcd Max(a(1))
C = Min(b(1))
Locate 2 , 1 : Lcd C
Loop
End

FIX :
با اين دستور کوچکترين عدد صحيح نزديک به داده اعشاري از نوع بدست ميايد ( جزء صحيح) . اين دستور به فرم کلي زير است :
Var = Fix (X)
X ميتواند يک عدد اعشاري يا يک داده از نوع Single باشد ، با اجراي دستور کوچکترين عدد نزديک به داده در متغير Var ريخته مي شود ، مثلا کوچکترين عدد صحيح نزديک به 2/2 عدد 2 است .
مثال:
$regfile = "m16def.dat"
$crystal = 1000000
Config Lcd = 16 * 2 : Cls
Config Lcdpin = Pin , Db4 = PORTD.0 , Db5 = PORTD.1 , Db6 = PORTD.2_
, Db7 = PORTD.3 , E = PORTD.4 , Rs = PORTD.5
Dim A As Single , S As Single
A = -45.56
S = Fix(25.9)
A = Fix(a)
Locate 1 , 1: Lcd S
Locate 2 , 1: Lcd A
End

توابع تبديل کدها و متغيير ها به يکديگر
Hex :
اين دستور يک داده از نوع Byte , Integer , Word , Long را به مقدار هگزادسيمال تبديل مي کند .
Var = Hex (X)
مقدار HEX متغير يا ثابت X در متغير VAR جاي مي گيرد .

: Bin
اين دستور يک داده از نوع BYTE,INTEGER , WORD , LONG را به مقدار باينري تبديل مي کند .
Var = Bin (X)
مقدار باينري متغير يا ثابت X در متغير Var جاي مي گيرد .

Str :
با اين دستور مي توان يک متغير عددي ( X) را به رشته (Var) تبديل کرد .
Var = Str (X)

Val :
با اين دستور مي توان يک رشته (S) را به متغير عددي (Var) تبديل کرد .
Var = Val (S)

Hexval :
اين دستور يک داده هگزدسيمال را به مقدار عددي تبديل مي کند .
Var = Hexval (X)
مقدار عددي داده هگزدسيمال X که مي تواند Long , Word , Integer , Byte باشد در متغير Var جاي مي گيرد .

Binval :
اين دستور يک داده باينري را به مقدار عددي تبديل مي کند .
Var = Binval (X)
مقدار عددي داده باينري X که مي تواند Long , Word , Integer , Byte باشد در متغير Var جاي مي گيرد .

Bcdو Makebcd :
اين دستور متغير يا ثابت var2 را تبديل به مقدار BCD اش مي کند و در متغير var1 جاي مي دهد .
Var1 = Makebcd (Var2)
مثال :

Print Bcd(var)
lcd bcd( var)
با دو دستور بالا ميتوان مقدار BCD يک متغيير را مستقيما روي Lcd نمايش داد يا آن را به پورت سريال فرستاد (کار پورت سريال در بخش هاي بعدي امده است)

Makedec :
براي تبديل يک داده BCD نوع Integer , Word , Byte به مقدار Decimal از اين دستور استفاده مي شود . مقدار دسيمال متغير يا ثابت VAR2 در متغير VAR1 جاي مي گيرد .
Var1 = Makedec (Var2)

Makeint :
اين دستور دو بايت را به هم متصل مي کند و يک داده نوع Word يا Integer مي سازد که Lsb بايت کم ارزش و Msb بايت پر ارزش متغير دو بايتي Varn را تشکيل مي دهد .
Varn = Makeint (Lsb , Msb)
یعنی :
Varn = (256 * Msb) + Lsb
String :
اين دستور کد اسکي M را با تعداد تکرار N تبديل به رشته کرده و در متغير Var قرار مي دهد
Var = String (M , N)
در صورت قرار دادن M =0 يک رشته بطول 255 کاراکتر توليد مي شود و قرار دادن n = 0 قابل قبول نيست .

Bin2grey :
متغير Var2 که مي تواند داده اي از نوع Word , Integer , Byte , Long باشد به کد گري تبديل شده و در متغير Var1 قرار مي گيرد .
Var1 = Bin2grey (Var2)

Grey2bin :
کد گري Var2 به مقدار باينري تبديل شده و در متغير Var1 که مي تواند داده اي از نوعWord , Integer , Byte , Long باشد قرار مي گيرد .
Var1 = Grey2bin (Var2)
مثال براي موارد بالا :
$regfile = "m16def.dat"
$crystal = 12000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = PORTD.0 , Db5 = PORTD.1 , Db6 = PORTD.2_
, Db7 = PORTD.3 , E = PORTD.4 , Rs = PORTD.5
Dim A As Byte
Dim S As String * 10
S = "ABC"
A = Asc(s)
Locate 1 , 1
Lcd A
S = Hex(a)
Locate 1 , 8
Lcd S
A = Hexval(a)
Locate 2 , 1
Lcd S
A = 50
A = Makebcd(a)
Locate 2 , 8
Lcd A
End
[عکس: bnk.png]

برای ورود بر روی تصویر کلیک کنید.
www.avrprj.ir
 
پاسخ
  


پیام‌های این موضوع
RE: آموزش کامل بسکام به همراه مثال - توسط a.mehran - 09-26-2014، 04:19 PM

موضوعات مشابه ...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  آموزش اصطلاحات میکرو AVR a.mehran 1 4,820 09-26-2014، 04:45 PM
آخرین ارسال: a.mehran
  مدار فاصله سنج اولتراسونیک با بسکام a.mehran 2 4,075 09-02-2014، 07:56 AM
آخرین ارسال: a.mehran
  pwm با بسکام a.mehran 0 2,707 09-01-2014، 10:02 PM
آخرین ارسال: a.mehran
  راه اندازی سون سگمنت با بسکام a.mehran 0 2,781 09-01-2014، 09:56 PM
آخرین ارسال: a.mehran

پرش به انجمن:


Browsing: 1 مهمان