NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 3221 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 16 از 16

موضوع: اتصال کیبرد کامپیوتر به میکرو

  1. #1
    کاربر فعال
    تاریخ عضویت
    Mar 2010
    نام
    Tehran
    نوشته ها
    154
    تشکر
    61
    تشکر شده 45 بار در 34 پست

    Icon17 اتصال کیبرد کامپیوتر به میکرو

    می خوام کیبرد کامپیوتر رو به میکرو وصل کنم. چند تا سوال دارو ممنون می شم کسی کمک کنه:
    1- ولتاژ تغذیه کیبرد 5 ولت کفایت می کنه؟
    2- وقتی Vcc و GND کیبرد رو وصل می کنم باید کیبرد خروجی Clk فعال بشه و با اسیلوسکوپ می شه پالس کلاک رو دید؟

    حضور تمامی دوستان و آشنایان در این بحث و ارائه هر گونه اطلاعات مفید در این رابطه موجب شادی دل ما خواهد شد.

  2. تشکرها از این نوشته :


  3. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نام
    Advertising world
    نوشته ها
    Many
     

  4. #2
    مدیر انجمن Division آواتار ها
    تاریخ عضویت
    Jan 2010
    نام
    افشین علیزاده
    نوشته ها
    628
    تشکر
    206
    تشکر شده 1,013 بار در 407 پست

    پیش فرض

    سلام

    1- ولتاژ تغذیه کیبرد 5 ولت کفایت می کنه؟
    بله اصلا نباید بیشتر از 5 ولتا بشه .

    2- وقتی Vcc و GND کیبرد رو وصل می کنم باید کیبرد خروجی Clk فعال بشه و با اسیلوسکوپ می شه پالس کلاک رو دید؟
    وقتی شما کلیدی فشار میدید دیتایی به صورت سریال با قالب بندی خاص ارسال میشه که می تونید با USART میکرو AVR بخونیدش و اینکه این دیتا چه جوری ارسال میشه و اصلاً ماهیتش چیه در این لینک من یه سری توضیحاتی رو آوردم حتما بش یه نگاهی رو بندازید .

    در ضمن شما خروجی CLK رو میتونی ازش بگیری .
    اینم داشته باش که تو کیبوردهای با استاندار PS/2 پایه 5 همون CLK هستش .
    اینم شکلش :



    و تو کیبوردهای با استاندارد DIN41524 پایه 1 همون CLK هستش .
    اینم از شکل این مدل :









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

  5. کاربران : 6 تشکر کرده اند از شما Division برای ارسال این پست سودمند:


  6. #3
    همکار rfbook آواتار ها
    تاریخ عضویت
    Dec 2009
    نام
    سعید علیان
    نوشته ها
    193
    تشکر
    160
    تشکر شده 458 بار در 139 پست

    پیش فرض

    سلام

    اکثرا با کیبورد های ps2 آشنایی دارید و می دانید که برای اتصال به AVR باید 4 پین از فیش ps2 را مورد استفاده قرار دهید .



    برای مشاهده عکس در سایز اصلی ، بر روی آن کلیک کنید



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

    نحوه اتصال کیبرد کامپیوتر به میکرو کنترلر avr
    برای اتصال کیبرد کامپیوتر به میکرو به 4 پایه از کیبرد نیاز داریم :
    1- Vcc که باید به ولتاژ 5 ولت متصل شود .
    2- GND که باید به زمین متصل شود .
    3- پایه data که به یکی از پین های میکرو به انتخاب ما متصل می شود .
    4- پایه clock که به یکی از پین های میکرو به انتخاب ما متصل می شود .


    برای این کار مثلا پایه data را به pind.6 و پایه clock را به pind.5 متصل کرده و پایه vcc را به ولتاژ 5 ولت و پایه gnd را به زمین اتصال می دهیم .
    توسط دستور زیر برای میکرو نحوه اتصال پایه های clock و data را مشخص می کنیم .
    Config keyboard = pind.5 , data = pind.6 , keydata = keydata
    با دستور بالا برای میکرو مشخص کردیم که پایه clock به pind.5 متصل شده و پایه data به pind.6 متصل شده است .
    Keydata : یکی از مشکلات کیبرد کامپیوتر در اتصال به میکرو نداشتن خروجی با کد اسکی است . بنابراین برای تبدیل کدهای گرفته شده از کیبرد به کد های اسکی از یک جدول داده استفاده می شود که به صورت زیر است .





    برای مشاهده عکس در سایز اصلی ، بر روی آن کلیک کنید



    برای مشاهده عکس در سایز اصلی ، بر روی آن کلیک کنید


    برای مشاهده عکس در سایز اصلی ، بر روی آن کلیک کنید


    حال کیبورد های USB نیز به همین روش به میکرو متصل میشوند .


    یعنی پایه های کیبورد های USB هم مانند کیبورد های ps2 می باشد مانند شکل زیر و در برنامه نویسی هیچ تغییراتی لازم نیست .



    برای مشاهده عکس در سایز اصلی ، بر روی آن کلیک کنید



    برای مشاهده عکس در سایز اصلی ، بر روی آن کلیک کنید
    www.hoperf12.ir

    وبسایت تخصصی ماژول های RF



  7. کاربران : 8 تشکر کرده اند از شما rfbook برای ارسال این پست سودمند:


  8. #4
    ناظم انجمن Ma3ood آواتار ها
    تاریخ عضویت
    Aug 2011
    نام
    مسعود
    نوشته ها
    2,248
    تشکر
    1,912
    تشکر شده 3,087 بار در 1,509 پست

    پیش فرض

    درود بر دوستان ایران میکرویی
    همان طور که میدونید نرم افزار کدویژن همانند نرم افزار بسکام تابع اماده برای اسکن صفجه کلید کامپیوتر نداره
    من یه برنامه ای نوشتم حالا برای اینکه کاراکتر ها خروجی رو چاپ کنم دچار مشکل شدم
    برنامه به شرح زیر می باشد توضیح اخر اینکه من نمی خوام از دستور switch استفاده کنم دوستان یه راه حل جایگزین بگویند مشکل اصلی من توی تابعdecode هستش هر کاری میکنم یه عدد ثابت بهم میده!
    کد:
    #include <mega8.h>
    #include <delay.h>
    #include <stdio.h>
    #include <stdlib.h>
    // Alphanumeric LCD functions
    #include <alcd.h>
    flash unsigned char key[67][2] = {
    0x0e,'`',0x15,'Q',0x16,'!',0x1a,'Z',0x1b,'S',0x1c,'A',0x1d,'W',0x1e,'@',0x21,'C',
    0x22,'X',0x23,'D',0x24,'E',0x25,'$',0x26,'#',0x29,' ',0x2a,'V',0x2b,'F',0x2c,'T',0x2d,'R',0x2e,'%',0x31,'N',0x32,'B',0x33,'H',0x34,'G',
    0x35,'Y',0x36,'^',0x39,'L',0x3a,'M',0x3b,'J',0x3c,'U',0x3d,'&',0x3e,'*',0x41,'<',0x42,'K',0x43,'I',0x44,'O',
    0x45,')',0x46,'(',0x49,'>',0x4a,'?',0x4b,'L',0x4c,':',0x4d,'P',0x4e,'_',0x52,'"',0x54,'{',0x55,'+',0x5a,13,
    0x5b,'}',0x5d,'|',0x61,'>',0x66,8,  0x69,'1',0x6b,'4',0x6c,'7',0x70,'0',0x71,',',0x72,'2',0x73,'5',0x74,'6',
    0x75,'8',0x79,'+',0x7a,'3',0x7b,'-',0x7c,'*',0x7d,'9',0,0 };
    void decode(unsigned char sc) {
        static unsigned char buffer[16];
       unsigned char i;         
                      for(i = 0; key[i][0]!=sc && key[i][0]; i++){
                         lcd_clear();
                            sprintf(buffer,"%d",key[i][1]);
                            lcd_puts(buffer);                    
                         }                                       
            }
       
    char key_code=0;
    interrupt [EXT_INT0] void ext_int0_isr(void)
    {
     static char num_clk=0,data=0;
            num_clk++;
            if(num_clk>1 && num_clk<10)
            {
                    data=data>>1;
                    if(PIND.3==1) data=data|0x80;
            }
            if(num_clk==11)
            {
                    //key_code=data;
                    decode(data); 
                    num_clk=0;
                    data=0;
            }
    }
         
    void main(void)
    {
    
    PORTD=0x0C;
    DDRD=0x00;
    GICR|=0x40;
    MCUCR=0x02;
    GIFR=0x40;
    // Alphanumeric LCD initialization
    // Connections are specified in the
    // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
    // RS - PORTB Bit 0
    // RD - PORTB Bit 1
    // EN - PORTB Bit 2
    // D4 - PORTB Bit 4
    // D5 - PORTB Bit 5
    // D6 - PORTB Bit 6
    // D7 - PORTB Bit 7
    // Characters/line: 16
    lcd_init(16);
    
    // Global enable interrupts
    #asm("sei")
    
    while (1)
          {
          // Place your code here
    
          }
    }

  9. تشکرها از این نوشته :


  10. #5
    کاربر فعال
    تاریخ عضویت
    Mar 2010
    نوشته ها
    236
    تشکر
    101
    تشکر شده 246 بار در 163 پست

    پیش فرض

    نکته اول : در کیبرد زمانی ک یک کلید فشار داده میشه کد کلید فرستاده میشه و وقتی کلید رها میشه اول
    کد f0 و بعد دوباره کد همون کلید ارسال میشه .برای بعضی از کلید ها هم کد extended یا e0 ارسال میشه به همراه یک کد کلید. پس باید به این کد ها هم دقت کنید و اون سوئیچی رو هم که میبینید گذاشته شده ،برای
    تشخیص همین مورد هست

    نکته دوم : اگر از سوئیچ استفاده نکنید باید از if استفاده کنید ولی کدویژن کدی که برای سوئیچ تولید میکنه بهینه تر از کدی هست که برای if تولید میکنه

    نکته سوم : استفاده از حلقه for برای پیدا کردن کد معادل زمان زیادی رو میگیره مخصوصا اینکه در اینتراپت هم هستید

    و در اخر اینکه ایراد داخل شرط حلقه For هست
    حلقه تا زمانی اجرا میشه که برسه به کلید مورد نظر
    [PHP] for(i = 0; key[i][0]; i++){
    if(key[i][0]==sc ){ lcd_clear(); sprintf(buffer,"%d",key[i][1]); lcd_puts(buffer); } }[/PHP]

  11. تشکرها از این نوشته :


  12. #6
    ناظم انجمن Ma3ood آواتار ها
    تاریخ عضویت
    Aug 2011
    نام
    مسعود
    نوشته ها
    2,248
    تشکر
    1,912
    تشکر شده 3,087 بار در 1,509 پست

    پیش فرض

    نقل قول نوشته اصلی توسط mrm نمایش پست ها
    نکته اول : در کیبرد زمانی ک یک کلید فشار داده میشه کد کلید فرستاده میشه و وقتی کلید رها میشه اول
    کد f0 و بعد دوباره کد همون کلید ارسال میشه .برای بعضی از کلید ها هم کد extended یا e0 ارسال میشه به همراه یک کد کلید. پس باید به این کد ها هم دقت کنید و اون سوئیچی رو هم که میبینید گذاشته شده ،برای
    تشخیص همین مورد هست

    نکته دوم : اگر از سوئیچ استفاده نکنید باید از if استفاده کنید ولی کدویژن کدی که برای سوئیچ تولید میکنه بهینه تر از کدی هست که برای if تولید میکنه

    نکته سوم : استفاده از حلقه for برای پیدا کردن کد معادل زمان زیادی رو میگیره مخصوصا اینکه در اینتراپت هم هستید

    و در اخر اینکه ایراد داخل شرط حلقه For هست
    حلقه تا زمانی اجرا میشه که برسه به کلید مورد نظر
    [PHP] for(i = 0; key[i][0]; i++){
    if(key[i][0]==sc ){ lcd_clear(); sprintf(buffer,"%d",key[i][1]); lcd_puts(buffer); } }[/PHP]
    تشکر بابت راهنماییتون
    میخواستم از دستور switch فرار کنم ولی مثل اینکه for زمان بیشتر میگیره هر کاری کردم خوب جواب نداد

  13. #7
    تازه وارد
    تاریخ عضویت
    Apr 2012
    نوشته ها
    3
    تشکر
    0
    تشکر شده 1 بار در 1 پست

    پیش فرض

    با سلام
    من یک برنامه اتصال کیبورد کامپیوتر با میکرو atmega16 دارم که به یکی از پورت های میکرو ال سی دی 16*2 وصل است و هرچی در کیبورد تایپ می کنیم در ال سی دی نشون بده. در واقع یک برنامه تست کیبورد است

    مشکل اینجاست که اصلاً چراغ ال سی دی روشن نمیشه. ممکنه کمک کنید؟
    سورس برنامه و شماتیک رو همینجا واستون گذاشتم تا بررسی کنید.
    تصاوير کوچک فايل پيوست تصاوير کوچک فايل پيوست برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: 1.png
