![]() |
|
Tài trợ cho PIC Vietnam |
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 |
![]() |
#6 | |
Đệ tử 7 túi
Tham gia ngày: May 2005
Bài gửi: 258
: |
Trích:
phân tích c/t cửa bạn nhé: PROCESSOR 16F877A INCLUDE <P16F877A.INC> thiếu câú hình cho pic ;-------------------------------------------- ;KHAI BAO BIEN ;-------------------------------------------- SENDREG EQU 20H COUNT EQU 21H COUNT_138 EQU 22H ;DEM CHO 138 COUNT_8BYTE EQU 23H ;DEM CHO 8BYTE COUNT1 EQU 24H COUNTA EQU 25H COUNTB EQU 26H ;-------------------------------------------- ;DINH NGHIA PHAN CUNG ;-------------------------------------------- #DEFINE DATA PORTB,0 #DEFINE CLOCK PORTB,1 #DEFINE CLEAR PORTB,2 #DEFINE LATCH PORTB,3 ;-------------------------------------------- ;CHUONG TRINH CHINH ;-------------------------------------------- ORG 0000H START ;CHUONG TRINH CHINH BCF STATUS,5 BCF STATUS,6 CLRF PORTB CLRF PORTC BSF STATUS,5 CLRF PORTB ;CHON BR3:RB0 LA OUTPUT;dùng tris để định i/o port CLRF PORTC ;CHON RB2:RB0 LA INPUT BCF STATUS,5 ;CHON BANK1 ;============CHUONG TRINH CHINH============== CLRF COUNT_138 CLRF COUNT_8BYTE MAIN MOVLW 04H MOVWF PORTB ;DUA CHAN SCLK LEN CAO MOVLW D'255' MOVWF PORTC BCF CLEAR ;RESET DU LIEU TRONG 74HC595 NOP ;clear tac dong canh XUONG BSF CLEAR ;DUA PIN SCLR TRO VE MUC LOGIC CAO DI MOVF COUNT_8BYTE,0 ;DUA GIA TRI COUNT_8BYTE VAO ;THANH GHI W CALL TABLE ;GOI CHUONG TRINH CON TABLE CALL SEROUT ;GOI CHUONG TRINH CON DUA 8BIT VAO 595 INCF COUNT_138,1 ;TANG COUNT_138 LEN 1 KET QUA LUU ;TRONG COUNT_138 ;tăng lên rồi xuât đi đâu để d/k quét matrix BSF LATCH NOP BCF LATCH CALL DELAY_8ms ;TAO TRE 8ms LUU 1 BYTE TREN LED MT INCF COUNT_8BYTE,1 ;TANG COUNT_8BYTE LEN 1 KET ;QUA LUU TRONG COUNT_8BYTE XORWF D'8' ;XOR COUNT_8BYTE VOI 8 BTFSS STATUS,Z ;KT BIT Z GOTO DI ;NEU Z CHUA BANG 0 THI TIEP TUC LAY DU ;LIEU TRONG BANG TRA GOTO MAIN SEROUT MOVWF SENDREG MOVLW 08H MOVWF COUNT TESTBIT BCF DATA BTFSC SENDREG,7 BSF DATA BSF CLOCK NOP BCF CLOCK RLF SENDREG DECFSZ COUNT,1 GOTO TESTBIT RETURN TABLE;bảng tra dạng này lên đưa lên đầu c/t ADDWF PCL,F RETLW B'11111111' RETLW B'00000001' RETLW B'00000000' RETLW B'11100100' RETLW B'11100100' RETLW B'00000000' RETLW B'00000001' RETLW B'11111111' DELAY_8ms;bạn tính lại chỗ này thời gian quá dài MOVLW D'100' MOVLW COUNT1 LOOP MOVLW 0C7H MOVWF COUNTA MOVLW 01H MOVWF COUNTB LOOP1 DECFSZ COUNTA,1 GOTO $+2 DECFSZ COUNTB,1 GOTO LOOP1 DECFSZ COUNT1,1 GOTO LOOP1 RETURN END bạn coi lại nhé rôi tính tiếp.
__________________
viết chương trình cho vdk chạy ổn định là cả một vấn đề. |
|
![]() |
![]() |
Tags |
led matrix |
|
|