; ------------------------------------------------------------------------------------------------------------------------------------------------
;; IŞIK ELEKTRONİK
; BİLİŞİM ve OTOMASYON TEKNOLOJİLERİ   (ARGE)
; HARDWARE & SOFTWARE RESEARCH LABORATORY
;; ------------------------------------------------------------------------------------------------------------------------------------------------

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