Thông báo

Collapse
No announcement yet.

Giúp em Bi-Color led matrix

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

  • Giúp em Bi-Color led matrix

    Xin các tiền bối chỉ em món song chưởng hợp nhất này với ạ:P

    Lấy ví dụ đơn giản thế này ạ, em có một matrix 8x8 2 màu red, green. Em dùng HC138 để quét hàng (thực ra thì một matrix thế này hàng cột không quan trọng, nhưng cứ giả sử vậy đi, để lần sau em làm nhiều cột hơn ạ) Em dùng 2 con HC595, một con nối với các cathode của red, một con nối với cathode của green . Bây giờ em muốn chạy một hàng chữ mà các chữ cái lẫn lộn các màu: green red orange với các hiệu ứng lên, xuông, trái, phải, etc.... Em có một số thắc mắc sau đây
    - Nên nối tiếp hai con 595 hay là tách riêng ra.
    - Giải thuật ở đây sẽ là thế nào ạ. Cái này quan trọng ạ Các tiền bối cho em vài đoạn khẩu quyết ASM thì tốt quá
    - Vấn đề tạo font chữ ạ: Tạo font bằng soft nào good ạ, matrix 8x8 làm sao để nó chạt một hàng chữ mà các chữ cái sát nhau, như thế sẽ mỹ mãn hơn đúng không ạ
    - Một số hiệu ứng đơn giản cho matrix một màu em đã tìm đuợc ở đây: _http://users.tpg.com.au/users/talking/5x7_experiments_page3.html
    Các tiền bối có thêm công phu nào ảo diệu, xin cho hậu bối được mở măt học tập
    Xin đa tạ các tiền bối, kiến thức em nông cạn, mong được chỉ giáo ạ
    Last edited by HTAluvBebeo; 02-06-2007, 21:37.

  • #2
    HIX đến cái ma trận một màu em làm cũng chưa được: 1 ma trận 8x8 thôi, mọi người giúp với ạ
    HC595 nối với anode, hc138 nối với cathode,
    hc595 nối vào RB0, RB1,RB2,RB3
    HC138 nối vào RA2, RA3, RA4.
    Hiện tượng: matrix chỉ sáng có một nửa:P, chẳng nhìn ra cái gì cả
    Code đây ạ
    Code:
    ;********************************************************
    ;
    ;            THE LED FLASH 595
    ;
    ;                                 AUTHOR : HTALUVBEBEO
    ;********************************************************
    
            LIST            P=PIC16F84A
            INCLUDE         P16F84A.INC
            __CONFIG _HS_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF
    
    
    ;****************  LABEL DEFINITION  ********************
    RA0     EQU     00              ;RA0 BIT
    RA1     EQU     01              ;RA1 BIT
    RA2     EQU     02              ;RA2 BIT
    RA3     EQU     03              ;RA3 BIT
    RA4     EQU     04              ;RA4 BIT
    CNT500U EQU     0x0C              ;500USEC COUNTER ADDRESS
    CNT1M   EQU     0x0D              ;1MSEC COUNTER ADDRESS
    
    SHIFT	EQU	0x11		;CHUA BIT CAN DICH
    COUNTS	EQU	0x12		;KIEM TRA SO LUONG BIT DICH
    ROW1	EQU	0x13
    ROW2	EQU	0x14
    ROW3	EQU	0x15
    ROW4	EQU	0x16
    ROW5	EQU	0x17
    ROW6	EQU	0x18
    ROW7	EQU	0x19
    ROW8	EQU	0x1A
    CNTTAB	EQU	0x1B		;COUNT CHO TABLE
    CNTSC1	EQU	0x1C		;COUNT NUMBER OF SCAN1
    
    
    ;****************  KHAI BAO PHANCUNG VOI 595  *************
    
    	#DEFINE	DATA	PORTB,0
    	#DEFINE	CLOCK	PORTB,1
    	#DEFINE	CLEAR	PORTB,2
    	#DEFINE	LATCH	PORTB,3
    
    ;****************  PROGRAM START  ***********************
            ORG     0               ;RESET VECTOR
            GOTO    INIT
            ORG     4               ;INTERRUPT VECTOR
            GOTO    INIT
    ;****************  INITIAL PROCESS  *********************
            ORG     5
    INIT   	BCF	STATUS,RP1
    	BSF     STATUS,RP0      ;CHANGE TO BANK1 
            MOVLW   B'00011'        ;SET INPUT MODE DATA
            MOVWF   TRISA           ;SET PORTA TO INPUT MODE
    	MOVLW	B'11110000'
    	MOVWF	TRISB
            BCF     STATUS,RP0      ;CHANGE TO BANK0
           
    
    ;**************** ELEVATOR UP ************************
    RUN1	CLRF	ROW1		;XOA HANG GHOST
    	CLRF	ROW2		;XOA HANG GHOST
    	CLRF	ROW3		;XOA HANG GHOST
    	CLRF	ROW4		;XOA HANG GHOST
    	CLRF	ROW5		;XOA HANG GHOST
    	CLRF	ROW6		;XOA HANG GHOST
    	CLRF	ROW7		;XOA HANG GHOST
    	CLRF	ROW8		;XOA HANG GHOST
    	CLRF	CNTTAB		;CHOBIEN  DEM TABLE VE 0
    RUN2	MOVLW	D'100'		;SO LAN SCAN
    	MOVWF	CNTSC1		;CHO VAO BIEN DEM SCAN1
    	CALL	UP		;GOI CT UP HANG
    	INCF	CNTTAB,1	;TANG BIEN DEM TABLE THEM 1 SAU MOT VONG
    	MOVF	CNTTAB,0	;DUA BIEN DEM TABLE VAO W
    	CALL	TABLE1		;TRA BANG
    	MOVWF	ROW8		;DUA GIA TRI VAO HANG CUOI 8
    	XORLW	0xFF		;GT TRONG W CO BANG GT CUOI CUA BANG 0FFh?
    	BTFSC	STATUS,Z	;KIEM TRA BIT Z, KHAC FF THI BO QUA
    	GOTO	RUN1		;QUAY LAI TU DAU KHI HET BANG
    RUN3	DECFSZ	CNTSC1,1	;GIAM BIEN DEM SCAN1, 100 LAN
    	GOTO	RUN4
    	GOTO	RUN2
    RUN4	CALL	SCAN
    	GOTO	RUN3
    ;************************** SCAN**************************
    SCAN	CALL	CLR		;XOA 595
    	MOVF	ROW8,0		;DUA DU LIEU ROW1 VAO W
    	CALL	SHIFTOUT	;GOI CT DICH BIT
    	CALL	CHOT		;CHOT DU LIEU RA O 595
    	CALL	SCR8		;GOI CT SCAN ROW, TURN ROW ON
    	CALL	T1M		;DELAY 1MS
    
    	CALL	CLR		;XOA 595
    	MOVF	ROW7,0		;DUA DU LIEU ROW1 VAO W
    	CALL	SHIFTOUT	;GOI CT DICH BIT
    	CALL	CHOT		;CHOT DU LIEU RA O 595
    	CALL	SCR7		;GOI CT SCAN ROW, TURN ROW ON
    	CALL	T1M		;DELAY 1MS
    
    	CALL	CLR		;XOA 595
    	MOVF	ROW6,0		;DUA DU LIEU ROW1 VAO W
    	CALL	SHIFTOUT	;GOI CT DICH BIT
    	CALL	CHOT		;CHOT DU LIEU RA O 595
    	CALL	SCR6		;GOI CT SCAN ROW, TURN ROW ON
    	CALL	T1M		;DELAY 1MS
    
    	CALL	CLR		;XOA 595
    	MOVF	ROW5,0		;DUA DU LIEU ROW1 VAO W
    	CALL	SHIFTOUT	;GOI CT DICH BIT
    	CALL	CHOT		;CHOT DU LIEU RA O 595
    	CALL	SCR5		;GOI CT SCAN ROW, TURN ROW ON
    	CALL	T1M		;DELAY 1MS
    
    	CALL	CLR		;XOA 595
    	MOVF	ROW4,0		;DUA DU LIEU ROW1 VAO W
    	CALL	SHIFTOUT	;GOI CT DICH BIT
    	CALL	CHOT		;CHOT DU LIEU RA O 595
    	CALL	SCR4		;GOI CT SCAN ROW, TURN ROW ON
    	CALL	T1M		;DELAY 1MS
    
    	CALL	CLR		;XOA 595
    	MOVF	ROW3,0		;DUA DU LIEU ROW1 VAO W
    	CALL	SHIFTOUT	;GOI CT DICH BIT
    	CALL	CHOT		;CHOT DU LIEU RA O 595
    	CALL	SCR3		;GOI CT SCAN ROW, TURN ROW ON
    	CALL	T1M		;DELAY 1MS
    
    	CALL	CLR		;XOA 595
    	MOVF	ROW2,0		;DUA DU LIEU ROW1 VAO W
    	CALL	SHIFTOUT	;GOI CT DICH BIT
    	CALL	CHOT		;CHOT DU LIEU RA O 595
    	CALL	SCR2		;GOI CT SCAN ROW, TURN ROW ON
    	CALL	T1M		;DELAY 1MS
    
    	CALL	CLR		;XOA 595
    	MOVF	ROW1,0		;DUA DU LIEU ROW1 VAO W
    	CALL	SHIFTOUT	;GOI CT DICH BIT
    	CALL	CHOT		;CHOT DU LIEU RA O 595
    	CALL	SCR1		;GOI CT SCAN ROW, TURN ROW ON
    	CALL	T1M		;DELAY 1MS
    	
    	RETURN
    ;**********************CT UP******************
    UP	MOVF	ROW2,0		;ROW DUOI VAO W
    	MOVWF	ROW1		; W VAO ROW TREN
    
    	MOVF	ROW3,0		;ROW DUOI VAO W
    	MOVWF	ROW2		; W VAO ROW TREN
    
    	MOVF	ROW4,0		;ROW DUOI VAO W
    	MOVWF	ROW3		; W VAO ROW TREN
    
    	MOVF	ROW5,0		;ROW DUOI VAO W
    	MOVWF	ROW4		; W VAO ROW TREN
    
    	MOVF	ROW6,0		;ROW DUOI VAO W
    	MOVWF	ROW5		; W VAO ROW TREN
    
    	MOVF	ROW7,0		;ROW DUOI VAO W
    	MOVWF	ROW6		; W VAO ROW TREN
    
    	MOVF	ROW8,0		;ROW DUOI VAO W
    	MOVWF	ROW7		; W VAO ROW TREN
    
    	RETURN
    ;********************************************************
    ;          TIMER  SUBROUTINE FOR 10MHZ CLOCK
    ;********************************************************
    
    ;*************  1MSEC TIMER SUBROUTINE  *****************
    T1M     MOVLW   D'2'            ;(1)       SET LOOP CNT1
            MOVWF   CNT1M           ;(1)       SAVE LOOP CNT1
    TM1LP1  MOVLW   D'249'          ;(1)*2     SET LOOP CNT2
            MOVWF   CNT500U         ;(1)*2     SAVE LOOP CNT2
    TM1LP2  NOP                     ;(1)*249*2 TIME ADJUST
            NOP                     ;(1)*249*2 TIME ADJUST
            DECFSZ  CNT500U,F       ;(1)*249*2 CNT500U-1=0 ?
            GOTO    TM1LP2          ;(2)*248*2 NO, CONTINUE
            DECFSZ  CNT1M,F         ;(1)*2     CNT1M-1=0 ?
            GOTO    TM1LP1          ;(2)       NO. CONTINUE
            RETURN                  ;(2)       YES. CNT END
                                    ;TOTAL 2501*0.4USEC=1MSEC
    
    ;*********** CHUONG TRINH CON DICH BIT **********
    SHIFTOUT
    	MOVWF	SHIFT		;DUA DU LIEU VAO THANH GHI SHIFT
    	MOVLW	D'8'		;DEM 8BIT DU LIEU
    	MOVWF	COUNTS
    TESTBIT
    	BCF	DATA		;DU LIEC BAN DAU LA 0
    	BTFSC	SHIFT,7		;SHIFT CO BIT7 BANG 0 KKO??
    	BSF	DATA		;NEU KO SET DU LIEU TU O THANH 1
    	BSF	CLOCK		;DUA DU LIEU VAO
    	NOP
    	BCF	CLOCK		;DUA CHAN CLOCK VE MUC THAP
    	RLF	SHIFT,0		;DICH TRAI THANH GHI DU LIEU
    	MOVWF	SHIFT		;TRA GIA TRI LAI THANH GHI SHIFT
    	DECFSZ	COUNTS,1	; XEM BIEN COUNT KHI GIAM BANG 0???
    	GOTO	TESTBIT		;NEU CHUA THI DICH TIEP
    
    	RETURN
    
    ;**************** KHOI TAO 595  *********************
    CLR	BCF	CLEAR		;RESET DU LIEU TRONG 595
    	NOP			; CLEAR TAC DONG CANH XUONG
    	BSF	CLEAR		; DUA CHAN RESET VE MUC LOGIC CAO
    	RETURN
    ;*********** CHUONG TRINH CHOT **********
    CHOT
    	BSF	LATCH		;LEN MUC CAO DE DUA BYTE VAO
    	NOP
    	BCF	LATCH		;XUONG THAP KET THUC
    	
    	RETURN
    ;*********** SCAN ROW *************
    SCR1	MOVLW	B'00011'
    	MOVWF	PORTA
    	RETURN
    	
    SCR2	MOVLW	B'00111'
    	MOVWF	PORTA
    	RETURN
    	
    SCR3	MOVLW	B'01011'
    	MOVWF	PORTA
    	RETURN
    	
    SCR4	MOVLW	B'01111'
    	MOVWF	PORTA
    	RETURN
    	
    SCR5	MOVLW	B'10011'
    	MOVWF	PORTA
    	RETURN
    	
    SCR6	MOVLW	B'10111'
    	MOVWF	PORTA
    	RETURN
    	
    SCR7	MOVLW	B'11011'
    	MOVWF	PORTA
    	RETURN
    	
    SCR8	MOVLW	B'11111'
    	MOVWF	PORTA
    	RETURN
    
    ;******************** BANG DU LIEU ****************
    TABLE1	ADDWF	PCL,1         ;Add W to Program Counter
    	RETLW	0x00	
    	RETLW	B'00110000'
    	RETLW	B'01001000'
    	RETLW	B'10000100'
    	RETLW	B'11000010'
    	RETLW	B'01000001'
    	RETLW	B'11000010'
    	RETLW	B'10000100'
    	RETLW	B'01001000'
    	RETLW	B'00110000'
    	RETLW	B'00000000'
    	RETLW	B'00000000'
    	RETLW	B'00000000'
    	RETLW	B'00000000'
    	RETLW	B'00000000'
    	RETLW	B'00000000'
    	RETLW	B'00000000'
    	RETLW	B'00000000'
    	RETLW	B'00000000'
    	RETLW	B'11111111'
    	RETLW	B'10010001'
    	RETLW	B'10010001'
    	RETLW	B'01101001'
    	RETLW	B'00000110'
    	RETLW	B'00000000'
    	RETLW	B'00000000'
    	RETLW	B'00000000'
    	RETLW	B'00000000'
    	RETLW	B'00000000'
    	RETLW	B'00000000'
    	RETLW	B'00000000'
    	RETLW	B'00000000'
    	RETLW	B'00000000'
    	RETLW	0xFF
    ;************************************************************
    
            END
    Xin các huynh chỉ với ạ

    Comment


    • #3
      bạn nên viết bằng CCS C dể dàng hơn chứ bằng hợp ngữ nhức đầu lắm, bạn nên tách 2 con 595 ra mỗi con 1 màu. bạn cứ viết chưong7 trình đi mình hỗ trợ cho

      Comment


      • #4
        Em mới học PIC nên tập asm cho khá một chút anh ạ mà với cả em cũng không biết C :P
        để em thử lại với matrix một màu đã, he he, một màu em vẫn chưa thông
        thanks anh

        Comment

        Về tác giả

        Collapse

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

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

        Collapse

        Đang tải...
        X