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

Điều khiển động cơ bước 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.99 MB, 88 trang )

TR

NG

I H C M THÀNH PH H CHÍ MINH
---------------- v w --------------KHOA XÂY D NG VÀ I N

K S

ÁN T T NGHI P
NGÀNH CÔNG NGHI P

I U KHI N
NG C B
GIAO TI P MÁY TÍNH

SVTH
MSSV
GVHD

:
:
:

C

HU NH TRÍ N NG
20702021
Th.S PHAN V N HI P

TP. H Chí Minh, tháng 02 n m 2012




L IM

U

Ngày nay, k thu t vi đi u khi n đã tr nên quen thu c trong các ngành k thu t và
trong dân d ng. T các dây chuy n s n xu t l n đ n các thi t b gia d ng, chúng ta
đ u th y s hi n di n c a vi đi u khi n. Các b vi đi u khi n có kh n ng x lý
nhi u ho t đ ng ph c t p mà ch c n 1 chip vi m ch nh , nó đã thay th các t đi u
khi n l n và ph c t p b ng nh ng m ch đi n g n nh , d thao tác s d ng.
tìm hi u b vi đi u khi n m t cách khoa h c và mang l i hi u qu cao là n n
t ng cho vi c xâm nh p vào nh ng h th ng t i tân h n. Vi c trang b nh ng ki n
th c v vi đi u khi n cho sinh viên là h t s c c n thi t. Xu t phát t th c ti n này
em đã đi đ n quy t đ nh “ i u khi n đ ng c b c – giao ti p máy tính” nh m đáp
ng nhu c u h c h i c a b n thân.
Do th i gian nghiên c u và th c hi n đ tài ch gi i h n, v n ki n th c và vi c tìm
hi u sâu v m t h vi đi u khi n còn h n ch nên đ án này ch th c hi n trong
ph m vi sau: kh o sát vi đi u khi n PIC bao g m: c u trúc ph n c ng, các ng
d ng, l p trình thi t k và thi công m ch ng d ng PIC đ đi u khi n đ ng c b c.
D a trên c s c a các đ tài vi x lý và vi đi u khi n, hi n th và gi i mã… nh m
thi t k m t h th ng vi đi u khi n góp ph n làm phong phú thêm cho vi c hi u bi t
v l nh v c này đ ng th i có th m r ng và đ nh h ng cho nh ng đ tài sau.


L IC M

N

Trong th i gian th c hi n đ tài em đã h c h i đ c nhi u đi u b ích t

th y h ng d n, th y cô Khoa Xây D ng – i n, b môn i n – i n t và các b n
sinh viên cùng khóa đã đóng góp nh ng ý ki n quý báu đ em hoàn thành đ án t t
nghi p đúng th i gian.
Em xin bày t lòng bi t n đ n Th y Phan V n Hi p trên c ng v là ng i
h ng d n đ tài đã t n tình h ng d n và t o đi u ki n thu n l i cho em hoàn
thành t t đ tài.
Em c ng xin chân thành c m n quí th y, cô trong Khoa cùng các b n đã
đóng góp ý ki n và kinh nghi m quý báu trong quá trình th c hi n đ tài này.
Sinh vi n th c hi n
Hu nh Trí N ng


M CL C
L im đ u
L ic m n
M cl c
CH
NG 1 : T NG QUAN V VI I U KHI N PIC......................................................... 1
1.1 GI I THI U S L
C V VI I U KHI N PIC............................................................... 1
1.2 C U TRÚC C A VI I U KHI N PIC ............................................................................... 1
1.3 RISC VÀ CISC ....................................................................................................................... 2
1.4 M T VÀI
C TÍNH C A VI I U KHI N PIC .............................................................. 2
1.5 CÁC DÒNG PIC VÀ CÁCH L A CH N VI I U KHI N PIC ........................................ 2
1.6 NGÔN NG L P TRÌNH CHO PIC ..................................................................................... 3
1.7 M CH N P PIC..................................................................................................................... 3
CH
NG 2 : VI I U KHI N PIC16F877A ......................................................................... 5
2.1 S

CHÂN VI I U KHI N PIC16F877A ..................................................................... 5
2.2 M T VÀI THÔNG S V VI I U KHI N PIC16F877A ................................................. 6
2.3 S
KH I VI I U KHI N PIC16F877A....................................................................... 7
2.4 T CH C B NH ............................................................................................................... 8
2.4.1 B NH CH NG TRÌNH ............................................................................................... 8
2.4.2 B NH STACK ................................................................................................................ 8
2.4.3 B NH D LI U.............................................................................................................. 9
2.5 CH C N NG CÁC CHÂN C A PIC16F877A VÀ CÁC C NG XU T NH P.............. 11
2.5.1 CH C N NG CÁC CHÂN C A PIC16F877A............................................................... 11
2.5.2 CÁC C NG XU T NH P C A PIC16F877A................................................................ 12
2.6 M T S
C TÍNH KHÁC C A PIC16F877A................................................................ 14
2.6.1 CONFIGURATION BIT.................................................................................................... 14
2.6.2 CÁC
C TÍNH C A OSCILLATOR ............................................................................ 14
2.6.3 CÁC CH
RESET....................................................................................................... 15
2.6.4 WATCHDOG TIMER ....................................................................................................... 16
2.6.5 CH
SLEEP ................................................................................................................ 16
CH
NG 3: CÁC KH I CH C N NG C A V K PIC16F877A .................................... 18
3.1 CÁC B TIMER C A VI I U KHI N ............................................................................ 18
3.1.1 TIMER 0 ............................................................................................................................ 18
3.1.2 TIMER1 ............................................................................................................................. 18
3.1.3 TIMER2 ............................................................................................................................. 19
3.2 ADC ...................................................................................................................................... 20
3.3 COMPARATOR ................................................................................................................... 22
3.3.1 C CH HO T

