TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA CƠ KHÍ
BỘ MÔN CƠ ĐIỆN TỬ
KỸ THUẬT VI ĐIỀU KHIỂN
Firma convenzione
Giảng
viên: ĐặngFabbrica
Phước Vinh
Politecnico di Milano
e Veneranda
del Duomo
di Milano
Aula Magna – Rettorato
Mercoledì 27 maggio 2015
2
Nội dung
1. Giới thiệu chung về vi điều khiển PIC16F877A
Trình biên dịch CCS
Chương trình nạp PIC kit
Phần mềm mô phỏng Proteus
2. Cấu trúc phần cứng
3. Tập lệnh, chỉ thị tiền xử lý
4. Bộ định thời
5. Hoạt động ngắt
6. Bộ chuyển đổi ADC
7. Giao tiếp nối tiếp
Đặng Phước Vinh
Khoa Cơ khí
3
Hoạt động ở lớp
1. Chia lớp (55 SV) 11 nhóm
2. Mỗi tuần 2-3 nhóm báo cáo
3. Viết bài thu hoạch cho tất cả các chủ đề báo cáo
4. Báo cáo 50% điểm thi cuối kỳ
Điểm = chuyên cần + giữa kỳ + báo cáo + cuối kỳ
Đặng Phước Vinh
Khoa Cơ khí
4
Các bài báo cáo
1. Led 7 đoạn (1 Led và nhiều Led) – không/dùng IC giải mã
2. LCD
3. Nút nhấn và Ma trận phím (khóa điện tử)
4. Bộ định thời
5. Ngắt
6. Cảm biến (nhiệt độ, siêu âm, vật thể…)
7. Điều khiển động cơ DC (quay, đảo chiều, điều khiển tốc độ)
8. Điều khiển động cơ bước
9. Đồng hồ (sử dụng thời gian thực)
10. Giao tiếp với máy tính
Đặng Phước Vinh
Khoa Cơ khí
5
Tài liệu tham khảo
1. Datasheet của PIC
2. CCS C Compiler
3. Vi xử lý. Nguyễn Đình Phú, Trường Đại học Sư
phạm Kỹ thuật TP. Hồ Chí Minh.
4. Các trang web liên quan
Đặng Phước Vinh
Khoa Cơ khí
CHƯƠNG 1
GIỚI THIỆU
CHUNG
Firma convenzione
Politecnico di Milano e Veneranda Fabbrica
del Duomo di Milano
Aula Magna – Rettorato
Mercoledì 27 maggio 2015
7
Vi xử lý
CPU cho các máy tính
Không có RAM, ROM, I/O trên chip CPU
Ví dụ: Intel’s x86, Motorola’s 680x0
Data Bus
CPU
Vi xử lý
RAM
Nhiều chips trên bo mạch chủ
ROM
I/O
Port
Timer
nối tiếp
Address Bus
Đặng Phước Vinh
Cổng
Khoa Cơ khí
8
Vi điều khiển
Là máy tính mini
Có RAM, ROM, I/O ports trên CPU chip
Ví dụ: Intel’s 8051, Zilog’s Z80, & PIC 16X
CPU
I/O
Port
RAM ROM
Cổng
Timer nối tiếp
tất cả bên trong 1 chip
Vi điều khiển
Đặng Phước Vinh
Khoa Cơ khí
9
Vi xử lý & Vi điều khiển
Vi xử lý
Vi điều khiển
CPU chip riêng biệt. RAM, ROM,
I/O, Timer nằm bên ngoài
CPU, RAM, ROM, I/O và Timer
nằm trên cùng 1 chip
Giá thành cao
Thích hợp cho các ứng dụng:
Lượng ROM, RAM, I/O Ports tùy ý
Đa năng, đa mục đích
Đặng Phước Vinh
Cố định lượng ROM, RAM, I/O
Ports trên chip
Giá cả thấp
Năng lượng tiêu thụ thấp
Không gian hạn chế
Đơn mục đích
Khoa Cơ khí
Các tiêu chí chọn vi điều khiển
1. Đáp ứng yêu cầu về nhiệm vụ và giá thành thi công
Tốc độ, lượng bộ nhớ, cổng I/O, timers, kích cỡ, đóng gói,
năng lượng tiêu thụ
Dễ nâng cấp
Giá tiền
2. Các công cụ phát triển phần mềm
Bộ sửa lỗi, trình dịch C, mô phỏng, hỗ trợ kỹ thuật
3. Thị trường cung cấp sản phẩm tin cậy
Đặng Phước Vinh
Khoa Cơ khí
10
11
Vi điều khiển PIC
PIC được sản xuất bởi công ty
Microchip Technology
"Programmable Intelligent
Computer" là một sản phẩm của
hãng General Instruments
Dòng sản phẩm đầu tiên là PIC1650
PIC 8-bit được phát triển vào khoảng
năm 1975
Đặng Phước Vinh
Khoa Cơ khí
12
Vi điều khiển PIC
Có thể tìm mua dể dàng tại thị trường Việt Nam
Giá thành không quá cao
Có đầy đủ tính năng của một VĐK khi hoạt động độc lập
Số lượng người dùng lớn số lượng tài liệu lớn, mã nguồn
mở, dể dàng trao đổi học tập, thảo luậ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…
Các tính năng đa dạng của VĐK liên tục được cập nhật
Đặng Phước Vinh
Khoa Cơ khí
13
Các loại chip PIC
Các ký hiệu của vi điều khiển PIC:
PIC12xxxx: độ dài lệnh 12 bit
PIC16xxxx: độ dài lệnh 14 bit
PIC18xxxx: độ dài lệnh 16 bit
C:
F:
LF:
LV:
PIC có bộ nhớ chương trình là EPROM (chỉ có 16C84 là EEPROM)
PIC có bộ nhớ chương trình là flash
PIC có bộ nhớ chương trình là flash hoạt động ở điện áp thấp
tương tự như LF, đây là tín hiệu cũ
Bên cạnh đó một số vi điều khiển có ký hiệu xxFxxx thì bộ nhớ chương trình là
EEPROM, nếu có thêm chữ A ở cuối thì bộ nhớ chương trình là flash (ví dụ PIC16F877
là EEPROM, còn PIC16F877A là flash).
Ở Việt Nam phổ biến nhất là các họ vi điều khiển PIC do Microchip sản xuất
Đặng Phước Vinh
Khoa Cơ khí
14
Các loại bộ nhớ
ROM (Read-Only Memory)
Thông tin trên ROM vẫn được duy trì dù nguồn điện cấp không
còn.
Nó dùng cho lưu giữ mã chương trình điều hành và dữ liệu mặc
định của hệ thống
Cho phép chỉ đọc dữ liệu từ chúng, và chỉ cho phép ghi dữ liệu
một lần
EPROM (Erasable Programmable Read-Only Memory)
Thông tin trên bộ nhớ vẫn được duy trì dù nguồn điện cấp không
còn
Phải dùng thiết bị chuyên dụng để xóa bộ nhớ. Xóa toàn bộ
Đặng Phước Vinh
Khoa Cơ khí
15
Các loại bộ nhớ
EEPROM (Electrically Erasable Programmable ReadOnly Memory)
Có khả năng xoá được bằng phương pháp lập trình mà chúng
không cần đến các thiết bị chuyên dụng như các thế hệ trước của
nó
Bộ nhớ Flash
Là một loại EEPROM, đọc/ghi bằng điện và không mất dữ liệu
khi ngừng cung cấp điện
Cho phép đọc/ghi từng khối nhỏ hoặc theo từ của máy
Đặng Phước Vinh
Khoa Cơ khí
16
Các loại bộ nhớ
Loại
ROM
EPROM
Mất dữ
liệu
khi mất
điện?
Không
Không
EEPROM Không
Flash
Không
Đặng Phước Vinh
Khả năng
ghi ?
Không
Cỡ xoá ?
Xoá
nhiều
lần ?
Không sẵn
sàng
Không sẵn
sàng
Nhanh
Không đắt
Nhanh
Giới hạn
Nhanh cho
đọc
Chậm cho
xoá và ghi
Vừa phải
Có, nhưng
cần thiết bị
Toàn bộ
chuyên dụng
Có
Có
Byte
Sector
Giới hạn
Giới hạn
Tốc độ ?
Nhanh cho
đọc
Chậm cho
Khoa
khí
xoá vàCơghi
Giá thành
(theo
byte)
Đắt
Vừa phải
17
Trình biên dịch
Ngôn ngữ lập trình cho vi điều khiển PIC có 2 loại:
Ngôn ngữ lập trình cấp thấp - Hợp ngữ: có phần mềm
MPLAB
Ngôn ngữ lập trình bậc cao: có nhiều loại, được phát triển
theo ngôn ngữ C, như: CCS, HTPIC, PIC BASIC v.v
Đặng Phước Vinh
Khoa Cơ khí
18
Trình biên dịch hợp ngữ
Được cung cấp miễn phí bởi nhà sản xuất Microchip
Giúp người học và lập trình hiểu rõ hơn về cấu trúc bên
trong của vi điều khiển PIC
Tối ưu hóa bộ nhớ chương trình.
Tuy nhiên, nhìn chung phương pháp tiếp cận hợp ngữ là khó
và khả năng phát triển ứng dụng là hạn chế, mất thời gian.
Đặng Phước Vinh
Khoa Cơ khí
19
Trình biên dịch CCS
Kế thừa tất cả đặc điểm của ngôn ngữ C- là ngôn ngữ cơ bản,
quen thuộc mà sinh viên đã được đào tạo
Xây dựng sẵn các hàm phục vụ cho việc sử dụng dễ dàng các
khối chức năng đặc biệt của Vi điều khiển PIC như: ADC, PWM,
RS232, SPI
Có khả năng kết hợp với ngôn ngữ hợp ngữ, tạo sự mềm dẻo
trong phát triển ứng dụng
Khả năng phát triển, nâng cấp ứng dụng là dễ dàng
Ngày càng được cập nhật với nhiều tính năng ưu việt và hiệu
quả hơn.
Đặng Phước Vinh
Khoa Cơ khí
20
PIC kit
Đặng Phước Vinh
Khoa Cơ khí
Phần mềm mô phỏng Proteus
Đặng Phước Vinh
Khoa Cơ khí
21
CHƯƠNG 2
CẤU TRÚC PHẦN CỨNG
PIC
Firma16F877A
convenzione
Politecnico di Milano e Veneranda Fabbrica
del Duomo di Milano
Aula Magna – Rettorato
Mercoledì 27 maggio 2015
23
Tổng quan về PIC16F877A
Thuộc họ PIC16Fxxx với tập lệnh gồm 35 lệnh có độ dài 14 bit
Tất cả các lệnh là 1 chu kỳ máy, ngoại trừ chương trình con là 2 chu kỳ
máy.
Một chu kỳ lệnh của vi điều khiển bao gồm 4 xung clock
Sử dụng thạch anh 4MHz xung lệnh có tần số 1MHz (1us)
Bộ nhớ chương trình flash với dung lượng 8K x 14 bit, với khả năng
ghi/xóa 100.000 lần
Bộ nhớ dữ liệu RAM: 368 byte
Bộ nhớ EEPROM với dung lượng 256 byte, với khả năng ghi/xóa
1.000.000 lần. Có thể lưu trữ dữ liệu hơn 40 năm
Nguồn sử dụng: 5VDC
Chế độ sleep
Có 5 ports I/0 (A, B, C, D, E) với 33 chân
Đặng Phước Vinh
Khoa Cơ khí
24
Sơ đồ chân họ PIC16F87XA
Đặng Phước Vinh
Khoa Cơ khí
25
Sơ đồ chân họ PIC16F87XA
Reset
Port B
Port A
Port E
Power
Power
Port D
Oscillator
Port C
Đặng Phước Vinh
Port C
Port D
Khoa Cơ khí