PROCESSOR 16F877
INCLUDE P16F877.INC
RADIX DEC
__IDLOCS
H'0100'
__CONFIG
_CP_OFF & _PWRTE_ON & _WDT_OFF & _BODEN_ON & _XT_OSC &
_LVP_OFF & _CPD_OFF & _DEBUG_OFF
ZERO EQU = Z
CARRY EQU = C
AZALT0 EQU = 32
AZALT1 EQU = 33
AZALT2 EQU = 34
AZALT3 EQU = 35
RAM EQU = 36
SOLDIJIT EQU = 37
ORTADIGIT EQU = 38
SAGDIJIT EQU = 39
SAAT EQU = 40
SYS_WSAV EQU = 115
SYS_SSAV EQU = 116
SYS_PSAV EQU = 117
ORG 0
CLRF AZALT0
CLRF AZALT1
CLRF AZALT2
CLRF AZALT3
CLRF RAM
CLRF SOLDIJIT
CLRF ORTADIGIT
CLRF SAGDIJIT
CLRF SAAT
BCF STATUS,RP0
BCF STATUS,RP1
MOVLW B'00100000'
MOVWF INTCON
MOVLW B'00000000'
MOVWF PORTA
MOVLW B'00000000'
MOVWF PORTB
MOVLW B'00000000'
MOVWF PORTC
MOVLW B'00000000'
MOVWF PORTD
MOVLW B'00000000'
MOVWF PORTE
MOVLW B'01000001'
MOVWF ADCON0
BSF STATUS,RP0
BCF STATUS,RP1
MOVLW B'10000111'
MOVWF OPTION_REG
MOVLW B'00001110'
MOVWF ADCON1
MOVLW B'00000001'
MOVWF TRISA
MOVLW B'00000000'
MOVWF TRISB
MOVLW B'00000000'
MOVWF TRISC
MOVLW B'00000000'
MOVWF TRISD
MOVLW B'00000000'
MOVWF TRISE
BCF STATUS,RP0
BCF STATUS,RP1
MAIN
YENILE
BTFSS INTCON,T0IF
GOTO YENILE
BCF INTCON,T0IF
BSF ADCON0,GO
Bu program, Analog bir değeri 10 bit olarak Dijitale dönüştürme işlemini gerçekleştirirken ADRESH yazmacına aktarılmış yani Dijitale dönüştürülmüş değerler alınarak segmente gönderilmektedir.
WAIT
BTFSS PIR1,ADIF
GOTO WAIT
MOVF ADRESH,W
MOVWF SAGDIGIT
MOVLW H'0A'
SUBWF SAGDIJIT,W
BTFSC STATUS,0
GOTO KUCUK10
GOTO ATLASON
KUCUK10
INCF SOLDIJIT,F
MOVWF SAGDIJIT
MOVLW H'0A'
SUBWF SAGDIJIT,W
BTFSC STATUS,0
GOTO KUCUK10
BTFSS SOLDIJIT,4
GOTO ATLASON
CLRF SOLDIJIT
ATLASON
MOVLW H'0A '
MOVWF SAAT
KESME
MOVF SAGDIJIT,W
CALL SEGMET
MOVWF PORTD
BSF PORTB,0
CALL TIME
BCF PORTB,0
MOVF SOLDIJIT,W
CALL SEGMET
MOVWF PORTD
BSF PORTB,1
CALL TIME
BCF PORTB,1
DECFSZ SAAT,F
GOTO KESME
CLRF SOLDIJIT
CLRF SAGDIJIT
GOTO YENILE
SEGMET
ADDWF PCL,F
RETLW B'00000100' ;--- 0
RETLW B'01111101' ;--- 1
RETLW B'00100011' ;--- 2
RETLW B'00110001' ;--- 3
RETLW B'01011001' ;--- 4
RETLW B'10010001' ;--- 5
RETLW B'11000001' ;--- 6
RETLW B'00111101' ;--- 7
RETLW B'00000000' ;--- 8
RETLW B'00011001' ;--- 9
TIME
MOVLW .5
MOVWF AZALT1
DONGU1
MOVLW .10
MOVWF AZALT2
DONGU2
MOVLW .30
MOVWF AZALT3
DONGU3
DECFSZ AZALT3,F
GOTO DONGU3
DECFSZ AZALT2,F
GOTO DONGU2
DECFSZ AZALT1,F
GOTO DONGU1
RETURN
END