اطلاعیه

Collapse
No announcement yet.

کیپد4*4 و تایمر

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

    کیپد4*4 و تایمر

    سلام به همگی من یه کمک در مورد کیپد و میکرو مگاه 8 میخواستم می خواهم برنامه ای بنویسم که که یک عدد رو از کیپد بخونه و روی ال سی دی نمایش بده و بافشار دادن یه کلید دیگه از کیپد از اون عددی که روی ال سی دی هست معکوس تا صفر بشمره و فاصله هر عدد تا عدد بعدی که کم میشه تا به صفر برسه یک ثانیه باشه در ضمن این عددی که میگره هم باید یک رقمی باشه و هم دو رقمی خواهشاً منو راهنمایی کنید؟؟باتشکر از همه :redface:

    #2
    پاسخ : کیپد4*4 و تایمر

    با سلام
    نمیشه بجای کی پد از سه تا پوش باتون ، یکی برای افزایش زمان یکی برای کاهش زمان و دیگری برای شروع شمارش استفاده کنی
    من همچین برنامه رو چند وقت پیش نوشته بودم اگه کمکت میکنه برات بزارم!

    دیدگاه


      #3
      پاسخ : کیپد4*4 و تایمر

      سلام آقا مجتبی فکر کنم من نتونستم منظورم بیان کنم من واسه این گفتم کیپد که میخواهم چند کار دیگه هم بعداً بهش اضافه کنم حالا یه جور دیگه میگم میخوام که یه عدد دورقمی یا یک رقمی از صفحه کلید بگیره و مثلاً تاز مانی که دکمه استارت نزدیم هیچ کاری انجام نشه و فقط هموم عدد و روی ال سی دی نشون بده و به محض اینکه کلید استارت و زدیم از اون عددی که گرفته معکوس تا صفر بشمره مثلاً اگه عدد 50 رو بهش دادیم از 50 تا صفر بشمره و روی ال سی دی هم نشون بده وفاصله هر عدد تا عدد بعدی یک ثانیه باشه که 50 ثانیه طول بکشه تا به صفر برسه.به هر حال خیلی ممنون که کمک میکن

      دیدگاه


        #4
        پاسخ : کیپد4*4 و تایمر

        چرا دوست عزیز من دقیقا متوجه منظورتون شدم
        دلیلش هم شاید این باشه که این چیزی که من براتون گفتم دقیقا همین جوری کار میکنه یعنی مقدار رو توسط دو تا پوش باتون دریافت میکنه ( با دقت 1 ثانیهآ‌ تا ماکزیممش که متناسب با نوع متغیری که براش تعریف میشه مثلا برای int برابر هست با 32767 ) و این مقدار رو در سط اول lcd نشون میده و با زدن دکمه start یک پایه 1شده و شروع به شمارش معکوس میکنه و پس از صفر شدن آن پایه نیز صفر میشه

        اما فرقی که داره اینه که با کی پد نیست!

        دیدگاه


          #5
          پاسخ : کیپد4*4 و تایمر

          دوست عزیز شما دقیقا کجا شا مشکل دارید ؟؟؟
          خودتون شروع کردید ؟؟
          شما برید جلو ماهم کمکتون میکنیم > :biggrin: :agree:
          practice make perfect

          دیدگاه


            #6
            پاسخ : کیپد4*4 و تایمر

            سلام من تو همین اسکن صفحه کلید مشکل دارم و بعدش هم نمیدونم چه جوری باید این عدد دو رقمی رو روی ال سی دی نشون بدم؟؟آخه من میخواهم که کاربر هر زمانی رو که لازم داشت بتونه با صفحه کلید وارد کنه

            دیدگاه


              #7
              پاسخ : کیپد4*4 و تایمر

              دوست عزیز این هکس را نگاه کن :
              http://www.4shared.com/photo/BuHCg-sy/Untitled_2.html
              باید کی پد را اینطوری ببندی و اول px0 - 4 را خروجی قرار بدی و به آن ها مقدار 1 بدی و px 4 - 7 را وروردی و پورت را چک کنی و مثلا داخل a بریزی بلافاصله بعد از چک کردن باید px 0 - 4 را ورودی قرار بدی و px 4 - 7 را خروجی و مقدار ان ها را یک بکنی و px 0 - 4 را چک کنی و مثلا ان را داخل b قرار بدی .
              اینم کدش :

              #include <mega32.h>
              #include <delay.h>
              #include <stdlib.h>
              // Alphanumeric LCD Module functions
              #asm
              .equ __lcd_port=0x12 ;PORTD
              #endasm
              #include <lcd.h>

              // Declare your global variables here
              unsigned char keynumber[16]={0xEE,0xED,0xEB,0xE7,0xDE,0xDD,0xDB,0xD7,0xBE,0xB D,0xBB,0xB7,0x7E,0x7D,0x7B,0x77};
              unsigned char key,number,i,str;
              void main(void)
              {
              // Declare your local variables here

              // Input/Output Ports initialization
              // Port A initialization
              // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
              // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
              PORTA=0x00;
              DDRA=0x00;

              // Port B initialization
              // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
              // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
              PORTB=0x00;
              DDRB=0x00;

              // Port C initialization
              // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
              // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
              PORTC=0x00;
              DDRC=0x00;

              // Port D initialization
              // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
              // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
              PORTD=0x00;
              DDRD=0x00;

              // Timer/Counter 0 initialization
              // Clock source: System Clock
              // Clock value: Timer 0 Stopped
              // Mode: Normal top=FFh
              // OC0 output: Disconnected
              TCCR0=0x00;
              TCNT0=0x00;
              OCR0=0x00;

              // Timer/Counter 1 initialization
              // Clock source: System Clock
              // Clock value: Timer 1 Stopped
              // Mode: Normal top=FFFFh
              // OC1A output: Discon.
              // OC1B output: Discon.
              // Noise Canceler: Off
              // Input Capture on Falling Edge
              // Timer 1 Overflow Interrupt: Off
              // Input Capture Interrupt: Off
              // Compare A Match Interrupt: Off
              // Compare B Match Interrupt: Off
              TCCR1A=0x00;
              TCCR1B=0x00;
              TCNT1H=0x00;
              TCNT1L=0x00;
              ICR1H=0x00;
              ICR1L=0x00;
              OCR1AH=0x00;
              OCR1AL=0x00;
              OCR1BH=0x00;
              OCR1BL=0x00;

              // Timer/Counter 2 initialization
              // Clock source: System Clock
              // Clock value: Timer 2 Stopped
              // Mode: Normal top=FFh
              // OC2 output: Disconnected
              ASSR=0x00;
              TCCR2=0x00;
              TCNT2=0x00;
              OCR2=0x00;

              // External Interrupt(s) initialization
              // INT0: Off
              // INT1: Off
              // INT2: Off
              MCUCR=0x00;
              MCUCSR=0x00;

              // Timer(s)/Counter(s) Interrupt(s) initialization
              TIMSK=0x00;

              // Analog Comparator initialization
              // Analog Comparator: Off
              // Analog Comparator Input Capture by Timer/Counter 1: Off
              ACSR=0x80;
              SFIOR=0x00;

              // LCD module initialization
              lcd_init(16);

              while (1)
              {
              // Place your code here
              DDRA=0xF0;
              PORTA=0x0F;
              key=PINA;
              DDRA=0x0F;
              PORTA=0xF0;
              key=key|PINA;
              if(key==0xFF)
              {
              for(i=0;i<16;i++)
              {
              if(key==keynumber[i])
              {
              i=i+1;
              number=i;
              if(i==16)
              {
              number=0;
              }
              }
              }
              }
              itoa(number,str);
              lcd_clear();
              lcd_gotoxy(0,0);
              lcd_puts(str);
              delay_ms(300);
              };
              }
              یکم تو باز و بسته شدن اکولاد ها مشکل هست . دیگه خودتون به بزرگی خودتون ببخشید . :biggrin:
              practice make perfect

              دیدگاه


                #8
                پاسخ : کیپد4*4 و تایمر

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

                دیدگاه


                  #9
                  پاسخ : کیپد4*4 و تایمر

                  من متوجه نشدم
                  یعنی الان کارتون را افتاده ؟؟؟؟؟
                  اگه هنوز مشکل دارید بگید ما در خدمتیم >> :smile: :smile:
                  practice make perfect

                  دیدگاه


                    #10
                    پاسخ : کیپد4*4 و تایمر

                    سلام
                    کاش مشخص می کردی که میخوای با سی بنویسی یا با بیسیک
                    در ضمن نمیگم توی همه پروتوئوس ها ولی توی خیلی از پروتوئوس ها کیپد کار نمیکنه و شما واسه اینکه ببینی برنامتون کار میکنه یا نه باید یا توی عمل ببینی یا توی سیمولوشن خود بسکام
                    از آنجا که برنامه تون برنامه ی زیاد خاصی نیست میتونید واسه زمان از دستورات ساده یه wait استفاده کنید
                    مولا علی (ع) میفرمایند : آسوده باش , آستین هارا بالا بزن , بر خدا توکل کن , آنگاه خدا را خواهی دید که زودتر از تو دست به کار شده است .

                    دیدگاه


                      #11
                      پاسخ : کیپد4*4 و تایمر

                      یادم نبود شرمنده من به زبان سی میخوام،اینکه گفتید کارم راه افتاد راستنش هنوز دارم روش فکر میکنم تا بفهمم چی به چه هست آخه من مگا16 دارم بازم اگه برنامه ساده تری هست لطفا راهنمایی کنید :applause:

                      دیدگاه


                        #12
                        پاسخ : کیپد4*4 و تایمر

                        بفرمایید این هم دقیقا همون چیزی که می خواهید :
                        مدار طوری طراحی کردم که میشه زمان رو تا9999 ثانیه تنظیم کرد و با دکمه reset مقدار ائن رو صفر کرد و با دکمه start دستور شمارش معکوس صادر شده و pind.0نیز یک میشه و پس از اتمام شمارش این پایه نیز دوباره
                        صفر می گردد.
                        http://www.persiangig.com/pages/down...r%26keypad.rar

                        pass : mojtaba_led@yahoo.com

                        دیدگاه


                          #13
                          پاسخ : کیپد4*4 و تایمر

                          دوست عزیز اگه با برنامه ی آقا مجتبی نتونستی کار کنی . بگو اون برنامرا ساده تر براتون بنویسم . در ضمن اونی که من نوشته بودم فقط برای وصل کردن keypad بود .
                          دیگه اون روز وقت نکردم کامل بنویسم . اخه امتحان داشتم :cry2: :cry:
                          practice make perfect

                          دیدگاه


                            #14
                            پاسخ : کیپد4*4 و تایمر

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

                            دیدگاه


                              #15
                              پاسخ : کیپد4*4 و تایمر

                              سلام آقا سروش بیزحمت شما هم برنامه خودتون بزارید آخه فایل پرتوس آقا مجتبی که خیلی زحمت کشیده تو کامپیوتر من باز نمیشه واسه همین یکم طول میکشه تا بفهمم چی به چی هست.خیلی :surprised:ممنون

                              دیدگاه

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