Download as pdf or txt
Download as pdf or txt
You are on page 1of 14

Ngiboco:

NguynTrungChnh

Tiliu:

TUT03.02

Ngy:

3/6/2006

Trang:

1/14

Tutorial03.02

Gin:

picvietnam@googlegroups.com

Nidung:

Bi3:KTHUTBNG

MICROSOFTWORD

Tmtt:
Tutorialpostlnpicvietnam,topicPIC16F877ATDTIKHthuclungCBNV
VIIUKHINVPICvinidung:
PhntchgiithutkthutbngvmtsngdnghinthviLED.

1.

tvn

Trckhiphntchgiithutcakthutbngtathchinmtngdngnh,coinh
vanlibic,vadtraccvnchobimi.ngdngnysdngmchnguynl
cxydngbi1.
ngdng1:ChomtLEDchyttrisangphisaumikhongthigiandelay100ms.
TaxydngmtmchngdngbaogmccLEDcgnvoPORTBcaviiu
khinPICthngquaccintr,vmunLEDnosng,cnxutgitrlogic1rachn
tngngcaPORTB.thuntinchovictheodi,smchscalitronghnh
diy.
HI

R2

D1

R3

D2

R4

D3

R5

D4

R6

D5

R7

D6

R8

D7

R9

D8

R1

2
3
4
5
6
7

SW1

8
9
10
11
12

HI

C1

13
14

30 pF
C2

4 MHz

15
16
17
18

30 pF
19
20

MCLR/VPP
RA0/AN0
RA1/AN1
RA2/AN2/VREF-/CVREF
RA3/AN3/VREF+
RA4/TOCKI/C1OUT
RA5/AN4/SS/C2OUT
RE0/RD/AN5
RE1/WR/AN6
RE2/CS/AN7
VDD
GND

PIC16F877A

OSC1/CLKIN
OSC2/CLKOUT
RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2
RC2/CCP1
RC3/SCK/SCL

RB7/PGD
RB6/PGC
RB5
RB4
RB3/PGM
RB2
RB1
RBO/INT
VDD
GND
RD7/PSP7
RD6/PSP6
RD5/PSP5
RD4/PSP4

RC7/RX/DT
RC6/TX/CK
RC5/SDO
RC4/SDI/SDA
RD3/PSP3
RD2/PSP2

40
39
38
37
36
35
34
33
32
31
30
29
28
27

HI

26
25
24
23
22
21

RD0/PSP0
RD1/PSP1

Hnh 1: S nguyn l mch ng dng.

Ngiboco:

NguynTrungChnh

Tiliu:

TUT03.02

Ngy:

3/6/2006

Trang:

2/14

TabitccchthitlpgitrchoccchnI/Ocaviiukhin(bi1),cchvit
chngtrnhdelay(bi2),vmunccLEDdchttrisangphi,tasdngmttronghai
lnhsau:
LnhRLF
Cphp: RLF thanh_ghi,noi_den
Tcdng:dchtriccbittrongthanhghithanh_ghithngquaccarryC
(thanhghichcnngSTATUS).Ktqusaukhidchcluvothanhghi
thanh_ghinuthamsnoi_denmanggiatr1hocthanhghiWnutham
snoi_denmanggitr0.Cthhnhdungcchdchcalnhnytheo
hnhdi.

LnhRRF

Cphp: RRF thanh_ghi,noi_den

Tcdng:dchphiccbittrongthanhghithanh_ghithngquaccarry
C(thanhghichcnngSTATUS).Ktqusaukhidchcluvothanhghi
thanh_ghinuthamsnoi_denmanggiatr1hocthanhghiWnutham
snoi_denmanggitr0.Cthhnhdungcchdchcalnhnytheo
hnhdi.

nyxemnhtacyccthngtinvitchngtrnh.Giithutcng
khngin,ccbctinhnhlnltnhsau:
avothanhghiPORTBgitr10000000b(choLEDutinsng).
DchphigitrtrongthanhghiPORTB(LEDsngcngcdchtngng).
Delay100ms.
Lplibc2.
Vy,chngtrnhcangdng:
Chngtrnh3.1:
;=============================================================================
;WWW.PICVIETNAM.COM
;Laptrinh:

;Ngaybatdau:

NGUYENTRUNGCHINH
23thang01nam2006

Ngiboco:

NguynTrungChnh

Tiliu:

TUT03.02

Ngy:

3/6/2006

Trang:

3/14

;Ngayhoanthanh:

23thang01nam2006

;Kiemtrachuongtrinh:

picvietnam@googlegroups.com

;Ngaykiemtra:

;SudungvidieukhienMicrochip: PIC16F877A
title

chuongtrinh31.asm

processor

16f877a

include

<p16f877a.inc>

__CONFIG _CP_OFF&_WDT_OFF&_BODEN_OFF&_PWRTE_ON&_XT_OSC&
_WRT_OFF&_LVP_OFF&_CPD_OFF
;Capnhatvabosung:
;Motachuongtrinh: ChuongtrinhdungdedieukhienmtLEDsangdchsangphaisau
;

moikhoangthoigian100ms.

;Motaphancung:

8LEDduocganvaoPORTBthongquacacdientro,cac

thanhphandikembaogomthachanh,machresetvanguon

;================================================================================
;
;Khoitaocacbien
;
count1

EQU 0x20

;cacbiendungchodoanchuongtrinhdelay

counta

EQU 0x21

countb

EQU 0x22

;=============================================================================
;CHNGTRNHCHNH
;=============================================================================
ORG

0x000

GOTO

start

start

;chngtrnhchnhbtutiy

;
;KhitoPORTB
;

Ngiboco:

NguynTrungChnh

Tiliu:

TUT03.02

Ngy:

3/6/2006

Trang:

4/14

BCF

STATUS,RP1

BSF

STATUS,RP0

;chnBANK1

CLRF

TRISB

;PORTB<outputs

BCF

STATUS,RP0

;chnBANK0

MOVLW

b10000000

;btLEDutinsngln

MOVWF

PORTB

;PORTB<b10000000

;Vnglpchnhcachngtrnh

;
loop

CALL

delay100ms

;gichngtrnhcondelay100ms

RRF

PORTB,1

;dchphithanhghiPORTB

;ktqusaukhidchluvothanhghiPORTB
GOTO

loop

;vnglpvhn

;================================================================================
;CHNGTRNHCON
;================================================================================
delay100ms

MOVLW

d100

MOVWF

count1

d1
MOVLW

0xC7

MOVWF

counta

MOVLW

0x01

MOVWF

countb

delay_0

DECFSZ

counta,1

GOTO

$+2

DECFSZ

countb,1

GOTO

delay_0

;chngtrnhcondelay100ms

Ngiboco:

NguynTrungChnh

Tiliu:

TUT03.02

Ngy:

3/6/2006

Trang:

5/14

DECFSZ

count1,1

GOTO

d1

RETURN

;trvchngtrnhchnh

END

;ktthcchngtrnh

;================================================================================
Xong!nytacthcmnhncrngdngnhvicphttrinccngdng
trnnddnghntrc.TngttacthiukhinccLEDdchtphisangtri
(thaylnhRRFbnglnhRLF).
Bygi,gisyucucangdngkhngphildchtrihaydchphi,mldch
theomtquilutphctpnohocchngcnquilutdchnoc.Rrngcclnh
RLFhayRRFkhngkhnnggiiquytcvn,hocnucthgiithutcho
chngtrnhsrtphctpvphitmraquilutdchLEDmyucutra.Tuynhin
mikhkhndngnhuccchgiiquytringcan,vtplnhcaPICcung
cpchotamtcngcgiiquytkhkhntrn:lnhRETLW.Cthchorngyl
mtlnhrtquantrngtrongvicphttrinccngdngvgiithutchoviiukhin
PIC.Kthutbngcngcxydngdatrnlnhny.Phntiptheosphntchgii
thutcakthutny.

2.

Kthutbng
2.1.

Ccthngtincsxydngkthutbng

