1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đề tài BÁO CÁO THỰC TẬP VI ĐIỀU KHIỂN

39 613 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 39
Dung lượng 1,13 MB

Nội dung

Đề tài BÁO CÁO THỰC TẬP VI ĐIỀU KHIỂN MỤC LỤC MỤC LỤC........................................................................................................ 1 CHƢƠNG 1: TỔNG QUAN VỀ VI ĐIỀU KHIỂN..................................... 3 1.1 GIỚI THIỆU KHÁI QUÁT VỀ VI ĐIỀU KHIỂN .................................... 3 1.1.1 GIỚI THIỆU CHUNG ............................................................................ 3 1.1.2 PHÂN LOẠI ........................................................................................... 4 1.1.3 CẤU TRÚC TỔNG QUAN CỦA VDK................................................. 5 1.2 KHÁI QUÁT VỀ VI ĐIỀU KHIỂN PIC ................................................ 5 1.2.1 PIC LÀ GÌ ? ............................................................................................. 5 1.2.2 KIẾN TRÚC PIC ..................................................................................... 6 1.2.3 RISC VÀ CISC ...................................................................................... 7 1.2.4 PIPELINING.......................................................................................... 7 1.2.5 CÁC DÒNG PIC VÀ CÁCH LỰA CHỌN VI ĐIỀU KHIỂN PIC ....... 8 1.2.6 NGÔN NGỮ LẬP TRÌNH CHO PIC..................................................... 9 1.2.7 MẠCH NẠP PIC..................................................................................... 9 1.3 VI ĐIỀU KHIỂN PIC16F877A ............................................................... 10 1.3.1 CÁC DẠNG SƠ ĐỒ CHÂN................................................................. 10 1.3.2 SƠ ĐỒ KHỐI VI ĐIỀU KHIỂN PIC16F877A ................................... 12 1.3.3 CHỨC NĂNG CÁC CHÂN CỦA PIC16F877A ................................. 13 1.3.4 ĐẶC ĐIỂM VI ĐIỀU KHIỂN PIC16F877A ....................................... 15 1.3.5 BỘ NHỚ CHƢƠNG TRÌNH................................................................ 16 1.3.6 BỘ NHỚ DỮ LIỆU .............................................................................. 17 1. THANH GHI CHỨC NĂNG ĐẶC BIỆT SFR ......................................... 19 1.3.7 STACK................................................................................................... 20 CHƢƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG ............................... 22 2.1 Thiết kế nguyên lý:.................................................................................... 22 2.1.2 Sơ đồ mô hình tổng quát của hệ thống................................................... 22 2.1.2. Sơ đồ đặc tả hệ thống:........................................................................... 23 2.1.3.Sơ đồ thuật toán của hệ thống:............................................................... 24 Đề tài: BÁO CÁO THỰC TẬP VI ĐIỀU KHIỂN 2.1.4.Sơ đồ call graph của hệ thống:............................................................... 25 2.1.5.Sơ đồ nguyên lý mạch............................................................................ 26 2.2.Nguyên tắc làm việc.................................................................................. 26 2.2.1 Nguyên tắc hoạt động: ........................................................................... 26 2.2.2 Ngyên lý hoạt động của hệ thống: ......................................................... 27 2.3 Giới thiệu về linh kiện dùng trong hệ thống ............................................. 28 2.3.1 Các linh kiện sử dụng............................................................................. 28 CHƢƠNG 3: XÂY DỰNG HỆ THỐNG..................................................... 29 3.1 các module phần phần cứng trong hệ thống ............................................. 29 3.1.1. Module khối điều khiển trung tâm........................................................ 29 3.1.2.Module hiển thị. ..................................................................................... 29 3.1.3.Module đo nhiệt độ. ............................................................................... 30 3.1.4.Module khối nguồn. ............................................................................... 31 3.1.5. Module khối giao tiếp phím bấm. ......................................................... 31 3.2 Xây dựng phần mềm, mạch: ..................................................................... 32 3.3 Sơ đồ mạch in hệ thống :........................................................................... 36 Đề tài BÁO CÁO THỰC TẬP VI ĐIỀU KHIỂN Đề tài BÁO CÁO THỰC TẬP VI ĐIỀU KHIỂN Đề tài BÁO CÁO THỰC TẬP VI ĐIỀU KHIỂN Đề tài BÁO CÁO THỰC TẬP VI ĐIỀU KHIỂN Đề tài BÁO CÁO THỰC TẬP VI ĐIỀU KHIỂN Đề tài BÁO CÁO THỰC TẬP VI ĐIỀU KHIỂN Đề tài BÁO CÁO THỰC TẬP VI ĐIỀU KHIỂN Đề tài BÁO CÁO THỰC TẬP VI ĐIỀU KHIỂN Đề tài BÁO CÁO THỰC TẬP VI ĐIỀU KHIỂN

