Tải bản đầy đủ (.doc) (100 trang)

Nghiên cứu về vi điều khiển pic và mạch điện ứng dụng

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 (2.51 MB, 100 trang )

BÁO CÁO THỰC TẬP TỐT NGHIÊP 1 SV: LẠI VĂN ĐỨC
BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
BÁO CÁO THỰC TẬP TỐT NGHIỆP
Nghiên cứu về vi điều khiển pic và mạch
điện ứng dụng
Giáo viên hướng dẫn: Nguyễn Tuấn Anh
Sinh viên thực hiện : Lại văn Đức


CƠ SỞ VỀ PIC ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
BÁO CÁO THỰC TẬP TỐT NGHIÊP 2 SV: LẠI VĂN ĐỨC
MỤC LỤC
LỜI NỐI ĐẦU
CHƯƠNG 1 TỔNG QUAN VỀ VI ĐIỀU KHIỂN
1.1 PIC LÀ GÌ ??
1.2 KIẾN TRÚC PIC
1.4 RISC VÀ CISC
1.5 NGÔN NGỮ LẬP TRÌNH CHO PIC
1.6 MẠCH NẠP PIC
CHƯƠNG 2 VI ĐIỀU KHIỂN PIC16F877A

2.1 SƠ ĐỒ CHÂN VI ĐIỀU KHIỂN PIC16F877A
2.2 MỘT VÀI THÔNG SỐ VỀ VI ĐIỀU KHIỂN PIC16F877A
2.3 SƠ ĐỒ KHỐI VI ĐIỀU KHIỂN PIC16F877A
2.4 TỔ CHỨC BỘ NHỚ
2.5 BỘ NHỚ DỮ LIỆU
2.6 MỘT SỐ THANH GHI ĐẶC BIỆT

2.7 STACK


2.8 CỔNG VÀO RA
CƠ SỞ VỀ PIC ĐẠI HỌC CƠNG NGHIỆP HÀ NỘI
BÁO CÁO THỰC TẬP TỐT NGHIÊP 3 SV: LẠI VĂN ĐỨC
2.9 TIMER 0
2.10 TIMER1
2.11 TIMER 2
2.12 MỘT VÀI NHẬN XÉT VỀ CÁC TIMER TRONG 16F877A
2.13 ADC
2.14 COMPARATOR
2.15 CCP
2.16 GIAO TIẾP NỐI TIẾP
2.17 GIAO TIẾP SONG SONG
2.18 TỔNG QUAN VỀ MỘT SỐ ĐẶC TÍNH CỦA CPU
PHUÏ LUÏC 1 CODE CỦA CHƯƠNG TRÌNH

CƠ SỞ VỀ PIC ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
BÁO CÁO THỰC TẬP TỐT NGHIÊP 4 SV: LẠI VĂN ĐỨC
L
ỜI NÓI ĐẦU
Ngày nay, chúng ta thấy nhiều sản phẩm điện tử được dùng trong công
nghiệp và gia dụng như các bộ điều khiển từ xa, máy in hoá đơn điện thoại, bộ
điều chỉnh công suất tự động, máy giặt tự động hay bán tự động, lò vi sóng, các
thiết bị đo, các thiết bị hiển thị và các sản phẩm khác. Điểm chung của các thiết
bị này là phải có một linh kiện gọi là ‘vi điều khiển’, cho phép điều khiển việc
phân chia khoảng thời gian và sắp đặt trình tự của các cơ cấu và quá trình xử lý,
lưu giữ và xử lý dữ liệu trong hệ thống điều khiển.
Việc sử dụng vi điều khiển không chỉ giảm chi phí cho quá trình tự động hoá
mà còn làm cho quá trình trở nên linh hoạt hơn. Nhà thiết kế bớt căng thẳng hơn
do việc ghép nối phức tạp với các thiết bị ngoại vi như ADC/DAC … và có thể
tập trung vào các đối tượng ứng dụng và nội dung phát triển. Linh kiện này có

