Thông báo

Collapse
No announcement yet.

Cần giúp đỡ về Led matrix

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

  • Cần giúp đỡ về Led matrix

    Em đi thẳng vào vấn đề luôn nhé.
    Em có chương trình hiện thị chữ bằng ma trận led 8x8 (Lấy từ http://lab3i.com/). Tuy nhiên có vài dòng lệnh em chưa hiểu đựơc. Rất mong các bác trên diễn đàn giải thích chi tiết giúp em. Trình độ về VDK của em vẫn còn rất kém, tuy nhiên thấy Code viết hay quá (ngắn hơn rất nhiều so với những cái em đã từng gặp) nên cố gắng tìm hiểu .
    Những dòng em chưa hiểu em viết chữ màu đỏ.
    #include <REGX52.H>
    #include <string.h>

    //******************BANG MA ASCII on LED matrix font 5x7 ****************

    unsigned char code code_Tab[97][6]={
    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE 0
    0xFF,0xFF,0xA0,0xFF,0xFF,0xFF,//! 1
    0xFF,0xFF,0xF8,0xF4,0xFF,0xFF,//' 2
    0xEB,0x80,0xEB,0x80,0xEB,0xFF,//# 3
    0xDB,0xD5,0x80,0xD5,0xED,0xFF,//$ 4
    0xD8,0xEA,0x94,0xAB,0x8D,0xFF,//% 5
    0xC9,0xB6,0xA9,0xDF,0xAF,0xFF,//& 6
    0xFF,0xFF,0xF8,0xF4,0xFF,0xFF,//' 7
    0xFF,0xE3,0xDD,0xBE,0xFF,0xFF,//( 8
    0xFF,0xBE,0xDD,0xE3,0xFF,0xFF,//) 9
    0xD5,0xE3,0x80,0xE3,0xD5,0xFF,//* 10
    0xF7,0xF7,0xC1,0xF7,0xF7,0xFF,//+ 11
    0xFF,0xA7,0xC7,0xFF,0xFF,0xFF,//, 12
    0xF7,0xF7,0xF7,0xF7,0xF7,0xFF,//- 13
    0xFF,0x9F,0x9F,0xFF,0xFF,0xFF,//x 14
    0xFF,0xC9,0xC9,0xFF,0xFF,0xFF,// / 15
    0xC1,0xAE,0xB6,0xBA,0xC1,0xFF,//0 16
    0xFF,0xBD,0x80,0xBF,0xFF,0xFF,//1 17
    0x8D,0xB6,0xB6,0xB6,0xB9,0xFF,//2 18
    0xDD,0xBE,0xB6,0xB6,0xC9,0xFF,//3 19
    0xE7,0xEB,0xED,0x80,0xEF,0xFF,//4 20
    0xD8,0xBA,0xBA,0xBA,0xC6,0xFF,//5 21
    0xC3,0xB5,0xB6,0xB6,0xCF,0xFF,//6 22
    0xFE,0x8E,0xF6,0xFA,0xFC,0xFF,//7 23
    0xC9,0xB6,0xB6,0xB6,0xC9,0xFF,//8 24
    0xF9,0xB6,0xB6,0xD6,0xE1,0xFF,//9 25
    0xFF,0xC9,0xC9,0xFF,0xFF,0xFF,//: 26
    0xFF,0xA4,0xC4,0xFF,0xFF,0xFF,//// 27
    0xF7,0xEB,0xDD,0xBE,0xFF,0xFF,//< 28
    0xEB,0xEB,0xEB,0xEB,0xEB,0xFF,//= 29
    0xFF,0xBE,0xDD,0xEB,0xF7,0xFF,//> 30
    0xFD,0xFE,0xAE,0xF6,0xF9,0xFF,//? 31
    0xCD,0xB6,0x8E,0xBE,0xC1,0xFF,//@ 32
    0x83,0xF5,0xF6,0xF5,0x83,0xFF,//A 33
    0xBE,0x80,0xB6,0xB6,0xC9,0xFF,//B 34
    0xC1,0xBE,0xBE,0xBE,0xDD,0xFF,//C 35
    0xBE,0x80,0xBE,0xBE,0xC1,0xFF,//D 36
    0x80,0xB6,0xB6,0xB6,0xBE,0xFF,//E 37
    0x80,0xF6,0xF6,0xFE,0xFE,0xFF,//F 38
    0xC1,0xBE,0xB6,0xB6,0xC5,0xFF,//G 39
    0x80,0xF7,0xF7,0xF7,0x80,0xFF,//H 40
    0xFF,0xBE,0x80,0xBE,0xFF,0xFF,//I 41
    0xDF,0xBF,0xBE,0xC0,0xFE,0xFF,//J 42
    0x80,0xF7,0xEB,0xDD,0xBE,0xFF,//K 43
    0x80,0xBF,0xBF,0xBF,0xFF,0xFF,//L 44
    0x80,0xFD,0xF3,0xFD,0x80,0xFF,//M 45
    0x80,0xFD,0xFB,0xF7,0x80,0xFF,//N 46
    0xC1,0xBE,0xBE,0xBE,0xC1,0xFF,//O 47
    0x80,0xF6,0xF6,0xF6,0xF9,0xFF,//P 48
    0xC1,0xBE,0xAE,0xDE,0xA1,0xFF,//Q 49
    0x80,0xF6,0xE6,0xD6,0xB9,0xFF,//R 50
    0xD9,0xB6,0xB6,0xB6,0xCD,0xFF,//S 51
    0xFE,0xFE,0x80,0xFE,0xFE,0xFF,//T 52
    0xC0,0xBF,0xBF,0xBF,0xC0,0xFF,//U 53
    0xE0,0xDF,0xBF,0xDF,0xE0,0xFF,//V 54
    0xC0,0xBF,0xCF,0xBF,0xC0,0xFF,//W 55
    0x9C,0xEB,0xF7,0xEB,0x9C,0xFF,//X 56
    0xFC,0xFB,0x87,0xFB,0xFC,0xFF,//Y 57
    0x9E,0xAE,0xB6,0xBA,0xBC,0xFF,//Z 58
    0xFF,0x80,0xBE,0xBE,0xFF,0xFF,//[ 59
    0xFD,0xFB,0xF7,0xEF,0xDF,0xFF,//\ 60
    0xFF,0xBE,0xBE,0x80,0xFF,0xFF,//] 61
    0xFB,0xFD,0xFE,0xFD,0xFB,0xFF,//^ 92
    0x7F,0x7F,0x7F,0x7F,0x7F,0xFF,//_ 63
    0xFF,0xFF,0xF8,0xF4,0xFF,0xFF,//' 64
    0xDF,0xAB,0xAB,0xAB,0xC7,0xFF,//a 65
    0x80,0xC7,0xBB,0xBB,0xC7,0xFF,//b 66
    0xFF,0xC7,0xBB,0xBB,0xBB,0xFF,//c 67
    0xC7,0xBB,0xBB,0xC7,0x80,0xFF,//d 68
    0xC7,0xAB,0xAB,0xAB,0xF7,0xFF,//e 69
    0xF7,0x81,0xF6,0xF6,0xFD,0xFF,//f 70
    0xF7,0xAB,0xAB,0xAB,0xC3,0xFF,//g 71
    0x80,0xF7,0xFB,0xFB,0x87,0xFF,//h 72
    0xFF,0xBB,0x82,0xBF,0xFF,0xFF,//i 73
    0xDF,0xBF,0xBB,0xC2,0xFF,0xFF,//j 74
    0xFF,0x80,0xEF,0xD7,0xBB,0xFF,//k 75
    0xFF,0xBE,0x80,0xBF,0xFF,0xFF,//l 76
    0x83,0xFB,0x87,0xFB,0x87,0xFF,//m 77
    0x83,0xF7,0xFB,0xFB,0x87,0xFF,//n 78
    0xC7,0xBB,0xBB,0xBB,0xC7,0xFF,//o 79
    0x83,0xEB,0xEB,0xEB,0xF7,0xFF,//p 80
    0xF7,0xEB,0xEB,0xEB,0x83,0xFF,//q 81
    0x83,0xF7,0xFB,0xFB,0xF7,0xFF,//r 82
    0xB7,0xAB,0xAB,0xAB,0xDB,0xFF,//s 83
    0xFF,0xFB,0xC0,0xBB,0xBB,0xFF,//t 84
    0xC3,0xBF,0xBF,0xDF,0x83,0xFF,//u 85
    0xE3,0xDF,0xBF,0xDF,0xE3,0xFF,//v 86
    0xC3,0xBF,0xCF,0xBF,0xC3,0xFF,//w 87
    0xBB,0xD7,0xEF,0xD7,0xBB,0xFF,//x 88
    0xF3,0xAF,0xAF,0xAF,0xC3,0xFF,//y 89
    0xBB,0x9B,0xAB,0xB3,0xBB,0xFF,//z 90
    0xFB,0xE1,0xE0,0xE1,0xFB,0xFF,//^ 62
    0xE3,0xE3,0xC1,0xE3,0xF7,0xFF,//-> 93
    0xF7,0xE3,0xC1,0xE3,0xE3,0xFF,//<- 94
    0xEF,0xC3,0x83,0xC3,0xEF,0xFF,// 95
    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,//BLANK CHAR 96
    };
    unsigned char code KT_la[1][8]={0xC3,0xAD,0x5A,0x5E,0x5A,0xAD,0xC3,0 }; //ma ky tu: mat cuoi

    //0xB6,0x80,0xB6,0xBE,0xC1,0xFF, //ma ky tu: DD

    sbit SDA = P2^0; //Dau vao du lieu noi tiep
    sbit SCL = P2^1; // Dau vao xung clock
    sbit STR = P2^2; //Dau vao chot du lieu

    sfr DataPort = 0x90; // P1 (dieu khien hang)
    //-------------------------------------------
    //-------------------------------------------

    unsigned char *String_input ="HAPPY BIRTH DAY TO YOU!";
    // Ghi chuoi ky tu can hien thi
    unsigned int Pos=0,lengh_STR; // Khai bao cac bien
    unsigned char Tic=0; // Khai bao bien Tic: Thoi gian hien thi cac ky tu
    #define With_of_font 6
    wait(unsigned int N){while(N--);} // Ham tre
    void main ()
    {
    unsigned char Temp_code;
    unsigned int j;
    TMOD=0x01; //Timer0 o che do dem 16bit
    TR0=1; //Cho phep Timer0 chay
    ET0=1; //Cho phep ngat Timer0
    lengh_STR = strlen(String_input)*6; // Em ko hiểu dòng này
    EA=1; //Cho phep ngat toan cuc
    while(1)
    {
    SDA=1; //Cho SDA len 1 ==> san sang de quet cot(Cot la Anot cua led)
    for(j=Pos;j<32+Pos;j++) //Quet 32 cot
    {
    Temp_code=code_Tab[ String_input[(j%lengh_STR)/With_of_font] -32][j%With_of_font]; //Em ko hiểu dòng này
    DataPort=0xFF; // Cho hang cua matrix len 1 ==> Ma trix tat het (hang la Catot cua led)
    SCL=1; // Xuat 1bit vao 74hc595 (bit nay co gia tri 1)
    SCL=0;
    STR=1; // Xuat bit ra de quet cot dau tien
    STR=0;
    DataPort = Temp_code; // Gia tri cua hang
    SDA=0; // Cho SDA =0 de san sang cho chu ky tiep theo
    wait(60); //Tre 60us.
    }
    }
    }

    void INT_Timer0()interrupt 1 // Ham ngat Timer0
    {
    Tic++; // Tang bien Tic len 1
    if(Tic==4)
    { //Neu Tic==2 thi gan Tic=0
    Tic=0;
    Pos++; //Tang Poc len 1
    if(Pos>=lengh_STR)Pos=0; //Neu chay het chu thi quay lai tu dau.
    }
    }


    Còn đây là chương trình mô phỏng:
    http://www.mediafire.com/?97kitxt6h1xb4qp
    Mua bán thiết bị điện công nghiệp tại Hà Nội, toàn quốc.
    http://diencongnghiep360.com/
    http://tudienhathe.vn/


  • #2
    Nên hiểu nguyên tắc_Ko nên đọc code rồi suy ra nguyên tắc.


    Add: 97 Quán Nam - Lê Chân - Hải Phòng.
    Tel: 031 518648 Phone: 0904 283 505

    Comment


    • #3
      Nguyên văn bởi hoangdai Xem bài viết
      Nên hiểu nguyên tắc_Ko nên đọc code rồi suy ra nguyên tắc.
      Chán.Code trên có 1 số "hàm lạ"" với em. Ví dụ như hàm "strlen" ... . Chứ phương pháp quét led ma trận thì em cũng hiểu sơ sơ rồi (E có thể quét 4 led nhưng mà chữ đứng yên). Hôm trước tìm được code này trên mạng thấy viết ngắn gọn quá nên em muốn tìm hiểu thêm,chứ ko phải là đồ án môn học gì cả. Mà em ko học nghanhf điện tử nên kiến thức về lập trình ko có nhiều,tranh thủ mấy tuần nghỉ hè tìm hiểu thêm về đt,xung quanh lại ko có ai để hỏi nên mới lên diễn đàn hỏi mọi người. Bác nào biết thì trả lời dùm em với. Thông thường, khi em rất"bí" rồi thì mới đặt câu hỏi trên diễn đàn và đôi khi em cũng rất ngại khi đặt ra những câu hỏi "ngu ngơ". Tuy nhiên do ko được đào tạo bài bản cũng như tư duy kém nên đành...phải hỏi. Mong mọi người giúp đỡ.!
      Mua bán thiết bị điện công nghiệp tại Hà Nội, toàn quốc.
      http://diencongnghiep360.com/
      http://tudienhathe.vn/

      Comment


      • #4
        Mấy hôm trước được tác giả trả lời cho, em xin nói sơ qua cho bạn nào... chậm hiểu giống mình biết.
        Dòng màu đỏ thứ nhất:
        Hàm strlen là hàm trả về giá trị của chuỗi. Như ví dụ trên thì lengh_STR sẽ bằng số ký tự trong chuỗi cần hiện thị *6. (Ví dụ: Muốn hiện thỉ chữ "VIETTHANH" thì lengh_STR=9*6=54)
        Dòng màu đỏ thứ 2:
        Tác giả nói cứ thay số vào rồi tìm ra nguyên tắc.Em làm theo, sau một buổi chiều thì cũng hiểu ra dòng lệnh đó.

        Chương trình này hay cái là muốn mở rộng ra bao nhiêu led ma trận cũng được. Phần cứng và chương trình thay đổi theo rất đơn giản.

        Còn đây là chương trình mô phỏng:
        http://www.mediafire.com/?97kitxt6h1xb4qp
        Last edited by vietthanh123; 29-06-2011, 08:59. Lý do: Bổ xung
        Mua bán thiết bị điện công nghiệp tại Hà Nội, toàn quốc.
        http://diencongnghiep360.com/
        http://tudienhathe.vn/

        Comment


        • #5
          Nguyên văn bởi vietthanh123 Xem bài viết
          Em đi thẳng vào vấn đề luôn nhé.
          Em có chương trình hiện thị chữ bằng ma trận led 8x8 (Lấy từ Trang chủ). Tuy nhiên có vài dòng lệnh em chưa hiểu đựơc. Rất mong các bác trên diễn đàn giải thích chi tiết giúp em. Trình độ về VDK của em vẫn còn rất kém, tuy nhiên thấy Code viết hay quá (ngắn hơn rất nhiều so với những cái em đã từng gặp) nên cố gắng tìm hiểu .
          Những dòng em chưa hiểu em viết chữ màu đỏ.
          #include <REGX52.H>
          #include <string.h>

          //******************BANG MA ASCII on LED matrix font 5x7 ****************

          unsigned char code code_Tab[97][6]={
          0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE 0
          0xFF,0xFF,0xA0,0xFF,0xFF,0xFF,//! 1
          0xFF,0xFF,0xF8,0xF4,0xFF,0xFF,//' 2
          0xEB,0x80,0xEB,0x80,0xEB,0xFF,//# 3
          0xDB,0xD5,0x80,0xD5,0xED,0xFF,//$ 4
          0xD8,0xEA,0x94,0xAB,0x8D,0xFF,//% 5
          0xC9,0xB6,0xA9,0xDF,0xAF,0xFF,//& 6
          0xFF,0xFF,0xF8,0xF4,0xFF,0xFF,//' 7
          0xFF,0xE3,0xDD,0xBE,0xFF,0xFF,//( 8
          0xFF,0xBE,0xDD,0xE3,0xFF,0xFF,//) 9
          0xD5,0xE3,0x80,0xE3,0xD5,0xFF,//* 10
          0xF7,0xF7,0xC1,0xF7,0xF7,0xFF,//+ 11
          0xFF,0xA7,0xC7,0xFF,0xFF,0xFF,//, 12
          0xF7,0xF7,0xF7,0xF7,0xF7,0xFF,//- 13
          0xFF,0x9F,0x9F,0xFF,0xFF,0xFF,//x 14
          0xFF,0xC9,0xC9,0xFF,0xFF,0xFF,// / 15
          0xC1,0xAE,0xB6,0xBA,0xC1,0xFF,//0 16
          0xFF,0xBD,0x80,0xBF,0xFF,0xFF,//1 17
          0x8D,0xB6,0xB6,0xB6,0xB9,0xFF,//2 18
          0xDD,0xBE,0xB6,0xB6,0xC9,0xFF,//3 19
          0xE7,0xEB,0xED,0x80,0xEF,0xFF,//4 20
          0xD8,0xBA,0xBA,0xBA,0xC6,0xFF,//5 21
          0xC3,0xB5,0xB6,0xB6,0xCF,0xFF,//6 22
          0xFE,0x8E,0xF6,0xFA,0xFC,0xFF,//7 23
          0xC9,0xB6,0xB6,0xB6,0xC9,0xFF,//8 24
          0xF9,0xB6,0xB6,0xD6,0xE1,0xFF,//9 25
          0xFF,0xC9,0xC9,0xFF,0xFF,0xFF,//: 26
          0xFF,0xA4,0xC4,0xFF,0xFF,0xFF,//// 27
          0xF7,0xEB,0xDD,0xBE,0xFF,0xFF,//< 28
          0xEB,0xEB,0xEB,0xEB,0xEB,0xFF,//= 29
          0xFF,0xBE,0xDD,0xEB,0xF7,0xFF,//> 30
          0xFD,0xFE,0xAE,0xF6,0xF9,0xFF,//? 31
          0xCD,0xB6,0x8E,0xBE,0xC1,0xFF,//@ 32
          0x83,0xF5,0xF6,0xF5,0x83,0xFF,//A 33
          0xBE,0x80,0xB6,0xB6,0xC9,0xFF,//B 34
          0xC1,0xBE,0xBE,0xBE,0xDD,0xFF,//C 35
          0xBE,0x80,0xBE,0xBE,0xC1,0xFF,//D 36
          0x80,0xB6,0xB6,0xB6,0xBE,0xFF,//E 37
          0x80,0xF6,0xF6,0xFE,0xFE,0xFF,//F 38
          0xC1,0xBE,0xB6,0xB6,0xC5,0xFF,//G 39
          0x80,0xF7,0xF7,0xF7,0x80,0xFF,//H 40
          0xFF,0xBE,0x80,0xBE,0xFF,0xFF,//I 41
          0xDF,0xBF,0xBE,0xC0,0xFE,0xFF,//J 42
          0x80,0xF7,0xEB,0xDD,0xBE,0xFF,//K 43
          0x80,0xBF,0xBF,0xBF,0xFF,0xFF,//L 44
          0x80,0xFD,0xF3,0xFD,0x80,0xFF,//M 45
          0x80,0xFD,0xFB,0xF7,0x80,0xFF,//N 46
          0xC1,0xBE,0xBE,0xBE,0xC1,0xFF,//O 47
          0x80,0xF6,0xF6,0xF6,0xF9,0xFF,//P 48
          0xC1,0xBE,0xAE,0xDE,0xA1,0xFF,//Q 49
          0x80,0xF6,0xE6,0xD6,0xB9,0xFF,//R 50
          0xD9,0xB6,0xB6,0xB6,0xCD,0xFF,//S 51
          0xFE,0xFE,0x80,0xFE,0xFE,0xFF,//T 52
          0xC0,0xBF,0xBF,0xBF,0xC0,0xFF,//U 53
          0xE0,0xDF,0xBF,0xDF,0xE0,0xFF,//V 54
          0xC0,0xBF,0xCF,0xBF,0xC0,0xFF,//W 55
          0x9C,0xEB,0xF7,0xEB,0x9C,0xFF,//X 56
          0xFC,0xFB,0x87,0xFB,0xFC,0xFF,//Y 57
          0x9E,0xAE,0xB6,0xBA,0xBC,0xFF,//Z 58
          0xFF,0x80,0xBE,0xBE,0xFF,0xFF,//[ 59
          0xFD,0xFB,0xF7,0xEF,0xDF,0xFF,//\ 60
          0xFF,0xBE,0xBE,0x80,0xFF,0xFF,//] 61
          0xFB,0xFD,0xFE,0xFD,0xFB,0xFF,//^ 92
          0x7F,0x7F,0x7F,0x7F,0x7F,0xFF,//_ 63
          0xFF,0xFF,0xF8,0xF4,0xFF,0xFF,//' 64
          0xDF,0xAB,0xAB,0xAB,0xC7,0xFF,//a 65
          0x80,0xC7,0xBB,0xBB,0xC7,0xFF,//b 66
          0xFF,0xC7,0xBB,0xBB,0xBB,0xFF,//c 67
          0xC7,0xBB,0xBB,0xC7,0x80,0xFF,//d 68
          0xC7,0xAB,0xAB,0xAB,0xF7,0xFF,//e 69
          0xF7,0x81,0xF6,0xF6,0xFD,0xFF,//f 70
          0xF7,0xAB,0xAB,0xAB,0xC3,0xFF,//g 71
          0x80,0xF7,0xFB,0xFB,0x87,0xFF,//h 72
          0xFF,0xBB,0x82,0xBF,0xFF,0xFF,//i 73
          0xDF,0xBF,0xBB,0xC2,0xFF,0xFF,//j 74
          0xFF,0x80,0xEF,0xD7,0xBB,0xFF,//k 75
          0xFF,0xBE,0x80,0xBF,0xFF,0xFF,//l 76
          0x83,0xFB,0x87,0xFB,0x87,0xFF,//m 77
          0x83,0xF7,0xFB,0xFB,0x87,0xFF,//n 78
          0xC7,0xBB,0xBB,0xBB,0xC7,0xFF,//o 79
          0x83,0xEB,0xEB,0xEB,0xF7,0xFF,//p 80
          0xF7,0xEB,0xEB,0xEB,0x83,0xFF,//q 81
          0x83,0xF7,0xFB,0xFB,0xF7,0xFF,//r 82
          0xB7,0xAB,0xAB,0xAB,0xDB,0xFF,//s 83
          0xFF,0xFB,0xC0,0xBB,0xBB,0xFF,//t 84
          0xC3,0xBF,0xBF,0xDF,0x83,0xFF,//u 85
          0xE3,0xDF,0xBF,0xDF,0xE3,0xFF,//v 86
          0xC3,0xBF,0xCF,0xBF,0xC3,0xFF,//w 87
          0xBB,0xD7,0xEF,0xD7,0xBB,0xFF,//x 88
          0xF3,0xAF,0xAF,0xAF,0xC3,0xFF,//y 89
          0xBB,0x9B,0xAB,0xB3,0xBB,0xFF,//z 90
          0xFB,0xE1,0xE0,0xE1,0xFB,0xFF,//^ 62
          0xE3,0xE3,0xC1,0xE3,0xF7,0xFF,//-> 93
          0xF7,0xE3,0xC1,0xE3,0xE3,0xFF,//<- 94
          0xEF,0xC3,0x83,0xC3,0xEF,0xFF,// 95
          0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,//BLANK CHAR 96
          };
          unsigned char code KT_la[1][8]={0xC3,0xAD,0x5A,0x5E,0x5A,0xAD,0xC3,0 }; //ma ky tu: mat cuoi

          //0xB6,0x80,0xB6,0xBE,0xC1,0xFF, //ma ky tu: DD

          sbit SDA = P2^0; //Dau vao du lieu noi tiep
          sbit SCL = P2^1; // Dau vao xung clock
          sbit STR = P2^2; //Dau vao chot du lieu

          sfr DataPort = 0x90; // P1 (dieu khien hang)
          //-------------------------------------------
          //-------------------------------------------

          unsigned char *String_input ="HAPPY BIRTH DAY TO YOU!";
          // Ghi chuoi ky tu can hien thi
          unsigned int Pos=0,lengh_STR; // Khai bao cac bien
          unsigned char Tic=0; // Khai bao bien Tic: Thoi gian hien thi cac ky tu
          #define With_of_font 6
          wait(unsigned int N){while(N--);} // Ham tre
          void main ()
          {
          unsigned char Temp_code;
          unsigned int j;
          TMOD=0x01; //Timer0 o che do dem 16bit
          TR0=1; //Cho phep Timer0 chay
          ET0=1; //Cho phep ngat Timer0
          lengh_STR = strlen(String_input)*6; // Em ko hiểu dòng này
          EA=1; //Cho phep ngat toan cuc
          while(1)
          {
          SDA=1; //Cho SDA len 1 ==> san sang de quet cot(Cot la Anot cua led)
          for(j=Pos;j<32+Pos;j++) //Quet 32 cot
          {
          Temp_code=code_Tab[ String_input[(j%lengh_STR)/With_of_font] -32][j%With_of_font]; //Em ko hiểu dòng này
          DataPort=0xFF; // Cho hang cua matrix len 1 ==> Ma trix tat het (hang la Catot cua led)
          SCL=1; // Xuat 1bit vao 74hc595 (bit nay co gia tri 1)
          SCL=0;
          STR=1; // Xuat bit ra de quet cot dau tien
          STR=0;
          DataPort = Temp_code; // Gia tri cua hang
          SDA=0; // Cho SDA =0 de san sang cho chu ky tiep theo
          wait(60); //Tre 60us.
          }
          }
          }

          void INT_Timer0()interrupt 1 // Ham ngat Timer0
          {
          Tic++; // Tang bien Tic len 1
          if(Tic==4)
          { //Neu Tic==2 thi gan Tic=0
          Tic=0;
          Pos++; //Tang Poc len 1
          if(Pos>=lengh_STR)Pos=0; //Neu chay het chu thi quay lai tu dau.
          }
          }


          Còn đây là chương trình mô phỏng:
          Led ma tran.rar
          bang ma nay minh co the them ky tu vao dc khong anh neu dc thi lam nhu the nao
          ma cac anh co bang ma nao co chu cai co dau khong anh
          gui qua nguyenhuuhuy.qn@gmail.com
          thank cac anh pro nhieu

          Comment


          • #6
            Nguyên văn bởi vietthanh123 Xem bài viết
            Em đi thẳng vào vấn đề luôn nhé.
            Em có chương trình hiện thị chữ bằng ma trận led 8x8 (Lấy từ Trang chủ). Tuy nhiên có vài dòng lệnh em chưa hiểu đựơc. Rất mong các bác trên diễn đàn giải thích chi tiết giúp em. Trình độ về VDK của em vẫn còn rất kém, tuy nhiên thấy Code viết hay quá (ngắn hơn rất nhiều so với những cái em đã từng gặp) nên cố gắng tìm hiểu .
            Những dòng em chưa hiểu em viết chữ màu đỏ.
            #include <REGX52.H>
            #include <string.h>

            //******************BANG MA ASCII on LED matrix font 5x7 ****************

            unsigned char code code_Tab[97][6]={
            0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE 0
            0xFF,0xFF,0xA0,0xFF,0xFF,0xFF,//! 1
            0xFF,0xFF,0xF8,0xF4,0xFF,0xFF,//' 2
            0xEB,0x80,0xEB,0x80,0xEB,0xFF,//# 3
            0xDB,0xD5,0x80,0xD5,0xED,0xFF,//$ 4
            0xD8,0xEA,0x94,0xAB,0x8D,0xFF,//% 5
            0xC9,0xB6,0xA9,0xDF,0xAF,0xFF,//& 6
            0xFF,0xFF,0xF8,0xF4,0xFF,0xFF,//' 7
            0xFF,0xE3,0xDD,0xBE,0xFF,0xFF,//( 8
            0xFF,0xBE,0xDD,0xE3,0xFF,0xFF,//) 9
            0xD5,0xE3,0x80,0xE3,0xD5,0xFF,//* 10
            0xF7,0xF7,0xC1,0xF7,0xF7,0xFF,//+ 11
            0xFF,0xA7,0xC7,0xFF,0xFF,0xFF,//, 12
            0xF7,0xF7,0xF7,0xF7,0xF7,0xFF,//- 13
            0xFF,0x9F,0x9F,0xFF,0xFF,0xFF,//x 14
            0xFF,0xC9,0xC9,0xFF,0xFF,0xFF,// / 15
            0xC1,0xAE,0xB6,0xBA,0xC1,0xFF,//0 16
            0xFF,0xBD,0x80,0xBF,0xFF,0xFF,//1 17
            0x8D,0xB6,0xB6,0xB6,0xB9,0xFF,//2 18
            0xDD,0xBE,0xB6,0xB6,0xC9,0xFF,//3 19
            0xE7,0xEB,0xED,0x80,0xEF,0xFF,//4 20
            0xD8,0xBA,0xBA,0xBA,0xC6,0xFF,//5 21
            0xC3,0xB5,0xB6,0xB6,0xCF,0xFF,//6 22
            0xFE,0x8E,0xF6,0xFA,0xFC,0xFF,//7 23
            0xC9,0xB6,0xB6,0xB6,0xC9,0xFF,//8 24
            0xF9,0xB6,0xB6,0xD6,0xE1,0xFF,//9 25
            0xFF,0xC9,0xC9,0xFF,0xFF,0xFF,//: 26
            0xFF,0xA4,0xC4,0xFF,0xFF,0xFF,//// 27
            0xF7,0xEB,0xDD,0xBE,0xFF,0xFF,//< 28
            0xEB,0xEB,0xEB,0xEB,0xEB,0xFF,//= 29
            0xFF,0xBE,0xDD,0xEB,0xF7,0xFF,//> 30
            0xFD,0xFE,0xAE,0xF6,0xF9,0xFF,//? 31
            0xCD,0xB6,0x8E,0xBE,0xC1,0xFF,//@ 32
            0x83,0xF5,0xF6,0xF5,0x83,0xFF,//A 33
            0xBE,0x80,0xB6,0xB6,0xC9,0xFF,//B 34
            0xC1,0xBE,0xBE,0xBE,0xDD,0xFF,//C 35
            0xBE,0x80,0xBE,0xBE,0xC1,0xFF,//D 36
            0x80,0xB6,0xB6,0xB6,0xBE,0xFF,//E 37
            0x80,0xF6,0xF6,0xFE,0xFE,0xFF,//F 38
            0xC1,0xBE,0xB6,0xB6,0xC5,0xFF,//G 39
            0x80,0xF7,0xF7,0xF7,0x80,0xFF,//H 40
            0xFF,0xBE,0x80,0xBE,0xFF,0xFF,//I 41
            0xDF,0xBF,0xBE,0xC0,0xFE,0xFF,//J 42
            0x80,0xF7,0xEB,0xDD,0xBE,0xFF,//K 43
            0x80,0xBF,0xBF,0xBF,0xFF,0xFF,//L 44
            0x80,0xFD,0xF3,0xFD,0x80,0xFF,//M 45
            0x80,0xFD,0xFB,0xF7,0x80,0xFF,//N 46
            0xC1,0xBE,0xBE,0xBE,0xC1,0xFF,//O 47
            0x80,0xF6,0xF6,0xF6,0xF9,0xFF,//P 48
            0xC1,0xBE,0xAE,0xDE,0xA1,0xFF,//Q 49
            0x80,0xF6,0xE6,0xD6,0xB9,0xFF,//R 50
            0xD9,0xB6,0xB6,0xB6,0xCD,0xFF,//S 51
            0xFE,0xFE,0x80,0xFE,0xFE,0xFF,//T 52
            0xC0,0xBF,0xBF,0xBF,0xC0,0xFF,//U 53
            0xE0,0xDF,0xBF,0xDF,0xE0,0xFF,//V 54
            0xC0,0xBF,0xCF,0xBF,0xC0,0xFF,//W 55
            0x9C,0xEB,0xF7,0xEB,0x9C,0xFF,//X 56
            0xFC,0xFB,0x87,0xFB,0xFC,0xFF,//Y 57
            0x9E,0xAE,0xB6,0xBA,0xBC,0xFF,//Z 58
            0xFF,0x80,0xBE,0xBE,0xFF,0xFF,//[ 59
            0xFD,0xFB,0xF7,0xEF,0xDF,0xFF,//\ 60
            0xFF,0xBE,0xBE,0x80,0xFF,0xFF,//] 61
            0xFB,0xFD,0xFE,0xFD,0xFB,0xFF,//^ 92
            0x7F,0x7F,0x7F,0x7F,0x7F,0xFF,//_ 63
            0xFF,0xFF,0xF8,0xF4,0xFF,0xFF,//' 64
            0xDF,0xAB,0xAB,0xAB,0xC7,0xFF,//a 65
            0x80,0xC7,0xBB,0xBB,0xC7,0xFF,//b 66
            0xFF,0xC7,0xBB,0xBB,0xBB,0xFF,//c 67
            0xC7,0xBB,0xBB,0xC7,0x80,0xFF,//d 68
            0xC7,0xAB,0xAB,0xAB,0xF7,0xFF,//e 69
            0xF7,0x81,0xF6,0xF6,0xFD,0xFF,//f 70
            0xF7,0xAB,0xAB,0xAB,0xC3,0xFF,//g 71
            0x80,0xF7,0xFB,0xFB,0x87,0xFF,//h 72
            0xFF,0xBB,0x82,0xBF,0xFF,0xFF,//i 73
            0xDF,0xBF,0xBB,0xC2,0xFF,0xFF,//j 74
            0xFF,0x80,0xEF,0xD7,0xBB,0xFF,//k 75
            0xFF,0xBE,0x80,0xBF,0xFF,0xFF,//l 76
            0x83,0xFB,0x87,0xFB,0x87,0xFF,//m 77
            0x83,0xF7,0xFB,0xFB,0x87,0xFF,//n 78
            0xC7,0xBB,0xBB,0xBB,0xC7,0xFF,//o 79
            0x83,0xEB,0xEB,0xEB,0xF7,0xFF,//p 80
            0xF7,0xEB,0xEB,0xEB,0x83,0xFF,//q 81
            0x83,0xF7,0xFB,0xFB,0xF7,0xFF,//r 82
            0xB7,0xAB,0xAB,0xAB,0xDB,0xFF,//s 83
            0xFF,0xFB,0xC0,0xBB,0xBB,0xFF,//t 84
            0xC3,0xBF,0xBF,0xDF,0x83,0xFF,//u 85
            0xE3,0xDF,0xBF,0xDF,0xE3,0xFF,//v 86
            0xC3,0xBF,0xCF,0xBF,0xC3,0xFF,//w 87
            0xBB,0xD7,0xEF,0xD7,0xBB,0xFF,//x 88
            0xF3,0xAF,0xAF,0xAF,0xC3,0xFF,//y 89
            0xBB,0x9B,0xAB,0xB3,0xBB,0xFF,//z 90
            0xFB,0xE1,0xE0,0xE1,0xFB,0xFF,//^ 62
            0xE3,0xE3,0xC1,0xE3,0xF7,0xFF,//-> 93
            0xF7,0xE3,0xC1,0xE3,0xE3,0xFF,//<- 94
            0xEF,0xC3,0x83,0xC3,0xEF,0xFF,// 95
            0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,//BLANK CHAR 96
            };
            unsigned char code KT_la[1][8]={0xC3,0xAD,0x5A,0x5E,0x5A,0xAD,0xC3,0 }; //ma ky tu: mat cuoi

            //0xB6,0x80,0xB6,0xBE,0xC1,0xFF, //ma ky tu: DD

            sbit SDA = P2^0; //Dau vao du lieu noi tiep
            sbit SCL = P2^1; // Dau vao xung clock
            sbit STR = P2^2; //Dau vao chot du lieu

            sfr DataPort = 0x90; // P1 (dieu khien hang)
            //-------------------------------------------
            //-------------------------------------------

            unsigned char *String_input ="HAPPY BIRTH DAY TO YOU!";
            // Ghi chuoi ky tu can hien thi
            unsigned int Pos=0,lengh_STR; // Khai bao cac bien
            unsigned char Tic=0; // Khai bao bien Tic: Thoi gian hien thi cac ky tu
            #define With_of_font 6
            wait(unsigned int N){while(N--);} // Ham tre
            void main ()
            {
            unsigned char Temp_code;
            unsigned int j;
            TMOD=0x01; //Timer0 o che do dem 16bit
            TR0=1; //Cho phep Timer0 chay
            ET0=1; //Cho phep ngat Timer0
            lengh_STR = strlen(String_input)*6; // Em ko hiểu dòng này
            EA=1; //Cho phep ngat toan cuc
            while(1)
            {
            SDA=1; //Cho SDA len 1 ==> san sang de quet cot(Cot la Anot cua led)
            for(j=Pos;j<32+Pos;j++) //Quet 32 cot
            {
            Temp_code=code_Tab[ String_input[(j%lengh_STR)/With_of_font] -32][j%With_of_font]; //Em ko hiểu dòng này
            DataPort=0xFF; // Cho hang cua matrix len 1 ==> Ma trix tat het (hang la Catot cua led)
            SCL=1; // Xuat 1bit vao 74hc595 (bit nay co gia tri 1)
            SCL=0;
            STR=1; // Xuat bit ra de quet cot dau tien
            STR=0;
            DataPort = Temp_code; // Gia tri cua hang
            SDA=0; // Cho SDA =0 de san sang cho chu ky tiep theo
            wait(60); //Tre 60us.
            }
            }
            }

            void INT_Timer0()interrupt 1 // Ham ngat Timer0
            {
            Tic++; // Tang bien Tic len 1
            if(Tic==4)
            { //Neu Tic==2 thi gan Tic=0
            Tic=0;
            Pos++; //Tang Poc len 1
            if(Pos>=lengh_STR)Pos=0; //Neu chay het chu thi quay lai tu dau.
            }
            }


            Còn đây là chương trình mô phỏng:
            Led ma tran.rar
            bang ma nay minh co the them ky tu vao dc khong anh neu dc thi lam nhu the nao
            ma cac anh co bang ma nao co chu cai co dau khong anh
            gui qua nguyenhuuhuy.qn@gmail.com
            thank cac anh pro nhieu

            Comment


            • #7
              code đã đủ, nhìn là ra đoạn cần thêm mã giống của mình còn mún ăn sẵn thêm nữa ak
              Website chính thức đổi địa chỉ website thành
              Mời các bạn ghé thăm !!!

              Comment


              • #8
                bài code này em cũng đọc trên dttt.neme nó không quét được nhiều led như bạn đăng bài này lên,khi mô phỏng 5 led là chớp led,thực tế em chưa thấy ai làm bằng phương pháp này

                Comment


                • #9
                  Nguyên văn bởi mast090 Xem bài viết
                  code đã đủ, nhìn là ra đoạn cần thêm mã giống của mình còn mún ăn sẵn thêm nữa ak
                  bài này hình như của bác đúng ko ạ.! e nhìn cái avatar quen quá
                  Nguyễn Huy Biên - 01649 802 694
                  gmail :

                  Comment


                  • #10
                    Nguyên văn bởi bienhou Xem bài viết
                    bài này hình như của bác đúng ko ạ.! e nhìn cái avatar quen quá
                    ko, bài của a khác. nhưng nó cũng viết gần tương tự vậy, và nên làm theo hướng như chủ topic đưa, như vây khi thay dòng chữ hiển thị thì chỉ việc gõ dòng chữ vào mảng các kí tự cần hiển thị thôi mà ko cần tạo lại bảng mã, nhất là làm với ghép nỗi máy tính hay như các quảng cáo, thông báo sử dụng matrix ngoài đường phố người ta cũng đều tạo bảng mã sẵn hết. Còn với các bài mà chỉ hiển thị 1 matrix vs 1 kí tự thì k cần thiết vậy, add mỗi cái mã của chữ đó vào cho nó gọn
                    Website chính thức đổi địa chỉ website thành
                    Mời các bạn ghé thăm !!!

                    Comment


                    • #11
                      bai viết haym mà ngâm cứu không hiểu nỗi, đúng là toàn cao thủ không

                      Comment

                      Về tác giả

                      Collapse

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

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

                      Collapse

                      Đang tải...
                      X