Số lượng cổng vào ra nhiều nên ẹhép nối được với nhiều thiết bị ngoại vi như các cảm biến với lối ra số, nút bấm điều khiển, vi mạch đồng hổ thời gian thực, bộ nhớ ngoài, môđun hiển thị
Trang 2N g h iên cứu ứntị dụng vi điểu khiển P Ì C trong do lường & đ iều khiển
MỤC LỤC
T r a n gPHỤ B ÌA
C h ư ơ n g 3 C Ấ U T R Ú C V I Đ I Ề U K I ĩ l Ể N p i c 1 6 F 8 7 7 A 2 1
3 ] M ô tả k h á i q u á t về tín h n ă n g c ủ a vi đ i ề u k h i ể n P IC 1 6 F 8 7 7 A 21 3.2 Sơ đồ k h ố i c h ứ c n ă n g v à c á c c h â n v à o ra 2 2 3.3 T ổ c h ứ c b ộ n h ớ và c á c t h a n h g h i c h ứ c n ă n g đ ặ c b iệt 25
5 1 T h i ế t k ế h ệ t h ố n g v à c á c c h ứ c n ã n e c ủ a hệ th u t h ậ p s ố liệu 5 0 5.1.1 C á c c h ứ c n ă n « c ủ a h ệ t h ố n g th u t h ậ p s ố liệu m ô i t r ư ờ n g 5 0
Trang 3Nghiên cứu ứng dụ ng vi điều khiến P Ì C trong du lnứ ng & đ iều khiến
Trang 4N ạhicn cứ u ứiiíỊ dụng vi đ iểu khiến P Ỉ C tro n g do lư ờng Á diều khiển
Trang 5N q ỉiicn cứu ứng ciụnq vi điều khiển PỈC trong do lường & điểu khiển
u v E P R O M U ltra V io le t E E P R O M
W D T W a t c h D o g T i m e r
Trang 6N íỊỈiiên cứu ứng d ụ n g vi đ iề u k h iể n P I C tro n g đu lường & đ iề u khiên
Trang 7N ghiên cứu ứng dụng vi điều khiên P Ỉ C trong d o lư ờn g & đ iề u khiển
Trang 8N ghiên cứu ứng d ụ ng vi d iều khiển P Ỉ C tro n ẹ đ o lường á đ iề u khiển
Trang 9N g h iên cửu ứng d ụ n g vi đ iề u khiển P Ỉ C tro n g do lư ờníỊ & d iêu khiển
M Ỏ Đ Ầ U
Bộ vi xử lý đ ầ u tiê n ra đời n ă m 1971 đ ã m ở ra m ộ t thời đ ạ i m ới t r ô n a c ổ n g
n g h ệ đ i ệ n tử và tin h ọ c , c ó ả n h h ư ở n g s â u sắc đ ế n m ọ i lĩnh v ự c k h o a h ọ c c ô n g n g h ệ
C á c hệ t h ố n g d ư ợ c th iế t k ế d ự a trê n n ề n t ả n g c ủ a c á c b ộ vi x ử lý c ó c á c k h ả n ă n g m à
c á c hệ t h ố n g d i ệ n tử tư ơ n g t ự / s ố t h ô n g t h ư ờ n g k h ô n g thể th ự c h iệ n d ượ c.
Với m ụ c tiê u h ạ n c h ế tối đ a c á c linh k iệ n n g o à i khi x â y d ự n g m ộ t h ệ t h ố n g
c ó s ứ d ụ n s vi x ử lý, c á c h ã n g c h ế tạ o b á n d ẫ n d ã tíc h h ợ p c á c m ạ c h n g o ạ i vi và b ộ vi
x ử lý lên m ộ t c h i p d u y n h ấ l đ ể tạ o ra c á c b ộ vi đ i ề u k h iể n
N h ữ n g b ộ vi đ i ề u k h i ể n m ới n h ấ t c ủ a M I C R O C H I P , M O T O R O L A , A T M E L ,
A V R , d ã c h ứ a b ê n t r o n s n h iề u th iế t bị n g o ạ i vi n h ư cá c loại b ộ n h ớ , c á c b ộ đ ế m
16 b it, k h ố i A D C p h â n a iả i 10 - 12 bít với n h i ề u lối v à o , c á c c ổ n g t r u y ề n t h ô n g loại
P S P / Ư A R T / l2C/ C A N / U S B , k h ố i đ i ề u k h iể n m à n hiển thị tin h t h ể lỏ n g , t h ậ m c h í
Trang 10N g hiên cứu ÍOIIỊ (lụng vi (Hèn khiên P I C iro n íỊ (lo lư ờn g & đ iề u khiển
t h ố n ụ , m á y tín h ( n ế u c ó ) c h ỉ đ ư ợ c d ù n g n h ư là m ộ t p h ư ơ n g tiệ n t r ợ g i ú p đ é việc g i a o tiế p c iữ a n c ư ờ i s ử d ụ n c và hệ t h ố n g th ê m linh ho ạ i d ễ d à n g h ơ n
T h e o xu h ư ớ n g á p d ụ n g c á c vi đ iề u k h iể n đ ể thiết k ế c á c hệ t h ố n g đ o lư ờ ng
d i ề u k h iế n t ự đ ộ n g , tr o n c k h u ô n k h ổ b àn luận v ãn n à y tôi t ậ p t r u n g n g h i ê n c ứ u , á p
c ổ n g t r u y ề n k h ô n g đ ổ n g b ộ , khối b iế n đ ổ i s ố tư ơ n g tự A D C .
- X â y d ự n g sơ đ ồ k h ố i tổ n g th ể c h o h ệ t h ố n g
- L ự a c h ọ n cá c vi m ạ c h p h ụ trợ th íc h h ự p n h ư đ ồ n g h ồ thời g i a n thự c, b ộ
n h ớ E E P R O M , n i ô đ u n h i ể n thị L C D v à g h é p nối c h ú n g với vi đ iề u k h iể n
- L ự a c h ọ n và g h é p nối c á c c ả m b iế n đ o n h i ệ t đ ộ , đ ộ ẩ m , đ o tốc đ ộ g i ó với
T á c g i ả x in b ày tô l ò n e b iết ơn sâ u s ắ c đ ê u g i á o viên h ư ớ n g d ẩ n : T iế n s ỹ N g ô Diên T ậ p , g i á n g v iê n K h o a C ô n g n g h ệ - Đ ạ i h ọ c Q u ố c g ia H à n ộ i, n g ư ờ i đ ã tận tình
h ư ớ n g d ẫ n và đ ư a ra c á c n h ậ n xét vô c ù n g q u í b á u t r o n g q u á trì n h tlụrc h iệ n lu ận vãn T á c íỉiả c ũ n g c h â n t h à n h c ả m ơn Ban lã n h đ ạ o v à c á c b ạ n đ ổ n g n g h i ệ p tr o n g
C ô n g ty L iê n D o a n h T h i ế t bị V iễ n t h ô n s A N S V nơi tác g i ả đ a n g c ô n g tá c đ ã t ạ o điều k iện d ể h o à n t h à n h b ả n luận văn n à y
Trang 11N g h iê n cứu ứng dụng vi diều khiển P I C trong đo lường á điêu khiển
suấ t tín h to á n c a o n h ư ờ m á y tín h c á n h â n , c á c h ệ đ iề u k h i ể n t r o n g c ô n g n g h iệ p
H ư ớ n g t h ứ hai là thiết k ế , c h ế t ạ o c á c vi đ i ề u k h i ể n (m icrocontroller), đ ó là m ộ t vi
m ạ c h d ơ n b é n t r o n g c h ứ a m ộ t b ộ vi x ử lý 8 - 1 6 bit x ử lý vài triệ u l ệ n h / g iâ y và c á c
k h ố i: b ộ n h ớ , b ộ đ ế m , b ộ b i ế n đ ổ i tư ơ n g t ự số, b ộ s o s á n h , c á c c ổ n g t r u y ề n th ô n g
N ó i c á c h k h á c , đ ó c h ín h là m ộ t h ệ t h ố n s m á y tín h (com puter và m icrocomputer)
t r o n c m ộ t vi m ạ c h C á c b ộ vi đ i ể u k h i ể n điển hình là M otorola 6 8 H C 1 1 , Intel 8051,
J
ROM.EEPROM Program & Data
Màn hiển thị - VI điéu Khiển khác - Cảm biến tưclng lự Mạch điện tưang tư Thiết bị sổ - Máy linh HOST • Oión áp đo lưùng • Động cơ oc
Hình 1: Sơ đổ khối của vi điều khiển cấu hình đầy đủ.
I 1
Trang 12N g h iên cứu ứng dụng vi đ iề u kh iển P Ỉ C tro n g đ o lư ờ n g & đ iể u kh iển
B ộ vi đ iể u k h i ể n đ ư ợ c d ù n g r ộ n g rãi t r o n g c á c th iế t bị đ i ệ n tử: c h ú n g c ó m ậ t
t ro n g c á c th iế t bị viễn t h ô n ẹ , m á y v ăn p h ò n g , t h i ế t bị uiái trí, đ ổ đ i ệ n tử g i a d ụ n g và
s ụ n (firm ware) Bộ n h ớ c h ư ơ n g trì n h R O M n à y c ó t h ể là lo ại R O M m ặ t n ạ ịm asked
R O M ): c h ư ơ n g trìn h d ư ợ c đ ư a v à o n g a y tr o n g q u á trìn h c h ế t ạ o vi m ạ c h , lo ại O T P
R O M c h o p h é p n ạ p c h ư ơ n g trì n h m ộ t lầ n , c ò n lo ạ i E P R O M c ó t h ể g h i và x o á n h i ề u lần, c h ú n g đ ư ợ c lập trìn h b ở i n a ười th iế t k ế h ệ t h ố n g
C h ươ n ẹ trìn h c h o vi đ i ề u k h i ể n là m ộ t t ậ p c á c lệ n h đ ã d ị c h t h à n h m ã m á y
-l h ư ờ n tỉ đ ư ợ c n ạ p trực t iế p từ m á y rinh v à o b ộ n h ớ R O M b ê n t r o n g vi đ i ề u k h i ể n
t h ô n g q u a m ộ t b ộ n ạ p t rìn h M ộ t p h í a b ộ n ạ p trì n h n h ậ n d ữ liệ u từ c ổ n c m á y tín h , phía k ia đ ư a d ữ liệu v à o vi đ i ề u k h i ể n q u a c á c c h â n “ n ạ p t r ì n h ” c ủ a vi m ạ c h , c á c
Trang 13N ỉịh iê n cứ u ứng d ụ n g vi dieu khiển P Ì C trong d o lường & điều khiển
Trang 14Nghiên cứu ứng dụng vi diều khiển PỈC trong đo lường & điều khiển
Trang 15N g h iên cứu ứiìiỊ (lụng vi (lien khiển P Ỉ C tro n g do lường & d iề u khiển
C hương 2 VI ĐIỂU KHIỂN M IC R O C H IP
th iế t kê vi m ạ c h Đ i ề u k h i ể n g i a o tiế p n g o ạ i vi (Peripheral Interface Controller) v iết
tắt là PIC, đ ó là lin h kiện h ỗ t r ợ c á c c h ứ c n ă n g v à o /r a c h o vi x ử lý P IC k h ô n g c ầ n c ó
m ộ t c ô n e ty m ớ i, đ ặ t t ê n là A r i z o n a M i c r o c h i p T e c h n o l o g y , h i ệ n n a y là M ic r o c h ip
T e c h n o l o g y Inc.
C h i ế n lư ợ c p h á t triể n c ủ a c á c n h à đ ầ u tư là t ậ p t r u n g v à o vi đ i ể u k h i ể n và c á c
b ộ n h ớ b á n d ẫ n C á c vi m ạ c h P I C n - M O S d ư ợ c cải tiến, c h ế t ạ o d ự a trên n é n tả n g
c ố n c n e h ệ m ới C M O S C á c s ả n p h ẩ m đ ầ u tiê n c ủ a M i c r o c h i p đ ư ợ c b iết đ ế n và b án
ra với sô lư ự n g lớn là c á c vi đ i ề u k h iể n P I C th u ộ c h ọ C M O S P I C 1 6 C 5 x H ọ 16 C 5 x
c ó 2 biến thể với k iể u b ộ n h ớ ch ươn a trìn h là O T P và u v E P R O M Loại O T P c ó thể
n ạ p trình m ộ t lần d ù n g c h o s á n x u ấ t loạt lớn L o ạ i u v E P R O M x ó a đ ư ợ c b ằ n g tia
c ự c tím d ù n e khi p h á t triể n , th ử n g h i ệ m p h ầ n m ề m
N a m 1983 M ic r o c h i p là h ã n g đ ầ u tiê n đ ã tích h ợ p đ ư ợ c b ộ n h ớ c h ư ơ n g trình
k iể u fla s h E F P R O M vào n h ữ n g vi đ iề u k h i ể n m ớ i, t r o n g đ ó đ ư ợ c b iế t đ ế n n h i ề u n h ấ t
là P I C 1 6 C 8 4 v à P I C 1 6 F 8 4 Bộ n h ớ c h ươn s trìn h fla s h t r o n g P I C đ ã loại b ỏ vai trò
15
Trang 16N iịh icn cứ u ứniỊ d ụ n g vi đ iểu khiển P Ì C tro n g do lư ờn g & đ iề u khiển
c ú a c á c vi đ i ề u k h i ê n x o á b ằ n g tia c ự c tím , c ó vỏ b ằ n g g ố m đ á t tiề n và c á c đ è n c h iế u tia c ự c tím
n a n « IC S P v à b ộ n h ớ c h ư ơ n g trìn h k iể u flash n ê n c á c n h à n g h i ê n c ứ u p h á t triể n ứng
d ụ n g d ù n g P I C t iế t k i ệ m đượ c h à n g tr ă m U S D s o với chi p h í m u a c á c c ô n g c ụ n ạ p trìn h c ho c á c lo ạ i vi d i ề u k h i ể n k h á c [13] V iệ c n ạ p trìn h c h o f la s h P I C rất d ễ d à n g , với m ộ t b ộ n ạ p t r ì n h đ ư n g iả n - c ó t h ể tự lắp r á p - c h i p h í ít h ơ n 10 U S D T h ờ i g i a n
đ ể x o á và c h i c h ư ơ n g trìn h vào fla sh P I C c h ỉ vài c h ụ c g i â y , s o với 15 p h ú t đ ể x o á
c á c ví d ụ á p d ụ n g , c á c đ ề tài C ó rất n h iề u s á c h viết về P I C , d ẫ n d ắ t c á c đ ộ c g i ả
Trang 17N g hiên cửu ÍÙ 1 Í> dụ ng vi lỉié u khiển P I C trong đo lư ờn g & (liề u kh iển
Trang 18Nghiên cứu ứng dụng vi (íiền khiển PỈC trong (ỉo lường & diều khiển
- Có phần cứng gỡ rỏi chương trình ICD ứ một sô loại
2.2.3 Họ cấp cao (High - end) 17Cxxx
Bao com các vi mạch ký hiệu l7Cxxx
- Kiến trúc khác so với các họ PIC cấp trung, cấp thấp
- Cỏ các lệnh tăng cường và nhiều khả năng định địa chỉ
- Có một vài lối vào/ra tăng cường
- Nạp trình kiểu song song
2.2.4 Họ cáp ca« (High- Peformance) 18Cxxx 18Fxx2
- Độ dài từ lệnh 16 bit
Bố trí các thanh ghi: 256 byte trên một bank, tối đa 16 bank
Đặc điểm
- Kiến trúc nâng cao, dựa trên nền tảng của họ cấp trung, xu hướng tương lai
sẽ thay thế cho họ PIC cấp trung, do tính tươne thích và khai thác được cáctính năng mới
- Có khả năng truy nhập tới 2 Mbvte bộ nhớ chương trình, 4 kbyte bộ nhớ RAM
- Có các lệnh tăng cường và nhiều khả năn2 định địa chi
- Véc tơ ngát dơn, có thổ lập trình dược mức độ ưu tiên các nguổn ngắt
- Kha nàn» vào/ra tương tự như các PIC họ cấp trung
- Hoạt động ở tần số tối đa 40 MHz, sử dụng bộ dao động thạch anh 10 MHz
và bộ nhân tẩn số PLL
- Có bộ nhớ chương trình kiểu flash cho tất cả các loại.
- Nạp trình nối tiếp ICSP, có khả năng tự chi vào bộ nhớ chương trình
Trang 19Nạhicn cửu ứng dụng vi diều khiển PỈC trong đo lường cỉicu khiên
2.2.5 róm lược các ho vi điều khiên Microchip PIC
Iỉảng I : Tóm lược các họ vi điểu khiển PIC.
16C5x Cấp thấp Bộ nhớ OTP nạp trình song sons Các ứng dụng cơ bản
16HV540 Cấp thấp Có ổn áp bên trong, điện áp làm việc
digital16C62X Cấp trung Có bộ so sánh điộn áp Giám sát các đại lượng điện tương tự
16F62x Cấp trung Có bộ so sánh điện áp / bộ nhớ flash Giám sát các đại lượng điện
tương tự
16x8x Cấp trung Bô nhớ flash / bỏ nhớ Data EERPOM Phát triển ứng dụng
16F87x Cấp trung A DC / bô nhớ flash / bộ nhớ Data
EERPOM
Giao tiếp với các đại lượng điện tương tự / phát iriến ứng dụng
(tiện tương tự 17Cxx Cấp cao Truy nhập dược bộ nhớ ngoài Các ứng dụng tiên liến
18Cxxx Cấp cao
ISCxx
. , , , , , , , Các ứng dung giao liếp các
A IX / I2C, bô nhớ OTP , , ‘° ■ c c 1 '
dại lượng tương tự /s ô
19
Trang 20Nghiên cứu ứ/ìíỊ dụng vi (liều k h iể n P IC trong đo lường & đ iê u k h iể n
2.3 LỰA CHỌN LOẠI VI Đ lỂ U KHIỂN đ ể n g h i ê n c ứ u ÚN ( ỉ D Ụ N í ;
Tronu khuôn khổ bản luận văn này vi điều khiển PIC16F877A được lựa chọnnghiên cứu ứng dụng do có các ưu điếm sau:
- Là vi điều khiển flash PIC thuộc họ cấp trung Bộ nhớ chương trình dunglượng 8 kbyte đú lưu chương trình ứng dụng tương đối phức tạp
- Đóng trong vỏ DIP 40 chân, có 5 cổng A-B-C-D-E với tổng số 33 lối vào/ra
Số lượng cổng vào ra nhiều nên ẹhép nối được với nhiều thiết bị ngoại vi như các cảm biến với lối ra số, nút bấm điều khiển, vi mạch đồng hổ thời gian thực, bộ nhớ ngoài, môđun hiển thị tinh thể lỏng LCD
- Có 3 bộ timer dùng để định thời gian và đếm xung trong các ứng dụ n s đếm
số lượng và đo tần số xung
- Có khôi biến đổi tưưng tự - số 8 kênh, độ phân giải 10 bit, thích hợp cho các ứng dụng cần do tín hiệu điện áp tương tự nhiều kênh
- Có khối UART để uhép nối với thiết bị truyền thông, điều khiển như môđem, máy tính theo chuẩn giao tiếp RS-232
- Có khối điều khiển giao thức bus I2C để ghép nối với bộ nhớ EEPROM chuẩn I2C
- Giá không quá cao, chi 5,76 USD/ vi mạch
Trang 21Nghiên cứu ứnạ (lụng vi (licit khiên PIC trung đu lường ổ i diều khiển
C hư ơ ng 3 C Ả U T R Ú C VI Đ IẼ U K H IÊ N P IC 16F877A
3.1 MÔ TẢ KHÁI QUÁ I VẾ TÍNH NĂNG CỦA VI ĐlỀU KHIỂN PIC 16F877A
• Hộ x ử lý tr u n g tám C P U R ISC
Tập lệnh chỉ gồm 35 lệnh RISC
Các lệnh thực hiện trong I chu kỳ máy, trừ các lệnh rẽ nhánh chiếm 2 chu kỳ.Tốc độ hoạt động: tần số xung nhịp từ 0 Hz đến 20 MHz nhờ thiết k ế hoàn toàn tĩnh
Bộ nhớ chương trình 8 k X 14 bit
Bộ nhớ dữ liệu RAM 368 X 8 bit
Bộ nhớ dữ liệu EEPROM 256 X 8 bit
• C ác thiết bị ngoại vi giao tiếp số (digital)
TimẹrO: Bộ đếm/timer 8 bit, có bộ chia trước 8 bit
Timer 1: Bộ đếm 16 bit, có bộ chia trước hệ số 1, 4, 16 Đếm xung được trong trạng
thái SLEEP với xung nhịp đưa từ bên ngoài
Timer2: Bộ đếm /timer 8 bit có chia trước, chia sau
Hai khối Compare/Capture/PWM thực hiện chức năng so sánh/bắt giữ số xung và
điều chế độ rộng xung
Cổng nối tiếp đổng bộ theo chuẩn giao thức SPI và I2C
Bộ thu/phát đổng không đồng bộ vạn năng UART có phần cứng phân biệt địa chỉ Cổng son« song PSP 8 bít có chân điều khiển RD, WR, c s
Cớ mạch phát hiện sự giảm điện áp nguồn, chức năng BOR
• K hả n ă n g giao tiếp với tín hiệu tương tự (analog)
Bộ biến đổi tương tự/số 10 bit, 8 kênh
Khôi so sánh tương lự có dặc tính:
- Gồm 2 bộ so sánh tương tự
- Khối tạo điện áp chuẩn bên trong lập trình được
- Lối ra của bộ so sánh có thể truy nhập từ bên ngoài
• Các đ ặc tính riêng
Đảm bảo 100.000 lần «hi/xoá vào bộ nhớ ch ươn 2 trình flash
Đảm bảo 1.000.000 lần uhi/xoá vào bộ nhớ dữ liệu EEPROM
21
Trang 22Nghiên cứu ứng (lụng vi cỉiềit khiển PIC trong đo lường & (tiều khiển
Bó nhớ dữ liệu kiểu EEPROM lưu được dữ liệu trên 40 năm
Tự nạp trình dưới sự điều khiển của phần mềm bootstrap qua giao diện nối tiếp.Nạp trình nối tiếp ICSP
Điện áp nạp trình 5 V ở chê độ LVP
Bộ đếm giám sát Watchdog có mạch tạo nhịp RC bên trong, độc lập
Có cơ chế khoá chống sao chép chương trình
Chế độ SLEEP tiết kiệm năng lượng
Nhiều lựa chọn về bộ dao động tạo nhịp RC, LP, XT, HS
Chức năne eỡ rối chương trình ICD qua 2 chân
Chế tạo bằng công nghệ CMOS, tiêu thụ ít năng lượng, tốc độ cao
3.2 SO ĐỔ KHỐI CHÚC NÂNG VÀ CÁC CHÂN VÀO RA
Vi điều khiển PIC có kiến trúc Harvard, trona đó CPU truy nhập chương trình
và dữ liệu được trên 2 bus riêng biệt, nên làm tăng đáng kể bãng thông so với kiến trúc kiểu Von Neumann trong đó CPU truy nhập chương trình và dữ liệu trên cùng một bus
Việc tách riêng bộ nhớ chương trình và bộ nhớ dữ liệ u cho phép sô bit của từ lệnh có thể khác với số bit của từ dữ liệu, ở PIC 16F877A, từ lệnh dài 14 bit, từ dữ liệu 8 bit
PIC 16F877A chứa một bộ ALU 8 bit và thanh ghi làm việc WR (W orking Register). ALAJ là đơn vị tính toán số học và logic, nó thực hiện các phép tính số học
và đại số Boole trên thanh ghi làm việc WR và các thanh ghi dữ liệu ALU có thể thực hiện các phép cộne, trừ, dịch bít và các phép toán logic
Vi điều khiển PIC 16F877A được dons trong vỏ nhựa hai hàng 40 chân DIP việc bố trí các lối ra mồ tả trong hình 2
PDIP (40 pin)
1 } 40 ~1 - ■ ■ 0R7/Pr5n iflULIvVt 1 l_,
RA0/AN0 -—- c7 39_J J ■*— RB6.*PGCnu/iruuRAI.'AN 1 •—«- C 3 38 5 • RB5 RA^/AIW.Vaf’e-fCVREP -t a [■4 37-J ^ RA3/AN3/VREF* -—► C 5 36 □ RĐ3/PGM
fiAr«/ANM.'«ĩ5jT?ni JT _( V Ị <í 34 3 * * Rữt^3RFO'RD-'ANS •+ *■ c 8 33 -)-*_ to- MHO/iNt RE1/WRMN6 9 2 32 D - V do
RÊ2/CS/AN7 «— 10 5 31 D *— Vss Vnc'. « Q 11 Ịĩ 30 1 ■ ■ Rn7i'PcĨP7 Vss c n CO 00 ^ ” nui'r or /
OSC1/CLKIN •• Ẽ 13 u_CO 23 _J r%uvi r Oỉ ụ
„ RD5/PSPS 0SC 2/CLK 0ur « C 14 rr J RD4/PSP4 RCOTlOSO/TtCKI C™ u
15 £ 26 5 — - RC?/RX>'DT KCVMOSI/CCP2 C 16 °- 25 5 —- RC6.-7X/CK RC2/CCP1 C 17 24 5 ► RCWSOO RC3/SCK/SCI ■«_►C 18 23 J _» RC4/SOt’SOA ROO.P5PO — £ "í — r RD3/PSP3 ROlíPSPl 20 21 5 R02PSP2
Trang 23NiỊỈiiân cứu ứng dụng vi diều khiển PÌC trong đo lường & điều khiển
1 3
RA1/AN1RA2/AN2A/REF-/CVR£éRA3'AN3A/REF*RA4.T0CKÎ/C1OUTRA5/AN4/SS/C20UT
RC0/T1OSO/T1CKỈRcimosí/ccP2RC2/CCP1RC3/SCK/SCLRC4/SDI/SDARC5VSDORC6^TX7CKRC7/RX/DT
Data EEPROM CCP1.2 Synchronous Serial Port USART Comparator RcíercncoVoltage
H ìnli 3: Sơ đồ khối chức năng của PIC 16F877A.
Hình 3 là sư dồ khối chức năng của vi điều khiển PIC 16F877A
Báng 2 mò tả chức năng của các chân vào ra của vi điều khiển Ớ PIC 16F877A
đa số các chùn vào ra được sử dụng cho nhiều chức năng, ví dụ các chân của cổng A
là cổng vào ra số và là các lối vào cho điện áp tương tự của khối biến đổi ADC hay khối so sánh tương tự (Com parator).
Các chức năng cụ thể cho từng chân vào ra được xác lập khi lập trình qua việc điều khiển các thanh ghi chức năng thuộc các khối liên quan đến chân này
2 3
Trang 24NíỊhién cửu ứiiíi dụniỊ vi diêu klìicn PIC trong đo lường & điều khiên
Bảng 2: Mô tá chức nâng các chân cùa PIC 16F877A.
R A 2 /A N 2/V -R cff/C V R cf
Vào/ra số Lối vào analog 2 Lôi vào điện áp chuẩn
V -ref của ADC Lối ra V rcf so sánh
RCO/T1O SO /T1CK1 15 I/O Vào/ra số Tạo dao động tim erl Xung nhịp ngoài
cho timer 1
RC 1/T10SI/C CP 2 16 I/O Vào/ra số Tạo dao động timer 1 Lối vào Capturc2
Lối ra Compare2 Lôi ra PWM2 RC2/CCP1 17 I/O Vào/ra số Lối vào Capture 1 Lối ra Compare! Lối
ra P W M 1 RC3/SCK/SCL 18 I/O Vào/ra s ố Nhịp đồng bộ cho SPI VÌ 1 12C
RC4/SDI/SDA 23 i/o Vào/ra số Vào dừ liệu SP1 Vào/ra dữ liệu I2C
truyền đồng bộ
Trang 25Nghiên cửu ứng (ỉiiníỊ vi (tiêu khiển PIC trong đo lường & diêu khiển
R C 7/R X /D T 26 I/O Vào/ra số cổng nhận khổng đổng hộ Dữ liệu đồng
bộ
CALL RETURN RKTPỈk* P.ÏTLW
0 't ’Ctop
Slrt<:k I nvnlA
3.3 TỔ CHỨC l ỉ ộ NHỚ VÀ CÁC THANH GHI CHỨC NĂNG ĐẶC BIỆT
Có 3 loại bộ nhớ trong vi điều khiển
16F877A: bộ nhớ chương trình, bộ nhớ dữ liệu
RAM và bộ nhớ dữ liệu EEPROM Bộ nhớ chương
trinh và bộ nhớ dữ liệu có 2 bus riêng nên có thể
truv nhập dồng thời
3.3.1 Bộ nhớ chương trình flash
Vi điều khiến PIC16F877A có bộ nhớ
chương trình kiểu flash đun« lượne 8 k X 14 bit,
chia làm 4 bank Thanh ghi của bộ đếm chương
trình PC (Program Counter) 13 bit, đủ định địa chí
cho 8 k không gian bộ nhớ Khi khởi động, bộ đếm
ch ươn 2 trinh bắt đầu từ địa chỉ OOOOh, vectơ ngắt
17FPÎI
I l ì n l i 4: T ổ ch ứ c h ộ nhớ.
25
Trang 26Nghiên cửu ứng dụng 17 điều khiển PỈC trong đo lường & diêu khiển
nạp trình cho vi điều khiển qua bộ nạp trình Do có kha năng tự ghi vào bộ nhớ chươnc trình nên vi điều khiển PIC 16F877A còn có thể được nạp trình qua cổng
u ART dưới sự điều khiển của chương trình Bootstrap
3.3.2 liộ n h ớ d ừ liệu RAM
Bộ nhớ cỉữ liệu được chia làm 4 bank trong đó có các thanh ghi đa năng GPR
(Genera! Purpose Register) và các thanh ghi chức năng đặt biệt SFR (Special Function Register). Việc chọn các bank được xác định bằng các bit RP1, RPO của thanh ghi STATƯS<6:5>
Indirect addr.*-' 00h Indirect addr.(‘* 80b Indirect addr.(‘> 100h Indirect addr.1’1 180h
16 Bytes
117h General
Purpose Register
80 Bytes
EFh
General Purpose Register
80 Bytes
16Fh
General Purpose Register
80 Bytes lEFh
7Fh
accesses70h-7Fh
FOhFFh
accesses70h-7Fh
170h 17Fh
accesses 70h - 7Fh 1F0h
Trang 27Nghiên cứu ứ/iỊỊ (IttníỊ vi (tiều khiển PIC trong do lưỞMỊ (í điều khiển
Tổng dung lượng của các GPR RAM là 368 byte, lớn hơn nhiều so với các vi điéu khiên khác như ỏ họ 8051 chí có 128 bvte Các thanh ghi GPR được dùng đê lưu giá trị các biến trong chương trình Các thanh ghi đặc biệt SFR dùng để quản lý, điéu khiển các chức năng của tất cả các khối thành phần bên trong vi điều khiển.3.3.3 Bộ n h ớ d ữ liệu E E P R O M
Một bộ nhớ dữ liệu đặc biệt kiểu EEPROM dung lượng 256 byte được tích hợp trong PIC I6F877A và dược xem như là một thiết bị ngoại vi nối vào bus dừ liệu, bộ nhớ này có thế ghi/ dọc trong quá trình hoạt động dưới sự diều khiển của chương trình Bộ nhớ EERPOM thường dùng các lưu dữ liệu ít thay đổi như các hàn« sô chuẩn, các dữ liệu của ncười sử dụna và không bị mất đi khi ngắt nguồn nuôi Các thanh ghi chức năng đặc biệt EECON1, EECON2, EEADR, EEADRH được sử dụng để truy nhập đến bộ nhớ này
ra COI1 2 là alii vào thanh ghi chốt lối ra PORTA
2 7
Trang 28Nghiên cứu ứng dung vi (liêu khiển PIC trong cío lường & diều khiến
RA4 là lỏi vào trigger Schmitt và là lối ra cực m áng ngỏ Chân RA4 dùng chun« với lói vào xung nhịp cho timerO khi dùng làm bộ đếm xung từ bên ngoài Các chân khác của cổng A được ghép với lồi vào của bộ so sánh tương tự và bộ biến đổi ADC 8 kênh Việc lựa chọn kênh vào cho ADC được chọn hỡi các bít diều khiển trên hai thanh ghi ADCON1 và ADCON2
3.4.2 C ổ n g B
Cổng B là cổng 8 bít vào/ra hai hướng Thanh ghi định hương cổng là TRISB Thanh ghi chốt lôi ra cổng B là PORTB
Chân RBO có thể dược chọn ỉà lối vào của ngắt ngoài Extlnt, lối vào này lập
cờ ngắt INTF khi có sườn lên hoặc sườn xuống của xung tuỳ thuộc eiá trị bit 1NTEDG trong thanh ghi OPTỈON
Có 3 chân của cổng B được ghép với chức năng ICSP là RB6, RB7, RB3 tương ứng với lối vào PGC, PGD, LVP khi nạp trình
r b p u (2 >
In S e r i a l P r o g r a m m i n g M o d e
Hình 7: cổng RB <0:3> và RB <4:7> 10 Mỗi chân Irong cổng B được nối tới một điện trở kéo lên (pull-up) có trị số
20 kQ bên trong Việc lựa chọn dùng/không dùng các điện trở này thực hiện bằng cách xoá/đạt bit RBPU trong thanh ghi OPTION
Lối vào RB4-RB7 làm phát sinh ngắt RBIF khi thay đổi trạng thái nếu các chân này được định nghĩa là các lối vào Trạnu thái hiện tại của lối vào này được so
Trang 29Nghiên cứu ửnq dung 17 (liền khiển PỈC trong cío lường & điều khiển
sánh với trạng thái được chốt lại tại lần đọc cổng trước đó, khi có sự khác nhau thì
cờ nẹắt RBIF được lập
Cổng c là cổng 8 bit vào/ra hai hướng Thanh ghi định hướng cổng là TRISC Các chân của cống c được ghép với các chức năng của mạch ngoại vi Các lối vào của cổ nu c có bộ đệm kiểu triggơ Schmitt Bảng dưới dây liệt kê các chức năng ghép của cổng c
Port/Peripheral Select*2'
Peripheral Data Out Poit'Ponphofal SoloedHenpnerai Data urn
WRPort
RD TRIS
Peripheral
OE*
SchmittTrigger V
?rjPort
D Q
►CK>_QDau Laỉch
D o
►ck\_qTRIS Latch
I ? topm111
VSchmrtlInggerwill)
SMBusLevels
H ình 8: Cổng RC<0:2 - 5:7> và RC<3:4>.
Bang 3 : Các chức năng "hep của cổng C.
RƠ)/T1 O SO /TICK I bito Cổng vào/ra Lối ra dao động Timer 1 Lối vào xung nhịp
Timer 1
R V 1 / T 1OSI/CCP2 bit 1 Cổng vào/ra Lối vào dao động Timer 1 Lối vào
Capiure2/lối ra Compare2 Lối ra PWM2 RC2/CPFI hit 2 Cổng vào/ra Lối vào Capture 1/lối ra Compare 1 Lối ra
PWM1 RC3/SCK/SCL bit 3 Lối ra xung nhịp của chế độ truyền đồng bộ tuần tự SPI
hoặc I2C KC4/SDI/SDA bit 4 Lối vào D A TA của chế độ SPI, DATA I/O của 12C
RC5/SD0 hit 5 Cổng vào/ra Lối ra của cổng truyền đổng bộ tuần tự
RC6/TX/CK bil 6 Cổng vào/ra Lối ra Tx của USART Xung nhịp chế độ
truyền đồng bộ
R C 7/R X /D T bit 7 Cổng vào/ra Lôi vào Rx cùa USART Dữ liệu chế độ
truyền đồng bộ
2 9
Trang 30Nghiên cứu ứng dụng vi điểu khiển PIC trong đo lường & điều khiển
3.4.4 C ốn g I)
Cổng D là cống 8 bít vào/ra hai
hướng, [hanh ghi định hướng cổng là
TRISD Các lối vào cùa cổng D có bộ đệm
kiểu triggư Schmitt c ổ n g D có thể dược
định dạng là cổng song song 8 bit kiểu
Slave, việc điều khiển các chức năng
Đọc/Ghi/Chọn cổng sử dụng các chân
REO/RE 1/RE2 của cổng E
3.4.5 C ổ n g E
Cổng E là cổng vào ra hai hướng gồm
các chân RE0/RD/AN5, RE1ẠVR/AN6,
RE2/CS/AN7 Thanh ghi TRISE định hướng
cổ nu là vào/ra Thanh ghi PORTE g h i g iá trị
cần đưa ra cổng, c ổ n g E còn là các lối
vào/ra điều khiển cổníĩ song sonẹ khi cổng
D dược thiết lập là cổng vào/ra song song
Các chân REO /RE 1/RE2 còn là kênh vào
điện áp tương tự thứ 6, 7, 8 của bộ biến đổi
ADC
H ình 9: cổng D.
H ình 10: cổng E.
Trang 31Nghiên cữu ÍÙÌÍỊ dụng vi (licit khiển PIC trong do lường & điều khiển
- Có bộ chia trước 8 bít lập trình được
- C h ọ n xung nhịp bên trone hoặc bên ngoài
- Sinh ngất T0IF khi tràn chuyển từ FFh —> OOh
- Chọn sườn xung khi lấy XUI 12 nhịp từ bên ngoài
TirnerO dùng làm bộ dem xung nhịp của vi điều khiển để tạo ra một bộ đếm thời gian Chế độ đếm thời gian được chọn bằng cách đặt bit TOCS = 0 (bit OPTIüN<5>) Trong chế độ đếm thời gian, thanh ghi TMRO tăng một đơn vị sau mỗi chu kỳ máy Thanh ghi TMRO có thể được ghi đọc Iron« chương trình để xác lặp hoặc lấy giá trị hiện thời của TimerO
Dala Bus / 8
Trang 32Nĩịhiên cứu ứntỊ (hum 17 diều khiên PỈC tron Q do lường & điều khiển
TimerO còn (lùng clể đếm các xung từ bèn ngoài cấp qua chân RA4 Chế độ đếm xung được chọn hãng cách đạt TOCS = 1 Trong chê độ này thanh ghi TMRO táng một đơn vị sau mỗi sườn lên hoặc sườn xuống, luỳ thuộc vào trạng thái bít TOSE
Bộ chia trước được dùng chung cho hai khối watchdog và TimerO Việc gán
bộ chia trước cho khối nào được chọn bằng bit PSA (OPTION<3>) Hệ số chia phụ thuộc giá trị các bit PS2:PS1 :PS0 của thanh ghi OPTION
N gắt TimerO
Neất TimerO xảy ra khi thanh ghi TMRO bị tràn, chuyển từ FFh -> OOh Sự tràn này sẽ đật bit TOIF = 1 Ngắt T0IF có thể được che bằng bit TOIE Cờ T0IF phải được xoá bầr>2 phần mềm
3.5.2 Khói Timerl
Sel Flag bit
TMR1IF on
Hình 12: Sơ đồ khối Tim erl.
rimer 1 là bộ đếm 16 bit được cấu tạo từ hai (hanh ghi 8 bit TMR1H và
T M R 1L Cặp hai thanh ghi T M R 1H và T M R 1L tăng từ OOOOh đến FFFFh rồi trở về OOOOh Ngát TM R1IF nếu được cho phép sẽ được tạo ra khi bộ đếm chuyển từ FFFFh về OOOOh và lập bit TMR1IF Ngắt này có thể cho phép/không cho phép bằng cách lập/xoá bit T M R 1IE
Thanh ghi TI CON dô dặt các chế độ cho Timerl
Timerl cổ thể làm việc trong hai chế độ: là bộ đếm thời gian hoặc là bộ đếm xung
Ý ncỉíia các bít cùa thanh ghi TI CON
Bit 7 - 6: Không dùng
Trang 33Nạhiên cứu ứiìíỊ (/mu’ vi (lieu khiên PIC trong do lường & điều khiển
Bit 5-4: TICKPSI chọn hệ số bộ chia trước
Bít 2: TI SYNC điểu khiến đổng bộ với xung bên ngoài
1 = không đồng bộ với xung nhịp
0 = có đồnẹ bộ với xung nhịp
Bit 1 : TMR1CS chọn nguồn xung nhịp
1 = xune nhịp ngoài dưa vào từ chân RB6
0 = xung nhịp bên trong, bằne 1/4 tần số xung nhịp của dao động thạch anh FoscBit 0: T M R I ON bật/ tát timer 1
Hình 13: Sơ đồ khối Timer 2.
Xung nhịp vào (Fosc/4) qua hộ chia trước có các hệ số 1:1, 1:4, 1:16 được chọn bằng hai bit T2CKPS1 :T2CKPS0
Timer2 có thanh ghi 8 hit PR2 Timer2 tăng từ OOh đến khi bằng giá trị lưu trône PR2 rồi quay về OOh tại chu kỳ xung tiếp theo PR2 là thanh ghi chi/đọc được PR2 được sán là FFh khi khới độns lại
Lối ra "bằng nhau" EQ cua TMR2 dưa vào bộ chia sau 4 bit 1:1, 1:2, 1:16 tạo ra ngắt TMR2 (lập bit TM R2IF = 1)
33
Trang 34Nghiên cứu ứm> dung vi diều klìiển PiC trong do lường & diều khiển
START 3nd STOP bit Detect
Addr Match
Set, Resel
*■ s,p bits (SSPSTAT reg)
Timer2 có thể được tát khi không sử dụng đến bằng cách đặt bit T M R 2 0 N = 0 nham aiảni công suất tiêu thụ
3.6 CỔNG NỐI TIẾP ĐỔNG BỘ I2C
MSSP là khối diều khiển bus I2C
hoạt động ở chế độ chủ (M aster Mode)
hoặc chế độ tớ (Slave M ode). Khối này
còn tạo ra các ngắt tại các bit START và
STOP đé xác định trạng thái bus rỗi trong
chế độ đa chủ (M iàíi M aster Mode)
(nhiều thiết bị I2C cùng truy nhập đến
các thiết bị 12C tớ trong bus) Khối MSSP
thực hiện các chế độ làm việc tiêu chuẩn
7 bit hoặc 10 bit địa chỉ
Hai chân dùng để trao đổi dữ liệu là
- Dữ liệu nối tiếp SDA - RC4/SDI/SDA
Các Ihanh ehi sử dụng cho hoạt động của bus I2C là
- Thanh ghi điều khiển MSSP (SSPCON)
- Thanh çhi dieu khiên 2 (SSPCON2)
- Thanh ũhi trạng thái (SSPSTAT)
- Thanh chi đệm truyền nhận tuần tự (SSPBUF)
- Thanh ghi dịch (SSPSR)
- Thanh çhi địa chi MSSP (SSPADD)
SSPCON, SSPCON2, SSPSTAT là thanh ghi điều khiển và đặt trạng thái của khối giao tiếp chuẩn I2C
SSPSR là thanh chi dịch để dịch dữ liệu ra/vào, không truy nhập trực tiếp SSPBUF là thanh chi đệm để dữ liệu được chi vào/đọc ra
SSPADD dù 112c để lưu địa chí của thiết bị tớ khi khối SSP dược cấu hình là• • •thiết bị tớ Khi được cấu hình là thiết bị chủ, 7 bit thấp của SSPADD dù ne để lưu giá tri cho mach tao tốc đô baud
Hình 14: Khối MSSP.
Trang 35Nghiên cứu ÍÙIÍỊ (lụiiíỊ vi diều khiển PiC trong do lường & diều khiển
Tron«! ch ế độ nhận SSPSR và SSPBUF tạo thành cặp thanh ghi đệm kép Khi SSPSR nhận (lù một byte, nó chuyển byte dữ liệu sang SSPBUF và lập cừ ngất SSPIF
Tron2 khi truyền việc viết một byte dữ liệu vào SSPBUF sẽ ghi vào cả hai thanh ghi SSPBUF và SSPSR
3.7 BỘ THU PHÁT KHÔNG ĐổNG BỘ VẠN NẢNG UART
Bộ thu phát không đồng bộ UART truyền dữ liệu theo kiểu NRZ: bit START
- 8 bít dữ liệu - bit STOP Một khối BRG (Baud Rate Generator) bên trong có vai trò tạo các tốc độ baud theo tiêu chuẩn bàns cách chia tần số xung nhịp lấy từ mạch dao động Chức năng tạo bít kiểm tra chẵn lẻ khôrm được hỗ trợ trên phần cứng nhưna điều này có thể thực hiện bằng phần mềm
3.7.1 Khối truyền không dong bộ
Phần chính của khối là thanh ghi dịch TSR nó nhận dữ liệu cần gửi từ thanh ghi TX REG trước đó được khối xử lý ghi vào TSR được nạp khi bit STOP của khung dữ liệu trước đã được gửi đi Ngay sau khi bit STOP kết thúc TSR được nạp bằng nội dung cùa TXREG TXREG rỗng và cờ ngắt TXIF dược lập báo trạng thái TXREG đang rỗng Việc truyền có thể dược cho phép/cấm bằng cách lập/xoá bit TXEN
Hình 15: Khối truyền không đồng bộ.
3.7.2 Khối n h ận không đ ồ n g bộ
Phần chính của bộ nhận nối tiếp là thanh ghi dịch nối tiếp RSR Sau khi lấy mẫu bit STOP, dữ liệu nhận dược trong RSR chuyển sang thanh ghi RCREG nếu thanh chi này đang rỏ ne Nếu việc chuyển thành công, cờ ngắt RCIF được lập
35
Trang 36Nghiên cứa ứng dụng vi điều khiển PỈC trong đo lường & diều khiên
Hình 16: Khối nhận không đổng bộ.
RCREG !à thanh ghi đệm kép kiểu FIFO cho phép lưu 2 byte trong RCREG trone khi byte thứ 3 đang dược dịch trong RSR Nếu bit STOP của byte thứ 3 được nhận mà thanh ghi RCREG vẫn đang đầy thì bit báo lỗi tràn OERR (Overflow
E rro r) được lập để báo có sự tràn của bộ nhận và byte vừa nhận sẽ bị loại bỏ Một bit báo lỗi khung truyền FERR (Fram e E rro r) được lập khi khổng nhận được bit STOP
3.8 KHỐI CHUYỂN ĐỎI TƯƠNG T ự /S ố A DC
Khối chuyển đổi tương tự/số có 8 lối vào được tích hựp trong vi điêu khiển PIC16F877A có độ phân giải 10 bit Khối ADC có lối vào cho mức điện áp chuẩn
v +rf và v_ref Điện áp chuẩn cho khối ADC có thê’ lựa chọn bànc phàn mềm với cácmức là điện áp nguồn Vdd/Vss hoặc điện áp chuẩn từ bên ngoài qua chânRA3/RA2
Khối ADC có 4 thanh ũhi
A D R ESH lưu phần byte cao của kết quả biến đổi ADC
A D R ESL lưu phần byte thấp của kết quả biến đổi ADC
ADCONÖ thanh ghi điều khiển 0
ADCS1 :ADCS() Chọn nguồn xung nhịp và tốc độ cho khối biến đổi ADC
Trang 37Nghiên cứu ứniỊ (lụng vi điêu khiển PÌC tronq đo lường & diều khiển
GO/DON lĩ
ADON
Trạng thái chuyển đổi
Bật/tắt khối chuyển đổi ADC
(R*ílcic»tccVùtiAQ*! Ị - - Ị j
O-* -Hír:
PCFG3 PCfCO
CHS2 Lils:i ĩl.l
> v, v
, v
>V-= v
> v, v
REÍIAN?'«
£ x ] lìE IÍA N o "’
{x] «EK/VNí"*
|^/| RAÍI/AM [y] RA.Ỉ.'AN.Wh>*i
3.9 CÁC ĐẶC ĐIỂM RIÊNG VẢ THIẾT LẬP CẤU HÌNH PIC
3.9.1 Các điểm inới trong vi điều khiển P1C16F877A
Vi điều khiển PIC16F877A có nhiều bộ phận, đặc tính được tích hợp thêm để làm tăng tối đa độ tin cậy, giảm giá thành hệ thống do ít cần dùng thêm các linh kiện cẩn thêm bên ngoài, có chế độ tiết kiệm năng lượng và khả năng chống sao chép nội dung chương trình
• Lựa chợn nguồn xung nhịp
Tuv theo tần số và linh kiện tạo dao động để chọn một trong 4 cấu hình:
- L P Bộ dao động thạch anh công suất thấp, tần số < 200 ki Iz
- XT Rộ dao độn2 thạch anh chuẩn, tần số l MHz đến 4 MHz
HS Bộ đao động thạch anh tần số cao, từ 4 MH/ đến 20 MHz
- RC Bộ dao động đơn giản dùno điện trở và tụ điện
37
Trang 38Nghiên cứu ứniỊ (I iiihị vi điêu khiến PÌC trong do lường & (licit khiên
• C ác mạch tạ« trạ n g thái khỏi động lại R E S E T
Hình 18: C á c k h ô i tạ o tín h iệ u R E S E T
Khối tạo tín hiệu RESET tạo ra các kiểu tín hiệu RESET khác nhau cho vi điều khiển tuỳ theo các điều kiện sau:
Reset khi vi điều khiển mới được cấp nguồn POR (Pow er 0 1 ì Reset).
- Lối vào MCRL M aster C lear trong chế độ hoạt động bình thường
- Lối vào MCRL M aster C lear trong chế độ nghỉ SLEEP
- Bộ đếm WDT tràn tạo ra tín hiệu Reset khi hoạt động bình thường
Bộ đếm WDT tràn tạo ra tín hiệu Wake-up trong chế độ SLEEP
- Khối giám sát diện áp nguồn tạo tín hiệu Reset khi nguồn cung cấp sụt quá ngưỡng
• Các ngát Interrup t
Trong vi điều khiển PIC16F877A có 15 nsuồn sinh ra ngắt Thanh ghi điều khiển ngắl 1NTCON ghi các cờ ngắt và các bít cho phép ngắt toàn cục G1E, INTF, T01F, RBIF Các ngắt từ các thiết bị ngoại vi được ghi trong thanh ghi PIR1 và PIR2, các bit cho phép ngắt ngoại vi trong thanh ghi PIE1, PIE2
Trang 39Nghiên cửu ứniỊ dụiìỊị vi (tiều khiển PIC trong íỉo lường & diều khiển
Hình 19: Tổ hợp logic các nguồn ngắt
Khi một cờ ngắt được lập, cờ cho phép ngắt CiIE được xoá đế cấm các ngắt khác Địa chí sẽ quay lại được cất vào ngăn xếp và thanh ghi đếm chương trình PC được nạp giá trị 0004h là địa chỉ của chương trình xử lý ngắt Nguồn sinh ngắt được xác (lịnh bằng cách hỏi vòng các cờ ngắt Sau khi xử lý xong ngắt, cừ ngắt tương ứng phải được xoá để thoát vòng lặp ngắt
• Bộ đ ế m w atchdog
Bộ đếm watchdog lù một bộ đếm xun« từ một khôi dao động riêng độc lập với xung nhịp của vi điều khiển, nó có chức năng giám sát sự hoạt động của chương trình Nếu vi điều khiển bị treo do lỗi phần mềm, hệ thống có khá năng tự khởi độnc, lại được
Khi sử dụng bộ giám sát watchdog, chương trình phải được thiết k ế sao cho
bộ đếm watchdog phải được xoá về 0 sau một chu kỳ nhất định để bộ đếm này khỏ na bị tràn Nếu vì một lý do nào đó, chương trình không xoá bộ đếm watchdog thì khi bộ đếm tràn: chuyển từ FFh về 0 sẽ sinh tín hiệu WDT time out Reset
Tronẹ chế độ hoạt động, nếu bộ đếm WDT tràn thì vi điều khiển sẽ khởi động lại Nếu vi điều khiên đang ở trạng thái SLEEP, bộ đếm WDT tràn sẽ đưa CPU trở về chế độ hoạt động bình thường Bit WDTE (Watchdog Ena ble) trong từ cấu hình dìinc để cấm/cho phép khối watchdog
Khỏi watchdog dùng chung bộ chia trước với TimerO Chu kỳ tràn của bộ đếm watchdog có thể xác lập trong dải 18,2 ms đến 2,5 s
3 9
Trang 40Nghiên cứu Wig dụng vi lỉiéu khiển PIC trong đo lường & âiều khiển
f rom TMRO Clock Source (Figure 5-1)
WOTTime-out
Hình 20: Khối chức nãng mạch watchdog.
3.9.2 Định câu hình (C onfig Word)
Việc xác định các chế độ làm việc hay thiết lập các lựa chọn riêng cho vi điều khiển PIC16F877A được thực hiện bằng việc Iập/xoá các bit chức năng trong một lừ mã điều khiển dặc biệt gọi là Từ cấu hình (Cơnýìg Word) tại địa chí 2007h
Từ cáu hình này chỉ dược truy nhập hay thay đổi trong quá trình nạp trình
Từ cấu hình gồm 14 bít, trone đó có 3 bit khône dùng
Ý nehĩa các bit tron2 từ cấu hình
C P Bảo vệ bộ nhớ chương trình
1 = cho phép đọc chương trình trong bộ nhớ ra
0 = cấm đọc chương trình
DEBUG Cho phép debug trên hệ thống
1 = Không s ử dụng debug trên hệ thống: RB6, RB7 là chân vào/ra
0 = Sử dụ ne debug trên hệ thống: RB6, RB7 là chân nối đến mạch debug
YVRT1: YVRTO Cho phép ghi vào bộ nhớ chương trình
11 = Khônu chống ghi tất cả mọi địa chỉ