problem in keypad of 8051

i m using micro-controller p89v51rd2
in that i m trying program of keypad which out put show on 7 segment but in that when i m hold the key than out put will be show but after relished the key out put dont show or say my out put was not hold.
so any one tell me how to hold my out put.

Parents
  • keypad code that i m using

    #include <P89V51Rx2.H>
    sbit R1 = P2^0;
    sbit R2 = P2^1;
    sbit R3 = P2^2;
    sbit R4 = P2^3;
    sbit C1 = P2^4;
    sbit C2 = P2^5;
    sbit C3 = P2^6;
    sbit C4 = P2^7;
    sbit seg_a=P1^0;
    sbit seg_b=P1^1;
    sbit seg_c=P1^2;
    sbit seg_d=P1^3;
    sbit seg_e=P1^4;
    sbit seg_f=P1^5;
    sbit seg_g=P1^6;
    
    void main()
            {
    P2=0xf0;
    R4=1;
    R3=1;
    R2=1;
    R1=0;
    if (C1 == 0)
    {
    seg_a=1;
    seg_b=1;
    seg_c=1;
    seg_d=1;
    seg_e=1;
    seg_f=1;
    seg_g=0;
    }
    if (C2 == 0)
    {                                               seg_a=0;
    seg_b=1;
    seg_c=1;
    seg_d=0;
    seg_e=0;
    seg_f=0;
    seg_g=0;
    }
    if (C3 == 0)                                    {
    seg_a=1;
    seg_b=1;
    seg_c=0;
    seg_d=1;
    seg_e=1;
    seg_f=0;
    seg_g=1;
    }
    if (C4 == 0)
    {
    seg_a=1;
    seg_b=1;
    seg_c=1;
    seg_d=1;
    seg_e=0;
    seg_f=0;
    seg_g=1;
    }
    R4=1;
    R3=1;
    R1=1;
    R2=0;
    if (C1 == 0)
    {
    seg_a=0;
    seg_b=1;
    seg_c=1;
    seg_d=0;
    seg_e=0;
    seg_f=1;
    seg_g=1;
    }
    if (C2 == 0)
    {
    seg_a=1;
    seg_b=0;
    seg_c=1;
    seg_d=1;
    seg_e=0;
    seg_f=1;
    seg_g=1;
    }
    if (C3 == 0)
    {
    seg_a=1;
    seg_b=0;
    seg_c=1;
    seg_d=1;
    seg_e=1;
    seg_f=1;
    seg_g=1;
    }
    if (C4 == 0)
    {
    seg_a=1;
    seg_b=1;
    seg_c=1;
    seg_d=0;
    seg_e=0;
    seg_f=0;
    seg_g=0;                }
    R4=1;
    R1=1;
    R2=1;                   R3=0;
    if (C1 == 0)
    {
    seg_a=1;
    seg_b=1;
    seg_c=1;
    seg_d=1;
    seg_e=1;
    seg_f=1;                seg_g=1;
    }
    if (C2 == 0)
    {
    seg_a=1;
    seg_b=1;
    seg_c=1;
    seg_d=1;
    seg_e=0;
    seg_f=1;                seg_g=1;
    }
    if (C3 == 0)
    {
    seg_a=1;
    seg_b=1;
    seg_c=1;
    seg_d=0;
    seg_e=1;
    seg_f=1;
    seg_g=1;
    }
    if (C4 == 0)
    {
    seg_a=0;
    seg_b=1;
    seg_c=1;
    seg_d=1;
    seg_e=1;
    seg_f=0;
    seg_g=1;
    }
    R1=1;
    R2=1;
    R3=1;
    R4=0;
    if (C1 == 0)
    {
    seg_a=1;
    seg_b=0;
    seg_c=0;
    seg_d=1;
    seg_e=1;
    seg_f=1;
    seg_g=0;                        }
    if (C2 == 0)
    {
    seg_a=0;
    seg_b=0;
    seg_c=1;
    seg_d=1;
    seg_e=1;
    seg_f=1;
    seg_g=1;
    }
    if (C3 == 0)
    {
    seg_a=1;
    seg_b=0;
    seg_c=0;
    seg_d=1;
    seg_e=1;
    seg_f=1;
    seg_g=1;                        }
    if (C4 == 0)
    {
    seg_a=1;
    seg_b=0;
    seg_c=0;
    seg_d=0;
    seg_e=1;
    seg_f=1;
    seg_g=1;
    }
    seg_a=0;
    seg_b=0;
    seg_c=0;
    seg_d=0;
    seg_e=0;
    seg_f=0;
    seg_g=0;
    }
    

