Tải bản đầy đủ (.pdf) (370 trang)

Vi xử lý và vi điều khiển nguyên lý và ứ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 (8.25 MB, 370 trang )

PHẠM MẠNH THẮNG (Chủ biỄn)
HOÀNG VAN m ạnh


NGUYÊN LÝ VÀ ỨNG DỤNG



ĨỦSẢCH KHOA HỌC
MS:185-KHTN-2Q16

NHÀ XUẤT BẢN ĐẠI HỌC QUỐC GIA HÀ NÔI


PHẠM MẠNH THẮNG (Chủ biên)
HOẤNG VĂN MẠNH


VI xử LÝ VÀ VI ĐIẾU KHIỂN
NỈUYỄNLỸVAỨNGDUNC

NHÀ XUÁT BẢN ĐẠI HỌC QUỐC GiA HÀ NỘI


MỤC LỤC

LỜI NÓI ĐẦU............................................... ..........................................11
DANH MỤC TỪ VIẾT T Ắ T ...............................................................13
DANH MỤC HÌNH VẼ ...................................................................... 15
DANH MỤC BẢNG BlỂU .................................................................21
Chương 1. GIỚI THIỆU VỀ VI x ử LÝ VÀ VI ĐIỀU KHIỂN



25

1.1. Khái niệm Vi xử lý ......................................................................25
1.1.1. Cấu trúc và hoạt động của Vi xử lý .................................. 26
1.1.2. Bộ Vi xử lý CISC và RISC .................................................... 34
1.2. Vi điều k h iể n ................................................................................34
1.2.1. Thiết bị nhúng và bộ nhớ n g o à i..........................................37
1.2.2. Kiến trúc Harvard và Von Neumann ...............................37
1.2.3. Vi điều khiển 8-bit và 16-bit ................................................ 38
1.2.4. Một số loại Vi điều khiển thương mại ..............................39
1.2.4.1. MCS-51 và Atmel 89CXX, 89CXX51 .............................. 39
1.2.4.2. Họ M C S-51............................................................................ 39
1.2.4.3.Vi điều khiển Atmel ............................................................ 40
1.2.4.4.Vi điều khiển P I C ................................................................. 41
1.3. Lịch sử phát triển của Vi xử lý và Vi điêu k h iê n ............. 42


VI xử LÝ VA VIĐIÉU KHIỂN - NGUYÊN LÝ VẦ ỨNG DỤNG

Chương 2. NGỐN NGỮ LẬP TRÌNH NHÚNG_____________ ^
2.1. Ngôn ngữ lập trình hợp ngữ--------------------------------------- 47
2.1.1. Các thành phần hợp n g ữ ...................................................... 48
2.1.2. Cấu trúc hợp n g ữ ....................................................................48
2.2. Ngôn ngữ lập trình c -------------------------------------------------57
2.2.1. Kiểu dữ liệu, phép toán và biểu thức................................ 57
2.2.1.1.Kiểu và kích thước dữ liệu................................................. 57
2.2.1.2.Các phép toán số h ọ c..........................................................58
2.2.2.


Vòng lặp điều k h iển ..................................................... 61

2.2.3. Hàm và cấu trúc chương trình............................................ 65
2.2.4. Con trỏ và mảng......................................................................70
2.2.5. Cấu trú c..................................................................................... 73
Chương 3. VI ĐIỀU KHIỂN AVR

79

3.1. Tổng quan kiến trúc của Vi điêu khiển ATmegaló____ 79
3.1.1. Máy tính với tập lệnh rút g ọ n ............................................. 79
3.1.2. Tập lệnh hợp ngữ....................................................................80
3.1.3. Kiến trúc Vi điều khiển A Tm egaló....................................81
3.2.

Bộ nhớ dữ liệu-----------------------------------------------------------82

3.2.1. Bộ nhớ Flash EEPROM.......................................................... 82
3.2.2. Bộ nhớ EEPROM truy cập địa chỉ byte............................. 83
3.2.3. Bộ nhớ truy cập ngẫu nhiên tĩnh SR A M ..........................84
3.3.

Hệ thống cổng_______________________________________ 84

3.4.

Bộ chuyển đổi tương tự - số ADC_____________________ 86


MỤC LỤC


3.4.1. Các thanh ghi A DC................................................................. 89
3.4.2. Lập trình A DC..........................................................................92
3.5.

Phân hệ định thời____________________________________ 93

3.5.1. Tổng quan các bộ định thời.................................................. 93
3.5.2. Bộ định thời TimerO................................................................ 95
3.52.1. Các chế độ hoạt động..........................................................96
3.5.2.2. Các thanh ghi liên quan tới TimerO................................. 98
3.5.3. Bộ định thời T im erl.............................................................. 101
3.5.4. Bộ định thời Tim er2.............................................................. 105
3.5.5. ứ ng dụng của bộ định thời - bộ đếm...............................109
3.6.

Truyền thông nối tiếp_______________________________ 112

3.6.1. Truyền thông nối tiếp U SA RT........................................ 112
3.6.1.1. Tổng quan khối USART trên A Tm egaló.....................113
3.6.1.2. Khối tạo xung đồng hồ USART......................................113
3.6.1.3. Khối truyền USART...........................................................113
3.6.1.4.Khối nhận U SA RT.............................................................. 115
3.6.1.5.Các thanh ghi U SA RT.......................................................115
3.6.1.6.Lập trình USART................................................................ 116
3.6.2. Giao tiếp ngoại vi nối tiế p ..................................................118
3.6.2.1.Hoạt động của S P I..............................................................118
3.6.2.2.Các thanh ghi S P I.............................................................. 120
3.6.3. Giao tiếp nối tiếp 2 d ây .......................................................123
3.6.3.1.Hoạt động của TW I............................................................ 123



