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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
01/26/00 09:33
Read: times


 
#1301 - Can anyone checkmy source code
The source code is about interfacing optical encoder & 8051 expanded mode control card.


.SYMBOLS
.CHIP 8051
.RSECT

;*****************************************************
; INPUT HI-LOW STATUS FLAG
;*****************************************************

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

;*****************************************************
; MAIN PROGRAM
;*****************************************************
.CODE
.ORG 0H
JMP MAIN

.ORG 100H
MAIN: MOV SP, #50H ; INTIALISE STACK POINTER

CHK_START: JNB P1.0, CHK_START ; CHECK START BUTTON

CALL CONFIG_OUTPORT

RESET: MOV DIGIT1, #0H ; RESET DIGIT1 = 0
CALL DISPLAY



GET00: CALL CONFIG_INPORT
MOV DPTR, #INPORT
MOVX A, @DPTR
ANL A, #03H ; MASK OFF OTHER BITS
JNZ GET00

DIRECTION: MOV DPTR, #INPORT
MOVX A, @DPTR
ANL A, #03H ; MASK OFF OTHER INPUT BITS
CJNE A, #01H, NEXT ; CHECK COUNT = 10
JMP CW
NEXT: CJNE A, #10H, DIRECTION
JMP CCW

CW: INC DIGIT1 ; INCREASE COUNT BY 1
MOV A, DIGIT1 ; LOAD ACC WITH COUNT
CJNE A, #0AH, NEXT1 ; CHECK COUNT = 10
JMP RESET ; LOOP BACK TO RESET COUNT

CCW: DEC DIGIT1
MOV A, DIGIT1 ; LOAD ACC WITH COUNT
CJNE A, #0H, NEXT1 ; CHECK COUNT = 10
JMP RESET ; LOOP BACK TO RESET COUNT

NEXT1: CALL DISPLAY
JMP GET00 ; LOOP BACK TO READ AGAIN

; *** COUNT DISPLAY SUBROUTINE ***
DISPLAY: MOV A, DIGIT1 ; WRITE COUNT ONTO OUTPORT
MOV DPTR, #OUTPORT
MOVX @DPTR, A
CALL DELAY
RET

; *** DELAY SUBROUTINE ***
DELAY: MOV R5, #35H
F: MOV R4, #07H
E: MOV R3, #0FFH
D: DJNZ R3, D
DJNZ R4, E
DJNZ R5, F
RET

;*****************************************************
; PORT CONFIGURATION AND ADDRESS DECLARATION
;*****************************************************
CTRL_PORT0 .EQU 8000H ; CONTROL REG ADDRESS FOR
INPORT .EQU 0E000H ; INPUT PORT ADDRESS
OUTPORT .EQU 0C010H ; OUTPUT PORT ADDRESS



;*****************************************************
; CONFIGURE INPUT PORT
;*****************************************************
CONFIG_INPORT: MOV DPTR, #CTRL_PORT0
MOV A, #00H
MOVX @DPTR, A

RET

;****************************************************
; CONFIGURE OUTPUT PORT
;****************************************************
CONFIG_OUTPORT: MOV DPTR, #CTRL_PORT0
; PORT0 CONTROL ADDRESS
MOV A, #FFH ; LOAD ACC WITH FFH
MOVX @DPTR, A ; MAKE THE PORT0 AS AN
; OUTPUT PORT
RET

END


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

Back to Subject List