Thông báo

Collapse
No announcement yet.

Lập trình PIC 16f887 để hiển thị led matrix

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

  • Lập trình PIC 16f887 để hiển thị led matrix

    Help!
    Chào các bạn,
    Mình mới học lập trình cho PIC16f887. Mình đã làm hiển thị được trên 1 matrix rồi. Giờ muốn cho hiển thị ra 2 led matrix 8x8 nhưng không biết làm thế nào. Mong các bạn giúp đỡ.

  • #2
    Nguyên văn bởi truongtx Xem bài viết
    Help!
    Chào các bạn,
    Mình mới học lập trình cho PIC16f887. Mình đã làm hiển thị được trên 1 matrix rồi. Giờ muốn cho hiển thị ra 2 led matrix 8x8 nhưng không biết làm thế nào. Mong các bạn giúp đỡ.
    Nói sơ phần cứng của bạn xem nào.

    Comment


    • #3
      Bạn đã có phần cứng chưa? Nếu có thì post lên mọi người mới giúp được. Nếu không thì bạn có thể chat với mình qua "google talk" bằng nick elevco@envi-tech.com.vn

      Comment


      • #4
        Đây là mạch mô phỏng mình dùng 1 PIC16f887, 4IC 74HC595, và 4 led matrix.

        Click image for larger version

Name:	Capture.PNG
Views:	1
Size:	55.1 KB
ID:	1399672

        Comment


        • #5
          Mình có tham khảo code trên mạng nhưng mà đọc không hiểu lắm. Mình gửi lên nhờ mọi người giải thích hộ mình.

          #include<htc.h>

          //#define RB0=RB0;//sbit RB0=P1^0;
          //#define STR=RB1;//sbit STR=P1^1;
          //#define RB2=RB2;//sbit RB2=P1^2;

          unsigned char cot[]=
          {
          /*------------------------------------------------------------------------------
          ; If font display distortion, please check Fonts format of setup.
          ; Source file / text :
          ; Width x Height (pixels) :64X8
          ; Font Format/Size : Monochrome LCD Fonts ,Horizontal scan ,Big endian order/64Byte
          ; Font make date : 8/30/2013 4:19:39 PM
          ------------------------------------------------------------------------------*/
          //0x40,0x08,0x08,//Width pixels,Height pixels,Width bytes
          0x38,0x3E,0x0F,0x87,0xC1,0xF1,0xF8,0x78,0x00,0x00, 0x00,
          0x44,0x21,0x10,0x44,0x21,0x01,0x00,0x80,0x00,0x00, 0x00,
          0x82,0x21,0x10,0x04,0x11,0x01,0x00,0x80,0x00,0x00, 0x00,
          0x82,0x3E,0x10,0x04,0x11,0xF1,0xF0,0x80,0x00,0x00, 0x00,
          0xFE,0x21,0x10,0x04,0x11,0x01,0x00,0x9E,0x00,0x00, 0x00,
          0x82,0x21,0x10,0x04,0x11,0x01,0x00,0x84,0x00,0x00, 0x00,
          0x82,0x21,0x10,0x44,0x21,0x01,0x00,0x84,0x00,0x00, 0x00,
          0x82,0x3E,0x0F,0x87,0xC1,0xF1,0x00,0x78,0x00,0x00, 0x00,
          };
          // Xem mang tren nhu mang 2 chieu,11 cot va 8 hang

          char hang[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

          void delay(int t)
          {
          int a,b;
          for(a=0;a<t;a++)
          {
          for(b=0;b<120;b++);
          }
          }

          void quet(unsigned char d)
          {
          unsigned char i,t;
          for(i=0;i<8;i++)
          {
          t=d&0x80;
          if(t==0x80)
          RB2=1;
          else RB2=0;
          d=d<<1;
          RB0=0;
          RB0=1;
          }
          }
          unsigned char buffer(unsigned char x,unsigned char y,char i)
          {
          unsigned char temp;
          temp=(x<<i)|(y>>(8-i));
          return temp;
          }

          void main()
          {
          TRISB=0X00;TRISD=0X00;
          ANS8=ANS10=ANS12=0;

          char i,j,k,m;
          while(1)
          {
          for(k=0;k<7;k++)
          {
          for(i=0;i<8;i++)
          {
          for(j=0;j<20;j++)
          {
          for(m=0;m<8;m++)
          {
          quet(buffer(cot[m*11+k+3],cot[m*11+k+4],i)); // "m*11": 11 la so cot cua mang
          quet(buffer(cot[m*11+k+2],cot[m*11+k+3],i));
          quet(buffer(cot[m*11+k+1],cot[m*11+k+2],i));
          quet(buffer(cot[m*11+k],cot[m*11+k+1],i));
          RB1=0;
          RB1=1;
          PORTD=cot[m];
          delay(5);
          PORTD=0xFF;
          }
          }
          }
          }
          }
          }

          Comment

          Về tác giả

          Collapse

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

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

          Collapse

          • bqviet
            Trả lời cho Đấu tắt điện cho máy tính bảng
            bởi bqviet
            Bqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
            06-12-2025, 17:17
          • nguyendinhvan
            Trả lời cho Xin hỏi về mạch thu FM/AM trong catsette
            bởi nguyendinhvan
            Theo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
            05-12-2025, 19:59
          • afrendly
            Trả lời cho Đấu tắt điện cho máy tính bảng
            bởi afrendly
            Có vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
            04-12-2025, 01:27
          • nick22
            Trả lời cho Máy điện châm ?
            bởi nick22
            Đúng như bạn nói, máy điện châm hiện nay trên thị trường đã khá đa dạng về mẫu mã, chức năng và giá thành.
            01-12-2025, 13:23
          Đang tải...
          X