2.1.1 Cclnhhtrchokthutbng.
TrongbitrctatngbitnlnhRETLWvivaitrnhlnhRETURN(trv
chngtrnhchnhtchngtrnhcon),tacngbitccchsdnglnhny
nhthno.thuntinchovictheodi,lnhRETLWcngscnhcliy
cngvimtslnhcsdngchovicphttrinkthutbng.
LnhRETLW
Cphp:RETLW

(0k255)

Tcdng:trvchngtrnhchnhtchngtrnhconvigitrkc
chatrongthanhghiW.
LnhADDLW
Cphp: ADDLW

(0k255)

Tcdng:cnggitrkvogitrchatrongthanhghiW,ktqucha
trongthanhghiW.
Lnh ny c h tr bi cc bit trng thi C, DC, Z trong thanh ghi

Ngiboco:

NguynTrungChnh

Tiliu:

TUT03.02

Ngy:

3/6/2006

Trang:

6/14

STATUS. Chc nng cc lnh ny s c bn n k hn khi cn pht trin


ccngdnglinquannccbittrngthiny.
LnhADDWF
Cphp:

ADDWF

thanh_ghi,noi_den

Tcdng:CnggitrchatrongthanhghiWvothanhghithanh_ghi.
Ktqucchatrongthanhghithanh_ghinuthamsnoi_denmang
gitr1hocthanhghiWnuthamsnoi_denmanggitr0.
LnhnycngchtrbiccbittrngthiC,DC,Ztrongthanhghi
STATUS.
LnhBTFSS
Cphp:
BTFSS thanh_ghi,bit
(0bit7)
Lnh1
Lnh2
..
Tc dng: kim tra bit c ch nh bi tham s bit trong thanh ghi
thanh_ghi.Nubitbng0,lnh1cthcthi.Nubitkhc0,lnh1
cbquavthayvollnhNOP.
LnhBTFSC
Cphp:

BTFSC thanh_ghi,bit
(0bit7)
Lnh1
Lnh2
.
Tc dng: kim tra bit c ch nh bi tham s bit trong thanh ghi
thanh_ghi.Nubitbng1,lnh1cthcthi.Nubitbng0,Lnh
tiptheocbquavthayvobnglnhNOP.
Lenh INCF
Cphp:INCF

thanh_ghi,noi_den

Tcdng:tanggitrthanhghithanh_ghilen1nv.Ktquclu
vothanhghiWnuthamsnoi_denbng0hocthanhghithanh_ghi
nuthamsnoi_denbng1.
LnhnychtrbibitZtrongthanhghiSTATUS.

Ngiboco:

NguynTrungChnh

Tiliu:

TUT03.02

Ngy:

3/6/2006

Trang:

7/14

LnhDECF
Cphp:DECFthanh_ghi,noi_den
Tcdng:gimgitrthanhghithanh_ghi1nv.Ktquccha
trongthanhghiWnunoi_denbng0hocthanhghithanh_ghinu
noi_denbng1.
LnhnychtrbibitZtrongthanhghiSTATUS.
LnhMOVF
Cphp:MOVF

thanh_ghi,noi_den

Tcdng:agitrtrongthanhghithanh_ghivothanhghiWnu
thamsnoi_denbng0hocthanhghithanh_ghinuthamsnoi_den
bng1.
Vicagitrtrongthanhghithanh_ghivothanhghithanh_ghic
vvngha.ThngthngcngvicnydngthitlpccgitrchobitZ
(thanhghiSTATUS).Tasbnnkhnthaotcnykhixydngccng
dnglinquannn.
LnhXORLW
Cphp:XORLW

(0k255)

Tcdng:thchinphptonXORgiagitrkvgitrtrongthanhghi
W.KtqucchatrongthanhghiW.Nuktquphptonbng0,bitZ
(thanhghiSTATUS)smanggitr1.Nuktquphptonkhc0,bitZs
manggitr0.
XembngsaubitcktqulogickhithchinphptonXOR
giahaithamsAvB:

Ktqu

Ngiboco:

NguynTrungChnh

Tiliu:

TUT03.02

Ngy:

3/6/2006

Trang:

8/14

LnhXORWF
Cphp: XORWF

thanh_ghi,noi_den

Tcdng:thchinphptonXORgiaccgitrchatrongthanhghiW
vthanhghithanh_ghi.KtqucchatrongthanhghiWnuthams
noi_denmanggitr0hocthanhghithanh_ghinuthams
noi_denmanggitr1.
LnhnycngchtrbibitZtrongthanhghiSTATUS.

TacmtsnhnxtvphptonXORnhsau:

KhihaibinAvBmanggitrgingnhau,ktqucaphptonl0

KhihaibinAvBmanggitrkhcnhau,ktcaquphptonbng1
Nhvy,gisAvBbngnhau,thktquphpton(AXORB)sbng0,khi
,trongtrnghpcutophncngcaviiukhinPIC,bitZsmangmclogic
1.CnchltplnhPICkhngcphptonsosnh,nnlnhXORLWvbitZca
thanhghiSTATUScsdngxydnggiithutthchinvicsosnhgia
hais.

2.1.2 ThanhghiPC.
Tabitkhngnhvixlhayvihiukhin8051,doPICcthitktheo
likintrcHavardnnbnhchngtrnhvbnhdliuctchring.V
thaotccvibnhchngtrnhtrongviiukhinPIC,thanhghiPCca
vodngchovictruyxutbnhchngtrnh.ylthanhghichaachcc
lnhtiptheoscthcthitrongbnhchngtrnh.
iviviiukhinPIC16F877A,thanhghiPClthanhghi13bit,baogmhai
thanhghiPCL(cha8bitthp)vthanhghiPCH(chaccbitcaocnli).Tisaol
13bit??Cutrlilphidng13bitmhahtcachcabnhchng
trnhcdunglngl8KwordcaPIC16F877A(8Kword=23x210word=213word).
Nhvymibomcthtruyxutnbtknhnotrongbnhchngtrnh
caviiukhin.
TrcmttaskhngcnquantmtithanhghiPCH(vthanhghinykhng
nmtrongbnhdliu)mchquantmtithanhghiPCL.Thanhghinyctrong
bnhdliu,diucnghanchophpccthaotcnhmtthanhghithng
thng(ghi,xa,truyxut,..).ThayigitrtrongthanhghiPCLslmthayi
qutrnhtruyxutbnhchngtrnhcaviiukhin.Victhaotctrnthanhghi
PCLcnhtsccntrngvnslmthayiqutrnhthcthilnhvlmnh

Ngiboco:

NguynTrungChnh

Tiliu:

TUT03.02

Ngy:

3/6/2006

Trang:

9/14

hngnghimtrngngiithutcngnhtcdngcachngtrnh.Tuynhin
nukimstc,tacthiukhinmtcchlinhngdngchycachngtrnh
khiviiukhinhotng.Cnkimsotmtcchchtchvicthaotctrnthanh
ghiPCL,cnglyucuquantrngcakthutbng.
Cthtmhiuthmthngtinvthanhghinytrongdatasheetcanhsnxut.
Tacngnntmhiuccbitthmvkimchngliccthngtintrongbai,
ngthigiptacthmcmtsknngtrongvickhaithcthngtintrong
datasheetcamtsnphmint.Trongbinytachcntmhiuccthngtin
phcvchobi.

2.2.

Phntchgiithutkthutbng

Tasphntchkthutnythngquamtngdng.Yucucangdngnhng
dng1mtathchinthnhcngphn1,lchomtLEDchyttrisangphi,
nhnglnnythayvsdnglnhRLFhayRRF,tassdngkthutbng.Vicng
dngkthutbngtrongtrnghpnykhngmangtnhchttiuhagiithut,m
chmangtnhchttmhiumtkthutvitchngtnhmi.
Chngtrnhtrongvd1cvitlinhsau:

Chngtrnh3.2:
;=============================================================================
;WWW.PICVIETNAM.COM
;Laptrinh:

;Ngaybatdau:

NGUYENTRUNGCHINH
23thang01nam2006

