Professional Documents
Culture Documents
Tutorial 877A HienThiLed
Tutorial 877A HienThiLed
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
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
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
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.