اطلاعیه

Collapse
No announcement yet.

برنامه صفحه کلید 3*4 برای اتصال به میکروکنترلر atmega16

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

    برنامه صفحه کلید 3*4 برای اتصال به میکروکنترلر atmega16

    سلام دوستان
    برنامه صفحه کلید 3*4 برای اتصال به میکروکنترلر atmega16
    لطفا کمک کنید

    #2
    پاسخ : برنامه صفحه کلید 3*4 برای اتصال به میکروکنترلر atmega16

    زبان برنامه نویسی؟

    دیدگاه


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

      نوشته اصلی توسط 666mhd
      سلام دوستان
      برنامه صفحه کلید 3*4 برای اتصال به میکروکنترلر atmega16
      با codevision
      لطفا کمک کنید

      دیدگاه


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

        سلام

        مثال) برنامه ای بنویسید که با فشرده شدن هر یک از کلیدها معادل آنرا بر روی Lcdآ‌ نمایش دهد.
        3*4 دقیقاً مانند همین است.





        i# include <mega16.h>
        #include <delay.h>
        #include <stdlib.h>
        #asm
        .equ __lcd_port=0x1B ;PORTA
        #endasm
        #include <lcd.h>
        unsigned char data;
        char s1[8];
        void ref_key(void){
        DDRC=0x0f;
        //******************************
        PORTC=0xff;
        PORTC.0=0;
        delay_ms(15);
        if(PINC.4==0)data=0;
        if(PINC.5==0)data=1;
        if(PINC.6==0)data=2;
        if(PINC.7==0)data=3;
        //*******************************
        PORTC=0xff;
        PORTC.1=0;
        delay_ms(15);
        if(PINC.4==0)data=4;
        if(PINC.5==0)data=5;
        if(PINC.6==0)data=6;
        if(PINC.7==0)data=7;
        //****************************
        PORTC=0xff;
        PORTC.2=0;
        delay_ms(15);
        if(PINC.4==0)data=8;
        if(PINC.5==0)data=9;
        if(PINC.6==0)data=10;
        if(PINC.7==0)data=11;
        //****************************
        PORTC=0xff;
        PORTC.3=0;
        delay_ms(15);
        if(PINC.4==0)data=12;
        if(PINC.5==0)data=13;
        if(PINC.6==0)data=14;
        if(PINC.7==0)data=15;
        //****************************
        }
        void main(void)
        {
        PORTC=0x0f;
        lcd_init(16);
        while (1)
        {
        ref_key();
        itoa(data,s1);
        lcd_gotoxy(6,1);
        lcd_puts(s1);
        delay_ms(300);
        };
        }

        دیدگاه


          #5
          پاسخ : برنامه صفحه کلید 3*4 برای اتصال به میکروکنترلر atmega16

          سلام من برنامه شما را نوشتم ولی جواب نداد تو این برنامه باید سطر ها را pullup کرد؟
          کسی کوه بزرگ را جابه جا می کند که شروع به برداشتن سنگریزه ها کند.

          دیدگاه


            #6
            پاسخ : برنامه صفحه کلید 3*4 برای اتصال به میکروکنترلر atmega16

            دوست عزیز ببین این برنامه به دردتون میخوره:
            /************************************************** ***
            This program was produced by the
            CodeWizardAVR V1.24.7e Professional
            Automatic Program Generator
            © Copyright 1998-2005 Pavel Haiduc, HP InfoTech s.r.l.
            http://www.hpinfotech.com
            e-mailffice@hpinfotech.com

            Project :
            Version :
            Date : 11/08/2010
            Author : F4CG
            Company : F4CG
            Comments:


            Chip type : ATmega16
            Program type : Application
            Clock frequency : 8.000000 MHz
            Memory model : Small
            External SRAM size : 0
            Data Stack size : 512
            ************************************************** ***/

            #include <mega16.h>
            #include <delay.h>
            #include <stdlib.h>
            // Alphanumeric LCD Module functions
            #asm
            .equ __lcd_port=0x1B ;PORTA
            #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
            DDRD=0xF0;
            PORTD=0x0F;
            key=PIND;
            DDRD=0x0F;
            PORTD=0xF0;
            key=key|PIND;
            if(key==0xFF)
            {
            for(i=0;i<16;i++)
            {
            if(key==keynumber[i])
            {
            i=i+1;
            number=i;
            if(i==16){number=0;}
            }
            }
            }
            ftoa(number,0,str);
            lcd_clear();
            lcd_gotoxy(0,0);
            lcd_puts(str);
            delay_ms(350);
            };
            }
            اگه جواب نداد یه دستی به نوع متغییر هاش بزنید .
            موفق باشید
            practice make perfect

            دیدگاه


              #7
              پاسخ : برنامه صفحه کلید 3*4 برای اتصال به میکروکنترلر atmega16


              تو عملی 3، 6، 9، 0 ام کار نمیکنه :cry2: :cry2:
              کسی میدونه چرا؟
              ما را نه غم دوزخ است ، نه حرص بهشت

              دیدگاه


                #8
                پاسخ : برنامه صفحه کلید 3*4 برای اتصال به میکروکنترلر atmega16

                نوشته اصلی توسط raad07

                تو عملی 3، 6، 9، 0 ام کار نمیکنه :cry2: :cry2:
                کسی میدونه چرا؟
                ما را نه غم دوزخ است ، نه حرص بهشت

                دیدگاه


                  #9
                  پاسخ : برنامه صفحه کلید 3*4 برای اتصال به میکروکنترلر atmega16

                  با سلام،

                  نمیدونم که مشکل هنوز هم پابرجاست، یا حل شده! ( حتما مشکل هست که تاپیک رو پ کردی دیگه :mrgreen: )
                  در هر صورت، به اینجا یه سری بزن :

                  http://www.eca.ir/forum2/index.php?topic=65087.0

                  البته آخرین ورژن نیست ( بدلیل استقبال گرمی که شده!!! ) ولی کامله .....
                  مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

                  Sh_Nourbakhsh@Yahoo.com

                  http://s2.picofile.com/file/7170362468/_Wall_e_.jp

                  دیدگاه


                    #10
                    پاسخ : برنامه صفحه کلید 3*4 برای اتصال به میکروکنترلر atmega16

                    raad07.persiangig.com/00keypad.txt
                    نمیفهمم چیش اشکال داره
                    تو پروتئوس مثـ مرد کار میکنه
                    ولی تو عملی 9، 6، 3، 0 کار نمیکنن
                    اشکال چیست عایا؟ :cry2:
                    ما را نه غم دوزخ است ، نه حرص بهشت

                    دیدگاه


                      #11
                      پاسخ : برنامه صفحه کلید 3*4 برای اتصال به میکروکنترلر atmega16

                      نوشته اصلی توسط raad07
                      raad07.persiangig.com/00keypad.txt
                      نمیفهمم چیش اشکال داره
                      تو پروتئوس مثـ مرد کار میکنه
                      ولی تو عملی 9، 6، 3، 0 کار نمیکنن
                      اشکال چیست عایا؟ :cry2:
                      یه ردیف یا ستون کار نمی کنه . اعداد پشت سر م هستن .. یا پین میکرو سوخته یا کیپد مشکل داره

                      دیدگاه


                        #12
                        پاسخ : برنامه صفحه کلید 3*4 برای اتصال به میکروکنترلر atmega16

                        نوشته اصلی توسط sina_mehraban
                        یه ردیف یا ستون کار نمی کنه . اعداد پشت سر م هستن .. یا پین میکرو سوخته یا کیپد مشکل داره
                        :surprised: نه
                        تو کیپد من صفر تو ردیف وسطه :biggrin:
                        اگـ ستاره بود میشد یـ ردیف

                        ضمنا، کیپد تست کردم، سالمه سالمه
                        مشکل نرم افزاریه
                        ولی نمیفهمم چرا بقیه کار میکنن
                        این چهارتا کار نمیکنن :angry:
                        ما را نه غم دوزخ است ، نه حرص بهشت

                        دیدگاه


                          #13
                          پاسخ : برنامه صفحه کلید 3*4 برای اتصال به میکروکنترلر atmega16

                          سلام دوست عزیز میتونی از انکودر 74c922که مخصوص صفحه کلید هستش استفاده کنی خروجیش bcdهستش وبراحتی میتونی بی دردسر ازش استفاده کنی بعضی ها میگن باید تا حد امکان سخت افزارو کم حجم تر طراحی کنی من زیاد موافق نیستم چون هم برنامه پیچیده میشه وکلی هم باید دردسر راهندازی کی پد داشته باشی
                          MEHRENIA1366@GMAIL.COM
                          مغز انسان خيلي پيچيده است و بخاطر همين هميشه دنبال راه حلهاي پيچيده ميگرده با کمي تامل ميشه راه حلهاي ساده تري رو پيدا کرد.هميشه پيچدگي وحجم بالا نشانه داشتن علم زياد نيست.

                          دیدگاه


                            #14
                            پاسخ : برنامه صفحه کلید 3*4 برای اتصال به میکروکنترلر atmega16

                            نوشته اصلی توسط mehrenia_1366
                            سلام دوست عزیز میتونی از انکودر 74c922که مخصوص صفحه کلید هستش استفاده کنی خروجیش bcdهستش وبراحتی میتونی بی دردسر ازش استفاده کنی بعضی ها میگن باید تا حد امکان سخت افزارو کم حجم تر طراحی کنی من زیاد موافق نیستم چون هم برنامه پیچیده میشه وکلی هم باید دردسر راهندازی کی پد داشته باشی
                            خوب این کارای ساده انجام میشه کـ یاد بگیریم تو کارای بزرگتر راحت استفاده کنیم
                            ضمنا، برنامه ام خراب بود، با یـ برنامه دیگه کـ از پیک پارس دانلود کردم راهش انداختم
                            در ضمن خیلی ممنون کـ این درایور رو معرفی کردین
                            برم تو کارش، اگـ اینطوری باشه خیلی تو وقت آدم (تو برنامه نویسی) صرفه جوئی میشه (البته اگـ گرون نباشه) :icon_razz:

                            ممنونم
                            ما را نه غم دوزخ است ، نه حرص بهشت

                            دیدگاه


                              #15
                              پاسخ : برنامه صفحه کلید 3*4 برای اتصال به میکروکنترلر atmega16

                              نوشته اصلی توسط mehrenia_1366
                              سلام دوست عزیز میتونی از انکودر 74c922که مخصوص صفحه کلید هستش استفاده کنی خروجیش bcdهستش وبراحتی میتونی بی دردسر ازش استفاده کنی
                              عجب آی سی ئیه :wow: :wow:
                              دست شما درد نکنه

                              فقط وقتی از این آی سی استفاده میشه باید بازم پول پ شه؟
                              من فقط تو پروتئوس استفاده کردم ازش :redface:
                              ما را نه غم دوزخ است ، نه حرص بهشت

                              دیدگاه

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