NG C A B COMPARATOR ........................................................ 22
3.3.2 CÁC THANH GHI LIÊN QUAN
N COMPARATOR ................................................ 22
3.4 CCP ....................................................................................................................................... 23
3.4.1 CÁC THANH GHI C A KH I CCP................................................................................ 23
3.4.2 CAPTURE.......................................................................................................................... 23
3.4.3 COMPARE ........................................................................................................................ 24
3.4.4 CH C N NG PWM ......................................................................................................... 25
3.5 NG T.................................................................................................................................... 26
3.5.1
C I M NG T C A V K PIC16F877A................................................................... 27
3.5.2 M T S NG T QUAN TR NG C A V K .................................................................. 27
3.5.3 CÁC THANH GHI
C S D NG
PH C V NG T ........................................ 28
CH
NG 4: CÁC CHU N GIAO TI P C A VI I U KHI N PIC............................... 29
4.1 USART.................................................................................................................................. 29
4.1.1 CÁC THANH GHI
C S D NG TRONG GIAO TI P USART ............................ 29
4.1.2 C CH HO T
NG C A GIAO TI P USART......................................................... 30
4.1.3 CÁC CH
GIAO TI P USART ................................................................................. 31
4.2 CHU N GIAO TI P MSSP ................................................................................................. 32
4.2.1 CÁC THANH GHI I U KHI N GIAO TI P MSSP ..................................................... 32


4.2.2 GIAO TI P SPI.................................................................................................................. 32
4.3 C NG GIAO TI P SONG SONG ....................................................................................... 33

CH
NG 5: T P L NH C A VI I U KHI N PIC......................................................... 35
5.1 VÀI NÉT S L
C V T P L NH C A V K PIC ........................................................ 35
5.2 T P L NH C A VI I U KHI N PIC.............................................................................. 35
CH
NG 6 : CÁC THI T B - LINH KI N LIÊN QUAN KHÁC.................................... 42
6.1
NG C B C ................................................................................................................ 42
6.1.1 GI I THI U V
NG C B C................................................................................. 42
6.1.2 M T S KHÁI NI M KHÁC V
NG C B C..................................................... 44
6.2
NG C DC ...................................................................................................................... 45
6.3 MÀN HÌNH LCD ................................................................................................................. 46
6.3.1 GI I THI U ...................................................................................................................... 46
6.3.2 HÌNH DÁNG VÀ KÍCH TH
C..................................................................................... 46
6.3.3 CH C N NG CÁC CHÂN .............................................................................................. 47
6.3.4 S
KH I C A HD44780........................................................................................... 47
6.3.5 T P L NH C A LCD ...................................................................................................... 51
6.3.6 ÁNH A CH CHO LCD.............................................................................................. 54
6.3.7 GIAO TI P GI A LCD VÀ MPU.................................................................................... 54
6.3.8 KH I T O LCD................................................................................................................ 55
6.3.9 M CH KH I T O BÊN TRONG CHIP HD44780 ......................................................... 55
6.4 TRANSISTOR H1061 VÀ 2N3055...................................................................................... 56
6.5 IC GIAO TI P MAX232 ...................................................................................................... 56
6.6 IC C M BI N NHI T

LM35........................................................................................ 56
6.7 OPTP 4N35 ........................................................................................................................... 57
CH
NG 7 : THI T K - THI CÔNG M CH.................................................................... 58
7.1 GI I THI U T NG QUÁT ................................................................................................. 58
7.1.1 S
KH I ..................................................................................................................... 58
7.1.2 CH C N NG C A CÁC KH I ...................................................................................... 58
7.2 CÁC S
M CH I N .................................................................................................. 58
7.3 H
NG D N S D NG M CH....................................................................................... 61
7.4 THI CÔNG M CH............................................................................................................... 62
7.4.1 HÌNH M CH SAU KHI HOÀN CH NH.......................................................................... 62
7.4.2 S
M CH IN.............................................................................................................. 63
CH
NG 8 : L P TRÌNH CHO PIC16F877A..................................................................... 64
8.1 L U
GI I THU T C A CH
NG TRÌNH............................................................... 64
8.2 MÃ NGU N C A CH
NG TRÌNH TRONG PIC16F877A ........................................... 65
CH
NG 9 : L P TRÌNH I U KHI N TRÊN PC .......................................................... 76
9.1 C B N V GIAO TI P RS232 ......................................................................................... 76
9.2 VI T CH
NG TRÌNH I U KHI N TRÊN PC ............................................................. 76
9.2.1 GI I THI U VISUAL BASIC .......................................................................................... 76
9.2.2 M T S THU C TÍNH C B N C A MSCOMM....................................................... 77

9.2.3 MÃ NGU N C A CH NG TRÌNH TRÊN PC............................................................ 78
9.2.4 GIAO DI N CH
NG TRÌNH TRÊN PC....................................................................... 81
K T LU N
TÀI LI U THAM KH O


ÁN T T NGHI P

CH

GVHD: Th.S PHAN V N HI P

NG 1 : T NG QUAN V VI I U KHI N PIC

1.1 GI I THI U S

L

C V VI I U KHI N PIC

PIC b t ngu n là ch vi t t t c a “Programmable Intelligent Computer” (Máy
tính kh trình thông minh) là m t s n ph m c a hãng General Instruments đ t cho
dòng s n ph m đ u tiên c a h là PIC1650. Lúc này, PIC1650 đ c dùng đ giao
ti p v i các thi t b ngo i vi cho máy ch 16bit CP1600. N m 1985 General
Instruments bán b ph n vi đi n t c a h , và ch s h u m i là công ty Microchip
Technology. Sau này PIC đ c b sung EEPROM đ t o thành m t b đi u khi n
vào ra kh trình. Ngày nay r t nhi u dòng PIC đ c xu t x ng v i hàng lo t các
module ngo i vi tích h p s n (nh USART, PWM, ADC,…), v i b nh ch ng
trình t 512 Word đ n 32K Word.

1.2 C U TRÚC C A VI I U KHI N PIC
Khác v i h vi đi u khi n MSC-51 có ki n trúc ph n c ng Von-Neuman, ki n
trúc ph n c ng c a vi đi u khi n PIC đ c thi t k theo d ng Havard. S khác nhau
gi a hai lo i ki n trúc ph n c ng đ c mô t nh hình sau:

Hình 1.1: Ki n trúc Havard và ki n trúc Von-Neuman.
D a vào Hình 1.1 ta th y đi m khác bi t gi a ki n trúc Havard và ki n trúc
Von-Neuman là c u trúc b nh d li u và b nh ch ng trình.
i v i ki n trúc
Von-Neuman, b nh d li u và b nh ch ng trình n m chung trong m t b nh ,
do đó ta có th t ch c, cân đ i m t cách linh ho t b nh ch ng trình và b nh
d li u. Tuy nhiên đi u này ch có ý ngh a khi t c đ x lý c a CPU ph i r t cao, vì
v i c u trúc đó, trong cùng m t th i đi m CPU ch có th t ng tác v i b nh d
ki u ho c b nh ch ng trình. i v i ki n trúc Havard, b nh d li u và b nh
ch ng trình tách ra thành hai b nh riêng bi t. Do đó trong cùng m t th i đi m
CPU có th t ng tác v i c hai b nh , nh v y t c đ x lý c a vi đi u khi n
đ c c i thi n đáng k . M t chú ý n a là t p l nh trong ki n trúc Havard có th
đ c t i u tùy theo yêu c u ki n trúc c a vi đi u khi n mà không ph thu c vào
c u trúc d li u. Ví d , đ i v i vi đi u khi n dòng 16F, đ dài l nh luôn là 14 bit
(trong khi d li u đ c t ch c thành t ng byte), còn đ i v i ki n trúc VonNeuman, đ dài l nh luôn là b i s c a 1 byte (do d li u đ c t ch c thanh t ng
byte).

SVTH: HU NH TRÍ N NG

MSSV: 20702021

Trang 1


ÁN T T NGHI P


GVHD: Th.S PHAN V N HI P

1.3 RISC VÀ CISC
Do vi đi u khi n PIC có ki n trúc Havard nên CPU có th cùng m t lúc truy
xu t c b nh ch ng trình và b nh d li u, giúp t ng t c đ x lý c a vi đi u
khi n. Và đ ti p t c c i ti n t c đ th c thi l nh, t p l nh c a h vi đi u khi n PIC
đ c thi t k sao cho chi u dài mã l nh luôn c đ nh (ví d đ i v i h 16Fxxxx
chi u dài mã l nh luôn là 14 bit) và cho phép th c thi l nh trong m t chu k l nh
(m t chu k l nh b ng 4 chu k c a xung clock), ngo i tr m t s tr ng h p đ c
bi t nh l nh nh y, l nh g i ch ng trình con … c n hai chu k l nh. i u này có
ngh a t p l nh c a vi đi u khi n thu c c u trúc Havard s ít l nh h n, ng n h n, đ n
gi n h n đ đáp ng yêu c u mã hóa l nh b ng m t s l ng bit nh t đ nh. Vi đi u
khi n đ c t ch c theo ki n trúc Havard còn đ c g i là vi đi u khi n RISC
(Reduced Instruction Set Computer) hay vi đi u khi n có t p l nh rút g n. Vi đi u
khi n đ c thi t k theo ki n trúc Von-Neuman còn đ c g i là vi đi u khi n CISC
(Complex Instruction Set Computer) hay vi đi u khi n có t p l nh ph c t p vì mã
l nh c a nó không ph i là m t s c đ nh mà luôn là b i s c a 8 bit (1 byte).
1.4 M T VÀI

C TÍNH C A VI I U KHI N PIC

Hi n nay có khá nhi u dòng PIC và có r t nhi u khác bi t v ph n c ng nh ng
chúng ta co th đi m qua m t vài nét nh sau:
- CPU 8/16 bit, xây d ng theo ki n trúc Havard có s a đ i.
- Flash và ROM có th tùy ch n t 256 byte đ n 256Kbyte.
- Các c ng xu t/nh p (I/O ports).
- Timer 8/16 bit.
- Các chu n giao ti p (n i ti p ho c xong xong, đ ng b ho c b t đ ng b ).
- B chuy n đ i ADC (Analog to Digital Converters) 10/12 bit.

- B so sánh đi n áp (Voltage Comparators).
- Các module Capture/Compare/PWM.
- Module đi u khi n đ ng c , đ c Encoder.
- H tr giao ti p USB.
- H tr đi u khi n Ethernet.
1.5 CÁC DÒNG PIC VÀ CÁCH L A CH N VI I U KHI N PIC
Các kí hi u c a vi đi u khi n PIC:
+ PIC12xxxx: đ dài l nh 12 bit.
+ PIC16xxxx: đ dài l nh 14 bit.
+ PIC18xxxx: đ dài l nh 16 bit.
- C: PIC có b nh EPROM (ch có 16C84 là EEPROM).
- F:

PIC có b nh flash.

- LF: PIC có b nh flash ho t đ ng
- LV: t

đi n áp th p.

ng t nh LF, đây là kí hi u c .

Bên c nh đó m t s vi đi u khi n có kí hi u xxFxxx là EEPROM, n u có thêm
ch A cu i là flash (ví d PIC16F877 là EEPROM, còn PIC16F877A là
flash).Ngoài ra còn có thêm m t dòng vi đi u khi n PIC m i là dsPIC.
SVTH: HU NH TRÍ N NG

MSSV: 20702021

Trang 2



ÁN T T NGHI P

GVHD: Th.S PHAN V N HI P

Vi t Nam ph bi n nh t là các h vi đi u khi n PIC do hãng Microchip s n
xu t.
Cách l a ch n m t vi đi u khi n PIC phù h p:
-

-

-

Tr c h t c n chú ý đ n s chân c a vi đi u khi n c n thi t cho ng d ng.
Có nhi u vi đi u khi n PIC v i s l ng chân khác nhau, th m chí có vi
đi u khi n ch có 8 chân, ngoài ra còn có các vi đi u khi n 28, 40, 44, …
chân.
C n ch n vi đi u khi n PIC có b nh flash đ có th n p xóa ch ng trình
đ c nhi u l n h n. Ti p theo c n chú ý đ n các kh i ch c n ng đ c tích
h p s n trong vi đi u khi n, các chu n giao ti p bên trong.
Sau cùng c n chú ý đ n b nh ch ng trình mà vi đi u khi n cho phép.
Ngoài ra m i thông tin v cách l a ch n vi đi u khi n PIC có th đ c tìm
th y trong cu n sách “Select PIC guide” do nhà s n xu t Microchip cung c p
đ tìm ra cách l a ch n vi đi u khi n PIC phù h p v i m c đích s d ng.

1.6 NGÔN NG

L P TRÌNH CHO PIC


Ngôn ng l p trình cho PIC r t đa d ng. Ngôn ng l p trình c p th p có
MPLAB (đ c cung c p mi n phí b i nhà s n xu t Microchip), các ngôn ng l p
trình c p cao h n bao g m C, Basic, Pascal, … Ngoài ra còn có m t s ngôn ng
l p trình đ c phát tri n dành riêng cho PIC nh PICBasic, MikroBasic,…
1.7 M CH N P PIC
ây c ng là m t dòng s n ph m r t đa d ng dành cho vi đi u khi n PIC. Có th
s d ng các m ch n p đ c cung c p b i nhà s n xu t là hãng Microchip nh :
PICSTART plus, MPLAB ICD 2, MPLAB PM 3, PRO MATE II. Có th dùng các
s n ph m này đ n p cho vi đi u khi n khác thông qua ch ng trình MPLAB. Dòng
s n ph m chính th ng này có u th là n p đ c cho t t c các vi đi u khi n PIC,
tuy nhiên giá thành r t cao và th ng g p r t nhi u khó kh n trong quá trình mua
s n ph m.
Ngoài ra do tính n ng cho phép nhi u ch đ n p khác nhau, còn có r t nhi u
m ch n p đ c thi t k dành cho vi đi u khi n PIC. Có th s l c m t s m ch
n p cho PIC nh sau:
-

-

-

-

JDM programmer: m ch n p này dùng ch ng trình n p Icprog cho phép n p
các vi đi u khi n PIC có h tr tính n ng n p ch ng trình đi n áp th p ICSP
(In Circuit Serial Programming). H u h t các m ch n p đ u h tr tính n ng n p
ch ng trình này.
WARP-13A và MCP-USB: hai m ch n p này gi ng v i m ch n p PICSTART
PLUS do nhà s n xu t Microchip cung c p, t ng thích v i trình biên d ch

MPLAB, ngh a là ta có th tr c ti p dùng ch ng trình MPLAB đ n p cho vi
đi u khi n PIC mà không c n s d ng m t ch ng trình n p khác, ch ng h n
nh ICprog.
P16PRO40: m ch n p này do Nigel thi t k và c ng khá n i ti ng. Ông còn thi t
k c ch ng trình n p, tuy nhiên ta c ng có th s d ng ch ng trình n p
Icprog.
M ch n p Universal c a Williem: đây không ph i là m ch n p chuyên d ng
dành cho PIC nh P16PRO40.

SVTH: HU NH TRÍ N NG

MSSV: 20702021

Trang 3


ÁN T T NGHI P

GVHD: Th.S PHAN V N HI P

Các m ch n p k trên có u đi m r t l n là đ n gi n, r ti n, hoàn toàn có th t
l p ráp m t cách d dàng, và m i thông tin v s đ m ch n p, cách thi t k , thi
công, ki m tra và ch ng trình n p đ u d dàng tìm đ c và download mi n phí
thông qua m ng Internet. Tuy nhiên các m ch n p trên có nh c đi m là h n ch v
s vi đi u khi n đ c h tr , bên c nh đó m i m ch n p c n đ c s d ng v i m t
ch ng trình n p thích h p.

SVTH: HU NH TRÍ N NG

MSSV: 20702021


Trang 4


ÁN T T NGHI P

CH
2.1 S

GVHD: Th.S PHAN V N HI P

NG 2 : VI I U KHI N PIC16F877A

CHÂN VI I U KHI N PIC16F877A

Hình 2.1: Vi đi u khi n PIC16F877A/PIC16F874A và các d ng s đ chân.

SVTH: HU NH TRÍ N NG

MSSV: 20702021

Trang 5


ÁN T T NGHI P

2.2 M T VÀI THÔNG S

GVHD: Th.S PHAN V N HI P


V VI I U KHI N PIC16F877A

ây là vi đi u khi n thu c h PIC16Fxxx v i t p l nh g m 35 l nh có đ dài 14
bit. M i l nh đ u đ c th c thi trong m t chu kì xung clock. T c đ ho t đ ng t i
đa cho phép là 20 MHz v i m t chu kì l nh là 200ns. B nh ch ng trình 8Kx14
bit, b nh d li u 368x8 byte RAM và b nh d li u EEPROM v i dung l ng
256x8 byte. S PORT I/O là 5 v i 33 pin I/O. Có 8 kênh chuy n đ i A/D.
Ü Các đ c tính ngo i vi bao g mcác kh i ch c n ng sau:
- Timer0: b đ m 8 bit v i b chia t n s 8 bit.
- Timer1: b đ m 16 bit v i b chia t n s , có th th c hi n ch c n ng đ m
d a vào xung clock ngo i vi ngay khi vi đi u khi n ho t đ ng ch đ
sleep.
- Timer2: b đ m 8 bit v i b chia t n s , b postcaler.
- Hai b Capture/so sánh/đi u ch đ rông xung.
- Các chu n giao ti p n i ti p SSP (Synchronous Serial Port), SPI và I2C.
- Chu n giao ti p n i ti p USART v i 9 bit đ a ch .
- C ng giao ti p song song PSP (Parallel Slave Port) v i các chân đi u
khi n RD, WR.
Ü Bên c nh đó là m t vài đ c tính khác c a vi đi u khi n nh :
- B nh flash v i kh n ng ghi xóa đ c 100.000 l n.
- B nh EEPROM v i kh n ng ghi xóa đ c 1.000.000 l n.
- D li u b nh EEPROM có th l u tr trên 40 n m.
- Kh n ng t n p ch ng trình v i s đi u khi n c a ph n m m.
- N p đ c ch ng trình ngay trên m ch đi n ICSP (In Circuit Serial
Programming) thông qua 2 chân.
- Watchdog Timer v i b dao đ ng trong.
- Ch c n ng b o m t mã ch ng trình.
- Ch đ Sleep.
- Có th ho t đ ng v i nhi u d ng Oscillator khác nhau.
- Ch c n ng b o m t mã ch ng trình và b nh d li u.

- Ng n nh Stack đ c phân 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).
- C ng ngh CMOS FLASH/EEPROM tiêu th công su t th p t c đ cao.

SVTH: HU NH TRÍ N NG

MSSV: 20702021

Trang 6


ÁN T T NGHI P

2.3 S

GVHD: Th.S PHAN V N HI P

KH I VI I U KHI N PIC16F877A

Hình 2.2: S đ kh i vi đi u khi n PIC16F877A.
-

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.

SVTH: HU NH TRÍ N NG

ng trình – Flash Program Memory.

MSSV: 20702021

Trang 7


ÁN T T NGHI P

GVHD: Th.S PHAN V N HI P

-

Kh i b nh file thanh ghi RAM – RAM file Register.

-

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.

2.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

ng trìn

(Program memory) và b nh d li u (Data Memory).
2.4.1 B


NH

B nh ch

CH

NG TRÌNH

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
ch a đ

ng trình có kh n ng

c 8*1024 = 8192 l nh (vì m t l nh

sau khi mã hóa s có dung l

ng 1 word (14


bit).
mã hóa đ
b nh ch
dung l

c đ a ch c a 8K word

ng trình, b đ m ch

ng 13 bit (PC<12:0>).

Khi vi đi u khi n đ
ch

ng trình có

c reset, b đ m

ng trình s ch đ n đ a ch 0000h (Reset

vector). Khi có ng t x y ra, b đ m ch

ng

trình s ch đ n đ a ch 0004h (Interrupt
vector).
2.4.2 B

Hình 2.3 B nh ch
NH


ng trình PIC16F877A

STACK (NG N X P)

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 đ c th c hi n hay khi
m t ng t x y ra làm ch ng trình b r nhánh, giá tr c a b đ m ch ng trình PC
SVTH: HU NH TRÍ N NG

MSSV: 20702021

Trang 8


ÁN T T NGHI P

GVHD: Th.S PHAN V N HI P

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 đ c l y ra t trong stack,
vi đi u khi n s th c hi n ti p ch 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 đ c 8 đ 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.
2.4.3 B

NH


D

LI U

B nh d li u c a PIC là b nh EEPROM đ c chia ra làm nhi u bank.
i
v i PIC16F877A b nh d li u đ c chia ra làm 4 bank. M i bank có dung l 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 ng xuyên đ c s d ng (ví d nh thanh ghi STATUS) s đ c đ t 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.
S đ c th c a b nh d li u PIC16F877A nh sau:

SVTH: HU NH TRÍ N NG

MSSV: 20702021

Trang 9


ÁN T T NGHI P

GVHD: Th.S PHAN V N HI P

Hình 2.4 S đ b nh d li u PIC16F877A
a) Thanh ghi ch c n ng đ c bi t
ây là các thanh ghi đ c s d ng b i CPU ho c đ c dùng đ thi t l p và đi u
khi n các kh i ch c n ng đ 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)
SVTH: HU NH TRÍ N NG

MSSV: 20702021

Trang 10


ÁN T T NGHI P

GVHD: Th.S PHAN V N HI P

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 đó.
b) Thanh ghi m c đích chung
Các thanh ghi này có th đ c truy xu t tr c ti p ho c gián ti p thông qua thanh
ghi
FSG (File Select Register). ây là các thanh ghi d li u thông th ng, ng i s
d ng có th tùy theo m c đích ch 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 ng trình.
2.5 CH C N NG CÁC CHÂN C A PIC16F877A VÀ CÁC C NG XU T
NH P
2.5.1 CH C N NG CÁC CHÂN C A PIC16F877A








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.
(1) có 2 ch c n ng
Chân
: 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.
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.

SVTH: HU NH TRÍ N NG

MSSV: 20702021

Trang 11


ÁN T T NGHI P


























GVHD: Th.S PHAN V N HI P

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.
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.
/AN5(8): xu t nh p s / đi u khi n port song song/ ngõ vào
Chân RE0/
t ng t 5.
/AN6(9): xu t nh p s / đi u khi n ghi port song song/ ngõ
Chân RE1/
vào t ng t kênh th 6.
/AN7(10): xu t nh p s / Chân ch n l a đi u khi n port song
Chân RE2/
song/ ngõ vào t 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.

2.5.2 CÁC C NG XU T NH P C A PIC16F877A
C ng xu t nh p (I/O port) chính là ph ng ti n mà vi đi u khi n dùng đ t ng
tác v i th gi i bên ngoài. S t ng tác này r t đa d ng và thông qua quá trình
t ng tác đó, 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 ng
SVTH: HU NH TRÍ N NG

MSSV: 20702021

Trang 12


ÁN T T NGHI P

GVHD: Th.S PHAN V N HI P

chân trong m i c ng có th khác nhau. Bên c nh đó, do vi đi u khi 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
đ c đ c p c th trong ph n sau.
a) 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 ng t đ i v i các PORT và các thanh ghi đi u khi n t ng 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.
b) PORTB
PORTB (RPB) g m 8 pin I/O. Thanh ghi đi u khi n xu t nh p t ng ng là
TRISB. Bên c nh đó m t s chân c a PORTB còn đ c s d ng trong quá trình n p
ch 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 đ c tích h p ch c n ng đi n tr kéo
lên đ c đi u khi n b i ch 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.
c) 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:
SVTH: HU NH TRÍ N NG

MSSV: 20702021

Trang 13


ÁN T T NGHI P

GVHD: Th.S PHAN V N HI P

- 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.
d) 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.
e) 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:
2.6 M T S

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.
C TÍNH KHÁC C A PIC16F877A

2.6.1 CONFIGURATION BIT
ây là bit dùng đ l a ch n các đ c tính c a CPU. Các bit này đ c ch a trong
b nh ch ng trình t i đ a ch 2007h và ch có th đ c truy xu t trong q trình
l p trình cho vi đi u khi n.

2.6.2 CÁC

C TÍNH C A OSCILLATOR

PIC16F877A có kh n ng s d ng m t trong 4 lo i oscillator, đó là:
- LP: (Low Power Crystal).
- XT: Th ch anh bình th ng.
- HS: (High-Speed Crystal).
- RC: (Resistor/Capacitor) dao đ ng do m ch RC t o ra.
i v i các lo i oscillator LP, HS, XT, oscillator đ c g n vào vi đi u khi n
thơng
qua các pin OSC1/CLKI và OSC2/CLKO.

i v i các ng d ng khơng c n các lo i oscillator t c đ cao, ta có th s d ng
m ch dao đ ng RC làm ngu n cung c p xung ho t đ ng cho vi vi đi u khi n. T n
s t o ra ph thu c vào các giá tr đi n áp, giá tr đi n tr và t đi n, bên c nh đó là
s nh h ng c a các y u t nh nhi t đ , ch t
l ng c a các linh ki n.
Các linh ki n s d ng cho m ch RC oscillator ph i b o đ m các giá tr sau:

SVTH: HU NH TRÍ N NG

MSSV: 20702021

Trang 14


ÁN T T NGHI P

GVHD: Th.S PHAN V N HI P

3 K < REXT < 100 K

Hình 2.5: RC oscillator.

CEXT >20 pF
2.6.3 CÁC CH

RESET

Có nhi u ch đ reset vi đi u khi n, bao g m:
- Power-on Reset POR (Reset khi c p ngu n ho t đ ng cho vi đi u khi n).
reset trong quá trình ho t đ ng.

reset t ch đ sleep.
- WDT reset (reset do kh i WDT t o ra trong quá trình ho t đ ng).
- WDT wake up t ch đ sleep.
- Brown-out reset (BOR).
reset: Khi pin
m c logic th p, vi đi u khi n s đ c reset. Tín
hi u reset đ c cung c p b i m t m ch ngo i vi v i các yêu c u c th sau:

Hình 2.6 Maïch Reset qua pin
tr c ti p lên ngu n VDD.
Không n i pin
R1 ph i nh h n 40 K đ đ m b o các đ c tính đi n c a vi đi u khi n.
reset còn đ c
R2 ph i l n h n 1 K đ h n dòng đi vào vi đi u khi n.
ch ng nhi u b i m t b l c đ tránh các tín hi u nh tác đ ng lên pin
Power-on reset (POR): ây là xung reset do vi đi u khi n t o ra khi phát hi n
ngu n cung c p VDD. Khi ho t đ ng ch đ bình th ng, vi đi u khi n c n đ c
đ m b o các thông s v dòng đi n, đi n áp đ ho t đ ng bình th ng. Nh ng n u
các tham s này không đ c đ m b o, xung reset do POR t o ra s đ a vi đi u
khi n v tr ng thái reset và ch ti p t c ho t đ ng khi nào các tham s trên đ c
đ m b o.
Power-up Timer (PWRT): đây là b đ nh th i ho t đ ng d a vào m ch RC bên
trong vi đi u khi n. Khi PWRT đ c kích ho t, vi đi u khi n s đ c đ a v tr ng
thái reset. PWRT s t o ra m t kho ng th i gian delay (kho ng 72 ms) đ VDD
t ng đ n giá tr thích h p.
Oscillator Start-up Timer (OST): OST cung c p m t kho ng th i gian delay
-

SVTH: HU NH TRÍ N NG


MSSV: 20702021

Trang 15


ÁN T T NGHI P

GVHD: Th.S PHAN V N HI P

b ng 1024 chu kì xung c a oscillator sau khi PWRT ng ng tác đ ng (vi đi u khi n
đã đ đi u ki n ho t đ ng) đ đ m b o s n đ nh c a xung do oscillator phát ra.
Tác đ ng c a OST còn x y ra đ i v i POR reset và khi vi đi u khi n đ c đánh
th c t ch đ sleep. OST ch tác đ ng đ i v i các l ai oscillator là XT, HS và LP.
Brown-out reset (BOR): N u VDD h xu ng th p h n gi tr VBOR (kho ng 4V)
khơng đi trong kho ng th i gian l n h n TBOR (kho ng 100 us), BOR đ c kích
ho t vi đi u khi n đ c đ a v tr ng thi BOR reset. N u đi n p cung c p cho vi
đi u khi n h xu ng th p h n VBOR trong kho ng th i gian ng n h n TBOR, vi đi u
khi n s kh ng đ c reset. Khi đi n p cung c p đ cho vi đi u khi n ho t đ ng,
PWRT đ c kích ho t đ t o ra m t kho ng th i gian delay (kho ng 72ms). N u
trong kho ng th i gian ny đi n p cung c p cho vi điều khiển lại tiếp tục hạ xuống
dưới mức điện áp VBOR, BOR reset sẽ lại được kích hoạt khi vi điều khiển đủ
điện áp hoạt động. Một điểm cần chú ý là khi BOR reset được cho phép, PWRT
cũng sẽ hoạt động bất chấp trạng thái của bit PWRT.
Tóm l i đ vi đi u khi n ho t đ ng đ c t khi c p ngu n c n tr i qua các b c
sau:
- POR tác đ ng.
- PWRT (n u đ c cho phép ho t đ ng) t o ra kho ng th i gian delay TPWRT đ
n đ nh ngu n cung c p.
- OST (n u đ c cho phép) t o ra kho ng th i gian delay b ng 1024 chu kì xung
c a oscillator đ n đ nh t n s c a oscillator.

n th i đi m này vi đi u khi n m i b t đ u ho t đ ng bình th ng.
- Thanh ghi đi u khi n và ch th tr ng thái ngu n cung c p cho vi đi u khi n là
thanh ghi PCON.
2.6.4 WATCHDOG TIMER (WDT)
Watchdog timer (WDT) là b đ m đ c l p dùng ngu n xung đ m t b t o xung
đ c tích h p s n trong vi đi u khi n và khơng ph thu c vào b t kì ngu n xung
clock ngo i vi nào. i u đó có ngh a là WDT v n ho t đ ng ngay c khi xung clock
đ c l y t pin OSC1/CLKI và pin OSC2/CLKO c a vi đi u khi n ng ng ho t
đ ng (ch ng h n nh do tác đ ng c a l nh sleep). Bit đi u khi n c a WDT là bit
WDTE n m trong b nh ch ng trình đ a ch 2007h (Configuration bit).
2.6.5 CH

SLEEP

ây là ch đ ho t đ ng c a vi đi u khi n khi l nh SLEEP đ c th c thi. Khi đó
n u đ c cho phép ho t đ ng, b đ m c a WDT s b xóa nh ng WDT v n ti p t c
ho t đ ng, bit
(STATUS<3>) đ c reset v 0, bit
đ c set, oscillator
ng ng tác đ ng và các PORT gi ngun tr ng thái nh tr c khi l nh SLEEP đ c
th c thi.
Do khi ch đ SLEEP, dòng cung c p cho vi đi u khi n là r t nh nên ta c n
th c hi n các b c sau tr c khi vi đi u khi n th c thi l nh SLEEP:
a t t c các pin v tr ng thái VDD ho c VSS
- C n b o đ m r ng khơng có m ch ngo i vi nào đ c đi u khi n b i dòng đi n
c a vi đi u khi n vì dòng đi n nh khơng đ kh n ng cung c p cho các m ch
ngo i vi ho t đ ng.
- T m ng ng ho t đ ng c a kh i A/D và khơng cho phép các xung clock t bên
ngồi tác đ ng vào vi đi u khi n.
SVTH: HU NH TRÍ N NG


MSSV: 20702021

Trang 16


ÁN T T NGHI P

-

Pin

GVHD: Th.S PHAN V N HI P

ý đ n ch c n ng kéo lên đi n tr
ph i m c logic cao.

SVTH: HU NH TRÍ N NG

PORTB.

MSSV: 20702021

Trang 17


ÁN T T NGHI P

CH
3.1 CÁC B


GVHD: Th.S PHAN V N HI P

NG 3 : CÁC KH I CH C N NG C A V K PIC16F877A
TIMER C A VI I U KHI N

3.1.1 TIMER 0
ây là m t trong ba b đ m ho c b đ nh th i c a vi đi u khi n PIC16F877A.
Timer0 là b đ m 8 bit đ c k t n i v i b chia t n s (prescaler) 8 bit. C u trúc
c a Timer0 cho phép ta l a ch n xung clock tác đ ng và c nh tích c c c a xung
clock.
Ng t Timer0 s xu t hi n khi Timer0 b tràn. Bit TMR0IE
(INTCON<5>) là bit đi u khi n c a Timer0. TMR0IE=1 cho phép ng t Timer0 tác
đ ng, TMR0IF= 0 không cho phép ng t Timer0 tác đ ng. S đ kh i c a Timer0
nh sau:

Hình 3.1 S đ kh i c a Timer0.
Các thanh ghi đi u khi n liên quan đ n Timer0 bao g m:
- TMR0 (đ a ch 01h, 101h) : ch a giá tr đ m c a Timer0.
- INTCON (đ a ch 0Bh, 8Bh, 10Bh, 18Bh): cho phép ng t ho t đ ng
(GIE và PEIE).
- OPTION_REG (đ a ch 81h, 181h): đi u khi n prescaler.
3.1.2 TIMER1
Timer1 là b đ nh th i 16 bit, giá tr c a Timer1 s đ c l u trong hai thanh ghi
(TMR1H:TMR1L). C ng t c a Timer1 là bit TMR1IF (PIR1<0>). Bit đi u khi n
c a Timer1 s là TMR1IE (PIE<0>).
T ng t nh Timer0, Timer1 c ng có hai ch đ ho t đ ng: ch đ đ nh th i
(timer) v i xung kích là xung clock c a oscillator (t n s c a timer b ng ¼ t n s
c a oscillator) và ch đ đ m (counter) v i xung kích là xung ph n ánh các s ki n
c n đ m l y t bên ngoài thông qua chân RC0/T1OSO/T1CKI (c nh tác đ ng là

SVTH: HU NH TRÍ N NG

MSSV: 20702021

Trang 18


ÁN T T NGHI P

GVHD: Th.S PHAN V N HI P

c nh lên). Vi c l a ch n xung tác đ ng (t ng ng v i vi c l a ch n ch đ ho t
đ ng là timer hay counter) đ c đi u khi n b i bit TMR1CS (T1CON<1>).
Sau đây là s đ kh i c a Timer1:

Hình 3.2 S đ kh i c a Timer1.
Các thanh ghi liên quan đ n Timer1 bao g m:
- INTCON (đ a ch 0Bh, 8Bh, 10Bh, 18Bh): cho phép ng t ho t đ ng (GIE
và PEIE).
- PIR1 (đ a ch 0Ch): ch a c ng t Timer1 (TMR1IF).
- PIE1( đ a ch 8Ch): cho phép ng t Timer1 (TMR1IE).
- TMR1L (đ a ch 0Eh): ch a giá tr 8 bit th p c a b đ m Timer1.
- TMR1H (đ a ch 0Eh): ch a giá tr 8 bit cao c a b đ m Timer1.
- T1CON (đ a ch 10h): xác l p các thông s cho Timer1.
3.1.3 TIMER2
Timer2 là b đ nh th i 8 bit và đ c h tr b i hai b chia t n s prescaler và
postscaler. Thanh ghi ch a giá tr đ m c a Timer2 là TMR2. Bit cho phép ng t
Timer2 tác đ ng là TMR2ON (T2CON<2>). C ng t c a Timer2 là bit TMR2IF
(PIR1<1>). Xung ngõ vào (t n s b ng ¼ t n s oscillator) đ c đ a qua b chia
t n s prescaler 4 bit (v i các t s chia t n s là 1:1, 1:4 ho c 1:16 và đ c đi u

khi n b i các bit T2CKPS1:T2CKPS0 (T2CON<1:0>)).

SVTH: HU NH TRÍ N NG

MSSV: 20702021

Trang 19


ÁN T T NGHI P

GVHD: Th.S PHAN V N HI P

Hình 3.3 S đ kh i Timer2.
Timer2 còn đ c h tr b i thanh ghi PR2. Giá tr đ m trong thanh ghi TMR2
s t ng t 00h đ n giá tr ch a trong thanh ghi PR2, sau đó đ c reset v 00h. Khi
reset thanh ghi PR2 đ c nh n giá tr m c đ nh FFh.
Các thanh ghi liên quan đ n Timer2 bao g m:
- INTCON (đ a ch 0Bh, 8Bh, 10Bh, 18Bh): cho phép toàn b các ng t
(GIE và PEIE).
- PIR1 (đ a ch 0Ch): ch a c ng t Timer2 (TMR2IF).
- PIE1 (đ a ch 8Ch): ch a bit đi u khi n Timer2 (TMR2IE).
- TMR2 (đ a ch 11h): ch a giá tr đ m c a Timer2.
- T2CON (đ a ch 12h): xác l p các thông s cho Timer2.
- PR2 (đ a ch 92h): thanh ghi h tr cho Timer2.
3.2 ADC
ADC (Analog to Digital Converter) là b chuy n đ i tín hi u gi a hai d ng
t ng t và s . PIC16F877A có 8 ngõ vào analog (RA4:RA0 và RE2:RE0). Hi u
đi n th chu n VREF có th đ c l a ch n là VDD, VSS hay hi u đi n th chu n
đ c xác l p trên hai chân RA2 và RA3. K t qu chuy n đ i t tín ti u t ng t

sang tín hi u s là 10 bit s t ng ng và đ c l u trong hai thanh ghi
ADRESH:ADRESL. Khi không s d ng b chuy n đ i ADC, các thanh ghi này có
th đ c s d ng nh các thanh ghi thông th ng khác. Khi quá trình chuy n đ i
hoàn t t, k t qu s đ c l u vào hai thanh ghi ADRESH:ADRESL, bit
(ADCON0<2>) đ c xóa v 0 và c ng t ADIF đ c set.
Quy trình chuy n đ i t t ng t sang s bao g m các b c sau:
1. Thi t l p các thông s cho b chuy n đ i ADC:
- Ch n ngõ vào analog, ch n đi n áp m u (d a trên các thông s c a
thanh ghi ADCON1)
- Ch nh kênh chuy n đ i AD (thanh ghi ADCON0).
- Ch nh xung clock cho kênh chuy n đ i AD (thanh ghi ADCON0).
- Cho phép b chuy n đ i AD ho t đ ng (thanh ghi ADCON0).
2. Thi t l p các c ng t cho b AD
- Clear bit ADIF.
- Set bit ADIE.
- Set bit PEIE.
- Set bit GIE.
3.
i cho t i khi quá trình l y m u hoàn t t.
)
4. B t đ u quá trình chuy n đ i (set bit
5.
i cho t i khi qu trình chuy n đ i h n t t b ng cch:
=0, quá trình chuy n đ i đã hoàn t t.
- Ki m tra bit N u
- Ki m tra c ng t.
(n u c n ti p t c
6.
c k t qu chuy n đ i và xóa c ng t, set bit
chuy n đ i).

7. Ti p t c th c hi n các b c 1 v 2 cho quá trình chuy n đ i ti p theo.

SVTH: HU NH TRÍ N NG

MSSV: 20702021

Trang 20


×