Thông báo

Collapse
No announcement yet.

các bạn giúp mình cách quét và đọc phím BCD này với

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • các bạn giúp mình cách quét và đọc phím BCD này với

    mong các bạn giúp mình các quét và đọc giá trị của 3 phím BCD này với. giá trị của mỗi phím được lưu vào mỗi biến tương ứng và hiển thị các biến này trên led 7seg. cảm ơn các bạn rất nhiều!
    Attached Files
    Vũ xuân Lợi
    YM!:

  • #2
    ý tưởng của bạn là gì nhỉ :s
    Nguyễn Huy Biên - 01649 802 694
    gmail :

    Comment


    • #3
      có nghĩa là mình mua đc switch BCD mình muốn thử đọc switch đó rồi lưu vào 1 biến tương ứng. nếu mỗi phím mắc vào từng PORT của VĐK thì mình đã làm đc rồi nhưng sử dung cách quét phím để tiết kiệm chân VĐK thì mình không biết nên làm ntn? rất mong mọi người giúp đỡ (vì nếu quét đc 3 phím này thì mình sẽ phát triển quét nhiều phím hơn) . mình đang rất cần
      Vũ xuân Lợi
      YM!:

      Comment


      • #4
        google search keypad 4x4
        Website chính thức đổi địa chỉ website thành
        Mời các bạn ghé thăm !!!

        Comment


        • #5
          Click image for larger version

