BÁO CÁO: THỰC TẬP TỐT NGHIỆP - 1 - SV: PHÙNG XUÂN QUÂN
MỤC LỤC
Trang
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT 2
DANH MỤC CÁC BẢNG 3
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ 4
LỜI MỞ ĐẦU 6
CHƯƠNG 1 – TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC
1. Giới thiệu về vi điều khiển PIC của Microchip. 43
1.1.Vài nét về lịch sử phát triển. 43
1.2. Kiến trúc của vi điều khiển PIC. 45
1.3.Các dòng vi điều khiển PIC 49
CHƯƠNG 2 – TÌM HIỂU VỀ PIC 16F877A
2.1. Sơ Đồ Chân Của Vi Điều Khiển PIC 16F877A. 67
2.2. Một Vài Thông Số Về Vi Điều Khiển PIC 16F877A. 67
2.3. Sơ Đồ Khối Của Vi Điều Khiển PIC 16F877A. 69
2.4. Tổ Chức Bộ Nhớ PIC 16F877A.
2.5. Stack.
2.6. Các Cổng Xuất Nhập Của PIC 16F877A.
2.7. Các Bộ Timer Của PIC 16F877A.
2.8. Bộ Chuyển Đổi ADC Của PIC 16F877A.
2.9. Bộ COMPARATOR Của PIC 16F877A.
2.10. Bộ CCP (Capture/Compare/PWM) PIC 16F877A.
2.10. Giao Tiếp Nối Tiếp Của PIC 16F877A.
2.11. Giao Tiếp Song Song PSP (Parallel Slave Port).
2.12. Các Ngắt Của PIC 16F877A.
2.13. WATCHDOG TIMER (WDT).
ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
BÁO CÁO: THỰC TẬP TỐT NGHIỆP - 2 - SV: PHÙNG XUÂN QUÂN
2.14. Chế Độ SLEEP.
2.15. Đánh Thức Vi Điều Khiển.
ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
BÁO CÁO: THỰC TẬP TỐT NGHIỆP - 3 - SV: PHÙNG XUÂN QUÂN
DANH MỤC CÁC BẢNG
Trang
Bảng 2.1:Đặc tính nổi bật của VĐK PIC16F877A.
Bảng 2.2: Chọn Các Bank làm việc.
Bảng 2.3: Bit 2:0 PS2:PS1 lựa chọn hệ số chia xung .
Bảng 2.4: Bit 5, 4 T1CKPS1:T1CKPS0 lựa chọn hệ số chia xung.
Bảng 2.5: Các trường hợp CCPx được liệt kê trong bảng sau
Bảng 2.6: Công thức tính tốc độ baud do BRG tạo ra
Bảng 3.1: Bảng chức năng của LCD 16x2:
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Trang
Hình 1.1 Kiến trúc Von Neuman.
11
Hình 1.2 Kiến trúcHarvard.
11
Hình 1.3 Các dòng vi điều khiển của Microchip.
12
Hình 1.4 Sơ đồ khối vi điều khiển 8bit của Microchip.
13
Hình 1.5 Sơ đồ khối của PIC24F.
16
Hình 1.6 Sơ đồ khối của PIC24H.
22
Hình 1.7 Sơ đồ khối của dsPIC.
22
Hình 1.8 Sơ đồ khối củaPIC32.
23
Hình 2.1:Sơ đồ bố trí chân của PIC16F877A.
36
Hình 2.15 Sơ Đồ Khối CPP (Capture Mode).
40
Hình 2.16: Sơ Đồ Khối CPP (Compare Mode).
41
Hình 2.17: Sơ Đồ Khối CPP (PWM Mode).
42
Hình 2.18: Các Tham Số Của PWM.
46
Hình 2.19: Sơ Đồ Khối Của Khối Truyền Dữ Liệu USART.
48
Hình 2.20: Sơ Đồ Khối Của Khối Nhận Dữ Liệu USART.
49
Hình 2.21: Sơ Đồ Khối MSSP (Giao Diện SPI).
50
Hình 2.22: Sơ Đồ Khối Của PORTD và PORTE Ở Chế Độ PSP
Slave Mode.
52
Hình 2.23:Các Thanh Ghi PIE1, PIR1, PIE2, PIR2 Điều Khiển
Các Ngắt Ngoại Vi.
54
Hình 3.1: Sơ Đồ Khối VOLMET.
55
Hình 3.2: Sơ Đồ Khối Nguồn.
59
Hình 3.3: Sơ Đồ Khối Xử Lý Trung Tâm.
61
ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
BÁO CÁO: THỰC TẬP TỐT NGHIỆP - 5 - SV: PHÙNG XUÂN QUÂN
Hình 3.4: Sơ Đồ Khối Hiển Thị.
giáo Lê Mạnh Long và các thầy cô khác trong khoa em đã có cơ hội chuyển
kiến thức lý thuyết thành sản phẩm thực tế qua đề tài “Thiết kế bộ volmet
điện tử sử dụng vi điều khiển PIC”, qua đó cũng đã hoàn thành được đề tài
của mình. Tuy nhiên, với thời gian ngắn, trang thiết bị để phục vụ làm báo
cáo chưa đầy đủ nên báo cáo không tránh khỏi những thiếu sót và hạn chế, em
ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
BÁO CÁO: THỰC TẬP TỐT NGHIỆP - 7 - SV: PHÙNG XUÂN QUÂN
rất mong nhận được sự đóng góp, góp ý kiến của các thầy và các thầy,cô
trong khoa điện tử và các bạn trong lớp là một điều rất tốt để báo cáo thực tập
tốt nghiệp của chúng em thêm hoàn thiện.
Em xin chân thành cảm ơn!
CHƯƠNG 1 – TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC
ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
BÁO CÁO: THỰC TẬP TỐT NGHIỆP - 8 - SV: PHÙNG XUÂN QUÂN
1.1. Vài Nét Về Lịch Sử Phát Triển.
PIC (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 của họ là PIC1650. Vào
thập kỷ 70 của thế kỷ 20, General Instrument và Honeywell kết hợp sản xuất
ra bộ vi xử lý 16 bit CP1600. Đây là một bộ vi xử lý khá mạnh vào thời điểm
đó nhưng lại hạn chế về hoạt động vào/ra. PIC1650 được sản xuất để hỗ trợ vi
xử lý CP1600 trong các máy tính sử dụng bộ vi xử lý này.
PIC1650 hoạt động với tập lệnh đơn giản nằm trong ROM. Vào thời
điểm đó chưa có khái niệm về RISC (Reduced Instructions Set Code), tuy
nhiên PIC1650 thực sự là một bộ vi điều khiển được thiết kế theo kiểu kiến
trúc RISC. Tập lệnh của PIC1650 với khoảng 30 lệnh và độ dài của mỗi lệnh
là 14 bit. Mỗi lệnh được PIC1650 thực hiện trong 1 chu kỳ máy (4 chu kỳ của
bộ dao động).
Năm 1985 General Instruments bán bộ phận sản xuất 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 liên quan (do các dự án lúc đó đã
quá lỗi thời).
năng được bổ sung như các bộ định thời (Timer), truyền thông nối tiếp Dòng
vi điều khiển PIC 8 bit đã dẫn đầu về số lượng bộ bán ra mỗi năm liên tục từ
năm 2002 đến nay.
Trước nhu cầu về tốc độ xử lý cũng như các tính năng đặc biệt khác,
Microchip Technology tiếp tục cho ra đời các dòng vi điều khiển tiên tiến
hơn như: PIC24, PIC33, dsPIC
Ngày nay đã có đến hàng chục dòng PIC với hàng trăm loại chip khác
nhau. Tại Việt Nam cũng như trên thế giới, họ vi điều khiển này được sử
dụng khá rộng rãi. Điều này tạo nhiều thuận lợi trong quá trình tìm hiểu và
phát triển các ứng dụng như: Số lượng tài liệu, số lượng các ứng dụng mở đã
được phát triển thành công; dễ dàng trao đổi, học tập, dễ dàng tìm được sự chỉ
dẫn khi gặp khó khăn,…
ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
BÁO CÁO: THỰC TẬP TỐT NGHIỆP - 10 - SV: PHÙNG XUÂN QUÂN
1.2. Kiến Trúc Của Vi Điều Khiển PIC.
Kiến trúc của một bộ vi điều khiển được thiết kế theo hai dạng cơ bản:
Kiến trúc Von Neuman và kiến trúc Harvard. (hình 1.1 và hình 1.2)
Von Neumann là một nhà toán học, vật lí người Mỹ, gốc Do thái.
Năm 1944, Von Neumann làm cố vấn cho dự án chế tạo máy tính
ENIAC, để phục vụ cho các mục đích quân sự của Mỹ. Năm 1945, Sau khi dự
án ENIAC hoàn thành, Von Neumann cùng nhóm một vài thành viên trong
nhóm làm việc của ông lại tiến hành một dự án mới, là xây dựng một máy
tính hiện đại hơn.
Năm 1945, Von Neumann đã viết một bài báo có tính bước ngoặc với
tựa: "Bản thảo đầu tiên về máy tính EDVAC " ("The First Draft of a Report
on the EDVAC "), chứa đựng những ý tưởng về cầu trúc cơ bản mà một máy
tính cần có . Bài báo này được Von Neumann trao đổi giới hạn với các thành
viên trong nhóm làm việc, tuy nhiên, sau đó đã được phổ biến rộng rãi và ảnh
hưởng mạnh đến sự phát triển của máy tính ở Mỹ và thế giới. Theo đó, cấu
trúc của máy tính là sự kết hợp của các thành phần sau:
Z
ALU
IN
OU
T
Flags
PC
IR
CU
MAR
Data
Buffer
System Bus
Data Line
Addres Line
Control Line
A: Thanh ghi tích lũy.
Y,Z: Temporary Register (thanh ghi đệm).
Flags: Thanh ghi cờ.
PC: Bộ đếm chương trình (Program Counter).
IR: Thanh ghi lệnh (Instruction Register).
BÁO CÁO: THỰC TẬP TỐT NGHIỆP - 12 - SV: PHÙNG XUÂN QUÂN
Chính kiến trúc này, như Von Neumann đã tự thừa nhận là làm giới hạn
tốc độ thực thi của chương trình do tại mỗi thời điểm chỉ thực thi được một
lệnh. Tình trạng này được John Backus, một người tiên phong trong lĩnh vực
máy tính gọi là tình trạng "Thắt cổ chai Von Neumann" (von Neumann
bottleneck). Tình trạng "Thắt cổ chai von Neumann" chỉ ra rằng, tốc độ hệ
thống bị giới hạn do tốc độ thực thi của CPU nhanh hơn tốc độ cung cấp
thông tin cho CPU từ bộ nhớ (tốc độ truy xuất bộ nhớ).
DsPIC được thiết kế theo kiểu kiến trúc này.
ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
BÁO CÁO: THỰC TẬP TỐT NGHIỆP - 14 - SV: PHÙNG XUÂN QUÂN
1.3.Các dòng vi điều khiển PIC.
Nếu phân chia theo độ rộng bus dữ liệu thì có 3 dòng vi điều khiển PIC
Hình 1.3 Các dòng vi điều khiển của Microchip.
1.3.1. Vi điều khiển 8bit.
Đây là dòng sản phẩm bán chạy nhất của Microchip, vi điều khiển 8bit
có một số đặc điểm chính sau:
- Thiết kế theo kiến trúc Harvard.
- Độ rộng bus dữ liệu: 8bit.
ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
PIC1
0
PIC1
2
PIC1
6
PIC1
8
PIC24
F
PIC24
H
dsPIC3
0
dsPIC3
3
PIC32
Vi điều
triệu lệnh/giây), ngoài ra dòng chip này còn được bổ sung một số tính năng
như: Có thể hoạt động ở chế độ nghỉ (sleep mode) với dòng tiêu thụ chỉ
0.1uA; có thể chuyển sang nguồn dao động dự phòng nếu nguồn dao động
chính bị hỏng.
Các chip thuộc dòng 18FxxJxx còn được tích hợp thêm module
Ethernet chuẩn IEEE 802.3.
1.3.2. Vi Điều Khiển 16 Bit.
Dòng vi điều khiển 16bit của Microchip gồm PIC24 và dsPIC.
1.3.2.1. PIC24.
PIC24 bao gồm hai dòng PIC24F và PIC24H.
Một số đặc điểm chính của dòng PIC24F:
CPU:
- Thiết kế theo kiến trúc Harvard.
- Độ rộng bus dữ liệu: 16bit, độ dài mã lệnh: 24bit.
- Tốc độ thực hiện lệnh: 16 triệu lệnh/giây.
- Bộ nhân phần cứng 16bit x 16bit, thực hiện lệnh nhân trong 1 chu
kỳ.
- Bộ chia phần cứng 32bit : 16bit .
- Có hỗ trợ bộ dao động nội với tần số từ 31Khz đến 8 Mhz hoặc 32
Mhz nếu qua bộ nhân 4 lần.
- Được tích hợp bộ điều chỉnh điện áp, cho phép chíp có thể hoạt
động khi điện áp nguồn bị rơi đột ngột (LDO- Low-Dropout)
- Được tích hợp chuẩn JTAG.
- Có tính năng giám sát nguồn dao động, vi điều khiển sẽ chuyển
sang chế độ shutdown khi bị sự cố ở nguồn xung cung cấp.
ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
BÁO CÁO: THỰC TẬP TỐT NGHIỆP - 17 - SV: PHÙNG XUÂN QUÂN
- Được tích hợp Watchdog Timer với bộ dao động RC độc lập.
Hình 1.5 Sơ đồ khối của PIC24F.
Ngoại vi:
- Tập lệnh gồm 83 lệnh cơ bản.
- Module DSP:
- 16 thanh ghi công dụng chung 16bit
- Hai bộ tích lũy (Accumulator) 40bit
ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
BÁO CÁO: THỰC TẬP TỐT NGHIỆP - 20 - SV: PHÙNG XUÂN QUÂN
- Bộ nhân 16bit x 16bit
- Bộ chia 32bit/16bit và 16bit/16bit
- Bộ ghi dịch 40bit cho phép thực hiện các lệnh dịch/quay trong 1
chu kỳ lệnh.
- Thực hiện biểu thức gồm phép toán nhân và cộng trong 1 chu kỳ
nhờ bộ MAC (Multiply-Accumulate Unit)
- 8 kênh DMA với các tính năng:
- 2 Kbytes bộ đệm cho phép đọc/ghi dữ liệu từ/đến thiết bị ngoài
trong khi CPU đang thực hiện lệnh.
- Hỗ trợ ngắt DMA cho các thiết bị ngoài muốn trao đổi dữ liệu kiểu
DMA
- 67 nguồn ngắt với 118 vector ngắt, trong đó:
- 5 nguồn ngắt ngoài.
- 7 mức ưu tiên (đặt bởi phần mềm).
Ngoại vi:
- Nguồn xung đồng hồ có thể được cung cấp cho chíp từ ngoài, từ bộ
dao động thạch anh, từ bộ cộng hưởng hoặc bộ dao động RC nội.
Xung clock được cấp từ ngoài được đồng bộ hóa nhờ vòng khóa
pha (PLL-Phase Locked Loop) được tích hợp ngay trên chip. Tự
động chuyển sang nguồn clock khác khi nguồn hiện tại bị sự cố
mà không ảnh hưởng tới hoạt động của chip.
- Module WT (Watchdog Timer) được tích hợp bộ dao động RC
riêng.
- Được tích hợp tới 16 bộ Timer/Counter 16bit (tùy loại chip):
- 02 tệp thanh ghi 32 bit.
- Bộ nhớ đệm (Cache) cho phép tăng tốc đọc mã lệnh từ bộ nhớ
Flash.
- Tính năng:
- Dải điện áp hoạt động: 2.3V đến 3.6V.
- Dung lượng bộ nhớ Flash: 32K đến 512Kb.
ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
BÁO CÁO: THỰC TẬP TỐT NGHIỆP - 22 - SV: PHÙNG XUÂN QUÂN
- Dung lượng bộ nhớ SRAM: 8K đến 32K
- Ngoại vi:
- 04 kênh DMA với tính năng tự động nhận dạng kích thước dữ liệu.
- 01 cổng USB 2.0
- Xung clock cung cấp cho hệ thống có thể lấy từ bộ dao động thạch
anh (10 MHz đến 40 MHz), từ bộ dao động nội (8 MHz hoặc 32
kHz); 02 bộ vòng khóa pha (PLL) cho CPU và bộ điều khiển cổng
USB riêng biệt.
- module I2C™ .
- 02 module UART bao gồm: 01 module RS232 và 01 module
RS485
- 01 module hồng ngoại (IrDA) hỗ trợ đọc Encoder.
- Hỗ trợ trao đổi dữ liệu song song với chế độ 8/16 bit dữ liệu và 16
đường địa chỉ.
- 01 module thời gian thực (RTCC- Real-Time Clock/Calendar).
- 05 bộ Timers/Counters 16-bit, có hỗ trợ kết hợp hai bộ 16 bit thành
một bộ 32 bit.
- 05 đầu vào Capture.
- 05 đầu ra Compare/PWM.
- 05 chân ngắt ngoài
- Các chân vào/ra có thể hoạt động xuất nhập ở tốc độ lên tới
80MHz
Nguồn ngắt 14
- Vi điều khiển có tập lệnh rút gọn RISC(Reduced Instruction Set
Computer).
- Tập lệnh gồm có 35 lệnh với độ dài 14 bit.
- Tất cả các câu lệnh thực hiện trong một chu kì lệnh ngoại trừ một
số câu lệnh rẽ nhánh thực hiện trong 2 chu kì lệnh.
- Tốc độ hoạt động tối đa là 20MHz với 1 chu kỳ lệnh là 200ns.
- Bộ nhớ chương trình Flash 8Kx14 từ mã.
- Bộ nhớ Ram 368x8 bytes.
- Bộ nhớ EFPROM 256x 8 bytes.
Khả năng của bộ vi xử lí này :
- Khả năng ngắt ( lên tới 14 nguồn ngắt trong vụ ngắt ngoài ).
- Ngăn nhớ Stack được phân chia thành 8 mức.
- Truy cập bộ nhớ bằng địa chỉ trực tiếp hoặc gián tiếp.
- Nguồn khởi động lại (POR).
- Bộ tạo xung thời gian (PWRT) và bộ tạo dao động (OST).
- Bộ đếm xung thời gian (WDT) với nguồn dao động trên chip
(nguồn dao động RC ) hoạt động đáng tin cậy.
ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI