TR
NG
I H C M THÀNH PH H CHÍ MINH
KHOA XÂY D NG VÀ I N
K S
ÁN T T NGHI P
NGÀNH CÔNG NGHI P
O NHI T
VÀ I U KHI N THI T
B GIAO TI P MÁY TÍNH
SVTH :
MSSV :
GVHD :
NGUY N KH C H I
20762051
ThS.PHAN V N HI P
TP. H Chí Minh, tháng 2 n m 2012
LU N V N T T NGHI P
GVHD:Th.S PHAN V N HI P
L IC M
N
L i đ u tiên, con xin cám n b m đã sinh thành, nuôi d
ki n t t nh t đ con h c t p nên ng
con v ng b
c trên đ
i. S
ng và t o m i đi u
ng h c a cha m s là đ ng l c giúp
ng đ i mai này.
Sau n a, em xin cám n th y Phan V n Hi p đã t n tình h
quá trình hoàn thành lu n v n t t nghi p này. V i s h
đ
ng d n em trong
ng d n c a th y, em đã có
c nh ng kinh nghi m quí giá, giúp em thêm t tin trong quá trình h c t p c ng
nh làm vi c t
ng lai.
Em c ng xin cám n các th y cô trong khoa Xây D ng và i n nói riêng và các
th y cô trong tr
ng
H M TP. H Chí Minh nói chung đã truy n đ t cho em
nh ng ki n th c b ích ngay t nh ng ngày đ u b
c chân vào gi ng đ
ng đ i
h c.
Cu i cùng, em xin h a s ph n đ u h c t p th t t t đ x ng đáng là sinh viên
c a khoa Xây D ng và i n tr
ng
i h c M TP. H Chí Minh.
Kính chúc cha m , th y cô luôn d i dào s c kh e và thành công trong s
nghi p.
Tp. H Chí Minh, tháng 07 n m 2011
SVTH
Nguy n Kh c H i
NGUY N KH C H I-20762051
Page 1
LU N V N T T NGHI P
GVHD:Th.S PHAN V N HI P
L IM
U
Ngày nay Khoa h c – K thu t phát tri n m nh m , cùng v i s phát tri n
không ng ng c a các ngành k thu t nói chung và k thu t đi n t nói riêng.
Chúng đã đi sâu vào m i m t đ i s ng hàng ngày c a ng
i dân. Ð c bi t s
d ng vi đi u khi n đ đi u khi n các thi t b dân d ng và các thi t b công
nghi p. N m đ
c t m quan tr ng đó, em đã th c hi n đ tài: H Th ng Ðo
Nhi t Ð , K t N i Máy Tính Và Ði u Khi n Thi t B Dùng VÐK PIC. V i đ
tài này chúng ta có th bi t đ
c nhi t đ trong phòng, trong x
ng máy, t đó
ta có th đi u khi n t i theo nhi t đ cho thích h p.
Trong đ tài này em đã th c hi n ba ph n chính:
-Tìm hi u và gi i thi u v m t lý thuy t các v n đ có liên quan.
-Thi t k ph n c ng đi u khi n và đ
-Vi t ch
giao ti p cho ng
c mô ph ng g n gi ng v i th c t .
ng trình x lý l p trình cho vi đi u khi n và thi t k giao di n
i s d ng.
V i s c g ng trong th i gian làm đ tài này,em đã dành nhi u th i gian và
công s c đ hoàn thành bài báo cáo, và c b n đã hoàn thành đ
khi n có th đáp ng đ
c m ch đi u
c nh ng yêu c u c b n đ ra. Tuy nhiên,v i l
ki n th c và kinh nghi m còn h n ch , ch c h n s không tránh đ
thi u sót trong báo cáo. Em r t mong nh n đ
ng
c nh ng
c ý ki n phê bình, đóng góp c a
các th y cô c ng nh các b n.
Xin chân thành cám n!
NGUY N KH C H I-20762051
Page 2
LU N V N T T NGHI P
GVHD:Th.S PHAN V N HI P
M CL C
CH
NG 1: GI I THI U
TÀI........................................................... 5
1.1 Yêu c u c a đ tài ................................................................................. 5
1.1.1 Gi i thi u đ tài ............................................................................. 5
1.1.2 Yêu c u c a đ tài .......................................................................... 5
1.2 H ng th c hi n đ tài ......................................................................... 5
1.3 H ng phát tri n đ tài ........................................................................ 5
CH
NG 2: GI I THI U CÁC IC S D NG TRONG
TÀI ......... 6
2.1 VI X LÝ PIC 16F877A ...................................................................... 6
2.1.1 c tính n i b t c a b vi đi u khi n .......................................... 6
2.1.2 S đ chân c a vi đi u ki n PIC 16F877A .................................. 7
2.1.3 S đ kh i c a b vi đi u khi n PIC 16F877A ........................... 10
2.1.4 T ch c b nh .............................................................................. 11
2.1.4.1 B nh ch ng trình............................................................. 11
2.1.4.2 B nh d li u ..................................................................... 12
2.1.4.3 Stack ....................................................................................... 16
2.1.5 Các c ng xu t nh p c a PIC16F877A ......................................... 16
2.1.5.1 PortA ....................................................................................... 17
2.1.5.2 PortB ........................................................................................ 17
2.1.5.3 PortC ....................................................................................... 18
2.1.5.4 PortD ....................................................................................... 18
2.1.5.5 PortE ........................................................................................ 18
2.1.6 Các b Timer c a Chip ................................................................. 19
2.1.6.1 B Timer 0............................................................................... 19
2.1.6.2 B Timer 1............................................................................... 21
2.1.6.3 B Timer 2............................................................................... 24
2.1.6.4 ADC ....................................................................................... 25
2.1.7 Truy n nh n d li u đ ng b ,b t đ ng b .................................. 28
2.1.8 Các ng t c a PIC16F877A............................................................ 32
2.2 IC MAX 232 .......................................................................................... 33
2.2.1 Gi i thi u ........................................................................................ 33
2.2.2 S đ bên trong c a IC ................................................................. 33
2.3 O NHI T
DÙNG LM335 .......................................................... 35
2.3.1 Gi i thi u ........................................................................................ 35
2.3.2 M t s tính ch t c b n c a LM335 ............................................ 35
2.4 LCD (Liquid Crystal Display) ............................................................. 36
2.4.1Gi i Thi u Chung V LCD ............................................................ 36
2.4.2 Nhi m v các chân c a kh i LCD................................................ 37
CH
NG 3: GI I THI U CÁC PH N M M S D NG...................... 38
3.1 TRÌNH BIÊN D CH CCS C ................................................................ 38
3.1.1 Gi i thi u ........................................................................................ 38
3.1.2 T o project ..................................................................................... 38
3.1.3 Thêm file vào project .................................................................... 40
3.1.4 Built ch ng trình ......................................................................... 40
3.2 VISUAL BASIC 6.0 .............................................................................. 41
3.2.1 T ng quan v Visual Basic............................................................ 41
NGUY N KH C H I-20762051
Page 3
LU N V N T T NGHI P
GVHD:Th.S PHAN V N HI P
3.2.2 Truy n thông n i ti p dùng visual basic ..................................... 42
3.2.3 Thu c tính (property) ................................................................... 43
3.2.4 S ki n Oncomm ........................................................................... 52
3.2.5 H i vòng c ng RS-232 ................................................................ 52
CH
NG 4: CHU N GIAO TI P TRONG
TÀI RS232 .................. 54
4.1 Gi i thi u v chu n rs232 ................................................................... 54
4.2 Truy n thông gi a hai nút .................................................................. 56
CH
NG 5: THI T K PH N C NG H TH NG .............................. 59
5.1 S đ kh i h th ng ............................................................................. 59
5.2 Kh i vi đi u khi n PIC 16F877A ...................................................... 61
5.3 Kh i hi n th LCD ............................................................................... 64
5.4 Kh i k t n i PIC và máy tính............................................................. 65
5.5 Kh i đo nhi t đ .................................................................................. 66
5.6 Kh i đi u khi n thi t b b ng tay....................................................... 67
5.7 Kh i ngo i vi ........................................................................................ 68
5.8 S đ hoàn ch nh ................................................................................. 69
CH
NG 6: THI T K PH N M M H TH NG................................ 70
6.1 S đ gi i thu t .................................................................................... 70
6.1.1 L u đ gi i thu t ch ng trình chính ...................................... 70
6.1.2 Ch ng trình ph c v ng t ....................................................... 70
6.2 Giao di n đi u khi n trên máy tính ................................................... 72
K T LU N .................................................................................................... 73
TÀI LI U THAM KH O ............................................................................ 74
PH L C ....................................................................................................... 75
CODE VB ...................................................................................................... 75
CODE VI I U KHI N............................................................................... 78
NGUY N KH C H I-20762051
Page 4
LU N V N T T NGHI P
CH
GVHD:Th.S PHAN V N HI P
NG 1: GI I THI U
TÀI
1.1. Yêu c u c a đ tài:
1.1.1. Gi i thi u đ tài:
Trong cu c s ng hi n t i, khoa h c k thu t phát tri n r t nhanh, nh ng công
c ra đ i s giúp gi i phóng s lao đ ng chân tay: nghiên c u, c i ti n, sáng t o.
M c đích c a khoa h c k thu t là làm sao nâng cao đ
c ch t l
ng và hi u su t
công vi c, và công ngh t đ ng ra đ i là đáp ng nhu c u đó. Vì v y, em đã
nghiên c u v đ tài “ dùng vi x lý giao ti p máy tính đ đi u khi n thi t b
đ ng thì hi n th nhi t đ lên máy tính”. Trong đ tài này,m t vi đi u khi n PIC
làm nhi m v nh n tín hi u đi u khi n t máy tính và g i đ n các thi t b theo
đúng đ a ch yêu c u c a ng
đo đ
i dùng; đ ng th i vi đi u khi n PIC s g i nhi t đ
c v máy tính LCD. H th ng còn có b ph n đi u khi n thi t b b ng tay
khi máy tính x y ra s c .
1.1.2 Yêu c u c a đ tài:
- Thi t k m ch đo nhi t đ
s
d ng PIC 16F877A, c m bi n nhi t đ
LM335,k t n i đi u khi n 4 thi t b đi n AC.
- Thi t k m ch giao ti p PC, hi n th tr ng thái c a thi t b và đi u khi n thi t
b tr c ti p t giao di n trên PC
- L p trình giao ti p b ng ngôn ng visual basic,xây d ng giao di n giao ti p
ng
1.2. H
-
i dùng.
ng th c hi n đ tài:
Xây d ng giao di n giao ti p ng
i dùng trên máy tính b ng ngôn ng
Visual Basic 6.0
-
Vi x lý đi u khi n ch n PIC 16F877A và th c hi n giao ti p v i máy tính
thông qua chu n giao ti p truy n thông RS232.
1.3. H
-
ng phát tri n đ tài:
i u khi n và giám sát t xa,qua m ng LAN ho c m ng INTERNET.
Ch n các giao ti p hi n đ i h n nh : giao ti p có dây CAN, giao ti p không
dây wifi….
-
Xây d ng nh ng h th ng qu n lý hoàn toàn t đ ng ( ánh sáng,nhi t đ …)
ho c h n gi làm vi c theo th i gian th c ho c theo nhi t đ .
NGUY N KH C H I-20762051
Page 5
LU N V N T T NGHI P
CH
1.1 VI X
GVHD:Th.S PHAN V N HI P
NG 2: GI I THI U CÁC IC S
D NG TRONG
TÀI
LÝ PIC 16F877A
1.1.1
c tính n i b t c a b vi đi u khi n:
+ S d ng công ngh tích h p cao su RISC CPU.
+ L p trình vi đi u khi n v i 35 l nh.
+ T t c các câu l nh th c hi n trong m t chu k , ngo i tr m t s câu l nh r
nhánh th c hi n trong 2 chu k l nh.
+ T c đ ho t đ ng t i đa là 200ns/chu k l nh ( ng v i th ch anh 20MHz).
+ B nh ch
ng trình Flash 8K x 14 words.
+ B nh RAM 368 x 8 bytes
Kh n ng c a b vi x lý có đ
c:
+ Kh n ng ng t : có 14 ngu n ng t trong và ng t ngo i vi.
+ Ng n nh Stack đ
c chia làm 8 m c.
+ Truy c p b nh b ng đ a ch tr c ti p ho c gián ti p.
+ Ngu n kh i đ ng l i (POR)
+ B t o xung th i gian (PWRT) và b t o dao đ ng (OST)
+ B đ m xung th i gian (WDT) v i ngu n dao đ ng trên chip ho t đ ng đáng
tin c y.
+ Có mã ch
ng trình b o v .
+ Công ngh CMOS FLASH / EEPROM ngu n m c th p, t c đ cao.
+ X lý đ c / ghi t i b nh ch
ng trình.
+ Dãy đi n áp ho t đ ng r ng: t 2V đ n 5.5V
+ Ngu n tiêu th : 25mA
+ Công su t tiêu th :
<0.6mA đ i v i ngu n 5V, th ch anh 4MHz.
20µA đ i v i ngu n 3V, 32KHz.
1µA đ i v i ngu n d phòng.
Các đ c tính n i b t c a các thi t b ngo i vi trên vi x lý PIC 16F877A
+ Timer 0: b đ nh th i 8 bit, có b chia h s t l tr
c (PRESCALER)
+ Timer 1: b đ nh th i 16 bit, có b chia h s t l tr
kh n ng t ng trong ch đ ng qua xung đ ng h đ
NGUY N KH C H I-20762051
c (PRESCALER), có
c c p bên ngoài.
Page 6
LU N V N T T NGHI P
GVHD:Th.S PHAN V N HI P
+ Timer 2: b đ nh th i 8 bit, có b chia h s t l tr
c (PRE_SCALER) và
b chia h s t l sau (POST_SCALER).
+ Có 2 ch đ b t gi xung (CAPTURE), so sánh (COMPARE) và đi u r ng
xung (PWM).
+ Ch đ b t gi v i 16 bit, t c đ t i đa 12.5 ns, ch đ so sánh 16 bit, t c đ
gi i quy t c c đ i là 200ns, ch đ đi u r ng xung 10 bit.
+ B chuy n đ i tín hi u t
ng t sang s (ADC) v i đ phân gi i 10 bit.
+ C ng truy n thông n i ti p SSP và I2C.
+ B thu phát đ ng b và b t đ ng b (USART/SCL) có kh n ng phát hi n 9
bit đ a ch .
+ C ng ph song song (PSP) v i 8 bit m r ng, v i RD, WR, CS đi u khi n.
1.1.2 S đ chân c a vi đi u ki n PIC 16F877A(hình 1.1)
Hình 1.1: s đ chân c a PIC 16F877a
•
Chân OSC1/CLK1(13): ngõ vào k t n i v i dao đ ng th ch anh ho c ngõ vào
nh n xung clock t bên ngoài.
•
Chân OSC2/CLK2(14): ngõ ra dao đ ng th ch anh ho c ngõ ra c p xung clock.
•
Chân
(1) có 2 ch c n ng
-
: ngõ vào reset tích c c
m c th p.
Vpp: ngõ vào nh n đi n áp l p trình khi l p trình cho PIC.
NGUY N KH C H I-20762051
Page 7
LU N V N T T NGHI P
•
•
GVHD:Th.S PHAN V N HI P
Chân RA0/AN0(2), RA1/AN1(3), RA2/AN2(3): có 2 ch c n ng
-
RA0,1,2: xu t/ nh p s .
-
AN 0,1,2: ngõ vào t
ng t c a kênh th 0,1,2.
Chân RA2/AN2/VREF-/CVREF+(4): xu t nh p s / ngõ vào t
ng t c a kênh
th 2/ nhõ vào đi n áp chu n th p c a b AD/ ngõ vào đi n áp ch n cao c a b
AD.
•
Chân RA3/AN3/VREF+(5): xu t nh p s / ngõ vào t
ng t kênh 3/ ngõ vào
đi n áp chu n (cao) c a b AD.
•
Chân RA4/TOCK1/C1OUT(6): xu t nh p s / ngõ vào xung clock bên ngoài
cho Timer 0/ ngõ ra b so sánh 1.
•
Chân RA5/AN4/
/ C2OUT(7): xu t nh p s / ngõ vào t
ng t kênh 4/ ngõ
vào ch n l a SPI ph / ngõ ra b so sánh 2.
•
Chân RB0/INT (33): xu t nh p s / ngõ vào tín hi u ng t ngoài.
•
Chân RB1(34), RB2(35): xu t nh p s .
•
Chân RB3/PGM(36): xu t nh p s / cho phép l p trình đi n áp th p ICSP.
•
Chân RB4(37), RB5(38): xu t nh p s .
•
Chân RB6/PGC(39): xu t nh p s / m ch g r i và xung clock l p trình ICSP.
•
Chân RB7/PGD(40): xu t nh p s / m ch g r i và d li u l p trình ICSP.
•
Chân RC0/T1OCO/T1CKI(15): xu t nh p s / ngõ vào b giao đ ng Timer1/
ngõ vào xung clock bên ngoài Timer 1.
•
Chân RC1/T1OSI/CCP2(16) : xu t nh p s / ngõ vào b dao đ ng Timer 1/ ngõ
vào Capture2, ngõ ra compare2, ngõ ra PWM2.
•
Chân RC2/CCP1(17): xu t nh p s / ngõ vào Capture1 ,ngõ ra compare1, ngõ ra
PWM1.
•
Chân RC3/SCK/SCL(18): xu t nh p s / ngõ vào xung clock n i ti p đ ng b ,
ngõ ra ch đ SPI./ ngõ vào xung clock n i ti p đ ng b , ngõ ra c a ch đ I2C.
•
Chân RC4/SDI/SDA(23): xu t nh p s / d li u vào SPI/ xu t nh p d li u I2C.
•
Chân RC5/SDO(24): xu t nh p s / d li u ra SPI.
•
Chân RC6/TX/CK(25): xu t nh p s / truy n b t đ ng b USART/ xung đ ng
b USART.
NGUY N KH C H I-20762051
Page 8
LU N V N T T NGHI P
GVHD:Th.S PHAN V N HI P
•
Chân RC7/RX/DT(26): xu t nh p s / nh n b t đ ng b USART.
•
Chân RD0-7/PSP0-7(19-30): xu t nh p s / d li u port song song.
•
Chân RE0/
t
•
•
ng t 5.
Chân RE1/
t
/AN6(9): xu t nh p s / đi u khi n ghi port song song/ ngõ vào
ng t kênh th 6.
Chân RE2/
song/ ngõ vào t
•
/AN5(8): xu t nh p s / đi u khi n port song song/ ngõ vào
/AN7(10): xu t nh p s / Chân ch n l a đi u khi n port song
ng t kênh th 7.
Chân VDD(11, 32) và VSS(12, 31): là các chân ngu n c a PIC.
NGUY N KH C H I-20762051
Page 9
LU N V N T T NGHI P
GVHD:Th.S PHAN V N HI P
1.1.3 S đ kh i c a b vi đi u khi n PIC 16F877A(hình 1.2)
Hình 1.2: s đ kh i vi x lý PIC 16F877a
G m các kh i:
-
Kh i ALU – Arithmetic Logic Unit.
-
Kh i b nh ch a ch
-
Kh i b nh ch a d li u EPROM – Data EPROM.
-
Kh i b nh file thanh ghi RAM – RAM file Register.
NGUY N KH C H I-20762051
ng trình – Flash Program Memory.
Page 10
LU N V N T T NGHI P
GVHD:Th.S PHAN V N HI P
-
Kh i gi i mã l nh và đi u khi n – Instruction Decode Control.
-
Kh i thanh ghi đ c bi t.
-
Kh i ngo i vi timer.
-
Kh i giao ti p n i ti p.
-
Kh i chuy n đ i tín hi u t
-
Kh i các port xu t nh p.
1.1.4 T
CH C B
ng t sang s - ADC.
NH
C u trúc b nh c a vi đi u khi n PIC16F877A bao g m b nh ch
memory) và b nh d li u (Data Memory).
1.1.4.1 B
NH
CH
ng trìn (Program
NG TRÌNH
B nh ch ng trình c a vi đi u khi n
PIC16F877A là b nh flash, dung l ng
b
nh 8K word (1 word = 14 bit) và đ c
phân thành nhi u trang (t page0 đ n page
3) .
Nh v y b nh ch ng trình có kh n ng
ch a đ c 8*1024 = 8192 l nh (vì m t
l nh
sau khi mã hóa s có dung l
(14bit).
ng 1 word
mã hóa đ c đ a ch c a 8K word
b nh ch ng trình, b đ m ch ng trình
có
dung l
ng 13 bit (PC<12:0>).
.
Hình 1.3: B nh ch
Khi vi đi u khi n đ
c reset, b đ m ch
vector). Khi có ng t x y ra, b đ m ch
ng trình PIC16F877A
ng trình s ch đ n đ a ch 0000h (Reset
ng trình s ch đ n đ a ch 0004h (Interrupt
vector).
B nh ch
ng trình không bao g m b nh stack và không đ
NGUY N KH C H I-20762051
c đ a ch hóa b i
Page 11
LU N V N T T NGHI P
b đ m ch
GVHD:Th.S PHAN V N HI P
ng trình.
1.1.4.2 B
NH
D
LI U
B nh d li u c a PIC là b nh EEPROM đ
PIC16F877A b nh d li u đ
c chia ra làm nhi u bank.
c chia ra làm 4 bank. M i bank có dung l
iv i
ng 128
byte, bao g m các thanh ghi có ch c n ng đ c bi t SFG (Special Function Register)
n m
các vùng đ a ch th p và các thanh ghi m c đích chung GPR (General Purpose
Register) n m
đ
vùng đ a ch còn l i trong bank. Các thanh ghi SFR th
c s d ng (ví d nh thanh ghi STATUS) s đ
cđ t
ng xuyên
t t cà các bank c a b nh
d li u giúp thu n ti n trong quá trình truy xu t và làm gi m b t l nh c a ch
ng
trình.
NGUY N KH C H I-20762051
Page 12
LU N V N T T NGHI P
GVHD:Th.S PHAN V N HI P
S đ c th c a b nh d li u PIC16F877A nh sau:
Hình 1.4: S đ b nh d li u PIC16F877A
NGUY N KH C H I-20762051
Page 13
LU N V N T T NGHI P
GVHD:Th.S PHAN V N HI P
THANH GHI CH C N NG
ây là các thanh ghi đ
khi n các kh i ch c n ng đ
C BI T SFR
c s d ng b i CPU ho c đ
c dùng đ thi t l p và đi u
c tích h p bên trong vi đi u khi n. Có th phân thanh ghi
SFR làm hai l ai: thanh ghi SFR liên quan đ n các ch c n ng bên trong (CPU) và
thanh ghi SRF dùng đ thi t l p và đi u khi n các kh i ch c n ng bên ngoài (ví d
nh ADC, PWM, …). Ph n này s đ c p đ n các thanh ghi liên quan đ n các ch c
n ng bên trong. Các thanh ghi dùng đ thi t l p và đi u khi n các kh i ch c n ng s
đ
c nh c đ n khi ta đ c p đ n các kh i ch c n ng đó.
Thanh ghi STATUS (03h, 83h, 103h, 183h):thanh ghi ch a k t qu th c hi n phép
toán c a kh i ALU, tr ng thái reset và các bit ch n bank c n truy xu t trong b nh d
li u.
Thanh ghi OPTION_REG (81h, 181h): thanh ghi này cho phép đ c và ghi, cho phép
đi u khi n ch c n ng pull-up c a các chân trong PORTB, xác l p các tham s v xung
tác đ ng, c nh tác đ ng c a ng t ngo i vi và b đ m Timer0.
Thanh ghi INTCON (0Bh, 8Bh,10Bh, 18Bh):thanh ghi cho phép đ c và ghi, ch a các
bit đi u khi n và các bit c hi u khi timer0 b tràn, ng t ngo i vi RB0/INT và ng t
interrput- on-change t i các chân c a PORTB.
Thanh ghi PIE1 (8Ch): ch a các bit đi u khi n chi ti t các ng t c a các kh i ch c
n ng ngo i vi.
NGUY N KH C H I-20762051
Page 14
LU N V N T T NGHI P
GVHD:Th.S PHAN V N HI P
Thanh ghi PIR1 (0Ch) ch a c ng t c a các kh i ch c n ng ngo i vi, các ng t này
đ
c cho phép b i các bit đi u khi n ch a trong thanh ghi PIE1.
Thanh ghi PIE2 (8Dh): ch a các bit đi u khi n các ng t c a các kh i ch c n ng
CCP2, SSP bus, ng t c a b so sánh và ng t ghi vào b nh EEPROM.
Thanh ghi PIR2 (0Dh): ch a các c ng t c a các kh i ch c n ng ngo i vi, các ng t
này đ
c cho phép b i các bit đi u khi n ch a trong thanh ghi PIE2.
Thanh ghi PCON (8Eh): ch a các c hi u cho bi t tr ng thái các ch đ reset c a vi
đi u khi n.
THANH GHI M C ÍCH CHUNG GPR
Các thanh ghi này có th đ
FSG (File Select Register).
c truy xu t tr c ti p ho c gián ti p thông qua thanh ghi
ây là các thanh ghi d li u thông th
có th tùy theo m c đích ch
i s d ng
ng trình mà có th dùng các thanh ghi này đ ch a các
bi n s , h ng s , k t qu ho c các tham s ph c v cho ch
NGUY N KH C H I-20762051
ng, ng
ng trình.
Page 15
LU N V N T T NGHI P
GVHD:Th.S PHAN V N HI P
1.1.4.3 STACK
Stack không n m trong b nh ch
ng trình hay b nh d li u mà là m t vùng
nh đ c bi t không cho phép đ c hay ghi. Khi l nh CALL đ
ng t x y ra làm ch
đ
c th c hi n hay khi m t
ng trình b r nhánh, giá tr c a b đ m ch
ng trình PC t đ ng
c vi đi u khi n c t vào trong stack. Khi m t trong các l nh RETURN, RETLW hat
RETFIE đ
c th c thi, giá tr PC s t đ ng đ
s th c hi n ti p ch
c l y ra t trong stack, vi đi u khi n
ng trình theo đúng qui trình đ nh tr
c.
B nh Stack trong vi đi u khi n PIC h 16F87xA có kh n ng ch a đ
c8đa
ch và ho t đ ng theo c ch xoay vòng. Ngh a là giá tr c t vào b nh Stack l n th 9
s ghi đè lên giá tr c t vào Stack l n đ u tiên và giá tr c t vào b nh Stack l n th 10
s ghi đè lên giá tr 6 c t vào Stack l n th 2.
C n chú ý là không có c hi u nào cho bi t tr ng thái stack, do đó ta không bi t
đ
c khi nào stack tràn. Bên c nh đó t p l nh c a vi đi u khi n dòng PIC c ng không
có l nh POP hay PUSH, các thao tác v i b nh stack s hoàn toàn đ
c đi u khi n
b i CPU.
1.1.5 CÁC C NG XU T NH P C A PIC16F877A
ng ti n mà vi đi u khi n dùng đ t
ng tác
ng tác này r t đa d ng và thông qua quá trình t
ng tác
C ng xu t nh p (I/O port) chính là ph
v i th gi i bên ngoài. S t
đó, ch c n ng c a vi đi u khi n đ
c th hi n m t cách rõ ràng.
M t c ng xu t nh p c a vi đi u khi n bao g m nhi u chân (I/O pin), tùy theo cách
b trí và ch c n ng c a vi đi u khi n mà s l
ng c ng xu t nh p và s l
trong m i c ng có th khác nhau. Bên c nh đó, do vi đi u khi n đ
ng chân
c tích h p s n bên
trong các đ c tính giao ti p ngo i vi nên bên c nh ch c n ng là c ng xu t nh p thông
th
ng, m t s chân xu t nh p còn có thêm các ch c n ng khác đ th hi n s tác
đ ng c a các đ c tính ngo i vi nêu trên đ i v i th gi i bên ngoài. Ch c n ng c a t ng
chân xu t nh p trong m i c ng hoàn toàn có th đ
c xác l p và đi u khi n đ
c
thông qua các thanh ghi SFR liên quan đ n chân xu t nh p đó.
Vi đi u khi n PIC16F877A có 5 c ng xu t nh p, bao g m PORTA, PORTB,
PORTC, PORTD và PORTE. C u trúc và ch c n ng c a t ng c ng xu t nh p s đ
NGUY N KH C H I-20762051
c
Page 16
LU N V N T T NGHI P
GVHD:Th.S PHAN V N HI P
đ c p c th trong ph n sau.
1.1.5.1 PORTA
PORTA (RPA) bao g m 6 I/O pin. ây là các chân “hai chi u” (bidirectional pin),
ngh a là có th xu t và nh p đ
c. Ch c n ng I/O này đ
c đi u khi n b i thanh ghi
TRISA (đ a ch 85h). Mu n xác l p ch c n ng c a m t chân trong PORTA là input, ta
“set” bit đi u khi n t
ng ng v i chân đó trong thanh ghi TRISA và ng
c l i, mu n
xác l p ch c n ng c a m t chân trong PORTA là output, ta “clear” bit đi u khi n
t
ng ng v i chân đó trong thanh ghi TRISA. Thao tác này hoàn toàn t
v i các PORT và các thanh ghi đi u khi n t
ng
ng t đ i
ng TRIS (đ i v i PORTA là
TRISA, đ i v i PORTB là TRISB, đ i v i PORTC là TRISC, đ i v i PORTD là
TRISD vàđ i v i PORTE là TRISE).
Bên c nh đó PORTA còn là ngõ ra c a b ADC, b so sánh, ngõ vào analog ngõ
vào xung clock c a Timer0 và ngõ vào c a b giao ti p MSSP (Master Synchronous
Serial Port).
c tính này s đ
c trình bày c th trong ph n sau.
Các thanh ghi SFR liên quan đ n PORTA bao g m:
-
PORTA (đ a ch 05h)
: ch a giá tr các pin trong PORTA.
-
TRISA (đ a ch 85h)
: ch a giá tr các pin trong PORTA.
-
CMCON (đ a ch 9Ch) : thanh ghi đi u khi n b so sánh.
-
CVRCON (đ a ch 9Dh) : thanh ghi đi u khi n b so sánh đi n áp.
-
ADCON1 (ñòa chæ 9Fh) : thanh ghi ñieàu khieån boä ADC.
1.1.5.2 PORTB
PORTB (RPB) g m 8 pin I/O. Thanh ghi đi u khi n xu t nh p t
TRISB. Bên c nh đó m t s chân c a PORTB còn đ
ch
ng là
c s d ng trong quá trình n p
ng trình cho vi đi u khi n v i các ch đ n p khác nhau. PORTB còn liên quan
đ n ng t ngo i vi và b Timer0. PORTB còn đ
đ
ng
c đi u khi n b i ch
c tích h p ch c n ng đi n tr kéo lên
ng trình.
Các thanh ghi SFR liên quan đ n PORTB bao g m:
-
PORTB (đ a ch 06h,106h)
: ch a giá tr các pin trong PORTB
-
TRISB (đ a ch 86h,186h)
: đi u khi n xu t nh p
-
OPTION_REG (đ a ch 81h,181h) : đi u khi n ng t ngo i vi và b Timer0.
NGUY N KH C H I-20762051
Page 17
LU N V N T T NGHI P
GVHD:Th.S PHAN V N HI P
1.1.5.3 PORTC
PORTC (RPC) g m 8 pin I/O. Thanh ghi đi u khi n xu t nh p t
ng
ng là
TRISC. Bên c nh đó PORTC còn ch a các chân ch c n ng c a b so sánh, b Timer1,
b PWM và các chu n giao ti p n i ti p I2C, SPI, SSP, USART.
Các thanh ghi đi u khi n liên quan đ n PORTC:
-
PORTC (đ a ch 07h) : ch a giá tr các pin trong PORTC
-
TRISC (đ a ch 87h) : đi u khi n xu t nh p.
1.1.5.4 PORTD
PORTD (RPD) g m 8 chân I/O, thanh ghi đi u khi n xu t nh p t
ng
ng là
TRISD. PORTD còn là c ng xu t d li u c a chu n giao ti p PSP (Parallel Slave
Port).
Các thanh ghi liên quan đ n PORTD bao g m:
-
Thanh ghi PORTD : ch a giá tr các pin trong PORTD.
-
Thanh ghi TRISD : đi u khi n xu t nh p.
1.1.5.5 PORTE
PORTE (RPE) g m 3 chân I/O. Thanh ghi đi u khi n xu t nh p t
ng ng là
TRISE. Các chân c a PORTE có ngõ vào analog. Bên c nh đó PORTE còn là các
chân đi u khi n c a chu n giao ti p PSP.
Các thanh ghi liên quan đ n PORTE bao g m:
-
PORTE
: ch a giá tr các chân trong PORTE.
-
TRISE
: đi u khi n xu t nh p và xác l p các thông s cho chu n giao
ti p PSP.
-
ADCON1 : thanh ghi đi u khi n kh i ADC.
NGUY N KH C H I-20762051
Page 18
LU N V N T T NGHI P
1.1.6 CÁC B
GVHD:Th.S PHAN V N HI P
TIMER C A CHIP:
1.1.6.1 B Timer 0:
Là b đ nh th i ho c b đ m có nh ng u đi m n i b t sau:
+ 8 bit cho timer ho c b đ m
+ Có kh n ng đ c và vi t
+ Có th dùng đ ng h bên trong ho c bên ngoài
+ Có th ch n c nh xung c a xung đ ng h
+ Có h s chia cho xung đ u vào có th l p trình l i b ng ph n m m
+ Ng t tràn
* Ho t đ ng c a Timer 0:
Timer 0 có th ho t đ ng nh m t b đ nh th i ho c m t b đ m. Vi c ch n
b đ nh th i ho c b đ m có th đ
c xác l p b ng vi c xoá ho c đ t bit TOCS
c a thanh ghi OPTION_REG<5>.
N u dùng h
s
chia xung đ u vào thì xoá bit PSA c a thanh ghi
OPTION_REG<3>.
Trong ch đ b đ nh th i đ
REG<5>), nó s đ
c l a ch n b i vi c xoá bit T0CS (OPTION
c t ng giá tr sau m t chu k l nh n u không ch n h s
chia xung đ u vào. Và giá tr c a nó đ
Ch đ đ m đ
c l a ch n b i vi c set bit T0CS (OPTION REG<5>).
Trong ch đ b đ m, nó s đ
(OPTION_REG<4>) ho c
đ
c vi t t i thanh ghi TMR0.
c t ng
xung đi xu ng n u xoá bit T0SE
xung đi lên n u set bit T0SE. Và giá tr c a nó
c vi t t i thanh ghi TMR0.
Khi dùng xung clock bên ngoài cho b đ nh th i Timer0 và không dùng h
s chia clock đ u vào Timer0 thì ph i đáp ng các đi u ki n c n thi t đ có th
ho t đ ng đó là ph i b o đ m xung clock bên ngoài có th đ ng b v i pha
xung clock bên trong (TOSC).
NGUY N KH C H I-20762051
Page 19
LU N V N T T NGHI P
GVHD:Th.S PHAN V N HI P
S đ kh i c a Timer0 và WDT, đ
c trình bày
hình sau:
Hình 1.5: S đ kh i c a Timer0
* 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 bit 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 đ
này ph i đ
c đ t. Bít
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
không đánh th c b x lý
ch đ SLEEP ng t Timer 0
ch đ SLEEP.
* Thanh ghi OPTION_REG
bit 5: TOCS l a ch n ngu n clock
0/1 : Clock trong Focs:4 / Clock ngoài t chân T0CKI
bit 4: T0SE bit l a ch n s
NGUY N KH C H I-20762051
n xung clock
Page 20
LU N V N T T NGHI P
GVHD:Th.S PHAN V N HI P
0/1 : Timer 0 t ng khi chân T0CKI t th p lên cao / cao xu ng th p.
bit 3: PSA bit gán b chia xung đ u vào
0/1: gán b chia Prescaler cho Timer 0 / gán b chia Prescaler cho WDT
bit 2:0
PS2:PS1 l a ch n h s chia xung vào theo b ng 1.1
B ng 1.1
PS2:PS0
Timer0
WDT
000
1:2
1:1
001
1:4
1:2
010
1:8
1:4
011
1:16
1:8
100
1:32
1:16
101
1:64
1:32
110
1:128
1:64
111
1:256
1:128
1.1.6.2 B Timer 1:
B Timer1 có th là b đ m ho c b đ nh th i v i u đi m sau:
+16 bít cho b đ m ho c b đ nh th i (g m hai thanh ghi TMR1H:TMR1L).
+Có kh n ng đ c và vi t
+Có th ch n xung đ ng h bên trong ho c đ ng h bên ngoài
+Có th ng t khi tràn FFFFh v 0000h
Timer1 có 1 thanh ghi đi u khi n, đó là thanh ghi T1C0N. B Timer1 có
ho t đ ng hay không ho t đ ng là nh
vi c đ t ho c xoá bít
TMR1ON(T1CON<0>).
* Ho t đ ng c a b Timer1
Nó có th ho t đ ng
m t trong các ch đ sau:
+ Là 1 b đ nh th i 16 bit.
+ Là m t b đ m có đ ng b .
+ Là m t b đ m không có đ ng b .
Ph
ng th c ho t đ ng c a b này đ
vào Timer 1. Ngu n xung đ ng h
TMR1CS (T1CON<1>).
NGUY N KH C H I-20762051
đ
c xác đ nh b i vi c ch n ngu n xung
c ch n b i vi c đ t ho c xoá bit
ch đ b đ nh th i, đ u vào là clock trong Fosc/4,
Page 21
LU N V N T T NGHI P
GVHD:Th.S PHAN V N HI P
bit đ ng b T1SYNC(T1CON<2>) không có tác d ng vì clock trong luôn đ ng
b .
Ch đ
đ m ho t đ ng hai ch đ : Có đ ng b
b
xung vào xoá bit
T1SYNC(T1CON<2>), không đ ng b xung vào set bit T1SYNC(T1CON<2>)
Timer 1 t ng
Khi b
s
n lên xung đ u vào.
dao đ ng Timer1 cho phép ho t đ ng thì các chân
RC1/T1OSI/CCP2,
RC0/T1OSO/T1CKI tr thành chân vào.
ch đ đ m có đ ng b b đ m t ng m i khi s
n lên
chân RC0 ho c
chân RC1 n u bit T1OSCEN xoá và xung vào ph i đ ng b v i clock trong,
ch đ này b đ m không t ng trong trang thái SLEEP.
ch đ đ m không đ ng b Timer 1 t ng m i khi s
ho c
chân RC1 n u bit T1OSCEN xóa,
n lên
chân RC0
ch đ này b đ m ti p t c t ng
trong tr ng thái SLEEP và có kh n ng tràn gây ra ng t khi đó b s lý đ
c
đánh th c.
* Dao đ ng c a Timer1
M ch dao đ ng th ch anh đ
Khi dao đ ng đ
c cung c p
s là 200kHz và trong nó
c xây d ng gi a 2 chân T1OSI và T1OS0.
ch đ công su t th p thì t n s c c đ t c a nó
ch đ SLEEP nó cung c p
t n s 32kHz
* Ng t c a b Timer1
C p thanh ghi TMR1H và TMR1L t ng t giá tr 0000h đ n giá tr FFFFh
đ n giá tr này ti p t c t ng thì tràn và quay l i giá tr 0000h. Và ng t xu t hi n
khi tràn quá giá tr FFFFh khi này c ng t TMR1IF s đ
c đ t. Ng t có th
ho t đ ng ho c không ho t đ ng nh vi c đ t ho c xoá bít TMR1IE .
NGUY N KH C H I-20762051
Page 22
LU N V N T T NGHI P
GVHD:Th.S PHAN V N HI P
Hình 1.6: S đ kh i c a Timer 1
* Thanh ghi đi u khi n Timer1 T1CON, hình sau trình bày các bit trong
thanh ghi Timer 1:
bit 7,6
: không s d ng
bit 5,4: T1CKPS1:T1CKPS0 l a ch n h s chia xung vào, xem chi ti t
b ng:
B ng 1.2
T1CKPS1:T1CKPS0
T l chia
00
1:1
01
1:2
10
1:4
11
1:8
bit 3 T1OSCEN bit đi u khi n b dao đ ng Timer1
0/1: B dao đ ng không ho t đ ng / ho t đ ng
bit 2 bit đi u khi n xung clock ngoài đ ng b khi TMR1CS=1
0/1: có đ ng clock ngoài / không đ ng b .
khi TMR1CS = 0 thì bit này không có tác d ng
bit 1 TMR1CS bit l a ch n ngu n xung clock vào
NGUY N KH C H I-20762051
Page 23
LU N V N T T NGHI P
GVHD:Th.S PHAN V N HI P
0/1: clock trong Fosc:4 / clock t chân RC0/T1OSO/T1CKI(s
n
lên)
Bit 0 bit b t t t Timer
0/1 = Timer 1 Disable/ enable
1.1.6.3 B Timer 2:
B Timer2 có nh ng đ c tính sau đây ;
+ 8 bít cho b đ nh th i ( thanh ghi TMR2 )
+ 8 bít vòng l p ( thanh ghi PR2 )
+ Có kh n ng đ c và vi t
c hai thanh ghi nói trên
+ Có kh n ng l p trình b ng ph n m m t l tr
c
+ Có kh n ng l p trình b ng ph n m m t l sau
Ch đ SSP dùng đ u ra c a TMR2 đ t o xung clock. Timer2 có m t thanh
ghi đi u khi n đó là thanh ghi T2CON. Timer 2 có th t t b ng vi c xoá bit
TMR2CON c a thanh ghi T2CON
* Ho t đ ng c a b Timer2
Timer 2 đ
c dùng ch y u
ph n đi u ch xung c a b CCP, thanh ghi
TMR2 có kh n ng đ c và vi t, nó có th xóa b ng vi c reset l i thi t b .
u
vào c a xung có th ch n các t sau ; 1:1 , 1:2 ho c 1:16 vi c ch n các t này
có th đi u khi n các bít sau T2CKPS1và bít T2CKPS0
* Ng t c a b Timer2
B Timer2 có 1 thanh ghi 8 bít PR2 . Timer 2 t ng t giá tr 00h cho đ n
kh p v i PR2 và ti p theo nó s reset l i giá tr 00h và l nh k ti p th c hi n.
Thanh ghi PR2 là m t thanh ghi có kh n ng đ c và kh n ng vi t. Thanh ghi
PR2 b t đ u t giá tr FFh đ u ra c a TMR2 là đ
thông đ ng b , nó đ
ng d n c a c ng truy n
c dùng đ phát các xung đ ng h .
NGUY N KH C H I-20762051
Page 24