100% found this document useful (2 votes)
129 views

Timers Programming in AVR Microcontrollers Using Assembly

M

Uploaded by

mahmoud
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (2 votes)
129 views

Timers Programming in AVR Microcontrollers Using Assembly

M

Uploaded by

mahmoud
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 19

Dr.

Hassan SHARABATY
EEE Department, Faculty of Engineering
University of Turkish Aeronautical Association Ankara – December 2017

$JHQHULFWLPHUFRXQWHU
 &RXQWDQHYHQW &RXQWLQJ
0LVVLRQ
 *HQHUDWHWLPHGHOD\V 7LPLQJ

([VHQVRU

&RXQWLQJ 
¾ ZHIHHGSXOVHV WKDWFRXQWDQHYHQW WKURXJKRQHRIWKH$95¶VSLQV
¾ WKHFRXQWHUVFRQWHQWUHSUHVHQWVKRZPDQ\WLPHVWKHHYHQWKDVRFFXUUHG
AVR Microcontroller and Embedded System Using Assembly and C 2
© 2011 Pearson Higher Education,
Mazidi, Naimi, and Naimi Upper Saddle River, NJ 07458. • All Rights Reserved.
$JHQHULFWLPHUFRXQWHU
 &RXQWDQHYHQW &RXQWLQJ
0LVVLRQ
 *HQHUDWHWLPHGHOD\V 7LPLQJ

7LPLQJ 
¾ :HIHHGWKHFU\VWDORVFLOODWRULQWRWKHFRXQWHUUHJLVWHU
¾ :KHQWKHRVFLOODWRUWLFNVWKHFRQWHQWRIFRXQWHULVLQFUHPHQWHG
¾ 2VFLOODWRU6SHHGLVNQRZQÎ WKHFRXQWHUUHJLVWHUVFRQWHQWZLOOSRLQWWR
HODSVHGWLPH
AVR Microcontroller and Embedded System Using Assembly and C 3
© 2011 Pearson Higher Education,
Mazidi, Naimi, and Naimi Upper Saddle River, NJ 07458. • All Rights Reserved.

$JHQHULFWLPHUFRXQWHU
[[[
 &RXQWDQHYHQW &RXQWLQJ
0LVVLRQ
 *HQHUDWHWLPHGHOD\V 7LPLQJ 

 ¾) 

ZD\*HQHUDWHWLPHGHOD\V
;;;

 5HVHWWKHFRXQWHUUHJLVWHUDQGZDLWXQWLOLWUHDFKHVDFHUWDLQ
QXPEHU;;;

(; ,Q 0+] PLFURFRQWUROOHUKRZPDQ\FRXQWVQHHGHGWRJHQHUDWHDGHOD\RI—V"

 FRXQWVLHZHVKRXOGFOHDUWKHFRXQWHUDQGZDLWXQWLOLWEHFRPHVHTXDOWR
AVR Microcontroller and Embedded System Using Assembly and C 4
© 2011 Pearson Higher Education,
Mazidi, Naimi, and Naimi Upper Saddle River, NJ 07458. • All Rights Reserved.
))
$JHQHULFWLPHUFRXQWHU
)(
)'
 &RXQWDQHYHQW &RXQWLQJ
0LVVLRQ
 *HQHUDWHWLPHGHOD\V 7LPLQJ 
)ODJ 



ZD\*HQHUDWHWLPHGHOD\V

 /RDGDYDOXHWRWKHFRXQWHUUHJLVWHUDQGZDLWXQWLOWKHFRXQWHU
RYHUIORZVDQGWKHRYHUIORZIODJLVVHW
([,Q ELW0+] PLFURFRQWUROOHULIZHZDQWDWLPHGHOD\RIPLFURVHFRQGV
Î /RDG WKHFRXQWHUUHJLVWHUZLWK)'
AVR Microcontroller and Embedded System Using Assembly and C 5
© 2011 Pearson Higher Education,
DQGZDLWWKHRYHUIORZ
ÎMazidi, Naimi, and Naimi RIWKHIODJDIWHUWLFNV Upper Saddle River, NJ 07458. • All Rights Reserved.

7LPHUVLQ$95

™ $950LFURFRQWUROOHUVKDYHWRWLPHUVZKLFKFDQEHXVHGDV
¾ 7LPHUVWRJHQHUDWHDWLPHGHOD\

¾ &RXQWHUVWRFRXQWHYHQWVKDSSHQLQJRXWVLGHWKHPLFURFRQWUROOHU

™ 7KHVHWLPHUVFRXQWHUVDUHELW RUELW

¾ $7PHJD FRQWDLQVWLPHUV

9 7ZR ELWWLPHUV 7LPHU 7LPHU 

9 2QHELWWLPHU 7LPHU

AVR Microcontroller and Embedded System Using Assembly and C 6


© 2011 Pearson Higher Education,
Mazidi, Naimi, and Naimi Upper Saddle River, NJ 07458. • All Rights Reserved.
,2UHJLVWHUVWKDWFRQWUROWLPHUV
)RUHDFKWLPHUFRXQWHU

„ 7&17Q 7LPHU&RX17HU UHJLVWHU


7KLVUHJLVWHUFRXQWVXSZLWKHDFKSXOVH
7KHFRQWHQWVRIWKHWLPHUVFRXQWHUVFDQ
EHDFFHVVHGXVLQJWKLVUHJLVWHU

„ 729Q 7LPHU2YHUIORZIODJ 7&&5Q

„ 7&&5Q 7LPHU&RXQWHUFRQWUROUHJLVWHU 7&17Q


XVHGIRUVHWWLQJPRGHVRIRSHUDWLRQ
729Q
2&)Q
„ 2&5Q RXWSXWFRPSDUHUHJLVWHU

„ 2&)Q RXWSXWFRPSDUHPDWFKIODJ 2&5Q


2&5Q FRQWHQWLVFRPSDUHGZLWKFRQWHQWRIWKH7&17Q

:KHQWKH\DUHHTXDOÎ 2&)Q
AVR Microcontroller and Embedded System IODJZLOOEHVHW
Using Assembly and C 7
© 2011 Pearson Higher Education,
Mazidi, Naimi, and Naimi Upper Saddle River, NJ 07458. • All Rights Reserved.

7LPHUSURJUDPPLQJ
¾7LPHU LVELWLQ$7PHJD 7&17 LVELWUHJLVWHU

™ 729 7LPHURYHUIORZIODJELW 7&&5

:KHQ7&17RYHUIORZ JRLQJIURP))WR
7&17
729 

729
™ 2&) 7LPHURXWSXWFRPSDUHPDWFKIODJELW 2&)
:KHQFRPSDUHPDWFKRFFXUUHG 7&17 2&5
2&) 
2&5

¾ 7,)5 7LPHUFRXQWHU,QWHUUXSW)ODJ5HJLVWHU 
FRQWDLQVWKHIODJVRIGLIIHUHQWWLPHUV

AVR Microcontroller and Embedded System Using Assembly and C 8


© 2011 Pearson Higher Education,
7LPHU
Mazidi, Naimi, and Naimi 7LPHU 7LPHU
Upper Saddle River, NJ 07458. • All Rights Reserved.
7LPHUSURJUDPPLQJ

„ 7&&5 7LPHU&RXQWHUFRQWUROUHJLVWHU
LVELWUHJLVWHU

08;
7&&5

