Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- __CONFIG _WDT_OFF&_PWRTE_ON&_HS_OSC&_LVP_OFF&_CP_OFF
- LIST P=16F877A
- INCLUDE <P16F877A.INC>
- ORG 0X00
- GOTO BEGIN
- ORG 0X05
- ; . . . . . . . CONFIGURATION . . . . . . .
- BEGIN
- BCF STATUS, RP1
- BSF STATUS, RP0
- CLRF TRISB ;PORTB as output
- CLRF TRISC ;PORTC as output (Needed: 2 bits)
- MOVLW 0X80 ;Right justified, FOSC/2
- MOVWF ADCON1 ;Vref = VDD (5.12V for 5mV resolution)
- BCF STATUS, RP0
- MOVLW 0X01 ;Speed: FOSC/2, through Channel0,
- MOVWF ADCON0 ;Initially off but powered up.
- CLRF PORTB
- CLRF PORTC
- GOTO MAIN
- ; . . . . . . . MINI DELAY FUNCTION . . . . . . .
- DELAY
- MOVLW 0X01
- MOVWF 0X32
- DEL_0
- MOVLW 0X0A
- MOVWF 0X31
- DEL_1
- MOVLW 0XDD
- MOVWF 0X30
- DEL_2
- DECFSZ 0X30,1
- GOTO DEL_2
- DECFSZ 0X31,1
- GOTO DEL_1
- DECFSZ 0X32,1
- GOTO DEL_0
- RETURN
- ; . . . . . . . FUNCTION TO ENABLE CLOCK . . . . . . .
- ENABLE
- BCF PORTC,1
- CALL DELAY
- BSF PORTC,1
- CALL DELAY
- BCF PORTC,1
- RETURN
- COMMAND
- MOVWF PORTB
- CALL ENABLE
- RETURN
- ; . . . . . . . LCD INICIALIZATION . . . . . . .
- INIT
- CALL DELAY
- BCF PORTC,0
- MOVLW 0X38
- CALL COMMAND
- MOVLW 0X30
- CALL COMMAND
- MOVLW 0X30
- CALL COMMAND
- MOVLW 0X38
- CALL COMMAND
- MOVLW 0X0C
- CALL COMMAND
- MOVLW 0X01
- CALL COMMAND
- MOVLW 0X06
- CALL COMMAND
- BSF PORTC,0
- MOVLW 'T'
- CALL COMMAND
- MOVLW 'E'
- CALL COMMAND
- MOVLW 'M'
- CALL COMMAND
- MOVLW 'P'
- CALL COMMAND
- MOVLW 'E'
- CALL COMMAND
- MOVLW 'R'
- CALL COMMAND
- MOVLW 'A'
- CALL COMMAND
- MOVLW 'T'
- CALL COMMAND
- MOVLW 'U'
- CALL COMMAND
- MOVLW 'R'
- CALL COMMAND
- MOVLW 'A'
- CALL COMMAND
- MOVLW ':'
- CALL COMMAND
- CALL DELAY
- RETURN
- ; . . . . . . . PRINTING FUNCTION . . . . . . .
- PRINT
- BCF PORTC,0
- MOVLW 0XC8
- CALL COMMAND
- BSF PORTC,0
- MOVLW 0X30
- ADDWF 0X48,W
- CALL COMMAND
- MOVLW 0X30
- ADDWF 0X47,W
- CALL COMMAND
- MOVLW 0XDF
- CALL COMMAND
- MOVLW 'C'
- CALL COMMAND
- RETURN
- ; . . . . . . . DELAY 1S FUNCTION . . . . . . .
- DELAY_1S
- MOVLW 0X03
- MOVWF 0X35
- DEL_0_1
- MOVLW 0XFF
- MOVWF 0X34
- DEL_1_1
- MOVLW 0XDD
- MOVWF 0X33
- DEL_2_1
- DECFSZ 0X33,1
- GOTO DEL_2_1
- DECFSZ 0X34,1
- GOTO DEL_1_1
- DECFSZ 0X35,1
- GOTO DEL_0_1
- RETURN
- ; . . . . . . . COMPLEX MATH PROCESS . . . . . . .
- MATH
- CLRF 0X47
- CLRF 0X48
- BSF STATUS,RP0
- MOVF ADRESL,W
- BCF STATUS,RP0
- MOVWF 0X50
- NEXT_MATH
- MOVLW 0X02
- SUBWF 0X50,W
- BTFSS STATUS,C
- RETURN
- MOVLW 0X02
- SUBWF 0X50
- CALL INC_0X47
- GOTO NEXT_MATH
- INC_0X47
- INCF 0X47
- MOVLW 0X0A
- SUBWF 0X47,W
- BTFSS STATUS,Z
- RETURN
- INCF 0X48
- CLRF 0X47
- RETURN
- ; . . . . . . . MAIN PROGRAM . . . . . . .
- MAIN
- CALL INIT
- LOOP
- BSF ADCON0,GO_DONE
- NOTREADY
- BTFSC ADCON0,GO_DONE
- GOTO NOTREADY
- CALL MATH
- CALL DELAY_1S
- CALL PRINT
- GOTO LOOP
- END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement