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 đủ
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:
- giao_trinh_mo_dun_vi_dieu_khien_2_nghe_cong_nghe_ky_thuat_di.pdf