Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
12/20/99 09:08
Read: times


 
#1076 - Can anyone check the source code..

.SYMBOLS
.CHIP 8051
.RSECT

;*******************************************************
; HI-LOW STATUS FLAG
;*******************************************************
LOW_FLAG .REG 21H.0
HI_FLAG .REG 21H.1

;*******************************************************
; 7-SEGMENT LED DISPLAY REGISTERS
;*******************************************************
.ORG 30H
DIGIT1 .DS 1
DIGIT2 .DS 1
DIGIT3 .DS 1
DIGIT4 .DS 1

;*******************************************************
; MAIN PROGRAM
;*******************************************************

.CODE
.ORG 0H
JMP MAIN

.ORG 100H
MAIN: MOV SP, #50H
CALL CONFIG_PORT_OUT
RESET: MOV DIGIT1, #0H
MOV DIGIT2, #0H
CALL DISPLAY_DIGIT1
CALL DISPLAY_DIGIT2

CHK_START: JNB P1.0, CHK_START

AGAIN: CLR LOW_FLAG
CLR HI_FLAG
CALL CONFIG_PORT_IN

READ_LOW: MOV DPTR, #INPORT
MOVX A, @DPTR
ANL A, #40H
JNZ READ_LOW

CALL DEBOUNCE
SETB LOW_FLAG

READ_HI: MOV DPTR, #INPORT
MOVX A, @DPTR
ANL A, #40H
JNZ READ_HI

CALL DEBOUNCE
SETB HI_FLAG
JNB LOW_FLAG, READ_LOW
JNB HI_FLAG, READ_HI

CALL CONFIG_PORT_OUT
INC DIGIT1 ; COUNTER1
MOV A, DIGIT1
CJNE A, #0AH, NEXT1
MOV DIGIT1, #0H
NEXT1: CALL DISPLAY_DIGIT1
MOV A, DIGIT1
CJNE A, #0H, AGAIN

INC DIGIT2 ; COUNTER2
MOV A, DIGIT2
CJNE A, #0AH, NEXT2
JMP RESET
NEXT2: CALL DISPLAY_DIGIT2
JMP AGAIN

DISPLAY_DIGIT1: ANL DIGIT1, #0FH
MOV A, DIGIT1
MOV DPTR, #OUTPORT
MOVX @DPTR, A
CALL DELAY
RET

DISPLAY_DIGIT2: ORL DIGIT2, #10H
MOV A, DIGIT2
MOV DPTR, #OUTPORT
MOVX @DPTR, A
CALL DELAY
RET

DEBOUNCE: MOV R6, #28H
H: MOV R5, #0FFH
G: DJNZ R5, G
DJNZ R6, H
RET

DELAY: MOV R4, #01H
F: MOV R3, #05H
E: MOV R2, #0FFH
D: DJNZ R2, D
DJNZ R3, E
DJNZ R4, F
RET

;***************************************************************************
; PORT_CONFIG AND ADDRESS DECLARATION
;*****************************************************
CTRL_REG_PORT0 .EQU 8000H
INPORT .EQU 0E000H
OUTPORT .EQU 0C010H

;*****************************************************; CONFIG INPUT PORTS
;*****************************************************
CONFIG_PORT_IN: MOV DPTR, #CTRL_REG_PORT0 ;DPTR POINTING ON THE ADDRESS OF CONTROL PORT0
MOV A, #00H ;LOAD ACC WITH 00H
MOVX @DPTR, A ;MAKE THE PORT0 INTO A INPUT PORT
RET

;************************************************************************************************
; CONFIG OUTPUT PORTS
;************************************************************************************************
CONFIG_PORT_OUT: MOV DPTR, #CTRL_REG_PORT0 ;DPTR POINTING ON THE ADDRESS OF CONTROL PORT0
MOV A, #FFH ;LOAD ACC WITH FFH
MOVX @DPTR, A ;MAKE THE PORT0 INTO A OUTPUT PORT
RET

END


List of 2 messages in thread
TopicAuthorDate
Can anyone check the source code..            01/01/70 00:00      
RE: Can anyone check the source code..            01/01/70 00:00      

Back to Subject List