thể lập trình được để làm cho hệ thống trở nên thông minh. Điều này hoàn toàn
là có thể bởi vì việc xử lý dữ liệu có liên quan đến dung lượng bộ nhớ của các vi
điều khiển. Các vi điều khiển có nhiều khối chức năng, có thể đáp ứng toàn bộ
các yêu cầu chung của kỹ thuật tự động hoá.
Trong quá trình thực hiện đề tài, được sự hướng dẫn tận tình của thầy giáo
Nguyễn Tuấn Anh 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 “ĐIỀU KHIỂN ĐÓNG MỞ
CỬA TỰ ĐỘNG”, 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 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!
CƠ SỞ VỀ PIC ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
BÁO CÁO THỰC TẬP TỐT NGHIÊP 5 SV: LẠI VĂN ĐỨC
CHÖÔNG 1 TOÅNG QUAN VEÀ
VI ÑIEÀU KHIEÅN PIC


1.1 PIC LAØ GÌ ??
1.1.1 PIC là viết tắt của “Programable Intelligent Computer”, có thể tạm dịch là
“máy tính thông minh khả trình” do hãng Genenral Instrument đặt tên cho vi
điều khiển đầu tiên của họ:
PIC1650 được thiết kế để dùng làm các thiết bị ngoại vi cho vi điều khiển
CP1600. Vi điều khiển này sau đó được nghiên cứu phát triển thêm và từ đó
hình thành nên dòng vi điều khiển PIC ngày nay.
1.1.2 Tại sao lại chọn pic
Hiện nay trên thị trường có rất nhiều họ vi điều khiển như 8051,
Motorola 68HC, AVR, ARM, trong đĩ cĩ vi điều khiển 8051 đã được học tại

trường đại học.Em đã quyết định chọn họ vi điều khiển PIC để mở rộng vốn kiến
thức và phát triển các ứng dụng trên công cụ này vì các nguyên nhân sau:

 Họ vi điều khiển này có thể tìm mua dễ dàng tại thị trường Việt
Nam. Giá thành không quá đắt. Có đầy đủ các tính năng của một vi
điều khiển khi hoạt động độc lập. Là một sự bổ sung rất tốt về kiến
thức cũng như về ứng dụng cho họ vi điều khiển mang tính truyền
thống: họ vi điều khiển 8051.
 Số lượng người sử dụng họ vi điều khiển PIC. Hiện nay 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,…
 Sự hỗ trợ của nhà sản xuất về trình biên dịch, các công cụ lập trình,
nạp chương trình từ đơn giản đến phức tạp,…
 Các tính năng đa dạng của vi điều khiển PIC ,và các tình năng này
ngày càng được phát triển
Để có thể giải thích cụ thể lý do tại sao chọn pic là đối tượng nghiên cứu trong
đồ án này em xin đưa ra một sư so sánh giữa vi điều khiển pic và 8051 (một
dòng vi điều khiển đã khá quen thuộc trong qua trình học ở trường).
CƠ SỞ VỀ PIC ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
BÁO CÁO THỰC TẬP TỐT NGHIÊP 6 SV: LẠI VĂN ĐỨC
• So sánh với vi điều khiển 8051
Bộ vi điều khiển 8051 là bộ vi điều khiển đầu tiên thuộc họ vi điều khiển x51
được sản xuất bởi cơng ty intel,siemen,Advanced Micro Devices, Fujitsu,
Philips.
Sau đây là bảng so sánh các thơng số chính của hai dịng vi điều khiển này
Vi điều khiển 8051 Vi điều khiển PIC
Đặc tính Dung lượng Đặc tính Dung lượng

ROM trên chip 4 K byte Rom trên chip 8 Kb
RAM 128 byte RAM 368 byte
Bộ định thời 2 Bộ định thời 3
Các chân vào ra 32 Các chân vào ra 40
Cổng nối tiếp 1 Cổng nối tiếp 2
Nguồn ngắt 6 Nguồn ngắt 15
Bảng 1.1
1.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
CƠ SỞ VỀ PIC ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
BÁO CÁO THỰC TẬP TỐT NGHIÊP 7 SV: LẠI VĂN ĐỨC
Hình 1.1 Các dòng vi điều khiển của Microchip
1.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
CƠ SỞ VỀ PIC ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
PIC10
PIC12
PIC16
PIC18
PIC24
F
PIC24
H
dsPIC30
dsPIC33
PIC32
Vi điều khiển

