Total Tayangan Halaman

Daftar Pengunjung

Flag Counter

Kamis, 16 Mei 2013

DIGITAL clock Project







source codenya : ( format assembly untuk mendapatkan hex nya silahkan compil dengan MIDE-51 )
S_SET		BIT	P1.0						
M_SET		BIT	P1.1						
H_SET		BIT	P1.2						
SECOND		EQU	30H
MINUTE		EQU	31H
HOUR		EQU	32H
TCNT		EQU	34H
		ORG	00H
		SJMP	START
		ORG	0BH
		LJMP	INT_T0
START:		MOV	DPTR,#TABLE
		MOV	HOUR,#0						
		MOV	MINUTE,#0
		MOV	SECOND,#0
		MOV	TCNT,#0
		MOV	TMOD,#01H
		MOV	TH0,-50000/256		
		MOV	TL0,-50000 MOD 256
		MOV	IE,#82H
		SETB	TR0
;****************************************************

A1:		LCALL	DISPLAY		
		JNB	S_SET,S1
		JNB	M_SET,S2
		JNB	H_SET,S3				
		LJMP	A1
S1:		LCALL	DELAY		
		JB	S_SET,A1

		INC	SECOND		
		MOV	A,SECOND
		CJNE	A,#60,J0	
		MOV	SECOND,#0
		LJMP	K1
S2:		LCALL	DELAY
		JB	M_SET,A1

K1:		INC	MINUTE		
		MOV	A,MINUTE
		CJNE	A,#60,J1	
		MOV	MINUTE,#0
		LJMP	K2
S3:		LCALL	DELAY
		JB	H_SET,A1

K2:		INC	HOUR		
		MOV	A,HOUR
		CJNE	A,#24,J2	
		MOV	HOUR,#0
		MOV	MINUTE,#0
		MOV	SECOND,#0
		LJMP	A1
;****************************************************

J0:		JB	S_SET,A1
		LCALL	DISPLAY
		SJMP	J0
J1:		JB	M_SET,A1
		LCALL	DISPLAY
		SJMP	J1
J2:		JB	H_SET,A1
		LCALL	DISPLAY
		SJMP	J2
;***********************************************

INT_T0:		MOV	TH0,-50000/256
		MOV	TL0,-50000 MOD 256		
		INC	TCNT
		MOV	A,TCNT
		CJNE	A,#20,RETUNE	
		INC	SECOND
		MOV	TCNT,#0
		MOV	A,SECOND
		CJNE	A,#60,RETUNE
		INC	MINUTE
		MOV	SECOND,#0
		MOV	A,MINUTE
		CJNE	A,#60,RETUNE
		INC	HOUR
		MOV	MINUTE,#0
		MOV	A,HOUR
		CJNE	A,#24,RETUNE
		MOV	HOUR,#0
		MOV	MINUTE,#0
		MOV	SECOND,#0
		MOV	TCNT,#0
RETUNE:		RETI
;******************************************
DISPLAY:	MOV	A,SECOND	
		MOV	B,#10
		DIV	AB
		CLR	P3.6
		MOVC	A,@A+DPTR
		MOV	P0,A
		LCALL	DELAY
		SETB	P3.6
		MOV	A,B
		CLR	P3.7
		MOVC	A,@A+DPTR
		MOV	P0,A
		LCALL	DELAY
		SETB	P3.7

		CLR	P3.5
		MOV	P0,#40H		
		LCALL	DELAY
		SETB	P3.5

		MOV	A,MINUTE	
		MOV	B,#10
		DIV	AB
		CLR	P3.3
		MOVC	A,@A+DPTR
		MOV	P0,A
		LCALL	DELAY
		SETB	P3.3
		MOV	A,B
		CLR	P3.4
		MOVC	A,@A+DPTR
		MOV	P0,A
		LCALL	DELAY
		SETB	P3.4

		CLR	P3.2
		MOV	P0,#40H		
		LCALL	DELAY
		SETB	P3.2

	   	MOV	A,HOUR		
		MOV	B,#10
		DIV	AB
		CLR	P3.0
		MOVC	A,@A+DPTR
		MOV	P0,A
		LCALL	DELAY
		SETB	P3.0
		MOV	A,B
		CLR	P3.1
		MOVC	A,@A+DPTR
		MOV	P0,A
		LCALL	DELAY
		SETB	P3.1
		RET

TABLE: 		DB 	3FH,06H,5BH,4FH,66H
		DB	6DH,7DH,07H,7FH,6FH
DELAY:		MOV	R6,#10
D1:		MOV	R7,#250
		DJNZ	R7,$
		DJNZ	R6,D1
		RET

		END

Tidak ada komentar:

Posting Komentar