VI xử LỸ VA VI ĐIỀU KHIỂN - NGUYÊN LỸ VẦ ỨNG DỤNG

3.6.3.2.Các thanh ghi TW I...............................................................141

3.7.1. Phân hệ ngắt trên A tm egaló.............................................. 145
3.7.2. Lập trình n g ắt.........................................................................147
Chưcmg 4. VI ĐIỀU KHIỂN PIC

155

4.1. Tổng quan và các tính năng__________________________ 155
4.2. Vi điều khiển PIC 16C6X/7X_________________________ 158
4.2.1. Khối ALU của PIC 16C XX .................................................. 159
4.2.2. Thanh ghi C PU ...................................................................... 159
4.2.3. Sơ đồ chân............................................................................... 165
4.2.4. Hoạt động Reset của P IC .................................................... 165
4.2.5. Chức năng PO R..................................................................... 166
4.2.6. Chức năng BO R..................................................................... 168
4.2.7. Giao tiếp giữa bộ tạo dao động và PIC........................... 168
4.2.8. TỔ chức bộ nhớ của P IC ...................................................... 169
4.2.8.1.BỘ nhớ chương trình..........................................................169
4.2.8.2.BỘ nhớ dữ liệu ......................................................................171
4.2.9. Các lệnh dùng với PIC 16C6/7X........................................ 175
4.2.9.1.Các thao tác với b it............................................................. 175
4.2.9.2.Phép toán tăng và g iảm .................................................... 176
4.2.9.3.Hoạt động vào/ra................................................................176
4.2.10. Các chế đô đia chỉ...............................................................179



MỤC LỤC

4.2.10.1.Địa chỉ trực tiếp...................................................................179
4.2.10.2.Địa chỉ gián tiếp..................................................................180
4.2.11.CỔng xuất nhập vào/ra....................................................... 180
4.2.12.Ngắt trong PIC 16C61/71.................................................... 182
4.2.12.1.Ngắt ngoài........................................................................... 183
4.2.12.2.Ngắt bộ định thòi TimerO................................................186
4.2.12.3.Ngắt thay đổi PO RTB....................................................... 186
4.2.12.4.Ngắt A D C ............................................................................ 186
4.2.13.Các bộ định thời của PIC 16C61/71............................... 187
4.2.13.1.BỘ định thời TimerO.......................................................... 187
4.2.13.2.BỘ định thời W D T............................................................. 189
4.2.13.3.BỘ chuyển đổi tứì hiệu tương tự - số (A D C)..............191
4.3.

Vi điều khiển PIC 16F8XX___________________________ 194

4.3.1. Sơ đồ chân của PIC 16P8XX.................................................196
4.3.2. Thanh ghi trạng th ái............................................................. 199
4.3.3. Thanh ghi điều khiển năng lượng.....................................201
4.3.4. Thanh ghi OPTION_REG....................................................202
4.3.5. Bộ nhớ chương trình PIC 16P8XX.................................... 203
4.3.6. Bộ nhớ dữ liệu PIC 16P8XX................................................ 204
43.6.1.Bộ nhớ dữ liệu R A M .......................................................... 204
4.3.6.2.BỘ nhó dữ liệu EEPROM...................................................207
4.3.6.3.

Bộ nhớ dữ liệu EEPROM,bộ nhớ chương trình Flash


EEPROM..................................................................................................207


VI xử LÝ VÀ VIĐIÉU KHIỂN - NGUYÊN LỸ VA ỨNG DỤNG

4.3.7. Ngắt trong Vi điều khiển 16P877....................................... 212
4.3.8. Các cổng xuất nhập vào/ra.................................................. 216
4.3.9. Các bộ định th ờ i..................................................................... 219
4.3.10. Mô-đun bắt Capture/Compare/PW M ...........................223
4.3.10.1.Chế độ Capture.................................................................. 225
4.3.10.2.Chếđộ Com pare................................................................227
4.3.10.3.Chế

độ điều chế độ rộng xung PW M ......................229

4.3.11.M ô-đunM SS P .................................................................... 233
4.3.11.1.Giao tiếp ngoại vi nối tiếp SPI........................................ 233
4.3.11.2.BUS P C ..................................................................................244
4.3.12.USAR

T .......................................................................252

4.3.12.1.Chế độ giao tiếp nối tiếp không đồng b ộ ................... 254
4.3.12.2.Chế độ giao tiếp nối tiếp đồng b ộ ................................ 259
4.3.13.BỘ

chuyển đổi A D C .......................................................259

Chương 5. GIAO TIẾP VÀ ỨNG DỤNG CỦA VI ĐIỀU KHIỂN 269

5.1.

Giới thiệu___________________________________________ 269

5.2.

Giao tiếp với LED, nút nhấn và R ơ le -------------------------- 270

5.3.

Giao tiếp với bàn phím ______________________________ 279

5.3.1. Phương pháp sử dụng phần cúmg.................................... 279
5.3.2. Giao tiếp bàn phím với PIC 16P877.................................. 280
5.4.

Giao tiếp với LED 7-thanh--------------------------------- ------ -.284

5.5.

Giao tiếp với LCD___________________________________ 287

5.5.1. Mô-đun LCD........................................................................... 288


MỤC LỤC

5.5.2. Các lện h L C D .......................................................................... 290
5.5.3. Khởi tạo mô-đun LCD ..........................................................292
5.5.4. Giao tiếp giữa LCD và A T m egaló................................... 292

5.6.

Giao tiếp với vi mạch chuyên đổi ADC/DAC_________ 296