8bit
Vi điều khiển
32bit
Vi điều khiển
16bit
BÁO CÁO THỰC TẬP TỐT NGHIÊP 8 SV: LẠI VĂN ĐỨC
- Mỗi lệnh được thực hiện trong 1 chu kỳ máy.
- Độ rộng của bus giữa CPU và bộ nhớ chương trình có thể là 12, 14 hoặc
16 bit tùy theo mục đích thiết kế của từng loại vi điều khiển.

Hình 1.2 Sơ đồ khối vi điều khiển 8bit của Microchip
• Các dòng PIC 8bit bao gồm:
1.1.3.1.1.PIC10
Đây là dòng PIC với độ dài mã lệnh là 12 bit, tốc độ thực hiện lệnh: 1
triệu lệnh/giây. Ngoài bộ nhớ (ROM và RAM) dòng PIC này còn một số tài
nguyên cơ bản như: Port xuất/nhập, Timer.
1.1.3.1.2. PIC12
PIC12 được chế tạo theo công nghệ nanoWatt, ngoài các tính năng như
PIC10, dòng chip này còn được bổ sung thêm công cụ gỡ rối (debugging) tương
thích với bộ công cụ MPLAB ICE-2.
1.1.3.1.3.PIC16
Khác với PIC10 và PIC12 là loại vi điều khiển cỡ nhỏ (chỉ gồm 8 chân),
PIC16 là loại vi điều khiển 8bit loại trung. Dòng vi điều khiển này được bổ sung
CƠ SỞ VỀ PIC ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
BÁO CÁO THỰC TẬP TỐT NGHIÊP 9 SV: LẠI VĂN ĐỨC
thêm khá nhiều module như ADC, Timer, PWM, truyền thông nối tiếp Ngoài
ra PIC16 còn được bổ sung tính năng “tiết kiệm nguồn điện” nhờ có thể hoạt
động ở chế độ “Power Saving Sleep”.
1.1.3.1.4. PIC18
PIC18 được Microchip nâng tốc độ thực hiện lệnh lên 10 MIPS (10 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.1.3.2. Vi điều khiển 16bit
Dòng vi điều khiển 16bit của Microchip gồm PIC24 và dsPIC.
1.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Ơ SỞ VỀ PIC ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
BÁO CÁO THỰC TẬP TỐT NGHIÊP 10 SV: LẠI VĂN ĐỨC
- Đượ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.
- Được tích hợp Watchdog Timer với bộ dao động RC độc lập.
CƠ SỞ VỀ PIC ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
BÁO CÁO THỰC TẬP TỐT NGHIÊP 11 SV: LẠI VĂN ĐỨC
1.3Sơ đồ khối của PIC24F
CƠ SỞ VỀ PIC ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

BÁO CÁO THỰC TẬP TỐT NGHIÊP 12 SV: LẠI VĂN ĐỨC
Ngoại vi:
- 10-bit ADC, 10 kênh, tốc độ lấy mẫu: 500.2
10
mẫu/giây
- 03 bộ so sánh tương tự (analog comparator)
- 02 module truyền thông nối tiếp (UART), hỗ trợ các chuẩn giao tiếp
LIN (Local Interconnect Network) và IrDA (Infrared Data Association)
- 02 module SPI (Serial_Peripheral_Interface_Bus)
- 02 module I2C (Inter-Integrated Circuit)
- 05 bộ Timer 16-bit.
- 05 module Capture và 05 bộ PWM (Pulse Width Modulation)
- 01 module thời gian thực (RTCC - Real-Time Clock Calendar)
- Hỗ trợ giao tiếp song song (PMP - Parallel Master Port) với 16 đường
địa chỉ và 8/16 đường dữ liệu
CƠ SỞ VỀ PIC ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
BÁO CÁO THỰC TẬP TỐT NGHIÊP 13 SV: LẠI VĂN ĐỨC
Hình 1.4.sơ đồ khối của PIC24H
So với PIC24F thì PIC24H có thêm module DMA (Direct Memory
Access) và 16 kênh ADC với độ phân giải 12bit.
1.1.3.2.2. Bộ điều khiển xử lý tín hiệu số 16-bit (dsPIC)
CƠ SỞ VỀ PIC ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
BÁO CÁO THỰC TẬP TỐT NGHIÊP 14 SV: LẠI VĂN ĐỨC
Hình 1.5. Sơ đồ khối của dsPIC
Một số đặc tính cơ bản của dsPIC:
CPU:
- Tốc độ: 40 MIPS
- Dải nhiệt độ hoạt động: -40°C to +85°C
- Độ rộng bus dữ liệu: 16bit, độ dài mã lệnh: 24bit
- Không gian địa chỉ dành cho bộ nhớ chương trình lên đến 4M words, bộ

nhớ dữ liệu: 64 Kbytes
- Tập lệnh gồm 83 lệnh cơ bản.
CƠ SỞ VỀ PIC ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
BÁO CÁO THỰC TẬP TỐT NGHIÊP 15 SV: LẠI VĂN ĐỨC
Module DSP:
- 16 thanh ghi công dụng chung 16bit
- Hai bộ tích lũy (Accumulator) 40bit
- 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.
CƠ SỞ VỀ PIC ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
BÁO CÁO THỰC TẬP TỐT NGHIÊP 16 SV: LẠI VĂN ĐỨC
- 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):
+ Các bộ Timer này có thể hợp thành 4 bộ Timer 32bit
+ 01 bộ Timer có thể hoạt động như đồng hồ thời gian thực (Real-Time
Clock) với nguồn dao động ngoài tần số 32.768 kHz.
+ 08 kênh Capture, xung đầu vào có thể là sườn lên hoặc xuống, 04 bộ
đệm FIFO được trang bị cho 1 kênh.
+ 08 kênh PWM 16bit.
- Truyền thông nối tiếp:
+ 02 module 3-wire SPI
+ 02 module I2C™, hỗ trợ các chế độ chủ tớ, 7-10 bit địa chỉ, tự phát hiện
xung đột bus.
+ 02 module UART, hỗ trợ ngắt khi truyền/nhận, khi xảy ra lỗi, trở lại
trạng hoạt động khi đang ở chế độ ngủ (sleep mode) nếu nhận được bit start, bộ
đệm truyền nhận có kích thước 4 byte.
- Hỗ trợ chuẩn giao tiếp CAN (Controller Area Network) với 8 bộ đệm
truyền và 32 bộ đệm nhận.
- 08 kênh PWM hỗ trợ điều khiển động cơ
- 01 module Encoder hỗ trợ đọc các tín hiệu pha A, pha B từ Encoder
ngoài.
- 02 module ADC, tốc độ 1.1 Mbps (ADC 10 bit) hoặc 500Kbps (ADC 12
bit).
1.1.3.3. Vi điều khiển 32bit
CƠ SỞ VỀ PIC ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
BÁO CÁO THỰC TẬP TỐT NGHIÊP 17 SV: LẠI VĂN ĐỨC
CPU:
- 32 bit, kiến trúc RISC
- Xử lý song song 5 giai đoạn thực hiện lệnh (5-Stage Pipeline)
- Tần số làm việc tối đa: 80 MHz, tốc độ xử lý: 1.56 DMISP/Mhz
(Dhrystone MIPS)
- Thực hiện phép nhân chia trong 1 chu kỳ

Embedded System
- 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.
- 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.
- 02 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.
CƠ SỞ VỀ PIC ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
BÁO CÁO THỰC TẬP TỐT NGHIÊP 18 SV: LẠI VĂN ĐỨC
- 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
Tính năng gỡ rối (Debugging):
- 02 giao diện cho phép lập trình (Programming) và gợi rối bao gồm: Giao
diện

2-Wire Microchip và JTAG 4 Wire.
CƠ SỞ VỀ PIC ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
BÁO CÁO THỰC TẬP TỐT NGHIÊP 19 SV: LẠI VĂN ĐỨC
Hình 1.6 Sơ đồ khối củaPIC32
Các tính năng tương tự (Analog)
- 16 kênh ADC:
+ Độ phân giải: 10bit
+ Tốc độ biến đổi: 500Kbps
CƠ SỞ VỀ PIC ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
BÁO CÁO THỰC TẬP TỐT NGHIÊP 20 SV: LẠI VĂN ĐỨC
+ Có thể biến đổi trong khi CPU đang ở chế độ Sleep hoặc Idle
- 02 bộ so sánh tương tự (Analog Comparators)
1.2 Kiến trúc của pic
Cấu trúc phần cứng của một vi điều khiển được thiết kế theo hai dạng kiến trúc :
kiến trúc Von Neuman và kiến trúc Harvard.
Hình1.7.kiến trúc Harvard và von-neumann
Tổ chức phần cứng của PIC được thiết kế theo kiến trúc Havard. Điểm
khác biệt giữa kiến trúc Havard và kiến trúc Von-Neuman là cấu trúc bộ
nhớ dữ liệu và bộ nhớ chương trình.
Đối với kiến trúc Von-Neuman, bộ nhớ dữ liệu và bộ nhớ chương trình
nằm chung trong một bộ nhớ, do đó ta có thể tổ chức, cân đối một cách
linh hoạt bộ nhớ chương trình và bộ nhớ dữ liệu. Tuy nhiên điều này chỉ có
ý nghóa khi tốc độ xử lí của CPU phải rất cao, vì với cấu trúc đó, trong
cùng một thời điểm CPU chỉ có thể tương tác với bộ nhớ dữ liệu hoặc bộ
nhớ chương trình. Như vậy có thể nói kiến trúc Von-Neuman không thích
hợp với cấu trúc của một vi điều khiển.
Đối với kiến trúc Havard, bộ nhớ dữ liệu và bộ nhớ chương trình tách ra
thành hai bộ nhớ riêng biệt. Do đó trong cùng một thời điểm CPU có thể
tương tác với cả hai bộ nhớ, như vậy tốc độ xử lí của vi điều khiển được
cải thiện đáng kể.

Một điểm cần chú ý nữa là tập lệnh trong kiến trúc Havard có thể được
tối ưu tùy theo yêu cầu kiến trúc của vi điều khiển mà không phụ thuộc
vào cấu trúc dữ liệu. Ví dụ, đối với vi điều khiển dòng 16F, độ dài lệnh
luôn là 14 bit (trong khi dữ liệu được tổ chức thành từng byte), còn đối với
CƠ SỞ VỀ PIC ĐẠI HỌC CƠNG NGHIỆP HÀ NỘI
BÁO CÁO THỰC TẬP TỐT NGHIÊP 21 SV: LẠI VĂN ĐỨC
kiến trúc Von-Neuman, độ dài lệnh luôn là bội số của 1 byte (do dữ liệu
được tổ chức thành từng byte). Đặc điểm này được minh họa cụ thể trong
hình trên
1.3 RISC và CISC
Như đã trình bày ở trên, kiến trúc Havard là khái niệm mới hơn so với
kiến trúc Von-Neuman. Khái niệm này được hình thành nhằm cải tiến tốc
độ thực thi của một vi điều khiển. Qua việc tách rời bộ nhớ chương trình
và bộ nhớ dữ liệu, bus chương trình và bus dữ liệu, CPU có thể cùng một
lúc truy xuất cả bộ nhớ chương trình và bộ nhớ dữ liệu, giúp tăng tốc độ xử
lí của vi điều khiển lên gấp đôi. Đồng thời cấu trúc lệnh không còn phụ
thuộc vào cấu trúc dữ liệu nữa mà có thể linh động điều chỉnh tùy theo
khả năng và tốc độ của từng vi điều khiển. Và để tiếp tục cải tiến tốc độ
thực thi lệnh, tập lệnh của họ vi điều khiển PIC được thiết kế sao cho
chiều dài mã lệnh luôn cố đònh (ví dụ đối với họ 16Fxxxx chiều dài mã
lệnh luôn là 14 bit) và cho phép thực thi lệnh trong một chu kì của xung
clock ( ngoại trừ một số trường hợp đặc biệt như lệnh nhảy, lệnh gọi
chương trình con … cần hai chu kì xung đồng hồ).
Điều này có nghóa tập lệnh của vi điều khiển thuộc cấu trúc Havard sẽ ít
lệnh hơn, ngắn hơn, đơn giản hơn để đáp ứng yêu cầu mã hóa lệnh bằng
một số lượng bit nhất đònh.
Vi điều khiển được tổ chức theo kiến trúc Havard còn được gọi là vi điều
khiển RISC (Reduced Instruction Set Computer) hay vi điều khiển có tập
lệnh rút gọn. Vi điều khiển được thiết kế theo kiến trúc Von-Neuman còn
được gọi là vi điều khiển CISC (ComplexInstruction Set Computer) hay vi

điều khiển có tập lệnh phức tạp vì mã lệnh của nó không phải là một số
cố đònh mà luôn là bội số của 8 bit (1 byte).
CƠ SỞ VỀ PIC ĐẠI HỌC CƠNG NGHIỆP HÀ NỘI
BÁO CÁO THỰC TẬP TỐT NGHIÊP 22 SV: LẠI VĂN ĐỨC
1.4 NGOÂN NGÖÕ LAÄP TRÌNH CHO PIC

+ Ngôn ngữ lập trình cho PIC rất đa dạng. Ngôn ngữ lập trình cấp thấp có
MPLAB (được cung cấp miễn phí bởi nhà sản xuất Microchip), các ngôn ngữ lập
trình cấp cao hơn bao gồm C, Basic, Pascal, … Ngoài ra còn có một số ngôn ngữ
lập trình được phát triển dành riêng cho PIC như PICBasic, MikroBasic,…
Ở đây em chọn ngơn ngữ lập trình cho pic là ngơn ngữ bậc cao C vì đây là ngôn
ngữ dễ tiếp cận và rất mạnh.
+ Phần mềm biên dịch chương trình cho pic
Để viết firmware cho PIC thì có rất nhiều phần mềm, HTPIC, CCS, C18, C30,
PICBasic, mikroC, mikroBasic, mikroPascal, CC5X, IAR for PIC
+ Mỗi loại này đều có những ưu điểm và nhược điểm riêng ta có thể điểm qua
như sau:
- Với HTPIC, trình dịch này có thể dịch cho gần như mọi loại PIC, HTPIC cho
PIC2/16, HTPICC18 cho PIC18, và HTDSPIC cho dspic. Trước kia thì HTPIC
được nhúng trong MPLAB, hiện nay thì HTPIC đã có IDE riêng là HTTIDE
phát triển trên nền Java, tôi đánh giá đây là một trong những IDE có giao diện
đẹp nhất, nhưng hơi khó dùng .
Ưu điểm của nó là cú pháp rất gần với C chuẩn, cơ cấu dịch rất thông minh trong
việc chuyển bank khiến cho file hex sinh ra có kích thước nhỏ. Nhược điểm, nó
là trình dịch đắt nhất cho PIC, những lệnh có sẵn hạn chế gần như chẳng có gì,
chỉ được vài lệnh đọc ghi EEPROM, FLASH và vài lệnh xử lý số.
- Với CCS tập lệnh có sẵn của nó khá lớn, ta có thể sử dụng dễ dàngm, có IDE
riêng, CCS còn có ICD riêng, đây là một trong những mạch nạp, debug cho PIC
thuộc hàng nhanh nhất.
- tuy nhiên nếu ta viết bằng CCS thì không thể viết được cho họ khác ví dụ như

8051 chẳng hạn, còn với HTPIC thì viết lại cho dòng nào cũng được. thêm nữa
là CCS có file hex dịch ra lớn, mặc dù hiếm khi viết hết Flash của PIC.
Với C18,C30 hai thằng này là sản phẩm của Microchip, C18 cũng phát triển theo
hướng của HTPIC, tui đánh giá cao C18. Còn C30 có tập lệnh ăn sẵn dành cho
DSP dùng được Bộ language toolsuit của C30 khá đầy đủ.
- Mikrobasic, mikroC, mirkoPascal, phát triển theo hướng giống như CCS, mỗi
loại đều có IDE riêng, tập lệnh ăn sẵn cuả nó khá lớn đủ hết mọi thứ, bác nào cao
thủ PIC rùi thì dùng thằng này cho nhanh cũng tốt , nhưng các loại trình biên
dịch này còn nhược điểm còn phải sửa chữa,như cơ cấu gọi chương trình con
CƠ SỞ VỀ PIC ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
BÁO CÁO THỰC TẬP TỐT NGHIÊP 23 SV: LẠI VĂN ĐỨC
trong ngắt. Điểm hay nhất của bọn Mikro chính là mấy cái kit phát triển của nó
cho PIC.
+ Đó là một vài trình biên dịch cho pic và trong các trình biên dịch kể trên thì
CCS đã được chọn lựa để viết chương trình cho pic
1.5 MẠCH NẠP PIC

Đây cũng là một dòng sản phẩm rất đa dạng dành cho vi điều khiển PIC. Có
thể sử dụng các mạch nạp được cung cấp bởi nhà sản xuất là hãng Microchip
như: PICSTART plus, MPLAB ,ICD 2, MPLAB PM 3, PRO MATE II. Có thể
dùng các sản phẩm này để nạp cho vi điều khiển khác thông qua chương trình
MPLAB.
Dòng sản phẩm chính thống này có ưu thế là nạp được cho tất cả các vi điều
khiển PIC, tuy nhiên giá thành rất cao và thường gặp rất nhiều khó khăn
trong quá trình mua sản phẩm. Ngoài ra do tính năng cho phép nhiều chế độ
nạp khác nhau, còn có rất nhiều mạch nạp được thiết kế dành cho vi điều
khiển PIC. Có thể sơ lược một số mạch nạp cho PIC như sau:
JDM programmer: mạch nạp này dùng chương trình nạp Icprog cho phép nạp
các vi điều khiển PIC có hỗ trợ tính năng nạp chương trình điện áp thấp ICSP
(In Circuit Serial Programming). Hầu hết các mạch nạp đều hỗ trợ tính năng

nạp chương trình này.
WARP-13A và MCP-USB: hai mạch nạp này giống với mạch nạp PICSTART
PLUS do nhà sản xuất Microchip cung cấp, tương thích với trình biên dòch
MPLAB, nghóa là ta có thể trực tiếp dùng chương trình MPLAB để nạp cho vi
điều khiển PIC mà không cần sử dụng một chương trình nạp khác, chẳng hạn
như ICprog.
P16PRO40: mạch nạp này do Nigel thiết kế và cũng khá nổi tiếng. Ông
còn thiết kế cả chương trình nạp, tuy nhiên ta cũng có thể sử dụng chương
trình nạp Icprog.
Ngồi ra hiện nay còn rất nhiều các mạch nạp khác nữa và trong thời gian nghiên
cứu đề tài em quyết định chọn mạch nạp PG2C vì mạch nạp này có mốt số ưu
điểm sau : dễ làm,rẻ tiền,có thể nạp được khá nhiều chip và có thể hồn thành
trong thời gian ngắn.
Sau đây là sơ đồ mạch nạp PG2C :
CƠ SỞ VỀ PIC ĐẠI HỌC CƠNG NGHIỆP HÀ NỘI
BÁO CÁO THỰC TẬP TỐT NGHIÊP 24 SV: LẠI VĂN ĐỨC
Hình 1.8(Trích từ www.olimex.com/dev)
CƠ SỞ VỀ PIC ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
BÁO CÁO THỰC TẬP TỐT NGHIÊP 25 SV: LẠI VĂN ĐỨC
Chương Hai vi điều khiển 16F877A
2.1.Sơ đồ chân
Hình 2.1 (nguồn datasheet.com)
CƠ SỞ VỀ PIC ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

×