تبلیغات
میکروکنترلر های AVR و ARM - اموزش برنامه نویسی میکروکنترلر های avr با بسکام

اموزش برنامه نویسی میکروکنترلر های avr با بسکام

نویسنده : m sh پنجشنبه 20 فروردین 1394 06:33 ب.ظ  •    ارسال شده در: میکروکنترلر های AVR

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

1-دستور معرفی میکرو مورد نظر:

$Regfile=” نام میکرو

:مثال$regfile=”m8def.dat”


2-دستور معرفی فرکانس کلاک:

$Crystal=فرکانس کاری میکرو

:مثال$crystal=8000000

نکته ها:

 باشد.DO   ,   LOOP1-همیشه برنامه باید بین

 دارد.END2-هربرنامه ای نیاز به

3-دستور تعریف متغیر ها :

DIM  نام متغیر   AS  جنس متغیر

:مثال

Dim a as bit

Dim b as byte

:CONFIG4-دستور

از این دستور برای ورودی و خروجی کردن پورت ها و همچنین برای متصل کردن سخت افزار به میکرو استفاده میشود

 

 تک تک روشن شود و سپس تک تک خاموش شود ؟Dمثال1:برنامه ای بنویسید که ال ای دی های متصل به پورت

regfile = "m8def.dat"$

crystal=8000000 $

Config Portd = Output

Do

Portd.0 = 1

Waitms 50

Portd.1 = 1

Waitms 50

Portd.2 = 1

Waitms 50

Portd.3 = 1

Waitms 50

Portd.4 = 1

Waitms 50

Portd.5 = 1

Waitms 50

Portd.6 = 1

Waitms 50

Portd.7 = 1

Waitms 50

Portd.0 = 0

Waitms 50

Portd.1 = 0

Waitms 50

Portd.2 = 0

Waitms 50

Portd.3 = 0

Waitms 50

Portd.4 = 0

Waitms 50

Portd.5 = 0

Waitms 50

Portd.6 = 0

Waitms 50

Portd.7 = 0

Waitms 50

Loop

End

 

    یکی یکی از سمت راست به سمت چپ روشن و خاموش شوند؟Dمثال 2:برنامه ای بنویسید که ال ای دی های متصل به پورت

$regfile = "m8def.dat"

crystal=8000000 $

Config Portd = Output

Do

Portd.0 = 1

Waitms 50

Portd.1 = 2

Waitms 50

Portd.2 = 4

Waitms 50

Portd.3 = 8

Waitms 50

Portd.4 = 16

Waitms 50

Portd.5 = 32

Waitms 50

Portd.6 = 64

Waitms 50

Portd.7 = 128

Waitms 50

Portd.6 = 256

Waitms 50

Loop

End                                                                                                                                                                                                                                  

مثال 3:برنامه ای بنویسید که ال ای دی های متصل به پورت دی از صفر تا  255بضورت باینری بشمارد؟

$regfile = "m8def.dat"

crystal=8000000 $

Config Portd = Output

Do

Dim A As Byte

A = 0

Do

Portd = A

Waitms 50

A = A + 1

Loop

End

 

سون سگمنت ها :

نکته :کد های بالا مربوط به سون سگمنت کاتد مشترک میباشد

مثال 4 : برنامه ای بنویسید که سون سگمنت متصل به پورت دی از صفر تا 9 را شمارش کند؟

$regfile = "m8def.dat"

crystal=8000000 $

Config Portd = Output

Dim A As Byte , B As Byte

A = 0

Do

B = Lookup(a , Test)                                                                                                                           Bاز جدول و قرار دادن در متغیر Aدر اوردن مقدار متغیر

Portd = B

Waitms 50

A = A + 1

If A = 10 Then A = 0

Loop

End

Test:

Data 63 , 6 , 91 , 79 , 102 , 109 , 125 , 7 , 127 , 111

 

 

 

 یک واحد شمارش شده سپس عدد شمارش شده بر روی ال ای دی های قرار گرفته روی S1مثال 5: برنامه ای بنویسید که با هر بار تحریک شستی

پورت دی قرار بگیرد؟

$regfile = "m8def.dat"

crystal=8000000 $

Config Portd = Output

Config Pinb.0 = Input

Dim A As Byte , B As Byte , C As Bit

A = 0

Ssa:                                                                                       معرفی یک زیر برنامه با نامی دلخواه

Do

C = Pinb.0

If C = 0 Then Goto Ssa

A = A + 1

Portd = A

Waitms 50

Loop

End

مثال6:برنامه ای بنویسید که با هر بار تحریک شستی یک واحد به سون سگمنت متصل به پورت دی اضافه نماید؟

$regfile = "m8def.dat"

crystal=8000000 $

Config Portd = Output

Config Pinb.0 = Input

Dim A As Byte , B As Byte , C As Bit

A = 0

Ssa:

Do

C = Pinb.0

If C = 0 Then Goto Ssa

A = A + 1

If A = 10 Then A = 0

B = Lookup(a , Test)

Portd = B

Waitms 50

Loop

End

Test:

Data 63 , 6 , 91 , 79 , 102 , 109 , 125 , 7 , 127 , 111

 

 

 را روی ال سی دی متصل به پورت دی نمایش دهد ؟Helloمثال 7:برنامه ای بنویسید که حرف

$regfile = "m8def.dat"

crystal=8000000 $

Config Lcd = 16 * 2                                                             دستور متصل کردن ال سی دی 2 در 16

Config Lcdpin = Pin Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , Rs = Portd.4 , E = Portd.5        معرفی پایه های ال سی دی به میکرو

Do

Cls                                                                    دستور پاک کردن ال سی دی  

Lcd "hello"                                                       دستور نوشتن متن روی ال سی دی

Waitms 50

Loop

End

 

    مثال 8:برنامه ای بنوسید که اعداد 0 تا 255 را به ترتیب روی ال سی دی نشان دهد ?

$regfile = "m8def.dat"

crystal=8000000 $

Config Lcd = 16 * 2

Config Lcdpin = Pin Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , Rs = Portd.4 , E = Portd.5

Dim A As Byte

Cls

Do

;Lcd "counter" ; A                                                 روی ال سی دیAنمایش مقدار متغیر

Waitms 100

Cls

A = A + 1

Loop

End




برچسب ها: میکروکنترلر ، avr ، بسکام ،
آخرین ویرایش: سه شنبه 10 شهریور 1394 11:40 ق.ظ

 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر
نظرات پس از تایید نشان داده خواهند شد.