5.6.1. Lựa chọn bộ chuyển đổi ADC............................................297
5.6.2. Giao tiếp với A DC0808/0809.............................................. 298
5.6.3. Giao tiếp với bộ chuyển đổi M AX5822............................300
5.7. Các ứng dụng đo lường--------------------------------------------- 302
5.7.1. Sử dụng biến trở để đo góc khớp của R obot.................304
5.7.2. Bộ mã hóa quang h ọ c ...........................................................305
5.7.3. Biến áp vi sai thay đổi tuyến tính..................................... 308
5.7.4. Xác định tốc độ góc (RPM )................................................. 311
5.7.5. Đo nhiệt đ ộ ............................................................................. 314
5.7.6. RTD và cặp nhiệt điện tuyến tính..................................... 316
5.7.7. Load C e ll..................................................................................319
5.8.

Các ứng dụng điêu khiển và tự động h óa------------------- 320

5.8.1. Bộ điều khiển số P ID ............................................................321
5.8.2. Điều khiển thiết b ị ................................................................325
5.8.2.1.Điều khiển tốc độ động cơ dc sử dụng PW M ............. 326
5.8.2.2.Điều khiển Thyristo............................................................329
5.8.2.3.Điều khiển tải AC sử dụng TRIA C ................................333
5.8.3.

Điều khiển động cơ bước........................................334

5.9. Thiết kế hệ th ốn g___________________________________ 342



VI xử LỶ VÀ VI ĐIÊU KHIẾN - NGUYÊN LÝ VÂ ỨNG DỤNG

5.9.1. Trạm theo dõi các thông số thời tiết.................................343
5.9.1.1.Yêu dâu...................................................................................343
5.9.1.2.SơđỒcấu trú c...................................................................... 343
5.9.1.3.Sơđ ồm ạch ........................................................................... 344
5.9.1.4.Sơ đồ thuật toán.................................................................. 345
5.9.1.5.Code cho Vi điều khiển..................................................... 346
5.9.2. Điều khiển tốc độ động cơ.................................................. 357
5.9.2.1.Yêu cầu ...................................................................................357
5.9.2.2.Sơ đồ cấu trú c...................................................................... 357
5.9.2.3.SƠ đồ m ạch ........................................................................... 357
5.9.2.4.Sơ đồ thuật toán.................................................................. 357
5.9.2.5.Code cho Vi điều khiển..................................................... 360
TÀI LIỆU THAM KH ẢO.................................................................. 369


L0I NÓI ĐẴU

Giáo trình "Vi xử lý và Vi đĩêu khiên - nguyên lý và ứng
dụng" trước hết dành cho sữih viên ngành Công nghệ Kỹ thuật
Cơ điện tử, Khoa Cơ học kỹ thuật và Tự động hóa, Trường Đại
học Công nghệ - ĐHQGHN với các môn học Vi xử lý và Vi điều
khiển, Vi điều khiển và Hệ thống nhúng và thực tập chuyên
ngành (năm thứ 4). Ngoài ra, tài liệu này cũng có thể phục vụ
cho sinh viên các khoa khác muốn làm quen với chủ đề Vi xử lý
và Vi điều khiển.
Giáo trình được biên soạn dựa trên kừih nghiệm giảng
dạy của nhóm tác giả tại Trường trong nhiều năm qua. Giáo

trình giới thiệu các khái niệm cơ bản về Vi xử lý và Vi điều
khiển, nguyên lý hoạt động và kiến thức lập trình cho các môđun chức năng của Vi điều khiển AVR/PIC, một số ứng dụng
cơ bản của Vi điều khiển.
Giáo trình này gồm 5 chương và được biên soạn với nội
dung từng chương như sau:
Chương 1: Giới thiệu các khái niệm cơ bản ve Vỉ xử lý và Vi
điêu khiển.
Chương 2: Trình bày khái quát ve ngôn ngữ lập trình hợp ngữ
và c - lập trình cho Vi đỉêu khiển.
Chương 3: Giới thiệu những khái niệm cơ bản ve kiên trúc và
chức năng của Vi đĩêu khiển A Tm egalô như bộ chuyển đổi ADC,
Timer/Counter, truyền thông nối tiếp, điêu chê'độ rộng xung PWM
và ngắt.


VI xử LÝ VÀ VIOIÉU KHIỂN - NGUYÊN LÝ VÀ ỨNG DỤNG

Chương 4: Trình bày các khái niệm cơ bản, tập lệnh, tính nãn'ị
và lập trình cho các mô-đun của Vi âĩêu khiển PIC 16P877.
Chương 5: Giới thiệu một sô' ứng dụng cơ bản và quỵ trình
thiết kếm ột hệ thống đĩêu khiển sử dụng Vi đĩêu khiển.
Trong quá trình biên soạn, nhóm tác giả đã được các bạn
đồng nghiệp đóng góp nhiều ý kiến bổ ích. Ban chủ nhiệm
Khoa Cơ học kỹ thuật và Tự động hoá, các phòng ban Trường
Đại học Công nghệ đã tạo điều kiện tốt nhất để nhóm tác giả
hoàn thành giáo trình này. Nhóm tác giả xin bày tỏ lời cảm ơn
chân thành về sự giúp đỡ quý báu.
Mặc dù cố gắng, song không tránh khỏi có những thiếu
sót nhất định. Nhóm tác giả rất mong nhận được các ý kiến
đóng góp của bạn đọc, đặc biệt là các đồng nghiệp và các bạn

sinh viên để giáo trình được hoàn thiện hơn. Ý kiến đóng góp
xin gửi về địa chỉ: Khoa Cơ học Kỹ thuật và Tự động hóa Trường Đại học Công nghệ - ĐHQGHN.
Xừi chân thành cảm ơn!

Nhóm tác giả


DANHMỤCTỪVIẾTTẮT
ADC

Analog-to-Digital Converter

Bộ chuyển đổi tín hiệu tương
tự sang tín hiệu số

BOR

Brown-Oưt-Reset

Chức năng khởi động lại khi
điện áp nguồn nhỏ hơn điện
áp hoạt động

CISC

Complex Instruction Set

M áy tính với tập lệnh phức

Computers


tạp

CPU

Central Processing Unit

Đ ơn vị điều khiển trung tâm

CHMOS

Com plem entary High-Speed

Bán dẫn oxit kim loại tốc độ

Metal Oxide Semiconductor

cao bổ trợ

Digital-to-Analog Converter

Bộ chuyển đổi tín hiệu số sang

DAC

tín hiệu tương tự
DSP

Digital Signal Processor


Bộ xử lý tín hiệu số

EMR

Electromagnetic Relay

Rơle điện từ

EEPROM

Electrically Erasable

Bộ nhớ chỉ đọc có thể lập trình
xóa bằng điện

Program mable Read-Only
Memory
HMOS

High-Speed Metal Oxide

Bán dẫn oxit kim loại tốc độ

Semiconductor

cao

1 /0

Input/Output


V ào/ra

ỈC

Integrated Circuit

M ạch tích hợp

LVDT

Linear Variable Differential

Biến áp vi sai thay đổi tuyến

Transíormer

tính

LED

Light-Emitting Diode

Điốt phát quang

LCD

Liquid Crystal Display

M àn hình tinh th ể lòng


MOSPET

Metal-Oxide-Semicondưctor

Transistor

Field-Effect Transistor

bán dẫn oxit kim loại

hiệu ứng

trường


VI xử LỸ VÀ VI ĐIÊU KHIỂN - NGUYÊN LÝ VÀ ỨNG DỤNG
NO

Normal Open

Thường m ở

NC

Normal Close

Thường đóng

PC


Personal Computer

M áy tính cá nhân

PCB

Printed Circuit Board

Bo mạch in

PCON

Power Control Register

Thanh ghi điều khiển công
suất

PCLATH

Program Counter Latch

Chốt bộ đếm chương trình

PEROM

Programmable and Erasable

Bộ nhớ chỉ đọc có thể lập trình


Read Only M em oiy
PIC

Peripheral Interíace
Controller

PID

Proportional-IntegralDerivative

PLC

Programmable Logic

và xóa
Bộ điều khiến ghép nối ngoại
vi
Bộ điều khiển tỉ lệ-tích phânvi phân
Bộ điều khiển logic khả trình

Controller
POR

Power-On-Reset

Khởi động lại Vi điều khiển
khi cấp nguồn

PSP


Parallel Slave Port

Cổng tớ song song

PVVM

Pulse W idth Modulation

Điều chế độ rộng xung

RAM

Random-Access Memory

Bộ nhớ truy cập ngẫu nhiên

ROM

Read-Only Memory

Bộ nhó chi đọc

RTD

Resistance Temperature

Đầu đo nhiệt điện trở

Detector
SCR


Silicon-Controlled Rectiíier

Chỉnh

lưu



điều

khiển

Silicon
SRAM

Static Random-Access
Memory

Bộ nhớ truy cập ngẫu nhiên
tĩnh

SSR

Solid-State Relay

Rơle trạng thái rắn

WDT


VVatchdog Timer

Bộ định thời VVatchdog


DANH MỤC HÌNH VẼ

Hình 1.1. Sơ đồ khối của Vi xử l ý .................................................................................... 27
Hình 1.2. Mô hình lập trình................................................................................................27
Hình 1.3. Quá trình thực hiện chương trình c o n ....................................................... 30
Hình 1.4. Sơ đồ các khối chức năng cơ bản của Vi điều khiển........................... 35
Hình 1.5. Thiết bị đo và hiển thị nhiệt độ sử dụng Vi điều khiển....................... 36
Hình 1.6. Kiến trúc H arvard ...............................................................................................38
Hình 1.7. Kiến trúc Von N eum ann..................................................................................38
Hìnli 3.1. Sơ đồ chân A tm egaló (P D IP).........................................................................82
Hình 3.2. Sơ đồ khối A tm e g a ló ........................................................................................83
Hình 3.3. Các thanh ghi cấu hình cổng A T m eg aló...................................................85
Hình 3.4. Sơ đồ khối bộ chuyển đổi A D C .................................................................... 88
Hình 3.5. Các thanh ghi A D C............................................................................................ 89
Hình 3.6. Sơ đồ khối bộ định thòi TimerO....................................................................96
Hình 3.7. Các chế độ hoạt động của TimerO............................................................... 97
Hình 3.8. Các thanh ghi Timer/CounterO.....................................................................98
Hình 3.9. Thiết lập các bit của thanh ghi TCCRO..................................................... 100
Hình 3.10. Sơ đồ khối T im erl.......................................................................................... 101
Hình 3.11. Các thanh ghi T im er/C o u n terl................................................................ 102
Hình 3.12. Thanh ghi TCCRIA và T C C R IB .............................................................. 104
Hình 3.13. Sơ đồ khối bộ định thời T im er2............................................................... 106
Hình 3.14. Các thanh ghi T im er/C ounter2................................................................ 106
Hình 3.15. Thiết lập các bit của thanh ghi TCCR 2.................................................. 108
Hình 3.16. Sơ đồ khối USART........................................................................................ 114



VI xử LỸ VÀ VIĐIÉU KHIỂN - NGUYÊN LỸ VÀ ỨNG DỤNG
Hình 3.17. Các thanh ghi U SA R T ...................................................................................116
Hình 3.18. Các hoạt động của U SA R T ......................................................................... 117
Hình 3.19. Sơ khối truyền/nhận SPI giữa Master và Slave................................... 119
Hình 3.20. Các thanh thi SPI.............................................................................................120
Hình 3.21. Các bước thực hiện chế độ Master truyền dữ liệ u ............................ 125
Hình 3.22. Các bước thực hiện chế độ Master nhận dữ liệu................................130
Hình 3.23. Các bước lập trình TWI ớ chế độ Slave truyền dữ liệ u ................... 135
Hình 3.24. Các bước lập trình TWI ở chế độ Slave nhận dữ liệ u .......................139
Hình 3.25. Thanh ghi TW W BR........................................................................................ 142
Hình 3.26. Thanh ghi T W C R ........................................................................................... 143
Hình 3.27. Thanh ghi TW SR............................................................................................ 144
Hình 3.28. Thanh ghi T W A R ........................................................................................... 144
Hình 3.29. Đáp ứng ngắt của Vi điều khiển...............................................................146
Hình 4.1. Sơ đồ khối PIC 16C 61..................................................................................... 160
Hình 4.2. Thanh ghi trạng thái của PIC 16C X X ........................................................ 161
Hình 4.3. Nội dung PCLATH được truyền tới PC khi PCL được g h i.......... 164
Hình 4.4. Bộ đếm chương trình và ngăn xếp 8 m ức của PIC 16C 6/7X .......... 165
Hình 4.5. Sơ đồ chân PIC 1 6 C 6 1 .................................................................................... 165
Hình 4.6. Sơ đồ chân PIC 1 6 C 7 1 .................................................................................... 165
Hình 4.7. Mạch Reset Vi điều khiển PIC đon giản ................................................... 167
Hình 4.8. Mạch Reset Vi điều khiên PIC..................................................................... 168
Hình 4.9. Bộ giao động R C .............................................................................................. 169
Hình 4.10. Bộ giao động thạch anh............................................................................... 169
Hình 4.11. Bộ đếm chương trình, tổ chức bộ nhớ chưong trình PIC16C6X. 170
Hình 4.12. Tổ chức bộ nhớ chương trình PIC 16C 61.............................................. 170
Hình 4.13. Cấu trúc tệp thanh ghi của PIC 1 6 C 6 X /7 X ........................................... 171
Hình 4.14. Thanh ghi O P T IO N ...................................................................................... 173

Hình 4.15. Thanh ghi IN TCO N ...................................................................................... 174
Hình 4.16. Chế độ địa chi trực tiếp............................................................................... 180


ĐẠI HỌC QUỔC GIA HÀ NỘI
TRUNG TẦM THÒNG ĨIN ĨHƯ VIỆN
OANH MỤC HÌNH VẼ
Hình 4.17. C hế độ địa chi gián tiế p .............................................................................. 180
Hình 4.18. Sơ đồ khối logic ngắt PIC 16C 61.............................................................. 183
Hình 4.19. Ví dụ về ngắt ngoài IN T ............................................................................. 184
Hình 4.20. Cấp xung giữ nhịp ngoài cho Timer/CounterO...................................188
Hình 4.21. Tràn và ngắt TimerO..................................................................................... 189
Hình 4.22. Bộ định thời VVDT trong PIC 16C X X ...................................................... 190
Hình 4.23. Thanh ghi ADCONO..................................................................................... 192
Hình 4.24. Thanh ghi A D C O N l..................................................................................... 192
Hình 4.25. AINO/1 là đầu vào cho bộ ADC và RA2/4 là ngõ vào/ra s ố ........ 193
Hình 4.26. Sơ đồ chân của PIC 16P877/874.................................................................199
Hình 4.27. Thanh ghi trạng thái STATUS của PIC 16P8XX................................. 200
Hình 4.28. Sử dụng các bit RPl : RPO trong chế độ địa chi trực tiế p ................ 200
Hình 4.29. Sử dụng bit IRP trong chế độ địa chi gián tiếp...................................201
Hình 4.30. Thanh ghi P C O N ...........................................................................................201
Hình 4.31. Thanh ghi OPTIO N _REG .......................................................................... 202
Hình 4.32. Sơ đồ bộ nhớ chương trình của 16P877................................................. 204
Hình 4.33. Sơ đồ tệp thanh ghi PIC 16P877...............................................................206
Hình 4.34. Thanh ghi E E C O N l......................................................................................208
Hình 4.35. Thanh ghi INTCON của PIC 16P877......................................................212
Hình 4.36. Thanh ghi P I E l............................................................................................... 213
Hình 4.37. Thanh ghi P IE 2...............................................................................................214
Hình 4.38. Thanh ghi P IR l...............................................................................................215
Hình 4.39. Thanh ghi PIR 2...............................................................................................216

Hình 4.40. Thanh ghi TRISE........................................................................................... 218
Hình 4.41. Thaiih ghi T IC O N ........................................................................................220
Hình 4.42. Thanh ghi T 2C O N ........................................................................................222
Hình 4.43. Sơ đồ khối T im er2.........................................................................................222
Hình 4.44. Các thanh ghi CCPICO N và C C P2C O N ............................................. 224
Hình 4.45. Hoạt động ở chế độ C ap tu re.................................................................... 226


, ...................

" VI xử LỸ VÀ VI ĐIÉU KHIỂN-NGUYÊN LỸ VÀ ỨNG DỤNG

Hình 4.46. Bắt sự kiện tại sườn trư ớ c...........................................................................226
Hình 4.47. H oạt động chế độ so sánh...........................................................................228
Hình 4.48. Sơ đồ khối mô-đun PW M ...........................................................................230
Hình 4.49. Dạng sóng P W M ............................................................................................230
Hình 4.50. PVVM và bộ lọc ửiông thấp đê’ tạo ra đầu ra tương tự d c ...............233
Hình 4.51. C ác chân của PIC 16P877 sử dụng trong chế độ SPI........................ 234
Hình 4.52. Thanh ghi SSPC O N ......................................................................................234
Hình 4.53. SPI truyền ớ chế độ M aster........................................................................ 237
Hình 4.54. Thanh ghi SSPSTAT.................................................................................... 237
Hình 4.55. Thanh ghi SSPCO N 2....................................................................................239
Hình 4.56. C h ế độ SPI M a ste r........................................................................................ 240
Hình 4.57. C h ế độ SPI Slave, CKE = 0 ......................................................................... 242
H ĩn h 4.58. C hế độ SPI Slave, CKE = 1 ......................................................................... 246
Hình 4 .5 9 .12C bus...............................................................................................................245
Hình 4.60. Truyền địa chỉ Slave 7-bit hoặc 10-bit.................................................2460
Hình 4.61. START, STOP và truyền byte '1100 0001' bởi bus I2C .................... 247
Hình 4.62. Thanh ghi điều khiển và trạng thái truyền (TXSTA).......................252
Hình 4.63. Thanh ghi điều khiển và trạng thái nhận (R C STA ).........................253

Hình 4.64. Giao tiếp giữa các PIC sử dụng USART ở chế độ bất đồng bộ ..255
Hình 4.65. Khung dữ liệu giao tiếp nối tiếp ở chế độ bất đồng b ộ ..................255
Hình 4.66. Thanh ghi ADCONO.................................................................................... 259
Hình 4.67. Thanh ghi A D C O N l.....................................................................................261
Hình 5.1. Sơ đồ kết nối PIC với L E D ........................................................................... 270
Hình 5.2. Giao tiếp LED với PIC 16P877.................................................................... 271
Hình 5.3. LED và nút n h ấn ............................................................................................. 274
Hìiứi 5.4. Giao tiếp giữa PIC 16P877 và chuyển mạch dạng D IP ..................... 274
Hìrửi 5.5. Sơ đồ cấu tạo Rơle........................................................................................... 276
Hình 5.6. Sơ đồ kết nối giữa Vi điều khiến và R ơ le.............................................. 277
Hình 5.7. Kết nối giữa Vi điều khiển và SSR............................................................ 277


DANHMỤCHlNHVẼ
Hình 5.8. Giao tiếp Rơle với PIC 16P877..................................................................... 278
Hình 5.9. Sừ dụng phần ciíng đ ể loại bỏ n h iễu....................................................... 280
Hình 5.10. Giao tiếp giữa PIC 16P877 và bàn phím 4 x 4 ........................................281
Hình 5.11. Sơ đồ giao tiếp giữa bàn phím 4x4 với PIC 16P877...........................282
Hình 5.12. Vi m ạch CD4511, vi điều khiển giao tiếp với LED 7 -th a n h ........ 285
Hình 5.13. Giao tiếp giữa LED 7-thanh, chuyển mạch DIP và PIC 16F 877..285
Hình 5.14. Kết nối giữa Vi điều khiển và L C D .......................... ...............................288
Hình 5.15. Sơ đồ giao tiếp giữa A tm egaló và LCD 44780.....................................292
Hình 5.16. Giao tiếp giữa Vi điều khiển vói bộ chuyển đổi ADC và D A C ..298
Hình 5.17. Sơ đồ kết nối giữa PIC 16P877 và ADC 0 8 0 9 ...................................... 299
Hình 5.18. Sơ đồ kết nối giữa PIC 16P877 và DAC M A X 5822............................301
Hình 5.19. Xác định vị trí tay R ob ot.............................................................................. 305
Hình 5.20. Bộ mã hóa quang học tương đ ố i.............................................................. 306
Hình 5.21. Sơ đồ giao tiếp giữa PIC16F877 và Encoder tương đ ố i.................. 308
Hình 5.22. Sơ đồ giao tiếp giữa LVDT với PIC sử dụng A D 6 9 8 .......................310
Hình 5.23. Quan hệ v à o /ra ................................................................................................ 311

Hình 5.24. Sơ đồ khối thiết bị đo tốc độ sử dụng Vi điều khiển.......................312
Hình 5.25. Sơ đồ đo đốc độ động c ơ ............................................................................313
Hình 5.26. Tim erl thu nhận khoảng thời gian đếm xung đầu v à o ................... 313
Hình 5.27. Sơ đồ thuật toán xác định rp m ................................................................. 314
Hinh 5.28. Sơ đồ m ạch đo nhiệt độ sử dụng L M 35................................................315
Hình 5.29. Tuyến tính tín hiệu RTD sử dụng X TR 103........................................... 317
Hình 5.30. XTRIOI và tuyến tính hóa cặp nhiệt điện........................................... 318
Hình 5.31. Phương pháp đo lực và sơ đồ m ạch giao tiếp với P IC 16F877....320
Hình 5.32. Tính thành phần I như là tổng diện tích của các hình chữ n h ật.323
Hình 5.33. Xấp xỉ thành phần D ......................................................................................323
Hình 5.34. Lưu đồ thuật toán PID s ố ........................................................................... 324
Hình 5.35. Bộ điều khiển PID s ố .................................................................................... 325
Hình 5.36. Mạch điều khiển động cơ d c ..................................................................... 327