;Ngayhoanthanh: 23thang01nam2006
;Kiemtrachuongtrinh:picvietnam@googlegroups.com
;Ngaykiemtra:

;SudungvidieukhienMicrochip:

title

PIC16F877A

chuongtrinh32.asm

processor

16f877a

include

<p16f877a.inc>

__CONFIG _CP_OFF&_WDT_OFF&_BODEN_OFF&_PWRTE_ON&

_XT_OSC&_WRT_OFF&_LVP_OFF&_CPD_OFF
;Capnhatvabosung:

Ngiboco:

NguynTrungChnh

Tiliu:

TUT03.02

Ngy:

3/6/2006

Trang:

10/14

;Motachuongtrinh:

ChuongtrinhdungdedieukhiencacLEDganvao

PORTBlnltchyttrisangphisaumoikhoangthoi

gian100ms.

Sudungkithuatbang

;Motaphancung:

8LEDduocganvaoPORTBthongquacacdientro,cac

thanhphandikembaogomthachanh,machresetvanguon

;=============================================================================
;
;Khoitaocacbien
;
count1

EQU 0x20

;Dngchochngtrnhdelay

counta

EQU 0x21

;Dngchochngtrnhdelay

countb

EQU 0x22

;Dngchochngtrnhdelay

count

EQU 0x23

;dngtrabngdliu

;=============================================================================
;CHUONGTRINHCHINH
;=============================================================================

ORG

0x000

GOTO

start

start
;
;KhitoPORTB
;

BCF

STATUS,RP1

BSF

STATUS,RP0

;chnBANK1

CLRF

TRISB

;PORTB<outputs

BCF

STATUS,RP0

;
;Vnglpchnhcachngtrnh
;

;chnBANK0

Ngiboco:

NguynTrungChnh

Tiliu:

TUT03.02

Ngy:

3/6/2006

Trang:

11/14

Loop1

CLRF

count

;resetthanhghi

Loop2

MOVF

count,0

;agitrthanhghicountvothanhghiW

CALL

table

;gichngtrnhcontable

MOVWF

PORTB

;xutgitrchatrongthanhghiWraPORTB

CALL

delay100ms

INCFcount,0

;tnggitrthanhghicount

;ktquchatrongthanhghiW

XORLW

d8

;thchinphptonXORgiathanhghiWv

;gitr8,ktquchatrongthanhghiW

BTFSC

STATUS,Z

;kimtrabitZ(Zero)

GOTO

Loop1

;nhyvlabelLoop1nuZ=1

INCF

count,1

;thcthilnhnynuZ=0

GOTO

Loop2

;===========================================================================
;Ccchngtrnhcon
;===========================================================================
;
;Chngtrnhconchokthutbng
;
table

ADDWFPCL,1

;cnggitrtrongthanhghiWvothanhghi
;PCL,ktquchatrongthanhghiPCL

RETLW

b10000000

RETLW

b01000000

RETLW

b00100000

RETLW

b00010000

RETLW

b00001000

RETLW

b00000100

;dliucabng

Ngiboco:

NguynTrungChnh

Tiliu:

TUT03.02

Ngy:

3/6/2006

Trang:

12/14

RETLW

b00000010

RETLW

b00000001

;
;Chngtrnhcondelay100ms
;
delay100ms

MOVLW

d100

MOVWF

count1

d1

MOVLW

0xC7

MOVWF

counta

MOVLW

0x01

MOVWF

countb

delay_0

DECFSZ

counta,1

GOTO

$+2

DECFSZ

countb,1

GOTO

delay_0

DECFSZ

count1,1

GOTO

d1

RETURN

END

;=============================================================================
Tacngphntchgiithutcachngtrnhdatrnccthngtinccungcp
phn2.1.SaumilnlnhCALLtableucgi,lnhRETLWtrongchngtrnhcon
tablesmanggitrtbngdliuchatrongthanhghiWtrvchngtrnhchnh.
DliunycxutrathanhghiPORTBiukhinvicbtttccLEDgnvo
PORTB.Saumilnnhvy,gitrtrongthanhghicountsctngln1nvthng
qualnhINCFcount,1.GitrtrongthanhghicountlicavothanhghiW
thngqualnhMOVFcount,0cngvothanhghiPCLthngqualnhADDWF
count,1chngtrnhcontableiukhinchngtrnhnhytingachcn
lydliutrvchngtrnhchnhthngqualnhRETLW.

