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

                            Đang tải...
                            X