GIÁO TRÌNH VI XỬ LÝ 2 – CHƯƠNG 2. VI ĐIỀU KHIỂN PIC 16F877A ppt – Tài liệu text

GIÁO TRÌNH VI XỬ LÝ 2 – CHƯƠNG 2. VI ĐIỀU KHIỂN PIC 16F877A ppt

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 (3.08 MB, 53 trang )

Chương 2

VI ĐIỀU KHIỂN PIC 16F877A

TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC
MỘT SỐ ĐẶC TÍNH CỦA VI ĐIỀU KHIỂN PIC

VI ĐIỀU KHIỂN PIC 16F877A

TỔNG QUÁT VỀ PIC16F877A
Giới thiệu

Sơ đồ khối
Sơ đồ chân và chức năng các chân
TỔ CHỨC BỘ NHỚ

Cấu trúc bộ nhớ chương trình
Cấu trúc bộ nhớ dữ liệu
File thanh ghi kết quả tổng quát

Các thanh ghi có chức năng đặc biệt
Phân trang bộ nhớ chương trình
Các thanh ghi đòa chỉ gián tiếp, thanh ghi INDF và FSR

DỮ LIỆU EEPROM VÀ BỘ NHỚ CHƯƠNG TRÌNH FLASH

Thanh ghi EEADR và EEADRH
Thanh ghi EECON1 và EECON2
Đọc dữ liệu từ bộ nhớ EEPROM
Ghi dữ liệu vào bộ nhớ EEPROM

Đọc dữ liệu từ bộ nhớ chương trình Flash
Ghi dữ liệu vào bộ nhớ chương trình Flash

Bảo vệ chống ghi nhầm
Hoạt động trong lúc bảo vệ chống ghi
CÁC PORT XUẤT NHẬP (IO)
PORTA và thanh ghi TRISA
PORTB và thanh ghi TRISB

PORTC và thanh ghi TRISC
PORTD và thanh ghi TRISD
PORTE và thanh ghi TRISE

BỘ ĐỊNH THỜI TIMER0
Ngắt của Timer0
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM – http://www.thuvienspkt.edu.vn
Ban quyen © Truong DH Su pham Ky thuat TP. HCM
Chương 2. Vi điều khiển PIC. SPKT – Nguyễn Đình Phú
36
Vi xử lý

Timer0 với nguồn xung đếm từ bên ngoài
Bộ chia trước
BỘ ĐỊNH THỜI TIMER1
Hoạt động của Timer1 ở chế độ đònh thời
Hoạt động của Timer1 ở chế độ Counter

Hoạt động của Timer1 ở chế độ Counter đồng bộ

Hoạt động của Timer1 ở chế độ Counter bất đồng bộ
Đọc và ghi Timer1 trong chế độ đếm không đồng bộ

Bộ dao động của Timer1

Reset Timer1 sử dụng ngõ ra CCP Trigger

Reset cặp thanh ghi TMR1H, TMR1L của Timer1
BỘ ĐỊNH THỜI TIMER2
Bộ chia trước và postscaler của Timer2
Ngõ ra của TMR2
KHỐI CHUYỂN ĐỔI TƯƠNG TỰ SANG SỐ ADC
Ngõ ra của TMR2
Các yêu cầu nhận dữ liệu ADC
Lựa chọn xung clock cho ADC

Đònh cấu hình cho các ngõ vào tương tự của ADC
Chuyển đổi ADC

Các thanh ghi lưu kết quả của ADC
Hoạt động chuyển đổi ADC trong chế độ Sleep
Ảnh hưởng của reset

KHỐI SO SÁNH
Hoạt động so sánh
Điện áp so sánh
Thời gian đáp ứng
Ngõ ra bộ so sánh

Ngắt của bộ so sánh

Hoạt động của bộ so sánh ở chế độ Sleep
Ảnh hưởng của reset

Kết nối các ngõ vào tương tự
CÁC CẤU TRÚC ĐẶC BIỆT CỦA CPU
CẤU HÌNH BỘ DAO ĐỘNG
Các loại mạch dao động
Dao động thạch anh/tụ Ceramic
Bộ dao động RC
MẠCH RESET CPU
Reset
MCLR

Reset khi mới cấp điện POR

Timer reset khi mới cấp điện (PWRT)
Bộ dao động Start-up (OST)
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM – http://www.thuvienspkt.edu.vn
Ban quyen © Truong DH Su pham Ky thuat TP. HCM
Chương 2. Vi điều khiển PIC. SPKT – Nguyễn Đình Phú
37
Vi xử lý

Reset Brown-out (BOR)
Trình tự thời gian
Thanh ghi trạng thái/thanh ghi công suất

HOẠT ĐỘNG NGẮT
Ngắt ngoài INT

Ngắt TMR0
Ngắt PORTB thay đổi
Lưu dữ liệu khi xảy ra ngắt

HOẠT ĐỘNG CỦA WATCHDOG TIMER WDT
HOẠT ĐỘNG CỦA CPU Ở CHẾ ĐỘ NGỦ SLEEP

Đánh thức cpu khỏi chế độ ngủ
Đánh thức cpu dùng các ngắt

MẠCH GỢ RỐI
KIỂM TRA CHƯƠNG TRÌNH/ BẢO VỆ BẰNG MÃ

MÃ NHẬN DẠNG
LẬP TRÌNH TUẦN TỰ CỦA MẠCH TÍCH HP BÊN TRONG ICSP (In-Circuit Serial Programming)

LẬP TRÌNH ĐIỆN ÁP THẤP ICSP (NGUỒN ĐƠN)

SƠ ĐỒ NGUYÊN LÝ GIAO TIẾP GIỮA MÁY TÍNH VÀ PIC 16F877A

Mạch nạp PIC trực tiếp từ cổng COM

Mạch nạp PIC gián tiếp từ cổng COM qua ic max232
Mạch nạp PIC qua cổng LPT
Bảng và hình:
Bảng 2-1. Các vi điều khiển họ PIC16F87X.
Bảng 2-2. Tóm tắt đặc điểm PIC16F877A
Bảng 2-3. Lựa chọn bank thanh ghi.
Bảng 2-4. Tóm tắt các thanh ghi đặc biệt.
Bảng 2-5. Tóm tắt các thanh ghi đặc biệt.

Bảng 2-6. Tóm tắt các thanh ghi đặc biệt.
Bảng 2-7. Các bit lựa chọn hệ số chia trước.
Bảng 2-8.

Các thanh ghi sử dụng cho bộ nhớ EEPROM.
Bảng 2-9.

Các chức năng của PORTA.
Bảng 2-10.

Tóm tắt các thanh ghi liên kết với PORTA.
Bảng 2-11.

Các chức năng của PORTB.
Bảng 2-12.

Các thanh ghi kết nối với PORTB.
Bảng 2-13.

Các thanh ghi kết nối với PORTB.
Bảng 2-14.

Các chức năng của PORTC.
Bảng 2-15.

Các thanh ghi kết nối với PORTD.
Bảng 2-16.

Các chức năng của PORTD.
Bảng 2-17.

Các thanh ghi kết nối với PORTE.
Bảng 2-18.

Các chức năng của PORTE.
Bảng 2-19.

Các bit lựa chọn tỉ lệ bộ chia trước.
Bảng 2-20.

Lựa chọn tụ cho bộ dao động.
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM – http://www.thuvienspkt.edu.vn
Ban quyen © Truong DH Su pham Ky thuat TP. HCM
Chương 2. Vi điều khiển PIC. SPKT – Nguyễn Đình Phú
38
Vi xử lý

Bảng 2-21.

Các thanh ghi của Timer1.
Bảng 2-22.

Các thanh ghi của Timer2.
Bảng 2-23.

Các bit lựa chọn xung chuyển đổi ADC.
Bảng 2-24.

Các bit điều khiển ADC.

Bảng 2-25.

Các bit lựa chọn xung chuyển đổi ADC.
Bảng 2-26.

Các thanh ghi dùng cho chuyển đổi ADC.
Bảng 2-27.

Các thanh ghi dùng cho bộ so sánh.
Bảng 2-28.

Các thanh ghi dùng cho bộ tạo điện áp chuẩn.
Bảng 2-29.

Chọn các thạch anh và tụ.
Bảng 2-30.

Chọn các thạch anh và tụ.
Bảng 2-31.

Chọn các thạch anh và tụ.
Bảng 2-32.

Giá trò của các thanh ghi khi bò reset.
Bảng 2-33.

Giá trò của các thanh ghi khi bò reset (tiếp tục).
Bảng 2-34.

Các thanh ghi của WDT.

Bảng 2-35.

Các tài nguyên của mạch gỡ rối.
Hình 2-1. Sơ đồ chân họ PIC16F87XA.
Hình 2-2. Sơ đồ khối PIC16F87XA.
Hình 2-3. Sơ đồ chân
Hình 2-4. Sơ đồ bộ nhớ chương trình và ngăn xếp.
Hình 2-5. Sơ đồ File thanh ghi.
Hình 2-6. Các trường hợp nạp giá trò cho PC.
Hình 2-7.

Đòa chỉ trực tiếp/gián tiếp.
Hình 2-8.

Ghi dữ liệu khối vào bộ nhớ chương trình flash.
Hình 2-9.

Sơ đồ mạch chân RA3:RA0.
Hình 2-10.

Sơ đồ mạch chân RA4/T0CKI.
Hình 2-11.

Sơ đồ mạch chân RA5.
Hình 2-12.

Sơ đồ mạch các chân RB3:RB0.
Hình 2-13.

Sơ đồ mạch các chân RB7:RB4.

Hình 2-14.

Sơ đồ mạch các chân RC7:RB5 và RC2:RB0.
Hình 2-15.

Sơ đồ mạch các chân RC4:RB3.
Hình 2-16.

Sơ đồ mạch các chân PORTD.
Hình 2-17.

Sơ đồ mạch các chân PORTE.
Hình 2-18.

Sơ đồ khối của timer0 và bộ chia trước với WDT.
Hình 2-19.

Giản đồ thời gian xung đếm của Counter1.
Hình 2-20. Sơ đồ khối của Timer1.
Hình 2-21. Sơ đồ khối của Timer2.
Hình 2-22. Sơ đồ khối của Timer2.
Hình 2-23. Sơ đồ mạch của ngõ vào ADC.
Hình 2-24. Chu kỳ chuyển đổi ADC.
Hình 2-25. Cặp thanh ghi kết quả hiệu chỉnh phải và trái.
Hình 2-26. Các kiểu hoạt động của bộ so sánh.
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM – http://www.thuvienspkt.edu.vn
Ban quyen © Truong DH Su pham Ky thuat TP. HCM
Chương 2. Vi điều khiển PIC. SPKT – Nguyễn Đình Phú
39

Vi xử lý

Hình 2-27. Các kiểu hoạt động của bộ so sánh.
Hình 2-28. Sơ đồ mạch của bộ so sánh.
Hình 2-29. Sơ đồ mạch ngõ vào tương tự.
Hình 2-30. Sơ đồ khối mạch tạo điện áp chuẩn cho bộ so sánh.
Hình 2-31. Dao động dùng thạch anh/tụ cộng hưởng cấu hình XT, LP hoặc HS.
Hình 2-32. Ngõ vào nhận xung từ bên ngoài cấu hình XT, LP hoặc HS.
Hình 2-33. Bộ dao động RC.
Hình 2-34. Sơ đồ mạch reset trong chip.
Hình 2-34. Mạch reset.
Hình 2-35. Trình tự thời gian khi reset POR có nối
MCLR
.
Hình 2-36. Trình tự thời gian khi reset POR không nối
MCLR
.
Hình 2-37. Trình tự thời gian khi reset POR không nối
MCLR
.
Hình 2-38. Sơ đồ logic của các ngắt.
Hình 2-39. Sơ đồ khối của WDT.
Hình 2-40. Đánh thức cpu bằng cách dùng ngắt.
Hình 2-41. Các đường giao tiếp với mạch nạp nối tiếp.
Hình 2-42. Sơ đồ nguyên lý mạch nạp trực tiếp từ cổng COM.
Hình 2-43. Các đường giao tiếp với mạch nạp nối tiếp qua IC chuyển đổi.
Hình 2-44. Sơ đồ nguyên lý mạch nạp nối tiếp từ cổng COM qua IC chuyển đổi.
Hình 2-45. Sơ đồ nguyên lý mạch nạp dùng cổng LPT.

Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM – http://www.thuvienspkt.edu.vn
Ban quyen © Truong DH Su pham Ky thuat TP. HCM
Chương 2. Vi điều khiển PIC. SPKT – Nguyễn Đình Phú
40
Vi xử lý

I. TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC
PIC là một họ vi điều khiển RISC được sản xuất bởi công ty Microchip Technology. Thế hệ
PIC đầu tiên là PIC1650 được phát triển bởi Microelectronics Division thuộc General – Instrument.
PIC là viết tắt của “Programmable Intelligent Computer” là một sản phẩm của hãng General
Instruments đặt cho dòng sản phẩm đầu tiên là PIC1650. Tại thời điểm đó PIC1650 được dùng để
giao tiếp với các thiết bò ngoại vi cho máy chủ 16 bit CP1600, vì vậy, người ta cũng gọi PIC với cái
tên “Peripheral Interface Controller” – bộ điều khiển giao tiếp ngoại vi.
CP1600 là một CPU mạnh nhưng lại yếu về các hoạt động xuất nhập vì vậy PIC 8-bit được
phát triển vào khoảng năm 1975 để hỗ trợ cho hoạt động xuất nhập của CP1600.
PIC ROM để chứa mã, mặc dù khái niệm RISC chưa được sử dụng thời bấy giờ, nhưng PIC
thực sự là một vi điều khiển với kiến trúc RISC, chạy một lệnh với một chu kỳ máy – gồm 4 chu kỳ
của bộ dao động.
Năm 1985 General Instruments bán công nghệ các vi điện tử của họ, và chủ sở hữu mới hủy
bỏ hầu hết các dự án – lúc đó đã quá lỗi thời. Tuy nhiên PIC được bổ sung EEPROM để tạo thành 1
bộ điều khiển vào ra lập 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.
II. MỘT SỐ ĐẶ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 có
thể điểm qua một vài nét như sau:

 Là CPU 8/16 bit, xây dựng theo kiến trúc Harvard có sửa đổi.
 Có bộ nhớ Flash và ROM có thể tuỳ chọn từ 256 byte đến 256 Kbyte.
 Có các cổng xuất – nhập (I/O ports).
 Có timer 8/16 bit.
 Có các chuẩn giao tiếp nối tiếp đồng bộ/không đồng bộ USART.
 Có các bộ chuyển đổi ADC 10/12 bit.
 Có các bộ so sánh điện áp (Voltage Comparators).
 Có các khối Capture/Compare/PWM.
 Có hỗ trợ giao tiếp LCD.
 Có MSSP Peripheral dùng cho các giao tiếp I²C, SPI, và I²S.
 Có bộ nhớ nội EEPROM – có thể ghi/xoá lên tới 1 triệu lần.
 Có khối Điều khiển động cơ, đọc encoder.
 Có hỗ trợ giao tiếp USB.
 Có hỗ trợ điều khiển Ethernet.
 Có hỗ trợ giao tiếp CAN.
Đặc điểm thực thi tốc độ cao CPU RISC của họ vi điều khiển PIC16F87XA là:
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM – http://www.thuvienspkt.edu.vn
Ban quyen © Truong DH Su pham Ky thuat TP. HCM
Chương 2. Vi điều khiển PIC. SPKT – Nguyễn Đình Phú
41
Vi xử lý

 Chỉ gồm 35 lệnh đơn.
 Tất cả các lệnh là 1 chu kì ngoại trừ chương trình con là 2 chu kì.
 Tốc độ hoạt động:
* DC- 20MHz ngõ vào xung clock.
* DC- 200ns chu kì lệnh.
 Dung lượng của bộ nhớ chương trình Flash là 8K×14words.
 Dung lượng của bộ nhớ dữ liệu RAM là 368×8bytes.

 Dung lượng của bộ nhớ dữ liệu EEPROM là 256×8 bytes.
a. Các đặc tính ngoại vi
 Timer0: là bộ đònh thời timer/counter 8 bit có bộ chia trước.
 Timer1: là bộ đònh thời timer/counter 16 bit có bộ chia trước, có thể đếm khi CPU
đang ở trong chế độ ngủ với nguồn xung từ tụ thạch anh hoặc nguồn xung bên ngoài.
 Timer2: bộ đònh thời timer/counter 8 bit với thanh ghi 8-bit, chia trước và postscaler.
 Hai khối Capture, Compare, PWM.
 Capture có độ rộng 16-bit, độ phân giải 12.5ns
 Compare có độ rộng 16-bit, độ phân giải 200ns
 Độ phân giải lớn nhất của PWM là 10-bit.
b. Các đặc tính về tương tự
 Có 8 kênh chuyển đổi tín hiệu tương tự thành tín hiệu số ADC 10-bit.
 Có reset BOR (Brown- Out Reset).
 Khối so sánh điện áp tương tự:
 Hai bộ so sánh tương tự.
 Khối tạo điện áp chuẩn V
REF
tích hợp bên trong có thể lập trình.
 Đa hợp ngõ vào lập trình từ ngõ vào của CPU với điện áp chuẩn bên trong.
 Các ngõ ra của bộ so sánh có thể truy xuất từ bên ngoài.
c. Các đặc tính đặc biệt của vi điều khiển:
 Bộ nhớ chương trình Enhanced Flash cho phép xóa và ghi 100000 lần.
 Bộ nhớ dữ liệu EEPROM cho phép xóa và ghi 1000000 lần.
 Bộ nhớ EEPROM có thể lưu giữ dữ liệu hơn 40 năm và có thể tự lập trình lại dưới sự
điều khiển của phần mềm.
 Mạch lập trình nối tiếp ICSP thông qua 2 chân (In-Circuit Serial Programming).
 Nguồn sử dụng là nguồn đơn 5V cấp cho mạch lập trình nối tiếp.
 Có Watchdog Timer (WDT) với bộ dao động RC tích hợp sẵn trên Chip.
 Có thể lập trình mã bảo mật.
 Có thể hoạt động ở chế độ Sleep để tiết kiệm năng lượng.

 Có thể lưạ chọn bộ dao động.
 Có mạch điện gỡ rối ICD (In-Circuit Debug) thông qua 2 chân.
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM – http://www.thuvienspkt.edu.vn
Ban quyen © Truong DH Su pham Ky thuat TP. HCM
Chương 2. Vi điều khiển PIC. SPKT – Nguyễn Đình Phú
42
Vi xử lý

d. Công nghệ CMOS:
Công nghệ CMOS có các đặc tính: công suất thấp, công nghệ bộ nhớ Flash/EEPROM tốc độ
cao. Điện áp hoạt động từ 2V đến 5,5V và tiêu tốn năng lượng thấp. Phù hợp với nhiệt độ làm việc
trong công nghiệp và trong thương mại.
Bảng 2-1 trình bày tóm tắt cấu trúc của 4 loại PIC16F87X.

Bảng 2-1. Các vi điều khiển họ PIC16F87X.
Hình 2-1 trình bày sơ đồ chân của các loại PIC16F87XA.

Hình 2-1. Sơ đồ chân họ PIC16F87XA.
III. VI ĐIỀU KHIỂN PIC 16F877A
1. TỔNG QUÁT VỀ PIC16F877A:
a. Giới thiệu:
PIC16F877A có 40/44 chân với cấu trúc như sau:
 Có 5 port xuất/ nhập.
 Có 8 kênh chuyển đổi A/D.
 Được bổ sung các port tử song song.
 Có bộ nhớ gap nối so với PIC16F873A/PIC16F874A.
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn

Thu vien DH SPKT TP. HCM – http://www.thuvienspkt.edu.vn
Ban quyen © Truong DH Su pham Ky thuat TP. HCM
Chương 2. Vi điều khiển PIC. SPKT – Nguyễn Đình Phú
43
Vi xử lý

Bảng 2-2 sẽ tóm tắt đặc điểm PIC16F877A:
Đặc điểm PIC16F877A
Tan số hoạt động DC- 20MHz
Reset (và Delay) POR, BOR (PWRT, OST)

Bộ nhớ chương trình Flash (14-bit word) 8K
Bộ nhớ dữ liệu (byte) 368
Bộ nhớ dữ liệu EEPROM (byte) 256
Các nguồn ngắt 15
Các port xuất nhập Các port A, B, C, D, E
Timer 3
Các module capture/compare/PWM

2

Giao tiếp nối tiếp

MSSP, USART

Giao tiếp song song PSP
Module A/D 10bit 8 kênh ngõ vào
Bộ so sánh tương tự 2
Tập lệnh 35 lệnh

Số chân
40 chân PDIP
44 chân PLCC
44 chân TQFP
44 chân QFN

Bảng 2-2. Tóm tắt đặc điểm PIC16F877A
b. Sơ đồ khối:
Hình 2-2 trình bày sơ đồ khối của PIC16F877A, sơ đồ khối của PIC gồm các khối:
 Khối ALU – Arithmetic Logic Unit.
 Khối bộ nhớ chứa chương trình – Flash Program Memory.
 Khối bộ nhớ chứa dữ liệu EEPROM – Data EPROM.
 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ương tự sang số –ADC.
 Khối các port xuất nhập.
c. Sơ đồ chân và chức năng các chân:
Sơ đồ chân của PIC gồm nhiều loại nhưng ở đây khảo sát loại PIC 40 chân như hình 2-3.

Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM – http://www.thuvienspkt.edu.vn
Ban quyen © Truong DH Su pham Ky thuat TP. HCM
Chương 2. Vi điều khiển PIC. SPKT – Nguyễn Đình Phú
44
Vi xử lý

Hình 2-2. Sơ đồ khối PIC16F87XA.
Chức năng của các chân như sau:
 Chân OSC1/CLKI (13): là ngõ vào kết nối với dao động thạch anh hoặc ngõ vào nhận xung
clock bên ngoài.
 OSC1: ngõ vào dao động thạch anh hoặc ngõ vào nguồn xung ở bên ngoài. Ngõ vào
có mạch Schmitt Trigger nếu sử dụng dao động RC.
 CLKI: ngõ vào nguồn xung bên ngoài.
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM – http://www.thuvienspkt.edu.vn
Ban quyen © Truong DH Su pham Ky thuat TP. HCM
Chương 2. Vi điều khiển PIC. SPKT – Nguyễn Đình Phú
45
Vi xử lý

 Chân OSC2/CLKO (14): ngõ ra dao động thạch anh hoặc ngõ ra cấp xung clock.
 OSC2: ngõ ra dao động thạch anh. Kết nối đến thạch anh hoặc bộ cộng hưởng.
 CLKO: ở chế độ RC, ngõ ra của OSC2, bằng ¼ tần số của OSC1 và chính là tốc độ
của chu kì lệnh.

Hình 2-3. Sơ đồ chân
 Chân
MCLR
/V
PP
(1): có 2 chức năng:

MCLR
: là ngõ vào reset tích cực mức thấp.
 V

PP
: khi lập trình cho PIC thì đóng vai trò là ngõ vào nhận điện áp lập trình.
 Chân RA0/AN0 (2): có 2 chức năng:
 RA0: xuất/ nhập số.
 AN0: ngõ vào tương tự của kênh thứ 0.
 Chân RA1/AN1(3):
 RA0: xuất/nhập số.
 AN1: ngõ vào tương tự của kênh thứ 1.
 Chân RA2/AN2/VREF-/CVREF (4):
 RA2: xuất/nhập số.
 AN2: ngõ vào tương tự của kênh thứ 2.
 VREF-: ngõ vào điện áp chuẩn (thấp) của bộ A/D
 CVREF: điện áp tham chiếu VREF ngõ ra bộ so sánh
 Chân RA3/AN3/VREF+ (5):
 RA3: xuất/nhập số.
 AN3: ngõ vào tương tự kênh thứ 3.
 VREF+: ngõ vào điện áp chuẩn (cao) của bộ A/D.
 Chân RA4/TOCKI/C1OUT (6):
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM – http://www.thuvienspkt.edu.vn
Ban quyen © Truong DH Su pham Ky thuat TP. HCM
Chương 2. Vi điều khiển PIC. SPKT – Nguyễn Đình Phú
46
Vi xử lý

 RA4: xuất/nhập số – mở khi được cấu tạo là ngõ ra.
 TOCKI: ngõ vào xung clock bên ngoài cho Timer 0.
 C1OUT: ngõ ra bộ so sánh 1.
 Chân RA5/AN4/
SS

/C2OUT (7):
 RA5: xuất/nhập số.
 AN4: ngõ vào tương tự kênh thứ 4.

SS
: ngõ vào chọn lựa SPI phụ.
 C2OUT: ngõ ra bộ so sánh 2.
 Chân RB0/INT (33):
 RB0: xuất/nhập số.
 INT: ngõ vào nhận tín hiệu ngắt ngoài.
 Chân RB1 (34): xuất/nhập số.
 Chân RB2 (35): xuất/nhập số.
 Chân RB3/PGC:
 RB3: xuất/nhập số.
 Chân 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):
 RB6: xuất/nhập số.
 PGC: mạch gỡ rối và xung clock lập trình ICSP.
 Chân RB7/PGD (40):
 RB7: xuất/nhập số.
 PGD: mạch gỡ rối và dữ liệu lập trình ICSP.
 Chân RC0/T1OCO/T1CKI (15):
 RC0: xuất/nhập số.
 T1OCO: ngõ vào bộ dao động Timer1.
 T1CKI: ngõ vào xung clock bên ngoài Timer1.
 Chân RC1/T1OSI/CCP2 (16):
 RC1: xuất/nhập số.
 T1OSI: ngõ vào bộ dao động Timer1.
 CCP2: ngõ vào Capture2, ngõ ra compare2, ngõ ra PWM2.

 Chân RC2/CCP1 (17):
 RC2: xuất/nhập số
 CCP1: ngõ vào Capture1, ngõ ra compare1, ngõ ra PWM1
 Chân RC3/SCK/SCL (18):
 RC3: xuất/nhập số.
 SCK: ngõ vào xung clock nối tiếp đồng bộ/ngõ ra của chế độ SPI.
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM – http://www.thuvienspkt.edu.vn
Ban quyen © Truong DH Su pham Ky thuat TP. HCM
Chương 2. Vi điều khiển PIC. SPKT – Nguyễn Đình Phú
47
Vi xử lý

 SCL: ngõ vào xung clock nối tiếp đồng bộ/ngõ ra của chế độ I
2
C.
 Chân RC4/SDI/SDA (23):
 RC4: xuất/nhập số.
 SDI: dữ liệu vào SPI.
 SDA: xuất/nhập dữ liệu I
2
C.
 Chân RC5/SDO (24):
 RC5: xuất/nhập số.
 SDO: dữ liệu ra SPI.
 Chân RC6/TX/CK (25):
 RC6: xuất/nhập số.
 TX: truyền bất đồng bộ USART.
 CK: xung đồng bộ USART.
 Chân RC7/RX/DT (26):

 RC7: xuất/nhập số.
 RX: nhận bất đồng USART.
 DT: dữ liệu đồng bộ USART.
 Chân RD0/PSP0 (19):
 RD0: xuất/nhập số.
 PSP0: dữ liệu port tớ song song.
 Chân RD1/PSP1 (20):
 RD1: xuất/nhập số.
 PSP1: dữ liệu port tớ song song.
 Các chân RD2/PSP2 (21), RD3/PSP3 (22), RD4/PSP4 (27), RD5/PSP5 (28), RD6/PSP6 (29),
RD7/PSP7 (30) tương tự chân 19, 20.
 Chân RE0/
RD
/AN5 (8):
 RE0: xuất/nhập số.

RD
: điều khiển đọc port tớ song song.
 AN5: ngõ vào tương tự 5.
 Chân RE1/
WR
/AN6 (9):
 RE1: xuất/nhập số.

WR
: điều khiển ghi port tớ song song.
 AN6: ngõ vào tương tự kênh thứ 6.
 Chân RE2/
CS
/AN7 (10):

 RE2: xuất/nhập số.

CS
: Chip chọn lựa điều khiển port tớ song song.
 AN7: 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.
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM – http://www.thuvienspkt.edu.vn
Ban quyen © Truong DH Su pham Ky thuat TP. HCM
Chương 2. Vi điều khiển PIC. SPKT – Nguyễn Đình Phú
48
Vi xử lý

2. TỔ CHỨC BỘ NHỚ:
Có 3 khối bộ nhớ trong PIC16F877A. Bộ nhớ chương trình và bộ nhớ dữ liệu được mô tả chi
tiết trong phần này. Khối bộ nhớ dữ liệu EEPROM được mô tả chi tiết ở phần sau.
a. Cấu trúc bộ nhớ chương trình:
PIC16F877A có bộ đếm chương trình 13 bit có thể quản lý bộ nhớ chương trình có dung lượng
là 8Kword×14bit (1KWord = 14bit).
Khi PIC bò reset thì thanh ghi PC có giá trò là 0000h hay còn vector ngắt có đòa chỉ 0004H.

Hình 2-4. Sơ đồ bộ nhớ chương trình và ngăn xếp.
b. Cấu trúc bộ nhớ dữ liệu:
Bộ nhớ dữ liệu được phân chia thành nhiều Bank và những thanh ghi chức năng đặc biệt. Hai
bit RP
1
RP
0
– bit trạng thái thứ 6 và thứ 5 được dùng để chọn bank như bảng 2-3.

Mỗi bank có thể mở rộng lên đến đòa chỉ 7Fh (tương đương với 128byte). Các ô nhớ có đòa
chỉ thấp của mỗi bank được dành cho các thanh ghi chức năng đặc biệt. Trên các thanh ghi chức
năng đặc biệt là các thanh ghi đa dụng – xem như bộ nhớ RAM. Tất cả các bank thanh ghi đều
chứa những thanh ghi đặc biệt.
RP1:RP0

Bank

00 0
01 1
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM – http://www.thuvienspkt.edu.vn
Ban quyen © Truong DH Su pham Ky thuat TP. HCM
Chương 2. Vi điều khiển PIC. SPKT – Nguyễn Đình Phú
49
Vi xử lý

10 2
11 3
Bảng 2-3. Lựa chọn bank thanh ghi.
c. File thanh ghi kết quả tổng quát:
File thanh ghi có thể được truy xuất trực tiếp hoặc gián tiếp thông qua File thanh ghi đặc biệt.

Hình 2-5. Sơ đồ File thanh ghi.
Quy ước: (1) Các ô nhớ tô màu xám là chưa thiết kế nếu đọc sẽ có giá trò là 0.
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM – http://www.thuvienspkt.edu.vn
Ban quyen © Truong DH Su pham Ky thuat TP. HCM
Chương 2. Vi điều khiển PIC. SPKT – Nguyễn Đình Phú
50

Vi xử lý

Quy ước: (2) Các dấu (*) không phải là thanh ghi vật lý.
Chú ý: (1) Những thanh ghi này không có trong PIC 16F876A.
Chú ý: (2) Những thanh ghi này được bảo vệ.
Bảng liệt kê những thanh ghi nằm trong bank thứ 0 được trình bày trong bảng 2-4.

Bảng 2-4. Tóm tắt các thanh ghi đặc biệt.
Quy ước: × = không xác đònh, u = không thay đổi, q= giá trò tuỳ thuộc vào điều kiện,- =chưa
sử dụng nếu đọc sẽ có giá trò 0, r = dự trữ.
Chú ý: (1) Byte cao của thanh ghi PC không thể truy xuất trực tiếp. PCLATH chứa các bit
PC<12:8>, nội dung của thanh ghi này sẽ chuyển cho byte cao của thanh ghi PC.
Chú ý: (2) Các bit PSPIE và PSPIF được dữ trữ cho PIC 16F873A/876A.
Chú ý: (3) Các thanh ghi có thể đòa chỉ hoá từ bất kỳ bank nào.
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM – http://www.thuvienspkt.edu.vn
Ban quyen © Truong DH Su pham Ky thuat TP. HCM
Chương 2. Vi điều khiển PIC. SPKT – Nguyễn Đình Phú
51
Vi xử lý

Chú ý: (4) PORTD, PORTE, TRISD và TRISE không có trong PIC 16F873A/876A nếu đọc
sẽ có giá trò 0.
Chú ý: (5) Bit thứ 4 của thanh ghi EEADRH chỉ được dùng cho PIC 16F876A/877A.
Bảng liệt kê những thanh ghi nằm trong bank thứ 1 được trình bày trong bảng 2-5.

Bảng 2-5. Tóm tắt các thanh ghi đặc biệt.
Bảng liệt kê những thanh ghi nằm trong bank thứ 2 được trình bày trong bảng 2-6.

Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM – http://www.thuvienspkt.edu.vn
Ban quyen © Truong DH Su pham Ky thuat TP. HCM
Chương 2. Vi điều khiển PIC. SPKT – Nguyễn Đình Phú
52
Vi xử lý

Bảng 2-6. Tóm tắt các thanh ghi đặc biệt.
d. Các thanh ghi có chức năng đặc biệt:
Những thanh ghi chức năng đặc biệt là những thanh ghi được sử dụng bởi CPU và những khối
ngoại vi để điều khiển hoạt động theo yêu cầu của CPU. Những thanh ghi này xem như RAM tónh.
Thanh ghi trạng thái – STATUS
TGTT chứa trạng thái của khối ALU, trạng thái Reset và các bit chọn bank bộ nhớ dữ liệu.

Chức năng của các bit trong thanh ghi trạng thái:
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM – http://www.thuvienspkt.edu.vn
Ban quyen © Truong DH Su pham Ky thuat TP. HCM
Chương 2. Vi điều khiển PIC. SPKT – Nguyễn Đình Phú
53
Vi xử lý

Bit 7 IRP: bit lựa chọn thanh ghi (dùng đòa chỉ gián tiếp).
1 = bank 2, 3 (100h-1FFh)
0 = bank 0, 1 (00h- FFh)
Bit 6-5 RP1:RP0: các bit lựa chọn thanh ghi (dùng đòa chỉ trực tiếp)
11 = bank 3 (180h-1FFh)
10 = bank 2 (100h- 17Fh)
01 = bank 1 (80h- FFh)

00 = bank 0 (00h- 7Fh)
Mỗi bank là 128 byte.
Bit 4
TO
: Time-out bit (Bit thời gian chờ)
1 = sau khi mở nguồn, lệnh CLRWDT hoặc SLEEP
0 = thời gian chờ của WDT được thực hiện
Bit 3
PD
: Power-down bit (bit tắt nguồn)
1= sau khi mở nguồn hoặc bằng lệnh CLRWDT
0= thực thi lệnh SLEEP
Bit 2 Z: Zero bit (bit 0)
1 = khi kết quả bằng 0.
0 = khi kết quả khác 0.
Bit 1 DC: Digit carry/
borrow
bit (các lệnh ADDWF, ADDLW, SUBLW, SUBWF)
(bit tràn / mượn)
1 = khi cộng 4 bit thấp bò tràn.
0 = khi cộng 4 bit thấp không bò tràn.
Bit 0 C: Carry/
borrow
bit (các lệnh ADDWF, ADDLW, SUBLW, SUBWF)
1 = khi kết quả phép toán có tràn.
0 = khi kết quả phép toán không bò tràn.
Chú ý: Nếu phép toán trừ thì trạng thái của cờ DC và C thì ngược lại và cụ thể như sau: nếu
phép trừ lớn hơn 0 thì cờ C bằng 1, nếu kết quả trừ nhỏ hơn 0 thì cờ C bằng 0.
Quy ước: R = bit có thể đọc, W = bit có thể ghi, U = bit chưa sử dụng đọc là 0,
Quy ước: -n= giá trò tuỳ thuộc POR, ‘1’= bit bò SET, ‘0’= bit bò xoá, ×= bit không xác đònh.

Thanh ghi OPTION_REG
Là thanh ghi có thể đọc/ghi, thanh ghi này có những bit điều khiển khác nhau để thiết lập bộ
chia trước cho Timer0/WDT, ngắt INT bên ngoài, Timer0 và treo PORTB.

Bit 7
RBPU
: PORTB Pull-up Enable bit (bit cho phép treo PORTB)
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM – http://www.thuvienspkt.edu.vn
Ban quyen © Truong DH Su pham Ky thuat TP. HCM
Chương 2. Vi điều khiển PIC. SPKT – Nguyễn Đình Phú
54
Vi xử lý

1 = không cho phép treo PORTB.
0 = cho phép treo PORTB.
Bit 6 INTEDG: Interrupt Edge Select bit ( bit lựa chọn cạnh ngắt)
1 = cho phép chân ngắt RB0/INT tích cực cạnh lên.
0 = cho phép chân ngắt RB0/INT tích cực cạnh xuống.
Bit 5 T0CS: TMR0 Clock Source Select bit (bit lựa chọn nguồn xung clock TMR0)
1 = cho phép nhận xung ngõ vào ở chân RA4/T0CKI.
0 = cho phép nhận xung nội bên trong.
Bit 4 T0SE: TMR0 Source Edge Select bit (bit lựa chọn kiểu tác động cho TMR0)
1 = cho phép xung vào chân RA4/T0CKI tích cực cạnh lên.
0 = cho phép xung vào chân RA4/T0CKI tích cực cạnh xuống.
Bit 3 PSA: Prescaler Assignment bit (bit gán bộ chia)
1 = bộ chia được gán cho WDT.
0 = bộ chia được gán cho Timer0.
Bit 2-0 PS2:PS0: Prescaler Rate Select bits (bit lựa chọn hệ số chia trước)
Giá trò bit

Tỉ lệ TMR0

Tỉ lệ WDT

000
001
010
011
100
101
110
111
1:2
1:4
1:8
1:16
1:32
1:64
1:128
1:256
1:1
1:2
1:4
1:8
1:16
1:32
1:64
1:128
Bảng 2-7. Các bit lựa chọn hệ số chia trước.

Chú ý: Khi sử dụng lập trình điện áp thấp ICSP (LVP) và treo PORTB được cho phép thì phải
xoá bit 3 trong thanh ghi TRISB để không cho phép treo ở chân RB3 và đảm bảo cho hoạt động
riêng của PIC.
Thanh ghi INTCON
Là thanh ghi có thể đọc và ghi, chứa những bit cờ và bit cho phép các ngắt khác nhau như
ngắt khi TMR0 tràn, ngắt khi có thay đổi ở PORTB và ngắt ngoài ở chân RB0/INT.

Bit 7 GIE: bit cho phép ngắt toàn cục
1= cho phép tất cả các nguồn ngắt.
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM – http://www.thuvienspkt.edu.vn
Ban quyen © Truong DH Su pham Ky thuat TP. HCM
Chương 2. Vi điều khiển PIC. SPKT – Nguyễn Đình Phú
55
Vi xử lý

0= không cho phép tất cả các nguồn ngắt.
Bit 6 PEIE: bit cho phép ngắt ngoại vi
1= cho phép ngắt.
0= không cho phép ngắt.
Bit 5 TMR0IE: bit cho phép ngắt TMR0
1= cho phép ngắt.
0= không cho phép ngắt.
Bit 4 INTE: bit cho phép ngắt ngoài ở chân RB0/INT
1= cho phép ngắt.
0= không cho phép ngắt.
Bit 3 RBIE: bit cho phép ngắt thay đổi PORTB
1= cho phép ngắt khi PORTB thay đổi
0= không cho phép ngắt khi PORTB thay đổi
Bit 2 TMR0IF: cờ tràn TMR0

