PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 03-06-2007, 07:38 PM   #1
HTAluvBeBeo
Đệ tử 2 túi
 
Tham gia ngày: Dec 2006
Nơi Cư Ngụ: HN
Bài gửi: 39
:
Mỗi 1 matrix 8x8 mà không làm xong:( Giúp em với:)

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 ạ
HTAluvBeBeo vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 11:31 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam