Hi all,
I managed to get my interrupts working, and i have figured out a way to calculate the heart rate which is:
z = 60/(0.39*R7) = 153.84/R7 = 154/R7
But when i tried this formula, the LCD only display 77 BPM and 154 BPM. It seems that the overflow counter, R7, only count 1 - 2.
This is my code:
;*************************************** ;-----------INTERRUPT CONFIGURATIONS----------- ;*************************************** SETB EA ; Enable Global Interrupts SETB ET0 ; Enable Timer 0 Interrupt SETB EX0 ; Enable External Interrupt 0 SETB PX0 ; External Interrupt 0 High Priority ;*************************************** ;------------TIMER 0 CONFIGURATIONS------------ ;*************************************** TIMER_0 EQU 65535 SETB IT0 ; External Interrupt 0 detect falling-edge MOV TMOD,#01H ; Set Timer 0 to Mode 1 MOV A,CKCON ; Move CKCON to Accumualtor CLR ACC.3 ; Set system clock to divided by 12 MOV 70H,#00H ; Move 0 to 70H MOV R7,#02H ; Move 4 to R7 MOV 62H,#01H ; Move 1 to 62H MOV TH0,#HIGH TIMER_0 ; Set High Byte of Timer 0 MOV TL0,#LOW TIMER_0 ; Set Low Byte of Timer 0 ;********************** ;-Wait Until 4th Pulse- ;********************** WAIT: CJNE R7,#00H,WAIT ; Compare and jump to subroutine "WAIT" if R7 != 0 CLR TR0 ; Stop Timer 0 ;****** ;-Math- ;****** MATH: MOV A,#9AH ; Move 154 to A MOV B,70H DIV AB MOV R6,A ;********************** ;-External Interrupt 0- ;********************** EX_INT0: DJNZ 62H,COUNT ; Decrement 62H and jump if != 0 SETB TR0 ; Start Timer 0 COUNT: DEC R7 ; Decrement R7 RETI ; Return from Interrupt ;*********************** ;-Timer 0 Overflow Flag- ;*********************** T0_INT: INC 70H ; Overflow Counter MOV TH0,#HIGH TIMER_0 ; Reloads Timer 0 with High Byte MOV TL0,#LOW TIMER_0 ; Reloads Timer 0 with Low Byte RETI ; Return from Interrupt
Any advice would be greatly apprectiated.
as always do not try to run before you have learned to walk do not try to walk before you have learned to crawl do not try to crawl before you have learned to use arms and legs
Erik
if you had spent the time it took you to come up with "natur3 t0mAt0" (what the he.. is wrong with using your name) to study the '51 you would be far ahead.