NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 3402 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 2 از 2

موضوع: اجرای دستور با کی پد

  1. #1
    کاربر علاقه مند
    تاریخ عضویت
    Jul 2014
    نوشته ها
    37
    تشکر
    3
    تشکر شده 0 بار در 0 پست

    پیش فرض اجرای دستور با کی پد

    سلام دوستان
    من برنامه زیر اجرا کردم و مدارشو بستم فقط میخوام یه تغییری توش بدم که نمیدونم چکار کنم.
    #include <mega32.h>
    #include <delay.h>
    #asm
    .equ __lcd_port=0x18
    #endasm
    #include <lcd.h>
    #define c1 PINA.4
    #define c2 PINA.5
    #define c3 PINA.6
    #define c4 PINA.7
    flash char row[]={0xfe,0xfd,0xfb,0xf7};
    flash char data_key[]={
    '1','2','3','A',
    '4','5','6','B',
    '7','8','9','C',
    '*','0','#','D'};
    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;
    PORTA=row[r];
    DDRA=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_putchar(table);
    while (c1==0){}
    while (c2==0){}
    while (c3==0){}
    while (c4==0){}
    delay_ms(50);
    }
    }
    }
    }
    //_________________________________________


    void main(){
    PORTA=0xff;
    DDRA=0x0f;
    lcd_init(16);
    lcd_gotoxy(0,0);
    lcd_putsf("test keypad");
    keypad();
    while(1){
    };
    }

    میخوام وقتی آخرین کلید رو زدم دستور
    lcd_clear(); اجرا بشه

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  3. #2
    کاربر فعال
    تاریخ عضویت
    Mar 2010
    نوشته ها
    236
    تشکر
    101
    تشکر شده 246 بار در 163 پست

    پیش فرض

    کد:
    unsigned char keypad()
    {
        lcd_gotoxy(0,1);
        lcd_putsf("~");
        unsigned char ac,table;
        while (1){
            for (r=0;r<4;r++)
            {
                ac=4;
                PORTA=row[r];
                DDRA=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];
                    return table
                    
                }
                delay_ms(1);
            }
        }
    }
    
    if(keypad()=='*')
        lcd_clear();

موضوعات مشابه

  1. پاسخ: 0
    آخرين نوشته: 05-05-2014, 11:54
  2. پاسخ: 6
    آخرين نوشته: 05-03-2014, 18:24
  3. دستور ارسال عدد در spi با میکرو avr
    توسط Niloufar.Male در انجمن AVR
    پاسخ: 0
    آخرين نوشته: 26-10-2013, 19:52
  4. دستورات lcd
    توسط sadeghbakhshi در انجمن LPC series (NXP)
    پاسخ: 3
    آخرين نوشته: 18-10-2013, 20:14
  5. دستورات اسمبلی
    توسط Division در انجمن AVR
    پاسخ: 3
    آخرين نوشته: 08-07-2010, 11:56

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •