Tải bản đầy đủ (.pdf) (87 trang)

Đo nhiệt độ và điều khiển thiết bị giao tiếp máy tính

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.73 MB, 87 trang )

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

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


×