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


امتیاز موضوع:
  • 17 رای - 2.12 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
Title: آموزش کامل بسکام به همراه مثال
حالت خطی
#13
اتصال به عنوان کيبرد کامپيوتر :
نکته مهم : اتصال AVR به عنوان کيبرد به کامپيوتر، که در بسکام به نام ATEMU نام گذاري شده رايگان نبوده و کامپايلر در هنگام کامپايل کردن برنامه هاي مربوطه ( که در زير دو مورد آن موجود است ) از شما خطاي عدم وجود لايبري را مي گيرد ، شما بايد در HELP بسکام گزينه ي AT_EMULATOR را جستجو کنيد ، در صفحه پيدا شده طريقه تهيه لايبري امده است.
شما ميتوانيد بر عکس حالات بالا را با چند دستور ساده زير انجام دهيد ، يعني يک ميکروAVR را به پورت کيبرد که در پشت کامپيوتر قرار دارد ، متصل کنيد و اطلاعات مورد نياز را براي کامپيوتر ارسال کنيد ، راه اندازي اين مورد به صورت زير است :
Config Atemu = Int , Data = Data , Clock=Clock
Int : شما ميتوانيد از وقفه صفر يا يک براي اين مورد استفاده کنيد (INT0 يا INT1)
Data : نام پايه اي از ميکرو است که سيم ديتاي پورت کيبرد کامپيوتر (که شکل آن را در مبحث قبل مشاهده کرديد) به آن متصل مي شود (سيم ديتاي سوکت کيبرد بايد به پايه ورودي وقفه متصل شود (شما مجازيد از دوپايه INT0 و INT1 ( پايه 16 و 17 ميکرو مگا 16 )استفاده کنيد ))
Clock :نام پايه اي از ميکرو است که سيم کلاک پورت کيبرد کامپيوتر به آن متصل مي شود. با دستور زير ميتوانيد کد هاي دلخواه را به کيبرد را به کامپيوتر ارسال کنيد
Sendscankbd Label | Var
Label نام برچسبي است که کد در آن قرار دارد ( شما ميتوانيد چند کد را مانند مثال پشت سر هم نوشته و آنها را به کامپيوتر بفرستيد )
Var :
شما همچنين ميتوانيد يک متغيير را به کامپيوتر بفرستيد .در زير نام کليد هاي صفحه کليد و کدي که هر يک مي سازند را مشاهده مي فرماييد :

در مثال زير ميخواهيم عبارت "1nafar " را به کامپيوتر بفرستيم ، بعد از ساخت سخت افزار و اتصال آن به کامپيوتر در صورتي که برنامه Notepad يا Word را باز کنيد ، عبارت مذکور در آن نوشته مي شود.
مانند تمامي برنامه ها ابتدا ميکرو و کريستال را معرفي ميکنيم:
$regfile = "m16def.dat"
$crystal = 8000000
قدمي بعدي فعال سازي وقفه سراسري (هنگامي که ميخواهيم از وقفه استفاده کنيم بايد آن را فعال کنيم ، با دستور که نام برده مي شود تمامي وقفه ها فعال مي شوند) است :
Enable Interrupts
مرحله بعدي معرفي پايه هاي ميکرو است که بايد به پورت کيبرد موجود در پشت کامپيوتر متصل شود:
Config Atemu = Int1 , Data = PIND.3 , Clock = PINB.0
در حالت بالا پايه کلاک پورت کيبرد به پورت B.0 و پايه ديتا آن به ورودي وقفه 1 (پورت D.3) متصل است ، (در صوتي که از وقفه 0 استفاده شود ، پايه ديتا بايد به پورت D.2 متصل شود)
در مرحله بعد يک حلقه ايجاد مي کنيم تا ميکرو مدام عبارت را به کامپيوتر ارسال کند :
Do
و در نهايت با دستور زير برچسبي که در آن عبارت "1nafar" وجود دارد به کامپيوتر ارسال مي شود:
Sendscankbd data1
يک تاخير زماني ، براي اينکه صفحه مدام پر نشود :
Wait 2
پايان حلقه و پايان برنامه :
Loop
End
و در نهايت ايجاد برچسب :
Data1:
Data 18 , &H16 , &HF0 , &H16 , &H31 , &HF0 , &H31 , &H1C , &HF0 , &H1C , &H2B , &HF0 , &H2B , &H1C , &HF0 , &H1C , &H2D , &HF0 , &H2D
اولين داده جدول تعداد بايت ارسالي است ، در اينجا تمامي بايت ها ( که تعداد آنها 18 تاست) با هم ارسال شده اند (منظور پشت سرهم است ) ، شما ميتوانيد مانند جدول lookup ، جدول را آدرس دهي کنيد و داده هاي مورد نظر را بفرستيد ، توجه داشته باشيد که تعداد بايد نبايد از 3 کمتر باشد ، در اين صورت داده کامل منتقل نمي شود .داده هاي بعدي ، اعداد و حروف مي باشند ، مثلا براي عدد 1 بايد ، مطابق جدول بالا (نام کليد هاي صفحه کليد و کدي که هر يک ميسازند) کد &H16 , &HF0 , &H16 ارسال شود و براي کليد DELETE بايد کد &HE0 , &H71 , &HE0 , &HF0 &H71 ارسال شود
و .... در زير کد مربوط به کليد هاي مدياپلير و ديگر کليد هاي موجود بر روي صفحه کليد را مشاهده مي فرماييد:

ميخواهيم با يک کليد صدا را کم و با کليد ديگر صدا را زياد کنيم براي اين کار چند روش وجود دارد که يکي از آنها در زير امده است :
$regfile = "m16def.dat"
$crystal = 8000000
Enable Interrupts
Config Atemu = Int1 , Data = Pind.3 , Clock = Pinb.0
Waitms 500
Config Porta = Input
Q:
Debounce Pina.0 , 1 , Vup
Debounce Pina.0 , 1 , Vdown
Goto Q
Vup:
Sendscankbd Data1
Waitms 500
Goto Q
Vdown:
Sendscankbd Data2
Waitms 500
Goto Q
End
Data 5 , &HE0 , &H32 , &HE0 , &HF0 , &H32
Data2:
Data 5 , &HE0 , &H21 , &HE0 , &HF0 , &H21
[عکس: bnk.png]

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


پیام‌های این موضوع
RE: آموزش کامل بسکام به همراه مثال - توسط a.mehran - 09-26-2014، 04:21 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 مهمان