7 segment diplay PIC16F877a with LCD

Status
Not open for further replies.

jennflo

Newbie level 3
Joined
Nov 29, 2009
Messages
3
Helped
1
Reputation
2
Reaction score
1
Trophy points
1,283
Activity points
1,292
can anyone help about our code...
we cant output on what we want in 7 seg Quad from MCU PIC16f877a. once the time is set in LCD it will make an output to the 7-segment quad.

RA0-RA3 are for the common anode and the RC0-RC3 are the bcd-decoder.

Code:
	#include P16F877A.inc

	__config _HS_OSC & _PWRTE_OFF & _CP_OFF & _WDT_OFF & _DEBUG_OFF & _WRT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF

	ERRORLEVEL -302

CTR		 		EQU 0x20
LCD_TEMP		EQU 0x21
CTR1			EQU 0x22
BTNTEST			EQU 0x23
BTNTEST2		EQU 0x24
BTNTEST3		EQU 0x25
BTNTEST4		EQU 0x26
CTR_SET_CNCL	EQU 0x27
HR_SET			EQU 0x28
MIN_SET			EQU 0x29
TEMP_HR_SET		EQU 0x2A
TEMP_MIN_SET	EQU 0x2B

LCD_DATA			EQU PORTB
LCD_DATA_TRIS		EQU	TRISB
LCD_CTRL			EQU PORTD
LCD_CTRL_TRIS		EQU TRISD
SEVENSEGDISP_TRIS	EQU TRISC
SEVENSEGCOMM_TRIS	EQU TRISA

#DEFINE LCD_E		LCD_CTRL,7
#DEFINE LCD_RW		LCD_CTRL,6
#DEFINE LCD_RS		LCD_CTRL,5
#DEFINE LCD_DECBTN	LCD_CTRL,4
#DEFINE LCD_INCBTN	LCD_CTRL,3
#DEFINE LCD_SETBTN	LCD_CTRL,1
#DEFINE LCD_CNCLBTN	LCD_CTRL,0

	CBLOCK 0
	d1
	d2
	d3
	ENDC
;.......................................................

	ORG 0x00
	GOTO MAIN

	;ORG 0x04
	
;.......................................................
LCD_INIT
                                    ; Busy-flag is not yet valid
    CLRF        LCD_CTRL            ; ALL PORT output should output Low.
                                    ; power-up delay
    CALL        DELAY20ms          	; 20ms
                                    ; Busy Flag should be valid from here
    MOVLW       0x38               ; 8-bit-interface, 2-lines
    CALL        LCD_PUTCMD
    MOVLW       0x00               ; disp.off, curs.off, no-blink
    CALL        LCD_DMODE
    CALL        LCD_CLEAR
    MOVLW       0x04               ; disp.on, curs.off
    CALL        LCD_DMODE
    MOVLW       0x02               ; auto-inc (shift-cursor)
    CALL        LCD_EMODE
    RETURN
;.......................................................
LCD_BUSY
    BSF         STATUS,RP0          ; Select Register page 1
    MOVLW       0xFF               ; Set PORTB for input
    MOVWF       LCD_DATA_TRIS
    BCF         STATUS, RP0         ; Select Register page 0
    BCF         LCD_RS				; Set LCD for command mode
    BSF         LCD_RW				; Setup to read busy flag
    BSF         LCD_E				; LCD E-line High
    MOVF        LCD_DATA, W         ; Read busy flag + DDram address
    BCF         LCD_E				; LCD E-line Low
    ANDLW       0x80                ; Check Busy flag, High = Busy
    BTFSS       STATUS, Z
    GOTO        LCD_BUSY
LCD_NOTBUSY
    BCF         LCD_RW
    BSF         STATUS, RP0         ; Select Register page 1
    MOVLW       0x00
    MOVWF       LCD_DATA_TRIS       ; Set PORTB for output
    BCF         STATUS, RP0         ; Select Register page 0
    RETURN
;.......................................................
LCD_CLEAR
    MOVLW       0x01
    CALL        LCD_PUTCMD
    RETURN
;.......................................................
LCD_HOME
    MOVLW       0x02
    CALL        LCD_PUTCMD
    RETURN
;.......................................................
LCD_EMODE
    ANDLW       0x03               ; Strip upper bits
    IORLW       0x04               ; Function set
    CALL        LCD_PUTCMD
    RETURN
