??? 04/02/04 12:05 Read: times |
#67807 - RE: asembly code for digital clock/stopwatch Responding to: ???'s previous message |
I am using 8051. I had been trying with my switch which i seen is perfectly right.
The problem is whenever it count back to the reset and starts incrementing the value seemed to be distorted. Please help me. My project is up to due. ORG 0000H JMP MAIN ORG 100H MSG EQU 300H ; STARTING ADDRESS OF THE MESSAGE MSGT EQU 310H MAIN: CLR P2.5 ; SEND COMMAND MODE CLR P2.6 ; WRITE MOV A,#38H ; FONT cALL STROBE MOV A,#0CH ; CURSOR OFF CALL STROBE MOV A,#06H ; DISPLAY PATTERN CALL STROBE MOV A,#02H ; CLEAR DISPLAY CALL STROBE MOV A,#01H ; RETURN HOME CALL STROBE SETB P2.5 ;DATA MODE (WORD FOR 'TIME') BACK1: MOV DPTR,#MSG CALL DISPLAY CLR P2.5 ;COMMAND MODE CLR P2.6 MOV A,#CFH ;POSITION AT SECOND LINE CALL STROBE ;----------------------------------------------------- MOV P1,#0FFH ;----------------------------------------------------- SETB P2.5 ;DATA MODE (FOR 00:00) BACK: MOV DPTR,#MSGT CALL DISPLAY CALL MOVECL ;----------------------------------------------------- MOV R2,#10H ;----------------------------------------------------- CHECK0: JNB P1.0,CHECK0 ;CHECK BIT IS NOT SET ( HOLD HERE TILL CHANGES) ;----------------------------------------------------- MOV R6,#30H MOV R5,#30H S10: MOV R7,#30H ;R7 USED FOR TENTH SECOND ONLY CSI0: INC R7 MOV A,R7 ;COPY THE CURRENT VALUE OF R7 TO A CALL STROBE ;----------------------------------------------------- CHECK1: JNB P1.0,CHECK5 ;CHECK BIT IS NOT SET(HOLD HERE TILL CHANGES) IF: CJNE R2,#20H,HERE JB P1.0,BACK1 ;----------------------------------------------------- HERE: CALL MOVECL CJNE R7,#39H,CSI0 MOV R7,#30H MOV A,R7 CALL STROBE CALL MOVECL JMP S10 CHECK5: MOV R2,#20H CHECK4 JNB P1.0, CHECK4 RET SHIFT4R:CALL MOVECR ;MOVE CURSOR RIGHT BY 4 SHIFT3R:CALL MOVECR ;MOVE CURSOR RIGHT BY 3 SHIFT2R:CALL MOVECR ;MOVE CURSOR RIGHT BY 2 SHIFTR: CALL MOVECR ;MOVE CURSOR RIGHT BY 1 JMP S10 ;THIS MIGHT HAVE SOME CHANGES OR DELETE IF IT NOT APPLICABLE TO ANY USE SHIFT4L:CALL MOVECL ;MOVE CURSOR RIGHT BY 4 SHIFT3L:CALL MOVECL ;MOVE CURSOR RIGHT BY 3 SHIFT2L:CALL MOVECL ;MOVE CURSOR RIGHT BY 2 SHIFTL: CALL MOVECL ;MOVE CURSOR RIGHT BY 1 JMP S10 MOVECR: CLR P2.5 ;MOVE CURSOR TO THE RIGHT CLR P2.6 MOV A,#14H CALL STROBE SETB P2.5 RET MOVECL: CLR P2.5 ;MOVE CURSOR TO THE LEFT CLR P2.6 MOV A,#10H CALL STROBE SETB P2.5 RET DISPLAY:CLR A ;DISPLAY FOR 'TIME' AND '00:00' MOVC A,@A+DPTR ANL A,#01111111B CJNE A,#0DH,LOOP RET LOOP: CALL STROBE INC DPTR JMP DISPLAY STROBE: SETB P2.7 ;SEND TO THE SCREEN MOV P0,A CALL DELAY CLR P2.7 RET DELAY: MOV R0,#0FFH AA: MOV R1,#0FFH BB: DJNZ R1,BB DJNZ R0,AA RET ORG 300H DB 'TIME :',0DH ORG 310H DB '00:00',0DH |
Topic | Author | Date |
asembly code for digital clock/stopwatch | 01/01/70 00:00 | |
RE: asembly code for digital clock/stopwatch | 01/01/70 00:00 | |
RE: asembly code for digital clock/stopwatch | 01/01/70 00:00 | |
RE: asembly code for digital clock/stopwatch | 01/01/70 00:00 | |
RE: asembly code for digital clock/stopwatch | 01/01/70 00:00 | |
RE: asembly code for digital clock/stopwatch | 01/01/70 00:00 | |
RE: asembly code for digital clock/stopwatch | 01/01/70 00:00 | |
RE: asembly code for digital clock/stopwatch | 01/01/70 00:00 | |
RE: asembly code for digital clock/stopwatch | 01/01/70 00:00 | |
RE: asembly code for digital clock/stopwatch | 01/01/70 00:00 | |
RE: asembly code for digital clock/stopwatch![]() | 01/01/70 00:00 | |
RE: asembly code for digital.. more | 01/01/70 00:00 | |
RE: asembly code for digital clock/stopwatch | 01/01/70 00:00 | |
RE: asembly code for digital clock/stopwatch | 01/01/70 00:00 | |
RE: asembly code for digital philip | 01/01/70 00:00 | |
RE: asembly code for digital philip | 01/01/70 00:00 | |
RE: asembly code for digital philip | 01/01/70 00:00 |