1= thanh ghi TMR0 tràn (xóa bằng phần mềm).
0= thanh ghi TMR0 không tràn hay chưa tràn.
Bit 1 INTF: cờ báo ngắt ngoài RB0/INT.
1= ngắt ngoài ở chân RB0/INT đã xảy ra (xóa bằng phần mềm)
0= ngắt ngoài ở chân RB0/INT không xảy ra
Bit 0 RBIF: cờ báo khi PORTB có thay đổi
1= có ít nhất các chân RB7:RB4 thay đổi trạng thái; điều kiện không tương
thích sẽ tiếp tục làm bit này bằng 1. Khi đọc PORTB sẽ chấm dứt điều kiện
không tương thích và cho phép xóa cờ báo này bằng phần mềm.
0= các chân RB7:RB4 không có sự thay đổi trạng thái.
Thanh ghi PIE1
Là thanh ghi chứa các bit cho phép ngắt độc lập cho các ngắt ngoại vi.

Bit 7 PSPIE: bit cho phép ngắt đọc/ghi ở port nhánh song song
1= cho phép ngắt PSP đọc/ghi
0= không cho phép ngắt PSP đọc/ghi
Bit 6 ADIE: bit cho phép ngắt bộ chuyển đổi A/D
1= cho phép ngắt.
0= không cho phép ngắt.
Bit 5 RCIE: bit cho phép ngắt nhận dữ liệu USART
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM – http://www.thuvienspkt.edu.vn
Ban quyen © Truong DH Su pham Ky thuat TP. HCM
Chương 2. Vi điều khiển PIC. SPKT – Nguyễn Đình Phú
56
Vi xử lý

1= cho phép ngắt.
0= không cho phép ngắt.
Bit 4 TXIE: bit cho phép ngắt phát dữ liệu USART

1= cho phép ngắt.
0= không cho phép ngắt.
Bit 3 SSPIE: bit cho phép ngắt port nối tiếp đồng bộ
1= cho phép ngắt SSP.
0= không cho phép ngắt SSP.
Bit 2 CCP1IE: bit cho phép ngắt CCP1
1= cho phép ngắt CCP1.
0= không cho phép ngắt CCP1.
Bit 1 TMR2IE: bit cho phép ngắt tương thích ứng TMR2 với PR2
1= cho phép ngắt tương thích TMR2 với PR2.
0= không cho phép ngắt tương thích TMR2 với PR2.
Bit 0 TNR1IE: bit cho phép ngắt tràn TMR1
1= cho phép ngắt TMR1 tràn.
0= không cho phép ngắt TMR1 tràn.
Thanh ghi PIR1
Là thanh ghi chứa các bit cờ cho các ngắt ngoài.
Chú ý: những bit cờ ngắt được Set khi điều kiện ngắt xảy ra bất chấp trạng thái của bit cho
phép hoặc bit cho phép ngắt toàn cục GIE (INTCON<7>). Phần mềm của người dùng phải đảm
bảo những bit ngắt tương ứng phải bò xóa trước khi cho phép ngắt.

Bit 7 PSPIF: cờ báo ngắt port nhánh song song đọc/ghi
1= hoạt động đọc hoặc ghi được thực thi.
0= hoạt động đọc hoặc ghi không xảy ra.
Bit 6 ADIF: cờ báo ngắt bộ chuyển đổi A/D
1= chuyển đổi A/D đã được hoàn thành.
0= chuyển đổi A/D chưa được hoàn thành.
Bit 5 RCIF: cờ báo ngắt nhận USART
1= USART nhận xong.
0= USART nhận chưa xong.
Bit 4 TXIF: cờ báo ngắt truyền USART

1= truyền đệm của USART còn trống.
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM – http://www.thuvienspkt.edu.vn
Ban quyen © Truong DH Su pham Ky thuat TP. HCM
Chương 2. Vi điều khiển PIC. SPKT – Nguyễn Đình Phú
57
Vi xử lý

0= truyền đệm của USART đầy.
Bit 3 SSPIF: cờ báo ngắt port nối tiếp đồng bộ (SSP)
1= điều kiện ngắt SSP đã xảy ra và phải xóa bằng phần mềm trước khi quay
trở về từ chương trình con phục vụ ngắt (Interrupt Service Routine). Điều
kiện để bit trạng thái này lên 1 là:
o SPI- truyền/nhận đã được thực thi.
o I
2
C Slave: truyền/nhận đã được thực thi.
o I
2
C Master:
 Truyền/nhận đã được thực thi.
 Điều kiện Start khởi động đã được hoàn thành bởi khối SSP.
 Điều kiện Stop khởi động đã được hoàn thành bởi khối SSP.
 Điều kiện Restart khởi động đã được hoàn thành bởi khối SSP.
 Điều kiện bắt tay đã được hoàn thành bởi khối SSP.
 Điều kiện Start đã xảy ra khi khối SSP đang ở trạng thái rỗi (multi-
master system: hệ thống nhiều chủ).
 Điều kiện Stop đã xảy ra khi khối SSP đang ở trạng thái rỗi.
0= không có điều kiện ngắt SSP nào xảy ra.
Bit 2 CCP1IF: cờ báo ngắt CCP1

Chế độ Capture:
1= thanh ghi bắt nhòp TMR1 có xảy ra (xóa bằng phần mềm).
0= thanh ghi bắt nhòp TMR1 không xảy ra.
Chế độ so sánh:
1= thích ứng so sánh thanh ghi TMR1 có xảy ra.
0= thích ứng so sánh thanh ghi TMR1 không xảy ra.
Bit 1 TMR2IF: cờ báo ngắt tương thích TMR2 với PR2
1= TMR2 tương thích với PR2 (xóa bằng phần mềm).
0= TMR2 không tương thích với PR2.
Bit 0 TMR1IF: cờ báo ngắt tràn TMR1
1= thanh ghi TMR1 đã tràn.
0= thanh ghi TMR1 không tràn.
“1”= bit được set
Thanh ghi PIE2
Là thanh ghi chứa các bit cho phép ngắt ngoại vi CCP2, ngắt xung đột đường truyền SSP,
ngắt hoạt động ghi của EEPROM và ngắt của bộ so sánh.
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM – http://www.thuvienspkt.edu.vn
Ban quyen © Truong DH Su pham Ky thuat TP. HCM
Chương 2. Vi điều khiển PIC. SPKT – Nguyễn Đình Phú
58
Vi xử lý

Bit 7 Chưa dùng: đọc là ‘0’
Bit 6 CMIE: bit cho phép ngắt bộ so sánh
1= cho phép ngắt.
0= không cho phép ngắt.
Bit 5 Chưa dùng: đọc là ‘0’
Bit 4 EEIE: bit cho phép ngắt hoạt động ghi của EEPROM

1= cho phép ngắt.
0= không cho phép ngắt.
Bit 3 BCLIE: bit cho phép ngắt sự xung đột đường dẫn
1= cho phép ngắt.
0= không cho phép ngắt.
Bit 2-1 Chưa dùng: đọc là ‘0’
Bit 0 CCP2IE: bit cho phép ngắt CCP2
1= cho phép ngắt.
0= không cho phép ngắt.
Chú ý: bit PEIE (INTCON<6>) phải được set để cho phép bất kì sự ngắt ngoài nào.
Thanh ghi PIR2
Là thanh ghi chứa các bit cờ báo ngắt CCP2, ngắt xung đột đường dẫn SSP, ngắt hoạt động
ghi của EEPROM và ngắt bộ so sánh.

Bit 7 Chưa dùng: đọc là ‘0’.
Bit 6 CMIF: cờ báo ngắt bộ so sánh
1= ngõ vào bộ so sánh đã thay đổi (xóa bằng phần mềm).
0= ngõ vào bộ so sánh không thay đổi.
Bit 5 Chưa dùng: đọc là ‘0’.
Bit 4 EEIF: cờ báo ngắt hoạt động ghi của EEPROM
1= hoạt động ghi được hoàn thành (xóa bằng phần mềm).
0= hoạt động ghi chưa hoàn thành hoặc chưa khởi động.
Bit 3 BCLIF: cờ báo ngắt xung đột đường dẫn
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM – http://www.thuvienspkt.edu.vn
Ban quyen © Truong DH Su pham Ky thuat TP. HCM
Chương 2. Vi điều khiển PIC. SPKT – Nguyễn Đình Phú
59
Vi xử lý

1= xung đột đường dẫn đã xảy ra trong SSP khi được thiết lập cấu hình
ở chế độ I
2
C chủ.
0= đường dẫn không xảy ra xung đột.
Bit 2-1 Chưa dùng: đọc là ‘0’
Bit 0 CCP2IF: bit cờ ngắt CCP2
Chế độ Capture:
1= thanh ghi bắt nhòp TMR1 xảy ra (xóa bằng phần mềm).
0= thanh ghi bắt nhòp TMR1 chưa xảy ra.
Chế độ so sánh:
1= tương thích so sánh thanh ghi TMR1 xảy ra (xóa bằng phần mềm).
0= tương thích so sánh thanh ghi TMR1 chưa xảy ra.
Chế độ PWM:

Không được sử dụng
Chú ý: cờ báo ngắt được Set khi ngắt xảy ra với điều kiện bit cho phép tương ứng hoặc toàn
bộ bit được phép, GIE (INTCON<7>). Người dùng phải đảm bảo sự phù hợp của những bit ngắt
được xóa sớm hơn để cho phép ngắt.
Thanh ghi PCON
Thanh ghi PCON (Power Control) chứa các cờ để cho phép phân biệt sự khác nhau của các
trạng thái reset: khi mở điện – Power-on Reset (POR), Brown-out Reset (BOR), Watchdog Reset
(WDT) và
MCLR
Reset.

Bit 7-2 Chưa dùng: đọc là ‘0’
Bit 1
POR
: bit trạng thái Power-on Reset