Trang 1

MỤC LỤC

MỤC LỤC 1

CHƯƠNG 1: TỔNG QUAN VỀ VI ĐIỀU KHIỂN 3

1.1 GIỚI THIỆU KHÁI QUÁT VỀ VI ĐIỀU KHIỂN 3

1.1.1 GIỚI THIỆU CHUNG 3

1.1.2 PHÂN LOẠI 4

1.1.3 CẤU TRÚC TỔNG QUAN CỦA VDK 5

1.2 KHÁI QUÁT VỀ VI ĐIỀU KHIỂN PIC 5

1.2.1 PIC LÀ GÌ ? 5

1.2.2 KIẾN TRÚC PIC 6

1.2.3 RISC VÀ CISC 7

1.2.4 PIPELINING 7

1.2.5 CÁC DÒNG PIC VÀ CÁCH LỰA CHỌN VI ĐIỀU KHIỂN PIC 8

1.2.6 NGÔN NGỮ LẬP TRÌNH CHO PIC 9

1.2.7 MẠCH NẠP PIC 9

1.3 VI ĐIỀU KHIỂN PIC16F877A 10

1.3.1 CÁC DẠNG SƠ ĐỒ CHÂN 10

1.3.2 SƠ ĐỒ KHỐI VI ĐIỀU KHIỂN PIC16F877A 12

1.3.3 CHỨC NĂNG CÁC CHÂN CỦA PIC16F877A 13

1.3.4 ĐẶC ĐIỂM VI ĐIỀU KHIỂN PIC16F877A 15

1.3.5 BỘ NHỚ CHƯƠNG TRÌNH 16

1.3.6 BỘ NHỚ DỮ LIỆU 17

1 THANH GHI CHỨC NĂNG ĐẶC BIỆT SFR 19

1.3.7 STACK 20

CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 22

2.1 Thiết kế nguyên lý: 22

2.1.2 Sơ đồ mô hình tổng quát của hệ thống 22

2.1.2 Sơ đồ đặc tả hệ thống: 23

2.1.3.Sơ đồ thuật toán của hệ thống: 24

Trang 2

2.1.4.Sơ đồ call graph của hệ thống: 25

2.1.5.Sơ đồ nguyên lý mạch 26

2.2.Nguyên tắc làm việc 26

2.2.1 Nguyên tắc hoạt động: 26

2.2.2 Ngyên lý hoạt động của hệ thống: 27

2.3 Giới thiệu về linh kiện dùng trong hệ thống 28

2.3.1 Các linh kiện sử dụng 28

CHƯƠNG 3: XÂY DỰNG HỆ THỐNG 29

3.1 các module phần phần cứng trong hệ thống 29

3.1.1 Module khối điều khiển trung tâm 29

3.1.2.Module hiển thị 29

3.1.3.Module đo nhiệt độ 30

3.1.4.Module khối nguồn 31

3.1.5 Module khối giao tiếp phím bấm 31

3.2 Xây dựng phần mềm, mạch: 32

3.3 Sơ đồ mạch in hệ thống : 36

Trang 3

CHƯƠNG 1: TỔNG QUAN VỀ VI ĐIỀU KHIỂN

1.1 GIỚI THIỆU KHÁI QUÁT VỀ VI ĐIỀU KHIỂN

1.1.1 GIỚI THIỆU CHUNG

Bộ Vi xử lý có khả năng vượt bậc so với các hệ thống khác về khả năng tính toán, xử lý, và thay đổi chương trình linh hoạt theo mục đích người dùng, đặc biệt hiệu quả đối với các bài toán và hệ thống lớn.Tuy nhiên đối với các ứng dụng nhỏ, tầm tính toán không đòi hỏi khả năng tính toán lớn thì việc ứng dụng vi xử lý cần cân nhắc Bởi vì hệ thống dù lớn hay nhỏ, nếu dùng vi xử lý thì cũng đòi hỏi các khối mạch điện giao tiếp phức tạp như nhau Các khối này bao gồm bộ nhớ để chứa