&ORFN6HOHFWRU &6
&6&6&6 &RPPHQW
 1RFORFNVRXUFH 7LPHU&RXQWHUVWRSSHG
 FON 1R3UHVFDOLQJ
 FON 
 FON 
 FON 
 FON 
 ([WHUQDOFORFNVRXUFHRQ7SLQ&ORFNRQIDOOLQJHGJH
 ([WHUQDOFORFNVRXUFHRQ7SLQ&ORFNRQULVLQJHGJH
AVR Microcontroller and Embedded System Using Assembly and C 9
© 2011 Pearson Higher Education,
Mazidi, Naimi, and Naimi Upper Saddle River, NJ 07458. • All Rights Reserved.

7LPHUSURJUDPPLQJ

„ 7&&5 7LPHU&RXQWHUFRQWUROUHJLVWHU
LVELWUHJLVWHU

7&&5

7LPHU0RGH :*0
&ORFN6HOHFWRU &6
&6&6&6 &RPPHQW
 1RFORFNVRXUFH 7LPHU&RXQWHUVWRSSHG
 &RPPHQW
:*0:*0 FON 1R3UHVFDOLQJ
 
 1RUPDO0RGH
FON 
 
 &7& &OHDU7LPHURQ&RPSDUH0DWFK
FON 
 
 3:0SKDVHFRUUHFW
FON 
 
 )DVW3:0
FON 
 ([WHUQDOFORFNVRXUFHRQ7SLQ&ORFNRQIDOOLQJHGJH
 ([WHUQDOFORFNVRXUFHRQ7SLQ&ORFNRQULVLQJHGJH
AVR Microcontroller and Embedded System Using Assembly and C 10
© 2011 Pearson Higher Education,
Mazidi, Naimi, and Naimi Upper Saddle River, NJ 07458. • All Rights Reserved.
1RUPDOPRGH
„ ,QWKLVPRGHWKHFRQWHQWRIWKHWLPHUFRXQWHULQFUHPHQWHGZLWKHDFKFORFNXQWLO
LWUHDFKHVLWVPD[RI[)) :KHQWKHWLPHUUROOVRYHUIURP))WRWKH729
IODJLVVHWWR DQGLWUHPDLQVVHWXQWLOWKHVRIWZDUHFOHDUVLW

7&17
1RWHWRFOHDU729IODJ ZHQHHGWR
ZULWHDORJLF WRLWVELWORFDWLRQ [))
729 729 729
WLPH
([ 7KHIROORZLQJSURJUDPFOHDUV729 

¾ /',5[5 E

¾ 2877,)55
))
729 

)(
7,)5



AVR Microcontroller and Embedded System Using Assembly and C 11
© 2011 Pearson Higher Education,
Mazidi, Naimi, and Naimi 729  Upper Saddle River, NJ 07458. • All Rights Reserved.

6WHSVWRSURJUDP7LPHULQ1RUPDOPRGH
/RDGWKH7&17UHJLVWHUZLWKWKHLQLWLDOFRXQWYDOXH 7&17
/RDGWKHYDOXHLQWRWKH7&&5UHJLVWHULQGLFDWLQJ

 ZKLFKPRGHLVWREHXVHG 7&&5
 3UHVFDOHU RSWLRQ

$WWKHPRPHQWZKHQZHVHOHFWWKHFORFNVRXUFHWKHWLPHUFRXQWHUVWDUWVWR
FRXQWDQGHDFKWLFNLQFUHPHQWWKHWLPHUFRXQWHUE\

0RQLWRU WKHWLPHURYHUIORZIODJ 729 DQGVWRSWKHWLPHUE\GLVFRQQHFWLQJ


WKHFORFNVRXUFH:KHQ729EHFRPHVKLJK
7&17Q

7RVWRSWKHWLPHUXVHWKHIROORZLQJLQVWUXFWLRQV
729Q
/', 5[

2877&&55 WLPHUVWRSSHGPRGH 1RUPDO

&OHDUWKH729IODJIRUWKHQH[WURXQG
AVR Microcontroller and Embedded System Using Assembly and C 12
© 2011 Pearson Higher Education,
Mazidi, Naimi, and Naimi Upper Saddle River, NJ 07458. • All Rights Reserved.
([DPSOH
+RZWRSURJUDPWLPHUWRZDLWPDFKLQHF\FOHVLQ1RUPDOPRGH
))
14 = $0E
)(
$100
[
-$0E
)
$F2  729 


 

:*0:*0 &RPPHQW
  1RUPDO
  &7&
  3:0SKDVHFRUUHFW
  )DVW3:0

AVR Microcontroller and Embedded System Using Assembly and C 13


© 2011 Pearson Higher Education,
Mazidi, Naimi, and Naimi Upper Saddle River, NJ 07458. • All Rights Reserved.

([DPSOH8VLQJ7LPHUJHQHUDWHD'HOD\RI

PDFKLQHF\FOHVRQ3& PDFKLQH
F\FOHV
$100
-$0E
$F2
Delay: LDI R20,0xF2 ¾ 4XHVWLRQ
OUT TCNT0,R20 ;load timer0 &DOFXODWHWKHGHOD\GXUDWLRQ
LDI R20,0x01 ; Start Timer0
JHQHUDWHGE\7LPHU"
OUT TCCR0,R20 ; Normal mode, int clk
AGAIN: IN R20,TIFR ;read TIFR 6XSSRVHWKDW;7$/ 0+]
SBRS R20,0 ;if TOV0 is set skip next inst. ¾ $QVZHU
RJMP AGAIN
 &DOFXODWLQJWKHSHULRG7
LDI R20,0x0
KRZPXFKRQHPDFKLQH
OUT TCCR0,R20 ;stop Timer0 FORFNODVWV 
LDI R20, 0x01 ;R20 = 0x01
7 I 0 —V
OUT TIFR,R20 ;clear TOV0 flag
RET  &DOFXODWLQJGHOD\
'HOD\ 7 QXPEHURI
7RJHWDPRUHDFFXUDWHWLPLQJZHVKRXOGWDNHLQ PDFKLQHF\FOHV
DFFRXQWWKHFORFNF\FOHVGXHWRWKHLQVWUXFWLRQV
AVR Microcontroller and Embedded System Using Assembly and C
Mazidi, Naimi, and Naimi
 —V —V 14
© 2011 Pearson Higher Education,
Upper Saddle River, NJ 07458. • All Rights Reserved.
)LQGLQJYDOXHVWREHORDGHGLQWRWKHWLPHU
([DPSOH$VVXPLQJWKDW;7$/ 0+]JHQHUDWHD'HOD\RI—V

„ %HFDXVH;7$/ 0+]WKHFRXQWHUFRXQWVXSHYHU\—V

„ 7KLVPHDQVWKDWZHQHHG—V—V FORFNV

„ WKHYDOXHVWREHORDGHGLQWRWKH7&17UHJLVWHUVLV  


Delay: LDI R20, 0XCE
OUT TCNT0,R20 ;load timer0
LDI R20,0x01
OUT TCCR0,R20 ;Timer0,Normal mode, int clk
AGAIN: IN R20,TIFR ;read TIFR
SBRS R20,0 ;if TOV0 is set skip next inst.
RJMP AGAIN
LDI R20,0x0
OUT TCCR0,R20 ;stop Timer0
LDI R20, 0x01 ;R20 = 0x01
OUT TIFR,R20 ;clear TOV0 flag
AVR Microcontroller and Embedded System Using Assembly and C 15
© 2011 Pearson Higher Education,
Mazidi, Naimi,RET
and Naimi Upper Saddle River, NJ 07458. • All Rights Reserved.

([DPSOH
 0RGLI\ 7&17LQ([WRJHWWKH0D[LPXPWLPHGHOD\ SRVVLEOHZLWKRXWXVLQJSUHVFDOHU
 )LQGWKLVGHOD\LQ—V
 7KLVGHOD\ZLOOEHXVHGWRJHQHUDWHDVTXDUHZDYH&DOFXODWHWKHVPDOOHVWIUHTXHQF\
,Q\RXUFDOFXODWLRQGRQRWLQFOXGHWKHRYHUKHDGGXHWRLQVWUXFWLRQV

&DOFXODWLQJ7
7RJHWWKHODUJHVW GHOD\ZHPDNH7&17]HUR
7 I 0+] —V
Delay: LDI R20,0x0
 &DOFXODWLQJPD[GHOD\
OUT TCNT0,R20 ;load timer0
LDI R20,0x01  —V —V
OUT TCCR0,R20 ;Normal mode, int clk
AGAIN: IN R20,TIFR ;read TIFR
 &DOFXODWLQJWKHIRI
SBRS R20,0 ;if TOV0 is set skip next inst. JHQHUDWHGZDYH
RJMP AGAIN
LDI R20,0x0
0D[LPXP7 [—V
OUT TCCR0,R20 ;stop Timer0
LDI R20, 0x01 ;R20 = 0x01
Î 6PDOOHVWIUHTXHQF\
OUT TIFR,R20 ;clear TOV0 flag
RET ) +] 16
© 2011 Pearson Higher Education,
AVR Microcontroller and Embedded System Using Assembly and C
Mazidi, Naimi, and Naimi Upper Saddle River, NJ 07458. • All Rights Reserved.
*HQHUDWLQJ/DUJHU 'HOD\V

„ 8VLQJORRS

„ 3UHVFDOHU

„ %LJJHUFRXQWHUVOLNH7LPHUZLWKELWV

AVR Microcontroller and Embedded System Using Assembly and C 17


© 2011 Pearson Higher Education,
Mazidi, Naimi, and Naimi Upper Saddle River, NJ 07458. • All Rights Reserved.

3UHVFDOHUDQGJHQHUDWLQJDODUJHWLPHGHOD\

AVR Microcontroller and Embedded System Using Assembly and C 18


© 2011 Pearson Higher Education,
Mazidi, Naimi, and Naimi Upper Saddle River, NJ 07458. • All Rights Reserved.
([DPSOH $VVXPH;7$/ 0+]
D ,I3UHVFDOHU RSWLRQ LVVHOHFWHGILQGWKHFORFNSHULRGIHGLQWR7LPHU
E :KDWLVWKHODUJHVWWLPHGHOD\ ZHFDQJHWXVLQJWKLVSUHVFDOHURSWLRQDQG7LPHU

6ROXWLRQ

D 'XHWRSUHVFDOHU
0+]î  +]
DQG7 +] ȝV PV

E 7RJHWWKHODUJHVWGHOD\ZHPDNH7&17]HUR

LH 7&17ZLOOVWDUWFRXQWIURPWR[))WKHQ UROORYHUWRUDLVHWKH 729IODJ

7KHGHOD\LVî ȝV PV VHFRQGV

AVR Microcontroller and Embedded System Using Assembly and C 19


© 2011 Pearson Higher Education,
Mazidi, Naimi, and Naimi Upper Saddle River, NJ 07458. • All Rights Reserved.

([DPSOH$VVXPLQJ;7$/ 0+]
ZULWHDFRGHWRJHQHUDWHDVTXDUHZDYHRI+] IUHTXHQF\RQSLQ3%
8VH7LPHU1RUPDOPRGHZLWKSUHVFDOHU 
6ROXWLRQ
¾ 7 +] PVRQHSHULRGRIWKHVTXDUHZDYH
¾ PVȝV   FRXQWVDUHUHTXLUHG
¾ í LQGHFLPDOÎ 7&17 

