??? 12/09/09 10:01 Read: times |
#171522 - New Code, hope it helps! Responding to: ???'s previous message |
Sorry Eric!
I had only used EQU till date while missed using BIT. I found that in M-IDE studio for MCS-51. So, the code is now as below... ;DEFINE SFRs RELATED TO TIMER2 T2MOD EQU 0C9H ; T2CON EQU 0C8H ; RCAP2H EQU 0CBH ; RCAP2L EQU 0CAH ; TL2 EQU 0CCH ; TH2 EQU 0CDH ; CTR EQU 2AH ; USED AS COUNTER FOR T2 INTERRUPT TR2 BIT 0CAH ; EXF2 BIT 0CEH ; ;***************************************************************************** ;***************************************************************************** ORG 002BH ; INTERRUPT SERVICE ROUTINE FOR T2 ISR_T2: DJNZ CTR, EXIT ; DECREMENT COUNTER, EXIT IF NOT ZERO ACALL INPUTS ; ELSE CALL INPUTS SUBROUTINE MOV CTR, #0AH ; RESET COUNTER TO 0Ah EXIT: CLR EXF2 ; (CLR EXF2 => T2CON.6) RETI ; RETURN FROM INTERRUPT ORG 0050H ; THIS IS MAIN LOOP MAIN: ACALL DISPLAY ; ........ ........ ........ ........ SJMP MAIN ; ORG 0100H ; BOOT / INITIALIZATION SUBROUTINE BOOT: MOV TMOD, #11H ; LOAD TMOD WITH 11H (1011 binary) MOV T2MOD, #02H ; LOAD T2MOD WITH 0000 0010 BINARY MOV T2CON, #00H ; MOV RCAP2L, #00H; MOV RCAP2H, #00H; MOV SP, #60H ; LOAD SP WITH 60H MOV P3, #0FFH ; MOV P0, #0FFH ; MOV P2, #0FFH ; MOV P1, #0FFH ; CLR P1.1 ; TURN OFF LED1 (THIS HAPPENS TO BE T2EX PIN OF TIMER2) CLR P1.3 ; TURN OFF LED2 CLR P0.2 ; TURN OFF LED3 MOV CTR, #0AH ; COUNTER = 0Ah MOV IE, #0A0H ; (ENABLE T2, SET EA=1, REST ALL =0) SETB TR2 ; (SET TR2= START TIMER2) SJMP MAIN ; LONG JMP TO 0030H ORG 0200H ; SUBRTN FOR TAKING INPUT FORM P3 INPUTS: MOV R2, #04H ; ...... ...... ...... RET ; ORG 0300H ; DISPLAY SUBRTN DISPLAY: JB ACC.7, JMP1 ; JMP IF H=1 SETB P1.1 ; CLR P1.3 ; CLR P0.2 ; SJMP JMP3 ; JMP1: JB ACC.6, JMP2 ; CLR P1.1 ; SETB P1.3 ; CLR P0.2 ; SJMP HR8 ; JMP2: CLR P1.1 ; SETB P0.2 ; CLR P1.3 ; JMP3: RET ; ;***************************************************************** ;***************************************************************** Can anybody please help me come out of the problem??? Sandy |
Topic | Author | Date |
Problem using Timer2 in 89S52! | 01/01/70 00:00 | |
not a very useful suggestion from 'Plz' | 01/01/70 00:00 | |
further suggestion | 01/01/70 00:00 | |
Message & Readable code is here... | 01/01/70 00:00 | |
look in the assembler manual | 01/01/70 00:00 | |
New Code, hope it helps! | 01/01/70 00:00 | |
what You are trying to make ? | 01/01/70 00:00 | |
mov T2MOD,#4 | 01/01/70 00:00 | |
sorry | 01/01/70 00:00 | |
t2mod=0 ; t2con=4 (tr2=1) It worked!![]() | 01/01/70 00:00 | |
PSW | 01/01/70 00:00 | |
that is not a comment! | 01/01/70 00:00 | |
Comments OR Explaination!!! | 01/01/70 00:00 | |
Comments are mainly for YOU | 01/01/70 00:00 | |
WRONG! | 01/01/70 00:00 | |
Answer the "why" in your comments. | 01/01/70 00:00 | |
I got (I)T2 working !!! | 01/01/70 00:00 | |
Clear TF2 in your service routine | 01/01/70 00:00 | |
Clearing TF2 in ISR | 01/01/70 00:00 |