dữ liệu và chương trình thực hiện, các mạch điện giao tiếp ngoại vi để xuất nhập và điều khiển trở lại, các khối này cùng liên kết với vi xử lý thì mới thực hiện được công việc Để kết nối các khối này đòi hỏi người thiết kế phải hiểu biết tinh tường

về các thành phần vi xử lý, bộ nhớ, các thiết bị ngoại vi Hệ thống được tạo ra khá phức tạp, chiếm nhiều không gian, mạch in phức tạp và vấn đề chính là trình độ người thiết kế Kết quả là giá thành sản phẩm cuối cùng rất cao, không phù hợp để

áp dụng cho các hệ thống nhỏ

Vì một số nhược điểm trên nên các nhà chế tạo tích hợp một ít bộ nhớ và một

số mạch giao tiếp ngoại vi cùng với vi xử lý vào một IC duy nhất được gọi là Microcontroller- Vi điều khiển

Một số đặc điểm khác nhau giữa vi xử lí và VĐK:

- Về phần cứng: VXL cần được ghép thêm các thiết bị ngoại vi bên ngoài như

bộ nhớ, và các thiết bị ngoại vi khác, … để có thể tạo thành một bản mạch hoàn chỉnh Đối với VĐK thì bản thân nó đã là một hệ máy tính hoàn chỉnh với CPU, bộ nhớ, các mạch giao tiếp, các bộ định thời và mạch điều khiển ngắt được tích hợp bên trong mạch

- Về các đặc trưng của tập lệnh: Do ứng dụng khác nhau nên các bộ VXL và VĐK cũng có những yêu cầu khác nhau đối với tập lệnh của chúng Tập lệnh của các VXL thường mạnh về các kiểu định địa chỉ với các lệnh cung cấp các hoạt động trên các lượng dữ liệu lớn như 1byte, ½ byte, word, double word, Ở các bộ VĐK, các tập lệnh rất mạnh trong việc xử lý các kiêu dữ liệu nhỏ như bit hoặc một vài bit

Trang 4

- Do VĐK cấu tạo về phần cứng và khả năng xử lí thấp hơn nhiều soi với VXL nên giá thành của VĐK cũng rẻ hơn nhiều Tuy nhiên nó vẫn đủ khả năng đáp ứng được tất cả các yêu cầu của người dùng

Vi điều khiển được ứng dụng trong các dây chuyền tự động loại nhỏ, các robot

có chức năng đơn giản, trong máy giặt, ôtô v.v

1.1.2 PHÂN LOẠI

Độ dài thanh ghi

Dựa vào độ dài của các thanh ghi và các lệnh của VĐK mà người ta chia ra các loại VĐK 8bit, 16bit, hay 32bit

Các loại VĐK 16bit do có độ dài lệnh lớn hơn nên các tập lệnh cũng nhiều hơn, phong phú hơn Tuy nhiên bất cứ chương trình nào viết bằng VĐK 16bit chúng ta đều có thể viết trên VDK 8bit với chương trình thích hợp

Kiến trúc CISC và RISC

VXL hoặc VĐK CISC là VĐK có tập lệnh phức tạp Các VĐK này có một số lượng lớn các lệnh nên giúp cho người lập trình có thể linh hoạt và dễ dàng hơn khi viết chương trình VĐK RISC là VĐK có tập lệnh đơn giản Chúng có một số lương nhỏ các lệnh đơn giản DO đó, chúng đòi hỏi phần cứng ít hơn, giá thành thấp hơn, và nhanh hơn so với CISC Tuy nhiên nó đòi hỏi người lập trình phải viết các chương trình phức tạp hơn, nhiều lệnh hơn

Kiến trúc Harvard và kiến trúc Vonneumann

Kiến trúc Harvard sử dụng bộ nhớ riêng biệt cho chương trình và dữ liệu Bus địa chỉ và bus dữ liệu độc lập với nhau nên quá trình truyền nhận dữ liệu đơn giản hơn Kiến trúc Vonneumann sử dụng chung bộ nhớ cho chương trình và dữ liệu Điều này làm cho VĐK gọn nhẹ hơn, giá thành nhẹ hơn

