| ??? 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 |



