Thông báo

Collapse
No announcement yet.

[HELP] Quét led matrix 8x8 ạ...

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

  • #16
    thx khanhduy nhiều nha, tuy mình không dùng buffer nhưng dựa vào ý tưởng của bạn mình đã làm được rồi, được hết bảng chữ cái, thêm 10 chữ số nữa thì nó vượt quá RAM >"< hihi.

    Giờ nếu mún thêm các chữ số và 1 số ký tự khác thì phải dùng ram ngoài àh???


    Code của như sau :
    Code:
    #include <regx52.h>
    	unsigned char ud1,ud2,kt=1;
    	unsigned char mang1[8],mang2[8];
    									   
    void delay(unsigned int ms)
      { 
        unsigned int i,j;
        for (i=0; i<ms; i++)
    		for (j=0; j<120; j++);
      }
    
    void ht(char mang[]);  
    void chonmang(unsigned char ud,unsigned char mang[]);
    
    void ui()
    {
    	SCON=0x50;	TMOD&=0x0F;    TMOD|=0x20;    TH1=0xFD;    TL1=0xFD;    ES=1;	EA=1;	TR1=1;
    }
    
    /*void send_data(char uart_data)//gui du lieu qua cong COM
    {
    	TI=0;
    	SBUF=0x00;
    	SBUF=uart_data;
    	while(TI==0){}//cho trong khi dang gui du lieu
    	TI=0;
    } */
    
    void re() interrupt 4
    {
    	if(RI==1)
    		{
    			RI=0;
    			if (kt==1) {ud1=SBUF;kt=2;chonmang(ud1,mang1);}
    			else {ud2=SBUF;kt=1;chonmang(ud2,mang2);}
    		}
    }			 
    
    
    void chonmang(unsigned char ud,unsigned char mang[])
    {
    	switch (ud)
    	{
    	case 'a' : 
    		mang[0]=247;mang[1]=235;mang[2]=221;mang[3]=190;mang[4]=128;mang[5]=190;mang[6]=190;mang[7]=190;
    		break;
    	case 'b' : 	
    		mang[0]=240;mang[1]=238;mang[2]=238;mang[3]=224;mang[4]=222;mang[5]=222;mang[6]=222;mang[7]=224;		
    		break;
    	case 'c':		
    		mang[0]=225;mang[1]=222;mang[2]=254;mang[3]=254;mang[4]=254;mang[5]=254;mang[6]=222;mang[7]=225;
    		break;		
    	case 'd':																							 
    		mang[0]=240;mang[1]=238;mang[2]=222;mang[3]=222	;mang[4]=222;mang[5]=222;mang[6]=238;mang[7]=240;
    		break;		
    	case 'e' :		
    		mang[0]=192;mang[1]=254;mang[2]=254;mang[3]=192;mang[4]=254;mang[5]=254;mang[6]=254;mang[7]=192;
    		break;		
    	case 'f' :		
    		mang[0]=192;mang[1]=254;mang[2]=254;mang[3]=192;mang[4]=254;mang[5]=254;mang[6]=254;mang[7]=254;
    		break;		
    	case 'g' :		
    		mang[0]=225;mang[1]=222;mang[2]=254;mang[3]=254;mang[4]=198;mang[5]=222;mang[6]=222;mang[7]=225;
    		break;		
    	case 'h' :		
    		mang[0]=222;mang[1]=222;mang[2]=222;mang[3]=192;mang[4]=222;mang[5]=222;mang[6]=222;mang[7]=222;
    		break;		
    	case 'i' :	
    		mang[0]=193;mang[1]=247;mang[2]=247;mang[3]=247;mang[4]=247;mang[5]=247;mang[6]=247;mang[7]=128;
    		break;		
    	case 'j' :		
    		mang[0]=193;mang[1]=247;mang[2]=247;mang[3]=247;mang[4]=247;mang[5]=247;mang[6]=246;mang[7]=249;
    		break;		
    	case 'k' :		
    		mang[0]=238;mang[1]=246;mang[2]=250;mang[3]=252;mang[4]=250;mang[5]=246;mang[6]=238;mang[7]=222;
    		break;										 								   
    	case 'l' :		
    		mang[0]=254;mang[1]=254;mang[2]=254;mang[3]=254;mang[4]=254;mang[5]=254;mang[6]=254;mang[7]=192;
    		break;																						 
    	case 'm' :		
    		mang[0]=190;mang[1]=156;mang[2]=170;mang[3]=182;mang[4]=190;mang[5]=190;mang[6]=190;mang[7]=190;
    		break;		
    	case 'n' :		
    		mang[0]=190;mang[1]=188;mang[2]=186;mang[3]=182;mang[4]=174;mang[5]=158;mang[6]=190;mang[7]=190;
    		break;																										  
    	case 'o' :		
    		mang[0]=225;mang[1]=222;mang[2]=222;mang[3]=222;mang[4]=222;mang[5]=222;mang[6]=222;mang[7]=225;
    		break;		
    	case 'p' :		
    		mang[0]=224;mang[1]=222;mang[2]=222;mang[3]=222;mang[4]=224;mang[5]=254;mang[6]=254;mang[7]=254;
    		break;		
    	case 'q' :		
    		mang[0]=225;mang[1]=222;mang[2]=222;mang[3]=222;mang[4]=222;mang[5]=198;mang[6]=222;mang[7]=161;
    		break;																
    	case 'r' :		
    		mang[0]=224;mang[1]=222;mang[2]=222;mang[3]=224;mang[4]=250;mang[5]=246;mang[6]=238;mang[7]=222;
    		break;		
    	case 's' :		
    		mang[0]=225;mang[1]=222;mang[2]=254;mang[3]=225;mang[4]=223;mang[5]=223;mang[6]=222;mang[7]=225;
    		break;		
    	case 't' :		
    		mang[0]=128;mang[1]=247;mang[2]=247;mang[3]=247;mang[4]=247;mang[5]=247;mang[6]=247;mang[7]=247;
    		break;		
    	case 'u' :		
    		mang[0]=222;mang[1]=222;mang[2]=222;mang[3]=222;mang[4]=222;mang[5]=222;mang[6]=206;mang[7]=209;
    		break;		
    	case 'v' :		
    		mang[0]=190;mang[1]=190;mang[2]=190;mang[3]=190;mang[4]=190;mang[5]=221;mang[6]=235;mang[7]=247;
    		break;				
    	case 'w' :		
    		mang[0]=190;mang[1]=190;mang[2]=190;mang[3]=190;mang[4]=182;mang[5]=182;mang[6]=213;mang[7]=235;
    		break;		
    	case 'x' :		
    		mang[0]=222;mang[1]=222;mang[2]=237;mang[3]=243;mang[4]=243;mang[5]=237;mang[6]=222;mang[7]=222;
    		break;		
    	case 'y' :		
    		mang[0]=190;mang[1]=190;mang[2]=221;mang[3]=235;mang[4]=247;mang[5]=247;mang[6]=247;mang[7]=247;
    		break;		
    	case 'z' :		
    		mang[0]=192;mang[1]=222;mang[2]=239;mang[3]=247;mang[4]=251;mang[5]=253;mang[6]=222;mang[7]=192;
    		break;		
    	case '0' : 	
    		mang[0] = 225;mang[1] = 222;mang[2] = 206;mang[3] = 214;mang[4] = 218;mang[5] = 220;mang[6] = 222;mang[7] = 225;		
    		break;
    /*	case '1' : 		
    		mang[0] = 251;mang[1] = 249;mang[2] = 250;mang[3] = 251;mang[4] = 251;mang[5] = 251;mang[6] = 251;mang[7] = 224;		
    		break;
    	case '2' : 	
    		mang[0] = 241;mang[1] = 238;mang[2] = 239;mang[3] = 247;mang[4] = 251;mang[5] = 253;mang[6] = 254;mang[7] = 224;		
    		break;
    	case '3' : 	
    		mang[0] = 241;mang[1] = 238;mang[2] = 239;mang[3] = 243;mang[4] = 239;mang[5] = 239;mang[6] = 238;mang[7] = 241;		
    		break;
    	case '4' : 	
    		mang[0] = 247;mang[1] = 243;mang[2] = 245;mang[3] = 246;mang[4] = 224;mang[5] = 237;mang[6] = 237;mang[7] = 247;		
    		break;
    	case '5' : 	
    		mang[0] = 224;mang[1] = 254;mang[2] = 254;mang[3] = 240;mang[4] = 249;mang[5] = 239;mang[6] = 238;mang[7] = 241;		
    		break;
    	case '6' : 		
    		mang[0] = 241;mang[1] = 238;mang[2] = 254;mang[3] = 240;mang[4] = 238;mang[5] = 238;mang[6] = 238;mang[7] = 241;		
    		break;
    	case '7' : 	
    		mang[0] = 192;mang[1] = 222;mang[2] = 239;mang[3] = 239;mang[4] = 247;mang[5] = 247;mang[6] = 251;mang[7] = 251;		
    		break;
    	case '8' : 	
    		mang[0] = 241;mang[1] = 238;mang[2] = 238;mang[3] = 241;mang[4] = 238;mang[5] = 238;mang[6] = 238;mang[7] = 241;		
    		break;
    	case '9' : 		
    		mang[0] = 241;mang[1] = 238;mang[2] = 238;mang[3] = 225;mang[4] = 239;mang[5] = 239;mang[6] = 238;mang[7] = 241;		
    		break;	  */
    	default : 
    		mang[0] = 0;mang[1] = 0;mang[2] = 0;mang[3] = 0;mang[4] = 0;mang[5] = 0;mang[6] = 0;mang[7] = 0;		
    		break;	
    	}
    }				 
    	char p3[3][8] = {{0,1,0,1,0,1,0,1},{0,0,1,1,0,0,1,1},{0,0,0,0,1,1,1,1}};
    	char col;	 	
    main(void)
    {
    	ui();
    	while(1)
    	{
    		P3_4=p3[0][col];		P3_5=p3[1][col];		P3_6=p3[2][col];		P3_7=0x00;
    		P0 = mang1[col];		P2 = mang2[col];
    		col++;	  
    		if(col==8)col=0;
    		delay(5);
    	}
    
    }
    Last edited by Huntress1; 01-11-2008, 11:12.

    Comment


    • #17
      - ủa, đoạn code của bạn mới dùng có 53byte RAM thôi mà ? Làm sao mà hết RAM được. À, bạn dùng con VĐK nào.
      - Còn dung lượng code là 2221byte.

      - Mình dùng con 89S52. RAM 256byte Flash 8K.

      Thân,

      Comment


      • #18
        #include <regx52.h>
        Đó, mình dùng thế này

        Nếu mở thêm bảng chữ số nữa nó báo thế này, k mở bảng chữ số thì chạy ngon
        compiling led.c...
        linking...
        BL51 BANKED LINKER/LOCATER V6.15 - SN: Eval Version
        COPYRIGHT KEIL ELEKTRONIK GmbH 1987 - 2008
        "STARTUP.obj",
        "led.obj"
        TO "led"
        RAMSIZE(256)
        ************************************************** ****************************
        * RESTRICTED VERSION WITH 0800H BYTE CODE SIZE LIMIT; USED: 0823H BYTE (101%) *
        ************************************************** ****************************
        Program Size: data=53.0 xdata=0 code=2264
        LINK/LOCATE RUN COMPLETE. 0 WARNING(S), 0 ERROR(S)
        *** FATAL ERROR L250: CODE SIZE LIMIT IN RESTRICTED VERSION EXCEEDED
        MODULE: C:\KEIL\C51\LIB\C51S.LIB (-----)
        LIMIT: 0800H BYTES
        Target not created

        Comment


        • #19
          Code:
          *** FATAL ERROR L250: CODE SIZE LIMIT IN RESTRICTED VERSION EXCEEDED
          - Bản KeilC của bạn đang xài không cho phép tạo mã code lớn hơn (Kiếm bản khác tải đi , bản này hình như bạn xài là Free phải không?).

          Thân,

          Comment


          • #20
            ờ ờ, hình như mình chưa cra ck, cảm ơn bạn nha, để cra ck phát thử sem ^^

            Comment


            • #21
              yea, xong rồi, giờ đi làm mạch nữa là xong. Mệt mỏi quá ..........
              Chưa bít gì về mấy cái này mà làm phải hoàn thành trong 4 tuần, giờ thì phần mô phỏng thì ok rồi, lắp thiết bị nữa thui, hy vọng xong trong tuần này.

              Rất cảm ơn các anh chị em đã viết nhiều tut để mình tham khảo và học hỏi, đặc biệt cảm ơn bạn khanhduy đã giúp đỡ, đóng góp nhiều ý kiến hay cho mình.
              Xin chân thành cảm ơn tất cả mọi người !!!

              Comment


              • #22
                Cảm ơn sao không nhấn nút cảm ơn nhỉ

                Web:[url]www.ledviet.info/url]
                Email:
                DĐ:0949299699

                Comment


                • #23
                  - Chúc mừng nhé .
                  - À, Mạch in bạn định làm = tay hay thuê làm ?
                  - Mình đang bị kẹt ở mạch in đây. Led matrix 8x8 mua ở Nhật Tảo có chân không theo 1 thứ tự nào cả. Định làm 1 mạch in để sắp lại chân cho theo hàng/cột mà không có kinh nghiệm làm mạch in (làm mạch 1 lớp có được không nhỉ? hay là phải 2 lớp).
                  Thân,

                  Comment


                  • #24
                    bạn dùng VOM để đo các chân của nó trước khi làm là biết thôi! cũng dễ mà bác!
                    SỰ HỌC LÀ MÃI MÃI......!!!!

                    Comment


                    • #25
                      mạch in mình tự làm, nhờ 1 anh hướng dẫn, anh ấy có kinh nghiệm làm mạch in rồi.

                      bạn làm mạch in để sắp lại chân thì làm 1 lớp được rồi, chủ yếu là đo chân của matrix cũ để chuyển cho đúng thôy

                      Comment


                      • #26
                        chào các bạn.các bạn có thể cho mình core asm. của chương trình này được kg.?cám ơn các bạn trước nha..

                        Comment


                        • #27
                          ban co the cho mình.cỏe asm của chương trình này đc kg.cam ơn bạn nhiều nhé..dia chi cù mình..trunghieu197697@yahoo.com.vn

                          Comment


                          • #28
                            chào các pác, mong các pác giúp em với, e mới học vi điều khiển chưa hiểu cho mấy, e đang làm cái đồ án về 89c51 điều khiển led matrix 8*8. pác nào có sơ đồ mạch và codeC cho e xin nhé. mong được sự giúp đỡ của các pác. thanks pác nhìu. pác nào có thì gửi qua mail giùm e luôn nhé: nguyenbaohuy89@yahoo.com

                            Comment

                            Về tác giả

                            Collapse

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

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

                            Collapse

                            • Andrea14
                              Vấn đề về tốc độ quay
                              bởi Andrea14
                              Chào mọi người,

                              Tôi muốn mô phỏng sự thay đổi các mùa bằng cách từ từ nghiêng một quả địa cầu 16 inch bằng một động cơ bước nhỏ. Một động cơ bước khác sẽ quay quả địa cầu theo thời gian thực. Hệ thống truyền động...
                              Hôm qua, 12:42
                            • 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
                            Đang tải...
                            X