Trang 5

1.1.3 CẤU TRÚC TỔNG QUAN CỦA VDK

CPU:

Là trái tim của hệ thống Là nơi quản lí tất cả các hoạt động của VĐK Bên trong CPU gồm:

- ALU là bộ phận thao tác trên các dữ liệu

- Bộ giải mã lệnh và điều khiển, xác định các thao tác mà CPU cần thực hiện

- Thanh ghi lệnh IR, lưu giữ opcode của lệnh được thực thi

- Thanh ghi PC, lưu giũ địa chỉ của lệnh kế tiếp cần thực thi

- Một tập các thanh ghi dùng để lưu thông tin tạm thời

ROM:

ROM là bộ nhớ dùng để lưu giữ chương trình ROM còn dùng để chứa số liệu các bảng, các tham số hệ thống, các số liệu cố định của hệ thống Trong quá trình hoạt động nội dung ROM là cố định, không thể thay đổi, nội dung ROM chỉ thay đổi khi ROM ở chế độ xóa hoặc nạp chương trình

RAM:

RAM là bọ nhớ dữ liệu Bộ nhớ RAM dùng làm môi trường xử lý thông tin, lưu trữ các kết quả trung gian và kết quả cuối cùng của các phép toán, xử lí thông tin Nó cũng dùng để tổ chức các vùng đệm dữ liệu, trong các thao tác thu phát, chuyển đổi dữ liệu

BUS:

BUS là các đường dẫn dùng để di chuyển dữ liệu Bao gồm: bus địa chỉ, bus

dữ liệu , và bus điều khiển

BỘ ĐỊNH THỜI: Được sử dụng cho các mục đích chung về thời gian WATCHDOG: Bộ phận dùng để reset lại hệ thống khi hệ thống gặp “bất thường” ADC: Bộ phận chuyển tín hiệu analog sang tín hiệu digital Các tín hiệu bên

ngoài đi vào VDK thường ở dạng analog ADC sẽ chuyển tín hiệu này về dạng tín hiệu digital mà VDK có thể hiểu được

1.2 KHÁI QUÁT VỀ VI ĐIỀU KHIỂN PIC

1.2.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

Trang 6

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

1.2.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

Hình 1.1: Kiến trúc Havard và kiến trúc Von-Neuman

Tổ chức phần cứng của PIC được thiết kế theo kiến trúc Havard Điểm khác biệt giữa kiến trúc Havard và kiến trúc Von-Neuman là cấu trúc bộ nhớ dữ liệu và

bộ nhớ chương trình

Đối với kiến trúc Von-Neuman, bộ nhớ dữ liệu và bộ nhớ chương trình nằm chung trong một bộ nhớ, do đó ta có thể tổ chức, cân đối một cách linh hoạt bộ nhớ chương trình và bộ nhớ dữ liệu Tuy nhiên điều này chỉ có ý nghĩa khi tốc độ xử lí của CPU phải rất cao, vì với cấu trúc đó, trong cùng một thời điểm CPU chỉ có thể tương tác với bộ nhớ dữ liệu hoặc bộ nhớ chương trình Như vậy có thể nói kiến trúc Von-Neuman không thích hợp với cấu trúc của một vi điều khiển

Đối với kiến trúc Havard, bộ nhớ dữ liệu và bộ nhớ chương trình tách ra thành hai bộ nhớ riêng biệt Do đó trong cùng một thời điểm CPU có thể tương tác với cả hai bộ nhớ, như vậy tốc độ xử lí của vi điều khiển được cải thiện đáng kể

Một điểm cần chú ý nữa là tập lệnh trong kiến trúc Havard có thể được tối ưu tùy theo yêu cầu kiến trúc của vi điều khiển mà không phụ thuộc vào cấu trúc dữ liệu Ví dụ, đối với vi điều khiển dòng 16F, độ dài lệnh luôn là 14 bit (trong khi dữ liệu được tổ chức thành từng byte), còn đối với kiến trúc Von-Neuman, độ dài lệnh luôn là bội số của 1 byte (do dữ liệu được tổ chức thành từng byte) Đặc điểm này được minh họa cụ thể trong hình 1.1

Trang 7

1.2.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)

1.2.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à 1 us) Giả sử ta có một đoạn chương trình như sau:

2 MOVWF PORTB

