PIC Microcontrollers For Beginners Too On-line

Transcription

PIC microcontrollers, for beginners tooon-line,author: Nebojsa Matic!"!#! %&#E-mail a friendabout this item'!(!% )*! %!.)!)!&)!!!!.Contents:!!,!-

!"# " %& # " # " !"!" .!/2/. /////////,20621)222362425 - / 01#234567&8!"" # " %&#'()* - !' -" -"3/ 3031 !/0&&!" ." #% &,!" %&#!" .! ) " & , !#" # " !"90/00'010203 :0405; ' 07 '( )!"!, #-& -!" -"#-1/ '10&1161213;,4/6 '( 40'#2 '#541'# 42,43, ' ' ( ?!" .!5/50% )5152(52/ (520(53'54 @5555/550(57558% )5/ - -?

. /////////,/ "#B- ( C %! . ? ) 7!!A&!!A""! *

!;8C %!;C % .C %/85/ ;!#B- ( )!2 224 C!&"C % ,7,!&/850!7 71 *&7/4 !23,/852!742 7 7 !53!D14 & !:7!470 "47 !! 473 &:,,,& (-,6 - (CB43 / (43 0 D03/853!,!!!D48837 7 47 "D/58 (43 /!3443 047 (743 042 )!43 0 /!&!&(!B !-:!@ !C '!'!,!&!!,, (-!&!( !@43 0 '?E/3(F,/854 F,,&;;,!F7 )!; 7 7 !;!!,:7 7 !!!7 7 #F7 ,42 !!/54,!'& !!

F7 7 7 F7 7!C !-.&' !!/854!7 73 .,,F7 #-@! '-5 1!F 1,FF7 ,!7, !F7 &?! , 47 8!043 !- 9 ,,*! 43 07,F7 47 Microcontrollers versus Microprocessors ;!!,,(!C!,,1.1 Memory unit !

;* !!#!,6'96 !9 G/! 9?!1.2 Central Processing Unit%1,! ,!!,H B?H

',,% 6!B?!!B -,!!,!1.3 BusHHHH!7!/4!!!B7!;,HH

&!, !,*!,!E! *,,!1.4 Input-output unit*,H!H,6!!6!!1.5 Serial communication#,*,., !(6,I*,,*-!!,!!,*;!;"!, ,!% *H/H(!H H ,?!!,,

% *:,,!%"7!!H/H*,C'F C&, 'F,-?!,B!,!&,,)!,1.6 Timer unit-.,!, !,!:(,!!,,/,0,"1.7 Watchdog, !

("- !?(!.,!, !,!:H,H!:!,,!,*,1.8 Analog to Digital Converter& :?!,&),,B;!!B!,,

1;!#!! ?1.9 ProgramHH,""!"!-!"'2 ! ", !"42 ! ", #3 #3

"2"!-!"' 5 "!-!"4!#%!&,,H&H!&,&!,;!,&!&#,!,&!!#!*!!!:&,!;,, ?&#,!.!!,,*,

'()* - !' &90/00'010203 :0405; ' 07 '( )7'()* '- ;%&-.?;%&-.!,,,!! " ;!!,,"'& " "&)"!!6"&#!",!#7(,

, 033?!:,&!,,!# "" !,#- "/4;72'-!. ,, C. ,*!

!!,/4;72. ,, 'C7/2C*!,,. ,H'-'*-*H ,*--/4;72!'-!13, ,* *?&&!/4;720/2/7/4;72!!,!,, '( ,,!,"!/4;72 , ? %!,!!!-!!? ?!,!,!,8*HH!H!!& !H,, (- /,J/!J0!J1!J2

, ? ,J2J/J2 )(J/ (- /?J/ J2 ?J/!J0!J1J2!.!!, !,!* ?!!J/)!J0!J1 '?J2

(K%6 33 ,9*!?,' (K%6 33 (K6; (' #,4 (K6; (' #&%%-B#L/,:&%%-B#L/!(' &!# 1 &!-B#L/!#-;, -B#L/-B#L/,;/4;72,/7- ))")- ),!))/7 *) ,

/4;72/ " 40" :1" ;2"'3. @4 " 9F5" ' ;7" 4 8" :/ " ;// " ; ;/0" ( /1" - ,/2.,/3 4/4 '/5" 4 /7" ' ;,&.&.& ( /K##C#C#C#C#C#**#*)*&C&C,

4 '(6,/4;72 '?"! M!'M (,"(1 ;(-!(- /(- 06, !!,,' (,,'!!"!'''!",'!

& ,'00 !,'6,/4;72 6,,,,'1 G ;?!C!,2:!' / ?,/ ,, 0 ;!(- 09 % (B;!,!2((!:

,*!*:),":4 4 "'**,!'*,!,!, %':,: ?! %',3/ ,,', /4;72?'?'?'?'?',!,! (' ( '?: %'-% 6) ? ,6),-% ?,: %',)!'& B ?(: ? !!-;'*

'', #?,,K50,50 / 0K6'6'!*, ./ 7K?:', !,:*!,,,,!!!#,, %',!, !:,

4 :& B?!!-!!.6 (K%6 0 **,, !!:** ?6&,"!!!B&!, ?**! ,/4;7277! 6?!#!@'-;'-;'*6@'';,* ) ?! F F?- & B- '" '#'!*!&!&%B ) ?!)*@#-?!!&%B- & B-- & B,?

'& /G G0 1/ " ' " 9 ';; ?#-?&,,!034/4;72'/! / G G :6 ,#%'6)-% ,#/G , G ,% ?,!%'6)-% ,'# 9C6)& & '( !/G G9!'#-!-% F?::/G G""% ):?)#!/G G)B&))6;!&))%6!-B#%6!-B#6; #/G G:?!&))6;!&))%6!-B#%6!-B#6;!

4 HH!:!!B ,)!!,&29 ( && -((C#&!*,:'-'!*&' -&!#H/H! ,' -#(' & !' -&(' #(' #-,!' -#!'-!(' #/' -#7' -#' -#' -#!

(' #? ,,*'# B6;((C*!(' #!'#5 '#2: ('#5 '#2*!?,!&#- & B-!' #/, ;),' -#- & B-!' (' #!2(' #!3(' #!4(' #!56' -## (' # N5 2OG

3!4!,5(' &(' & !/!0!(' #!1!2!' -&373 %' -&#!' -&!' -&(' &'&2 ' 6 ('&2? ' '&29 ,!%&''(&%""# )&,,- & B-!' *////// *' -&- & B-!' !/!0!1!&:#)6#!'& '&//' -& 2!'&0!'&1!'&2!3!4!5

4 ;/4;72 '( !?!@'-;''& ;%&-.;%&-.*, !,,:/ 02:/2,,))42 '( )& & '( '& '( ! & '( ! &)',, '( ?!,

'& 2;@'47,%*'& %-;''/0: /@'

#*#** , ' * ,?- & B-!@bcf STATUS, RP0-;'@'*!*-,

#;' ' G ?- & B- bsf STATUS, RP0#-;' ' G/?- & B-/% *, !/!' -#!! (' #BANK0 macroBcf STATUS, RP0memory bank 0endmBANK1 macroBsf STATUS, RP0memory bank 1endm#,' -# &;Select;Select,!'"( "/ / )0"" #/5 " *%6 ?1 "(2 " 2)3 "! ":,*% -." "!. ! ." 4 . ". ." "./13%& .7,!# 7%?/4;72!/1/17 , !!7,!!,&%%6!? 6, ' B'C!' %6

' ; !B-.( !!:* 923K** %'33K/13K!,,K,!&'& ))&&85- & B-& ' /!' ?-;'Bsf STATUS, RP0 ;Banklmovlw 0xFF;w 0xFFmovwf TRISA;address of TRISA register is taken from;instruction movwf

%&,,C);'- & B-;-'&;-'!C);;-'% * ;,!,!0 # ; !0 ! @ '?, ;;-'C);, , ;-',,!,C);?,!,,!!,@': ;-';-'

-, '& '!?! /4?C);: !,;-'C(" 4 (,!!,,@! ?,!:?

1C(C!!C(C '2-! */G G2/G"3!! ! 77% 8 0?#7/37 '( ?#

G ; (C/9! 84 5 . 3 ' ,/G G /G GC /G G'# !3?#7C ;!! 2"32!3!4!? #75'# ;9 ) /G G ,#!?#7 ;# ! 39 7#'# 9C"?!84 5 . 3# ) 39 7#3 ;;? (, ? /G G'# 9C ! C )@((C" ) 2 %2!3!45/G G#?!"3#C ; ?# '

/4;72/0 ' 12 '( ,'#2!'#3!'#4'# 9C@'#5#!(!@ ,!6 @ G !@ ?!,,@ @ G/!!@ !?6! 2E&!!, (, ,!*? ,!,!(

66,!*!,B-.B-.!(,,B-.A)( !A" !- & B-L , ; (K; /0-661! ?!/4;72,B!H6- & B&6L - & B-H6L B-.- & B-L !-6& ;(

1234 ''- & B- -'?- & B6 ,- & B3?! 1?!- & B-! #&C /#&C **H **:H

'# 9C '# 9C?!((CN4OC!C ; C C )@G ? 6C ; C*(C!C )@G/(CN/O?!C C(CN2O?!"!! ' (,, ' ;;, ? ; C(CN0O?,( ,;; !'& !,,!99 C(CN3O?2!3!4'#4!'#3'#2(' # N5 2O#!'# ; C5(CN O?#;'#5!

:!,,;,!!!,# '( / '( ?! *! '( 6! ;! (C/C!((C:!H::H#!!,!,,:6('# !!@ /4;72 ,?!

5///"/ " *37/7 37." "". "7 & 9!"".)7 '0 7 37." "

4 )6"9!H,, !/!0!1!2 033!,033! !/!0!1,,(,!/4;72,7C:H,,,7!

034 &,,C((C034!,,034,,&,033!,033 ) ;#(:033!!:! ;C( ,!,!'&29 ( -(C! ,?!

!,,!% *,% *3,,, ! ' :/ 2HH

' &!6!B6!!#!& ,,!? 6!!!C!,:,6), ,(!:!, ' !#-&-& ' 6 ' ! ' ! %'; ' ! (K6; ' !#-; ' ! ?!%'6)*"%'6) ?*6)(6! "// ):. "")! " (C

((C"'& %82% (?7#/G* G ***# !%- 3?!7'# 9C/G G 9?,!,/92!,'&29 /G G /929 ! ?7 ' '&29 !/G G %/#/G G2? ' ' 97 '72 .:4 %!? 2?µC6)/µ '

4 * !! " /4;7242% '( 41) '( 2 /4;72?! /! '( (,!*, ,?! '( !-,, '( .!!%!! %" '( !! #',!! #4 (C/,! (C/ ':# 3!4 (C/ '( 5

2!! ) 77% 8 0 '( 863 ?#! ;/G G!10 "!"" 077% 8 7 ? '( '( ,?/G G00 "!# 77% 8 0!/G G? 7/ 0" 0 '( '( ?-: )& & &)'/G G:: "% ?-: &)'! )& &/G: G:' '( )& &,'):& )& & &)'*-& )& &! '( !! '( :

6 '( '( )& & &)'!(6'K,,,!6' ;33&& '( ! '( ,! (C0,/!0!1!2,,&! 3"//." 0 79 5.77% 8 ./,55 " ."// / ). '( #.".77% 8.6

1/ '10&11612 ,,"(C;@13;., !!B!%HH

;!!H !HHHH:HH&H!H:HH:HH&H1!HH ?! 6!&:%,H' B'CH6!/2:' B'C / !@-,!:!HH6H. MH!H& H(?:!& %&#!HH!

: ' " %&#!!602 02 ; *//// *)!*" !: 4# %(),%& ?!, @@?,HLH10,

!H:/4;72H!,((A!HH),&A!!),!% K %!, ),,% K %, ,'& , % K %; )

: : 06!!(!!!!-&*,!*!!A

,!!,!&,CONFIG CP OFF& WDT OFF&PWRTE ON&XT OSC6;,!!! ? -!H' -#' -#?! 2?H/ #&C /? , !# 6, ;;!,#(' #?!*H;: 1/ P) ;C @N% AORO!!@#define turned/Poff 0APBC) ;C ! ;) ;!;C) ;10 C %B) @PPN LH LH OQNNH!HP,OHNO

%&,HH,!"!, H"!H!@#include regs.h #include "subprog.asm"11 (C- &C@,,@N% OGN,NOO!N,O!@Constant MAXIMUM 100Constant Length 30- !K&' &#% A12K&' &#% K@N%#@,OGN,,,O,!(C- &C,,!,!@variable level 20variable time 13- ! (C- &CA13- N@L,)O,N,O,

%,N JB!L,- O,N,O - ,N,,,!@level set 0length set 12level set 45 JB!K&' &#% A14 JBN@L)O " N,O%NLOO!@five equ 5six equ 6seven equ 7- 15('@N@ON,)O%", 6,!@Start org0 00movlw 0xFFmovwf PORTB* * !,/ 17 C) @%&**,

!@.movlw 0xFFmovwf PORTBend18 ;@NLO%NL,,O!*!& %- !@if level 100goto FILLelsegoto DISCHARGEendifAP %- ! C) ;1/ %- ,@ %B;,,!@If time 50goto SPEED UPelse goto SLOW DOWNendif C) ;! ;1// C) ;@ *;*; C) ;

%),!@If level 100goto LOADSelsegoto UNLOADSendifA1/06. % @N %- ! ; O%6. % C)6!/ C)6, !C6. % 034!@While i 10i i 1endw1/1 C)6 @%6. % !@while i 10i i 1endwA1/2 ;) ;6. % ! C)6

@NO%NO, ?! %- P) ;C C) ;,!@#define test.ifdef test ;how the test was defined.; instructions from these lines would executeendifP) ;C ! %- ! C) ;! ;C) ;!PBC) ;C A1/3 ;C) ; @NO%N %- C) ;O, PBC) ;C !,,!!@#define test.#undefine test.ifndef test ;how the test was undefined. .; instructions from these lines would executeendifA1/4#%( @QNN%),P) ;C ! %- ! C) ;! ;) ;!PBC) ;C )OROQN,OR!NOQN, ,N,,NOOR O,, !

KNO,, !:!@Cblock 0x02First, second, thirdendc;first 0x02, second 0x03, third 0x04cblock 0x02first : 4, second : 2, thirdendcA1/5 C);first 0x06, second 0x08, third 0x09 C) @%),A1/7)#QN@OR%),#%( )NOQ!NO!!NOR,6!!@db 't', 0 0f, 'e', 's', 0 12) !)1/8) QN@OR%),)NOQ!N '( !@ '( O!!N '( !OR ,

org H'2100'de "Version 1.0" , 0)#!)10 ))QN@OR%),NOQ!NO!!N' %6OR!!@dt "Message", 0dt first, second, third)#!) A10/ L (C;@-@LLN%(!OLLNO!NO,!'( --('!@CONFIG CP OFF& WDT OFF& PWRTE ON& XT OSCAL )%( -! '( --('100 '( --(')@N%!@processor 16F84: ; )&LO#,

% LC LC . M?LC ''?%- ?,!! ,,H H* * !,!: * *&!!;,,- ! JB!K&' &#% ! (C- &C,#%( ,*

&H H* *B:&,!

2/20621)22)2362425 - %&# %&# %&#&6,,H- !) ,! ,,,,) %&#H!!, ' %&#,6

@@-#!) ?61/-? &,"SK@&S7 #S0 #S ? ) SS ! %񃃻 10 #,6? %&# %&#),66!;!!!/ 0123;45 %&# - &'#'(6- 6)) '( ,'BC) '( %&# %&# ,4 1/ M ( 'BC,) '( ( ,&,!?00 ?!

!0CA-%!6&!H&HC M

111B!%,

C,,&, ? %&# %&#!, C(C M A6:A %&#C M

"6, %&#T!C M

'EC M!1&, '!,?!!,!

. 1 "! % !B-# %&##)0,,B-#;! %&# %&#)C)00M

4;&!! %&# % ; ! ?!?6"!"!!,,

: %/ )061,:D!

!1'(A D'(A 6 F&')!

1C MC!/4;72&D

C&!

&,

#B!DC M

;C -. 6*1*!# 1CO C 6!!,D";% %&#? BH#H!U C!H#!#?H'H, H!H&;H

1DH#H!

; 0(,,

T9

16&%%11H# H!'(A O #B %). MH#B %) -B! ) )H!*(*! (C(-,&&& &?

1&,!B,!,6!!,&. %&#,(6:,-, 6*6,!-,,,"!#6&,,!. M! ?,. M-,!& - %&#,,!,!,,! ,?!.,,#, !!"-! ?HH&!,, ?6B!!'!!!,!

-,!) #B@@ ' O - % -6) -((%O %&# - !, ;,!H?&!--,!';) #B@@ ' O ' - !!!%(: ,!-;'H

;BC6(C ' @ - '-#-;'-;'!K 6 O - &%,6K 6 O ;% ' @ - '-, 0"0!.?! K 6 O 6& .161,1,!C84 !,3-!;5-;';7!,,6,, ;;##;5H!*,,H ?!

3/ 3031 &"",",!*;!; ' ,!6!*L/!0!,&,!-;',#&C /C(C,3 ' ?;: /!5! - & B-!' ' ' G#

/- & B-!' C(C!5 C(C!5' /G#' ,C %B) !? C ,/2!2 9 7'&/2454"32,!"",32./"/ ; ) ., !! !/? !' -#*)

/!0 //!0 /!0'/G, //!0' ' G , "'#57 6' -#*' -#!5- & B-!' ' -#!5- & B-!' &!5!0! )' ' G #&C /'#5' G #&C ! ,!,*:!"!&- & B-,,! ! )

G G/ % ; 4,.,,/ /B!)!H%%H16!!,6- !,,!,!,,,2,!) /' - & 0,&'/033 555,"! &'/!"&'0!&'0!./5, "4/ 4 / / !?,' -./" " /// 5 /./.""4./")

; : ,@4"5 !5! !/ !!

&/1); : ' E/! 0!/! 01 '!1!; : 4 E/! 0!/! 01 'C!! 55!1&5!!

; : : !@7A, / 0,C,) /) 0) 1, A !A1 )A1 / ) /1 )- & B-!%)5

) /!1 )!A1 / ) 0!1 )!- & B-! /) 0!1 )!A )!A1 ) 1 / 0 A1 /34A1 ' ' -G /34' - G) /N /!)0N 3!)1N 4& !,,:,/!:!:!:!