Name:	untitled.bmp
Views:	1
Size:	537.9 KB
ID:	1363776
          đây là code mà mình đã lập trình nhưng vẫn không đc. E nhờ các cao bác xem giúp E xem E còn sai chỗ nào mà nó không chạy! E xin trân thành cảm ơn!
          /************************************************** ***
          This program was produced by the
          CodeWizardAVR V2.05.0 Professional
          Automatic Program Generator
          © Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.
          HP InfoTech, Development Tools for Microcontrollers, C Compilers, In-System Programmers

          Project :
          Version :
          Date : 3/24/2012
          Author : NeVaDa
          Company :
          Comments:


          Chip type : ATmega8
          Program type : Application
          AVR Core Clock frequency: 8.001000 MHz
          Memory model : Small
          External RAM size : 0
          Data Stack size : 256
          ************************************************** ***/

          #include <mega8.h>
          #include <delay.h>
          #define A PIND.0
          #define B PIND.1
          #define C PIND.2
          #define D PIND.3

          unsigned char _7_segment[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6 f};
          unsigned char Quetphim [4]={0xEf,0xDf,0xBf,0x7f};
          unsigned char tmp1=0, tmp2=0, tmp3=0, tmp4=0, tmp5,tmp6;

          // Timer 0 overflow interrupt service routine
          interrupt [TIM0_OVF] void timer0_ovf_isr(void)
          {
          // Place your code here
          ;
          }



          void Quetbanphim(void)
          {
          unsigned char x,y;
          for(x=0;x<4;x++)
          {
          DDRD=0xf0;
          PORTD=Quetphim[x];
          /* Xu li so lieu danh cho dau vao so 1 */
          if(x==0)
          {
          for(y=0;y<100;y++)
          {
          if(A==1 & B==1 & C==1 & D==1) { tmp1 = 0;}
          if(A==0 & B==1 & C==1 & D==1) { tmp1 = 1;}
          if(B==0 & A==1 & C==1 & D==1) { tmp1 = 2;}
          if(A==0 & B==0 & C==1 & D==1) { tmp1 = 3;}
          if(C==0 & A==1 & B==1 & D==1) { tmp1 = 4;}
          if(A==0 & C==0 & B==1 & D==1) { tmp1 = 5;}
          if(B==0 & C==0 & A==1 & D==1) { tmp1 = 6;}
          if(A==0 & B==0 & C==0 & D==1) { tmp1 = 7;}
          if(D==0 & A==1 & B==1 & C==1) { tmp1 = 8;}
          if(A==0 & D==0 & B==1 & C==1) { tmp1 = 9;}
          }
          }
          /* Xu li so lieu danh cho dau vao so 2 */
          if(x==1)
          {
          for(y=0;y<100;y++)
          {
          if(A==1 & B==1 & C==1 & D==1) { tmp2 = 0;}
          if(A==0 & B==1 & C==1 & D==1) { tmp2 = 1;}
          if(B==0 & A==1 & C==1 & D==1) { tmp2 = 2;}
          if(A==0 & B==0 & C==1 & D==1) { tmp2 = 3;}
          if(C==0 & A==1 & B==1 & D==1) { tmp2 = 4;}
          if(A==0 & C==0 & B==1 & D==1) { tmp2 = 5;}
          if(B==0 & C==0 & A==1 & D==1) { tmp2 = 6;}
          if(A==0 & B==0 & C==0 & D==1) { tmp2 = 7;}
          if(D==0 & A==1 & B==1 & C==1) { tmp2 = 8;}
          if(A==0 & D==0 & B==1 & C==1) { tmp2 = 9;}
          }
          }
          /* Xu li so lieu danh cho dau vao so 3*/
          if(x==2)
          {
          for(y=0;y<100;y++)
          {
          if(A==1 & B==1 & C==1 & D==1) { tmp3 = 0;}
          if(A==0 & B==1 & C==1 & D==1) { tmp3 = 1;}
          if(B==0 & A==1 & C==1 & D==1) { tmp3 = 2;}
          if(A==0 & B==0 & C==1 & D==1) { tmp3 = 3;}
          if(C==0 & A==1 & B==1 & D==1) { tmp3 = 4;}
          if(A==0 & C==0 & B==1 & D==1) { tmp3 = 5;}
          if(B==0 & C==0 & A==1 & D==1) { tmp3 = 6;}
          if(A==0 & B==0 & C==0 & D==1) { tmp3 = 7;}
          if(D==0 & A==1 & B==1 & C==1) { tmp3 = 8;}
          if(A==0 & D==0 & B==1 & C==1) { tmp3 = 9;}
          }
          }

          /* Xu li so lieu danh cho dau vao so 3*/
          if(x==3)
          {
          for(y=0;y<100;y++)
          {
          if(A==1 & B==1 & C==1 & D==1) { tmp4 = 0;}
          if(A==0 & B==1 & C==1 & D==1) { tmp4 = 1;}
          if(B==0 & A==1 & C==1 & D==1) { tmp4 = 2;}
          if(A==0 & B==0 & C==1 & D==1) { tmp4 = 3;}
          if(C==0 & A==1 & B==1 & D==1) { tmp4 = 4;}
          if(A==0 & C==0 & B==1 & D==1) { tmp4 = 5;}
          if(B==0 & C==0 & A==1 & D==1) { tmp4 = 6;}
          if(A==0 & B==0 & C==0 & D==1) { tmp4 = 7;}
          if(D==0 & A==1 & B==1 & C==1) { tmp4 = 8;}
          if(A==0 & D==0 & B==1 & C==1) { tmp4 = 9;}
          }

          }
          }
          tmp5= tmp1*10 + tmp2;
          tmp6= tmp3*10 + tmp4;
          }

          // Declare your global variables here
          void hienthi()
          {
          PORTB.0 = 0;
          PORTC = _7_segment[tmp5/10];
          delay_us(7);
          PORTC = 0x00;
          PORTB.0 = 1;

          PORTB.1 = 0;
          PORTC = _7_segment[tmp5%10];
          delay_us(7);
          PORTC = 0x00;
          PORTB.1 = 1;

          }
          void main(void)
          {
          // Declare your local variables here

          // Input/Output Ports initialization
          // Port B initialization
          // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
          // State7=1 State6=1 State5=1 State4=1 State3=1 State2=1 State1=1 State0=1
          PORTB=0xFF;
          DDRB=0xFF;

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

          // Port D initialization
          // Func7=Out Func6=Out Func5=Out Func4=Out Func3=In Func2=In Func1=In Func0=In
          // State7=1 State6=1 State5=1 State4=1 State3=P State2=P State1=P State0=P
          PORTD=0xFF;
          DDRD=0xF0;

          // Timer/Counter 0 initialization
          // Clock source: System Clock
          // Clock value: 7.813 kHz
          TCCR0=0x05;
          TCNT0=0x00;

          // Timer/Counter 1 initialization
          // Clock source: System Clock
          // Clock value: Timer1 Stopped
          // Mode: Normal top=0xFFFF
          // OC1A output: Discon.
          // OC1B output: Discon.
          // Noise Canceler: Off
          // Input Capture on Falling Edge
          // Timer1 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;

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

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

          // USART initialization
          // USART disabled
          UCSRB=0x00;

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

          // ADC initialization
          // ADC disabled
          ADCSRA=0x00;

          // SPI initialization
          // SPI disabled
          SPCR=0x00;

          // TWI initialization
          // TWI disabled
          TWCR=0x00;

          // Global enable interrupts
          #asm("sei")

          while (1)
          {
          Quetbanphim();
          hienthi();
          }
          }
          Vũ xuân Lợi
          YM!:

          Comment


          • #6
            co bac nao co so do ti vi lg 21fx6ab cho em sin voi , no bi mat đông bo dong co bac nao da qua pan nay roi noi cho em bt voi

            Comment


            • #7
              không có bác nào giúp E sao?
              Vũ xuân Lợi
              YM!:

              Comment


              • #8
                phần quét phím của bạn quá phức tạp và dài
                theo như code trên thì cậu viết = codevision, vậy hãy vào thư mục cài của nó cái cái example các ví dụ trong đó có keypad mở ra mà tham khảo, keypad có nhiều cách quét, tham khảo rồi tự phát triển
                Website chính thức đổi địa chỉ website thành
                Mời các bạn ghé thăm !!!

                Comment


                • #9
                  cảm ơn bác đã góp ý. nhưng E mới tìm hiểu về lập trình. bây giờ E đang mới làm quen nên trong cách lập trinh chưa tối ưu hóa đc thuật toán. E mong Bác xem giúp E code mà E đã lập trình bên trên có gì sai ma không chạy đc. còn để tối ưu hơn thi chăc chắn sau này E sẽ phải phát triển thêm. rất mong đc sự giúp đỡ
                  Vũ xuân Lợi
                  YM!:

                  Comment


                  • #10
                    hix ko ai chiu jup e sao?
                    Vũ xuân Lợi
                    YM!:

                    Comment

                    Về tác giả

                    Collapse

                    vuxuanloi Tìm hiểu thêm về vuxuanloi

                    Bài viết mới nhất

                    Collapse

                    Đang tải...
                    X