اطلاعیه

Collapse
No announcement yet.

کار با کی پد به زبان C

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

    کار با کی پد به زبان C

    سلام
    با کدویژن کار می کنم
    می خوام از یه کی پد اطلاعات بگیرم و عدد اون رو داخل LCD نمایش بدم و بعد با زدن ENTER ( یه دکمه از کی پد ) این اطلاعات رو بخونم و متناسب با عددی که اونجا قرار داده شده بره داخل یه SWITCH CASE و برای هر عدد یک سری کارا رو بکنم .
    اگر میشه یه راهنمایی بکنین ، در حد مبتدی بلدم
    پیشاپیش ممنون از راهنمایی شما استید ارجمند @};-

    #2
    پاسخ : کار با کی پد به زبان C

    سلام دوست عزیز

    شما باید اول برنامه خوندن کیپد رو بنویسی. که روشهای مختلفی برای این کار وجود داره. بعد این مقدار را رو lcd نمایش میدی و کارایی رو که میخواین انجام میدین و کار زیاد سختی نیست. شما بگید تو کدوم قسمتش مشکل دارین تا من کمکتون کنم؟
    تو قسمت خوندن از کیپد مشکل دارین :question:
    اگر روزی هیچ مشکلی سر راهم نبود ؛ میفهمم که راه را اشتباه رفته ام!

    دیدگاه


      #3
      پاسخ : کار با کی پد به زبان C

      برنامه های اتصال keypad و lcd توی انجمن قبلا مطرح شدن لطفا search کنید.
      It's nice to be important but it's important to be nice!

      از اینکه نمی رسم جواب دوستان را بدم معذرت می خوام.

      دیدگاه


        #4
        پاسخ : کار با کی پد به زبان C

        ساده ترین برنامه از نظر کد نویسی واسه کیپد رو میشه یه توضیحی بدین ؟
        کیپد 4 در 4

        دیدگاه


          #5
          پاسخ : کار با کی پد به زبان C

          سلام. این یه برنامه که هر چیزی رو با کیپد بزنی روی lcd نشون میده:




          #include <mega32.h>
          #include <delay.h>
          #asm
          .equ __lcd_port=0x1B
          #endasm
          #include <lcd.h>
          #define c1 PINB.4
          #define c2 PINB.5
          #define c3 PINB.6
          #define c4 PINB.7
          flash char row[]={0xfe,0xfd,0xfb,0xf7};
          flash char data_key[]={
          '5','4','B','6& #039;,
          '0','*','D','#& #039;,
          '2','1','A','3& #039;,
          '8','7','C','9& #039;};
          unsigned char ac,table;
          unsigned int r;
          void keypad(){
          lcd_gotoxy(0,1);
          lcd_putsf("~"
          while (1){
          for (r=0;r<4;r++){
          ac=4;
          PORTB=row[r];
          DDRB=0x0f;
          if (c1==0) ac=0;
          if (c2==0) ac=1;
          if (c3==0) ac=2;
          if (c4==0) ac=3;
          if (!(ac==4)){
          table=data_key[(r*4)+ac];
          lcd_gotoxy(1,1);
          lcd_putchar(table);
          while (c1==0) {}
          while (c2==0) {}
          while (c3==0) {}
          while (c4==0) {}
          delay_ms(150);
          lcd_gotoxy(1,1);
          lcd_putsf(" "
          }
          }
          }
          }
          void main(){
          PORTB=0xff;
          DDRB=0x0f;
          lcd_init(16);
          lcd_gotoxy(0,0);
          lcd_putsf("test keypad"
          keypad();
          }

          دیدگاه


            #6
            پاسخ : کار با کی پد به زبان C

            آقا دستت درد نکنه :-bd
            میشه یه توضیحی هم بدی ، تا ما که بیسواد هستیم هم یه چیزی یاد بگیریم ؟
            چون نمی خوام همینجوری تو دیواری برم جلو حد اقل یه چیزی یاد بگیریم به دردمون بخوره
            ممنون

            دیدگاه


              #7
              پاسخ : کار با کی پد به زبان C

              کجاشو متوجه نمیشید؟

              دیدگاه


                #8
                پاسخ : کار با کی پد به زبان C

                والا خجالت می کشم بگم ، تقریباً کار اصلیش رو نفهمیدم ! :redface:
                من فقط در حد راه اندازی چند تا استپ موتور و کار با چند تا کلید ساده و تایمر و اینجور چیزا کار کردم !
                یه مبتدی مبتدیم !
                چند جا هم یه چیزایی خوندم ، ولی خوب دیدم اینجا با پرسش و پاسخ جلو برم بهتره .
                اگر از خود
                flash char row[]={0xfe,0xfd,0xfb,0xf7};
                و به بعد رو توضیح بدید ممنون میشم @};-
                تقریباً بیشتر دستوراتش مثل این flash برام نا آشناست

                دیدگاه


                  #9
                  پاسخ : کار با کی پد به زبان C

                  این دستور یه آرایه با 4 تا خونه که با فرمت flash به مقدارهای مشخص که داخل کروشه هست تولید میکنه

                  دیدگاه


                    #10
                    پاسخ : کار با کی پد به زبان C

                    اینم بد نیست:

                    http://www.iranled.com/forum/showthread.php?tid=9744&pid=60522#pid60522
                    تشکر لازم نیست!

                    دیدگاه


                      #11
                      پاسخ : کار با کی پد به زبان C

                      نوشته اصلی توسط ardavanzzz
                      این دستور یه آرایه با 4 تا خونه که با فرمت flash به مقدارهای مشخص که داخل کروشه هست تولید میکنه
                      اول از همه flash یعنی چی ؟
                      بعدشم بقیه کد ؟
                      ممنون

                      دیدگاه


                        #12
                        پاسخ : کار با کی پد به زبان C

                        اگه شما یه متغییر بخواید تعریف کنید که مقدارش با قطع برق از بین نره از نوع flash تعریف میکنی.
                        در ادامه برنامه ما بصورت ماترسی عمل میکنه.یعنی میایم دکمه های کی پد رو به صورت ماتریسی چک میکنیم که کدومشون فشرده شده.
                        ابتدا سطر اول رو یک میکنیم بعد تک تک دکمه های ستونها رو چک میکنیم بعد سطره دو رو یک میکنیم و ...
                        هرکدوم که صفر شده بود یینی اون دکمه فشرده شده.حالا متناظر با دکمه فشرده شده از این آرایه
                        flash char data_key[]={
                        '5','4','B','6& #039;,
                        '0','*','D','#& #039;,
                        '2','1','A','3& #039;,
                        '8','7','C','9& #039;};

                        مقدار مورد نظر رو بهش نسبت میدیم.

                        دیدگاه


                          #13
                          پاسخ : کار با کی پد به زبان C

                          آقا به تکنولوژی کیپد دست پیدا کردیم
                          الان من می خوام ، هرچی کیپد نوشتم ، رو ازش استفاده بکنم
                          مثلا عدد 456789 رو بزنم و روی lcd نمیاش بدم و با زدن یک دکمه )enter ) اون عدد بیفته داخل یک سویچ کیس .
                          یه چیز تو مایه های قفل با این تفاوت که قراراه با زدن هر شماره یک کیس مربوط به خودش اجرا بشه و میکرو یک کار بخصوصی رو انجام بده
                          میشه راهنمایی بکنین که چجور کد رو وارد کنم ،

                          دیدگاه

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