Thông báo

Collapse
No announcement yet.

Cần ace giúp đỡ về led ma trận và 74595

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

  • Cần ace giúp đỡ về led ma trận và 74595

    e đang làm về quang báo theo pp quét cột...cái nì là do e dùng ít led ma trận nên quét cột cho dễ
    e muốn hỏi là mạch như thế này thì liệu thực tế có ổn k? e dùng 74245 để đệm dòng cho hàng và cột
    cảm ơnClick image for larger version

Name:	Capture.jpg
Views:	1
Size:	145.0 KB
ID:	1415048

  • #2
    91 ah! thím học trường nào thế?
    dc ,lắp mạch thật đi rồi lên đây review

    Comment


    • #3
      Nếu dùng nhiều led ma trận thì bạn nên sử dụng 74595 để quét,dùng tran đệm dòng hoặc dùng ULN2803 hút dòng cũng đc
      vanduc0211@gmail.com

      Comment


      • #4
        To hahahi1: tớ học spkt....đang cố hoàn thành mạch nglý và mạch in...còn lo phần code nữa

        To viboyth.haui: cảm ơn bác..để e lên coi cái sheet của uln2803 xem thay thế dc k..hi

        cái này là code của mạch trên...các bác cho e ý tưởng về hiệu ứng sáng dồn chữ được không? ví dụ như là dịch từng ký tự của chữ LED MA TRAN...dịch chữ L xong dịch chữ E.....e k hiểu ý tưởng =))...mong các bác tận tình chỉ nha
        #include <16f877a.h>
        #include <def_16f877a.h>
        #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG,NOBROWNOUT, NOLVP, NOCPD, NOWRT
        #use fast_io(b)
        #use fast_io(d)
        #use delay(clock=20000000)
        int32 send_reg;
        int8 m,l,x,lap,mode;
        int32 const chay[]={
        0x80000000,0x40000000,0x20000000,0x10000000,0x0800 0000,0x04000000,0x02000000,0x01000000,
        0x00800000,0x00400000,0x00200000,0x00100000,0x0008 0000,0x00040000,0x00020000,0x00010000,
        0x00008000,0x00004000,0x00002000,0x00001000,0x0000 0800,0x00000400,0x00000200,0x00000100,
        0x00000080,0x00000040,0x00000020,0x00000010,0x0000 0008,0x00000004,0x00000002,0x00000001};
        int8 const data1[]={
        0xFF,0xFF,0xFF,0xFF,0xFF,
        0xFF,0xFF,0xFF,0xFF,0xFF,
        0xFF,0xFF,0xFF,0xFF,0xFF,
        0xFF,0xFF,0xFF,0xFF,0xFF,
        0xFF,0xFF,0xFF,0xFF,0xFF,
        0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF

        0xC3,0xDB,0xDB, //=
        0X5A,0X99,0XDB,0XE7,0XFF,//<
        0x87,0xFb,0xFB,0xF7,0x83,//n
        0x87,0xAB,0xAB,0xAB,0x9F,//a
        0xC7,0xBB,0xBB,0xBB,0xC7,//o
        0xFE,0xFE,0x80,0xFE,0xFE,//T
        0xFF,0xFF, //
        0x8F,0xF7,0xF7,0xF7,0x80,//h
        0x87,0xFb,0xFB,0xF7,0x83,//n
        0x87,0xAB,0xAB,0xAB,0x9F,//a
        0x8F,0xF7,0xF7,0xF7,0x80,//h
        0xFE,0xFE,0x80,0xFE,0xFE,//T
        0xFF,0xFF, //
        0xC7,0xBB,0xBB,0xBB,0xC7,//o
        0xE0,0xDF,0xBF,0xDF,0xE0,//V

        0XFF,0XE7,0XDB,0X99,0X5A,//>
        0xDB,0xDB,0xC3, //=


        };
        int8 const data2[]={
        0xFF,0xFF,0xFF,0xFF,0xFF,
        0xFF,0xFF,0xFF,0xFF,0xFF,
        0xFF,0xFF,0xFF,0xFF,0xFF,
        0xFF,0xFF,0xFF,0xFF,0xFF,
        0xFF,0xFF,0xFF,0xFF,0xFF,
        0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
        0xFF,0xFF,0xFF,0xFF,0xFF,
        0xFF,0xFF,0xFF,0xFF,0xFF,
        0xFF,0xFF,0xFF,0xFF,0xFF,
        0xC3,0xDB,0xDB, //=
        0X5A,0X99,0XDB,0XE7,0XFF,//<

        0xC6,0xBA,0xBA,0xBA,0xD8,//5
        0xAF,0x80,0xAD,0xEB,0xE7,//4
        0XBF,0xBF,0x80,0xBD,0xBB,//1
        0XBF,0xBF,0x80,0xBD,0xBB,//1
        0xC1,0xBE,0xBE,0xBE,0xC1,//0
        0XBF,0xBF,0x80,0xBD,0xBB,//1
        0xC1,0xB6,0xB6,0xB6,0xD9,//9
        0xC1,0xBE,0xBE,0xBE,0xC1,//0

        0XFF,0XE7,0XDB,0X99,0X5A,//>
        0xDB,0xDB,0xC3, //=
        0xFF,0xFF,0xFF,0xFF,0xFF,
        0xFF,0xFF,0xFF,0xFF,0xFF,
        };

        #bit d7=send_reg.31
        void serout()
        {
        int8 n;
        for(n=0;n<32;n++)
        {
        output_low(pin_b0);
        if(d7!=0) output_high(pin_b0);
        output_low(pin_b1);
        output_high(pin_b1);
        send_reg=send_reg<<1;
        }
        }

        void display()
        {
        set_tris_b(0xf0);
        output_low(pin_b2);
        output_high(pin_b2);
        serout();
        output_low(pin_b3);
        output_high(pin_b3);
        }

        void hc595_1()
        {
        m=0;
        for(m=0;m<32;m++)
        {
        x=m+l;
        if(x<109)//209 chia 5 gan bang 42 ky tu
        {
        send_reg=chay[m];
        display();
        output_d(data1[x]);
        delay_ms(1);//Toc do chay
        }
        else
        {
        send_reg=chay[m];
        display();
        output_d(data1[x-109]);
        delay_ms(1);//Toc do chay
        }
        }
        }
        void hc595_2()
        {
        m=0;
        for(m=0;m<32;m++)
        {
        x=m+l;
        if(x<109)
        {
        send_reg=chay[m];
        display();
        output_d(data2[x]);
        delay_ms(1);//Toc do chay
        }
        else
        {
        send_reg=chay[m];
        display();
        output_d(data2[x-109]);
        delay_ms(1);//Toc do chay
        }
        }
        }
        void hc595_3()
        {
        m=0;
        for(m=0;m<32;m++)
        {
        x=m+l;
        if(x<109)
        {
        send_reg=chay[m];
        display();
        output_d(data1[x]);
        delay_ms(1);//Toc do chay
        }
        else
        {
        send_reg=chay[m];
        display();
        output_d(data1[x-109]);
        delay_ms(1);//Toc do chay
        }
        }
        }
        void main()
        {
        set_tris_d(0);
        output_d(255);
        while(true)
        {
        //l=0;
        //dich tu trai sang phai
        {for(l=0;l<109;l++)
        {
        for(lap=0;lap<3;lap++)
        {
        hc595_1();
        }
        }
        }
        //dich tu phai sang trai

        for(l=109;l>0;l--)
        {
        for(lap=0;lap<3;lap++)
        {
        hc595_2();
        }
        }
        for(l=109;l>0;l--)
        {
        for(lap=0;lap<3;lap++)
        {
        hc595_3();
        }
        }
        }
        }

        Comment

        Về tác giả

        Collapse

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

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

        Collapse

        Đang tải...
        X