;.......................................................
LCD_DMODE
    ANDLW       0x07               ; Strip upper bits
    IORLW       0x08               ; Function set
    CALL        LCD_PUTCMD
    RETURN
;.......................................................
LCD_SCGA							; Set CGRam 
    ANDLW       0x3F               ; Strip upper bits
    IORLW       0x40               ; Function set
    CALL        LCD_PUTCMD
    RETURN
;.......................................................
LCD_SDDA							; Set DDRam
    IORLW       0x80               ; Function set
    CALL        LCD_PUTCMD
    RETURN
;.......................................................
LCD_GADDR							; Get Address counter contents
    BSF         STATUS,RP0          ; Select Register page 1
    MOVLW       0xFF               ; Set PORTB for input
    MOVWF       LCD_DATA_TRIS
    BCF         STATUS, RP0         ; Select Register page 0
    BCF         LCD_RS    	    ; Set LCD for command mode
    BSF         LCD_RW    	; Setup to read busy flag
    BSF         LCD_E     			; LCD E-line High
    MOVF        LCD_DATA, W         ; Read busy flag + RAM address
    BCF         LCD_E     			; LCD E-line Low
    ANDLW       0x7F               ; Strip upper bit
    BCF         LCD_RW
    BSF         STATUS, RP0         ; Select Register page 1
    MOVLW       0x00
    MOVWF       LCD_DATA_TRIS       ; Set PORTB for output
    BCF         STATUS, RP0         ; Select Register page 0
    RETURN
;.......................................................
LCD_PUTCHAR
    MOVWF       LCD_TEMP             ; Character to send is in W
    CALL        LCD_BUSY             ; Wait for LCD to be ready
    BCF         LCD_RW				 ; Set LCD in read mode
    BSF         LCD_RS				 ; Set LCD in data mode
    BSF         LCD_E				 ; LCD E-line High
    MOVF        LCD_TEMP, W
    MOVWF       LCD_DATA             ; Send data to LCD
    BCF         LCD_E				 ; LCD E-line Low
    RETURN
;.......................................................
LCD_PUTCMD
    MOVWF       LCD_TEMP             ; Command to send is in W
    CALL        LCD_BUSY             ; Wait for LCD to be ready
    BCF         LCD_RW    			 ; Set LCD in read mode
    BCF         LCD_RS    			 ; Set LCD in command mode
    BSF         LCD_E     			 ; LCD E-line High
    MOVF        LCD_TEMP, W
    MOVWF       LCD_DATA            ; Send data to LCD
    BCF         LCD_E     			; LCD E-line Low
    RETURN
;.......................................................
DELAY20ms
			;19993 cycles
	MOVLW	0x9E
	MOVWF	d1
	MOVLW	0x10
	MOVWF	d2
Delay_0
	DECFSZ	d1, F
	GOTO	$+2
	DECFSZ	d2, F
	GOTO	Delay_0

			;3 cycles
	GOTO	$+1
	NOP

			;4 cycles (including call)
	RETURN
;.......................................................
DELAY1sec
			;999990 cycles
	MOVLW	0x07
	MOVWF	d1
	MOVLW	0x2F
	MOVWF	d2
	MOVLW	0x03
	MOVWF	d3
Delay_1
	DECFSZ	d1, F
	GOTO	$+2
	DECFSZ	d2, F
	GOTO	$+2
	DECFSZ	d3, F
	GOTO	Delay_1

			;6 cycles
	GOTO	$+1
	GOTO	$+1
	GOTO	$+1

			;4 cycles (including call)
	RETURN
;.......................................................
INC_HR
					INCF BTNTEST,F

					BTFSS CTR1,1
					GOTO INC_NEXT_1
					GOTO TEST_23			

TEST_23				BTFSS CTR,1
					GOTO INC_NEXT_2
					GOTO TEST_23_1

TEST_23_1			BTFSS CTR,0
					GOTO INC_NEXT_2
					GOTO SET_HOUR

INC_NEXT_1			BTFSS CTR,3
					GOTO INC_NEXT_2
					GOTO INC_NEXT_3	
			
INC_NEXT_2			INCF CTR,F
					INCF HR_SET,F
					GOTO SET_HOUR

INC_NEXT_3			BTFSS CTR,0
					GOTO INC_NEXT_2
					GOTO INC_NEXT_5

INC_NEXT_5			INCF CTR1,F
					MOVLW 0x30
					MOVWF CTR
					ANDLW 0xF0
					ANDWF HR_SET,F
					ADDLW 0x10
					ADDWF HR_SET,F
					GOTO SET_HOUR
