Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
02/11/06 22:52
Read: times


 
#109788 - REDLED
Responding to: ???'s previous message
Andy Neil said:
absolutely nothing whatsoever


Andy Neil said:
This is an 8052 forum (hence the name)



;-------------------------------------------------------------------------------;
;				N E E D E D   F I R M W A R E			;
;-------------------------------------------------------------------------------;
;Source file:	NEEDED.ASM
;Version:	0.0
;Date:		Feb. 2006
;Application:	AT89C51ED2 in X2 Mode @ 11.0592MHz, All peripherals in X2 mode
;IDE:		Keil uVision v2.4
;Toolchain:	FLIP v2.4.4
;Author:	payam7777777@hotmail.com
;Major Changes: . COSTOMIZED FOR USER
;-------------------------------------------------------------------------------;
;			I N T E R R U P T   M A P				;
;-------------------------------------------------------------------------------;
;TASK	|SOURCE	|PRIORTY|FREQ.	|LENGTH	|CPU	|STACK	|ALTERS			;
;CHILLER|TIMER2	|3      |1600 Hz|     us|      %|	|			;
;-------------------------------------------------------------------------------;
;			R E G I S T E R   U S A G E				;
;-------------------------------------------------------------------------------;
;R0
;R1
;R2
;R3			MAY BE USED JUST IN CASE
;R4
;R5
;R6
;R7
;-------------------------------------------------------------------------------;
;			D A T A   D E F I N I T I O N S				;
;-------------------------------------------------------------------------------;
;MAY BE USED JUST IN CASE
;-------------------------------------------------------------------------------;
;			B I T   D E F I N I T I O N S				;
;-------------------------------------------------------------------------------;
REDLED	BIT	P3.4		;RED LED (dangerous)
;-------------------------------------------------------------------------------;
;			I N T E R R U P T   V E C T O R S			;

;-------------------------------------------------------------------------------;
	ORG	0000H		;Power on / RESET
	JMP	MAIN		;Main loop
	ORG	0003H		;Exrernal0 interrupt
	JMP	XHNDLR		;Exception/Error handler
	ORG	000BH		;Timer0 interrupt
	JMP	T0ISR		;Exception/Error handler
	ORG	0013H		;Exrernal1 interrupt
	JMP	XHNDLR		;Exception/Error handler
	ORG	001BH		;Timer1 interrupt
	JMP	T1ISR		;Exception/Error handler
	ORG	0023H		;Serial interrupt
	JMP	SERISR		;Exception/Error handler
	ORG	002BH		;Timer2 interrupt
	JMP	T2ISR		;Timer2 ISR
	ORG	0033H		;PCA interrupt
	JMP	XHNDLR		;Exception/Error handler
	ORG	003BH		;Keyboard interrupt
	JMP	XHNDLR		;Exception/Error handler
	ORG	0043H		;-
	JMP	XHNDLR		;Exception/Error handler
	ORG	004BH		;SPI interrupt
	JMP	XHNDLR		;Exception/Error handler
;-------------------------------------------------------------------------------;
;			C H I L L E R   I S R					;
;-------------------------------------------------------------------------------;
T2ISR:	PUSH	PSW
	CLR	TF2
	CLR	CRUCIFY_USER_FOR_HIS_QUESTION
	CALL	CHILL_OUT_MAN
	CLR	REDLED
POP PSW
	RETI
;-------------------------------------------------------------------------------;
;				M A I N						;
;-------------------------------------------------------------------------------;
MAIN:	MOV	AUXR,#03H	;ALE disabled, Exp. RAM disabled, normal MOVX
	ORL	CKCON0,#01H	;CPU in X2
	MOV	IPH0,#00010000B	;- PPCH PT2H PSH PT1H PX1H PT0H PX0H
	MOV	IPL0,#00010000B	;Timer2(highest priority)
	CLR	P3.2		;Unused pin prorammed as output to prevent noise
	SETB	OFF		;Reduce initial load on PS (Extremely critical)
	CALL	INITMR2		;Initialize Timer2 in 16-bit autoreload mode @ 1600Hz
	CALL	INITDOG		;Initialize Watchdog
LOOP:	MOV	WDTRST,#1EH	;Feed it in the 1st place, but...
	MOV	WDTRST,#0E1H	;since it still plans to bark, give it a kick
	JMP	LOOP
;-------------------------------------------------------------------------------;
;			I N I T M R 2   S U B R O U T I N E			;
;-------------------------------------------------------------------------------;
INITMR2:ANL	T2MOD,#0FCH	;DCEN=0 => Just up counter, T2OE=0 => P1.0 usable
	CLR	EXF2		;Reset flag in T2CON
	CLR	TCLK		;Timer 2 is niether the transmit clock generator...
	CLR	RCLK		;... nor the receive clock generator(in T2CON)
	CLR	EXEN2		;Ignore events on T2EX
	MOV	TH2,#0FBH	;FB7F 1600Hz @ 11.0592 in X2 with timer2 in X2
	MOV	TL2,#7FH	;1600Hz @ 11.0592 in X2 with timer2 in X2
	MOV	RCAP2H,#0FBH	;1600Hz @ 11.0592 in X2 with timer2 in X2
	MOV	RCAP2L,#7FH	;1600Hz @ 11.0592 in X2 with timer2 in X2
	CLR	CT2		;Timer mode (C/T2# in T2CON)
	CLR	CPRL2		;Reload mode (CP/RL2# in T2CON)
	SETB	EA		;Interupt enable
	SETB	ET2		;Enable timer2 interrupt
	SETB	TR2		;Timer2 run(in T2CON)
	RET
;-------------------------------------------------------------------------------;
;			I N I T D O G   S U B R O U T I N E			;
;-------------------------------------------------------------------------------;
INITDOG:ORL	WDTPRG,#00H	;(2^14-1) machine cycles, 8.88ms @ 11.0592MHz in X2
	RET
;-------------------------------------------------------------------------------;
;			E X C E P T I O N   H A N D L E R			;
;-------------------------------------------------------------------------------;
;	ORG	0FFFFH - 0002H	;Length of Handler routine
XHNDLR:	JMP	XHNDLR		;Unused memory locations filled with NOPs(00H). If 1) unexpected 

interrupt (due to glitch/crash) or 2) crazy PC (due to noise) happened, reset uC by preventing 

main from feeding/kicking the dog.
;-------------------------------------------------------------------------------;
;					E N D					;
;-------------------------------------------------------------------------------;
	END


List of 4 messages in thread
TopicAuthorDate
Regarding 115.2 kbps Baud Rate !!!            01/01/70 00:00      
   Off-topic            01/01/70 00:00      
      REDLED            01/01/70 00:00      
      lower            01/01/70 00:00      

Back to Subject List