Thông báo

Collapse
No announcement yet.

Tạo mã code cho led matrix

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

  • Tạo mã code cho led matrix

    Bạn nào cho mình hỏi, sao mình tạo code cho led ma trix.
    CODE ĐÂY
    Code:
    ORG 00H
    MAIN:
    MOV DPTR,#MASO1
    CALL CTHT
    LJMP MAIN
    
    CTHT:;CHUONG TRINH HIEN THI
    
    MOV R5,#100;toc do chay chu
    QUET:
    MOV R0,#000
    MOV R1,#01111111B
    LAPS:
    MOV P3,R1
    MOV A,R1
    RL A
    MOV R1,A
    MOV P3,R1
    MOV A,R0
    MOVC A,@A+DPTR
    MOV P2,A
    CALL DELAY
    INC R0
    CJNE R0,#8,LAPS;2 ma tran dien 16
    DJNZ R5,QUET
    INC DPTR
    RET
    
    
    
    
    MASO1:;T
    
    DB     0FCH,0FCH,0FCH,0H,0H,0FCH,0FCH,0FCH  
    
    DELAY:
    MOV R4,#50
    LAPF:
    NOP
    NOP
    NOP
    DJNZ R4,LAPF
    RET
    
    END
    MÌNH DÙNG PHẦN MỀM NÀY ĐỂ TẠO CODE CHO MATRIX
    Click image for larger version

Name:	123.PNG
Views:	1
Size:	34.4 KB
ID:	1414739
    THÌ KHI CHẠY MÔ PHỎNG NÓ LẠI BỊ KHÔNG ĐÚNG NHƯ MÔ PHỎNG Ở TRÊN.
    CỤ THỂ LÀ

    Click image for larger version