,1,767$&.
6%,''5% 3%DVRXWSXW
%(*,1 6%,3257% 3% 
&$//'(/$<BPV
&%,3257% 3%  $*$,1 ,157,)5 UHDG7,)5
&$//'(/$<BPV 6%565729
5-03 %(*,1 5-03$*$,1
/',5[
'(/$<BPV  7LPHU'HOD\ 2877&&55 VWRS7LPHU
/',5[ /',5
2877&175 ORDG7LPHU 2877,)55 FOHDU729IODJ
/',5[ 5(7
2877&&557LPHU1RUPDOPRGH
LQW
AVR Microcontroller and Embedded System FONSUHVFDOHU
Using Assembly and C  20
© 2011 Pearson Higher Education,
Mazidi, Naimi, and Naimi Upper Saddle River, NJ 07458. • All Rights Reserved.
7LPHU&7& PRGH &OHDU7LPHURQ&RPSDUHPDWFK 
7&17
7LPHULVLQFUHPHQWHG ZLWKDFORFNXQWLO
WKHFRQWHQWRIWKH7&17 2&5 729 2&)

FRPSDUHPDWFKRFFXUV WKHQWKHWLPHU
2&5
ZLOOEHFOHDUHGDQGWKH2&)IODJZLOOEH
VHW
7&17
[))
2&5

 WLPH
2&5
[[[
729 

 2&) 

 ¾2&) 
Using Assembly andQRFKDQJH
AVR Microcontroller and Embedded System¾729 C 21
© 2011 Pearson Higher Education,
7&17
Mazidi, Naimi, and Naimi Upper Saddle River, NJ 07458. • All Rights Reserved.

([DPSOH$VVXPLQJWKDW;7$/ 0+]ZULWHDSURJUDPWRJHQHUDWHD
VTXDUHZDYH ZLWKDSHULRGRI—VRQSLQ3257%

„ VTXDUHZDYHZLWK7 —VÎ WLPHGHOD\RI—V


„ ;7$/ 0+]WKHFRXQWHUFRXQWVXSHYHU\—V
„ Î —V—V FORFNV Î 2&5 
LDI R16,0x08 ;R16=0b0000 1000
SBI DDRB,3 ;PB3 as an output
LDI R17,0
OUT PORTB,R17
LDI R20,49
OUT OCR0,R20 ;load timer0
BEGIN:
LDI R20,0x09
OUT TCCR0,R20 ;Timer0,CTC mode,int clk
AGAIN: IN R20,TIFR ;read TIFR
SBRS R20,OCF0 ;if OCF0 is set skip next
RJMP AGAIN
LDI R20,0x0
OUT TCCR0,R20 ;stop Timer0
LDI R20,0x02
OUT TIFR,R20 ;clear OCF0 flag
EOR R17,R16 ;toggle D3 of R17
OUT PORTB,R17 ;toggle PB3
AVR Microcontroller and Embedded System Using Assembly and C 22
© 2011 Pearson Higher Education,
RJMP
Mazidi, Naimi, and Naimi BEGIN Upper Saddle River, NJ 07458. • All Rights Reserved.
&RXQWLQJ
ZKHQ&6LVRUWKH
365 7&17 FRXQWHUFRXQWVXS

FON,2
&OHDU
ELW7&3UHVFDOHU DFFRUGLQJWRSXOVHVDUULYHGWR
SLQ7 ([WHUQDO&ORFNLQSXW

FON
FON

FON

FON
7


&6         7

&6
&6

7LPHU&RXQWHUFORFN
VRXUFH


AVR Microcontroller and Embedded System Using Assembly and C 23
© 2011 Pearson Higher Education,
Mazidi, Naimi, and Naimi Upper Saddle River, NJ 07458. • All Rights Reserved.

([DPSOH $VVXPLQJWKDWFORFNSXOVHVDUHIHGLQWRSLQ7
ZULWHDFRGHWRFRXQWWKHIDOOLQJHGJHVDQGGLVSOD\WKHUHVXOWRQ3257&

CBI DDRB,0 ; PB0 input

LDI R20,0xFF

OUT DDRC,R20 ;make PORTC output

LDI R20,0x06

OUT TCCR0,R20 ;counter, falling edge

AGAIN:

IN R20,TCNT0

OUT PORTC,R20 ;PORTC = TCNT0

IN R16,TIFR

SBRS R16,0 ;monitor TOV0 flag

RJMP AGAIN ;keep doing it

LDI R16,01

OUT TIFR, R16 ;clear TOV0 flag


AVR Microcontroller and Embedded System Using Assembly and C 24
© 2011 Pearson Higher Education,
RJMP
Mazidi,AGAIN
Naimi, and Naimi ;keep doing it Upper Saddle River, NJ 07458. • All Rights Reserved.
7LPHU

„ 7LPHU „ 7LPHU

7&&5 7&&5

7&17 7&17

729 729
2&) 2&)

2&5 2&5

AVR Microcontroller and Embedded System Using Assembly and C 25


© 2011 Pearson Higher Education,
7LPHU
Mazidi, Naimi, and Naimi 7LPHU
Upper Saddle River, NJ 07458. • All Rights Reserved.

7KHGLIIHUHQFHEHWZHHQ7LPHUDQG7LPHU

„ 7LPHU „ 7LPHU

&6&6&6 &RPPHQW &6&6&6 &RPPHQW


 7LPHU&RXQWHUVWRSSHG  7LPHU&RXQWHUVWRSSHG
 FON 1R3UHVFDOLQJ  FON 1R3UHVFDOLQJ
 FON  FON
 FON  FON
 FON  FON
 FON  FON
 ([WHUQDOFORFN IDOOLQJHGJH  FON
 ([WHUQDOFORFN ULVLQJHGJH  FON

AVR Microcontroller and Embedded System Using Assembly and C 26


© 2011 Pearson Higher Education,
Mazidi, Naimi, and Naimi Upper Saddle River, NJ 07458. • All Rights Reserved.
7LPHU
2&5%+2&5%/

2&)%

7&&5$ 7&&5% 7&17+7&17/

729 2&)$

2&5$+2&5$/

&ORFN6HOHFWRU &6

&6&6&6 &RPPHQW
 1RFORFNVRXUFH 7LPHU&RXQWHUVWRSSHG
 FON 1R3UHVFDOLQJ
 FON
 FON
 FON
 FON
 ([WHUQDOFORFNVRXUFHRQ7SLQ&ORFNRQIDOOLQJHGJH
 ([WHUQDOFORFNVRXUFHRQ7SLQ&ORFNRQULVLQJHGJH


$VVXPLQJ;7$/ 0+]ZULWHDSURJUDPWKDWWRJJOHV
3%RQFHSHUPLOOLVHFRQGXVLQJ1RUPDOPRGH
;7$/ 0+]Î 0+]
.INCLUDE "M32DEF.INC"
LDI R16,HIGH(RAMEND) —V
;init stack pointer

1XPRIPDFKLQHF\FOHV
OUT
LDI
SPH,R16
R16,LOW(RAMEND) PV—V 
7&17
OUT
SBI ± 
SPL,R16
DDRB,5  ')
;PB5 as an output
BEGIN:SBI PORTB,5 ;PB5 = 1
RCALL DELAY_1ms
CBI PORTB,5 ;PB5 = 0
RCALL DELAY_1ms 7&17+ 7&17/
RJMP BEGIN

DELAY_1ms:
LDI R20,0xD8
R20,HIGH(-10000)
OUT TCNT1H,R20 ;TEMP = 0xD8
LDI R20,0xF0
R20, ,LOW(-10000)
OUT TCNT1L,R20 ;TCNT1L overflows
;Timer1 = 0xF0, TCNT1H
after =10000
TEMP machine cycles
LDI R20,0x0
OUT TCCR1A,R20 ;WGM11:10=00
LDI R20,0x1
OUT TCCR1B,R20 ;WGM13:12=00,CS=CLK
AGAIN:IN R20,TIFR ;read TIFR
SBRS R20,TOV1 ;if OCF1A is set skip next instruction
RJMP AGAIN
LDI R20,1<<TOV1
OUT TIFR,R20 ;clear TOV1 flag
LDI R19,0
OUT TCCR1B,R19 ;stop timer
OUT TCCR1A,R19 ;
RET
$VVXPLQJ;7$/ 0+]ZULWHDSURJUDPWKDWWRJJOHV
3%RQFHSHUPLOOLVHFRQGXVLQJ&7&PRGH
.INCLUDE "M32DEF.INC"
LDI R16,HIGH(RAMEND)
OUT SPH,R16
LDI R16,LOW(RAMEND)
OUT SPL,R16
SBI DDRB,5 ;PB5 as an output
BEGIN:SBI PORTB,5 ;PB5 = 1
RCALL DELAY_1ms
CBI PORTB,5 ;PB5 = 0
RCALL DELAY_1ms
RJMP BEGIN

DELAY_1ms:
LDI R20,0x00
OUT TCNT1H,R20 ;TEMP = 0
OUT TCNT1L,R20 ;TCNT1L = 0, TCNT1H = TEMP

LDI R20,0x27
OUT OCR1AH,R20 ;TEMP = 0x27
LDI R20,0x0F
OUT OCR1AL,R20 ;OCR1AL = 0x0F, OCR1AH = TEMP

LDI R20,0x3
OUT TCCR1A,R20 ;WGM11:10=11
LDI R20,0x19
OUT TCCR1B,R20 ;WGM13:12=11,CS=CLK
AGAIN:
IN R20,TIFR ;read TIFR
SBRS R20,OCF1A ;if OCF1A is set skip next instruction
RJMP AGAIN
LDI R20,1<<OCF1A
OUT TIFR,R20 ;clear OCF1A flag
LDI R19,0
OUT TCCR1B,R19 ;stop timer
OUT TCCR1A,R19 ;
RET

&RXQWLQJ

7KH$95PLFURFRQWUROOHU
DQGHPEHGGHG
V\VWHPV
XVLQJDVVHPEO\DQGF
&RXQWLQJ
365

&OHDU
FON,2 ELW7&3UHVFDOHU

FON
FON
FON

FON
7


&6        
&6 7

&6

7LPHU&RXQWHUFORFN
VRXUFH

([DPSOH$VVXPLQJWKDWFORFNSXOVHVDUHIHGLQWRSLQ7ZULWHDSURJUDPIRUFRXQWHU
LQQRUPDOPRGHWRFRXQWWKHSXOVHVRQIDOOLQJHGJHDQGGLVSOD\WKHVWDWHRIWKH7&17
FRXQWRQ3257&
.INCLUDE "M32DEF.INC"
CBI DDRB,0 ;make T0 (PB0) input
LDI R20,0xFF
OUT DDRC,R20 ;make PORTC output
LDI R20,0x06
OUT TCCR0,R20 ;counter, falling edge
AGAIN:
IN R20,TCNT0
OUT PORTC,R20 ;PORTC = TCNT0
IN R16,TIFR
SBRS R16,TOV0
RJMP AGAIN ;keep doing it
LDI R16,1<<TOV0
OUT TIFR, R16
RJMP AGAIN ;keep doing it
$VVXPLQJWKDWFORFNSXOVHVDUHIHGLQWRSLQ7:ULWHDSURJUDPIRUFRXQWHULQ&7&
PRGHWRPDNH3257&KLJKHYHU\SXOVHV
.INCLUDE "M32DEF.INC"

CBI DDRB,1 ;make T1 (PB1) input

SBI DDRC,0 ;PC0 as an output

LDI R20,0x0
OUT TCCR1A,R20
LDI R20,0x0E
OUT TCCR1B,R20 ;CTC, counter, falling edge
AGAIN:
LDI R20,0
OUT OCR1AH,R20 ;TEMP = 0
LDI R20,99
OUT OCR1AL,R20 ;ORC1L = R20, OCR1H = TEMP
L1: IN R20,TIFR
SBRS R20,OCF1A
RJMP L1 ;keep doing it
LDI R20,1<<OCF1A ;clear OCF1A flag
OUT TIFR, R20

SBI PORTC,0 ;PC0 = 1


CBI PORTC,0 ;PC0 = 0
RJMP AGAIN ;keep doing it

5HIHUHQFHV

)RUIXUWKHUUHDGLQJVWXGHQWVDUH
UHIHUUHGWR

¾ 7KH $95 0LFURFRQWUROOHU DQG


(PEHGGHG 6\VWHPV 8VLQJ
$VVHPEO\ DQG & 3UHQWLFH +DOO


36

You might also like