1= reset khi mở điện không xảy ra.
0= reset khi mở điện đã xảy ra (phải Set bằng phần mềm sau khi Power-on
Reset xảy ra).
Bit 0
BOR
: bit trạng thái Brown-out Reset
1= Brown-out Reset không xảy ra
0= Brown-out Reset xảy ra (phải Set bằng phần mềm sau khi Brown-out
Reset xảy ra).
Thanh ghi PC và PCLATH
Thanh ghi bộ đếm chương trình (PC) có độ rộng 13 bit, 8 bit thấp nằm ở thanh ghi PCL, các
bit này có thể đọc và ghi. Các bit cao còn lại (8:12) thì không thể đọc nhưng có thể ghi gián tiếp
thông qua thanh ghi PCLATH. Khi bất kỳ Reset nào xảy ra thì các bit cao của thanh ghi PC sẽ bò
Truong DH SPKT TP. HCM http://www.hcmute.edu.vn
Thu vien DH SPKT TP. HCM – http://www.thuvienspkt.edu.vn
Ban quyen © Truong DH Su pham Ky thuat TP. HCM
Đọc tài liệu từ bộ nhớ chương trình FlashGhi dữ liệu vào bộ nhớ chương trình FlashBảo vệ chống ghi nhầmHoạt động trong lúc bảo vệ chống ghiCÁC PORT XUẤT NHẬP ( IO ) PORTA và thanh ghi TRISAPORTB và thanh ghi TRISBPORTC và thanh ghi TRISCPORTD và thanh ghi TRISDPORTE và thanh ghi TRISEBỘ ĐỊNH THỜI TIMER0Ngắt của Timer0Truong DH SPKT TP. TP HCM http://www.hcmute.edu.vnThu vien DH SPKT TP. TP HCM – http://www.thuvienspkt.edu.vnBan quyen © Truong DH Su pham Ky thuat TP. HCMChương 2. Vi tinh chỉnh và điều khiển PIC. SPKT – Nguyễn Đình Phú36Vi xử lýTimer0 với nguồn xung đếm từ bên ngoàiBộ chia trướcBỘ ĐỊNH THỜI TIMER1Hoạt động của Timer1 ở chính sách đònh thờiHoạt động của Timer1 ở chính sách CounterHoạt động của Timer1 ở chính sách Counter đồng bộHoạt động của Timer1 ở chính sách Counter sự không tương đồng bộĐọc và ghi Timer1 trong chính sách đếm không đồng bộBộ giao động của Timer1Reset Timer1 sử dụng ngõ ra CCP TriggerReset cặp thanh ghi TMR1H, TMR1L của Timer1BỘ ĐỊNH THỜI TIMER2Bộ chia trước và postscaler của Timer2Ngõ ra của TMR2KHỐI CHUYỂN ĐỔI TƯƠNG TỰ SANG SỐ ADCNgõ ra của TMR2Các nhu yếu nhận tài liệu ADCLựa chọn xung clock cho ADCĐònh thông số kỹ thuật cho những ngõ vào tựa như của ADCChuyển đổi ADCCác thanh ghi lưu hiệu quả của ADCHoạt động quy đổi ADC trong chính sách SleepẢnh hưởng của resetKHỐI SO SÁNHHoạt động so sánhĐiện áp so sánhThời gian đáp ứngNgõ ra bộ so sánhNgắt của bộ so sánhHoạt động của bộ so sánh ở chính sách SleepẢnh hưởng của resetKết nối những ngõ vào tương tựCÁC CẤU TRÚC ĐẶC BIỆT CỦA CPUCẤU HÌNH BỘ DAO ĐỘNGCác loại mạch dao độngDao động thạch anh / tụ CeramicBộ xê dịch RCMẠCH RESET CPUResetMCLRReset khi mới cấp điện PORTimer reset khi mới cấp điện ( PWRT ) Bộ xê dịch Start-up ( OST ) Truong DH SPKT TP. Hồ Chí Minh http://www.hcmute.edu.vnThu vien DH SPKT TP. Hồ Chí Minh – http://www.thuvienspkt.edu.vnBan quyen © Truong DH Su pham Ky thuat TP. HCMChương 2. Vi tinh chỉnh và điều khiển PIC. SPKT – Nguyễn Đình Phú37Vi xử lýReset Brown-out ( BOR ) Trình tự thời gianThanh ghi trạng thái / thanh ghi công suấtHOẠT ĐỘNG NGẮTNgắt ngoài INTNgắt TMR0Ngắt PORTB thay đổiLưu tài liệu khi xảy ra ngắtHOẠT ĐỘNG CỦA WATCHDOG TIMER WDTHOẠT ĐỘNG CỦA CPU Ở CHẾ ĐỘ NGỦ SLEEPĐánh thức cpu khỏi chính sách ngủĐánh thức cpu dùng những ngắtMẠCH GỢ RỐIKIỂM TRA CHƯƠNG TRÌNH / BẢO VỆ BẰNG MÃMÃ NHẬN DẠNGLẬP TRÌNH TUẦN TỰ CỦA MẠCH TÍCH HP BÊN TRONG ICSP ( In-Circuit Serial Programming ) LẬP TRÌNH ĐIỆN ÁP THẤP ICSP ( NGUỒN ĐƠN ) SƠ ĐỒ NGUYÊN LÝ GIAO TIẾP GIỮA MÁY TÍNH VÀ PIC 16F877 AMạch nạp PIC trực tiếp từ cổng COMMạch nạp PIC gián tiếp từ cổng COM qua ic max232Mạch nạp PIC qua cổng LPTBảng và hình : Bảng 2-1. Các vi điều khiển và tinh chỉnh họ PIC16F87X. Bảng 2-2. Tóm tắt đặc thù PIC16F877ABảng 2-3. Lựa chọn ngân hàng thanh ghi. Bảng 2-4. Tóm tắt những thanh ghi đặc biệt quan trọng. Bảng 2-5. Tóm tắt những thanh ghi đặc biệt quan trọng. Bảng 2-6. Tóm tắt những thanh ghi đặc biệt quan trọng. Bảng 2-7. Các bit lựa chọn thông số chia trước. Bảng 2-8. Các thanh ghi sử dụng cho bộ nhớ EEPROM.Bảng 2-9. Các tính năng của PORTA.Bảng 2-10. Tóm tắt những thanh ghi link với PORTA.Bảng 2-11. Các tính năng của PORTB.Bảng 2-12. Các thanh ghi liên kết với PORTB.Bảng 2-13. Các thanh ghi liên kết với PORTB.Bảng 2-14. Các tính năng của PORTC.Bảng 2-15. Các thanh ghi liên kết với PORTD.Bảng 2-16. Các công dụng của PORTD.Bảng 2-17. Các thanh ghi liên kết với PORTE.Bảng 2-18. Các công dụng của PORTE.Bảng 2-19. Các bit lựa chọn tỉ lệ bộ chia trước. Bảng 2-20. Lựa chọn tụ cho bộ giao động. Truong DH SPKT TP. Hồ Chí Minh http://www.hcmute.edu.vnThu vien DH SPKT TP. Hồ Chí Minh – http://www.thuvienspkt.edu.vnBan quyen © Truong DH Su pham Ky thuat TP. HCMChương 2. Vi tinh chỉnh và điều khiển PIC. SPKT – Nguyễn Đình Phú38Vi xử lýBảng 2-21. Các thanh ghi của Timer1. Bảng 2-22. Các thanh ghi của Timer2. Bảng 2-23. Các bit lựa chọn xung quy đổi ADC.Bảng 2-24. Các bit tinh chỉnh và điều khiển ADC.Bảng 2-25. Các bit lựa chọn xung quy đổi ADC.Bảng 2-26. Các thanh ghi dùng cho quy đổi ADC.Bảng 2-27. Các thanh ghi dùng cho bộ so sánh. Bảng 2-28. Các thanh ghi dùng cho bộ tạo điện áp chuẩn. Bảng 2-29. Chọn những thạch anh và tụ. Bảng 2-30. Chọn những thạch anh và tụ. Bảng 2-31. Chọn những thạch anh và tụ. Bảng 2-32. Giá trò của những thanh ghi khi bò reset. Bảng 2-33. Giá trò của những thanh ghi khi bò reset ( liên tục ). Bảng 2-34. Các thanh ghi của WDT.Bảng 2-35. Các tài nguyên của mạch tháo gỡ. Hình 2-1. Sơ đồ chân họ PIC16F87XA. Hình 2-2. Sơ đồ khối PIC16F87XA. Hình 2-3. Sơ đồ chânHình 2-4. Sơ đồ bộ nhớ chương trình và ngăn xếp. Hình 2-5. Sơ đồ File thanh ghi. Hình 2-6. Các trường hợp nạp giá trò cho PC.Hình 2-7. Đòa chỉ trực tiếp / gián tiếp. Hình 2-8. Ghi dữ liệu khối vào bộ nhớ chương trình flash. Hình 2-9. Sơ đồ mạch chân RA3 : RA0. Hình 2-10. Sơ đồ mạch chân RA4 / T0CKI. Hình 2-11. Sơ đồ mạch chân RA5. Hình 2-12. Sơ đồ mạch những chân RB3 : RB0. Hình 2-13. Sơ đồ mạch những chân RB7 : RB4. Hình 2-14. Sơ đồ mạch những chân RC7 : RB5 và RC2 : RB0. Hình 2-15. Sơ đồ mạch những chân RC4 : RB3. Hình 2-16. Sơ đồ mạch những chân PORTD.Hình 2-17. Sơ đồ mạch những chân PORTE.Hình 2-18. Sơ đồ khối của timer0 và bộ chia trước với WDT.Hình 2-19. Giản đồ thời hạn xung đếm của Counter1. Hình 2-20. Sơ đồ khối của Timer1. Hình 2-21. Sơ đồ khối của Timer2. Hình 2-22. Sơ đồ khối của Timer2. Hình 2-23. Sơ đồ mạch của ngõ vào ADC.Hình 2-24. Chu kỳ quy đổi ADC.Hình 2-25. Cặp thanh ghi hiệu quả hiệu chỉnh phải và trái. Hình 2-26. Các kiểu hoạt động giải trí của bộ so sánh. Truong DH SPKT TP. TP HCM http://www.hcmute.edu.vnThu vien DH SPKT TP. Hồ Chí Minh – http://www.thuvienspkt.edu.vnBan quyen © Truong DH Su pham Ky thuat TP. HCMChương 2. Vi điều khiển và tinh chỉnh PIC. SPKT – Nguyễn Đình Phú39Vi xử lýHình 2-27. Các kiểu hoạt động giải trí của bộ so sánh. Hình 2-28. Sơ đồ mạch của bộ so sánh. Hình 2-29. Sơ đồ mạch ngõ vào tựa như. Hình 2-30. Sơ đồ khối mạch tạo điện áp chuẩn cho bộ so sánh. Hình 2-31. Dao động dùng thạch anh / tụ cộng hưởng thông số kỹ thuật XT, LP hoặc HS.Hình 2-32. Ngõ vào nhận xung từ bên ngoài thông số kỹ thuật XT, LP hoặc HS.Hình 2-33. Bộ xê dịch RC.Hình 2-34. Sơ đồ mạch reset trong chip. Hình 2-34. Mạch reset. Hình 2-35. Trình tự thời hạn khi reset POR có nốiMCLRHình 2-36. Trình tự thời hạn khi reset POR không nốiMCLRHình 2-37. Trình tự thời hạn khi reset POR không nốiMCLRHình 2-38. Sơ đồ logic của những ngắt. Hình 2-39. Sơ đồ khối của WDT.Hình 2-40. Đánh thức cpu bằng cách dùng ngắt. Hình 2-41. Các đường tiếp xúc với mạch nạp tiếp nối đuôi nhau. Hình 2-42. Sơ đồ nguyên tắc mạch nạp trực tiếp từ cổng COM.Hình 2-43. Các đường tiếp xúc với mạch nạp tiếp nối đuôi nhau qua IC quy đổi. Hình 2-44. Sơ đồ nguyên tắc mạch nạp tiếp nối đuôi nhau từ cổng COM qua IC quy đổi. Hình 2-45. Sơ đồ nguyên tắc mạch nạp dùng cổng LPT.Truong DH SPKT TP. Hồ Chí Minh http://www.hcmute.edu.vnThu vien DH SPKT TP. Hồ Chí Minh – http://www.thuvienspkt.edu.vnBan quyen © Truong DH Su pham Ky thuat TP. HCMChương 2. Vi tinh chỉnh và điều khiển PIC. SPKT – Nguyễn Đình Phú40Vi xử lýI. TỔNG QUAN VỀ VI ĐIỀU KHIỂN PICPIC là một họ vi điều khiển và tinh chỉnh RISC được sản xuất bởi công ty Microchip Technology. Thế hệPIC tiên phong là PIC1650 được tăng trưởng bởi Microelectronics Division thuộc General – Instrument. PIC là viết tắt của ” Programmable Intelligent Computer ” là một loại sản phẩm của hãng GeneralInstruments đặt cho dòng mẫu sản phẩm tiên phong là PIC1650. Tại thời gian đó PIC1650 được dùng đểgiao tiếp với những thiết bò ngoại vi cho sever 16 bit CP1600, thế cho nên, người ta cũng gọi PIC với cáitên ” Peripheral Interface Controller ” – bộ điều khiển và tinh chỉnh tiếp xúc ngoại vi. CP1600 là một CPU mạnh nhưng lại yếu về những hoạt động giải trí xuất nhập thế cho nên PIC 8 – bit đượcphát triển vào khoảng chừng năm 1975 để tương hỗ cho hoạt động giải trí xuất nhập của CP1600. PIC ROM để chứa mã, mặc dầu khái niệm RISC chưa được sử dụng thời bấy giờ, nhưng PICthực sự là một vi điều khiển và tinh chỉnh với kiến trúc RISC, chạy một lệnh với một chu kỳ luân hồi máy – gồm 4 chu kỳcủa bộ giao động. Năm 1985 General Instruments bán công nghệ tiên tiến những vi điện tử của họ, và chủ sở hữu mới hủybỏ hầu hết những dự án Bất Động Sản – lúc đó đã quá lỗi thời. Tuy nhiên PIC được bổ trợ EEPROM để tạo thành 1 bộ tinh chỉnh và điều khiển vào ra lập trình. Ngày nay rất nhiều dòng PIC được xuất xưởng với hàng loạt những module ngoại vi tích hợpsẵn ( như USART, PWM, ADC ), với bộ nhớ chương trình từ 512 Word đến 32K Word. II. MỘT SỐ ĐẶC TÍNH CỦA VI ĐIỀU KHIỂN PICHiện nay có khá nhiều dòng PIC và có rất nhiều độc lạ về phần cứng, nhưng tất cả chúng ta cóthể điểm qua một vài nét như sau :  Là CPU 8/16 bit, kiến thiết xây dựng theo kiến trúc Harvard có sửa đổi.  Có bộ nhớ Flash và ROM hoàn toàn có thể tuỳ chọn từ 256 byte đến 256 Kbyte.  Có những cổng xuất – nhập ( I / O ports ).  Có timer 8/16 bit.  Có những chuẩn giao tiếp nối tiếp đồng nhất / không đồng điệu USART.  Có những bộ chuyển đổi ADC 10/12 bit.  Có những bộ so sánh điện áp ( Voltage Comparators ).  Có những khối Capture / Compare / PWM.  Có tương hỗ tiếp xúc LCD.  Có MSSP Peripheral dùng cho những tiếp xúc I²C, SPI, và I²S.  Có bộ nhớ nội EEPROM – hoàn toàn có thể ghi / xoá lên tới 1 triệu lần.  Có khối Điều khiển động cơ, đọc encoder.  Có tương hỗ tiếp xúc USB.  Có tương hỗ tinh chỉnh và điều khiển Ethernet.  Có tương hỗ tiếp xúc CAN.Đặc điểm thực thi vận tốc cao CPU RISC của họ vi tinh chỉnh và điều khiển PIC16F87XA là : Truong DH SPKT TP. Hồ Chí Minh http://www.hcmute.edu.vnThu vien DH SPKT TP. TP HCM – http://www.thuvienspkt.edu.vnBan quyen © Truong DH Su pham Ky thuat TP. HCMChương 2. Vi tinh chỉnh và điều khiển PIC. SPKT – Nguyễn Đình Phú41Vi xử lý  Chỉ gồm 35 lệnh đơn.  Tất cả những lệnh là 1 chu kì ngoại trừ chương trình con là 2 chu kì.  Tốc độ hoạt động giải trí : * DC – 20MH z ngõ vào xung clock. * DC – 200 ns chu kì lệnh.  Dung lượng của bộ nhớ chương trình Flash là 8K × 14 words.  Dung lượng của bộ nhớ tài liệu RAM là 368 × 8 bytes.  Dung lượng của bộ nhớ tài liệu EEPROM là 256 × 8 bytes. a. Các đặc tính ngoại vi  Timer0 : là bộ đònh thời timer / counter 8 bit có bộ chia trước.  Timer1 : là bộ đònh thời timer / counter 16 bit có bộ chia trước, hoàn toàn có thể đếm khi CPUđang ở trong chính sách ngủ với nguồn xung từ tụ thạch anh hoặc nguồn xung bên ngoài.  Timer2 : bộ đònh thời timer / counter 8 bit với thanh ghi 8 – bit, chia trước và postscaler.  Hai khối Capture, Compare, PWM.  Capture có độ rộng 16 – bit, độ phân giải 12.5 ns  Compare có độ rộng 16 – bit, độ phân giải 200 ns  Độ phân giải lớn nhất của PWM là 10 – bit. b. Các đặc tính về tựa như  Có 8 kênh quy đổi tín hiệu tựa như thành tín hiệu số ADC 10 – bit.  Có reset BOR ( Brown – Out Reset ).  Khối so sánh điện áp tương tự như :  Hai bộ so sánh tương tự như.  Khối tạo điện áp chuẩn VREFtích hợp bên trong hoàn toàn có thể lập trình.  Đa hợp ngõ vào lập trình từ ngõ vào của CPU với điện áp chuẩn bên trong.  Các ngõ ra của bộ so sánh hoàn toàn có thể truy xuất từ bên ngoài. c. Các đặc tính đặc biệt quan trọng của vi điều khiển và tinh chỉnh :  Bộ nhớ chương trình Enhanced Flash được cho phép xóa và ghi 100000 lần.  Bộ nhớ tài liệu EEPROM được cho phép xóa và ghi 1000000 lần.  Bộ nhớ EEPROM hoàn toàn có thể lưu giữ tài liệu hơn 40 năm và hoàn toàn có thể tự lập trình lại dưới sựđiều khiển của ứng dụng.  Mạch lập trình tiếp nối đuôi nhau ICSP trải qua 2 chân ( In-Circuit Serial Programming ).  Nguồn sử dụng là nguồn đơn 5V cấp cho mạch lập trình tiếp nối đuôi nhau.  Có Watchdog Timer ( WDT ) với bộ xê dịch RC tích hợp sẵn trên Chip.  Có thể lập trình mã bảo mật thông tin.  Có thể hoạt động giải trí ở chính sách Sleep để tiết kiệm chi phí nguồn năng lượng.  Có thể lưạ chọn bộ giao động.  Có mạch điện tháo gỡ ICD ( In-Circuit Debug ) trải qua 2 chân. Truong DH SPKT TP. TP HCM http://www.hcmute.edu.vnThu vien DH SPKT TP. Hồ Chí Minh – http://www.thuvienspkt.edu.vnBan quyen © Truong DH Su pham Ky thuat TP. HCMChương 2. Vi điều khiển và tinh chỉnh PIC. SPKT – Nguyễn Đình Phú42Vi xử lýd. Công nghệ CMOS : Công nghệ CMOS có những đặc tính : hiệu suất thấp, công nghệ tiên tiến bộ nhớ Flash / EEPROM tốc độcao. Điện áp hoạt động giải trí từ 2V đến 5,5 V và tiêu tốn nguồn năng lượng thấp. Phù hợp với nhiệt độ làm việctrong công nghiệp và trong thương mại. Bảng 2-1 trình diễn tóm tắt cấu trúc của 4 loại PIC16F87X. Bảng 2-1. Các vi điều khiển và tinh chỉnh họ PIC16F87X. Hình 2-1 trình diễn sơ đồ chân của những loại PIC16F87XA. Hình 2-1. Sơ đồ chân họ PIC16F87XA. III. VI ĐIỀU KHIỂN PIC 16F877 A1. TỔNG QUÁT VỀ PIC16F877A : a. Giới thiệu : PIC16F877A có 40/44 chân với cấu trúc như sau :  Có 5 port xuất / nhập.  Có 8 kênh quy đổi A / D.  Được bổ trợ những port tử song song.  Có bộ nhớ gap nối so với PIC16F873A / PIC16F874A. Truong DH SPKT TP. TP HCM http://www.hcmute.edu.vnThu vien DH SPKT TP. TP HCM – http://www.thuvienspkt.edu.vnBan quyen © Truong DH Su pham Ky thuat TP. HCMChương 2. Vi điều khiển và tinh chỉnh PIC. SPKT – Nguyễn Đình Phú43Vi xử lýBảng 2-2 sẽ tóm tắt đặc thù PIC16F877A : Đặc điểm PIC16F877ATan số hoạt động giải trí DC – 20MH zReset ( và Delay ) POR, BOR ( PWRT, OST ) Bộ nhớ chương trình Flash ( 14 – bit word ) 8KB ộ nhớ tài liệu ( byte ) 368B ộ nhớ tài liệu EEPROM ( byte ) 256C ác nguồn ngắt 15C ác port xuất nhập Các port A, B, C, D, ETimer 3C ác module capture / compare / PWMGiao tiếp nối tiếpMSSP, USARTGiao tiếp song song PSPModule A / D 10 bit 8 kênh ngõ vàoBộ so sánh tương tự như 2T ập lệnh 35 lệnhSố chân40 chân PDIP44 chân PLCC44 chân TQFP44 chân QFNBảng 2-2. Tóm tắt đặc thù PIC16F877Ab. Sơ đồ khối : Hình 2-2 trình diễn sơ đồ khối của PIC16F877A, sơ đồ khối của PIC gồm những khối :  Khối ALU – Arithmetic Logic Unit.  Khối bộ nhớ chứa chương trình – Flash Program Memory.  Khối bộ nhớ chứa tài liệu EEPROM – Data EPROM.  Khối bộ nhớ file thanh ghi RAM – RAM file Register.  Khối giải thuật lệnh và điều khiển và tinh chỉnh – Instruction Decode Control.  Khối thanh ghi đặc biệt quan trọng.  Khối ngoại vi timer.  Khối tiếp xúc tiếp nối đuôi nhau.  Khối quy đổi tín hiệu tương tự như sang số – ADC.  Khối những port xuất nhập. c. Sơ đồ chân và công dụng những chân : Sơ đồ chân của PIC gồm nhiều loại nhưng ở đây khảo sát loại PIC 40 chân như hình 2-3. Truong DH SPKT TP. TP HCM http://www.hcmute.edu.vnThu vien DH SPKT TP. TP HCM – http://www.thuvienspkt.edu.vnBan quyen © Truong DH Su pham Ky thuat TP. HCMChương 2. Vi tinh chỉnh và điều khiển PIC. SPKT – Nguyễn Đình Phú44Vi xử lýHình 2-2. Sơ đồ khối PIC16F87XA. Chức năng của những chân như sau :  Chân OSC1 / CLKI ( 13 ) : là ngõ vào liên kết với xê dịch thạch anh hoặc ngõ vào nhận xungclock bên ngoài.  OSC1 : ngõ vào giao động thạch anh hoặc ngõ vào nguồn xung ở bên ngoài. Ngõ vàocó mạch Schmitt Trigger nếu sử dụng giao động RC.  CLKI : ngõ vào nguồn xung bên ngoài. Truong DH SPKT TP. Hồ Chí Minh http://www.hcmute.edu.vnThu vien DH SPKT TP. TP HCM – http://www.thuvienspkt.edu.vnBan quyen © Truong DH Su pham Ky thuat TP. HCMChương 2. Vi điều khiển và tinh chỉnh PIC. SPKT – Nguyễn Đình Phú45Vi xử lý  Chân OSC2 / CLKO ( 14 ) : ngõ ra xê dịch thạch anh hoặc ngõ ra cấp xung clock.  OSC2 : ngõ ra xê dịch thạch anh. Kết nối đến thạch anh hoặc bộ cộng hưởng.  CLKO : ở chính sách RC, ngõ ra của OSC2, bằng ¼ tần số của OSC1 và chính là tốc độcủa chu kì lệnh. Hình 2-3. Sơ đồ chân  ChânMCLR / VPP ( 1 ) : có 2 tính năng : MCLR : là ngõ vào reset tích cực mức thấp.  VPP : khi lập trình cho PIC thì đóng vai trò là ngõ vào nhận điện áp lập trình.  Chân RA0 / AN0 ( 2 ) : có 2 công dụng :  RA0 : xuất / nhập số.  AN0 : ngõ vào tựa như của kênh thứ 0.  Chân RA1 / AN1 ( 3 ) :  RA0 : xuất / nhập số.  AN1 : ngõ vào tựa như của kênh thứ 1.  Chân RA2 / AN2 / VREF – / CVREF ( 4 ) :  RA2 : xuất / nhập số.  AN2 : ngõ vào tựa như của kênh thứ 2.  VREF – : ngõ vào điện áp chuẩn ( thấp ) của bộ A / D  CVREF : điện áp tham chiếu VREF ngõ ra bộ so sánh  Chân RA3 / AN3 / VREF + ( 5 ) :  RA3 : xuất / nhập số.  AN3 : ngõ vào tựa như kênh thứ 3.  VREF + : ngõ vào điện áp chuẩn ( cao ) của bộ A / D.  Chân RA4 / TOCKI / C1OUT ( 6 ) : Truong DH SPKT TP. Hồ Chí Minh http://www.hcmute.edu.vnThu vien DH SPKT TP. Hồ Chí Minh – http://www.thuvienspkt.edu.vnBan quyen © Truong DH Su pham Ky thuat TP. HCMChương 2. Vi tinh chỉnh và điều khiển PIC. SPKT – Nguyễn Đình Phú46Vi xử lý  RA4 : xuất / nhập số – mở khi được cấu trúc là ngõ ra.  TOCKI : ngõ vào xung clock bên ngoài cho Timer 0.  C1OUT : ngõ ra bộ so sánh 1.  Chân RA5 / AN4 / SS / C2OUT ( 7 ) :  RA5 : xuất / nhập số.  AN4 : ngõ vào tương tự như kênh thứ 4. SS : ngõ vào lựa chọn SPI phụ.  C2OUT : ngõ ra bộ so sánh 2.  Chân RB0 / INT ( 33 ) :  RB0 : xuất / nhập số.  INT : ngõ vào nhận tín hiệu ngắt ngoài.  Chân RB1 ( 34 ) : xuất / nhập số.  Chân RB2 ( 35 ) : xuất / nhập số.  Chân RB3 / PGC :  RB3 : xuất / nhập số.  Chân được 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 ) :  RB6 : xuất / nhập số.  PGC : mạch tháo gỡ và xung clock lập trình ICSP.  Chân RB7 / PGD ( 40 ) :  RB7 : xuất / nhập số.  PGD : mạch tháo gỡ và tài liệu lập trình ICSP.  Chân RC0 / T1OCO / T1CKI ( 15 ) :  RC0 : xuất / nhập số.  T1OCO : ngõ vào bộ xê dịch Timer1.  T1CKI : ngõ vào xung clock bên ngoài Timer1.  Chân RC1 / T1OSI / CCP2 ( 16 ) :  RC1 : xuất / nhập số.  T1OSI : ngõ vào bộ giao động Timer1.  CCP2 : ngõ vào Capture2, ngõ ra compare2, ngõ ra PWM2.  Chân RC2 / CCP1 ( 17 ) :  RC2 : xuất / nhập số  CCP1 : ngõ vào Capture1, ngõ ra compare1, ngõ ra PWM1  Chân RC3 / SCK / SCL ( 18 ) :  RC3 : xuất / nhập số.  SCK : ngõ vào xung clock tiếp nối đuôi nhau đồng nhất / ngõ ra của chính sách SPI.Truong DH SPKT TP. Hồ Chí Minh http://www.hcmute.edu.vnThu vien DH SPKT TP. TP HCM – http://www.thuvienspkt.edu.vnBan quyen © Truong DH Su pham Ky thuat TP. HCMChương 2. Vi điều khiển và tinh chỉnh PIC. SPKT – Nguyễn Đình Phú47Vi xử lý  SCL : ngõ vào xung clock tiếp nối đuôi nhau đồng nhất / ngõ ra của chính sách IC.  Chân RC4 / SDI / SDA ( 23 ) :  RC4 : xuất / nhập số.  SDI : tài liệu vào SPI.  SDA : xuất / nhập tài liệu IC.  Chân RC5 / SDO ( 24 ) :  RC5 : xuất / nhập số.  SDO : tài liệu ra SPI.  Chân RC6 / TX / CK ( 25 ) :  RC6 : xuất / nhập số.  TX : truyền bất đồng bộ USART.  CK : xung đồng điệu USART.  Chân RC7 / RX / DT ( 26 ) :  RC7 : xuất / nhập số.  RX : nhận sự không tương đồng USART.  DT : tài liệu đồng điệu USART.  Chân RD0 / PSP0 ( 19 ) :  RD0 : xuất / nhập số.  PSP0 : tài liệu port tớ song song.  Chân RD1 / PSP1 ( 20 ) :  RD1 : xuất / nhập số.  PSP1 : tài liệu port tớ song song.  Các chân RD2 / PSP2 ( 21 ), RD3 / PSP3 ( 22 ), RD4 / PSP4 ( 27 ), RD5 / PSP5 ( 28 ), RD6 / PSP6 ( 29 ), RD7 / PSP7 ( 30 ) tựa như chân 19, 20.  Chân RE0 / RD / AN5 ( 8 ) :  RE0 : xuất / nhập số. RD : điều khiển và tinh chỉnh đọc port tớ song song.  AN5 : ngõ vào tương tự như 5.  Chân RE1 / WR / AN6 ( 9 ) :  RE1 : xuất / nhập số. WR : điều khiển và tinh chỉnh ghi port tớ song song.  AN6 : ngõ vào tựa như kênh thứ 6.  Chân RE2 / CS / AN7 ( 10 ) :  RE2 : xuất / nhập số. CS : Chip lựa chọn điều khiển và tinh chỉnh port tớ song song.  AN7 : ngõ vào tựa như kênh thứ 7.  Chân VDD ( 11,32 ) và VSS ( 12, 31 ) : là những chân nguồn của PIC.Truong DH SPKT TP. Hồ Chí Minh http://www.hcmute.edu.vnThu vien DH SPKT TP. Hồ Chí Minh – http://www.thuvienspkt.edu.vnBan quyen © Truong DH Su pham Ky thuat TP. HCMChương 2. Vi điều khiển và tinh chỉnh PIC. SPKT – Nguyễn Đình Phú48Vi xử lý2. TỔ CHỨC BỘ NHỚ : Có 3 khối bộ nhớ trong PIC16F877A. Bộ nhớ chương trình và bộ nhớ tài liệu được diễn đạt chitiết trong phần này. Khối bộ nhớ tài liệu EEPROM được miêu tả cụ thể ở phần sau. a. Cấu trúc bộ nhớ chương trình : PIC16F877A có bộ đếm chương trình 13 bit hoàn toàn có thể quản trị bộ nhớ chương trình có dung lượnglà 8K word × 14 bit ( 1KW ord = 14 bit ). Khi PIC bò reset thì thanh ghi PC có giá trò là 0000 h hay còn vector ngắt có đòa chỉ 0004H. Hình 2-4. Sơ đồ bộ nhớ chương trình và ngăn xếp. b. Cấu trúc bộ nhớ tài liệu : Bộ nhớ tài liệu được phân loại thành nhiều Bank và những thanh ghi tính năng đặc biệt quan trọng. Haibit RPRP – bit trạng thái thứ 6 và thứ 5 được dùng để chọn ngân hàng như bảng 2-3. Mỗi ngân hàng hoàn toàn có thể lan rộng ra lên đến đòa chỉ 7F h ( tương tự với 128 byte ). Các ô nhớ có đòachỉ thấp của mỗi ngân hàng được dành cho những thanh ghi tính năng đặc biệt quan trọng. Trên những thanh ghi chứcnăng đặc biệt quan trọng là những thanh ghi đa dụng – xem như bộ nhớ RAM. Tất cả những ngân hàng thanh ghi đềuchứa những thanh ghi đặc biệt quan trọng. RP1 : RP0Bank00 001 1T ruong DH SPKT TP. TP HCM http://www.hcmute.edu.vnThu vien DH SPKT TP. TP HCM – http://www.thuvienspkt.edu.vnBan quyen © Truong DH Su pham Ky thuat TP. HCMChương 2. Vi điều khiển và tinh chỉnh PIC. SPKT – Nguyễn Đình Phú49Vi xử lý10 211 3B ảng 2-3. Lựa chọn ngân hàng thanh ghi. c. File thanh ghi tác dụng tổng quát : File thanh ghi hoàn toàn có thể được truy xuất trực tiếp hoặc gián tiếp trải qua File thanh ghi đặc biệt quan trọng. Hình 2-5. Sơ đồ File thanh ghi. Quy ước : ( 1 ) Các ô nhớ tô màu xám là chưa phong cách thiết kế nếu đọc sẽ có giá trò là 0. Truong DH SPKT TP. TP HCM http://www.hcmute.edu.vnThu vien DH SPKT TP. Hồ Chí Minh – http://www.thuvienspkt.edu.vnBan quyen © Truong DH Su pham Ky thuat TP. HCMChương 2. Vi điều khiển và tinh chỉnh PIC. SPKT – Nguyễn Đình Phú50Vi xử lýQuy ước : ( 2 ) Các dấu ( * ) không phải là thanh ghi vật lý. Chú ý : ( 1 ) Những thanh ghi này không có trong PIC 16F876 A.Chú ý : ( 2 ) Những thanh ghi này được bảo vệ. Bảng liệt kê những thanh ghi nằm trong ngân hàng thứ 0 được trình diễn trong bảng 2-4. Bảng 2-4. Tóm tắt những thanh ghi đặc biệt quan trọng. Quy ước : × = không xác đònh, u = không biến hóa, q = giá trò tuỳ thuộc vào điều kiện kèm theo, – = chưasử dụng nếu đọc sẽ có giá trò 0, r = dự trữ. Chú ý : ( 1 ) Byte cao của thanh ghi PC không hề truy xuất trực tiếp. PCLATH chứa những bitPC < 12 : 8 >, nội dung của thanh ghi này sẽ chuyển cho byte cao của thanh ghi PC.Chú ý : ( 2 ) Các bit PSPIE và PSPIF được dữ trữ cho PIC 16F873 A / 876A. Chú ý : ( 3 ) Các thanh ghi hoàn toàn có thể đòa chỉ hoá từ bất kể ngân hàng nào. Truong DH SPKT TP. TP HCM http://www.hcmute.edu.vnThu vien DH SPKT TP. TP HCM – http://www.thuvienspkt.edu.vnBan quyen © Truong DH Su pham Ky thuat TP. HCMChương 2. Vi tinh chỉnh và điều khiển PIC. SPKT – Nguyễn Đình Phú51Vi xử lýChú ý : ( 4 ) PORTD, PORTE, TRISD và TRISE không có trong PIC 16F873 A / 876A nếu đọcsẽ có giá trò 0. Chú ý : ( 5 ) Bit thứ 4 của thanh ghi EEADRH chỉ được dùng cho PIC 16F876 A / 877A. Bảng liệt kê những thanh ghi nằm trong ngân hàng thứ 1 được trình diễn trong bảng 2-5. Bảng 2-5. Tóm tắt những thanh ghi đặc biệt quan trọng. Bảng liệt kê những thanh ghi nằm trong ngân hàng thứ 2 được trình diễn trong bảng 2-6. Truong DH SPKT TP. Hồ Chí Minh http://www.hcmute.edu.vnThu vien DH SPKT TP. TP HCM – http://www.thuvienspkt.edu.vnBan quyen © Truong DH Su pham Ky thuat TP. HCMChương 2. Vi điều khiển và tinh chỉnh PIC. SPKT – Nguyễn Đình Phú52Vi xử lýBảng 2-6. Tóm tắt những thanh ghi đặc biệt quan trọng. d. Các thanh ghi có tính năng đặc biệt quan trọng : Những thanh ghi tính năng đặc biệt quan trọng là những thanh ghi được sử dụng bởi CPU và những khốingoại vi để điều khiển và tinh chỉnh hoạt động giải trí theo nhu yếu của CPU. Những thanh ghi này xem như RAM tónh. Thanh ghi trạng thái – STATUSTGTT chứa trạng thái của khối ALU, trạng thái Reset và những bit chọn ngân hàng bộ nhớ tài liệu. Chức năng của những bit trong thanh ghi trạng thái : Truong DH SPKT TP. Hồ Chí Minh http://www.hcmute.edu.vnThu vien DH SPKT TP. Hồ Chí Minh – http://www.thuvienspkt.edu.vnBan quyen © Truong DH Su pham Ky thuat TP. HCMChương 2. Vi tinh chỉnh và điều khiển PIC. SPKT – Nguyễn Đình Phú53Vi xử lýBit 7 IRP : bit lựa chọn thanh ghi ( dùng đòa chỉ gián tiếp ). 1 = ngân hàng 2, 3 ( 100 h – 1FF h ) 0 = ngân hàng 0, 1 ( 00 h – FFh ) Bit 6-5 RP1 : RP0 : những bit lựa chọn thanh ghi ( dùng đòa chỉ trực tiếp ) 11 = bank 3 ( 180 h – 1FF h ) 10 = ngân hàng 2 ( 100 h – 17F h ) 01 = ngân hàng 1 ( 80 h – FFh ) 00 = bank 0 ( 00 h – 7F h ) Mỗi ngân hàng là 128 byte. Bit 4TO : Time-out bit ( Bit thời hạn chờ ) 1 = sau khi mở nguồn, lệnh CLRWDT hoặc SLEEP0 = thời hạn chờ của WDT được thực hiệnBit 3PD : Power-down bit ( bit tắt nguồn ) 1 = sau khi mở nguồn hoặc bằng lệnh CLRWDT0 = thực thi lệnh SLEEPBit 2 Z : Zero bit ( bit 0 ) 1 = khi hiệu quả bằng 0.0 = khi hiệu quả khác 0. Bit 1 DC : Digit carry / borrowbit ( những lệnh ADDWF, ADDLW, SUBLW, SUBWF ) ( bit tràn / mượn ) 1 = khi cộng 4 bit thấp bò tràn. 0 = khi cộng 4 bit thấp không bò tràn. Bit 0 C : Carry / borrowbit ( những lệnh ADDWF, ADDLW, SUBLW, SUBWF ) 1 = khi tác dụng phép toán có tràn. 0 = khi hiệu quả phép toán không bò tràn. Chú ý : Nếu phép toán trừ thì trạng thái của cờ DC và C thì ngược lại và đơn cử như sau : nếuphép trừ lớn hơn 0 thì cờ C bằng 1, nếu tác dụng trừ nhỏ hơn 0 thì cờ C bằng 0. Quy ước : R = bit hoàn toàn có thể đọc, W = bit hoàn toàn có thể ghi, U = bit chưa sử dụng đọc là 0, Quy ước : – n = giá trò tuỳ thuộc POR, ‘ 1 ’ = bit bò SET, ‘ 0 ’ = bit bò xoá, × = bit không xác đònh. Thanh ghi OPTION_REGLà thanh ghi hoàn toàn có thể đọc / ghi, thanh ghi này có những bit tinh chỉnh và điều khiển khác nhau để thiết lập bộchia trước cho Timer0 / WDT, ngắt INT bên ngoài, Timer0 và treo PORTB.Bit 7RBPU : PORTB Pull-up Enable bit ( bit được cho phép treo PORTB ) Truong DH SPKT TP. TP HCM http://www.hcmute.edu.vnThu vien DH SPKT TP. Hồ Chí Minh – http://www.thuvienspkt.edu.vnBan quyen © Truong DH Su pham Ky thuat TP. HCMChương 2. Vi tinh chỉnh và điều khiển PIC. SPKT – Nguyễn Đình Phú54Vi xử lý1 = không được cho phép treo PORTB. 0 = được cho phép treo PORTB.Bit 6 INTEDG : Interrupt Edge Select bit ( bit lựa chọn cạnh ngắt ) 1 = được cho phép chân ngắt RB0 / INT tích cực cạnh lên. 0 = được cho phép chân ngắt RB0 / INT tích cực cạnh xuống. Bit 5 T0CS : TMR0 Clock Source Select bit ( bit lựa chọn nguồn xung clock TMR0 ) 1 = được cho phép nhận xung ngõ vào ở chân RA4 / T0CKI. 0 = được cho phép nhận xung nội bên trong. Bit 4 T0SE : TMR0 Source Edge Select bit ( bit lựa chọn kiểu tác động ảnh hưởng cho TMR0 ) 1 = được cho phép xung vào chân RA4 / T0CKI tích cực cạnh lên. 0 = được cho phép xung vào chân RA4 / T0CKI tích cực cạnh xuống. Bit 3 PSA : Prescaler Assignment bit ( bit gán bộ chia ) 1 = bộ chia được gán cho WDT. 0 = bộ chia được gán cho Timer0. Bit 2-0 PS2 : PS0 : Prescaler Rate Select bits ( bit lựa chọn thông số chia trước ) Giá trò bitTỉ lệ TMR0Tỉ lệ WDT0000010100111001011101111 : 21:41:81 : 161 : 321 : 641 : 1281 : 2561 : 11:21:41 : 81 : 161 : 321 : 641 : 128B ảng 2-7. Các bit lựa chọn thông số chia trước. Chú ý : Khi sử dụng lập trình điện áp thấp ICSP ( LVP ) và treo PORTB được được cho phép thì phảixoá bit 3 trong thanh ghi TRISB để không được cho phép treo ở chân RB3 và bảo vệ cho hoạt độngriêng của PIC.Thanh ghi INTCONLà thanh ghi hoàn toàn có thể đọc và ghi, chứa những bit cờ và bit được cho phép những ngắt khác nhau nhưngắt khi TMR0 tràn, ngắt khi có đổi khác ở PORTB và ngắt ngoài ở chân RB0 / INT.Bit 7 GIE : bit được cho phép ngắt toàn cục1 = được cho phép tổng thể những nguồn ngắt. Truong DH SPKT TP. TP HCM http://www.hcmute.edu.vnThu vien DH SPKT TP. Hồ Chí Minh – http://www.thuvienspkt.edu.vnBan quyen © Truong DH Su pham Ky thuat TP. HCMChương 2. Vi tinh chỉnh và điều khiển PIC. SPKT – Nguyễn Đình Phú55Vi xử lý0 = không được cho phép tổng thể những nguồn ngắt. Bit 6 PEIE : bit được cho phép ngắt ngoại vi1 = được cho phép ngắt. 0 = không được cho phép ngắt. Bit 5 TMR0IE : bit được cho phép ngắt TMR01 = được cho phép ngắt. 0 = không được cho phép ngắt. Bit 4 INTE : bit được cho phép ngắt ngoài ở chân RB0 / INT1 = được cho phép ngắt. 0 = không được cho phép ngắt. Bit 3 RBIE : bit được cho phép ngắt biến hóa PORTB1 = được cho phép ngắt khi PORTB thay đổi0 = không được cho phép ngắt khi PORTB thay đổiBit 2 TMR0IF : cờ tràn TMR01 = thanh ghi TMR0 tràn ( xóa bằng ứng dụng ). 0 = thanh ghi TMR0 không tràn hay chưa tràn. Bit 1 INTF : cờ báo ngắt ngoài RB0 / INT. 1 = ngắt ngoài ở chân RB0 / INT đã xảy ra ( xóa bằng ứng dụng ) 0 = ngắt ngoài ở chân RB0 / INT không xảy raBit 0 RBIF : cờ báo khi PORTB có thay đổi1 = có tối thiểu những chân RB7 : RB4 biến hóa trạng thái ; điều kiện kèm theo không tươngthích sẽ liên tục làm bit này bằng 1. Khi đọc PORTB sẽ chấm hết điều kiệnkhông thích hợp và được cho phép xóa cờ báo này bằng ứng dụng. 0 = những chân RB7 : RB4 không có sự đổi khác trạng thái. Thanh ghi PIE1Là thanh ghi chứa những bit được cho phép ngắt độc lập cho những ngắt ngoại vi. Bit 7 PSPIE : bit được cho phép ngắt đọc / ghi ở port nhánh tuy nhiên song1 = được cho phép ngắt PSP đọc / ghi0 = không được cho phép ngắt PSP đọc / ghiBit 6 ADIE : bit được cho phép ngắt bộ chuyển đổi A / D1 = được cho phép ngắt. 0 = không được cho phép ngắt. Bit 5 RCIE : bit được cho phép ngắt nhận tài liệu USARTTruong DH SPKT TP. Hồ Chí Minh http://www.hcmute.edu.vnThu vien DH SPKT TP. Hồ Chí Minh – http://www.thuvienspkt.edu.vnBan quyen © Truong DH Su pham Ky thuat TP. HCMChương 2. Vi điều khiển và tinh chỉnh PIC. SPKT – Nguyễn Đình Phú56Vi xử lý1 = được cho phép ngắt. 0 = không được cho phép ngắt. Bit 4 TXIE : bit được cho phép ngắt phát tài liệu USART1 = được cho phép ngắt. 0 = không được cho phép ngắt. Bit 3 SSPIE : bit được cho phép ngắt port tiếp nối đuôi nhau đồng bộ1 = được cho phép ngắt SSP. 0 = không được cho phép ngắt SSP.Bit 2 CCP1IE : bit được cho phép ngắt CCP11 = được cho phép ngắt CCP1. 0 = không được cho phép ngắt CCP1. Bit 1 TMR2IE : bit được cho phép ngắt tương thích ứng TMR2 với PR21 = được cho phép ngắt thích hợp TMR2 với PR2. 0 = không được cho phép ngắt thích hợp TMR2 với PR2. Bit 0 TNR1IE : bit được cho phép ngắt tràn TMR11 = được cho phép ngắt TMR1 tràn. 0 = không được cho phép ngắt TMR1 tràn. Thanh ghi PIR1Là thanh ghi chứa những bit cờ cho những ngắt ngoài. Chú ý : những bit cờ ngắt được Set khi điều kiện kèm theo ngắt xảy ra mặc kệ trạng thái của bit chophép hoặc bit được cho phép ngắt toàn cục GIE ( INTCON < 7 > ). Phần mềm của người dùng phải đảmbảo những bit ngắt tương ứng phải bò xóa trước khi được cho phép ngắt. Bit 7 PSPIF : cờ báo ngắt port nhánh song song đọc / ghi1 = hoạt động giải trí đọc hoặc ghi được thực thi. 0 = hoạt động giải trí đọc hoặc ghi không xảy ra. Bit 6 ADIF : cờ báo ngắt bộ chuyển đổi A / D1 = quy đổi A / D đã được hoàn thành xong. 0 = quy đổi A / D chưa được hoàn thành xong. Bit 5 RCIF : cờ báo ngắt nhận USART1 = USART nhận xong. 0 = USART nhận chưa xong. Bit 4 TXIF : cờ báo ngắt truyền USART1 = truyền đệm của USART còn trống. Truong DH SPKT TP. TP HCM http://www.hcmute.edu.vnThu vien DH SPKT TP. TP HCM – http://www.thuvienspkt.edu.vnBan quyen © Truong DH Su pham Ky thuat TP. HCMChương 2. Vi điều khiển và tinh chỉnh PIC. SPKT – Nguyễn Đình Phú57Vi xử lý0 = truyền đệm của USART đầy. Bit 3 SSPIF : cờ báo ngắt port tiếp nối đuôi nhau đồng điệu ( SSP ) 1 = điều kiện kèm theo ngắt SSP đã xảy ra và phải xóa bằng ứng dụng trước khi quaytrở về từ chương trình con Giao hàng ngắt ( Interrupt Service Routine ). Điềukiện để bit trạng thái này lên 1 là : o SPI – truyền / nhận đã được thực thi. o IC Slave : truyền / nhận đã được thực thi. o IC Master :  Truyền / nhận đã được thực thi.  Điều kiện Start khởi động đã được hoàn thành xong bởi khối SSP.  Điều kiện Stop khởi động đã được hoàn thành xong bởi khối SSP.  Điều kiện Restart khởi động đã được triển khai xong bởi khối SSP.  Điều kiện bắt tay đã được hoàn thành xong bởi khối SSP.  Điều kiện Start đã xảy ra khi khối SSP đang ở trạng thái rỗi ( multi-master system : mạng lưới hệ thống nhiều chủ ).  Điều kiện Stop đã xảy ra khi khối SSP đang ở trạng thái rỗi. 0 = không có điều kiện kèm theo ngắt SSP nào xảy ra. Bit 2 CCP1IF : cờ báo ngắt CCP1Chế độ Capture : 1 = thanh ghi bắt nhòp TMR1 có xảy ra ( xóa bằng ứng dụng ). 0 = thanh ghi bắt nhòp TMR1 không xảy ra. Chế độ so sánh : 1 = thích ứng so sánh thanh ghi TMR1 có xảy ra. 0 = thích ứng so sánh thanh ghi TMR1 không xảy ra. Bit 1 TMR2IF : cờ báo ngắt thích hợp TMR2 với PR21 = TMR2 thích hợp với PR2 ( xóa bằng ứng dụng ). 0 = TMR2 không thích hợp với PR2. Bit 0 TMR1IF : cờ báo ngắt tràn TMR11 = thanh ghi TMR1 đã tràn. 0 = thanh ghi TMR1 không tràn. “ 1 ” = bit được setThanh ghi PIE2Là thanh ghi chứa những bit được cho phép ngắt ngoại vi CCP2, ngắt xung đột đường truyền SSP, ngắt hoạt động giải trí ghi của EEPROM và ngắt của bộ so sánh. Truong DH SPKT TP. Hồ Chí Minh http://www.hcmute.edu.vnThu vien DH SPKT TP. Hồ Chí Minh – http://www.thuvienspkt.edu.vnBan quyen © Truong DH Su pham Ky thuat TP. HCMChương 2. Vi tinh chỉnh và điều khiển PIC. SPKT – Nguyễn Đình Phú58Vi xử lýBit 7 Chưa dùng : đọc là ‘ 0 ’ Bit 6 CMIE : bit được cho phép ngắt bộ so sánh1 = được cho phép ngắt. 0 = không được cho phép ngắt. Bit 5 Chưa dùng : đọc là ‘ 0 ’ Bit 4 EEIE : bit được cho phép ngắt hoạt động giải trí ghi của EEPROM1 = được cho phép ngắt. 0 = không được cho phép ngắt. Bit 3 BCLIE : bit được cho phép ngắt sự xung đột đường dẫn1 = được cho phép ngắt. 0 = không được cho phép ngắt. Bit 2-1 Chưa dùng : đọc là ‘ 0 ’ Bit 0 CCP2IE : bit được cho phép ngắt CCP21 = được cho phép ngắt. 0 = không được cho phép ngắt. Chú ý : bit PEIE ( INTCON < 6 > ) phải được set để được cho phép bất kể sự ngắt ngoài nào. Thanh ghi PIR2Là thanh ghi chứa những bit cờ báo ngắt CCP2, ngắt xung đột đường dẫn SSP, ngắt hoạt độngghi của EEPROM và ngắt bộ so sánh. Bit 7 Chưa dùng : đọc là ‘ 0 ’. Bit 6 CMIF : cờ báo ngắt bộ so sánh1 = ngõ vào bộ so sánh đã đổi khác ( xóa bằng ứng dụng ). 0 = ngõ vào bộ so sánh không biến hóa. Bit 5 Chưa dùng : đọc là ‘ 0 ’. Bit 4 EEIF : cờ báo ngắt hoạt động giải trí ghi của EEPROM1 = hoạt động giải trí ghi được triển khai xong ( xóa bằng ứng dụng ). 0 = hoạt động giải trí ghi chưa triển khai xong hoặc chưa khởi động. Bit 3 BCLIF : cờ báo ngắt xung đột đường dẫnTruong DH SPKT TP. TP HCM http://www.hcmute.edu.vnThu vien DH SPKT TP. Hồ Chí Minh – http://www.thuvienspkt.edu.vnBan quyen © Truong DH Su pham Ky thuat TP. HCMChương 2. Vi tinh chỉnh và điều khiển PIC. SPKT – Nguyễn Đình Phú59Vi xử lý1 = xung đột đường dẫn đã xảy ra trong SSP khi được thiết lập cấu hìnhở chính sách IC chủ. 0 = đường dẫn không xảy ra xung đột. Bit 2-1 Chưa dùng : đọc là ‘ 0 ’ Bit 0 CCP2IF : bit cờ ngắt CCP2Chế độ Capture : 1 = thanh ghi bắt nhòp TMR1 xảy ra ( xóa bằng ứng dụng ). 0 = thanh ghi bắt nhòp TMR1 chưa xảy ra. Chế độ so sánh : 1 = thích hợp so sánh thanh ghi TMR1 xảy ra ( xóa bằng ứng dụng ). 0 = thích hợp so sánh thanh ghi TMR1 chưa xảy ra. Chế độ PWM : Không được sử dụngChú ý : cờ báo ngắt được Set khi ngắt xảy ra với điều kiện kèm theo bit được cho phép tương ứng hoặc toànbộ bit được phép, GIE ( INTCON < 7 > ). Người dùng phải bảo vệ sự tương thích của những bit ngắtđược xóa sớm hơn để cho phép ngắt. Thanh ghi PCONThanh ghi PCON ( Power Control ) chứa những cờ để được cho phép phân biệt sự khác nhau của cáctrạng thái reset : khi mở điện – Power-on Reset ( POR ), Brown-out Reset ( BOR ), Watchdog Reset ( WDT ) vàMCLRReset. Bit 7-2 Chưa dùng : đọc là ‘ 0 ’ Bit 1POR : bit trạng thái Power-on Reset1 = reset khi mở điện không xảy ra. 0 = reset khi mở điện đã xảy ra ( phải Set bằng ứng dụng sau khi Power-onReset xảy ra ). Bit 0BOR : bit trạng thái Brown-out Reset1 = Brown-out Reset không xảy ra0 = Brown-out Reset xảy ra ( phải Set bằng ứng dụng sau khi Brown-outReset xảy ra ). Thanh ghi PC và PCLATHThanh ghi bộ đếm chương trình ( PC ) có độ rộng 13 bit, 8 bit thấp nằm ở thanh ghi PCL, cácbit này hoàn toàn có thể đọc và ghi. Các bit cao còn lại ( 8 : 12 ) thì không hề đọc nhưng hoàn toàn có thể ghi gián tiếpthông qua thanh ghi PCLATH. Khi bất kỳ Reset nào xảy ra thì những bit cao của thanh ghi PC sẽ bòTruong DH SPKT TP. Hồ Chí Minh http://www.hcmute.edu.vnThu vien DH SPKT TP. TP HCM – http://www.thuvienspkt.edu.vnBan quyen © Truong DH Su pham Ky thuat TP. TP HCM

Các bài viết liên quan

Viết một bình luận