; : -F'G(;;:;H,/%/)% /0A1A1 .A1A1 %(%//./%/.%(/A %(!- & B-!F)/).%()/

%(%!/A .!- & B-!F )/.!%(!% /)/)// V/ G/%((N / A1 / A1 %((%0?%((% 0!%"0/ 2 .:,,!7 .:!!;,'8%;/,&?3 !'8!

!@14/640414243 ( ? '( '#2 '#5'# ' ' ,, ,!:!( '( !H '( ,'& '( ., '( &)'.: 33 &&!!! " . ,,( ' 0H!&) (C0?6' C,,, (C/!, )& &

; '( !/ ,!/, '( !,)6/4;72!6/4;72! '( AC,47 22 '( !,) '( AC,47 22 '(

K 4 / ! '( &,,4,!/'& '&/!! '(

( 4" 6" HH'#2 '#5 B:! !@!! ," 6"

( : " 9H H'# 9C'# 9CB!!% )(' #!5!@" 9

( A"9H H) ' #1

,,, 3 77V/843 77/84! 88027 ?/:( ' !@A1"9(C

( ;A1F I H@ ' 2!: "9'&29 ( ' ((C, ' ,?

!@A I1"9

!@5/ 50% )5152(52/ (520(53'54 @5555/550(57558% )5/ - ?- ,,, &* * '@!,,* ,,;!,!&!,(0 K4 K,,: % 57 3,,W3K

!,3K % 57 35K02K ),,,,% 57 3 ;,( 00 3 &!57% 3 : ,/ &?,1?!/% 57 3:/&( 4 !%% ),*% )*6!/ & ?!!!13!% )!, ,?! % ) H!H(!% )% ),,H% )% )! , ?!0 &% ))C,?H*!!,% ) % )80

,,% ),/ 0,% ),,& B!;,/ 4,,% ) 0& /&?,"2& 8% )(:(-!K C @& K !(-(K K ,,W3K!%:% ),72 3;W3K#, "#/ !,/:

:

#,:#HH,? ,!@#6- !,!*!!,! ?,! ?) #(BC ,,-6,!. (C &!!!,!?

&,! ,,2,!!!*!/4;72(' &(' #** * */*,, ?

!@'(' &!1!/!##/'&16#!!/!@4(' &!0! !##//#0'&/:0!6!#K'& !# % )'&/

!C!!,!

-!" ,/ !,! /!1?!2, (, ?! !% ) ! - "B,! !,(!,-, /? (, , !,! ' !

, !% )!6 5K,!,:'&2! !% ) ,/ 0,,!,(' # % )!@:!? 6!,% )**'&2 ( ? & '

4 & (!,,:"/0K %% )% )!,% )

!@#&!,,,!% )/0K ; ", !,6!,,,!9,,6!,,,HH

A/ W &, ",03 &?!!6,!!:,,!!,'&1,

&,,,.*)*,,!!% )!,,!!,!#

( !,!!,!!!&!, # J"!"".!@!' # ;;! 0",!@# '(B C # /1 40431 --4 # 8 ! 3"# 8 3431 -

/,0-

,!7 ,HH,/4;72!-., '77*!, ! "%*;K )!**!!, *&***52. 385!

! . 385. 385K !K /. ,. '!@), . 385!,9

,'M ,. 385,,% )#

4

((!!,7&383. 383. 383K !K /. ,. '!@(!**!52. 383 ,!. 383)!!. 383

,&. 383,,!,)M # // / //?,% ),!!!!:% )

*A56%F@H ;

6%) ,!5,!!,! ! ! ! !!7% )6! K% ),W3K: 5!/ !/13!0 !!!!E? ),!2&,,",,HHH ,,H!03,,,!:HH&,!5!,;4 2!35!? , / !&!,,B4 (K ,,!?!

