| ??? 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 |
| Topic | Author | Date |
| Can anyone checkmy source code | 01/01/70 00:00 | |
RE: Can anyone checkmy source code | 01/01/70 00:00 |



