Question: LIST P = 1 6 F 8 7 7 A #INCLUDE RO EQU 2 0 H R 1 EQU 2 1 H COUNTER 1 EQU

LIST P=16F877A
#INCLUDE
RO EQU 20H
R1 EQU 21H
COUNTER1 EQU 22H
COUNTER2 EQU 23H
COUNTER3 EQU 24H
COUNTER4 EQU 25H
C1 EQU 26H
C1HIGHER EQU 27H
C2 EQU 28H
C2HIGHER EQU 29H
C3 EQU 30H
C3HIGHER EQU 31H
ORG 0X00
GOTO MAIN
CHECK3:
DECF COUNTER4
BTFSS STATUS,Z
GOTO BLOCK
GOTO CHECK
CHECK2:
CD1:
INCF C1
GOTO CHECK3
CD2:
INCF C2
GOTO CHECK3
CD3:
INCF C3
GOTO CHECK3
CHECK:
MOVLW 03H
MOVWF COUNTER4
MOVLW 0X01
MOVWF PORTD
CALL FUNC1_LCD
MOVLW 'C'
MOVWF PORTD
CALL FUNC_DATA
MOVLW '1'
MOVWF PORTD
CALL FUNC_DATA
MOVLW 030H
ADDWF C1HIGHER,W
MOVWF PORTD
CALL FUNC_DATA
MOVLW 030H
ADDWF C1,W
MOVWF PORTD
CALL FUNC_DATA
MOVLW ''
MOVWF PORTD
CALL FUNC_DATA
MOVLW 'C'
MOVWF PORTD
CALL FUNC_DATA
MOVLW '2'
MOVWF PORTD
CALL FUNC_DATA
MOVLW 030H
ADDWF C2HIGHER,W
MOVWF PORTD
CALL FUNC_DATA
MOVLW 030H
ADDWF C2,W
MOVWF PORTD
CALL FUNC_DATA
MOVLW ''
MOVWF PORTD
CALL FUNC_DATA
MOVLW 'C'
MOVWF PORTD
CALL FUNC_DATA
MOVLW '3'
MOVWF PORTD
CALL FUNC_DATA
MOVLW 030H
ADDWF C3HIGHER,W
MOVWF PORTD
CALL FUNC_DATA
MOVLW 030H
ADDWF C3,W
MOVWF PORTD
CALL FUNC_DATA
CALL DELAY
CALL DELAY
CALL DELAY
CALL DELAY
GOTO START
FUNC1_LCD:
BCF PORTC,0
BCF PORTC,1
BSF PORTC,2
CALL DELAY
BCF PORTC,2
RETURN
FUNC_DATA:
BSF PORTC,0
BCF PORTC,1
BSF PORTC,2
CALL DELAY
BCF PORTC,2
BCF PORTC,0
RETURN
DELAY:
MOVLW 80H
MOVWF RO
A1:MOVLW 82H
MOVWF R1
A2:DECFSZ R1
GOTO A2
DECFSZ RO
GOTO A1
RETURN
START:
MOVLW 0X01
MOVWF PORTD
CALL FUNC1_LCD
MOVLW'E'
MOVWF PORTD
CALL FUNC_DATA
MOVLW'N'
MOVWF PORTD
CALL FUNC_DATA
MOVLW'T'
MOVWF PORTD
CALL FUNC_DATA
MOVLW'E'
MOVWF PORTD
CALL FUNC_DATA
MOVLW'R'
MOVWF PORTD
CALL FUNC_DATA
MOVLW' '
MOVWF PORTD
CALL FUNC_DATA
GOTO BLOCK
MAIN:
MOVLW 0H
MOVWF C1
MOVWF C2
MOVWF C3
MOVWF C1HIGHER
MOVWF C2HIGHER
MOVWF C3HIGHER
MOVLW D'10'
MOVWF COUNTER1
MOVWF COUNTER2
MOVWF COUNTER3
MOVLW 0X03
MOVWF COUNTER4
BANKSEL TRISD
CLRF TRISD
BANKSEL PORTD
BANKSEL TRISC
CLRF TRISC
BANKSEL PORTD
BANKSEL TRISB
BSF TRISB,0
BSF TRISB,1
BSF TRISB,2
BCF TRISB,3
BCF TRISB,4
BCF TRISB,5
BCF TRISB,6
BANKSEL PORTB
MOVLW 0X00
MOVWF PORTC
MOVWF PORTD
BCF PORTC,0
BCF PORTC,1
BCF PORTC,2
MOVLW 0X38
MOVWF PORTD
CALL FUNC1_LCD
MOVLW 0X0C
MOVWF PORTD
CALL FUNC1_LCD
MOVLW 0X06
MOVWF PORTD
CALL FUNC1_LCD
MOVLW 0X01
MOVWF PORTD
CALL FUNC1_LCD
MOVLW 0X80
MOVWF PORTD
CALL FUNC1_LCD
GOTO START
BLOCK:
BSF PORTB,3
BTFSS PORTB,0
GOTO TWO
MOVLW'1'
MOVWF PORTD
CALL FUNC_DATA
DECF COUNTER1
BTFSS STATUS,Z
GOTO CD1
MOVLW D'10'
MOVWF COUNTER1
MOVLW 0H
MOVWF C1
INCF C1HIGHER
GOTO CHECK3
TWO:
BTFSS PORTB,1
GOTO THREE
MOVLW '2'
MOVWF PORTD
CALL FUNC_DATA
DECF COUNTER2
BTFSS STATUS,Z
GOTO CD2
MOVLW D'10'
MOVWF COUNTER2
MOVLW 0H
MOVWF C2
INCF C2HIGHER
GOTO CHECK3
THREE:
BTFSS PORTB,2
GOTO ROW2
MOVLW '3'
MOVWF PORTD
CALL FUNC_DATA
DECF COUNTER3
BTFSS STATUS,Z
GOTO CD3
MOVLW D'10'
MOVWF COUNTER3
MOVLW 0H
MOVWF C3
INCF C3HIGHER
GOTO CHECK3
ROW2:
BCF PORTB,3
BSF PORTB,4
BTFSS PORTB,0
GOTO FIVE
MOVLW'4'
MOVWF PORTD
CALL FUNC_DATA
MOVLW 04H
FIVE:
BTFSS PORTB,1
GOTO SIX
MOVLW '5'
MOVWF PORTD
CALL FUNC_DATA
MOVLW 05H
SIX:
BTFSS PORTB,2
GOTO ROW3
MOVLW '6'
MOVWF PORTD
CALL FUNC_DATA
MOVLW 06H
ROW3:
BCF PORTB,4
BSF PORTB,5
BTFSS PORTB,0
GOTO EIGHT
MOVLW'7'
MOVWF PORTD
CALL FUNC_DATA
MOVLW 07H
EIGHT:
BTFSS PORTB,1
GOTO NINE
MOVLW '8'
MOVWF PORTD
CALL FUNC_DATA
MOVLW 08H
NINE:
BTFSS PORTB,2
GOTO ROW4
MOVLW '9'
MOVWF PORTD
CALL FUNC_DATA
MOVLW 09H
ROW4:
BCF PORTB,5
BSF PORTB,6
BTFSS PORTB,0
GOTO ZERO
MOVLW'*'
MOVWF PORTD
CALL FUNC_DATA
ZERO:
BTFSS PORTB,1
GOTO HASHTAG
MOVLW '0'
MOVWF PORTD
CALL FUNC_DATA
HASHTAG:
BTFSS PORTB,2
GOTO LAST
MOVLW '#'

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Electrical Engineering Questions!