اطلاعیه

Collapse
No announcement yet.

مشکل در یک برنامه با Code vision(صفحه کلید و lcd)

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

    مشکل در یک برنامه با Code vision(صفحه کلید و lcd)

    سلام
    من یه برنامه برای ارتباط صفحه کلید و lcd نوشتم که به نظر خحودم منطق درستی داره .خیلی ساده هست و فقط باید از صفحه کلید بخونه و روی lcd نمایش بده ولی درست اجرا نمیشه اگه کسی میتونه لطفا اشکال برنامه رو بگیره.
    پیشاپیش ممنونم.
    لینک:http://www.4shared.com/file/152178867/6604efd9/keypad-lcd.html

    #2
    پاسخ : مشکل در یک برنامه با Code vision(صفحه کلید و lcd)

    سلام..........
    دوست عزیز اتفاقا منطق برنامه اشتباه است.شما باید مثلا یک سطر از صفحه کلید رو یک کنید و سپس ستونها را بخونید و ببینی کدوم پین از میکرو یک شده وبرای همه ستونها این کارو انجام بدی تا بفهمی کدوم کلید فشار داده شده.
    http://www.eca.ir/forum2/index.php/topic,10159.0.html
    Engineering is the art of making what you want from things you can get.
    اموزش DSP ...........................
    http://www.eca.ir/forum2/index.php?topic=29824.0
    http://www.eca.ir/forum2/index.php?topic=32324.0

    دیدگاه


      #3
      پاسخ : مشکل در یک برنامه با Code vision(صفحه کلید و lcd)

      اگر کدتون رو همین جا بزارید روش بحث میکنیم .

      اما اساس کار همین است که ali833 عرض کردند .

      این کار رو هم با یه سری switch . case و یه برنامه ساده می تونید انجام بدید .

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

      دیدگاه


        #4
        پاسخ : مشکل در یک برنامه با Code vision(صفحه کلید و lcd)

        کد:
                 
        #include <mega16.h> 
        #include <delay.h> 
        #include <stdio.h>
        #include <lcd.h>
        #asm
          .equ __lcd_port=0x1B ;PORTA
        #endasm
        #define maxkeys 16
        
        unsigned char key; 
        int butnum;
        //key pad scan table
        flash unsigned char keytbl[16]={0xee, 0xed, 0xeb, 0xe7, 0xde, 0xdd, 0xdb, 0xd7, 0xbe, 0xbd, 0xbb, 0xb7, 0x7e, 0x7d, 0x7b, 0x77};
        
        void main(void)
         { char buffer[20];
          unsigned char w; 
         //tarif a be soorat khorooji
         DDRA = 0xff;
         PORTA = 0xff; 
         
         lcd_init(16);
         lcd_clear();
          
         while(1)
         	{ 
         	
         	 DDRC = 0x0f;
         	 PORTC = 0xf0; 
         	 delay_us(5);
         	 key = PINC;
         	 
         
         	 DDRC = 0xf0;
         	 PORTC = 0x0f; 
         	 delay_us(5);
         	 key = key | PINC;
         	 
         	
         	 if (key != 0xff)
         	 {  
         	  for (butnum=0; butnum<maxkeys; butnum++)
         	  {  
         	    if (keytbl[butnum]==key) break;  
         	  }
         	  if (butnum==maxkeys) butnum=0;
              else butnum++; //to make range 1-16
         	 } 
         	 else butnum=0;
         	 
         	w = keytbl[butnum] ;
         	
         	if(w!=0x00)
            {
              lcd_clear();
              lcd_gotoxy(0,0);          
              sprintf(buffer,"",w); 
               lcd_puts(buffer);
               delay_ms(100);
            }
               
               else
             {  
              lcd_clear();
              delay_ms(100);
             }  
         	
         	} // end while
         }  //end main
        [img][/img]

        دیدگاه


          #5
          پاسخ : مشکل در یک برنامه با Code vision(صفحه کلید و lcd)

          سلام

          #include <mega16.h>
          #include <delay.h>
          #include <stdlib.h>
          #include <lcd.h>
          #asm
          .equ __lcd_port=0x1B ;PORTA
          #endasm
          flash unsigned char keytbl[16]={0xee, 0xed, 0xeb, 0xe7, 0xde, 0xdd, 0xdb, 0xd7, 0xbe, 0xbd, 0xbb, 0xb7, 0x7e, 0x7d, 0x7b, 0x77};
          void main(void)
          {
          char buffer[20],w,key,butnum;
          lcd_init(16);
          lcd_clear();
          while(1)
          {
          DDRC=0x0f;
          PORTC=0xf0;
          delay_ms(5);
          key=(PINC&0xf0);
          PORTC=0x0f;
          DDRC=0xf0;
          delay_ms(5);
          key=key|(PINC&0x0f);
          for(butnum=0; butnum<16; butnum++)if(keytbl[butnum]==key)w=butnum;
          lcd_clear();
          itoa(w,buffer);
          lcd_putsf("num="
          lcd_puts(buffer);
          delay_ms(20);
          }
          }
          اینم فایل c و hex و پروتئوس

          http://www.4shared.com/file/153758990/74d4b74b/keypad-lcd.html
          فرزندم در راه است

          دیدگاه


            #6
            پاسخ : مشکل در یک برنامه با Code vision(صفحه کلید و lcd)

            خیلی خیلی ممنون . :smile:خیلی لطف کردید.

            دیدگاه

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