Ngiboco:

NguynTrungChnh

Tiliu:

TUT03.02

Ngy:

3/6/2006

Trang:

13/14

phngtrnghpgitrbincountcngvothanhghiPCLvtquvtr
cabngdliu(trnghpnyxyrakhibincountmanggitrlnhn8,vbng
dliuchcha8gitr),khidngchngtrnhthcthiskhngcnngnhta
mongmun,bincountsaumilntngscsosnhvigitr8thngqualnh
XORLWvbittrngthiZckimtrathngqualnhBTFSCSTATUS,Z(gii
thutchovicsosnhccpphntrn).Nugitrtrongthanhghicountcha
bng8,bitZchamanggitr0,lnhGOTOLoop1cbquavqutrnhlyd
liulaictiptcthngquacclnhtiptheosau.Nuthanhghicountbng8,
bitZsmanggitr1,lnhGOTOLoop1scthcthi,bincountkhicreset
v0thngqualnhCLRFcountvqutrnhlydliuxutraPORTBcaviiu
khintiptccthcthi.Qutrnhnycbomthcthikhngngngchngno
viiukhincnhotng.
Cnchnvicspxpccgitrtrongbngdliumtcchphhpvimc
chiukhin.Trongtrnghpny,dotamunLEDchyttrisangphinntrong
bngdliu,gitr1cngcdichuyndnttrisangphi.
Bygi,tacthiukhinLEDchytheobtcyucunothngquamtthaotc
ngin:thayiccgitrtrongbngdliu.cngluthrrtcaphngphp
bngdliusovicclnhRLFhayRRF.Tuynhin,tytrnghpcthmtacth
chncgiiphphiuqunhttngng.
nlcccbnphthuytnhsngtocamnhiukhinmyconLEDnhy
matheomun.Nhpiunhyscquytnhbithigiandelay,vhnh
tngcaiunhyscthhinthngquavicchpttmyconLED.ycngl
thaotcnnthchingiplmquenvikthutminy.
Nhthngl,sauyslmtsktlunchobi3.

3.

Ktlun

KthutbngcxydngdatrnccthngtinvcutoviiukhinPIC,lcc
thngtinvthanhghiPC(ProgramCounter)vnguyntchotngcan.Bncnhl
thngtinvlnhRETLWvcchngdngcan.
Sdngkthutbngchophpiukhinmtcchlinhhotvicthayidliutrong
thanhghiWvthngqua,ccdliusdngtrongchngtrnhcngsctruyxut
mtcchlinhhothn.
Giithutkthutbngcngihivicspxpvtchcchngtrnhmtcp
caohn,bngchnglyucukhtkhetrongvickimsotvicthcthicclnhtrong
chngtrnhvcclnhhtrchokthutnycngkhnhiu.Bncnhlyucutrong
victchcvspxpmtcchhpldliutrongbng.

Ngiboco:

NguynTrungChnh

Tiliu:

TUT03.02

Ngy:

3/6/2006

Trang:

14/14

ngdngcakthutbngtrongvicxydngccgiithutchochngtrnhvitchovi
iukhinPICcngrtadngvthngxuyn.Nhnnhnyscthhinrrng
hntrongccbisau.Cthniylmtkthutquantrng.
Thngquabiny,tacngcmnhncmtnhcimcahviiukhinPIC
cngnhccviiukhinRISC,lcclnhhtrchoviiukhinkhngnhiu,dnn
slngcccngchtrbanucngkhngnhiuvgynhiukhkhnchoviclp
trnhngdng.TuynhincclnhcaviiukhinRISChontonckhnngxy
dngccngdngtrnviiukhin,vnlphitmraccphngphpgiiquytthch
hpdatrncccngcbanu.

You might also like