Professional Documents
Culture Documents
Timer 0
Timer 1
Serial Ports Timer 0 T0
Int1 RAM128 ROM
Interupt bytes 4K Timer 1 T1
Int 0 control Registers
CPU
I / O Ports
Serial port
Oscilator Bus
P0 P2 P1 P3 TxD RxD
GND
Nh− vËy cã thÓ thÊy ®Æc ®iÓm ®Çu tiªn mµ PIC16F877 ®em l¹i vµ næi bËt so
víi V§K 8051 lµ dßng PIC16F877 nh÷ng ®Æc tÝnh kÜ thuËt h¬n h¼n so víi bé
V§K 8051 thÓ hiÖn ë nh÷ng ®iÓm sau:
C¸c thanh ghi ®a môc ®Ých: (General Purpose Register), c¸c thanh ghi
nµy ®−îc truy cËp b»ng c¶ hai c¸ch trùc tiÕp hoÆc gi¸n tiÕp qua thanh ghi
FSR,tæng céng cã 368 byte.
C¸c thanh ghi chøc n¨ng ®Æc biÖt. C¸c thanh ghi nµy ®−îc dïng bëi
CPU vµ c¸c khèi ngo¹i vi ®Ó ®iÒu khiÓn sù ho¹t ®éng theo yªu cÇu cña thiÕt bÞ.
Copyright (c) IRF Group
C¸c thanh ghi nµy cã thÓ ®−îc ph©n lo¹i vµo hai bé phËn trung t©m (CPU) vµ
ngo¹i vi.
Sau ®©y lµ mét sè thanh ghi ®Æc biÖt quan träng.
* C¸c thanh ghi tr¹ng th¸i STATUS: Cã 4 thanh ghi tr¹ng th¸i trªn 4 d·y,
t¹i c¸c ®Þa chØ 03h, 83h, 103h, 183h. C¸c thanh ghi nµy cho biÕt tr¹ng th¸i cña
phÇn tö l«gic to¸n häc ALU, tr¹ng th¸i RESET, tr¹ng th¸i cña c¸c bit lùa chän
d·y thanh ghi cho bé nhí d÷ liÖu.
Thanh ghi tr¹ng th¸i cã thÓ lµ kÕt qu¶ cña mét sè lÖnh nh− lµ víi mét sè
thanh ghi kh¸c. NÕu thanh ghi tr¹ng th¸i lµ kÕt qu¶ bëi mét lÖnh mµ t¸c ®éng ®Õn
c¸c bit Z, DC, C th× viÖc ghi vµo c¸c bit nµy lµ kh«ng thÓ.
* C¸c thanh ghi lùa chän OPTION_REG: Cã hai thanh ghi lùa chän t¹i
c¸c ®Þa chØ 81h vµ 181h, c¸c thanh ghi nµy cã thÓ ®äc hoÆc ghi, nã chøa ®ùng
nhiÒu bit ®iÒu khiÓn kh¸c nhau ®Ó x¸c ®Þnh hÖ sè ®Þnh tr−íc TMR0/hÖ sè ®Þnh
sau WDT, ng¾t ngoµi INT, TMR0, c¸c ®iÖn ¸p treo trªn cæng B
* C¸c thanh ghi INTCON: Cã 4 thanh ghi INTCON t¹i c¸c ®Þa chØ 0Bh,
8Bh, 10Bh, 18Bh. C¸c thanh ghi nµy cã thÓ ®äc vµ ghi, nã chøa ®ùng nhiÒu sù
cho phÐp vµ c¸c bit cê cho viÖc trµn thanh ghi TMR0, c¸c ng¾t thay ®æi cæng RB
vµ ch©n c¸c ng¾t ngoµI RB0/INT.
* Thanh ghi PIE1: T¹i ®Þa chØ 8Ch, chøa ®ùng c¸c bit cho phÐp riªng lÎ
cho c¸c ng¾t ngo¹i vi.
* Thanh ghi PIR1: T¹i ®Þa chØ 0Ch, chøa ®ùng c¸c bit cê riªng lÎ cho c¸c
ng¾t ngo¹i vi.
* Thanh ghi PIE2: T¹i ®Þa chØ 8Dh, chøa ®ùng c¸c bit cho phÐp riªng lÎ
cho c¸c ng¾t ngo¹i vi CCP2, ng¾t xung ®ét tuyÕn SSP vµ EEPROM ghi c¸c ho¹t
®éng ng¾t .
* Thanh ghi PIE2: T¹i ®Þa chØ 8Dh, chøa ®ùng c¸c cê bit cho c¸c ng¾t
ngo¹i vi CCP2, ng¾t xung ®ét tuyÕn SSP vµ EEPROM ghi c¸c ho¹t ®éng ng¾t .
* Thanh ghi PCON (Power Control): Chøa bit cê cho phÐp ph©n biÖt gi÷a
viÖc Reset hÖ thèng (POR) ®Ó Reset MCLR ngo¹i víi Reset WDT.
* PCL vµ PCLATH. Ch−¬ng tr×nh ®Õm chØ râ ®Þa chØ cña lÖnh tiÕp theo
®−îc thùc hiÖn. PC cã ®é réng 13 bit, byte thÊp ®−îc gäi lµ thanh ghi PCL, thanh
ghi nµy cã thÓ ®äc hoÆc ghi. Byte cao ®−îc gäi lµ thanh ghi PCH, nã chøa c¸c bit
PC<12:8> vµ kh«ng trùc tiÕp ®äc hoÆc ghi mµ toµn bé sù cËp nhËp cña nã th«ng
qua thanh ghi PCLATH. Khi reset 5 bit PCLATH<4:0> n¹p tíi PCH, khi thùc
hiÖn c¸c lÖnh CALL, GOTO 11 bit Ofcode<10:0> vµ 2 bit PCLATH<4:3> t¹o
thµnh 13 bit n¹p vµo PC. Do vËy khi dïng lÖnh CALL, GOTO chó ®Õn hai bit
PCLATH<4:3> ®ã còng chÝnh lµ hai bit chØ c¸c trang cña bé nhí ch−¬ng tr×nh.
S¬ ®å khèi cæng D
Copyright (c) IRF Group
C¸c hÖ sè chia
HÖ sè chia dïng cho Timer 0 hoÆc bé WDT. C¸c hÖ sè nµy kh«ng cã kh¶
n¨ng ®äc vµ kh¶ n¨ng viÕt. §Ó chän hÖ sè chia xung vµo Timer0 hoÆc cho bé
WDT ta tiÕn hµnh xo¸ hoÆc ®Æt bÝt PSA cña thanh ghi OPTION_REG<3>
Nh÷ng bÝt PS2, PS1, PS0 cña thanh ghi OPTION_REG<2:0> dïng ®Ó x¸c
lËp c¸c hÖ sè chia.
Ng¾t cña bé Timer0
Ng¾t cña bé Timer 0 ®−îc ph¸t sinh ra khi thanh ghi TMR0 bÞ trµn tøc tõ
FFh quay vÒ 00h. Khi ®ã bÝt T0IF cña thanh ghi INTCON<2> sÏ ®−îc ®Æt. BÝt
nµy ph¶i ®−îc xãa b»ng phÇn mÒm nÕu cho phÐp ng¾t bit T0IE cña thanh ghi
INTCON<5> ®−îc set. Timer0 bÞ dõng ho¹t ë chÕ ®é SLEEP ng¾t Timer 0
kh«ng ®¸nh thøc bé xö lý ë chÕ ®é SLEEP.
Copyright (c) IRF Group
*Thanh ghi OPTION_REG
bit 7 CSRC bit lùa chän clock chØ dïng trong chÕ ®é ®ång bé
1= Master mode clock tõ BRG
0= Slave Mode clock tõ bªn ngoµi
bit 6 TX9 cho phÐp truyÒn 9 bit
1= truyÒn 9 bit
0=truyÒn 8 bit
bit 5 TXEN bit cho phep truyÒn
1= cho phÐp truyÒn
0=kh«ng cho phÐp truyÒn
bit 4 SYNC lùa chän mode USART
Copyright (c) IRF Group
1= ®ång bé
0= kh«ng ®ång bé
bit 3 kh«ng sö dông
bit 2 bit lùa chän tèc ®é cao
1=tèc ®é cao
0=tèc ®é thÊp
bit 1 TRMT cho tr¹ng th¸I thanh ghi dÞch TSR
1= TSR rçng
0= TSR ®Çy
bit 0 TX9D D÷ liÖu bit thø 9 truyÒn ®i
Khi mét ng¾t xÈy ra chØ cã PC ®−îc l−u trong stack do ®ã ng−êi sö dông
ph¶i l−u c¸c thanh ghi W, STATUS, PCLATH, khi xÈy ra ng¾t.
vÝ dô thùc hiÖ ®iÒu nµy:
ORG 0000h
...
ORG 0004h
MOVWF W_TEM ;L−u W
MOVF STATUS,W
CLRF STATUS ;chon bank 0
MOVWF STATUS_TEM ;L−u STATUS
MOVF PCLATH,W
MOVWF PCLATH_TEM ;L−u PCLATH
CLRF PCLATH ;chän trang 0
...
;ch−¬ng tr×nh phôc vô c¸c ng¾t
...
;Kh«i phôc c¸c thanh ghi
CLRF STATUS
MOVF PCLATH_TEM,W
MOVWF PCLATH
Copyright (c) IRF Group
MOVF STATUS_TEM,W
MOVWF STATUS
MOVF W_TEM,W
RETFIE
Chó ý biÕn W_TEM ph¶i ®−îc ®Þnh nghia ë tÊt c¶ c¸c bank hoÆc ë vïng
®Þa ®Þa chung cho c¸c bank(ë PIC16F877 lµ ®Þa chØ 70h-7Fh), c¸c biÕn
PCLATH_TEM, STATUS chØ ®Þnh nghÜa ë bank 0.
2.9. M« t¶ tËp lÖnh cña PIC16F877.
PIC16F877 cã 35 lÖnh hÇu hÕt c¸c lÖnh thùc hiÖn trong mét chu kú m¸y
trõ mét sè lÖnh rÏ nh¸nh. Mçi lÖnh lu«n cã ®é dµi cè ®Þnh 14 bit.
Quy −íc
f: ®Þa chi « nhí tõ 0-7fh
d: bit ®Þnh h−íng d÷ liÖu kÕt qu¶
+d=1 kÕt qu¶ l−u trong f
+d=0 l−u trong W
b: chØ ra bit thø b trong f, 0=<b<=7
k: h»ng sè tõ 0-ffh
B¶ng tËp lÖnh PIC16F877.
Skip if 0: NÕu kÕt qu¶ =0 th× bá qua mét lÖnh ngay sau lÖnh nµy
Skip if clear: bit nµy xo¸ thi bá mét lÖnh ngay sau lÖnh nµy
Skip if set: bit nµy set thi bá mét lÖnh ngay sau lÖnh nµy