مشاهده: 121
حجم: 52.0 کیلو بایت  
    فايل هاي پيوست شده فايل هاي پيوست شده

  14. #8
    کاربر علاقه مند VAKILZADEH آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    حسين وكيل زاده
    نوشته ها
    47
    تشکر
    33
    تشکر شده 92 بار در 36 پست

    Exclamation

    من ديروز يه كيبورد ژله اي درجه يك بسيار گران قيمت را با زدن ولتاژ اشتباه به اون خراب كردم. تو رو خدا شما مواظب VCC و GND باشيد.

  15. #9
    تازه وارد
    تاریخ عضویت
    Apr 2012
    نوشته ها
    3
    تشکر
    0
    تشکر شده 1 بار در 1 پست

    پیش فرض

    کسی نیست اینجا کمک کنه؟

  16. #10
    تازه وارد
    تاریخ عضویت
    Aug 2013
    نوشته ها
    2
    تشکر
    3
    تشکر شده 0 بار در 0 پست

    پیش فرض

    سلام .
    من میخوام از طریق صفحه کلید لپ تاپم با میکروی atmega16 ارتباط برقرار کنم طوریکه هرچی تایپ کنم روی lcd که به میکرو وصل میکنم چاپ بشه،باید از چه کابلی استفاده کنم و کدش توی کدویژن چه طوریه؟؟ کارم خیلی ضروریه ممنون میشم کسی کمک کنه

  17. #11
    مدیرکل انجمنها Doloop آواتار ها
    تاریخ عضویت
    Aug 2011
    نام
    حسين
    نوشته ها
    1,964
    تشکر
    3,312
    تشکر شده 3,086 بار در 1,371 پست

    پیش فرض

    با ارتباط سریال میتونید بین میکرو و لبتاپ ارتباط برقرارکنید توی ترمینال هم هرچی تایپ کنی ارسال میشه به میکرو و میتونید روی السیدی نمایش بدید

    اگر لبتاپتون پورت سریال داره که هیچ در غیر این صورت باید از مبدل USB2Serial استفاده کنید

    در مورد کد هم عرض کنم که کد فراوان هست ...
    شما عبارت " ارتباط میکرو با PC از طریق پورت سریال " رو جستجو بفرمائید
    *** اللّهم عجّل لولیک الفرج ***

  18. #12
    عضو جدید
    تاریخ عضویت
    Apr 2013
    نوشته ها
    11
    تشکر
    0
    تشکر شده 17 بار در 9 پست

    پیش فرض

    با سلام
    این کار با استفاده از usart و تبادل سریال بسیار ساده است ولی احتمالا لپ تاپ شما پورت سریال نداشته باشه که این کارو سخت میکنه اگه مبدل usb به سریال استفاده کنی نمی دونم جواب میده یا نه

  19. #13
    تازه وارد
    تاریخ عضویت
    Nov 2013
    نوشته ها
    1
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    پیش فرض

    سلام به همه دوستان...آیا کسی میتونه کمکم کنه و نقشه ی کامل اتصال کیبورد usb به atmega32 رو بهم بده و برنامش به زبان بیسیک؟؟؟
    همچنین کسی میتونه نقشه اتصال کیپد 3*4 رو بهم بده...
    ویرایش توسط KHM : 09-11-2013 در ساعت 16:44 دلیل: طبق قوانین سایت باید فارسی تایپ شود...

  20. #14
    کاربر فعال r0b0 آواتار ها
    تاریخ عضویت
    Jan 2013
    نام
    امید عزیزی
    نوشته ها
    140
    تشکر
    205
    تشکر شده 198 بار در 80 پست

    پیش فرض

    نقل قول نوشته اصلی توسط amir hosein نمایش پست ها
    kasi mitone naghsheye etesale key board 3*4 ro behem bede???
    مهندس لطفا فقط فارسی تایپ کنید تا سریعتر رسیدگی بشه
    راه اندازی کی پد 4*3 بکمک mega8 به زبان بیسیک رو واستون پیوست کردم
    با کمی تغییر میتونید برای mega32 پیکربندی کنید

    خوش باشید.
    فايل هاي پيوست شده فايل هاي پيوست شده

  21. کاربران : 2 تشکر کرده اند از شما r0b0 برای ارسال این پست سودمند:


  22. #15
    عضو جدید
    تاریخ عضویت
    Feb 2014
    نوشته ها
    14
    تشکر
    7
    تشکر شده 0 بار در 0 پست

    Icon17

    سلام دوستان
    من 2 روزه که دارم دنبال یه برنامه یا راه حلی می گردم برای ارتباط میکرو با کیبورد. مشکلم اینه که برنامه ها رو نمی فهمم. مفاهیم رو با سرچ فهمیدم مثلا استفاده از اینتراپت. و دو تا پایه کلاک و دیتا در Ps/2
    اما نمی دونم چه جوری ازشون استفاده کنم. این قطعه کد رو نگاه کنید لطفا. تابع اینتراپتش رو فکر کنم اگر بفهمم مشکلم حل شه. کسی می تونه کمکم کنه؟

    کد:
    #include <mega16.h>
    #include <stdio.h>
    #include <delay.h>
    #include <stdlib.h>
    #include <string.h>
    #asm
    .equ __lcd_port=0x18
    #endasm
    #include <lcd.h>
    ١١
    bit h2=0,y=0;
    unsigned int count=0;
    unsigned char a,x,h1=0,out=0,bitcount=11,data;
    unsigned char str[20];
    char str2[20];
    flash unsigned char s0[]="ESC",s1[]="F1",s2[]="F2",s3[]="F3",s4[]="F4";
    flash unsigned char s5[]="F5",s6[]="F6",s7[]="F7",s8[]="F8",s9[]="F9";
    flash unsigned char s10[]="F10",s11[]="F11",s12[]="F12",s13[]="~",s14[]="!";
    flash unsigned char s15[]="@",s16[]="#",s17[]="$",s18[]="%",s19[]="^";
    flash unsigned char s20[]="&",s21[]="*",s22[]="(",s23[]=")",s24[]="_";
    flash unsigned char s25[]="+",s26[]="/",s27[]="",s28[]="Q",s29[]="W";
    flash unsigned char s30[]="E",s31[]="R",s32[]="T",s33[]="Y",s34[]="U";
    flash unsigned char s35[]="I",s36[]="O",s37[]="P",s38[]="{",s39[]="}";
    flash unsigned char s40[]="A",s41[]="S",s42[]="D",s43[]="F",s44[]="G";
    flash unsigned char s45[]="H",s46[]="J",s47[]="K",s48[]="L",s49[]=";";
    flash unsigned char s50[]="'",s51[]="",s52[]="SHI",s53[]="Z",s54[]="X";
    flash unsigned char s55[]="C",s56[]="V",s57[]="B",s58[]="N",s59[]="M";
    flash unsigned char s60[]="<",s61[]=">",s62[]="?",s63[]="shi",s64[]="ctr";
    flash unsigned char s65[]="Win",s66[]="Alt",s67[]=" ",s68[]="Win",s69[]="0";
    flash unsigned char s70[]=".",s71[]="1",s72[]="2",s73[]="3",s74[]="4";
    flash unsigned char s75[]="5",s76[]="6",s77[]="7",s78[]="8",s79[]="9";
    flash unsigned char s80[]="+",s81[]="-",s82[]="*";
    interrupt [EXT_INT0] void ext_int0_isr(void){
    count++;
    if (h2==0)
    {
    if(bitcount < 11 && bitcount > 2)
    {
    data=(data >> 1);
    if(PIND.7==1)data=(data|0b10000000);
    }
    ١٢
    MCUCR=3;
    h2=1;
    }
    if(h2==1){
    MCUCR=2;
    h2=0;
    if(--bitcount==0)
    {
    out=data;
    bitcount=11;
    }
    }
    }
    //**************************************
    void key(unsigned char in){
    switch (in)
    {
    case 0x76:
    strcatf(str,s0);
    break;
    case 0x05:
    strcatf(str,s1);
    break;
    case 0x06:
    strcatf(str,s2);
    break;
    case 0x04:
    strcatf(str,s3);
    break;
    case 0x0c:
    strcatf(str,s4);
    break;
    ١٣
    case 0x03:
    strcatf(str,s5);
    break;
    case 0x0b:
    strcatf(str,s6);
    break;
    case 0x83:
    strcatf(str,s7);
    break;
    case 0x0a:
    strcatf(str,s8);
    break;
    case 0x01:
    strcatf(str,s9);
    break;
    case 0x09:
    strcatf(str,s10);
    break;
    case 0x78:
    strcatf(str,s11);
    break;
    case 0x07:
    strcatf(str,s12);
    break;
    case 0x0e:
    strcatf(str,s13);
    break;
    case 0x16:
    strcatf(str,s14);
    break;
    case 0x1e:
    strcatf(str,s15);
    break;
    case 0x26:
    ١۴
    strcatf(str,s16);
    break;
    case 0x25:
    strcatf(str,s17);
    break;
    case 0x2e:
    strcatf(str,s18);
    break;
    case 0x36:
    strcatf(str,s19);
    break;
    case 0x3d:
    strcatf(str,s20);
    break;
    case 0x3e:
    strcatf(str,s21);
    break;
    case 0x46:
    strcatf(str,s22);
    break;
    case 0x45:
    strcatf(str,s23);
    break;
    case 0x4e:
    strcatf(str,s24);
    break;
    case 0x55:
    strcatf(str,s25);
    break;
    case 0x5d:
    strcatf(str,s26);
    break;
    case 0x0d:
    lcd_clear();
    ١۵
    strcpy(str,str2);
    break;
    case 0x15:
    strcatf(str,s28);
    break;
    case 0x1d:
    strcatf(str,s29);
    break;
    case 0x24:
    strcatf(str,s30);
    break;
    case 0x2d:
    strcatf(str,s31);
    break;
    case 0x2c:
    strcatf(str,s32);
    break;
    case 0x35:
    strcatf(str,s33);
    break;
    case 0x3c:
    strcatf(str,s34);
    break;
    case 0x43:
    strcatf(str,s35);
    break;
    case 0x44:
    strcatf(str,s36);
    break;
    case 0x4d:
    strcatf(str,s37);
    break;
    case 0x54:
    strcatf(str,s38);
    ١۶
    break;
    case 0x5b:
    strcatf(str,s39);
    break;
    case 0x1c:
    strcatf(str,s40);
    break;
    case 0x1b:
    strcatf(str,s41);
    break;
    case 0x23:
    strcatf(str,s42);
    break;
    case 0x2b:
    strcatf(str,s43);
    break;
    case 0x34:
    strcatf(str,s44);
    break;
    case 0x33:
    strcatf(str,s45);
    break;
    case 0x3b:
    strcatf(str,s46);
    break;
    case 0x42:
    strcatf(str,s47);
    break;
    case 0x4b:
    strcatf(str,s48);
    break;
    case 0x4c:
    strcatf(str,s49);
    break;
    ١٧
    case 0x52:
    strcatf(str,s50);
    break;
    case 0x5a:
    y=~y;
    strcpy(str,str2);
    break;
    case 0x12:
    x--;
    break;
    case 0x1a:
    strcatf(str,s53);
    break;
    case 0x22:
    strcatf(str,s54);
    break;
    case 0x21:
    strcatf(str,s55);
    break;
    case 0x2a:
    strcatf(str,s56);
    break;
    case 0x32:
    strcatf(str,s57);
    break;
    case 0x31:
    strcatf(str,s58);
    break;
    case 0x3a:
    strcatf(str,s59);
    break;
    case 0x41:
    strcatf(str,s60);
    break;
    ١٨
    case 0x49:
    strcatf(str,s61);
    break;
    case 0x4a:
    strcatf(str,s62);
    break;
    case 0x59:
    x++;
    break;
    case 0x14:
    strcatf(str,s64);
    break;
    case 0x27:
    strcatf(str,s65);
    break;
    case 0x11:
    strcatf(str,s66);
    break;
    case 0x29:
    strcatf(str,s67);
    break;
    case 0x1f:
    strcatf(str,s68);
    break;
    case 0x70:
    strcatf(str,s69);
    break;
    case 0x71:
    strcatf(str,s70);
    break;
    case 0x69:
    strcatf(str,s71);
    break;
    case 0x72:
    ١٩
    strcatf(str,s72);
    break;
    case 0x7a:
    strcatf(str,s73);
    break;
    case 0x6b:
    strcatf(str,s74);
    break;
    case 0x73:
    strcatf(str,s75);
    break;
    case 0x74:
    strcatf(str,s76);
    break;
    case 0x6c:
    strcatf(str,s77);
    break;
    case 0x75:
    strcatf(str,s78);
    break;
    case 0x7d:
    strcatf(str,s79);
    break;
    case 0x79:
    strcatf(str,s80);
    break;
    case 0x7b:
    strcatf(str,s81);
    break;
    case 0x7c:
    strcatf(str,s82);
    break;
    ٢٠
    case 0x66:
    a=strlen(str);
    str[a-1]=0;
    break;
    }
    if(out!=0)h1++;
    out=0;
    }
    void main(void)
    {
    GICR|=0x40;
    MCUCR=0x02;
    MCUCSR=0x00;
    GIFR=0x40;
    ACSR=0x80;
    DDRD.7=0;
    lcd_init(16);
    #asm("sei")
    while(1)
    {
    key(out);
    lcd_clear();
    lcd_gotoxy(x,y);
    lcd_puts(str);
    delay_ms(500);
    };
    }

  23. #16
    تازه وارد
    تاریخ عضویت
    Jul 2015
    نوشته ها
    1
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    پیش فرض کیبورد ps2

    نقل قول نوشته اصلی توسط Ma3ood نمایش پست ها
    تشکر بابت راهنماییتون
    میخواستم از دستور switch فرار کنم ولی مثل اینکه for زمان بیشتر میگیره هر کاری کردم خوب جواب نداد
    سلام دوستان.میخواستم بدونم کسی تو اتصال کیبورد به میکرو جواب گرفته،به کمکتون احتیاج دارم

موضوعات مشابه

  1. اتصال گیم پد کامپیوتر به avr
    توسط sina_vd در انجمن AVR
    پاسخ: 8
    آخرين نوشته: 06-04-2014, 16:46
  2. اتصال کیبرد کامپیوتر به lpc1768
    توسط rezasede در انجمن LPC series (NXP)
    پاسخ: 0
    آخرين نوشته: 12-03-2014, 15:03
  3. مشکل در اتصال میکرو با کامپیوتر
    توسط ALI3D69 در انجمن AVR
    پاسخ: 0
    آخرين نوشته: 27-01-2014, 15:30
  4. نحوه اتصال دوربین ربات به کارت کپچر در کامپیوتر
    توسط arm-mohsen-avr در انجمن برنامه نویسی کامپیوتر/کنترل با کامپیوتر
    پاسخ: 6
    آخرين نوشته: 09-05-2012, 09:09
  5. سوال در مورد اتصال کیبرد کامپیوتر به میکرو arm
    توسط mhz_electronic در انجمن مباحث کلی ARM
    پاسخ: 7
    آخرين نوشته: 12-08-2011, 21:11

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •