All pastes #434177 Raw Edit

discovery

public text v1 · immutable
·published 2007-04-11 08:30 UTC
rendered paste body
	LJMP	START
	ORG	0BH
	LCALL	IRQ_T0				;TIMER 0 SLUZY DO ZLICZANIA SEKUND I USTAWIANIA GODZINY
	RETI
	ORG	1BH
	LCALL	IRQ_T1				;TIMERT 1 SLUZY DO WYSWIETLANIA GODZINY
	RETI

START:
	
	MOV	R7,#0				;GODZINY
	MOV	R6,#0				;MINUTY
	MOV	R5,#0				;SEKUNDY
	MOV	R4,#6				;LICZNIK WYSWIETLACZY
	MOV	R3,#00000001B			;WSKAZNIK AKTUALNEGO WYSWIETLACZA
	MOV	R2,#20				;LICZNIK PRZEPELNIEN (50MS*20=1S)

	MOV	R1,#30H				;ADRESY 30H,38H
	MOV	R0,#30H				;ADRES KOMOREK W KTORYCH SA DANE DO WYSWIETLENIA
	
	MOV	30H,#11001111B			;KOMORKI W KTORYCH
	MOV	31H,#11111001B			; PRZECHOWYWANE
	MOV	32H,#11110011B			;  BEDA WARTOSCI
	MOV	33H,#11100111B			;   DO WYSWIETLENIA
	MOV	34H,#11111100B			;    NA LED
	MOV	35H,#11001111B

	;MOV	TMOD,#21H			;taka kombinacja bedzie po ustawieniu godziny !
	MOV	TMOD,#15H			;T0 JAKO COUTER
	MOV	TH1,#0			;CHANGE !
	MOV	TL1,#0
	MOV	TH0,#76
	MOV	TL0,#0
	MOV	DPTR,#LED_CODE
	MOV	50H,#10			;DEV

	SETB	EA
	SETB	ET0
	SETB	ET1
	;SETB	TR0
	SETB	TR1

SET_TIME:
	CJNE	R3,#00000001B,SET_TIME
	JNB	P3.5,SET_TIME
	CPL	P1.7
	LCALL	HOLD_KEY
	SJMP	SET_TIME

HOLD_KEY:
	CJNE	R3,#00000001B,HOLD_KEY
	JB	P3.5,HOLD_KEY
	RET

LOOP_DEV:
	LCALL	RELOAD
	MOV	A,#2
	LCALL	DELAY_100MS
	SJMP	LOOP_DEV

	SJMP	$


;********************************************************************
;** Poprogram obslugi przerwan
IRQ_T0:
	CLR	TR0
	MOV	TH0,#76
	MOV	TL0,#0	
	SETB	TR0
	PUSH	ACC
	DJNZ	R2,EXIT
	MOV	R2,#20				;ODSWIEZENIE LICZNIKA PRZEPELNIEN
	INC	R5
	CJNE	R5,#60,EXIT
	INC	R6
	MOV	R5,#0
	CJNE	R6,#60,EXIT
	INC	R7
	MOV	R6,#0
	CJNE	R7,#24,EXIT
	MOV	R7,#0
	MOV	R6,#0
	MOV	R5,#0
EXIT:
	POP	ACC
	RET

IRQ_T1:
	PUSH	ACC
	PUSH	01H
	DJNZ	50H,IRQ_QUIT	;DEV
	MOV	50H,#2		;DEV

	LCALL	LCD_CLR
	MOV	A,R3
	LCALL	WRITE_HEX

	CLR	TR1
	SETB	P1.6
	MOV	R1,#30H
	MOV	A,R3
	MOVX	@R1,A
	RL	A
	MOV	R3,A
	MOV	R1,#38H
	MOV	A,@R0
	MOVX	@R1,A
	INC	R0
	DEC	R4	
	MOV	A,R4
	JNZ	IRQ_QUIT
	MOV	R4,#6
	MOV	R3,#00000001B
	MOV	R0,#30H
IRQ_QUIT:
	CLR	P1.6
	SETB	TR1
	POP	01H
	POP	ACC
	RET

;********************************************************************
;** Podprogramy uzywane przez program glowny

RELOAD:
	MOV	A,R7
	MOV	B,#10
	DIV	AB
	MOVC	A,@A+DPTR
	MOV	35H,A
	XCH	A,B
	MOVC	A,@A+DPTR
	MOV	34H,A

	MOV	A,R6
	MOV	B,#10
	DIV	AB
	MOVC	A,@A+DPTR
	MOV	33H,A
	XCH	A,B
	MOVC	A,@A+DPTR
	MOV	32H,A

	MOV	A,R5
	MOV	B,#10
	DIV	AB
	MOVC	A,@A+DPTR
	MOV	31H,A
	XCH	A,B
	MOVC	A,@A+DPTR
	MOV	30H,A
	RET

LED_CODE:
	DB	00111111B	;0
	DB	00000110B	;1
	DB	01011011B	;2
	DB	01001111B	;3
	DB	01100110B	;4
	DB	01101101B	;5
	DB	01111101B	;6
	DB	00000111B	;7
	DB	01111111B	;8
	DB	01101111B	;9