6H5H@,,) ,,0/)0/5) ' !,,3!,!3!;!!!!"'!5!) //:," , !) 0) /!) 0!) 1"0!) 1

05

K *%%,% )*,,%%)*% ),!.)2257 !!,7 7 .&!@A;%)7%)!,!"! "'(@4"W3K% *9// 9(6,;2%)?1HH'96F!H!%)!%) ?"80F"80 H6''96%)%) 6!6'- 6!%)"F" H66!%)!%) 6%)%! &/&%)%)"80 6/'" /6-%)%)%)'96'- / ,?!

' '?%)!6'96% )!%)6!: !!%),,,6!! ))? '& :%)))'& 7 42 @? '& @)@ '& 7 @ '& !7!%)@ '& ?! !**,#)) '& 6)) '& !%)()) '& !B#) -?!%)%)(% )!6,%)2 /0 3 -

(#B-T!% )*#B-T)5,%)%)&%) .,// 9(%), !2,,2*X***Y**%)-.&'* 0 /4!% /4M0/0A*,

%; %)

&% :%) %)2 /4@!;:!/!H H/!H/H0!HGH !HH/!0!//0% ) %'G* /*%) .G* / *%) %G* / * ,%) 'G* // * ,% )-%G* // * ,% )-'G* /// * ,% )%/G*/ *-/% )%0G*// *-0 !%) .,: 6&!*; ),.%)&!) /!) 0!,,%) *) 1,%)%)%):%)7,!% )!

'9-,!/4;72!-!,6&7 8? C /!!87C'F C!'F?!-)7 ?!**;84 !/ 2 -'-010/01234578)'M)M)) '@C))-''',:,4 :,/ :,:/,*,:, @,,3 -!,/ K &M0103K,: !W3K,,W/ K!,( K/ ,:W/ K!,

A;'-010/4:4

B4:4 '-010&, **-,4:4 @ &010H,4:4 -1- 6:&,, /01,M010M010 M?6H7-,*/*!*0*!*1*!,'M) &,,010!,,010!3 ,!, ?

PIC microcontrollers, for beginners too on-line, author: Nebojsa Matic ˇ ˆˆ ˇ ˆˇ ˆ ! ˆ