5 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:

Trang 8

- TCY5: thực thi lệnh đầu tiên của SUB_1 và đọc lệnh tiếp theo của SUB_1 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

1.2.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

Trang 9

- PIC18xxxx: độ dài lệnh 16 bit

C: PIC có bộ nhớ EPROM (chỉ có 16C84 là EEPROM)

F: PIC có bộ nhớ flash

LF: 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

1.2.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,…

1.2.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

Trang 10

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

1.3 VI ĐIỀU KHIỂN PIC16F877A

1.3.1 CÁC DẠNG SƠ ĐỒ CHÂN

Trang 11

Hình 2.1 Vi điều khiển PIC16F877A/PIC16F874A và các dạng sơ đồ chân

Trang 12

1.3.2 SƠ ĐỒ KHỐI VI ĐIỀU KHIỂN PIC16F877A

Hình 2.2 Sơ đồ khối vi điều khiển PIC16F877A

Hình 2.2 là sơ đồ khối của PIC 16F877A, gồm các khối:

Trang 13

- Khối ALU – Arithmetic Logic Unit

- Khối bộ nhớ chứa chương trình – Flash Program Memory

- Khối bộ nhớ chứa dữ liệu EPROM – Data EPROM

- Khối bộ nhớ file thanh ghi RAM – RAM file Register

- Khối giải mã lệnh và điều khiển – Instruction Decode Control

- Khối thanh ghi đặc biệt

- Khối ngoại vi timer

- Khối giao tiếp nối tiếp

- Khối chuyển đổi tín hiệu tương tự sang số - ADC

- Khối các port xuất nhập

1.3.3 CHỨC NĂNG CÁC CHÂN CỦA PIC16F877A

 Chân OSC1/CLK1(13): ngõ vào kết nối với dao động thạch anh hoặc ngõ vào nhận xung clock từ bên ngoài

 Chân OSC2/CLK2(14): ngõ ra dao động thạch anh hoặc ngõ ra cấp xung clock

 Chân (1) có 2 chức năng

- : ngõ vào reset tích cực ở mức thấp

- Vpp: ngõ vào nhận điện áp lập trình khi lập trình cho PIC

Trang 14

 Chân RA0/AN0(2), RA1/AN1(3), RA2/AN2(3): có 2 chức năng

- RA0,1,2: xuất/ nhập số

- AN 0,1,2: ngõ vào tương tự của kênh thứ 0,1,2

 Chân RA2/AN2/VREF-/CVREF+(4): xuất nhập số/ ngõ vào tương tự của kênh thứ 2/ nhõ vào điện áp chuẩn thấp của bộ AD/ ngõ vào điện áp chẩn cao của bộ AD

 Chân RA3/AN3/VREF+(5): xuất nhập số/ ngõ vào tương tự kênh 3/ ngõ vào điện áp chuẩn (cao) của bộ AD

 Chân RA4/TOCK1/C1OUT(6): xuất nhập số/ ngõ vào xung clock bên ngoài cho Timer 0/ ngõ ra bộ so sánh 1

 Chân RA5/AN4/ / C2OUT(7): xuất nhập số/ ngõ vào tương tự kênh 4/ ngõ vào chọn lựa SPI phụ/ ngõ ra bộ so sánh 2

 Chân RB0/INT (33): xuất nhập số/ ngõ vào tín hiệu ngắt ngoài

 Chân RB1(34), RB2(35): xuất nhập số

 Chân RB3/PGM(36): xuất nhập số/ cho phép lập trình điện áp thấp ICSP

 Chân RB4(37), RB5(38): xuất nhập số

 Chân RB6/PGC(39): xuất nhấp số/ mạch gỡ rối và xung clock lập trình ICSP

 Chân RB7/PGD(40): xuất nhập số/ mạch gỡ rối và dữ liệu lập trình ICSP

 Chân RC0/T1OCO/T1CKI(15): xuất nhập số/ ngõ vào bộ giao động Timer1/ ngõ vào xung clock bên ngoài Timer 1

 Chân RC1/T1OSI/CCP2(16) : xuất nhập số/ ngõ vào bộ dao động Timer 1/ ngõ vào Capture2, ngõ ra compare2, ngõ ra PWM2

 Chân RC2/CCP1(17): xuất nhập số/ ngõ vào Capture1 ,ngõ ra compare1, ngõ

