اطلاعیه

Collapse
No announcement yet.

مشکل در فهم برنامه صفحه کلید ماتریسی

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

    مشکل در فهم برنامه صفحه کلید ماتریسی

    سلام دوستان...این برنامه صفحه کلید 4*4 هستش...دو خط از برنامه رو نمیفهمم

    دوستان لطف کنید کمکم کنید...

    unsigned char scan_key(void);
    {
    unsigned char i,data,num_key,temp;
    num_key = 0xff
    temp=0x70;
    for(i=0;i<4;i++)
    {
    PORTC=temp;
    delay_ms(5);
    data=PINC & 0x0f;
    if(data==0x07)
    num_key=code[0][i];
    if(data==0x0B)
    mum_key=code[1][i];
    if(data==0x0D)
    mum_key=code[2][i];
    if(data==0x0E)
    mum_key=code[3][i];
    temp=((temp=1) | 0x80) & 0xF0;
    }
    return mum_key;


    چرا temp=70 اینجا رو اصلا نمیفهمم.....

    بعدش این خط آخر داستان چیه؟؟یکی لطف کنه توضیح بده ممنونش میشم....

    temp=((temp>>=1) | 0x80) & 0xF0


    #2
    پاسخ : مشکل در فهم برنامه صفحه کلید ماتریسی

    کسی کمک نکرد؟؟

    دیدگاه


      #3
      پاسخ : مشکل در فهم برنامه صفحه کلید ماتریسی

      سلام
      0x70 یعنی 0b01110000 باینری. همین طور که میبینید بیت هفتم صفره.
      دستور بعدی میاد temp رو یه واحد به سمت چپ شیفت میده و چهار بیت پایین هم صفر میشه.
      مثل این میمونه که توی چهار بیت بالایی temp ، صفر داره میچرخه
      اول که مقدار temp ، برابر 01110000 بعد از اون
      10110000
      11010000
      11100000
      گفت که دیوانه نهی لایق این خانه نهی

      دیدگاه

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