| ??? 09/25/11 00:43 Read: times |
#183864 - Thanks for time Responding to: ???'s previous message |
Maunik Choksi said:
.equ OUTPIN,P2.1
.equ basecount,021h
.org 0000h
SJMP MAIN
.org 000bh ;Use timer0
LJMP TIMER_ROUT
.org 0070h
MAIN: MOV SP,#050H
MOV TMOD,#01H ;initialise timer 0 in 16 bit mode
mov IP,#02h ;give priority to timer0
mov TH0,#0ech ;5ms timer count loaded
mov TL0,#078h ;for 12 Mhz crystal
;The formula for deciding count is like
;(65535 - 5000) = 60535 here 5000 count for 5ms timer
;if you want to generate 1 ms timer then your formula should be
;(65525 - 1000) = 64535 and so on.
;So here we get count for 5ms timer = 60535D = EC78H =TH0TL0
setb TR0 ;turns on timer0
main1:
MOV IE,#082H ;1000 0010 Enables timer0 interrupt
sjmp main1
TIMER_ROUT:
;After Every 5ms time the timer interrupt jumps here
mov TH0,#0ech ;Reload timer count
mov TL0,#078h
inc basecount
mov a,basecount
cjne a,#50,skipchangestatus
cpl OUTPIN ;after every 50 * 5 = 250 ms compliment the OutputPin status
;So you get 2 low 2 high output status in 1 sec i.e 2 Hz freq.
mov basecount,#0 ;reset the base count
skipchangestatus:
reti ;return from timer interrupt
Hi Maynik: Thanks for giving me example of the 2 Hz code. Best regards, Ralph Sac |