ra PWM1

 Chân RC3/SCK/SCL(18): xuất nhập số/ ngõ vào xung clock nối tiếp đồng

bộ, ngõ ra chế độ SPI./ ngõ vào xung clock nối tiếp đồng bộ, ngõ ra của chế

độ I2C

 Chân RC4/SDI/SDA(23): xuất nhập số/ dữ liệu vào SPI/ xuất nhập dữ liệu I2C

 Chân RC5/SDO(24): xuất nhập số/ dữ liệu ra SPI

 Chân RC6/TX/CK(25): xuất nhập số/ truyền bất đồng bộ USART/ xung đồng bộ USART

Trang 15

 Chân RC7/RX/DT(26): xuất nhập số/ nhận bất đồng bộ USART

 Chân RD0-7/PSP0-7(19-30): xuất nhập số/ dữ liệu port song song

 Chân RE0/ /AN5(8): xuất nhập số/ điều khiển port song song/ ngõ vào tương tự 5

 Chân RE1/ /AN6(9): xuất nhập số/ điều khiển ghi port song song/ ngõ vào tương tự kênh thứ 6

 Chân RE2/ /AN7(10): xuất nhấp số/ Chân chọn lụa điều khiển port song song/ ngõ vào tương tự kênh thứ 7

 Chân VDD(11, 32) và VSS(12, 31): là các chân nguồn của PIC

1.3.4 ĐẶC ĐIỂM 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ó 8 kênh chuyển đổi A/D

Các đặc tính ngoại vi bao gồmcá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,

Trang 16

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

Bảng 2.3: Tóm tắt đặc điểm của VDK PIC 16F877A

1.3.5 BỘ NHỚ CHƯƠNG TRÌNH

Trang 17

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

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)

Hình 2.4 Bộ nhớ chương trình PIC16F877A

Bộ nhớ chương trình không bao gồm bộ nhớ stack và không được địa chỉ hóa

bởi bộ đếm chương trình Bộ nhớ stack sẽ được đề cập cụ thể trong phần sau

1.3.6 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

giảm bớt lệnh của chương trình

Trang 18

Sơ đồ cụ thể của bộ nhớ dữ liệu PIC16F877A nhƣ sau:

Hình 2.5 Sơ đồ bộ nhớ dữ liệu PIC16F877A

Trang 19

1 THANH GHI CHỨC NĂNG ĐẶC BIỆT SFR

Đây là các thanh ghi đƣợc sử dụng bởi CPU hoặc đƣợc dùng để thiết lập và điều khiển các khối chức năng đƣợc tích hợp bên trong vi điều khiển Có thể phân thanh ghi SFR làm hai lọai: thanh ghi SFR liên quan đến các chức năng bên trong (CPU) và thanh ghi SRF dùng để thiết lập và điều khiển các khối chức năng bên ngoài (ví dụ nhƣ ADC, PWM, …) Phần này sẽ đề cập đến các thanh ghi liên quan đến các chức năng bên trong Các thanh ghi dùng để thiết lập và điều khiển các khối chức năng sẽ đƣợc nhắc đến khi ta đề cập đến các khối chức năng đó

Thanh ghi STATUS (03h, 83h, 103h, 183h):thanh ghi chứa kết quả thực hiện

phép toán của khối ALU, trạng thái reset và các bit chọn bank cần truy xuất trong

bộ nhớ dữ liệu

Thanh ghi OPTION_REG (81h, 181h): thanh ghi này cho phép đọc và ghi,

cho phép điều khiển chức năng pull-up của các chân trong PORTB, xác lập các tham số về xung tác động, cạnh tác động của ngắt ngoại vi và bộ đếm Timer0

Thanh ghi INTCON (0Bh, 8Bh,10Bh, 18Bh):thanh ghi cho phép đọc và ghi,

chứa các bit điều khiển và các bit cờ hiệu khi timer0 bị tràn, ngắt ngoại vi RB0/INT

và ngắt interrput- on-change tại các chân của PORTB

Thanh ghi PIE1 (8Ch): chứa các bit điều khiển chi tiết các ngắt của các khối

chức năng ngoại vi

Thanh ghi PIR1 (0Ch) chứa cờ ngắt của các khối chức năng ngoại vi, các ngắt

Ngày đăng: 20/06/2016, 21:46

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w