RP Store Tìm linh kiện theo mã, gửi BOM nhận báo giá Gửi BOM

1 số chỗ chưa hiểu trong đoạn code, mong được giải đáp

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • apiker
    Đệ tử 1 túi
    • Jul 2010
    • 17

    #1

    1 số chỗ chưa hiểu trong đoạn code, mong được giải đáp

    em có đọc một đoạn code như sau:

    //************************************************** ***************************
    // Author : nhh
    // Date : 03/04/06
    // Hardware: PIC16F877A
    //************************************************** ***************************
    #include <16F877A.h>
    #include <def_877A.h>
    #fuses NOWDT,PUT,XT,NOPROTECT
    #use delay(clock=4000000)
    #use fast_io(b)
    #use fast_io(c)
    int a;
    const unsigned char dig[]={0b00111111,0b00000110, 0b01011011,0b01001111,\
    0b01100110,0b01101101,0b01111101,0b00000111,0b0111 1111,0b01101111,0b01110111,\
    0b01111100,0b00111001,0b01011110,0b11111001,0b1111 0001};
    // ma hoa digital duoi dang mang
    // Chuong trinh ngat
    #int_RB
    void ngat_RB()
    {
    if((RBIF)&&(RBIE))
    {
    {
    if(RB4&&RB0)
    a=dig[0];
    }
    {
    if(RB4&&RB1)
    a=dig[4];
    }
    {
    if(RB4&&RB2)
    a=dig[8];
    }
    {
    if(RB4&&RB3)
    a=dig[12];
    }
    //.......
    {
    if(RB5&&RB0)
    a=dig[1];
    }
    {
    if(RB5&&RB1)
    a=dig[5];
    }
    {
    if(RB5&&RB2)
    a=dig[9];
    }
    {
    if(RB5&&RB3)
    a=dig[13];
    }
    //........
    {
    if(RB6&&RB0)
    a=dig[2];
    }
    {
    if(RB6&&RB1)
    a=dig[6];
    }
    {
    if(RB6&&RB2)
    a=dig[10];
    }
    {
    if(RB6&&RB3)
    a=dig[14];
    }
    //........
    {
    if(RB7&&RB0)
    a=dig[3];
    }
    {
    if(RB7&&RB1)
    a=dig[7];
    }
    {
    if(RB7&&RB2)
    a=dig[11];
    }
    {
    if(RB7&&RB3)
    a=dig[15];
    }
    RBIF=0; //Xoa co ngat RB
    }
    }
    // Chuong trinh chinh
    void main()
    {
    set_tris_b(0b11110000);
    set_tris_c(0);
    enable_interrupts(global);
    enable_interrupts(int_RB);
    ext_int_edge(H_to_L);
    portb=0;
    portc=0;
    while(true)
    {
    portb=1;
    portb=2;
    portb=4;
    portb=8;
    portc=a;
    }
    }

    1/ các anh cho em hỏi tại sao ta lại có thể mã hóa được như thề này
    const unsigned char dig[]={0b00111111,0b00000110, 0b01011011,0b01001111,\
    0b01100110,0b01101101,0b01111101,0b00000111,0b0111 1111,0b01101111,0b01110111,\
    0b01111100,0b00111001,0b01011110,0b11111001,0b1111 0001};
    2/ các anh giải thích hộ em ý nghĩa của đoạn code này:
    while(true)
    {
    portb=1;
    portb=2;
    portb=4;
    portb=8;
    portc=a
    }
    thanks!
  • apiker
    Đệ tử 1 túi
    • Jul 2010
    • 17

    #2
    BUZZ! Anybody here? Có ai giúp đỡ nhập môn đệ tử này với.

    Comment

    • xungba22
      Đệ tử 1 túi
      • Dec 2009
      • 11

      #3
      biết gì nói đó

      const unsigned char dig[]={0b00111111,0b00000110, 0b01011011,0b01001111,\
      0b01100110,0b01101101,0b01111101,0b00000111,0b0111 1111,0b01101111,0b01110111,\
      0b01111100,0b00111001,0b01011110,0b11111001,0b1111 0001};

      cái này chỉ là mả led 7 đoạn thồi.Tùy thuộc vào A chung hay K chung mà có mã khác nhau.

      còn muốn giải thĩ kĩ hơn thì poss luôn sơ đồ nguyên lý lên mình coi mới biết chính sác được.

      Comment

      • xungba22
        Đệ tử 1 túi
        • Dec 2009
        • 11

        #4
        biết gì nói đó

        while(true)
        {
        portb=1;
        portb=2;
        portb=4;
        portb=8;
        portc=a
        }

        đoạn cos này nếu mà mình đoán ko nhầm thì đây là một đoạn quét led.

        Comment

        • apiker
          Đệ tử 1 túi
          • Jul 2010
          • 17

          #5
          mình tải chương trình này ở đây

          (post #19)
          bạn giải thích cho mình rõ hơn được ko? A chung hay K chung thì thế nào? cả việc quét led nữa nhé. thanks!

          Comment

          Working...