;.......................................................
DEC_HR
			INCF BTNTEST2,F
			
			BTFSS CTR1,1
			GOTO TEST_00
			GOTO DEC_1
TEST_00
			BTFSS CTR1,0
			GOTO  TEST_3
			GOTO  DEC_1
TEST_3
			BTFSS CTR,3
			GOTO  TEST_2
			GOTO  DEC_2
TEST_2
			BTFSS CTR,2
			GOTO  TEST_1
			GOTO  DEC_2
TEST_1
			BTFSS CTR,1
			GOTO  TEST_0
			GOTO  DEC_2
TEST_0
			BTFSS CTR,0
			GOTO  SET_HOUR
			GOTO  DEC_2	
DEC_1
			BTFSS CTR,3
			GOTO  BIT_2
			GOTO  DEC_2
BIT_2		
			BTFSS CTR,2
			GOTO BIT_1
			GOTO DEC_2
BIT_1		
			BTFSS CTR,1
			GOTO BIT_0
			GOTO DEC_2
BIT_0
			BTFSS CTR,0
			GOTO DEC_3
			GOTO DEC_2
DEC_3
			DECF CTR1,F
			MOVLW 0x39			
			MOVWF CTR
			ADDLW 0x09
			ADDWF HR_SET,F
			SUBLW 0x10
			SUBWF HR_SET,F
			GOTO SET_HOUR
DEC_2
			DECF CTR,F
			DECF HR_SET,F
			GOTO SET_HOUR
;.......................................................
INC_MIN
			INCF BTNTEST,F						
			
			BTFSS CTR1,2						
			GOTO NEXT_MIN1						
			GOTO TESTMIN591						

TESTMIN591	
			BTFSS CTR1,0	
			GOTO NEXT_MIN1					
			GOTO TESTMIN59

TESTMIN59
			BTFSS CTR,3							
			GOTO NEXT_MIN2
			GOTO TESTMIN59_1
			
TESTMIN59_1	
			BTFSS CTR,0
			GOTO NEXT_MIN2
			GOTO SET_MINUTE
			
NEXT_MIN1	BTFSS CTR,3
			GOTO NEXT_MIN2
			GOTO NEXT_MIN3

NEXT_MIN2	
			INCF CTR,F
			INCF MIN_SET,F
			GOTO SET_MINUTE

NEXT_MIN3	BTFSS CTR,0
			GOTO NEXT_MIN2
			GOTO NEXT_MIN5

NEXT_MIN5
			INCF CTR1,F
			MOVLW 0x30
			MOVWF CTR
			ANDLW 0xF0
			ANDWF MIN_SET,F
			ADDLW 0x10
			ADDWF MIN_SET,F
			GOTO SET_MINUTE
;.......................................................
DEC_MIN
					INCF BTNTEST2,F


					BTFSS CTR1,2
					GOTO DEC_MIN_5
					GOTO DEC_MIN_8

DEC_MIN_5			BTFSS CTR1,1
					GOTO DEC_MIN_6
					GOTO DEC_MIN_8


DEC_MIN_6			BTFSS CTR1,0
					GOTO DEC_MIN_7
					GOTO DEC_MIN_8
	


DEC_MIN_8			BTFSS CTR,3
					GOTO DEC_MIN_9
					GOTO DEC_MIN_4

DEC_MIN_9			BTFSS CTR,2
					GOTO DEC_MIN_10
					GOTO DEC_MIN_4

DEC_MIN_10			BTFSS CTR,1
					GOTO DEC_MIN_11
					GOTO DEC_MIN_4

DEC_MIN_11			BTFSS CTR,0
					GOTO DEC_MIN_12
					GOTO DEC_MIN_4

DEC_MIN_12			DECF CTR1,F
					MOVLW 0x30
					MOVWF CTR
					ADDLW 0x09
					ADDWF MIN_SET,F
					SUBLW 0x10
					SUBWF MIN_SET,F
					GOTO SET_MINUTE


DEC_MIN_7			BTFSS CTR,3
					GOTO DEC_MIN_0
					GOTO DEC_MIN_4

DEC_MIN_0			BTFSS CTR,2
					GOTO DEC_MIN_1
					GOTO DEC_MIN_4

DEC_MIN_1			BTFSS CTR,1
					GOTO DEC_MIN_2
					GOTO DEC_MIN_4