Name:	12.PNG
Views:	1
Size:	14.8 KB
ID:	1414738
    PRO NÀO GIÚP MÌNH VỚI, BỊ LỖI CODE PHẢI KHÔNG Ạ?
    Attached Files

  • #2
    pro nào giúp mình với

    Comment


    • #3
      Nguyên văn bởi namkoi312 Xem bài viết
      Bạn nào cho mình hỏi, sao mình tạo code cho led ma trix.
      CODE ĐÂY
      Code:
      ORG 00H
      MAIN:
      MOV DPTR,#MASO1
      CALL CTHT
      LJMP MAIN
      
      CTHT:;CHUONG TRINH HIEN THI
      
      MOV R5,#100;toc do chay chu
      QUET:
      MOV R0,#000
      MOV R1,#01111111B
      LAPS:
      MOV P3,R1
      MOV A,R1
      RL A
      MOV R1,A
      MOV P3,R1
      MOV A,R0
      MOVC A,@A+DPTR
      MOV P2,A
      CALL DELAY
      INC R0
      CJNE R0,#8,LAPS;2 ma tran dien 16
      DJNZ R5,QUET
      INC DPTR
      RET
      
      
      
      
      MASO1:;T
      
      DB     0FCH,0FCH,0FCH,0H,0H,0FCH,0FCH,0FCH  
      
      DELAY:
      MOV R4,#50
      LAPF:
      NOP
      NOP
      NOP
      DJNZ R4,LAPF
      RET
      
      END
      MÌNH DÙNG PHẦN MỀM NÀY ĐỂ TẠO CODE CHO MATRIX
      [ATTACH=CONFIG]54521[/ATTACH]
      THÌ KHI CHẠY MÔ PHỎNG NÓ LẠI BỊ KHÔNG ĐÚNG NHƯ MÔ PHỎNG Ở TRÊN.
      CỤ THỂ LÀ

      [ATTACH=CONFIG]54520[/ATTACH]
      PRO NÀO GIÚP MÌNH VỚI, BỊ LỖI CODE PHẢI KHÔNG Ạ?
      code của bạn sai chổ INC DPTR ....
      sử dụng 1 biến khác tạo vòng lặp cho R0 song tăng r0 thay vì tăng DPTR

      Comment


      • #4
        Nguyên văn bởi CONGMINHfs Xem bài viết
        code của bạn sai chổ INC DPTR ....
        sử dụng 1 biến khác tạo vòng lặp cho R0 song tăng r0 thay vì tăng DPTR
        Bạn có thể nói rõ giúp mình cách sửa được không? Cảm ơn bạn

        Comment


        • #5
          Anh Công Minh ơi hiện tại em đang có bài tập lớn về led matrix cụ thể là bảng led p10 16X32 nhưng em ko hiểu phần nguyên lý của nó em dow PROTEUS 16X32.rar của anh về nhưng vẫn chưa hiểu lắm về phần cứng và code PROTEUS 16X32.rar 2 phần anh đăng lên khác nhau . Mong anh giúp đỡ chỉ em cái code và file mô phỏng của led matrix 16X32 em làm mãi mà ko được

          Comment


          • #6
            Nguyên văn bởi namkoi312 Xem bài viết
            Bạn có thể nói rõ giúp mình cách sửa được không? Cảm ơn bạn
            Anh xem lại thấy code em sai hai chổ:
            1.MOV R1,#01111111B nếu muốn như thế này thì em phai khởi động là MOV R1,#00111111B,vì khi chưa xuất em đã quay rồi....
            2.nếu muốn chạy chữ em phải đưa MOV DPTR,#.... ra khỏi hàm main

            chúc em thành công.......congminhfs

            Comment


            • #7
              Nguyên văn bởi mchangngoc Xem bài viết
              Anh Công Minh ơi hiện tại em đang có bài tập lớn về led matrix cụ thể là bảng led p10 16X32 nhưng em ko hiểu phần nguyên lý của nó em dow PROTEUS 16X32.rar của anh về nhưng vẫn chưa hiểu lắm về phần cứng và code PROTEUS 16X32.rar 2 phần anh đăng lên khác nhau . Mong anh giúp đỡ chỉ em cái code và file mô phỏng của led matrix 16X32 em làm mãi mà ko được
              cụ thể là em làm với cái nào và code viết được gì rồi pos lên xem.

              Comment


              • #8
                Em làm với moduel led matrix p10 16X32 cái bán sẵn ngoài thị trường đó anh. Em tham khảo file mô phỏng của 16X32 của anh nhưng khi đưa code vào read51 thì lỗi không bung được file hex , anh làm cái với cái led maxtrix này ngoài thực tế chưa anh . Còn đây là code bạn em chuyển từ C về nhưng thầy giáo yêu cầu là phải code asm :
                #include <sfr51.inc>
                ORG 00H
                OE BIT P3.0 ;BAT TAT MAN HINH
                LS1 BIT P3.1 ; chan quet hang A
                LS0 BIT P3.2 ;chan quet cot b
                CLK BIT P3.4
                LATCH BIT P3.5
                MOSI BIT P3.6
                i equ 0
                j equ 0
                Yi equ 32
                Xi equ 16
                YB equ 32
                With equ 0
                WithB equ 0
                t equ 0
                y equ 0
                EndByte equ 0
                EndByteB equ 0
                End4 equ 0
                Ad1 equ 0
                Ad2 equ 0
                Ad3 equ 0
                Ad4 equ 0
                Dk2 equ 0
                Dk1 equ 0
                step equ 0
                kk equ 0
                m equ 0
                time_delay equ 0
                k equ 0
                ax equ 0
                ay equ 0
                MAIN:
                MOV P0,#0FFH
                ; delay_ms(0) goi delay
                CLR A
                MOV R7,A
                MOV R6,A
                LCALL delay_ms
                ; init_matrix() nhap matrix
                CLR
                A
                MOV i,A
                MOV 04EH,A
                MOV R7,04EH
                MOV A,R7
                MOV DPTR,#Matrix_G
                MOVC A,@A+DPTR
                MOV R6,A ;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
                ADD A,R7
                MOV R0,A
                MOV @R0,006H
                INC 04EH
                MOV A,04EH
                INC i
                XRL A,#040H
                ORL A,i
                LJMP INIT
                ;#####################
                SPI: ;ham ban du lieu
                CLR A
                MOV R6,A
                MOV R5,A
                MOV A,#P0
                MOV R0,005h
                INC R0
                CLR C
                RRC A
                ANL A,R7
                MOV R6,A
                SETB P3.6
                CLR P3.6
                CLR P3.4
                SETB P3.4
                INC R5
                RET
                INIT: ;khoi tao cho ngat
                MOV TMOD,#011H
                MOV TH1,#0FEH
                MOV TL1,#018H
                MOV TH0,#0FCH
                MOV TL0,#018H
                SETB TR0 ;KHOI DONG TIMER
                SETB TR1
                SETB EA
                SETB ET0
                SETB ET1
                RET
                DELAY_MS: ;tao tre thoi gian
                MOV A,R7
                DEC R7
                MOV R4,006H
                DEC R6
                ORL A,R4
                MOV 00EH,#079H
                MOV R5,00EH
                DEC 00EH
                MOV A,R5
                JZ DELAY_MS
                RET
                INTI_MATRIX: ;ham matrix
                MOV A,032h
                MOV R6,Yi
                MOV R0,#003h
                XCH A,R6
                CLR C
                RRC A
                XCH A,R6
                RRC A
                MOV 029h,A
                MOV With,R6
                MOV A,027H
                MOV R6,YB
                MOV R0,#003h
                XCH A,R6
                CLR C
                RRC A
                XCH A,R6
                RRC A
                MOV 048h,A
                MOV WithB,R6
                MOV R4,XB
                MOV R5,025H
                MOV R7,A
                LCALL COIMUL
                MOV EndByteB,R6
                MOV 054h,R7
                MOV R4,Xi ;R6 cua hang cuoi cung trong 1 modul
                MOV R5,030h
                MOV R6,With
                MOV R7,029h
                LCALL COIMUL
                MOV EndByte,R6
                MOV 02Ch,R7
                MOV A,048h ;595 trong cung 1 cot trong 1 modul
                SWAP A
                MOV R0,A
                ANL A,#00Fh
                XCH A,R0
                XRL A,R0
                MOV R5,A
                MOV A,WithB
                SWAP A
                ANL A,#B
                ORL A,R0
                MOV R4,A
                CLR C
                MOV A,R5
                SUBB A,048h
                MOV 036h,A
                MOV A,R4
                SUBB A,WithB
                MOV End4,A
                MOV A,048h
                MOV R6,WithB
                MOV R0,#002h
                CLR C
                RLC A
                XCH A,R6
                RLC A
                XCH A,R6
                MOV R7,A
                MOV Dk2,R6
                MOV 04Ah,A
                CLR C
                SUBB A,048h
                MOV R3,A
                MOV A,Dk2
                SUBB A,WithB
                MOV R2,A
                CLR C
                MOV A,036h
                SUBB A,R3
                XCH A,R3
                MOV A,End4
                SUBB A,R2
                XCH A,R3
                ADD A,048h
                MOV 046h,A
                MOV A,R3
                ADDC A,WithB
                MOV Dk1,A
                ;//Buoc nhay toi 74HC595 trong cung 1 cot
                MOV step,R6
                MOV 02Eh,R7
                ;//Dia chi tang 1
                CLR A
                MOV Ad1,A
                MOV 03Ah,A
                ;//Dia chi tang 2
                MOV A,03Ah
                ADD A,R5
                MOV 03Ch,A
                MOV A,Ad1
                ADDC A,R4
                MOV Ad2,A
                ;//Dia chi tang 3
                MOV A,048h
                SWAP A
                MOV R0,A
                ANL A,#00Fh
                XCH A,R0
                XRL A,R0
                MOV R7,A
                MOV A,WithB
                SWAP A
                ANL A,#B
                ORL A,R0
                MOV R6,A
                MOV A,03Ch
                ADD A,R7
                MOV 03Eh,A
                MOV A,Ad2
                ADDC A,R6
                MOV Ad3,A
                ;//Dia chi tang 4
                MOV A,03Eh
                ADD A,R7
                MOV 040h,A
                MOV A,Ad3
                ADDC A,R6
                MOV Ad4,A
                COIMUL:
                MOV A,R5
                MOV B,R5
                TIMER_0 :
                PUSH ACC
                PUSH PSW
                MOV PSW,#000h
                PUSH 000h
                PUSH 005h
                PUSH 006h
                PUSH 007h
                CLR TF0
                ;//chon thoi gian ngat la 1ms
                MOV TH0,#0FCh
                MOV TL0,#018h
                CLR P3.0
                CLR C
                MOV A,058h
                SUBB A,04Ah
                MOV A,t
                SUBB A,Dk2
                MOV j,#000h
                MOV 050h,#000h
                CLR C
                MOV A,050h
                SUBB A,048h
                MOV A,j
                SUBB A,WithB
                MOV y,#000h
                MOV 05Ah,#000h
                MOV A,046h
                ADD A,#001h
                MOV R7,A
                CLR A
                ADDC A,Dk1
                MOV R6,A
                CLR C
                MOV A,05Ah
                SUBB A,R7
                MOV A,y
                SUBB A,R6
                ; spi---matrix
                MOV A,036h
                ADD A,050h
                CLR C
                SUBB A,05Ah
                CLR C
                SUBB A,058h
                MOV R0,A
                MOV A,@R0
                CPL A
                MOV R7,A
                LCALL SPI
                MOV A,02Eh
                ADD A,05Ah
                MOV 05Ah,A
                MOV A,step
                ADDC A,y
                MOV y,A
                INC 050h
                MOV A,050h
                INC j
                CLR P3.5 ; latch=0;// Chot
                SETB P3.5
                MOV A,m
                SETB P3.2 ; LS0=1;
                SETB P3.1 ; LS1=1;
                MOV A,m
                SETB P3.2 ; LS0=1;
                CLR P3.1 ; LS1=0;
                MOV A,m
                CLR P3.2 ; LS0=0;
                SETB P3.1 ; LS1=1;
                MOV A,m
                CLR P3.2 ; LS0=0;
                CLR P3.1 ; LS1=0;
                SETB P3.0 ; P3_0=1;
                MOV k,#064H
                MOV R7,k
                DEC k
                MOV A,R7
                INC m
                MOV A,m
                MOV m,#000H
                MOV A,048H
                ADD A,058H
                MOV 058H,A
                MOV A,WithB
                ADDC A,t
                MOV t,A
                MOV t,#000H
                MOV 058H,#000H
                POP 007H
                POP 006H
                POP 005H
                POP 000H
                POP PSW
                POP ACC
                RETI
                ;############
                Matrix_G:
                db 000h,000h,000h,000h
                db 000h,000h,000h,000h
                db 000h,000h,000h,000h
                db 000h,000h,000h,000h
                db 01Eh,07Fh,09Fh,0F0h
                db 00Ch,021h,00Ch,040h
                db 00Ch,021h,090h,0C0h
                db 00Ch,041h,0A0h,0C0h
                db 00Ch,080h,0C0h,080h
                db 009h,000h,081h,080h
                db 009h,001h,0C1h,080h
                db 00Ah,002h,0C1h,000h
                db 01Ch,004h,041h,000h
                db 018h,008h,063h,008h
                db 018h,03Ch,0FFh,0F8h
                db 000h,000h,000h,000h
                ;
                End
                Anh cho em file mô phỏng và đoạn code asm với

                Comment


                • #9
                  Nguyên văn bởi mchangngoc Xem bài viết
                  Em làm với moduel led matrix p10 16X32 cái bán sẵn ngoài thị trường đó anh. Em tham khảo file mô phỏng của 16X32 của anh nhưng khi đưa code vào read51 thì lỗi không bung được file hex , anh làm cái với cái led maxtrix này ngoài thực tế chưa anh . Còn đây là code bạn em chuyển từ C về nhưng thầy giáo yêu cầu là phải code asm :
                  #include <sfr51.inc>
                  ORG 00H
                  OE BIT P3.0 ;BAT TAT MAN HINH
                  LS1 BIT P3.1 ; chan quet hang A
                  LS0 BIT P3.2 ;chan quet cot b
                  Em phải tìm hiểu nguyên lý hoạt động của moduel may ra mới viết code được ,code và mophong của moduel led matrix p10 16X32 thì anh không có,matran thì ráp nhiều rồi nhưng chưa sài cái này
                  À mà code này là asm mà,em làm với matrix p10 16X32 thật hả,code này có chạy không.....

                  Comment


                  • #10
                    bạn em chuyển từ code C bung đc file hex chắc chạy đc anh à, bọn em chạy thì chạy đc bằng code c rùi còn code asm thì chưa thử anh à
                    Nên đang mún nhờ anh

                    Comment


                    • #11
                      Nguyên văn bởi mchangngoc Xem bài viết
                      bạn em chuyển từ code C bung đc file hex chắc chạy đc anh à, bọn em chạy thì chạy đc bằng code c rùi còn code asm thì chưa thử anh à
                      Nên đang mún nhờ anh
                      em pos code c đã chạy lên xem...

                      Comment


                      • #12
                        Code c

                        Code:
                         #include <REGX51.H>
                        
                        sbit DATA  = P1^0;
                        sbit SH_CP = P1^1;
                        sbit ST_CP = P1^2;
                        
                        unsigned char code hang[300]=
                        {		
                        
                        			0x0,0x0,0x3C,0x3C,0x81,0xC3,0xFF,0xC3,0x81,0x3C,0x3C,0x81,0xC3,0xFF,0xFF,0xFF,	//DO  
                        			0x0,0x0,0x3C,0x3C,0x3C,0x81,0xC3,0xFF,
                        			0xFF,0xC3,0xBD,0x7E,0x7E,0xBD,0xC3,0xFF,  
                        			0x1,0x7D,0xBB,0xC7,0xFF,0xC7,0xBB,0xBB,0xC7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,  
                        			
                        			  
                        			  
                        
                         };					   
                        unsigned int cot[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
                        unsigned int n,m,k;
                        void delay( unsigned int ms)
                        {
                          unsigned int i,j;
                         for(i=0;i<ms;i++);
                         {
                          for(j=0;j<125;j++)
                          {;}
                         }
                        }
                        //--------- Chuye^n no^'i tie^'p sang song song  
                        void convert (unsigned int x)
                        {
                         unsigned int n,tg;
                         for(n=0;n<8;n++)
                         {
                          tg=x;
                          tg=tg&0x80;
                          if(tg==0x80)
                          DATA=1;
                          else
                          DATA=0;
                          x=x<<1;
                          SH_CP=0;
                          SH_CP=1;
                         }
                        }     
                        void main()
                         {
                          while(1)
                            {
                              for(m=0;m<300;m++)//do dai chu
                                {
                           	      for(k=0;k<5;k++)//toc do chay chu
                        	        {
                        	          for(n=m;n<=7+m;n++)
                        			 
                        	            {	  
                                              convert(hang[n]);
                        	              if(n<8)convert(0xff);  else convert(hang[n-8]);	   
                        	              if(n<16)convert(0xff); else convert(hang[n-16]);
                        	              if(n<24)convert(0xff); else convert(hang[n-24]);
                                              P2=cot[n-m];
                        					  
                        	              ST_CP=1;
                        	              ST_CP=0;
                        	              delay(20);
                        	            }
                        	         }
                                 }
                             }
                         }
                        BẠN NÀO CÓ THỂ GIẢI THÍCH DÙM MÌNH CODE NÀY ĐƯỢC KHÔNG? XIN CẢM ƠN

                        Comment


                        • #13
                          [MENTION=239711]namkoi312[/MENTION]:
                          Đây là mạch quét 4 led matrix 8*8 dùng 74595 theo cột. Ic 595 dùng để chuyển đổi dữ liệu từ nối tiếp (vào từng bit ra 8 bit) để tiết kiệm chân. Dùng 4 con 595 để quét mã hàng,người ta nối chân 14 của con 595 thứ nhất vào vi điều khiển,đưa dữ liệu qua chân này,cứ theo nguyên tắc nối chân 14 của con này với chân 9 của con trước đó thì khi dữ liệu trong con trước đủ 8 bít thì sẽ được chuyển dần từng bit qua con kế tiếp thông qua chân 9-14.Cứ sau mỗi lần dịch đủ 8 bit lại chốt dữ liệu 1 lần,.....
                          Nói chung là khá dài,bạn cần chủ động tìm tài liệu có sẵn chứ chẳng ai hơi đâu mà giải thích hết đc
                          Xem thêm tại đây: Matrix 8x8
                          vanduc0211@gmail.com

                          Comment

                          Về tác giả

                          Collapse

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

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

                          Collapse

                          Đang tải...
                          X