Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

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

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top