You are on page 1of 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