Ví Dụ Ghi Dọc:
Code:
#INCLUDE "P16F877A.INC"
__CONFIG 0x3F72
CBLOCK 0x20
BYTE_CAO
BYTE_THAP
TAM
DU_LIEU
endc
;***************************************
;********* MACRO DEFINITIONS ***********
;***************************************
INCLUDE "BANK.INC"
;***************************************
org 0000
BANK0
MOVLW B'0000010'
MOVWF BYTE_CAO
MOVLW B'00000000'
MOVWF BYTE_THAP
MOVLW B'00000000'
MOVWF DU_LIEU
BANK1
MOVLW .00
MOVWF TRISB
CALL DL
CALL DL
BANK0
MOVF BYTE_CAO,0
BANK2
MOVWF EEADRH
BANK0
MOVF BYTE_THAP,0
BANK2
MOVWF EEADR
LOOP
BANK0
MOVF DU_LIEU,0
BANK2
MOVWF EEDATH
MOVWF EEDATA
BANK3
BSF EECON1,EEPGD
BSF EECON1,WREN
BCF INTCON,GIE
MOVLW 0x55
MOVWF EECON2
MOVLW 0xAA
MOVWF EECON2
BSF EECON1,WR
nop
nop
BCF EECON1,WREN
BANK2
MOVF EEADR,W
ANDLW 0x03
XORLW 0x03
BTFSC STATUS,Z ;
GOTO DOC_DU_LIEU
INCF EEADR,1
BANK0
INCF DU_LIEU,1
GOTO LOOP
DOC_DU_LIEU
LAP_LAI
BANK0
MOVLW .4
MOVWF TAM
BANK2
MOVLW 0xFF
MOVWF EEDATA
BANK0
MOVF BYTE_CAO,0
BANK2
MOVWF EEADRH
BANK0
MOVF BYTE_THAP,0
BANK2
MOVWF EEADR
LAP
BANK3
BSF EECON1,EEPGD
BSF EECON1,RD
NOP
NOP
BCF EECON1,RD
BANK2
MOVF EEDATA,0
BANK0
MOVWF PORTB;XUAT DU LIEU RA PORTB
CALL DL
BANK2
INCF EEADR,1
BANK0
DECFSZ TAM,1
GOTO LAP
GOTO LAP_LAI
;******DL*********
DL
BANK0
CLRF T1CON
CLRF TMR1H
CLRF TMR1H
CLRF INTCON
BANK1
CLRF PIE1
BANK0
CLRF PIR1
MOVLW 0x30 ;1:8
MOVWF T1CON
BSF T1CON,TMR1ON
CHO
BTFSS PIR1,TMR1IF
GOTO CHO
BCF T1CON,TMR1ON
BCF PIR1,TMR1IF
CLRF TMR1H
CLRF TMR1H
RETLW .00
END