DEC_MIN_2			BTFSS CTR,0
					GOTO SET_MINUTE
					GOTO DEC_MIN_4

DEC_MIN_4			DECF CTR,F
					DECF MIN_SET,F
					GOTO SET_MINUTE	
;.......................................................
SET_BTN
				INCF BTNTEST3,F

				MOVLW 0x30
				MOVWF CTR1
				MOVWF CTR

				BTFSS CTR_SET_CNCL,0
				GOTO SET_TEST_1
				BTFSS CTR_SET_CNCL,1
				GOTO SET_TEST_1
				BTFSS CTR_SET_CNCL,2
				GOTO SET_TEST_1
				GOTO SET_TEST

SET_TEST_1		INCF CTR_SET_CNCL,F
				GOTO SET_TEST
;.......................................................
SET_TEST		
				BTFSS CTR_SET_CNCL,0
				GOTO SET_TEST_00
				GOTO SET_TEST_01

SET_TEST_00		BTFSS CTR_SET_CNCL,1
				GOTO SET_TEST_00_1
				GOTO SET_TEST_02

SET_TEST_00_1	BTFSS CTR_SET_CNCL,2
				GOTO START

SET_TEST_01		BTFSS CTR_SET_CNCL,1
				GOTO SET_TEST_01_1

SET_TEST_01_1	BTFSS CTR_SET_CNCL,2
				GOTO SET_MINUTE

SET_TEST_02		BTFSS CTR_SET_CNCL,2
				GOTO DISPLAY_TIME
;.......................................................
CNCL_BTN
				INCF BTNTEST4,F

				MOVLW 0x30
				MOVWF CTR1
				MOVWF CTR

				CLRF HR_SET
				CLRF MIN_SET

				BTFSS CTR_SET_CNCL,2
				GOTO DEC_CTR_SET_BTN
				BTFSS CTR_SET_CNCL,1
				GOTO DEC_CTR_SET_BTN
				BTFSS CTR_SET_CNCL,0
				GOTO DEC_CTR_SET_BTN
				GOTO DISPLAY_SOMETHING

DEC_CTR_SET_BTN	DECF CTR_SET_CNCL,F
				GOTO CNCL_TEST
;.......................................................
CNCL_TEST

;.......................................................
INC_COMPARTMENT
;.......................................................
DEC_COMPARTMENT
;.......................................................
INC_ALARM
;.......................................................
DEC_ALARM
;.......................................................
WELCOME_NOTE
;.......................................................
DISPLAY_SOMETHING
;.......................................................
SET_AGAIN
		MOVLW 0x03
		MOVWF CTR_SET_CNCL
;.......................................................
INC_TEST
			BTFSS CTR_SET_CNCL,0
			GOTO ZEROVALUE
			GOTO ONEVALUE

ZEROVALUE	BTFSS CTR_SET_CNCL,1
			GOTO ZEROVALUE_1
			GOTO TWOVALUE

ZEROVALUE_1	BTFSS CTR_SET_CNCL,2
			GOTO INC_HR
			GOTO INC_ALARM

ONEVALUE	BTFSS CTR_SET_CNCL,1
			GOTO ONEVALUE_2
			GOTO THREEVALUE

ONEVALUE_2	BTFSS CTR_SET_CNCL,2
			GOTO INC_MIN
			GOTO SETPSH

TWOVALUE	BTFSS CTR_SET_CNCL,2
			GOTO DISPLAY_TIME
			GOTO SETPSH

THREEVALUE	BTFSS CTR_SET_CNCL,2
			GOTO INC_COMPARTMENT
			GOTO SETPSH
;.......................................................
DEC_TEST
				BTFSS CTR_SET_CNCL,0
				GOTO D_ZEROVALUE
				GOTO D_ONEVALUE

D_ZEROVALUE		BTFSS CTR_SET_CNCL,1
				GOTO D_ZEROVALUE_1
				GOTO D_TWOVALUE

D_ZEROVALUE_1	BTFSS CTR_SET_CNCL,2
				GOTO DEC_HR
				GOTO DEC_ALARM

D_ONEVALUE		BTFSS CTR_SET_CNCL,1
				GOTO D_ONEVALUE_2
				GOTO D_THREEVALUE

D_ONEVALUE_2	BTFSS CTR_SET_CNCL,2
				GOTO DEC_MIN
				GOTO SETPSH

