Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted as Plain Text by A.Fahim ( 11 years ago )
#include <P16f877A.inc>
org 0
;Registers Identification
A_ EQU 0x20
B_ EQU 0x21
C_ EQU 0x22
AA EQU 0x23
BB EQU 0x24
CC EQU 0x25
A1 EQU 0x26
B1 EQU 0x27
SR EQU 0x28
COUNT EQU 0x29
DG EQU 0x30
T1 EQU 0x31
T2 EQU 0x32
T3 EQU 0x33
D_ EQU 0x34
;Port initialization
BCF STATUS,RP0
CLRF PORTA
CLRF PORTB
CLRF PORTC
BSF STATUS,RP0
MOVLW 0X00
MOVWF TRISB
MOVLW 0X00
MOVWF TRISC   ; OR CLRF TRISC  DIRECTLY to set PORTC as an output
MOVLW 0X01
MOVWF TRISA
MOVLW 0X0E
MOVWF ADCON1    ; left justified and from the table choose 1110
BCF STATUS,RP0
MOVLW 0X40
MOVWF ADCON0
SAMP BSF ADCON0,0
     Movlw .20    ;delay bec of aquisation time
     Movwf D_
Loop   DECFSZ D_
     GOTO Loop
     BSF ADCON0,2
P1   BTFSC ADCON0,2
     GOTO P1
     MOVF ADRESH,W
     MOVWF COUNT
     ADDWF COUNT,1   ; to multiply the answer by 2 to get the temperature right , it changes to 1.59 if we chose volt from 0-> 1
;PROGRAM STARTING
;FINDING 10'S (AA),1'S(BB)
START CLRF AA
      CLRF BB
      CLRF CC
      MOVF COUNT,W
      MOVWF A_
      MOVLW .10
      MOVWF B_
      ;MOVLW .10
      ;MOVWF C_
       MOVF     B_,W
LP1    SUBWF  A_,1                 ;(A-10)is put in A
    BTFSS STATUS,C      ;Skip if A>= 10
  GOTO BR1                 ; GOTO BR1 if A < 10
    INCF  AA
  GOTO LP1
 BR1 MOVF B_,W
  ADDWF A_,1     ;ADD 10 to (A-10) if it is - VE
        ;ADDLW .10
                                             ;This process corrects the error
  ;MOVF C_,W
 ;LP2 ;SUBWF A_,1                  ;(A-10)is put in A
  ;BTFSS STATUS,C      ;Skip if A >= 10
  ;GOTO BR2
  ;INCF BB
  ;GOTO LP2
 ;BR2 ;MOVF C_,W
  ;ADDWF A_,1
  MOVF A_,W
  MOVWF BB                 ;Now 1's in CC, 10's in BB
                                                                ; and 100's in AA
 ;Display and Scanning
  MOVLW .100
  MOVWF SR
SCAN ;MOVLW 0X1E                          ; To enable CC
  ;MOVWF PORTA
     MOVF  BB,W
        CALL DISPLAY
        MOVWF PORTC
        CALL DELAY
        MOVF AA,W
        CALL DISPLAY
        MOVWF PORTB
        CALL DELAY
        DECFSZ SR
        GOTO SCAN
        INCF COUNT
        GOTO SAMP
DISPLAY ADDWF PCL,1
  RETLW 0X7E 
  RETLW 0X0C
  RETLW 0XB6
  RETLW 0X9E
  RETLW 0XCC
  RETLW 0XDA
  RETLW 0XFA
  RETLW 0X0E
  RETLW 0XFE
  RETLW 0XDE
DELAY CLRWDT
  MOVLW .11
  MOVWF A1
 LP3 MOVLW .101
  MOVWF B1
 LP4 DECFSZ B1
  GOTO LP4
  DECFSZ A1
  GOTO LP3
  RETURN
  NOP
  END

 

Revise this Paste

Children: 76788
Your Name: Code Language: