Giáo trình mô đun Vi điều khiển 2 - Nghề: Công nghệ kỹ thuật điều khiển và tự động hóa

CỤC HẢNG HẢI VIỆT NAM  
TRƯỜNG CAO ĐẲNG HÀNG HẢI I  
GIÁO TRÌNH  
MÔ ĐUN:VI ĐIỀU KHIỂN 2  
NGHỀ: CÔNG NGHỆ KỸ THUẬT ĐIỀU KHIỂN  
VÀ TỰ ĐỘNG HÓA  
TRÌNH ĐỘ CAO ĐẲNG  
Ban hành kèm theo Quyết định số: ngày .....tháng..... năm... của Hiệu trưởng  
trường Cao đẳng Hàng hải I  
Hải Phòng  
1
TUYÊN BỐ BẢN QUYỀN  
Tài liệu này thuộc loại sách giáo trình nên các nguồn thông tin có thể được phép  
dùng nguyên bản hoặc trích dùng cho các mục đích về đào tạo và tham khảo.  
Mọi mục đích khác mang tính lệch lạc hoặc sử dụng với mục đích kinh doanh thiếu  
lành mạnh sẽ bị nghiêm cấm.  
2
LỜI GIỚI THIỆU  
Giáo trình Mô đun Vi điều khiển 2 là một trong những giáo trình mô đun đào  
tạo chuyên ngành được biên soạn theo nội dung chương trình khung được Hiệu  
trưởng trường Cao đẳng Hàng hải ban hành dành cho hệ Cao đẳng nghề công nghệ  
kỹ thuật điều khiển và tự động hóa.  
Nội dung biên soạn ngắn gọn, dễ hiểu, tích hợp kiến thức và kỹ năng chặt chẽ  
với nhau, logíc.  
Khi biên soạn, tác giả đã cố gắng cập nhật những kiến thức mới có liên quan đến  
nội dung chương trình đào tạo và phù hợp với mục tiêu đào tạo, nội dung lý thuyết  
và thực hành được biên soạn gắn với nhu cầu thực tế trong sản xuất đồng thời có  
tính thực tiễn cao. Nội dung giáo trình được biên soạn với dung lượng thời gian  
đào tạo 90 giờ gồm có:  
Bài 1: Tổng quan về vi điều khiển PIC  
Bài 2: Vi điều khiển PIC 16F877A  
Bài 3: Ngôn ngữ lập trình CS1  
Bài 4: Thiết kế mạch điều khiển LED đơn  
Bài 5: Thiết kế mạch điều khiển màn hình LCD16x2  
Bài 6: Thiết kế mạch điều khiển động cơ bước  
Bài 7: Thiết kế mạch điều khiển màn hình led 7 thanh  
Bài 8: Thiết kế mạch điều khiển đọc dữ liệu từ bàn phím Hexa  
Bài 9: Thiết kế mạch điều khiển màn hình LED ma trận  
Bài 10: Thiết kế mạch điều khiển ngắt  
Bài 11: Thiết kế mạch đọc và kiểm tra nút nhấn  
Mặc dù đã cố gắng tổ chức biên soạn để đáp ứng được mục tiêu đào tạo nhưng  
không tránh được những khiếm khuyết. Rất mong nhận được đóng góp ý kiến của  
các thầy, cô giáo, bạn đọc để người biên soạn sẽ hiệu chỉnh hoàn thiện hơn. Các ý  
kiến đóng góp xin gữi về Trường Cao đẳng Hàng hải I số 498 Đà Nẵng, Hải An,  
Hải Phòng  
Hải Phòng, ngày tháng năm 201  
Tham gia biên soạn  
Chủ biên : Ths.Nguyễn Thị Ngọc Hà  
3
MỤC LỤC  
Nội dung  
TT  
1
Trang  
3
Lời giới thiệu  
Mục lục  
2
4
3
Danh mục bảng, biểu, hình ảnh  
Nội dung  
5
4
7
9
Bài 1: Tổng quan về vi điều khiển PIC  
15  
34  
50  
56  
68  
75  
83  
Bài 2: Vi điều khiển PIC 16F877A  
Bài 3: Ngôn ngữ lập trình C51  
Bài 4: Thiết kế mạch điều khiển LED đơn  
Bài 5: Thiết kế mạch điều khiển màn hình LCD16x2  
Bài 6: Thiết kế mạch điều khiển động cơ bước  
Bài 7: Thiết kế mạch điều khiển màn hình led 7 thanh  
Bài 8: Thiết kế mạch điều khiển đọc dữ liệu từ bàn phím  
Hexa  
89  
Bài 9: Thiết kế mạch điều khiển màn hình LED ma trận  
Bài 10: Thiết kế mạch điều khiển ngắt  
100  
110  
120  
Bài 11: Thiết kế mạch đọc và kiểm tra nút nhấn  
Tài liệu tham khảo  
5
4
Danh mục bảng biểu  
TT  
Tên bảng  
Trang  
58  
Bảng 5.1 Bảng chức năng các chân của LCD16x2  
Bảng 5.2 Bảng mã lệnh điều khiển LCD16x2  
1
2
3
4
5
59  
Bảng 7.1 Bảng mã hiển thị số lên led 7 thanh  
Bảng 7.2 Bảng mã điều khiển led 7 thanh  
77  
77  
Bảng 8.1 Bảng mã điều khiển và mã dữ liệu đầu ra bàn phím  
84  
Hexa  
Bảng 9.1 Bảng mã điều khiển quét hàng của led ma trận  
6
7
8
91  
91  
Bảng 9.2 Bảng mã phông chữ hiển thị trên led ma trận  
Bảng 11.1 Bảng mã số liệu của nút nhấn  
111  
5
Danh mục hình vẽ  
TT  
Tên hình vẽ  
Trang  
1
10  
Hình 1.1 Kiến trúc Von-Neuman  
Hình 1.2 Kiến trúc Havard  
2
3
11  
12  
Hình 1.3 Cơ chế pipelining  
Hình 2.1 Vi điều khiển PIC16F877A/PIC16F874A và các  
dạng sơ đồ chân  
4
16  
5
18  
19  
20  
25  
26  
27  
30  
30  
31  
32  
50  
Hình 2.2 Sơ đồ khối vi điều khiển PIC16F877A.  
Hình 2.3 Bộ nhớ chương trình  
6
7
Hình 2.4 Sơ đồ bộ nhớ dữ liệu PIC16F877A  
Hình 2.5 Sơ đồ khối của Timer0  
8
9
Hình 2.6 Sơ đồ khối của Timer1  
10  
11  
12  
13  
14  
15  
Hình 2.7 Sơ đồ khối Timer2.  
Hình 2.8 Sơ đồ khối bộ chuyển đổi ADC.  
Hình 2.9 Các cách lưu kết quả chuyển đổi AD.  
Hình 2.10 Nguyên lí hoạt động của một bộ so sánh đơn giản.  
Hình 2.11 Các chế độ hoạt động của bộ comparator.  
Hình 4.1 Sơ đồ nguyên lý mạch led đơn  
16  
17  
18  
57  
69  
Hình 5.1 Sơ đồ nguyên lý màn hình LCD16x2  
Hình 6.1 Sơ đồ nguyên lý mạch điều khiển động cơ bước.  
Hình 6.2 Hình ảnh thực tế động cơ bước  
69  
70  
76  
19 Hình 6.3 Giản đồ xung điều khiển động cơ bước  
20  
Hình 7.1 Sơ đồ nguyên lý màn hình LED 7 thanh.  
6
21  
22  
23  
24  
83  
Hình 8.1 Sơ đồ nguyên lý mạch bàn phím Hexa.  
90  
Hình 9.1 Sơ đồ nguyên lý màn hình LED ma trận.  
Hình 10.1 Sơ đồ mạch các chân vào ra của AT89S51  
Hình 11.1 Sơ đồ nguyên lý mạch nút nhấn.  
101  
110  
7
GIÁO TRÌNH MÔ ĐUN  
Tên mô đun: Vi điều khiển 2  
Mã mô đun: MĐ 6510305.31  
Vị trí, tính chất, ý nghĩa và vai trò của mô đun:  
- Vị trí của mô đun: Mô đun được bố trí dạy sau khi học xong môn học  
mô đun, môn học kỹ thuật cơ sở  
- Tính chất của mô đun: Là mô đun kỹ thuật, thuộc các mô đun đào tạo nghề  
bắt buộc.  
- ꢀ nghꢁa và vai trò của mô đun: Trong các dây chuyền sản xuất, cũng như  
các thiết bị tự động đơn lẻ và các hệ nhúng hiện nay việc ứng dụng vi điều khiển  
đặc biệt là các họ vi điều khiển tích hợp nhiều khối ngoại vi trong các lꢁnh vực này  
là rất phổ biến nhằm tăng tính linh hoạt, độ chính xác, giảm giá thành cũng như độ  
ổn định của hệ thống.  
Mục tiêu của mô đun:  
Về kiến thức:  
- Trình bày được cấu trúc, ứng dụng cả vi điều khiển trong công nghiệp.  
- Kiểm tra và viết được các chương trình điều khiển.  
Về kỹ năng:  
- Sử dụng được các thiết bị dùng vi điều khiển.  
- Viết được các chương trình điều khiển  
- Xác định được các nguyên nhân gây ra hư hỏng xảy ra trong thực tế.  
Năng lực tự chủ và trách nhiệm:  
- Rèn luyện cho sinh viên thái độ nghiêm túc, cẩn thận, chính xác trong học  
tập và thực hiện công việc  
Nội dung của mô đun:  
8
BÀI 1: TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC  
MĐ 6510305.31.01  
Giới thiệu  
Bài này giới thiệu cho người học về vi điều khiển Pic. Pic là một họ vi điều  
khiển RISC được sản xuất bởi công ty Microchip Technology. Dòng PIC đầu tiên  
là PIC1650 được phát triển bởi Microelectronics Divisiont. PIC bắt nguồn từ chữ  
viết tắt của “Programmable IntelligentComputer” (Máy tính khả trình thông minh)  
là một sản phẩm của hãng General Instruments đặt cho dòng sản phẩm đầu tiên của  
họ là PIC1650  
Mục tiêu  
- Giúp người học có thể hiểu rõ hơn về vi điều khiển Pic  
- Biết được kiến trúc và kiến trúc của vi điều khiển Pic.  
- Định hướng được các thao tác cho người học về các dòng Pic và cách lựa  
chọn vi điều khiển Pic  
Nội dung  
1. Pic là gì  
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.  
2. Kiến trúc 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 Havard.  
2.1 Kiến trúc Von Neuman  
Còn gọi là kiến trúc Princeton, cách tổ chức bộ nhớ của kiểu kiến trúc này là cả  
bộ nhớ Bus dữ liệu. Thời kỳ đầu của kỷ nguyên máy tính, bộ nhớ không có độ tin  
cậy như hiện nay và hay tạo ra những lỗi hệ thống. Chính vì vậy mà kiểu kiến trúc  
này được ưa chuộng, bởi vì nó được dễ dàng thiết kế, nâng cao độ tin cậy của hệ  
thống và dễ dàng thay thế những vùng nhớ bị lỗi kỹ thuật. Nhờ những lợi thế đó  
mà trong một thời gian kiểu kiến trúc này đã được thương mại và sản xuất. Tuy  
nhiên nó cũng có một số nhược điểm: hạn chế băng thông, thực hiện nhiều lần lấy  
dữ liệu chỉ cho một lệnh, không thể thực hiện song song thao tác này. Chính vì sự  
phổ biến đầu tiên của kiến trúc Von Neumann mà hầu hết các loại Vi Điều Khiến  
9
đều được xây dựng quanh cấu trúc này, mặc dù giá thành bộ nhớ hiện nay đã rẻ  
hơn rất nhiều và độ tin cậy cũng tăng lên rất nhiều.  
Von Neumann  
Architecture  
8-bit  
Bus  
Program  
& Data  
Memory  
CPU  
Hình 1.1: Kiến trúc Von-Neuman  
2.2 Kiến trúc Harvard  
Havard có không gian nhớ dành cho bộ nhớ dữ liệu và bộ nhớ chương trình  
riêng biệt. Lợi thế và hiệu năng chính của kiểu dữ liệu này là nó có 2 Bus dữ liệu  
riêng biệt hoạt động đồng thời phục vụ cho bộ nhớ dữ liệu và bộ nhớ chương trình:  
Trong khi CPU lấy dữ liệu từ bộ nhớ chương trình, thì nó vẫn có thể đọc ghi dữ  
liệu ở vùng nhớ dữ liệu.  
Một lợi thế khác của kiến trúc Harvard là độ rộng Bus bộ nhớ chương trình  
và Bus dữ liệu có thể khác nhau. Không phải tất tất cả các loại Vi điều khiển có  
kiến trúc Harvard điều có lợi thế này, nhưng PIC thì có. Do bus có độ rộng khác  
nhau nên độ rộng Bus bộ nhớ chương trình có thể rộng hơn bộ nhớ dữ liệu. Với  
PIC-8bit thì Bus dự liệu luôn là 8-bit, tuy nhiên Bus bộ nhớ chương trình có thể  
rộng hơn, bao nhiêu tùy thuộc và mục đích của loại PIC đó. Với PIC 8-bit thì có 3  
loại được phân chia thành loại có độ rộng Bus bộ nhớ chương trình là 12-bit, 14-  
bit, và 16-bit. Bus bộ nhớ chương trình rộng hơn sẽ đưa dữ liệu từ bộ nhớ chương  
trình nhiều hơn cũng trong một chu kỳ máy.  
10  
Harvard  
Architecture  
8-bit  
Data  
Memory  
CPUBus  
14-bit  
Bus  
Program  
Memory  
Hình 1.2: Kiến trúc bộ nhớ kiểu harvard  
.
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 (Complex Instruction 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).  
4. Pipelining  
Đây chính là cơ chế xử lí lệnh của các vi điều khiển PIC. Một chu kì lệnh của  
vi điều khiển sẽ bao gồm 4 xung clock. Ví dụ ta sử dụng oscillator có tần số 4  
MHZ, thì xung lệnh sẽ có tần số 1 MHz (chu kì lệnh sẽ là 1us). Giả sử ta có một  
11  
đoạn chương trình như sau:  
1.MOVLW 55h  
2.MOVWF PORTB  
3.  
4.  
5.  
CALL  
BSF  
SUB_1  
PORTA,BIT3  
Instruction @ address SUB_1  
Ở đây ta chỉ bàn đến qui trình vi điều khiển xử lí đoạn chương trình trên thông  
qua từng chu kì lệnh. Quá trình trên sẽ được thực thi như sau  
Hình 1.3: Cơ chế pipelining  
Bước 1: TCY0: đọc lệnh 1  
Bước 2: TCY1: thực thi lệnh 1, đọc lệnh 2  
Bước 3: TCY2: thực thi lệnh 2, đọc lệnh 3  
Bước 4: TCY3: thực thi lệnh 3, đọc lệnh 4.  
Bước 5: TCY4: vì lệnh 4 không phải là lệnh sẽ được thực thi theo qui trình thực  
thi của chương trình (lệnh tiếp theo được thực thi phải là lệnh đầu tiên tại label  
SUB_1) nên chu kì thực thi lệnh này chỉ được dùng để đọc lệnh đầu tiên tại label  
SUB_1. Như vậy có thể xem lênh 3 cần 2 chu kì xung clock để thực thi.  
Bước 6: TCY5: thực thi lệnh đầu tiên của SUB_1 và đọc lệnh tiếp theo của  
SUB_1  
12  
Quá trình này được thực hiện tương tự cho các lệnh tiếp theo của chương trình.  
Thông thường, để thực thi một lệnh, ta cần một chu kì lệnh để gọi lệnh đó, và một  
chu kì xung clock nữa để giải mã và thực thi lệnh. Với cơ chế pipelining được trình  
bày ở trên, mỗi lệnh xem như chỉ được thực thi trong một chu kì lệnh. Đối với các  
lệnh mà quá trình thực thi nó làm thay đổi giá trị thanh ghi PC (Program Counter)  
cần hai chu kì lệnh để thực thi vì phải thực hiện việc gọi lệnh ở địa chỉ thanh ghi  
PC chỉ tới. Sau khi đã xác định đúng vị trí lệnh trong thanh ghi PC, mỗi lệnh chỉ  
cần một chu kì lệnh để thực thi xong.  
5.Các dòng Pic và cách lựa chọn vi điều khiển 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: PIC có bộ nhớ EPROM (chỉ có 16C84 là EEPROM) F:PIC có bộ nhớ flash  
PIC có bộ nhớ flash hoạt động ở điện áp thấp LV: tương tự như LF, đây là kí  
hiệu cũ Bên cạnh đó một số vi điệu khiển có kí hiệu xxFxxx là EEPROM, nếu có  
thêm chữ A ở cuối là flash (ví dụ PIC16F877 là EEPROM, còn PIC16F877A là  
flash).  
Ngoài ra còn có thêm một dòng vi điều khiển PIC mới là dsPIC.  
Ở Việt Nam phổ biến nhất là các họ vi điều khiển PIC do hãng Microchip sản  
xuất. Cách lựa chọn một vi điều khiển PIC phù hợp:  
Trước hết cần chú ý đến số chân của vi điều khiển cần thiết cho ứng dụng. Có  
nhiều vi điều khiển PIC với số lượng chân khác nhau, thậm chí có vi điều khiển chỉ  
có 8 chân, ngoài ra còn có các vi điều khiển 28, 40, 44, …chân. Cần chọn vi điều  
khiển PIC có bộ nhớ flash để có thể nạp xóa chương trình được nhiều lần hơn.Tiếp  
theo cần chú ý đến các khối chức năng được tích hợp sẵn trong vi điều khiển, các  
chuẩn giao tiếp bên trong. Sau cùng cần chú ý đến bộ nhớ chương trình mà vi điều  
khiển cho phép. Ngoài ra mọi thông tin về cách lựa chọn vi điều khiển PIC có thể  
được tìm thấy trong cuốn sách “Select PIC guide” do nhà sản xuất Microchip cung  
cấp.  
6. Ngôn ngữ lậ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,…  
13  
7. 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. Mạch nạp Universal của Williem: đây không phải là mạch nạp chuyên  
dụng dành cho PIC như P16PRO40.  
Các mạch nạp kể trên có ưu điểm rất lớn là đơn giản, rẻ tiền, hoàn toàn có thể tự  
lắp ráp một cách dễ dàng, và mọi thông tin về sơ đồ mạch nạp, cách thiết kế, thi  
công, kiểm tra và chương trình nạp đều dễ dàng tìm được và download miễn phí  
thông qua mạng Internet. Tuy nhiên các mạch nạp trên có nhược điểm là hạn chế  
về số vi điều khiển được hỗ trợ, bên cạnh đó mỗi mạch nạp cần được sử dụng với  
một chương trình nạp thích hợp.  
Câu hỏi:  
Câu 1: Trình bày kiến trúc Havard và kiến trúc Von-Neuman của vi điều khiển PIC  
Câu 2: Trình bày cách lựa chọn 1 vi điều khiển PIC  
Câu 3: Trình bày số mạch nạp cho vi điều khiển PIC.  
Yêu cầu về đánh giá kết quả học tập:  
Đánh giá về kiến thức: Tự luận  
14  
Bài 2 VI ĐIỀU KHIỂN PIC16F877A  
MĐ 6510305.31.02  
Giới thiệu:  
Bài này trình bày về đặc tính và cấu trúc của họ vi điều khiển của công ty  
Micrrochip thông qua họ vi mạch thông dụng là PIC16F877A. Mô tả cấu trúc vi  
điều khiển và các ngoại vi tích hợp của vi điều khiển PIC 16F877A.  
Mục tiêu:  
- Trình bày được các tính năng của họ PIC dùng ROM và flash ROM  
- Hiểu cấu tạo, nguyên lý hoạt động các khối chức năng tích hợp trong  
PIC16F877A. Biết được sơ đồ chân và tín hiệu các chân của PIC16F877A  
- Rꢂn luyện được tính chính xác, cẩn thận  
Nội dung:  
1. Sơ đồ chân vi điều khiển PIC16F877A  
15  
Hình 2.1 Vi điều khiển PIC16F877A/PIC16F874A và các  
dạng sơ đồ chân  
16  
2. Một vài thông số về vi điều khiển Pic16f877A  
Đây là vi điều khiển thuộc họ PIC16Fxxx với tập lệnh gồm 35 lệnh có độ dài 14  
bit. Mỗi lệnh đều được thực thi trong một chu kì xung clock. Tốc độ hoạt động tối  
đa cho phép là 20 MHz với một chu kì lệnh là 200ns. Bộ nhớ chương trình 8Kx14  
bit, bộ nhớ dữ liệu 368x8 byte RAM và bộ nhớ dữ liệu EEPROM với dung lượng  
256x8 byte. Số PORT I/O là 5 với 33 pin I/O. Các đặc tính ngoại vi bao gồm các  
khối chức năng sau: Timer0: bộ đếm 8 bit với bộ chia tần số 8 bit.  
Timer1: bộ đếm 16 bit với bộ chia tần số, có thể thực hiện chức năng đếm dựa  
vào xung clock ngoại vi ngay khi vi điều khiển hoạt động ở chế độ sleep.  
Timer2: bộ đếm 8 bit với bộ chia tần số, bộ postcaler. Hai bộ Capture/so  
sánh/điều chế độ rộng xung. Các chuẩn giao tiếp nối tiếp SSP (Synchronous Serial  
Port), SPI và I2C. Chuẩn giao tiếp nối tiếp USART với 9 bit địa chỉ.  
Cổng giao tiếp song song PSP (Parallel Slave Port) với các chân điều khiển RD,  
WR, CS ở bên ngoài.Các đặc tính Analog: 8 kênh chuyển đổi ADC 10 bit. Hai bộ  
so sánh. Bên cạnh đó là một vài đặc tính khác của vi điều khiển như: Bộ nhớ flash  
với khả năng ghi xóa được 100.000 lần. Bộ nhớ EEPROM với khả năng ghi xóa  
được 1.000.000 lần. Dữ liệu bộ nhớ EEPROM có thể lưu trữ trên 40 năm. Khả  
năng tự nạp chương trình với sự điều khiển của phần mềm. Nạp được chương trình  
ngay trên mạch điện ICSP (In Circuit Serial Programming) thông qua 2 chân.  
Watchdog Timer với bộ dao động trong. Chức năng bảo mật mã chương trình.  
Chế độ Sleep. Có thể hoạt động với nhiều dạng Oscillator khác nhau.  
17  
3. Sơ đồ khối vi điều khiển Pic16f877A  
Hình 2.2 Sơ đồ khối vi điều khiển PIC16F877A.  
18  
4. Tổ chức bộ nhớ  
Cấu trúc bộ nhớ của vi điều khiển PIC16F877A bao gồm bộ nhớ chương  
trình (Program memory) và bộ nhớ dữ liệu (Data Memory).  
- Bộ nhớ chương trình  
Bộ nhớ chương trình của vi điều  
khiển PIC16F877A là bộ nhớ  
flash, dung lượng bộ nhớ 8K  
word (1 word = 14 bit) và được  
phân thành nhiều trang (từ  
page0 đến page 3) . Như vậy bộ  
nhớ chương trình có khả năng  
chứa được 8*1024 = 8192 lệnh  
(vì một lệnh sau khi mã hóa sẽ  
có dung lượng 1 word (14 bit).  
Để mã hóa được địa chỉ của 8K  
word bộ nhớ chương trình, bộ  
đếm chương trình có dunglượng  
13 bit (PC<12:0>).  
Khi vi điều khiển được reset, bộ  
đếm chương trình sẽ chỉ đến địa  
chỉ 0000h (Reset vector). Khi có  
ngắt xảy ra, bộ đếm chương  
trình sẽ chỉ đến địa chỉ 0004h  
(Interrupt vector).  
Bộ nhớ chương trình không  
Hình 2.3 Bộ nhớ chương trình  
PIC16F877A bao gồm bộ nhớ stack và không được địa chỉ hóa bởi bộ đếm chương  
đề cập cụ thể phần sau  
trình. Bộ nhớ sẽ  
- Bộ nhớ dữ liệu  
Bộ nhớ dữ liệu của PIC là bộ nhớ EEPROM được chia ra làm nhiều bank. Đối  
với PIC16F877A bộ nhớ dữ liệu được chia ra làm 4 bank. Mỗi bank có dung  
lượng 128 byte, bao gồm các thanh ghi có chức năng đặc biệt SFG (Special  
Function Register) nằm ở các vùng địa chỉ thấp và các thanh ghi mục đích chung  
GPR (General Purpose Register) nằm ở vùng địa chỉ còn lại trong bank. Các thanh  
ghi SFR thường xuyên được sử dụng (ví dụ như thanh ghi STATUS) sẽ được đặt ở  
tất cà các bank của bộ nhớ dữ liệu giúp thuận tiện trong quá trình truy xuất và làm  
19  
giảm bớt lệnh của chương trình. Sơ đồ cụ thể của bộ nhớ dữ liệu PIC16F877A như  
sau:  
Hình 2.4 Sơ đồ bộ nhớ dữ liệu PIC16F877A  
20  
Tải về để xem bản đầy đủ
pdf 120 trang yennguyen 30261 Free
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình mô đun Vi điều khiển 2 - Nghề: Công nghệ kỹ thuật điều khiển và tự động hóa", để 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_mo_dun_vi_dieu_khien_2_nghe_cong_nghe_ky_thuat_di.pdf