D_TWOVALUE		BTFSS CTR_SET_CNCL,2
				GOTO DISPLAY_TIME
				GOTO SETPSH

D_THREEVALUE	BTFSS CTR_SET_CNCL,2
				GOTO DEC_COMPARTMENT
				GOTO SETPSH
;.......................................................
MAIN		BCF STATUS,RP1
			BSF STATUS,RP0
			MOVLW 0x00
			MOVWF LCD_DATA_TRIS
			MOVLW 0x1B
			MOVWF LCD_CTRL_TRIS
			MOVLW 0x00
			MOVWF SEVENSEGDISP_TRIS
			MOVWF SEVENSEGCOMM_TRIS
			BCF STATUS,RP0

			MOVLW 0x06
			MOVWF ADCON1
			MOVLW 0x07
			MOVWF CMCON

			MOVLW 0x30
			MOVWF CTR
			MOVWF CTR1


			CLRF BTNTEST
			CLRF BTNTEST2
			CLRF BTNTEST3
			CLRF BTNTEST4
			CLRF CTR_SET_CNCL
			CLRF TMR1H
			CLRF TMR1L
			MOVLW 0xFF
			MOVWF PORTA
			CLRF PORTC
;.......................................................
START		
			CALL LCD_INIT
			CALL LCD_CLEAR

			MOVLW ' '
			CALL LCD_PUTCHAR
			MOVLW ' '
			CALL LCD_PUTCHAR
			MOVLW ' '
			CALL LCD_PUTCHAR
			MOVLW ' '
			CALL LCD_PUTCHAR
			MOVLW 'S'
			CALL LCD_PUTCHAR
			MOVLW 'E'
			CALL LCD_PUTCHAR
			MOVLW 'T'
			CALL LCD_PUTCHAR
			MOVLW ' '
			CALL LCD_PUTCHAR
			MOVLW 'H'
			CALL LCD_PUTCHAR
			MOVLW 'O'
			CALL LCD_PUTCHAR
			MOVLW 'U'
			CALL LCD_PUTCHAR
			MOVLW 'R'
			CALL LCD_PUTCHAR
			MOVLW 0x47
			CALL LCD_SDDA
			MOVLW '0'
			CALL LCD_PUTCHAR
			MOVLW '0'
			CALL LCD_PUTCHAR

			GOTO SETPSH
;.....................................................

SETPSH
			BTFSS LCD_INCBTN
			GOTO INC_WITH_INPUT
			GOTO INC_NO_INPUT

SETPSH2		BTFSS LCD_DECBTN
			GOTO DEC_WITH_INPUT
			GOTO DEC_NO_INPUT

SETPSH3		BTFSS LCD_SETBTN
			GOTO SET_WITH_INPUT
			GOTO SET_NO_INPUT

SETPSH4		BTFSS LCD_CNCLBTN
			GOTO CNCL_WITH_INPUT
			GOTO CNCL_NO_INPUT


INC_NO_INPUT
			BTFSC BTNTEST,0
			DECF BTNTEST,F
			GOTO SETPSH2
			GOTO SETPSH2


INC_WITH_INPUT
			BTFSS BTNTEST,0
			GOTO INC_TEST
			GOTO SETPSH

DEC_NO_INPUT
			BTFSC BTNTEST2,0
			DECF BTNTEST2,F
			GOTO SETPSH3
			GOTO SETPSH3


DEC_WITH_INPUT
			BTFSS BTNTEST2,0
			GOTO DEC_TEST
			GOTO SETPSH 


SET_NO_INPUT
			BTFSC BTNTEST3,0
			DECF BTNTEST3,F
			GOTO SETPSH4
			GOTO SETPSH4

SET_WITH_INPUT
			BTFSS BTNTEST3,0
			GOTO SET_BTN
			GOTO SETPSH

CNCL_NO_INPUT
			BTFSC BTNTEST4,0
			DECF BTNTEST4,F
			GOTO SETPSH
			GOTO SETPSH

CNCL_WITH_INPUT
			BTFSS BTNTEST4,0
			GOTO CNCL_BTN
			GOTO SETPSH
			
;......................................................
SET_HOUR
			CALL LCD_INIT
			CALL LCD_CLEAR

			MOVLW ' '
			CALL LCD_PUTCHAR
			MOVLW ' '
			CALL LCD_PUTCHAR
			MOVLW ' '
			CALL LCD_PUTCHAR
			MOVLW ' '
			CALL LCD_PUTCHAR
			MOVLW 'S'
			CALL LCD_PUTCHAR
			MOVLW 'E'
			CALL LCD_PUTCHAR
			MOVLW 'T'
			CALL LCD_PUTCHAR
			MOVLW ' '
			CALL LCD_PUTCHAR
			MOVLW 'H'
			CALL LCD_PUTCHAR
			MOVLW 'O'
			CALL LCD_PUTCHAR
			MOVLW 'U'
			CALL LCD_PUTCHAR
			MOVLW 'R'
			CALL LCD_PUTCHAR
			MOVLW 0x47
			CALL LCD_SDDA
			MOVF CTR1,W
			CALL LCD_PUTCHAR
			MOVF CTR,W
			CALL LCD_PUTCHAR

			GOTO SETPSH
;......................................................
SET_MINUTE
			CALL LCD_INIT
			CALL LCD_CLEAR

			MOVLW ' '
			CALL LCD_PUTCHAR
			MOVLW ' '
			CALL LCD_PUTCHAR
			MOVLW ' '
			CALL LCD_PUTCHAR
			MOVLW 'S'
			CALL LCD_PUTCHAR
			MOVLW 'E'
			CALL LCD_PUTCHAR
			MOVLW 'T'
			CALL LCD_PUTCHAR
			MOVLW ' '
			CALL LCD_PUTCHAR
			MOVLW 'M'
			CALL LCD_PUTCHAR
			MOVLW 'I'
			CALL LCD_PUTCHAR
			MOVLW 'N'
			CALL LCD_PUTCHAR
			MOVLW 'U'
			CALL LCD_PUTCHAR
			MOVLW 'T'
			CALL LCD_PUTCHAR
			MOVLW 'E'
			CALL LCD_PUTCHAR
			MOVLW 0x47
			CALL LCD_SDDA
			MOVF CTR1,W
			CALL LCD_PUTCHAR
			MOVF CTR,W
			CALL LCD_PUTCHAR

			GOTO SETPSH
;......................................................
DISPLAY_TIME
			CALL LCD_INIT
			CALL LCD_CLEAR

			MOVLW ' '
			CALL LCD_PUTCHAR
			MOVLW ' '
			CALL LCD_PUTCHAR
			MOVLW 'T'
			CALL LCD_PUTCHAR
			MOVLW 'I'
			CALL LCD_PUTCHAR
			MOVLW 'M'
			CALL LCD_PUTCHAR
			MOVLW 'E'
			CALL LCD_PUTCHAR
			MOVLW ' '
			CALL LCD_PUTCHAR
			MOVLW 'I'
			CALL LCD_PUTCHAR
			MOVLW 'S'
			CALL LCD_PUTCHAR
			MOVLW ' '
			CALL LCD_PUTCHAR
			MOVLW 'S'
			CALL LCD_PUTCHAR
			MOVLW 'E'
			CALL LCD_PUTCHAR
			MOVLW 'T'
			CALL LCD_PUTCHAR
			MOVLW '!'
			CALL LCD_PUTCHAR

			MOVLW 0xFF
			ANDLW 0xF0
			ANDWF HR_SET,W
			MOVWF TEMP_HR_SET
			SWAPF TEMP_HR_SET,F
			MOVF TEMP_HR_SET,W
			MOVWF PORTC
			BCF PORTA,0

			CALL DELAY20ms

			MOVLW 0xFF
			ANDLW 0x0F
			ANDWF HR_SET,W
			MOVWF TEMP_HR_SET
			SWAPF TEMP_HR_SET,F
			MOVF TEMP_HR_SET,W
			MOVWF PORTC
			BCF PORTA,1

			CALL DELAY20ms

			MOVLW 0xFF
			ANDLW 0xF0
			ANDWF MIN_SET,W
			MOVWF TEMP_MIN_SET
			SWAPF TEMP_MIN_SET,F
			MOVF TEMP_MIN_SET,W
			MOVWF PORTC
			BCF PORTA,3

			CALL DELAY20ms

			MOVLW 0xFF
			ANDLW 0x0F
			ANDWF MIN_SET,W
			MOVWF TEMP_MIN_SET
			SWAPF TEMP_MIN_SET,F
			MOVF TEMP_MIN_SET,W
			MOVWF PORTC
			BCF PORTA,4

			GOTO SETPSH
;......................................................
       END
 

Status
Not open for further replies.

Similar threads

Cookies are required to use this site. You must accept them to continue using the site. Learn more…