Code Ledmatrix 8*8 89c51

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • boz93x
    Thành viên mới
    • Oct 2013
    • 6

    #1

    Code Ledmatrix 8*8 89c51

    mọi người giải thích hộ em cái code này với , có hiển thị trên led matrix đếm từ 0 đến 9 và lặp lại
    #include <reg52.h>
    #include <intrins.h>
    #define uchar unsigned char
    #define uint unsigned int
    uchar code Table_OF_Digits[]=
    { 0x00,0x3e,0x41,0x41,0x41,0x3e,0x00,0x00,
    0x00,0x00,0x00,0x21,0x7f,0x01,0x00,0x00,
    0x00,0x27,0x45,0x45,0x45,0x39,0x00,0x00,
    0x00,0x22,0x49,0x49,0x49,0x36,0x00,0x00,
    0x00,0x0c,0x14,0x24,0x7f,0x04,0x00,0x00,
    0x00,0x72,0x51,0x51,0x51,0x4e,0x00,0x00,
    0x00,0x3e,0x49,0x49,0x49,0x26,0x00,0x00,
    0x00,0x40,0x40,0x40,0x4f,0x70,0x00,0x00,
    0x00,0x36,0x49,0x49,0x49,0x36,0x00,0x00,
    0x00,0x32,0x49,0x49,0x49,0x3e,0x00,0x00, };
    uchar i=0,t=0,Num_Index = 0;
    void main()
    { P3 = 0x80;
    Num_Index = 0;
    TMOD = 0x00;
    TH0 = (8192-2000)/32;
    TL0 = (8192-2000)%32;
    TR0 = 1;
    IE = 0x82;
    while(1);
    }
    void LED_Screen_Display() interrupt 1
    {
    TH0 = (8192-2000)/32;
    TL0 = (8192-2000)%32;
    P3 = _crol_(P3,1);
    P0 = ~Table_OF_Digits[Num_Index * 8 +i];
    if(++i == 8) i = 0;
    if(++t == 250)
    {
    t = 0x00;
    if(++Num_Index == 10) Num_Index = 0;
    }}


    Mọi ngừoi ghi chú cho me cái code này với nhé. mình không hiểu lắm .thank rất nhiều !!!!
  • boz93x
    Thành viên mới
    • Oct 2013
    • 6

    #2
    mợi người xem hộ với

    Comment

    • voiviqua
      Thành viên tích cực
      • Jan 2011
      • 141

      #3
      bác không hiểu chỗ nào thì phải chỉ ra thì mọi người mới giúp bác được chứ.

      Comment

      • boz93x
        Thành viên mới
        • Oct 2013
        • 6

        #4
        TH0 = (8192-2000)/32;
        TL0 = (8192-2000)%32;

        đây ạ

        Comment

        • voiviqua
          Thành viên tích cực
          • Jan 2011
          • 141

          #5
          cái này là giá thị cần gán cho time thôi.(8192-2000)/32=193
          (8192-2000)%32=16;
          bác có thể gán TH0=193; TL0=16; cho dễ hiểuc

          Comment

          • boz93x
            Thành viên mới
            • Oct 2013
            • 6

            #6
            0x00,0x3e,0x41,0x41,0x41,0x3e,0x00,0x00,
            0x00,0x00,0x00,0x21,0x7f,0x01,0x00,0x00,
            0x00,0x27,0x45,0x45,0x45,0x39,0x00,0x00,
            0x00,0x22,0x49,0x49,0x49,0x36,0x00,0x00,
            0x00,0x0c,0x14,0x24,0x7f,0x04,0x00,0x00,
            0x00,0x72,0x51,0x51,0x51,0x4e,0x00,0x00,
            0x00,0x3e,0x49,0x49,0x49,0x26,0x00,0x00,
            0x00,0x40,0x40,0x40,0x4f,0x70,0x00,0x00,
            0x00,0x36,0x49,0x49,0x49,0x36,0x00,0x00,
            0x00,0x32,0x49,0x49,0x49,0x3e,0x00,0x00

            là phần ma trận led phải không ạ

            Comment

            • voiviqua
              Thành viên tích cực
              • Jan 2011
              • 141

              #7
              phải rồi.mỗi 1 hàng tương ứng với 1 số.

              Comment

              • boz93x
                Thành viên mới
                • Oct 2013
                • 6

                #8
                0x00,0x3e,0x41,0x41,0x41,0x3e,0x00,0x00,
                hiểu vị trí này như nào ạ. cách tính sao cho đung vị trí của led 8*8 ấy ạ

                Comment

                • voiviqua
                  Thành viên tích cực
                  • Jan 2011
                  • 141

                  #9
                  đó là số 0.hàng tiếp theo là số 1.rồi cứ đếm dần xuống là số 2,3,.....
                  còn làm sao để có đoạn code 0x00,0x3e,0x41,0x41,0x41,0x3e,0x00,0x00, thì bác dùng phần mềm là nó làm cho hết.

                  Comment

                  Về tác giả

                  Collapse

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

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

                  Collapse

                  There are no results that meet this criteria.

                  Đang tải...