Thông báo

Collapse
No announcement yet.

Xin code quét led theo hàng

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

  • Xin code quét led theo hàng

    Mạch:matrix hoan chinh.DSN
    Ai cho mình xin code mẫu cho mạch này được ko, mình chưa hiểu về cách viết code quét theo hàng, mò mãi ko ra. Quét theo cột mình làm được rồi.
    Mình cảm ơn trước.

  • #2
    Nguyên văn bởi Tim Weri Xem bài viết
    Mạch:matrix hoan chinh.DSN
    Ai cho mình xin code mẫu cho mạch này được ko, mình chưa hiểu về cách viết code quét theo hàng, mò mãi ko ra. Quét theo cột mình làm được rồi.
    Mình cảm ơn trước.
    mình gợi ý bạn thế này nhé , quét cột là ban xuất 1byte theo cột đúng không,còn quét hàng thì bạn không xuất ra mà lưu vào ram(bạn tưởng tượng là từng byte ram sắp theo cột vậy,8 led tương ứng với 8 bit của 1 byte),vậy công việc của bạn là cứ 1byte cắt ra 1bit theo hàng rồi quét thôi.

    ví dụ :.....
    CLR C
    RLC A
    .......
    MOV DS,C

    Rồi ngâm cứu tiếp đi bạn.....

    Comment


    • #3
      Bạn kiểm tra giùm mạch vẽ như vậy thì có đúng chưa, sao mình thấy kỳ kỳ
      Last edited by Tim Weri; 31-08-2012, 08:55.

      Comment


      • #4
        Nếu được bạn vd dùm mình bằng C đc ko ?
        Last edited by Tim Weri; 31-08-2012, 09:39.

        Comment


        • #5
          Nguyên văn bởi Tim Weri Xem bài viết
          Bạn kiểm tra giùm mạch vẽ như vậy thì có đúng chưa, sao mình thấy kỳ kỳ
          Trong mạch của bạn điện trở hạn dòng chưa hợp lý, nên sửa lại là điện trở hạn dòng nối từ led xuống chân 595. Đối với loại led thường thì điện trở này khoảng từ 47 -> 100 om là vừa.

          Hình Layout matrix 8x32 x2 màu:



          Đây là demo matrix 16x32 x2 màu.
          PCT COMPUTER
          (Để không làm ảnh hưởng đến thời gian và công việc cá nhân. Xin vui lòng không nhắn tin và điện thoại)

          Comment


          • #6
            Mình chưa xử lý được cái tạo hiệu ứng lưu hình ảnh. Mỗi lần chỉ có một hàng sáng

            Comment


            • #7
              Mình cũng chưa biết cách quét hàng nên đang nghiên cứu nè, chúng ta cố gắng lên nhé.
              Không biết ngày mai sẽ ra sao?
              Mà có ra sao cũng chẳng sao.

              Comment


              • #8
                Nghiên cứu thành công thì chia sẻ nha bạn

                Comment


                • #9
                  Mạch mô phỏng: MP matrixs.DSN
                  Code:
                  #include<at89x52.h>
                  #include<intrins.h>
                  sbit DATA = P3^0;
                  sbit SCK = P3^1;
                  sbit SCL = P3^2;
                  	unsigned char code cot[]={
                  	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,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xC3,
                  	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
                  	};
                  unsigned char hang[8]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
                  int m,n,k;
                  void delay(unsigned long time)
                  {
                  	unsigned int i;
                  	while(time--)
                  	{
                  		i=125;
                  		while(i--);
                  	}
                  }
                  void quet(unsigned char x)
                  {
                  	unsigned char i, temp;
                  	for (i=0;i<8;i++)
                  	{
                  	SCK	= 0;
                  	temp = x;
                  	temp = temp&0x80;
                  	if (temp==0x80)
                  		DATA = 0;
                  	else DATA = 1;
                  	x*=2;
                  	SCK = 1;
                  	}															   
                  }
                  void clear()
                  {
                  	quet(0xFF);
                  }
                  void main()
                  {
                  	while(1)
                  	{
                  
                  	for(n=0;n<8;n++)
                  	{
                  	SCL = 0;
                  	quet(0xFF);
                  	quet(0xFF);
                  	quet(0xFF);
                  	quet(cot[4*8 + n]);
                  	P2 = hang[n];
                  	SCL = 1;
                  	delay(8); 
                  	}
                  	}
                  }
                  Mấy bạn xem dùm mình
                  Last edited by Tim Weri; 06-09-2012, 12:00.

                  Comment

                  Về tác giả

                  Collapse

                  Tim Weri Tìm hiểu thêm về Tim Weri

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

                  Collapse

                  Đang tải...
                  X