VI xử LỸ VÀ VI ĐIỀU KHIỂN - NGUYÊN LÝ VÀ ỨNG DỤNG
Hình 5.37. Mạch điều khiển động cơ DC sử dụng IC A 3 9 5 2 ..............................327
Hình 5.38. Điều khiển động cơ dc sử dụng PIC 16P 877.......................................329
Hình 5.39. Chỉnh lưu toàn sóng và điều khiển động cơ dc sứ dụng SCR....330
Hìiìh 5.40. Cách ly quang và SCR................................................................................. 330
Hình 5.41. Mạch tìm điểm 0 ............................................................................................331
Hình 5.42. Tim điểm 0 sử dụng INTO và nguồn công suất không biến áp ..332
Hình 5.43. Tim điểm 0 sử dụng cách ly qu ang........................................................332
Hình 5.44. Điều khiển cổng Triac bằng Vi điều khiển.......................................... 333
Hình 5.45. Điều khiển phase ac sử dụng T riac........................................................334
Hình 5.46. Vi điều khiển điều khiển tải ac qua bộ lái T ria c .............................. 334
Hình 5.47. Động cơ bước nam châm vĩnh cửu đơn c ự c ..................................... 336
Hình 5.48. Động cơ bước nam châm vĩnh cửu lưỡng c ự c ..................................336
Hình 5.49. Động cơ bước có từ trở thay đ ổ i............................................................. 336
Hình 5.50. Mạch điều khiển sử dụng L297, L298 và Vi điều khiển................339

Hình 5.51. Sơ đồ khối của Vi mạch L 2 9 7 ...................................................................339
Hình 5.52. Chopping bằng tín hiệu p h a .................................................................... 341
Hình 5.53. Chopping bằng tín hiệu INHIBIT........................................................... 341
Hình 5.54. Sơ đồ cấu tạo mạch chức năng L 2 9 8 ..................................................... 342
Hình 5.55. Sơ đồ cấu trúc cho trạm thòi tiết............................................................. 344
Hình 5.56. Sơ đồ mạch điều khiển cho trạm thời tiết............................................ 345
Hình 5.57. Sơ đồ thuật toán cho trạm thời tiết........................................................ 346
Hình 5.58. Động cơ 24 Vdc, 1500 RPM vơi 3 kênh mã hóa quang h ọ c......... 358
Hình 5.59. Sơ đồ cấu trúc cho dự án điều khiển tốc độ động c ơ ..................... 358
Hình 5.60. Sơ đồ mạch cho dự án điều khiển tốc độ động c ơ .......................... 359
Hình 5.61. Sơ đồ thuật toán cho dự án điều khiển tốc độ động c ơ ................. 360


DANH MỤC BẢNG BIỂU

Bảng 1.1. Các thành viên họ M C S -51.......................................................................... 40
Bảng 1.2. Một số dòng Vi điều khiển của hãng A tm e l......................................... 41
Bảng 1.3. Một số dòng Vi điều khiển PIC của hãng M icrochip.........................42
Bảng 1.4. Lịch sử phát triển của vi xử lý và vi điều khiển.................................. 44
Bảng 2.1. Các phép toán số h ọ c.........................................................................................59
Bảng 2.2. Các phép toán logic và so sá n h .....................................................................59
Bảng 2.3. Bảng sự thật các phép to á n ............................................................................. 60
Bảng 2.4. Các phép toán thực hiện trên bit................................................................... 61
Bảng 3.1. Chọn điện áp tham chiếu cho bộ chuyển đổi A D C............................... 90
Bảng 3.2. Chọn hệ số và kênh chuyển đ ổ i................................. ..................................90
Báng 3.3. Hệ số chia xung nhịp cho A D C.....................................................................92
Bảng 3.4. Tổng quan các bộ định thời A tm el.............................................................. 94
Bảng 3.5. Tân số hoạt động của SPI.............................................................................. 122
Bảng 3.6. Tan số xung giữ nhịp......................................................................................142
Bảng 3.7. Vector ngắt và R eset....................................................................................... 146

Báng 3.8. Tên các vector ngắt trong VVinAVR...........................................................148
Bảng 4.1. M ột

SỐ

tính năng của PIC 16C61, 16C 71,16C 66 và 1 6 C 7 4 ...............157

Bảng 4.2. Công suất tiêu thụ và điện áp hoạt động của PIC 16C XX................ 158
Bảng 4.3. Thanh ghi C P U ................................................................................................. 159
Bàng 4.4. Các bit của thanh ghi trạng thái..................................................................161
Bảng 4.5. Mô tả chức năng các chân của Vi điều khiển PĨC 16C 61/16C 71...166
Bảng 4.6. Các thanh ghi có chức năng đặc biệt của PIC 1 6 C 6 1 /7 1................... 172
Bảng 4,7. Gán giá trị chia tần .........................................................................................174
Bảng 4.8. Các bit trong thanh ghi IN T C O N ............................................................. 174


VI xử LỸ VÀ VIĐIÉU KHIỂN - NGUYÊN LỸ VẦ ỨNG DỤNG
Bảng 4.9. Câu lệnh trong PIC 16C 6X ............................................................................178
Bảng 4.10. Thanh ghi ADCONO.....................................................................................192
Bảng 4.11. Lựa chọn kênh A D C .................................................................................... 192
Bảng 4.12. Xung giữ nhịp A D C......................................................................................192
Bảng 4.13. M ô tả thanh ghi A D C O N l......................................................................... 193
Bảng 4.14. Các tính năng của PIC 16P8XX................................................................. 195
Bảng 4.15. M ô tả chức năng các chân của PIC 16P 877.......................................... 197
Bảng 4.16. Các bit của thanh ghi OPTION_REG.................................................... 202
Bảng 4.17. Các bit trong thanh ghi E E C O N l............................................................ 208
Bảng 4.18. Các bit trong thanh ghi INTCON của PIC 16P877............................ 212
Bảng 4.19. Các bit trong thanh ghi P I E l .................................................................... 213
Bảng 4.20. Các bit trong thanh ghi P I E 2 ....................................................................214
Bảng 4.21. Các bit trong thanh ghi P I R l ....................................................................215

Bảng 4.22. Các bit trong thanh ghi P IR 2 ....................................................................216
Bảng 4.23. Các bit của thanh ghi TRISE.....................................................................218
Bảng 4.24. Các bit trong thanh ghi T IC O N .............................................................. 220
Bảng 4.25. Các bit trong thanh ghi T 2C O N .............................................................. 222
Bảng 4.26. Mô tả thanh ghi CCPICON và C C P 2C O N ........................................ 224
Bảng 4.27. Các bit trong thanh ghi SSPCON........................................................... 234
Bảng 4.28. Các bit trong thanh ghi SSPSTAT.......................................................... 238
Bảng 4.29. Mô tả thanh ghi SSPC O N 2.......................................................................239
Bảng 4.30. M ô tả thanh ghi T X S T A .............................................................................252
Bảng 4.31. M ô tả thanh ghi RCSTA.............................................................................253
Bảng 4.32. M ô tả thanh ghi ADCONO........................................................................ 260
Bảng 4.33. M ô tả thanh ghi A D C O N l........................................................................ 261
Bảng 5.1. Mô tả chức năng các chân LCD 16x2.......................................................288
Bảng 5.2. Mã lệnh L C D ................................................................................................... 290
Bảng 5.3. C ác câu lệnh cho bộ điều khiển L C D ..................................................... 290
Bảng 5.4. Quan hệ giữa vị trí góc khớp và giá trị điện áp đầu vào A D C .....305


DANH MỤC BẢNG BIẾU
Bảng 5.5. Giá trị logic của A, B và hướng Encoder tương lin g ..........................307
Bảng 5.6. H ướng quay xác định từ các giá trị pha logic (B ,A )...........................307
Bảng 5.7. Đặc tính kỹ thuật của L M 3 5 ....................................................................... 315
Bảng 5.8. Mô tả chức năng từng chân của X T R 103............................................... 317
Bảng 5.9. Chức năng các chân IC 3 9 5 2 ....................................................................... 328
Bảng 5.10. Trạng thái cấp điện các pha của động cơ 2 p h a .............................. 337
Bảng 5.11. Trạng thái cấp điện các pha của động cơ 4 p h a .............................. 338


Chương 1
GIỚI THIỆU VÊ VI XỬ LÝ VÀ VI ĐIÊU KHIỂN


Mục tiêu
• Cấu trúc cơ bản của Vi xử lý và Vi điều khiển
• Lịch sử và quá trình phát triển Vi xử lý, Vi điều khiển
• Các thuật ngữ cơ bản như nhúng, bộ nhớ ngoài, bộ Vi
xử lý CISC và RISC
• Thông từi một số loại Vi điều khiển có trên thị trường
thương mại

1.1. Khái niệm Vi xử lý
Vi xử lý là một vi mạch có mức tích hợp rất lớn có thể lập
trình được và dưới sự điều khiển của chương trình lim trong bộ
nhớ, nó có khả năng thực hiện các phép tửih số học, logic học,
các phép toán khác và giao tiếp trao đổi thông tin với các thiết
bị ngoại vi thông qua các cổng vào/ra.
Vi xử lý chứa bên trong chip tất cả các thành phần chủ yếu
cho quá trình tứìh toán ngoại từ bộ nhớ và các cổng vào/ra. Xử
lý dữ liệu là chức năng chứứi của Vi xử lý (bao gồm cả từứì toán
và vận chuyển dữ liệu).


VI xử LỸ VÀ VI ĐIỂU KHIỂN - NGUYÊN LÝ VÀ ỨNG DỤNG

1.1.1.

Cấu trúc và hoạt động của Vi xử lý

Vi xử lý gồm có bộ đếm chương trình, bộ giải mã lệnh,
thanh ghi lệnh, các thanh ghi mục đích khác, khối điều khiển
logic và đơn vị logic và số học (ALU). Sơ đồ khối và mô hình

lập trình của Vi xử lý được cho trong Hình 1.1 và Hình 1.2. Sơ
đồ khối của Vi điều khiển chỉ ra chức năng của từng khối và cái
cách mà các khối này được kết nối với nhau. Mô hình lập trình
hỗ trợ các lập trinh viên trong quá trình viết chương trình. Sự
khác biệt giữa hai khối này đó là mô hình lập trình chỉ thể hiện
những khối mà các lập trình viên có thể thay đổi. Vì vậy có thể
nói rằng, sơ đồ khối sẽ giúp chúng ta dễ dàng hiểu được cấu
trúc của Vi xử lý còn mô hình lập trình giúp chúng ta hiểu được
quy trình làm việc của Vi xử lý trong môi trường lập trình.
Cấu tạo Vi xử lý gồm có ba khối chmh sau:
• Đơn vị logic và số học (ALU)
• Các thanh ghi
• Đơn vị điều khiển (CU)
Các Bus dữ liệu nội bộ được sử dụng để kết nối và truyền
dữ liệu giữa các khối logic với nhau.
Đơn vị logic và sô học (ALU)
Một trong số những đơn vị logic chính của Vi xử lý là đơn
vị logic và SỐ học (ALU). Đơn vị này gồm có hai đầu vào và một
đầu ra. Bus dữ liệu nội bộ của Vi xử lý được nối tới hai đầu vào
của ALU thông qua thanh ghi tạm thời và bộ chứa.
Đầu ra duy nhất của ALU được nối tới bus dữ liệu nội bộ.
Điều này cho phép gửi các thông tin đầu ra của ALU tới mọi
thiết bị được nối tới bus. Hầu hết các thanh ghi A của Vi xử lý
cung cấp dữ liệu cho hoạt động của ALU và sau khi thực hiện
các phép toán, kết quả được gửi trở lại thanh ghi A và luTi trữ
tại đó. Thanh ghi đặc biệt này thông thường được biết đến như
là bô chứa.



×