LIST P=PIC16F84 INCLUDE "P16F84.INC" __CONFIG _RC_OSC & _WDT_OFF & _PWRTE_ON ORG 0 ;register CNT EQU 10H ;digit data ;binary: -decgfab, 1-off 0-on ; ; __a ; f| |b ; -- g ; e|__|c ; d DIGIT1 EQU 14H ;2:-de-g-ab DIGIT2 EQU 6CH ;7:---c--ab DIGIT3 EQU 08H ;0:-dec-fab ;device initialise INIT BSF STATUS, RP0 ;bank 1 CLRF TRISA ;Port A:all output CLRF TRISB ;Port B:all output MOVLW 80H ;Port B:pull-up disable MOVWF OPTION_REG BCF STATUS, RP0 ;bank 0 CLRF INTCON ;disable all interrupt ;main routine MAIN CLRF PORTB MOVLW 5 MOVWF PORTA ;1st digit(right) MOVLW DIGIT1 MOVWF PORTB CALL WAIT CLRF PORTB MOVLW 3 ;2nd digit(center) MOVWF PORTA MOVLW DIGIT2 MOVWF PORTB CALL WAIT CLRF PORTB MOVLW 6 ;3rd digit(left) MOVWF PORTA MOVLW DIGIT3 MOVWF PORTB CALL WAIT GOTO MAIN ;wait subroutine WAIT MOVLW 0C7H ;about 25us x 199 times + alpha = 5ms? MOVWF CNT WAITLP NOP NOP NOP NOP DECFSZ CNT, F GOTO WAITLP RETURN END