Giáo trình nghề Điện tử công nghiệp - Môđun: Kỹ thuật vi điều khiển

BỘ CÔNG THƯƠNG  
TRƯỜNG CAO ĐẲNG CÔNG NGHIỆP VÀ THƯƠNG MẠI  
GIÁO TRÌNH  
Tên mô đun: Kỹ thuật Vi điều khiển  
NGHỀ: ĐIỆN TỬ CÔNG NGHIỆP  
TRÌNH ĐỘ TRUNG CẤP/CAO ĐẲNG NGHỀ  
Ban hành kèm theo Quyết định số:  
/QĐ-CĐCNPY, ngày tháng năm 2018  
của Hiệu trưởng trường Cao đẳng Công nghiệp và Thương mại  
Vĩnh Phúc, năm 2018  
1
MỤC LỤC  
ĐỀ MỤC  
MỤC LỤC  
TRANG  
2
CHƯƠNG TRÌNH MÔ ĐUN  
Bài 1. ĐIỀU KHIỂN PIC 18f4520:  
ĐẶC TÍNH, CẤU TRÚC, CHỨC NĂNG CÁC PORT  
4
8
8
1.1. Giới thiệu................................................................................................................8  
1.1.1. Cấu tạo vi điều khiển. ..........................................................................................8  
1.1.2. Nguyên lý hoạt động của Vi điều khiển ..............................................................8  
1.1.3. Lĩnh vực và ứng dụng........................................................................................11  
1.1.4. Sản phẩm dân dụng. ..........................................................................................12  
1.2. Khảo sát vi điều khiển Microchip .......................................................................12  
1.2.1. Cấu hình vi điều khiển PIC 18f4520. ................................................................12  
1.2.2. Cấu trúc của vi điều khiển PIC 18f4520. ..........................................................13  
1.2.3. Khảo sát sơ đồ chân vi điều khiển PIC 18f4520. ..............................................15  
Bài 2. TỔ CHỨC BỘ NHỚ THANH GHI  
2.1. Giới thiệu.  
22  
22  
2.2. Kiến trúc bộ nhớ. .................................................................................................22  
2.3. Tổ chức bộ nhớ của vi điều khiển PIC 18f4520. .................................................23  
2.3.1. Tổ chức bộ nhớ chương trình............................................................................23  
2.3.2. Khối tạo dao động..............................................................................................24  
2.3.3. Khảo sát bộ nhớ dữ liệu và thanh ghi trạng thái..............................................26  
Bài 3: LẬP TRÌNH ĐIỀU KHIỂN VỚI VĐK PIC 18F4520  
30  
3.1. Các thành phần cơ bản của ngôn ngữ lập trình C..............................................30  
3.1.1. Các kiểu dữ liệu của biến...................................................................................30  
3.1.2. Các toán tử. ........................................................................................................31  
3.1.3. Các lệnh C cơ bản..............................................................................................33  
3.2. Trình biên dịch C.................................................................................................36  
3.2.1. Các thành phần mở rộng của trình biên dịch C...............................................36  
3.2.2. Khai báo biến và hằng số...................................................................................37  
3.2.3. Khai báo các biến truy xuất bit.........................................................................38  
3.2.4. Khai báo con trỏ, mảng. ....................................................................................39  
3.2.5. Khai báo và sử dụng hàm. .................................................................................39  
3.2.6. Khai báo chương trình con phục vụ ngắt. ........................................................40  
3.2.7. Cấu trúc của một chương trình C cho vi điều khiển PIC ................................56  
3.2.8. File thư viện của vi điều khiển PIC...................................................................57  
3.3. Phần mềm MPLAB_IDE_v8_70 .........................................................................60  
Bài 4: PORT XUẤT NHẬP, TIMER – COUNTER  
68  
4.1. Cấu hình, thông số điện áp, dòng của các port...................................................68  
4.2. Các ứng dụng dùng port điều khiển của vi điều khiển 8 bit. .............................70  
2
4.2.1. Các ứng dụng điều khiển led đơn.........................................................................70  
4.2.2. Các ứng dụng điều khiển led 7 đoạn trực tiếp.......................................................73  
4.2.3. Các ứng dụng điều khiển led 7 đoạn quét.............................................................74  
4.2.4. Giao tiếp vi điều khiển 8 bit với LCD ..................................................................76  
4.3. Timer/counter của vi điều khiển PIC 18f4520....................................................79  
4.3.1. Khảo sát các timer của vi điều khiển PIC 18f4520...........................................79  
4.3.2. Cách truy xuất các thành phần của timer trong ngôn ngữ lập trình C...........91  
4.3.3. Ứng dụng timer/counter của vi điều khiển PIC 18f4520.......................................93  
a. Giao tiếp DS1307 ..................................................................................................93  
b. Ứng dụng 1………………………………………………………………………….…98  
c. Ứng dụng 2…………………………………………………………………………...101  
3
CHƯƠNG TRÌNH MÔ ĐUN  
Tên mô đun: KỸ THUẬT VI ĐIỀU KHIỂN  
Mã mô đun: MĐTC14020040  
Thời gian thực hiện mô đun: 75 giờ (Lý thuyết: 15 giờ; Thực hành, thí nghiệm,  
thảo luận, bài tập 57 giờ; Kiểm tra : 3 giờ)  
I. Vị trí, tính chất mô đun  
- Vị trí: Đây là mô đun chuyên ngành cho học sinh ngành điện tử, viễn thông. Mô  
đun này phải học sau khi đã học xong các mô đun: Kỹ thuật vi xử lý.  
- Tính chất: Bắt buộc  
II. Mục tiêu mô đun  
- Kiến thức:  
+ Mô tả được cấu trúc bên trong, chức năng các chân của họ vi điều khiển PIC  
18F4520.  
+ Trình bày được các lệnh lập trình C của họ vi điều khiển PIC 18F4520  
+ Trình bày được một số ứng dụng của họ vi điều khiển  
- Kỹ năng:  
+ Lập được lưu đồ thuật toán của một số ứng dụng cơ bản  
+ Lập trình trên ngôn ngữ lập trình C và nạp được vào trong chip một số bài tập  
ứng dụng của vi điều khiển PIC 18F4520  
- Về năng lực tự chủ và trách nhiệm:  
+ Dự lớp đầy đủ theo quy định, rèn luyện tác phong công nghiệp, biết cách làm  
việc nhóm.  
III. Nội dung mô đun  
1. Nội dung tổng quát và phân bổ thời gian  
Thời gian (giờ)  
Thực  
hành,  
Số  
TT  
thí  
nghiệm,  
thảo  
luận,  
bài tập  
6
Tên các bài trong mô đun  
VI ĐIỀU KHIỂN PIC  
18f4520: ĐẶC TÍNH, CẤU TRÚC,  
CHỨC NĂNG CÁC PORT  
1.1. Giới thiệu  
Tổng  
số  
Lý  
thuyết  
Kiểm  
tra  
1. Bài 1.  
9
3
3
1.2. Khảo sát vi điều khiển Microchip  
2. Bài 2.  
TỔ CHỨC BỘ NHỚ 16  
12  
1
THANH GHI  
2.1. Giới thiệu.  
4
2.2. Kiến trúc bộ nhớ.  
2.3. Tổ chức bộ nhớ của vi điều khiển  
PIC 18f4520.  
3. Bài 3.  
LẬP TRÌNH ĐIỀU KHIỂN 20  
3
6
16  
23  
1
1
VỚI VĐK PIC 18F4520,  
3.1. Các thành phần cơ bản của ngôn  
ngữ lập trình C  
3.2. Trình biên dịch C.  
3.3. Phần mềm MPLAB_IDE_v8_70  
4. Bài 4.  
PORT  
XUẤT  
NHẬP, 30  
TIMER – COUNTER  
4.1. Cấu hình, thông số điện áp, dòng  
của các port  
4.2. Các ứng dụng dùng port điều  
khiển của vi điều khiển 8 bit.  
4.3. Timer/counter của vi điều khiển  
PIC 18f4520  
Cộng  
75  
15  
27+30  
3
2. Nội dung chi tiết  
Bài 1. ĐIỀU KHIỂN PIC 18f4520: ĐẶC TÍNH, CẤU TRÚC, CHỨC NĂNG  
CÁC PORT (Thời gian: 9 giờ)  
* Mục tiêu của bài: Sau khi học xong bài học này, sinh viên có thể  
- Trình bày được về sơ đồ câu trúc điều khiển và các ngoại vi tích hợp của vi điều  
khiển PIC 18f4520  
- Phân tích được sơ đồ chân vi điều khiển PIC 18f4520.  
- Cẩn thận, sáng tạo đảm bảo an toàn thiết bị và dụng cụ.  
- Nghiêm túc, khoa học, tỉ mỷ.  
* Nội dung của bài:  
1.1. Giới thiệu  
1.2. Khảo sát vi điều khiển Microchip  
1.2.1. Cấu hình vi điều khiển PIC 18f4520.  
1.2.2. Sơ đồ cấu trúc của vi điều khiển PIC 18f4520.  
1.2.3. Khảo sát sơ đồ chân vi điều khiển PIC 18f4520.  
Bài 2. TỔ CHỨC BỘ NHỚ THANH GHI  
(Thời gian: 16 giờ)  
* Mục tiêu của bài: Sau khi học xong bài học này, sinh viên có thể:  
- Trình bày được về kiến trúc bộ nhớ, tổ chức bộ nhớ vi điều khiển PIC 18f4520  
- Vẽ được tổ chức bộ nhớ vi điều khiển PIC 18f4520.  
- Khảo sát việc kết nối với các linh kiện cơ bản như led đơn, nút nhấn, led 7 đoạn,  
LCD  
5
- Cẩn thận, sáng tạo đảm bảo an toàn thiết bị và dụng cụ.  
- Nghiêm túc, khoa học, tỉ mỷ.  
* Nội dung của bài:  
2.1.Giới thiệu.  
2.2.Kiến trúc bộ nhớ.  
2.3.Tổ chức bộ nhớ của vi điều khiển PIC 18f4520.  
2.3.1. Tổ chức bộ nhớ chương trình.  
2.3.2. Mã lệnh 14 bit.  
2.3.3. Khảo sát bộ nhớ dữ liệu và thanh ghi trạng thái.  
2.3.4. Bộ nhớ dữ liệu EEPROM.  
Bài 3: LẬP TRÌNH ĐIỀU KHIỂN VỚI VĐK PIC 18F4520 (Thời gian: 20 giờ)  
* Mục tiêu của bài: Sau khi học xong bài học này, sinh viên có thể:  
- Trình bày được lệnh cơ bản của vi điêu khiên PIC 18f4520  
- Lập trình điều khiển được khi dùng ngôn ngữ C cho các hệ thống điều khiển  
dùng vi điều khiển PIC 18f4520  
- Phân tích được thư viện của vi điều khiển PIC 18f4520.  
- Cẩn thận, sáng tạo đảm bảo an toàn thiết bị và dụng cụ.  
- Nghiêm túc, khoa học, tỉ mỷ.  
* Nội dung của bài:  
3.1. Các thành phần cơ bản của ngôn ngữ lập trình C  
3.1.1. Các kiêu dữ liệu của biến.  
3.1.2. Các toán tử.  
3.1.3. Các lệnh C cơ bản  
3.2. Trình biên dịch C.  
3.2.1. Các thành phần mở rộng của trình biên dịch C  
3.2.2. Khai báo biến và hằng số  
3.2.3. Khai báo các biến truy xuất bit  
3.2.4. Khai báo con trỏ, mảng.  
3.2.5. Khai báo và sử dụng hàm  
3.2.6. Khai báo chương trình con phục vụ ngắt.  
3.2.7. Cấu trúc của một chương trình C cho vi điêu khiển PIC  
3.2.8. File thư viện của vi điều khiển PIC  
3.3. Phần mềm MPLAB_IDE_v8_70  
Bài 4: PORT XUẤT NHẬP, TIMER – COUNTER (Thời gian: 30 giờ)  
* Mục tiêu của bài: Sau khi học xong bài học này, sinh viên có thể  
- Trình bày được về cấu hình, thông số điện áp, dòng của các port vi điều khiển  
PIC 18f4520  
- Trình bày được cách truy xuất port điều khiển PIC 18f4520  
- Lập trình được các ứng dụng truy xuất port bằng ngôn ngữ C với LED đơn, 7  
thanh, LCD  
- Lập trình được các ứng dụng Timer/counter của vi điều khiển PIC 18f4520  
6
- Cẩn thận, sáng tạo đảm bảo an toàn thiết bị và dụng cụ.  
- Nghiêm túc, khoa học, tỉ mỷ.  
* Nội dung của bài:  
4.1. Cấu hình, thông số điện áp, dòng của các port  
4.1.1. Truy xuất port điều khiển của vi điều khiển 8 bit.  
4.1.2. Định cấu hình cho port  
4.1.3. Lập trình truy xuất port bằng ngôn ngữ C  
4.2. Các ứng dụng dùng port điều khiển của vi điều khiển 8 bit.  
4.2.1. Các ứng dụng điều khiển led đơn.  
4.2.2. Các ứng dụng điều khiển led 7 đoạn trực tiếp.  
4.2.3. Các ứng dụng điều khiển led 7 đoạn quét.  
4.2.4. Giao tiếp vi điều khiển 8 bit với LCD  
4.3. Timer/counter của vi điều khiển PIC 18f4520  
4.3.1. Khảo sát các timer của vi điều khiển PIC 18f4520.  
4.3.2. Cách truy xuất các thành phần của timer trong ngôn ngữ lập trình C.  
4.3.3. Ứng dụng timer/counter của vi điều khiển PIC 18f4520  
7
Bài 1. ĐIỀU KHIỂN PIC 18f4520:  
ĐẶC TÍNH, CẤU TRÚC, CHỨC NĂNG CÁC PORT  
* Mục tiêu  
- Trình bày được về sơ đồ cấu trúc điều khiển và các ngoại vi tích hợp của vi điều  
khiển PIC 18f4520  
- Phân tích được sơ đồ chân vi điều khiển PIC 18F4520.  
- Cẩn thận, sáng tạo đảm bảo an toàn thiết bị và dụng cụ.  
- Nghiêm túc, khoa học, tỉ mỷ.  
* Nội dung của bài:  
1.1. Giới thiệu  
1.1.1. Cấu tạo vi điều khiển.  
- Vi điều khiển là một máy tính được tích hợp trên một chíp, nó thường được sử  
dụng để điều khiển các thiết bị điện tử. Vi điều khiển thực chất gồm một vi xử lý  
có hiệu suất đủ cao và giá thành thấp (so với các vi xử lý đa năng dùng trong máy  
tính) kết hợp với các thiết bị ngoại vi như các bộ nhớ, các mô đun vào/ra, các mô  
đun biến đổi từ số sang tương tự và từ tương tự sang số, mô đun điều chế độ rộng  
xung (PWM)...  
- Vi điều khiển thường được dùng để xây dựng hệ thống nhúng. Nó xuất hiện  
nhiều trong các dụng cụ điện tử, thiết bị điện, máy giặt, lò vi sóng, điện thoại, dây  
truyền tự động...  
- Hầu hết các loại vi điều khiển hiện nay có cấu trúc Harvard là loại cấu trúc mà  
bộ nhớ chương trình và bộ nhớ dữ liệu được phân biệt riêng.  
- Cấu trúc của một vi điều khiển gồm CPU, bộ nhớ chương trình (thường là bộ  
nhớ ROM hoặc bộ nhớ Flash), bộ nhớ dữ liệu (RAM), các bộ định thời, các cổng  
vào/ra để giao tiếp với các thiết bị bên ngoài, tất cả các khối này được tích hợp trên  
một vi mạch.  
Các loại vi điều khiển trên thị trường hiện nay:  
- VDK MCS-51: 8031, 8032, 8051, 8052,...  
- VDK ATMEL: 89Cxx, AT89Cxx51...  
- VDK AVR AT90Sxxxx  
- VDK PIC 16C5x, 17C43, 18F4520,  
1.1.2. Nguyên lý hoạt động của Vi điều khiển  
Mặc dù đã có rất nhiều họ vi điều khiển được phát triển cũng như nhiều chương  
trình điều khiển tạo ra cho chúng, nhưng tất cả chúng vẫn có một số điểm chung  
cơ bản. Do đó nếu ta hiểu cặn kẽ một họ thì việc tìm hiểu thêm một họ vi điều  
khiển mới là hoàn toàn đơn giản. Một kịch bản chung cho hoạt động của một vi  
điều khiển như sau:  
- Khi không có nguồn điện cung cấp, vi điều khiển chỉ là một con chip có  
chương trình nạp sẵn vào trong đó và không có hoạt động gì xảy ra.  
- Khi có nguồn điện, mọi hoạt động bắt đầu được xảy ra với tốc độ cao. Đơn vị  
điều khiển logic có nhiệm vụ điều khiển tất cả mọi hoạt động. Nó khóa tất cả các  
mạch khác, trừ mạch giao động thạch anh. Sau vài mili giây đầu tiên tất cả đã sẵn  
8
sàng hoạt động.  
- Điện áp nguồn nuôi đạt đến giá trị tối đa của nó và tần số giao động trở nên ổn  
định. Các bit của các thanh ghi SFR cho biết trạng thái của tất cả các mạch trong vi  
điều khiển. Toàn bộ vi điều khiển hoạt động theo chu kỳ của chuỗi xung chính.  
- Thanh ghi bộ đếm chương trình (Program Counter) được xóa về 0. Câu lệnh từ  
địa chỉ này được gửi tới bộ giải mã lệnh sau đó được thực thi ngay lập tức.  
- Giá trị trong thanh ghi PC được tăng lên 1 và toàn bộ quá trình được lặp lại  
vài … triệu lần trong một giây.  
Hình 1.1 Cấu trúc bên trong của vi điều khiển.  
- Memory (bộ nhớ): là ROM/RAM lưu trữ chương trình hay các kết quả trung  
gian.  
+ Read Only Memory (ROM): Read Only Memory (ROM) là một loại bộ nhớ  
được sử dụng để lưu vĩnh viễn các chương trình được thực thi. Kích cỡ của  
chương trình có thể được viết phụ thuộc vào kích cỡ của bộ nhớ này. ROM có thể  
được tích hợp trong vi điều khiển hay thêm vào như là một chip gắn bên ngoài,  
tùy thuộc vào loại vi điều khiển. Cả hai tùy chọn có một số nhược điểm. Nếu ROM  
được thêm vào như là một chip bên ngoài, các vi điều khiển là rẻ hơn và các  
chương trình có thể tồn tại lâu hơn đáng kể. Đồng thời, làm giảm số lượng các  
9
chân vào/ra để vi điều khiển sử dụng với mục đích khác. ROM nội thường là  
nhỏ hơn và đắt tiền hơn, nhưng có thêm lá ghim sẵn để kết nối với môi trường  
ngoại vi. Kích thước của dãy ROM từ 512B đến 64KB.  
+ Random Access Memory (RAM): Random Access Memory (RAM) là một loại  
bộ nhớ sử dụng cho các dữ liệu lưu trữ tạm thời và kết quả trung gian được tạo ra  
và được sử dụng trong quá trình hoạt động của bộ vi điều khiển. Nội dung của bộ  
nhớ này bị xóa một khi nguồn cung cấp bị tắt.  
- Electrically Erasable Programmable ROM (EEPROM) (hình 1.2)  
EEPROM là một kiểu đặc biệt của bộ nhớ chỉ có ở một số loại vi điều khiển. Nội  
dung của nó có thể được thay đổi trong quá trình thực hiện chương trình (tương tự  
như RAM), nhưng vẫn còn lưu giữ vĩnh viễn, ngay cả sau khi mất điện  
(tương tự như ROM). Nó thường được dùng để lưu trữ các giá trị được tạo ra và  
được sử dụng trong quá trình hoạt động (như các giá trị hiệu chuẩn, mã, các giá trị  
để đếm, v.v..), mà cần phải được lưu sau khi nguồn cung cấp ngắt. Một bất lợi  
của bộ nhớ này là quá trình ghi vào tương đối chậm.  
Hình 1.2 Giao tiếp bộ nhớ  
- Bộ đếm chương trình (PC:Program Counter): Bộ đếm chương trình chứa địa  
chỉ chỉđến ô nhớ chứa câu lệnh tiếp theo sẽ được kích hoạt. Sau mỗi khi thực  
hức năng của  
hiện lệnh, giá trị của bộ đếm được tăng lên 1. C  
CPU là tiến hành các  
thao tác tính toán xử lý, đưa ra các tín hiệu địa chỉ, dữ liệu và điều khiển nhằm  
thực hiện một nhiệm vụ nào đó do người lập trình đưa ra thông qua các lệnh  
(Instructions).  
hức năng của  
- CPU-Central Processing Unit(Đơn vị xử lý trung tâm): C  
CPU là  
tiến hành các thao tác tính toán xử lý, đưa ra các tín hiệu địa chỉ, dữ liệu và điều  
khiển nhằm thực hiện một nhiệm vụ nào đó do người lập trình đưa ra thông qua  
các lệnh (Instructions).  
+ Bộ giải mã lệnh có nhiệm vụ nhận dạng câu lệnh và điều khiển các mạch khác  
theo lệnh đã giải mã. Việc giải mã được thực hiện nhờ có tập lệnh “instruction set”.  
Mỗi họ vi điều khiển thường có các tập lệnh khác nhau.  
10  
+ Thanh ghi tích lũy (Accumulator) là một thanh ghi SFR liên quan mật  
thiết với hoạt động của ALU. Nó lưu trữ tất cả các dữ liệu cho quá trình tính toán  
và lưu giá trị kết quả để chuẩn bị cho các tính toán tiếp theo. Một trong các thanh  
ghi SFR khác được gọi là thanh ghi trạng thái (Status Register) cho biết trạng  
thái của các giá trị lưu trong thanh ghi tích lũy.  
+ Arithmetical Logical Unit (ALU): Thực thi tất cả các thao tác tính toán số học và  
logic.  
- Các thanh ghi chức năng đặc biệt (SFR): Thanh ghi chức năng đặc biệt (Special  
Function Registers) là một phần của bộ nhớ RAM. Mục đích của chúng được định  
trước bởi nhà sản xuất và không thể thay đổi được. Các bit của chúng được liên kết  
vật lý tới các mạch trong vi điều khiển như bộ chuyển đổi A/D, modul truyền thông  
nối tiếp,… Mỗi sự thay đổi trạng thái của các bit sẽ tác động tới hoạt động của vi  
điều khiển hoặc các vi mạch.  
- Các cổng vào/ra (I/O Ports): Để vi điều khiển có thể hoạt động hữu ích, nó cần  
có sự kết nối với các thiết bị ngoại vi. Mỗi vi điều khiển sẽ có một hoặc một số  
thanh ghi (được gọi là cổng) được kết nối với các chân của vi điều khiển. Chúng có  
thể thay đổi chức năng, chiều vào/ra theo yêu cầu của người dùng.  
Address bus(  
địa chỉ): Là các đường tín hiệu song song 1 chiều nối từ  
CPU  
-
Bus  
đến bộ nhớ, CPU gửi giá trị địa chỉ của ô nhớ cần truy nhập (đọc/ghi) trên các  
đường tín hiệu này. Độ rộng của bus địa chỉ là n (là số các đường tín hiệu, với n có  
thể là 8, 18, 20, 24, 32 hay 64), khi đó số ô nhớ mà CPU có thể địa chỉ hố được sẽ  
n
là 2  
- Data bus(Bus dữ liệu): Là các đường tín hiệu song song 2 chiều, nhiều thiết bị  
khác nhau có thể được nối với bus dữ liệu, nhưng tại một thời điểm chỉ có 1 thiết  
bị duy nhất có thể được phép đưa dữ liệu lên bus. Độ rộng Bus dữ liệu là m(với  
m có thể là 4, 8, 16, 32 hay 64), khi đó số bit mà môi một chu kỳ đọc/ghi có thể  
truyền trên trên bus là m bits.  
- Control bus(Bus điều khiển): CPU gửi tín hiệu thông qua bus này để điều khiển  
mọi hoạt động của hệ thống. Các tín hiệu điều khiển thường là: đọc/ ghi bộ nhớ,  
đọc/ ghi cổng vào/ra,…  
1.1.3. Lĩnh vực và ứng dụng.  
Về cơ bản, vi điều khiển rất đơn giản. Chúng chỉ bao gồm tối thiểu một số  
thành phần sau:  
- Một bộ vi xử lý tối giản được sử dụng như bộ não của hệ thống.  
- Tùy theo công nghệ của mỗi hãng sản xuất, có thể có thêm bộ nhớ, các chân  
nhập/xuất tín hiệu, bộ đếm, bộ định thời, các bộ chuyển đổi tương tự/số (A/D), …  
- Tất cả chúng được đặt trong một vỏ chíp tiêu chuẩn.  
- Một phần mềm đơn giản có thể điều khiển được toàn bộ hoạt động của vi điều  
khiển và có thể dễ dàng cho người sử dụng nắm bắt.  
Dựa trên nguyên tắc cơ bản trên, rất nhiều họ vi điều khiển đã được phát triển và  
ứng dụng một cách thầm lặng nhưng mạnh mẽ vào mọi mặt của đời sống của con  
người. Một số ứng dụng cơ bản thành công có thể kể ra sau đây.  
11  
1.1.4. Sản phẩm dân dụng.  
+ Nhà thông minh: Cửa tự động, khóa số, tự động điều tiết ánh sáng thông minh  
(bật/tắt đèn theo thời gian, theo cường độ ánh sáng,...), điều khiển các thiết bị từ  
xa (qua điều khiển, qua tiếng vỗ tay,...), điều tiết hơi ẩm, điều tiết nhiệt độ, điều tiết  
không khí, gió. Hệ thống vệ sinh thông minh.  
+ Các máy móc dân dụng: Máy điều tiết độ ẩm cho vườn cây,buồng ấp trứng  
gà/vịt.Đồng hồ số, đồng hồ số có điều khiển theo thời gian.  
+ Các sản phẩm giải trí: Máy nghe nhạc, m áy chơi game, Đầu thu kỹ thuật số, đầu  
thu set-top-box,...  
Trong các thiết bị y tế.  
+ Máy móc thiết bị hỗ trợ: máy đo nhịp tim, máy đo đường huyết, máy đo huyết  
áp, điện tim đồ, điện não đồ,…  
+ Máy cắt/mài kính.  
+ Máy chụp chiếu (city, X-quang,...)  
Các sản phẩm công nghiệp.  
+ Điều khiển động cơ  
+ Đo lường (đo điện áp, đo dòng điện, áp suất, nhiệt độ,...)  
+ Cân băng tải, cân toa xe, cân ô tô,...  
+ Điều khiển các dây truyền sản xuất công nghiệp  
+ Làm bộ điều khiển trung tâm cho Robot  
Hướng phát triển.  
+ Kết hợp các bộ vi xử lý và vi điều khiển trong các sản phẩm hệ thống nhúng.  
+ Sử dụng tốt nhất các tính năng của vi điều khiển: tốc độ mà bộ vi điều khiển hỗ  
trợ, dung lượng bộ nhớ RAM và ROM trên chíp,...  
+ Tìm hiểu được khả năng phát triển các sản phẩm xung quanh.  
+ Nghiên cứu các bộ vi điều khiển 8051 từ các hãng khác nhau: 8751, AT89C51,  
DS500,...  
1.2. Khảo sát vi điều khiển Microchip  
1.2.1. Cấu hình vi điều khiển PIC 18f4520.  
12  
Hình 1.3 Sơ đồ khối của PIC18F4520  
1.2.2.  
Cấu trúc của vi điều khiển PIC 18f4520.  
Các khối chính trên PIC 18F4520 bao gồm:  
• Bộ xử lý trung tâm CPU(Central Processing Unit):  
- Tần số làm việc tối đa 40 MHz, sản xuất bằng công nghệ nanoWatt.  
- Thiết kế theo kiến trúc Havard, tập lệnh RISC.  
- Sử dụng kỹ thuật đường ống lệnh (Instruction Pipelining).  
13  
- Đơn vị logic học (ALU: Arithmetic Logical Unit).  
- Thanh ghi làm việc (WREG: work register ).  
- Bộ nhân bằng phần cứng (8x8 Multiply), kết quả được chứa trong cặp thanh ghi  
(PRODH, PRODL).  
- Thanh ghi đếm chương trình (PC: Program Counter) có 21 bit bao gồm thanh  
ghi PCL(PC-Low) chứa các bit từ 7-0, thanh ghi PCH(PC-High) chứa các bit từ  
15-8, thanh ghi PCU(PC-upper) chứa các bit từ 20-16.  
- Thanh ghi con trỏ ngăn xếp STKPTR (Stack Pointer).  
- 31 mức ngăn xếp (31 level stack).  
- Thanh ghi lựa chọn băng (BSR: Bank Select Register).  
- Thanh ghi con trỏ dữ liệu gián tiếp FSR (Indirect Data Memory Address  
Pointer).  
• Bộ nhớ (Memory):  
- Bộ nhớ chương trình (Program Memory) bao gồm 32 Kbytes bộ nhớ ROM  
(Read-only Memory) kiểu Flash.  
- Bộ nhớ dữ liệu (Data Memory) bao gồm 1536 byte SRAM (Static Random  
Access Memory), 256 byte EEPROM.  
• Bộ phát xung hệ thống (Oscillator): Nguồn xung từ bên ngoài hoặc từ bộ phát  
xung của hệ thống sẽ được đi qua bộ nhân hoặc chia tần số để lựa chọn lấy tần số  
thích hợp để làm xung hệ thống.  
- Nguồn xung chính được đưa vào chip qua chân OSC1 và OSC2.  
- Nguồn xung phụ được đưa vào chip qua các chân T1OSI, T1OSO.  
- Bộ phát xung nội INTRC tần số 31 kHz.  
- Bộ phát xung nội trên chíp tần số 8 MHz.  
• Watch dog Timer (WDT): WDT là một bộ timer có chức năng đặc biệt. Nếu  
được cho phép WDT sẽ hoạt động và khi tràn sẽ khởi động lại hệ thống. Thời  
gian khởi động lại hệ thống có thể lựa chọn được từ 4ms đến 131,072s. WDT sẽ  
được khởi tạo ở đầu chương trình, trong thân chương trình sẽ được ―chènǁ các lệnh  
reset WDT sao cho khi MC thực hiện các đúng tuần tự các lệnh, WDT chưa bị  
tràn. Mục đích chính của việc sử dụng WDT là tránh cho vi điều khiển vô tình thực  
hiện phải một vòng lặp chết (dead loop) mà không thoát ra được. Khi đó do  
không thực hiện được các lệnh reset WDT nên MC sẽ tràn, tự động reset lại hệ  
thống, thoát khỏi tình trạng "bị treo" trong vòng lặp chết. Ngoài ra do có thể  
hoạt động trong khi MC ―ngủǁ (Sleep Mode) nên WDT còn được sử dụng trong  
các ứng dụng tiết kiệm năng lượng.  
• Bộ nạp chương trình: Bộ nạp chương trình nối tiếp trên chip (Single - Supply In  
- Circuit Serial Programming) sẽ giúp nạp chương trình từ mạch nạp vào bộ nhớ  
ROM qua các chân PGM, PGC và PGD.  
• Bộ Debugger (In-Circuit Debugger): Mạch Debugger trên chíp sẽ giúp người lập  
trình kiểm soát lỗi chương trình bằng cách cho vi điều khiển hoạt động ở chế độ  
chạy từng lệnh, nhóm lệnh hay toàn bộ chương trình.  
• Khối phát hiện tín hiệu reset: Mạch phát hiện tín hiệu reset có khả năng phát  
14  
hiện 03 nguồn reset:  
- Reset từ chân MCLR.  
- Reset khi bật nguồn (POR: Power-on Reset).  
- Reset khi nguồn yếu (BOR : Brown-out Reset).  
• Khối quản lý lỗi bộ phát xung (Fail-Safe Clock Monitor): Khối này được sự  
dụng để quản lý an toàn bộ phát xung hệ thống.  
• Khối định thời khởi động bộ phát xung (Oscillator Start-up Timer): Khối này sử  
dụng để tạo thời gian trễ chờ cho bộ phát xung ổn định.  
• Thiết bị ngoại vi (Peripheral): PIC18f4520 được tích hợp các thiết bị ngoại vi  
sau:  
- Bộ phát hiện điện áp cao/thấp HLVD(High/low-Voltage Detect).  
- Bộ nhớ lưu dữ liệu khi tắt nguồn EEPROM.  
- 04 bộ đếm, định thời 16 bit: Timer0, Timer1, Timer2 và Timer3.  
- 01 bộ so sánh tín hiệu tương tự (Comparator).  
- 02 bộ CCP1, CCP2 (Capture, Compare, Pwm : Chụp, So sánh, xung Pwm); 01  
bộ ECCP (Enhanced CCP).  
- 01 cổng truyền thông nối tiếp đồng bộ (Master Synchronous Serial Port) có thể  
hoạt động được ở chế độ SPI hoặc I2C.  
- 01 cổng truyền thông nối tiếp đồng bộ/không đồng bộ tăng EUSART (Enhanced  
Universal Synchronous Asynchronous Receiver Transmitter), giúp vi điều khiển  
PIC có thể giao tiếp với nhau hoặc giao tiếp với cổng COM của máy tính.  
- 13 kênh biến đổi tương tự - số (ADC) độ phân giải 10 bit.  
• Khối giao tiếp vào/ra số:  
Vi điều khiển PIC18F4520 có 5 cổng vào/ra A, B, C, D và E. Mỗi cổng có một  
thanh ghi đệm dữ liệu tương ứng là PORTA, PORTB, PORTC, PORTD và  
PORTE, các thanh ghi này được định địa chỉ theo byte và theo bit.  
- PORTA : RA7 - RA0.  
- PORTB : RB7 - RB0.  
- PORTC : RC7 - RC0.  
- PORTD : RD3 - RD0.  
- PORTE : RE3-RE0.  
1.2.3. Khảo sát sơ đồ chân vi điều khiển PIC 18f4520.  
- Sơ đồ chân dạng PDIP (Lead Plastic Dual In-Line Package) hai hàng chân cắm  
hai bên.  
15  
Hình 1.4 Sơ đồ chân PIC 18F4520 dạng PDIP  
- TQFP (Thin Quad Flat Package) bốn hàng chân dán vỏ mỏng  
Hình 1.5 Sơ đồ chân PIC 18F4520 dạng TQFP  
- Sơ đồ chân dạng QFN (Quad Flat No-lead) bốn hàng chân dán dưới đế  
16  
Hình 1.6 Sơ đồ chân PIC 18F4520 dạng QFN  
Pin Number  
Pin  
Pin Name  
Description  
Type  
PDIP QFN TQFP  
1
18  
18  
MCLR/VPP/RE3  
MCLR  
Master Clear (input) or programming voltage (input).  
Master Clear (Reset) input. This pin is an active-low  
Reset to the device.  
I
VPP  
RE3  
Programming voltage input.  
P
I
I
Digital input.  
OSC1/CLKI/RA7  
OSC1  
13  
32  
30  
Oscillator crystal or external clock input.  
Oscillator crystal input or external clock source input.  
ST buffer when configured in RC mode; analog  
otherwise.  
I
CLKI  
RA7  
External clock source input. Always associated with  
pin function OSC1. (See related OSC1/CLKI,  
OSC2/CLKO pins.)  
I/O  
General purpose I/O pin.  
OSC2/CLKO/RA6  
OSC2  
14  
33  
31  
O
O
Oscillator crystal or clock output.  
Oscillator crystal output. Connects to crystal or  
resonator in Crystal Oscillator mode. In RC mode,  
OSC2 pin outputs CLKO which has 1/4 the frequency  
of OSC1 and denotes the instruction cycle rate.  
General purpose I/O pin.  
CLKO  
I/O  
RA6  
Pin Number  
Pin  
Type  
Pin Name  
Description  
PDIP QFN TQFP  
17  
PORTA is a bidirectional I/O port.  
RA0/AN0  
RA0  
2
3
4
19  
20  
21  
19  
20  
21  
I/O  
I/O  
I/O  
Digital I/O.  
AN0  
I
I
Analog input 0.  
RA1/AN1  
RA1  
Digital I/O.  
Analog input 1.  
AN1  
RA2/AN2/VREF-/CVREF  
RA2  
Digital I/O.  
AN2  
VREF-  
I
I
Analog input 2.  
A/D reference voltage (low) input.  
CVREF  
RA3/AN3/VREF+  
RA3  
AN3  
VREF+  
RA4/T0CKI/C1OUT  
O
Comparator reference voltage output.  
5
6
7
22  
23  
24  
22  
23  
24  
I/O  
Digital I/O.  
Analog input 3.  
A/D reference voltage (high) input.  
I
I
RA4  
T0CKI  
I/O  
Digital I/O.  
Timer0 external clock input.  
I
C1OUT  
RA5/AN4/SS/HLVDIN/  
O
Comparator 1 output.  
C2OUT  
RA5  
I/O  
Digital I/O.  
Analog input 4.  
SPI slave select input.  
High/Low-Voltage Detect input.  
AN4  
SS  
HLVDIN  
I
I
I
C2OUT  
RA6  
O
Comparator 2 output.  
See the OSC2/CLKO/RA6 pin.  
RA7  
See the OSC1/CLKI/RA7 pin.  
Pin Number  
Pin  
Type  
Pin Name  
Description  
PDIP QFN TQFP  
PORTB is a bidirectional I/O port. PORTB can be  
software programmed for internal weak pull-ups on all  
inputs.  
33  
9
8
RB0/INT0/FLT0/AN12  
Digital I/O.  
RB0  
External interrupt 0.  
PWM Fault input for Enhanced CCP1.  
Analog input 12.  
INT0  
FLT0  
AN12  
I/O I I I  
34  
35  
36  
10  
11  
12  
9
RB1/INT1/AN10  
RB1  
I/O  
I
I
Digital I/O.  
External interrupt 1. Analog input 10.  
INT1  
AN10  
10  
11  
RB2/INT2/AN8  
RB2  
I/O  
I
I
Digital I/O.  
External interrupt 2.  
Analog input 8.  
INT2  
AN8  
RB3/AN9/CCP2  
RB3  
Digital I/O.  
Analog input 9.  
Capture 2 input/Compare 2 output/PWM2 output.  
I/O I  
I/O  
AN9  
CCP2(1)  
18  
37  
38  
39  
14  
15  
16  
14  
15  
16  
RB4/KBI0/AN11  
RB4  
I/O  
Digital I/O.  
KBI0  
I
I
Interrupt-on-change pin.  
Analog input 11.  
AN11  
RB5/KBI1/PGM  
RB5  
I/O I  
I/O  
Digital I/O. Interrupt-on-change pin.  
Low-Voltage ICSP™ Programming enable pin.  
KBI1  
PGM  
RB6/KBI2/PGC  
RB6  
I/O I  
I/O  
KBI2  
PGC  
Digital I/O.  
Interrupt-on-change pin.  
In-Circuit Debugger and ICSP programming clock pin.  
RB7/KBI3/PGD  
RB7  
40  
17  
17  
I/O I  
I/O  
KBI3  
Digital I/O.  
Interrupt-on-change pin.  
In-Circuit Debugger and ICSP programming data pin.  
PGD  
Pin Number  
Pin  
Type  
Pin Name  
Description  
PDIP QFN TQFP  
PORTC is a bidirectional I/O port.  
RC0/T1OSO/T13CKI  
RC0  
15  
16  
17  
18  
34  
35  
36  
37  
32  
35  
36  
37  
I/O  
O
Digital I/O.  
Timer1 oscillator output.  
T1OSO  
T13CKI  
I
Timer1/Timer3 external clock input.  
RC1/T1OSI/CCP2  
RC1  
T1OSI  
CCP2(2)  
RC2/CCP1/P1A  
RC2  
I/O  
I
Digital I/O.  
Timer1 oscillator input.  
I/O  
Capture 2 input/Compare 2 output/PWM2 output.  
I/O  
I/O  
O
Digital I/O.  
CCP1  
P1A  
Capture 1 input/Compare 1 output/PWM1 output.  
Enhanced CCP1 output.  
RC3/SCK/SCL  
RC3  
SCK  
I/O  
I/O  
Digital I/O.  
Synchronous serial clock input/output for SPI mode.  
Synchronous serial clock input/output for I2C™ mode.  
SCL  
I/O  
RC4/SDI/SDA  
RC4  
23  
42  
42  
I/O  
I
Digital I/O.  
SDI  
SPI data in.  
SDA  
I/O  
I2C data I/O.  
RC5/SDO  
RC5  
24  
25  
43  
44  
43  
44  
I/O  
O
Digital I/O.  
SPI data out.  
SDO  
RC6/TX/CK  
RC6  
I/O  
O
Digital I/O.  
EUSART asynchronous transmit.  
TX  
CK  
I/O  
EUSART synchronous clock (see related RX/DT).  
RC7/RX/DT  
26  
1
1
RC7  
RX  
I/O  
I
Digital I/O.  
EUSART asynchronous receive.  
DT  
I/O  
EUSART synchronous data (see related TX/CK).  
19  
Pin Number  
Pin  
Type  
Pin Name  
Description  
PDIP QFN TQFP  
PORTD is a bidirectional I/O port or a Parallel Slave Port  
(PSP) for interfacing to a microprocessor port. These  
pins have TTL input buffers when PSP module is  
enabled.  
RD0/PSP0  
19  
20  
21  
22  
27  
28  
38  
39  
40  
41  
2
38  
39  
40  
41  
2
RD0  
PSP0  
RD1/PSP1  
RD1  
PSP1  
RD2/PSP2  
RD2  
PSP2  
RD3/PSP3  
RD3  
I/O  
I/O  
Digital I/O.  
Parallel Slave Port data.  
I/O  
I/O  
Digital I/O.  
Parallel Slave Port data.  
I/O  
I/O  
Digital I/O.  
Parallel Slave Port data.  
I/O  
I/O  
Digital I/O.  
Parallel Slave Port data.  
PSP3  
RD4/PSP4  
RD4  
I/O  
I/O  
Digital I/O.  
Parallel Slave Port data.  
PSP4  
RD5/PSP5/P1B  
RD5  
3
3
I/O  
I/O  
Digital I/O.  
Parallel Slave Port data.  
PSP5  
P1B  
O
Enhanced CCP1 output.  
RD6/PSP6/P1C  
RD6  
29  
30  
4
5
4
5
I/O  
I/O  
O
Digital I/O.  
PSP6  
Parallel Slave Port data.  
P1C  
Enhanced CCP1 output.  
RD7/PSP7/P1D  
RD7  
I/O  
I/O  
Digital I/O.  
Parallel Slave Port data.  
PSP7  
P1D  
O
Enhanced CCP1 output.  
Pin Number  
Pin  
Type  
Pin Name  
Description  
PDIP QFN TQFP  
PORTE is a bidirectional I/O port.  
8
25  
26  
27  
25  
26  
27  
RE0/RD/AN5  
RE0  
Digital I/O.  
I/O  
I
RD  
Read control for Parallel Slave Port (see also WR and  
CS pins).  
Analog input 5.  
AN5  
I
9
RE1/WR/AN6  
RE1 WR  
Digital I/O.  
I/O  
I
Write control for Parallel Slave Port (see CS and RD  
pins).  
Analog input 6.  
AN6  
I
10  
Digital I/O.  
I/O  
I
RE2/CS/AN7 RE2 CS  
Chip Select control for Parallel Slave Port (see related  
RD and WR).  
Analog input 7.  
AN7  
RE3  
I
—
—
—
—
See MCLR/VPP/RE3 pin.  
20  
Tải về để xem bản đầy đủ
pdf 102 trang Thùy Anh 19180 Free
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình nghề Điện tử công nghiệp - Môđun: Kỹ thuật vi điều khiển", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfgiao_trinh_nghe_dien_tu_cong_nghiep_modun_ky_thuat_vi_dieu_k.pdf