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.

stopwatch design problem

Status
Not open for further replies.

bragas

Newbie level 5
Joined
Sep 29, 2010
Messages
8
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,354
hi all.ı try to write asm code for up-down(0000-9999) stopwatch with 8052.but ı have some problems about down stopwatch.can you offer a powerful algorithm for this problem?ı attached .hex .asm .dsn(proteus) files.you can see problem.for example; when you see 0130 in displays,open "up-down switch".displays will crazy :-? ı wait your helps.

Code:
		 		 OFF     EQU 0FFH
		 INIT    EQU 0EEH
		 DIGITS  EQU 04H
		 DISP    EQU P0
		 SEGS    EQU P1
		 DIGIT_1 EQU 20H
		 DIGIT_2 EQU 21H
		 DIGIT_3 EQU 22H
		 DIGIT_4 EQU 23H
		 COUNT1  EQU 24H 
		 COUNT2  EQU 24H
		 
		 ORG 0000H
		 LJMP SWATCH
		 
		 ORG     000BH
		 LJMP INT
		 
		 
		 ORG  0100H
SWATCH:   MOV DIGIT_1,#09H
		 MOV DIGIT_2,#09H
		 MOV DIGIT_3,#09H
		 MOV DIGIT_4,#09H
		 MOV COUNT1,#00H
		 MOV COUNT2,#00H




MAIN:    
		 MOV  TMOD,#01H  ;;16 BIT TIMER MOD-1 
                 MOV  TH0,#0CCH
		 MOV  TL0,#12H
		 MOV  IE,#82H
		 JB   P2.1,TIMER_OFF  ;FOR PAUSE BUTTON
		 SETB TR0  	 
		 SJMP DISPLAY
TIMER_OFF: CLR TR0
		
DISPLAY: MOV     B,#INIT
        
		 MOV     R2,#DIGITS
		 MOV 	 R0,#DIGIT_1
NEXT:	 MOV 	 DISP,#OFF
		 MOV     A,@R0
		 LCALL   LOOK_UP
		 MOV     SEGS,A
		 INC     R0
		 MOV     DISP,B
		 LCALL   DELAY
		 MOV     A,B
		 RL      A
		 MOV     B,A
		 DJNZ    R2,NEXT
		 LJMP MAIN
   
DELAY:   MOV     R7,#0AH 
		 MOV     R6,#00H
LOOP2:	 DJNZ    R6,LOOP2
		 DJNZ    R7,LOOP2
		 RET   

LOOK_UP: MOV     DPTR,#TABLE
         MOVC    A,@A+DPTR
         RET
        
         ORG     0300H
TABLE:   DB      3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,3FH
         
         
         
INT:                     MOV  TH0,#0CCH
		         MOV  TL0,#12H
			 CLR TF0
			 
			 JB   P2.0,DOWN ;FOR UP-DOWN BUTTON
		 
			 
UP:		         INC COUNT1
			 MOV A,COUNT1
			 SUBB A,#03H
			 JNZ  END1
			 MOV COUNT1,#00H
			 
			 INC DIGIT_1
			 
			 
			 MOV A,DIGIT_1
			 SUBB A,#0AH
			 JNZ  END1
        	         MOV DIGIT_1,#00H
        	 
        	         INC DIGIT_2
			 
			 
			 MOV A,DIGIT_2
			 SUBB A,#0AH
			 JNZ  END1
        	         MOV DIGIT_2,#00H
        	 
        	         INC DIGIT_3
			 
			 
			 MOV A,DIGIT_3
			 SUBB A,#0AH
			 JNZ  END1
        	         MOV DIGIT_3,#00H
        	 
        	         INC DIGIT_4
			 
			 
			 MOV A,DIGIT_4
			 SUBB A,#0AH
			 JNZ  END1
        	         MOV DIGIT_4,#00H
			 LJMP END1
 
 DOWN:                   INC COUNT2
			 MOV A,COUNT2
			 SUBB A,#03H
			 JNZ  END1
			 MOV COUNT2,#00H
			 
			 
			 DEC DIGIT_1
			 MOV A,DIGIT_1
			 SUBB A,#00H
			 JNZ  END1
        	         MOV DIGIT_1,#0AH
        	 
        	         DEC DIGIT_2
			 MOV A,DIGIT_2
			 SUBB A,#00H
			 JNZ  END1
        	         MOV DIGIT_2,#0AH 
        	 
        	         DEC DIGIT_3
			 MOV A,DIGIT_3
			 SUBB A,#00H
			 JNZ  END1
        	         MOV DIGIT_3,#0AH
        	 
        	         DEC DIGIT_4
			 MOV A,DIGIT_4
			 SUBB A,#00H
			 JNZ  END1
        	         MOV DIGIT_4,#0AH
        	 
			 LJMP END1
        
END1:
        RETI
        
        END
 

Attachments

  • up-down.stopwatch.rar
    17.4 KB · Views: 44

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top