Thông báo

Collapse
No announcement yet.

Led matran bằng ASM có nhiều bạn quang tâm..................

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

  • Led matran bằng ASM có nhiều bạn quang tâm..................

    lang than trên dđ dtvn mình thấy có rất nhiều bạn thắc mắc về led matran về cách thiết kế phần cứng cũng như viết code để điều khiển nó,mà đặc biệt là bằng asm,
    nói về dòng 89 mà dùng cho matran(quang báo)thì tương đối thôi vì tốc độ chậm,ram ít nhưng nó phù hợp với các bạn mới học vdk vì giá thành thấp ,dể sử dụng với những ứng dụng không lớn.
    Mình mở luồn này nhằm giúp cho bạn nào muốn làm về led matran và viết code bằng hợp ngữ ,cách thiết kế một mạch thật để phù hợp với công xuất led dựa trên mạch mà các bạn mô phổng.

    ....nào ...có ai hưởng ứng không nào..!
    các bạn có thể tự vẽ hoặc lấy mạch mô phỏng này trước nhé
    [/url]

    còn đây fire mophong:MATRAN_8x8 x10.rar

    bai 2:chúng ta cùng viết code cho chữ chạy từ trái qua phải .....
    Last edited by CONGMINHfs; 23-09-2012, 14:58.

  • #2
    Nhìn dùng đến 74HC595 là đã có hào hứng rồi, ủng hộ bác.
    nhưng em nghĩ là đầu tiên nên dùng IC giải mã thôi cho nó đơn giản đã (em cũng vừa làm song bài dịch chữ trên matrix, nhưng hơi sấu, hy vọng sau bài tutorial này thì sẽ có kinh nghiệm hơn), sau đó mới chuyển dần lên dùng IC dịch .
    thank phát ủng hộ bác.

    Comment


    • #3
      mong chờ anh chỉ dẫn hihi

      Comment


      • #4
        Đây là code đơn giản chỉ có hơn 200byte các bạn có thể có chử chạy rồi nhé.
        các bạn có thể copy code này thay đổi chữ,rồi dịch rồi cho chạy .....
        nếu ai thắc mắc về code mình sẽ chia sẽ cho.
        CHÚC THÀNH CÔNG ...!


        Code:
        	 
        
        
        
        
         ;QUETLED hien thi gom 80 cot va 8 hang
             SI   BIT P3.0 ;pin 14 74HC595
             SCK  BIT P3.1 ;pin 11 74HC595
             RCK  BIT P3.2 ;pin 12 74HC595
        ;******************************************* 	
                CHONHANG EQU P2 ;CHONHANG PORT P2
        	CON_TRO    EQU R0
        	DIA_CHI	 EQU R1	
        	SO_COT      EQU R2
        	TOC_DO      EQU R3
        	DICHBIT      EQU 08H
                     ;hang 0>7 p2=00H>>07H
        
        ;****************************************	
        ;************BAT DAU CHUONG TRINH ********
        ;******************************************                                                     
                              ORG 0000H              
                              LJMP MAIN
        					 ; ORG 0003H
        					  ;LJMP EX0ISR
        					 ; ORG 000BH   ;Dia chi vector bo dinh thoi 0
        					 ; LJMP T0ISR
        					 ; ORG 001BH   ;Dia chi vector bo dinh thoi 1
        					 ; LJMP T1ISR  ;tao am thanh bipbip
        				        ; ORG 002BH  ;Dia chi vector bo dinh thoi 2
        
        ;***************************************
        		   ORG 0030H
        ;**************************  
        MAIN:           MOV SP,#60H                          
        		 ;  MOV TMOD,#11H;11H ;Ca 2 bo dinh thoi che do 1
                         ;  MOV IE,#8AH ;8A;cho phep ngat do cac bo dinh thoi
        		   MOV DPTR,#CONGMINH ;co the thay chu khac
        ;*******************************************************
        ;*************CH/TR Chinh *****************************
        PLAY:
        ;***************************	
                         MOV DIA_CHI,#-80
        DICH_TRAI:MOV TOC_DO,#2
        LRAM:   
                         LCALL LOADLENRAM
        EX_00:       LCALL QUET8HANG
        		 DJNZ TOC_DO,EX_00
        		 MOV TOC_DO,#2
        		 INC DIA_CHI
        		 CJNE R1,#80,EX_01
        		 MOV DIA_CHI,#-80
        		 LJMP DICH_TRAI 
         EX_01:      LJMP LRAM
        ;***************************
        	         LJMP PLAY
        ;******************************************
        ;**********CH/TR con ********************** 
        ;**********************************************
        LOADLENRAM:
                        PUSH 00H
        		PUSH 01H
        		PUSH 02H 
                    MOV CON_TRO,#9EH ;Dia chi dau 
        	    MOV A,DIA_CHI
                    MOV SO_COT,#80 ;80cot                             
        LAPL_01:MOV A,DIA_CHI                                                       
                     MOVC A, @A+DPTR ;lay du lieu                                        
        	     MOV @CON_TRO,A ;ghi vao ram
        	     INC CON_TRO	  ;tang con to dia chi
        	     INC DIA_CHI	;tang dia chi trung gian		   
        	     DJNZ SO_COT,LAPL_01;du so cot chua
        		POP 00H
        		POP 01H
        		POP 02H
                RET
        
        ;***********************************************
         QUET8HANG:  
                      PUSH 07H
        	      PUSH 00H
                      MOV R7,#7  ;chon hang  
         LAPHANG: MOV CON_TRO,#9EH      	 	
        	      CLR RCK					 
           LAPCOT:  CLR SCK 	          
        	      MOV A,@CON_TRO
        	      CLR C
        	      RRC A
                      MOV @CON_TRO,A
        	      SETB SCK
        	      MOV SI,C			  		 
        	     INC CON_TRO			  
        	     CJNE CON_TRO,#0EFH,LAPCOT 
        	     SETB RCK		  
        	     MOV CHONHANG,R7;Sang hang			  
        	     LCALL DELAYLED
        	     MOV CHONHANG,#8
        	     DEC R7
                     CJNE R7,#-1,LAPHANG
        	     POP 00H
        	     POP 07H
        	     RET
        ;******************************************************	          
        ;*******************************
        DELAYLED:   PUSH 04H
                           PUSH 03H
                           MOV R4,#10
                     D1 :MOV R3,#250                 
                           DJNZ R3,$       
                           DJNZ R4,D1
        		   POP 03H
        		   POP 04H					   
                            RET   
        ;***************************;***********
        ;*************
        CONGMINH: 
        DB 7CH,0FEH,82H,82H,0CEH,4CH,0H,5CH,0BEH,0A2H,0BEH,5CH,0H,3EH,3EH,20H,3EH,1EH,0H,19H,3DH,25H,3FH,3EH,0H,0H
        DB 0FEH,0FEH,60H,30H,60H,0FEH,0FEH,0H,0BCH,0BEH,4H,0H,3EH,3EH,20H,3EH,1EH,0H,0FEH,0FEH,20H,3EH,1EH,0H,0H
        DB 0FEH,0FEH,90H,90H,80H,64H,0F6H,92H,0DEH,4CH,0H      
        ;*************
        END

        lần tới sẽ là chữ chạy từ phải qua trái và dưới lên trên.....
        Last edited by CONGMINHfs; 24-09-2012, 20:31.

        Comment


        • #5
          Bác CONGMINHfs có thể chỉ giúp về ít tưởng, thuật toán của code trên không? ví dụ như chúng hoạt động ra sao, làm thế nào mà lại hiển thị được chứ, thay đổi giá trị nào trong code thì nó sẽ chạy nhanh, chậm thế nào? rồi tần số quét bao nhiêu là phù hợp để Led sáng đủ mạnh, các tính tần số đó thế nào ..v.v.
          Nếu bác đã có lòng thì mong bác nói cho em cũng như những người mới tìm hiểu cặn kẽ chút, vì cũng giống như khi làm bài tập thì ta phải hiểu công thức để suy luận chứ cứ thay số vào thì ai cũng làm được, rồi cũng chẳng ai biết gì. Còn code thì trên mạng có nhiều cái để tham khảo rồi.
          Chúc bác một ngày mới vui vẻ!

          Comment


          • #6
            Nếu bạn đã có lòng tốt giúp đỡ anh em thì cho code đúng,dịch sang hex 14 lỗi

            Comment


            • #7
              Nguyên văn bởi hongphuong98 Xem bài viết
              Nếu bạn đã có lòng tốt giúp đỡ anh em thì cho code đúng,dịch sang hex 14 lỗi
              Code ko có lổi, tôi dùng phần mềm mide-51 chuyển bình thuồng mà

              Comment


              • #8
                Nguyên văn bởi PDEL Xem bài viết
                Code ko có lổi, tôi dùng phần mềm mide-51 chuyển bình thuồng mà
                Cám ơn bạn,tôi chuyển sang dịch hex từ phần mềm asm 51 thì bình thường,đã mô phỏng chạy tốt.Cám ơn bạn congminhfs nhiều.

                Comment


                • #9
                  Nguyên văn bởi Ck33spkt Xem bài viết
                  Bác CONGMINHfs có thể chỉ giúp về ít tưởng, thuật toán của code trên không? ví dụ như chúng hoạt động ra sao, làm thế nào mà lại hiển thị được chứ, thay đổi giá trị nào trong code thì nó sẽ chạy nhanh, chậm thế nào? rồi tần số quét bao nhiêu là phù hợp để Led sáng đủ mạnh, các tính tần số đó thế nào ..v.v.
                  Nếu bác đã có lòng thì mong bác nói cho em cũng như những người mới tìm hiểu cặn kẽ chút, vì cũng giống như khi làm bài tập thì ta phải hiểu công thức để suy luận chứ cứ thay số vào thì ai cũng làm được, rồi cũng chẳng ai biết gì. Còn code thì trên mạng có nhiều cái để tham khảo rồi.
                  Chúc bác một ngày mới vui vẻ!

                  bạn Ck33spkt và các bạn thân....
                  về í tưởng là thế này : ví du mình có chữ Ck33spkt làm sao cho nó h thị lên matran
                  trong t /hợp này là 80 cột và 8 hàng.kích cở này thì tùy các bạn chọn

                  thuật toán là thế này:dữ liệu chữ Ck33spkt nẳm trong bảng Ck33spkt:db .........
                  đầu tiên các bạn đưa d/liệu này xếp lên ram của 89 cụ thể các ban xem ch/tr con
                  LOADLENRAM
                  (nhắc lai: 89c52 có 256byte ram có addr từ 00 7Fh và 2 vùng ram 80h đến FFh
                  ta chọn vùng ram trên từ 80h đến FFh để s dụng)
                  trong thí dụ này mình chọn addr đầu tiên là 80H đến addr cuối là 0D1H =80BYTE

                  các bạn tưởng tượng là cứ 1byte ram tương ứng với 1cột matran
                  ....................................1bit.......... ....................1led............
                  sau khi đã LOADLENRAM xong bây giờ cho hiển thị,có 2 cách h/thị 1 là xuất ram ra theo cột(80c).2 là theo hàng (8h) chon cách nào hay hơn các b tìm hiểu nhé ,ở đây mình chọn xuất theo hàng(là p/pháp tối ưu cho matran)

                  ch/tr con QUET8HANGlà cứ cắt 1bit của ram t/ứng với cột led(80bit xong một hàng )xong cho sáng hàng đó lên

                  còn về tốc độ rất trực quang trong code ,biến TOC_DO
                  ảnh hưởng độ sáng led,tốc độ,là DELAYLED

                  Comment


                  • #10
                    Nguyên văn bởi CONGMINHfs Xem bài viết
                    bạn Ck33spkt và các bạn thân....
                    về í tưởng là thế này : ví du mình có chữ Ck33spkt làm sao cho nó h thị lên matran
                    trong t /hợp này là 80 cột và 8 hàng.kích cở này thì tùy các bạn chọn

                    thuật toán là thế này:dữ liệu chữ Ck33spkt nẳm trong bảng Ck33spkt:db .........
                    đầu tiên các bạn đưa d/liệu này xếp lên ram của 89 cụ thể các ban xem ch/tr con
                    LOADLENRAM
                    (nhắc lai: 89c52 có 256byte ram có addr từ 00 7Fh và 2 vùng ram 80h đến FFh
                    ta chọn vùng ram trên từ 80h đến FFh để s dụng)
                    trong thí dụ này mình chọn addr đầu tiên là 80H đến addr cuối là 0D1H =80BYTE

                    các bạn tưởng tượng là cứ 1byte ram tương ứng với 1cột matran
                    ....................................1bit.......... ....................1led............
                    sau khi đã LOADLENRAM xong bây giờ cho hiển thị,có 2 cách h/thị 1 là xuất ram ra theo cột(80c).2 là theo hàng (8h) chon cách nào hay hơn các b tìm hiểu nhé ,ở đây mình chọn xuất theo hàng(là p/pháp tối ưu cho matran)

                    ch/tr con QUET8HANGlà cứ cắt 1bit của ram t/ứng với cột led(80bit xong một hàng )xong cho sáng hàng đó lên

                    còn về tốc độ rất trực quang trong code ,biến TOC_DO
                    ảnh hưởng độ sáng led,tốc độ,là DELAYLED
                    bạn cong minh có số điện thoại hay mail ko vậy?có gì thì alo cho cong minh giúp đở mình thấy cũng thít lắm nhưng chưa lám dc

                    Comment


                    • #11
                      Nguyên văn bởi lehong van Xem bài viết
                      bạn cong minh có số điện thoại hay mail ko vậy?có gì thì alo cho cong minh giúp đở mình thấy cũng thít lắm nhưng chưa lám dc
                      mail của mình :congtran92@gmail.com

                      Comment


                      • #12
                        Nguyên văn bởi CONGMINHfs Xem bài viết
                        mail của mình :congtran92@gmail.com
                        Bác CONGMINH cho mình hỏi chút: lênh " CJNE CON_TRO,#0EFH,LAPCOT " thì mã 0EFH này bác lấy từ đầu để so sánh vậy

                        Comment


                        • #13
                          Nguyên văn bởi PDEL Xem bài viết
                          Bác CONGMINH cho mình hỏi chút: lênh " CJNE CON_TRO,#0EFH,LAPCOT " thì mã 0EFH này bác lấy từ đầu để so sánh vậy
                          Trong code có đó bạn vì ngẩu hứng nên mình chọn 80 byte ram từ 9EH đến EFH có phải là 80 byte không ,thực chất thì từ 9EH đến EEH nhưng vì lệnh so sánh nên phải là EFH



                          hỡi anh em còn ai thắc mắc gì nữa không ta....!!!!
                          Last edited by CONGMINHfs; 27-09-2012, 18:34.

                          Comment


                          • #14
                            Nguyên văn bởi CONGMINHfs Xem bài viết
                            mail của mình :congtran92@gmail.com
                            bác cong minh có số điện thoại ko vậy?mình muốn trực tiếp hỏi 1 số vấn đề về led matran của bác thôi

                            Comment


                            • #15
                              bác CONGMINHfs ơi mún làm thành 16 hàng mà chỉ dùng 595 thì ntn đấy, bác chỉ giúp cho em với. Em đang làm đồ án về kái đó

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X