سلام یه کمک فوری میخواهم راجع به اتصال کیبرد کامپیوتر به avr که در اون از وقفه استفاده بشه وبتونم خروجی رو روی یه lcd کاراکتری نشون بدم و البته در برنامه codevision
اطلاعیه
Collapse
No announcement yet.
ارتباط AVR با کیبرد در codvision
Collapse
X
-
پاسخ : ارتباط AVR با کیبرد در codvision
نوشته اصلی توسط sajjad.yazdaniسلام یه کمک فوری میخواهم راجع به اتصال کیبرد کامپیوتر به avr که در اون از وقفه استفاده بشه وبتونم خروجی رو روی یه lcd کاراکتری نشون بدم و البته در برنامه codevision
سلام..................
شما در واقع فقط میخواین کی بور کامپیوتر رو اسکن کنید و کاراکتراش رو نمایش بدین درسته؟
و نمیخواین از رابط I2C هم استفاده کنین و در واقع میخواین با استفاده از وقفه و یک پورت دیتای ارسالی از طریق کیبورد رو بخونین درسته؟
اگر به صورته که میخواین من دربارش توضیح مختصری میدم:
برنامه به این صورته که شما اول باید برین ترتیب پایه های کی بورد رو پیدا کنین که من اینجا میزارمش:

حالا باید پایه SCK رو به اینتراپت و SDA رو به یکی از ورودی های میکرو بدین.
تا اینجا که کار ساده ای بود. حالا از اینجا به بعد ما باید با هر وقفه ای که اتفاق میفته بریم پین ورودی رو چک کنیم که ببینیم 0 یا 1.
من اینجا یهبرنامه میزارم که میشه اطلاعات دریافتی از طریق رابط I2C رو خوند و داخل یه متغیر ذخیره کرد. به شماتیک زیر هم دقت کنید:

کد:bit edge=0; bit a,y; unsigned char bitcount=11; unsigned char out=0; unsigned int count=0; bit d=0; interrupt [EXT_INT0] void ext_int0_isr(void) { a=0; count=++count; DDRD=0x00; static unsigned char data; if (!edge) { if(bitcount < 11 && bitcount > 2) { data = (data >> 1); if(PIND & 0b10000000) data = data | 0x80; } MCUCR = 3; edge = 1; } else { MCUCR = 2; edge = 0; if(--bitcount == 0) { out=data; bitcount = 11; } } }
تو این برنامه هر دیتایی که بیاد داخل متغیر out ذخیره میشه. که سخترین و مشکلترین کار همین خودنه که انجامش دادیم. :biggrin:
اینم پیکره بندی اینتراپت:
کد:GICR|=0x40; MCUCR=0x02; MCUCSR=0x00; GIFR=0x40; #asm("sei")
حالا از این به بعد دیگه میشه مقایسه کردن و نمایش دادن. اگر تا اینجا مشکلی نداری بگو تا اونو هم برات بگیم.
-
پاسخ : ارتباط AVR با کیبرد در codvision
سلام
راهنمایی خوبی بود. تشکر میکنم.
من کمی تازه کارم میشه کل فایل project codvision مربوطه رو اینجا قرار بدین؟
من پیش از این خیلی سعی کردم اما از اونجایی هست که تازه شروع به کار با AVRها کردم برام مشکله.
سورس کامل پروژه رو برای atmega8 رو پیدا کردم اما کمی اخطار برنامه داشت و کامپایلر error میگرفت.
به چه دلیل Clock و Data به Vcc وصل شده؟
با تشکر
دیدگاه





دیدگاه