اطلاعیه

Collapse
No announcement yet.

ارتباط AVR با کیبرد در codvision

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    ارتباط AVR با کیبرد در codvision

    سلام یه کمک فوری میخواهم راجع به اتصال کیبرد کامپیوتر به avr که در اون از وقفه استفاده بشه وبتونم خروجی رو روی یه lcd کاراکتری نشون بدم و البته در برنامه codevision

    #2
    پاسخ : ارتباط 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")



    حالا از این به بعد دیگه میشه مقایسه کردن و نمایش دادن. اگر تا اینجا مشکلی نداری بگو تا اونو هم برات بگیم.

    دیدگاه


      #3
      پاسخ : ارتباط AVR با کیبرد در codvision

      سلام

      راهنمایی خوبی بود. تشکر میکنم.

      من کمی تازه کارم میشه کل فایل project codvision مربوطه رو اینجا قرار بدین؟

      من پیش از این خیلی سعی کردم اما از اونجایی هست که تازه شروع به کار با AVRها کردم برام مشکله.
      سورس کامل پروژه رو برای atmega8 رو پیدا کردم اما کمی اخطار برنامه داشت و کامپایلر error میگرفت.

      به چه دلیل Clock و Data به Vcc وصل شده؟


      با تشکر

      دیدگاه


        #4
        پاسخ : ارتباط AVR با کیبرد در codvision

        با سلام

        کسی میتونه یه فروم یا تاپیکی معرفی کنه که بتونم از اونجا کمک بگیرم؟

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

        لطفاً یکی کمک کنه

        دیدگاه


          #5
          پاسخ : ارتباط AVR با کیبرد در codvision

          سلام دوست من .

          http://www.4shared.com/get/43195289/a74b3136/pc_keybord.html

          یه نگاهی بکن .


          برای داشتن چیزهایی که تا کنون نداشته ام - باید کسی باشم که تا کنون نبوده ام .
          http://www.elec4u.ir

          دیدگاه

          لطفا صبر کنید...
          X