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

quét ledmatrix

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts

  • quanghuy_spk
    replied
    đây là code của mình, mới làm chạy hôm qua bạn có thể tham khảo . Mình dùng thanh ghi dịch 6B595 loại có đệm dòng, mọi chi tiết về nó...ALLDATASHEET.COM - Datasheet search site for Electronic Components and Semiconductors and other semiconductors.

    #include<at89x52.h>

    #define DL1 P2_0
    #define CLR1 P2_1
    #define G1 P2_2
    #define rck1 P2_3
    #define CLK1 P2_4
    #define DL P1_0
    #define CLR P1_1
    #define G P1_2
    #define rck P1_3
    #define CLK P1_4
    unsigned char code HELLO[]={0x00,0xFF,0xFF,0x99,0x99,0x66,0x66,0x00,0x00,0x0 FE,0xFE,0x03,0x03,0x03,0xFE,0xFE,0x00,0x00,0x00,0x FF,0xFF,0x00,0x00,0x00,0x00,0x7E,0x7E,0x81,0x83,0x 7F,0x7F,0x01,0x00,0xFE,0xFE,0x03,0x03,0x03,0xFE,0x FE,0x00,0x7F,0x7F,0xC8,0xC8,0x7F,0x7F,0x00,0xFF,0x FF,0x70,0x38,0xFF,0xFF,0x00,0x00,0x00,0x7E,0x7E,0x C3,0xCB,0xCF,0xCE,0x08,0x00,0x00,0xFF,0xFF,0x18,0x 18,0xFF,0xFF,0x00,0xFE,0xFE,0x03,0x03,0xFE,0xFE,0x 00,0xC3,0x67,0x3E,0x18,0x30,0x60,0xC0,0x80,0x7E,0x FF,0x9F,0x9D,0xF9,0xF1,0xE1,0x60,0x7E,0xFF,0x9F,0x 9D,0xF9,0xF1,0xE1,0x60,0x7E,0xFF,0x9F,0x9D,0xF9,0x F1,0xE1,0x60};
    unsigned int COT[]={ 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
    unsigned int i,k,j,a;
    void XULI_COT();
    void delay(unsigned int x)
    {
    unsigned int y;
    for(y=0;y<x;y++)
    {;}
    }
    void DATA_IN(unsigned char k)
    {
    DL=k;
    CLK=0;
    CLK=1;
    }
    void DATA_IN1(unsigned char k)
    {
    DL1=k;
    CLK1=0;
    CLK1=1;
    }
    void XUAT_DL()
    {
    rck=0;
    rck=1;
    }

    void XUAT_DL1()
    {
    rck1=0;
    rck1=1;
    }
    void XULI_COT(unsigned char x)
    {
    unsigned char byte;
    for (i = 0; i < 8; i++)
    {
    byte = x & 0x80; // L?y bit cu?i
    if (byte == 0x80) // Bit cu?i là 1
    DATA_IN1(1); // Ngõ ra DATA là High
    else
    DATA_IN1(0); // Ngõ ra DATA là Low
    x*=2; //Ðôn bit 7 lên bit 8
    }
    }
    void XULI_HANG(unsigned char x)
    {
    unsigned char byte;
    for (i = 0; i < 8; i++)
    {
    byte = x & 0x80; // L?y bit cu?i
    if (byte == 0x80) // Bit cu?i là 1
    DATA_IN(1); // Ngõ ra DATA là High
    else
    DATA_IN(0); // Ngõ ra DATA là Low
    x*=2; //Ðôn bit 7 lên bit 8
    }
    }

    void ngat_t0()interrupt 1
    {
    unsigned char BDN;
    BDN++; TH0=0x4b; TL0=0xb0;
    if(BDN>=5)
    {
    BDN=BDN-4;
    a++;
    if(a==84) { a=0;}

    }
    }
    void main()
    { CLR1=1;
    G1=0;
    CLR=1;
    G=0;
    TMOD=0x01; TH0=0x40; TL0=0xb0;
    TR0=1;
    EA=1;
    ET0=1;
    while(1)
    {

    for(j=0;j<8;j++)
    {
    XULI_HANG(0x00);
    XULI_HANG(0x00);
    XULI_HANG(0x00);
    XULI_HANG(0x00);
    XUAT_DL();
    XULI_COT(COT[j]);
    XUAT_DL1();
    XULI_HANG(HELLO[(j+24+a)]);
    XULI_HANG(HELLO[(j+16+a)]);
    XULI_HANG(HELLO[(j+8+a)]);
    XULI_HANG(HELLO[j+a]);
    XUAT_DL();
    XULI_COT(COT[j]);
    XUAT_DL1();
    }
    }

    }
    Matrix 8x32 - YouTube

    Leave a comment:


  • voiviqua
    replied
    Nguyên văn bởi PETERPRO Xem bài viết
    mình cảm ơn bạn vivoqua nhé!
    bạn có mạch mô phỏng cho code quét hàng trên không? mình xin để nghiên cứu cho dễ!
    bác quay lại trang 3 đi.em có gửi file thử nghiệm đó.trong đó có cả mà.

    Leave a comment:


  • vdanhp
    replied
    các bác cho em hỏi là dung lượng con 89s52 chỉ 8kb, nhưng em thấy nhiều bảng led gắn trên xe bus, hiển thị lộ trình xe, có nhiều chữ lắm, không biết đủ chứa không.

    Leave a comment:


  • PETERPRO
    replied
    Nguyên văn bởi voiviqua Xem bài viết
    cái này mình lấy được đoạn code trên mạng rồi sửa 1 chút cho hợp ý mình thôi.
    mình cảm ơn bạn vivoqua nhé!
    bạn có mạch mô phỏng cho code quét hàng trên không? mình xin để nghiên cứu cho dễ!

    Leave a comment:


  • hoanganh234
    replied
    Nguyên văn bởi voiviqua Xem bài viết
    bác thay đổi tốc đọ quét nhanh quá hay chậm quá mà bị như bác nói là điều hiển nhiên rồi.bác có thể sửa như thế này xem sao nhé.
    char i;
    void ngat(void)interrupt 1
    {
    TH0=0xff;TL0=0x00;
    if(--sohang==-1) sohang=so_hang;
    hienchu();
    if((sohang==so_hang) &(i==2)) run=1,i=0;
    }

    tốc độ chữ dịch chuyển nhanh hay chậm phụ thuộc vào giá thị i mà bác muốn gán.
    K được bác ợ e cho vào thì n k chạy

    Leave a comment:


  • voiviqua
    replied
    Nguyên văn bởi hoanganh234 Xem bài viết
    Phần mềm e cài lại rồi vẫn bị lỗi . e thay đổi tốc độ quét chậm lại thì chữ giật giật còn chạy nhanh thì k nhìn rõ chữ lắm cừ mờ mờ bác có cách nào giúp e k
    bác thay đổi tốc đọ quét nhanh quá hay chậm quá mà bị như bác nói là điều hiển nhiên rồi.bác có thể sửa như thế này xem sao nhé.
    char i;
    void ngat(void)interrupt 1
    {
    TH0=0xff;TL0=0x00;
    if(--sohang==-1) sohang=so_hang;
    hienchu();
    if((sohang==so_hang) &(i==2)) run=1,i=0;
    }

    tốc độ chữ dịch chuyển nhanh hay chậm phụ thuộc vào giá thị i mà bác muốn gán.

    Leave a comment:


  • hoanganh234
    replied
    Phần mềm e cài lại rồi vẫn bị lỗi . e thay đổi tốc độ quét chậm lại thì chữ giật giật còn chạy nhanh thì k nhìn rõ chữ lắm cừ mờ mờ bác có cách nào giúp e k

    Leave a comment:


  • voiviqua
    replied
    tốc độ quét phụ thuộc vào thời gian ngắt đó bác.mỗi lần 1 ngắt xảy ra là 1 lần quét 1 hàng tương ứng.còn về phần mền thì em chưa bị lỗi như bác nên cũng bó tay.bác thử cài lại phần mềm xem.

    Leave a comment:


  • hoanganh234
    replied
    Click image for larger version

Name:	a.jpg
Views:	1
Size:	50.7 KB
ID:	1379456
    e đã làm theo bác nhưng n cứ báo lỗi thế này chẳng hiểu sao

    Tiện thể cho e hỏi tốc độ quét của cái này nằm ở chỗ nào
    E đang tìm hiểu về quét led này mà khó quá
    Last edited by hoanganh234; 28-05-2013, 16:14.

    Leave a comment:


  • voiviqua
    replied
    em không biết post ảnh.nhưng khi bác mở lên thì có ô char input bác viết chữ cần tạo ra vào đây rồi ấn vào cái hình cạnh chữ "Z" ấy,nó sẽ tạo ra mã font cho mình.còn ô Height là số hàng của led,Width là số cột của led(bác có thể sửa nó đươc bằng cách bỏ dấu "tích" tại ô Auto đi.
    Attached Files

    Leave a comment:


  • hoanganh234
    replied
    Ngối mãi chẳng biết cái phần mềm này sử dụng như thế nào bác hướng dẫn e sử dụng với e chả hiểu n sủ dũng như thế nào(có hướng dẫn bằng hình ảnh càng tốt)

    Leave a comment:


  • voiviqua
    replied
    bác lấy cía này về tạo font nhé.như vậy bác sẽ biết Bmp001[2] là cái gì.
    Attached Files

    Leave a comment:


  • voiviqua
    replied
    Nguyên văn bởi hoanganh234 Xem bài viết
    void dichchu()
    {
    char i,j;
    for(i=0;i<so_hang;i++)
    {
    hang[i]=Bmp001[Bmp001[2]*i+3+j];
    }
    if(++j==Bmp001[2]) j=0; // Bmp001[2] bằng bao nhiêu ạ
    }
    bac voiviqua ơi e lấy code của bác về xem chẳng hiểu gì bác giải thích cho e đoạn này với
    khi i=1 thì hang[1]=Bmp001[Bmp001[2]*1+3+j] thì " j " ở đây bằng bao nhiêu ạ
    giá trị "j" phụ thuộc vào số lần gọi chương trình dichchu(); ở trong mục main() này.
    if((run==1)&(e_run==1))
    {
    ET0=0;
    dichbit();
    run=0;
    if(++w==8) dichchu(),w=0;
    sohang=so_hang;
    IE|=0x02;


    khi bắt đầu chạy chương trình thì j=0; sau mỗi lần gọi chương trình dichchu() thì j lại tăng lên 1 đơn vị,tăng đến khi nào j==Bmp001[2](tức là đã chạy xong chữ cần chạy rồi) thì lại cho j=0 để lại quay lại chạy lần 2.

    Leave a comment:


  • hoanganh234
    replied
    void dichchu()
    {
    char i,j;
    for(i=0;i<so_hang;i++)
    {
    hang[i]=Bmp001[Bmp001[2]*i+3+j];
    }
    if(++j==Bmp001[2]) j=0; // Bmp001[2] bằng bao nhiêu ạ
    }
    bac voiviqua ơi e lấy code của bác về xem chẳng hiểu gì bác giải thích cho e đoạn này với
    khi i=1 thì hang[1]=Bmp001[Bmp001[2]*1+3+j] thì " j " ở đây bằng bao nhiêu ạ

    Leave a comment:


  • voiviqua
    replied
    Nguyên văn bởi PETERPRO Xem bài viết
    anh chị nào có code quét hàng cho em xin với ah!
    cái này mình lấy được đoạn code trên mạng rồi sửa 1 chút cho hợp ý mình thôi.
    Attached Files

    Leave a comment:

Về tác giả

Collapse

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

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

Collapse

Đang tải...