Reply
  • keypad code that i m using

    #include <P89V51Rx2.H>
    sbit R1 = P2^0;
    sbit R2 = P2^1;
    sbit R3 = P2^2;
    sbit R4 = P2^3;
    sbit C1 = P2^4;
    sbit C2 = P2^5;
    sbit C3 = P2^6;
    sbit C4 = P2^7;
    sbit seg_a=P1^0;
    sbit seg_b=P1^1;
    sbit seg_c=P1^2;
    sbit seg_d=P1^3;
    sbit seg_e=P1^4;
    sbit seg_f=P1^5;
    sbit seg_g=P1^6;
    
    void main()
            {
    P2=0xf0;
    R4=1;
    R3=1;
    R2=1;
    R1=0;
    if (C1 == 0)
    {
    seg_a=1;
    seg_b=1;
    seg_c=1;
    seg_d=1;
    seg_e=1;
    seg_f=1;
    seg_g=0;
    }
    if (C2 == 0)
    {                                               seg_a=0;
    seg_b=1;
    seg_c=1;
    seg_d=0;
    seg_e=0;
    seg_f=0;
    seg_g=0;
    }
    if (C3 == 0)                                    {
    seg_a=1;
    seg_b=1;
    seg_c=0;
    seg_d=1;
    seg_e=1;
    seg_f=0;
    seg_g=1;
    }
    if (C4 == 0)
    {
    seg_a=1;
    seg_b=1;
    seg_c=1;
    seg_d=1;
    seg_e=0;
    seg_f=0;
    seg_g=1;
    }
    R4=1;
    R3=1;
    R1=1;
    R2=0;
    if (C1 == 0)
    {
    seg_a=0;
    seg_b=1;
    seg_c=1;
    seg_d=0;
    seg_e=0;
    seg_f=1;
    seg_g=1;
    }
    if (C2 == 0)
    {
    seg_a=1;
    seg_b=0;
    seg_c=1;
    seg_d=1;
    seg_e=0;
    seg_f=1;
    seg_g=1;
    }
    if (C3 == 0)
    {
    seg_a=1;
    seg_b=0;
    seg_c=1;
    seg_d=1;
    seg_e=1;
    seg_f=1;
    seg_g=1;
    }
    if (C4 == 0)
    {
    seg_a=1;
    seg_b=1;
    seg_c=1;
    seg_d=0;
    seg_e=0;
    seg_f=0;
    seg_g=0;                }
    R4=1;
    R1=1;
    R2=1;                   R3=0;
    if (C1 == 0)
    {
    seg_a=1;
    seg_b=1;
    seg_c=1;
    seg_d=1;
    seg_e=1;
    seg_f=1;                seg_g=1;
    }
    if (C2 == 0)
    {
    seg_a=1;
    seg_b=1;
    seg_c=1;
    seg_d=1;
    seg_e=0;
    seg_f=1;                seg_g=1;
    }
    if (C3 == 0)
    {
    seg_a=1;
    seg_b=1;
    seg_c=1;
    seg_d=0;
    seg_e=1;
    seg_f=1;
    seg_g=1;
    }
    if (C4 == 0)
    {
    seg_a=0;
    seg_b=1;
    seg_c=1;
    seg_d=1;
    seg_e=1;
    seg_f=0;
    seg_g=1;
    }
    R1=1;
    R2=1;
    R3=1;
    R4=0;
    if (C1 == 0)
    {
    seg_a=1;
    seg_b=0;
    seg_c=0;
    seg_d=1;
    seg_e=1;
    seg_f=1;
    seg_g=0;                        }
    if (C2 == 0)
    {
    seg_a=0;
    seg_b=0;
    seg_c=1;
    seg_d=1;
    seg_e=1;
    seg_f=1;
    seg_g=1;
    }
    if (C3 == 0)
    {
    seg_a=1;
    seg_b=0;
    seg_c=0;
    seg_d=1;
    seg_e=1;
    seg_f=1;
    seg_g=1;                        }
    if (C4 == 0)
    {
    seg_a=1;
    seg_b=0;
    seg_c=0;
    seg_d=0;
    seg_e=1;
    seg_f=1;
    seg_g=1;
    }
    seg_a=0;
    seg_b=0;
    seg_c=0;
    seg_d=0;
    seg_e=0;
    seg_f=0;
    seg_g=0;
    }
    

Children
More questions in this forum