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

Ứng dụng vi điều khiển PIC vào thiết kế bộ volmet điện tử

94 472 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 94
Dung lượng 2,42 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Đại diện cho dòng chip này là PIC18F452 với tốc độ, dung lượng bộ nhớ được cải thiện và khá nhiều tính năng được bổ sung như các bộ định thời Timer, truyền thông nối tiếp...Dòng vi điều

Trang 1

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

1 Giới thiệu về vi điều khiển PIC của Microchip 43

1.1.Vài nét về lịch sử phát triển 43

1.2 Kiến trúc của vi điều khiển PIC 45

CHƯƠNG 2 – TÌM HIỂU VỀ PIC 16F877A

2.1 Sơ Đồ Chân Của Vi Điều Khiển PIC 16F877A 67

2.2 Một Vài Thông Số Về Vi Điều Khiển PIC 16F877A 67

2.3 Sơ Đồ Khối Của Vi Điều Khiển PIC 16F877A 69

2.4 Tổ Chức Bộ Nhớ PIC 16F877A

2.5 Stack

2.6 Các Cổng Xuất Nhập Của PIC 16F877A

2.7 Các Bộ Timer Của PIC 16F877A

2.8 Bộ Chuyển Đổi ADC Của PIC 16F877A

2.9 Bộ COMPARATOR Của PIC 16F877A

2.10 Bộ CCP (Capture/Compare/PWM) PIC 16F877A

2.10 Giao Tiếp Nối Tiếp Của PIC 16F877A

2.11 Giao Tiếp Song Song PSP (Parallel Slave Port)

2.12 Các Ngắt Của PIC 16F877A

2.13 WATCHDOG TIMER (WDT)

Trang 2

DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT

ADC Bộ chuyển đổi tương tự sang số.

CISC Vi điều khiển có tập lệnh phức tạp.

GPR Thanh ghi mục đích chung.

Period Chu kỳ

PSP Cổng song song hoạt động ở chế độ Slave

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

SFG Thanh ghi có chức năng đặc biệt

SPI Giao diện ngoại vi nối tiếp

RISC Vi điều khiển có tập lệnh đơn giản.

UART Bộ truyền thông bất đồng bộ nối tiếp.

WDT Watchdog Timer

Trang 3

DANH MỤC CÁC BẢNG

TrangBảng 2.1:Đặc tính nổi bật của VĐK PIC16F877A

Bảng 2.2: Chọn Các Bank làm việc

Bảng 2.3: Bit 2:0 PS2:PS1 lựa chọn hệ số chia xung

Bảng 2.4: Bit 5, 4 T1CKPS1:T1CKPS0 lựa chọn hệ số chia xung

Bảng 2.5: Các trường hợp CCPx được liệt kê trong bảng sau

Bảng 2.6: Công thức tính tốc độ baud do BRG tạo ra

Hình 2.1:Sơ đồ bố trí chân của PIC16F877A

Hình 2.3: Bộ nhớ chương trình của PIC16F877A 25

Trang 4

Hình 2.4: Sơ đồ khối của PIC16F877A 28

Hình 2.8: Thanh Ghi Điều Khiển Timer1 T1CON 32

Hình 2.10 :Sơ Đồ Khối Bộ Chuyển Đổi ADC. 34Hình 2.11 :Các cách lưu kết quả chuyển Đổi ADC 35Hình 2.12 :Nguyên Lý Hoạt Động Của Một Bộ So Sánh Đơn

Hình 2.13 : Các Chế Độ Hoạt Động Của Bộ Comparator 36Hình 2.14 Sơ Đồ Khối Bộ Tạo Điện Áp So Sánh 36Hình 2.15 Sơ Đồ Khối CPP (Capture Mode) 40Hình 2.16: Sơ Đồ Khối CPP (Compare Mode) 41Hình 2.17: Sơ Đồ Khối CPP (PWM Mode) 42

Hình 2.19: Sơ Đồ Khối Của Khối Truyền Dữ Liệu USART 48Hình 2.20: Sơ Đồ Khối Của Khối Nhận Dữ Liệu USART 49Hình 2.21: Sơ Đồ Khối MSSP (Giao Diện SPI) 50Hình 2.22: Sơ Đồ Khối Của PORTD và PORTE Ở Chế Độ PSP

Hình 2.23:Các Thanh Ghi PIE1, PIR1, PIE2, PIR2 Điều Khiển

Hình 3.3: Sơ Đồ Khối Xử Lý Trung Tâm 61

Trang 5

Hình 3.4: Sơ Đồ Khối Hiển Thị 62

LỜI MỞ ĐẦU

Trang 6

Ngày nay, chúng ta thấy nhiều sản phẩm điện tử được dùng trong công

nghiệp và gia dụng như các bộ điều khiển từ xa, máy in hoá đơn điện thoại,

bộ điều chỉnh công suất tự động, máy giặt tự động hay bán tự động, lò vi sóng, các thiết bị đo, các thiết bị hiển thị và các sản phẩm khác Điểm chung của các thiết bị này là phải có một linh kiện gọi là ‘vi điều khiển’, cho phép điều khiển việc phân chia khoảng thời gian và sắp đặt trình tự của các cơ cấu

và quá trình xử lý, lưu giữ và xử lý dữ liệu trong hệ thống điều khiển

Ngoài ra với sự hỗ trợ của vi điều khiển ta có thể thực hiện các phép tính số học và logic đơn giản Bất kỳ hệ thống nào có một bộ điều khiển từ xa đều có chứa một bộ vi điều khiển

Có thể quan niệm vi điều khiển như một máy vi tính đơn chip, thích hợp hơn đối với việc tự động hoá máy móc hoặc quá trình Việc sử dụng vi điều khiển không chỉ giảm chi phí cho quá trình tự động hoá mà còn làm cho quá trình trở nên linh hoạt hơn Nhà thiết kế bớt căng thẳng hơn do việc ghép nối phức tạp với các thiết bị ngoại vi như ADC/DAC … và có thể tập trung vào các đối tượng ứng dụng và nội dung phát triển Linh kiện này có thể lập trình được để làm cho hệ thống trở nên thông minh Điều này hoàn toàn là có thể bởi vì việc xử lý dữ liệu có liên quan đến dung lượng bộ nhớ của các vi điều khiển Các vi điều khiển có nhiều khối chức năng, có thể đáp ứng toàn

bộ các yêu cầu chung của kỹ thuật tự động hoá

Một số dòng vi điều khiển trên thị trường là: 8051, AVR, PIC …

Với đề tài: “ Ứng dụng Vi Điều Khiển PIC vào thiết kế bộ Volmet

điện tử”.

Trong quá trình thực hiện đề tài, được sự hướng dẫn tận tình của thầy giáo Lê Mạnh Long và các thầy cô khác trong khoa em đã có cơ hội chuyển

kiến thức lý thuyết thành sản phẩm thực tế qua đề tài “Thiết kế bộ volmet

điện tử sử dụng vi điều khiển PIC”, qua đó cũng đã hoàn thành được đề tài

của mình Tuy nhiên, với thời gian ngắn, trang thiết bị để phục vụ làm báo

Trang 7

cáo chưa đầy đủ nên báo cáo không tránh khỏi những thiếu sót và hạn chế, emrất mong nhận được sự đóng góp, góp ý kiến của các thầy và các thầy,cô trong khoa điện tử và các bạn trong lớp là một điều rất tốt để báo cáo thực tập tốt nghiệp của chúng em thêm hoàn thiện.

Em xin chân thành cảm ơn!

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

Trang 8

1.1 Vài Nét Về Lịch Sử Phát Triển.

PIC (Programmable Intelligent Computer) 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 Vào thập kỷ 70 của thế kỷ 20, General Instrument và Honeywell kết hợp sản xuất

ra bộ vi xử lý 16 bit CP1600 Đây là một bộ vi xử lý khá mạnh vào thời điểm

đó nhưng lại hạn chế về hoạt động vào/ra PIC1650 được sản xuất để hỗ trợ vi

xử lý CP1600 trong các máy tính sử dụng bộ vi xử lý này

PIC1650 hoạt động với tập lệnh đơn giản nằm trong ROM Vào thời điểm đó chưa có khái niệm về RISC (Reduced Instructions Set Code), tuy nhiên PIC1650 thực sự là một bộ vi điều khiển được thiết kế theo kiểu kiến trúc RISC Tập lệnh của PIC1650 với khoảng 30 lệnh và độ dài của mỗi lệnh

là 14 bit Mỗi lệnh được PIC1650 thực hiện trong 1 chu kỳ máy (4 chu kỳ của

bộ dao động)

Năm 1985 General Instruments bán bộ phận sản xuất vi điện tử của họ

và chủ sở hữu mới hủy bỏ hầu hết các dự án liên quan (do các dự án lúc đó đãquá lỗi thời)

Năm 1989 Microchip Technology tiếp tục phát triển PIC, bắt đầu bằng việc thêm bộ nhớ EEPROM để tạo thành 1 bộ điều khiển vào ra khả trình Tiếp đến là tích hợp các tính năng như ngắt , ADC (Analog Digital

Converter) để tạo thành các bộ vi điều khiển (Micocontroller)

Đến năm 1992 Microchip Technology đã cho ra đời 6 loại chip với 3 dòng khác nhau:

Dòng chip có độ dài mã lệnh bằng 12 bit gồm 4 chip PIC16C5x Các chip này có từ 12 đến 28 chân vào/ra;

Dòng chip độ dài mã lệnh bằng 14 bit là PIC16C71 Bộ vi điều khiển này đã được tích hợp thêm hai tài nguyên là ngắt và ADC

Dòng chip độ dài mã lệnh bằng 16 bit là PIC17C41, tuy nhiên dòng chip này không được chú trọng phát triển vào thời điểm đó

Trang 9

Cùng thời gian này, hàng loạt các công cụ hỗ trợ cũng được các công tykhác nhau cho ra đời Điển hình là PICMASTER emulator, PIC Pro II

programmer và cả trình dịch C (C Compiler) Các công cụ này cùng với việc thay bộ nhớ OTP (one-time programmable parts) bằng bộ nhớ EEP

(Electrically Erasable Parts) đã mang đến rất nhiều tiện lợi cho người lập trình, ví dụ như: người lập trình có thể nạp chương trình mà không cần gỡ chip ra khỏi mạch PIC16C84 là bộ vi điều khiển đầu tiên có bộ nhớ kiểu EEP

Không lâu sau đó Microchip Technology tiếp tục đưa vào bộ vi điều khiển với mã lệnh dài 14 bit PIC16F877 tính năng gỡ rối (Flash debugging) Tính năng này cho phép người lập trình có thể kiểm soát từng thanh ghi, từng câu lệnh trong chương trình Nhờ những cải tiến liên tiếp, PIC16F877 trở thành bộ vi điều khiển bán chạy nhất vào thời điểm đó (năm 1995 đến 1998)

Đến năm 2000, Microchip Technology tái phát triển lại dòng chip có độdài mã lệnh bằng 16 bit đã có trước đó 8 năm Đại diện cho dòng chip này là PIC18F452 với tốc độ, dung lượng bộ nhớ được cải thiện và khá nhiều tính năng được bổ sung như các bộ định thời (Timer), truyền thông nối tiếp Dòng

vi điều khiển PIC 8 bit đã dẫn đầu về số lượng bộ bán ra mỗi năm liên tục từ năm 2002 đến nay

Trước nhu cầu về tốc độ xử lý cũng như các tính năng đặc biệt khác, Microchip Technology tiếp tục cho ra đời các dòng vi điều khiển tiên tiến hơn như: PIC24, PIC33, dsPIC

Ngày nay đã có đến hàng chục dòng PIC với hàng trăm loại chip khác nhau Tại Việt Nam cũng như trên thế giới, họ vi điều khiển này được sử dụng khá rộng rãi Điều này tạo nhiều thuận lợi trong quá trình tìm hiểu và phát triển các ứng dụng như: Số lượng tài liệu, số lượng các ứng dụng mở đã được phát triển thành công; dễ dàng trao đổi, học tập, dễ dàng tìm được sự chỉdẫn khi gặp khó khăn,…

Trang 10

1.2 Kiến Trúc Của Vi Điều Khiển PIC.

Kiến trúc của một bộ vi điều khiển được thiết kế theo hai dạng cơ bản: Kiến trúc Von Neuman và kiến trúc Harvard (hình 1.1 và hình 1.2)

Von Neumann là một nhà toán học, vật lí người Mỹ, gốc Do thái

Năm 1944, Von Neumann làm cố vấn cho dự án chế tạo máy tính ENIAC, để phục vụ cho các mục đích quân sự của Mỹ Năm 1945, Sau khi dự

án ENIAC hoàn thành, Von Neumann cùng nhóm một vài thành viên trong nhóm làm việc của ông lại tiến hành một dự án mới, là xây dựng một máy tính hiện đại hơn

Năm 1945, Von Neumann đã viết một bài báo có tính bước ngoặc với tựa: "Bản thảo đầu tiên về máy tính EDVAC " ("The First Draft of a Report

on the EDVAC "), chứa đựng những ý tưởng về cầu trúc cơ bản mà một máy tính cần có Bài báo này được Von Neumann trao đổi giới hạn với các thành viên trong nhóm làm việc, tuy nhiên, sau đó đã được phổ biến rộng rãi và ảnh hưởng mạnh đến sự phát triển của máy tính ở Mỹ và thế giới Theo đó, cấu trúc của máy tính là sự kết hợp của các thành phần sau:

Bộ xử lý số học và logic (ALU - Arithmetic-Logic Unit )

sẽ thực hiện nhiệm vụ này

Trang 11

Hình 1.1 Kiến trúc Von Neuman

Khi khối điều khiển Von Neumann bắt đầu gọi một lệnh để xử lí, nó gọi tới bộ đếm chương trình (PC - Program Counter) để trỏ tới địa chỉ của lệnh trong bộ nhớ, rồi lệnh này sẽ được nạp và thực thi bởi CPU Địa chỉ của

dữ liệu cần xử lí được chứa trong chính lệnh cần thực thi Khi thực thi các lệnh, bộ đếm chương trình sẽ tăng lên để trỏ tới lệnh tiếp theo cần thực thi Quá trình này là tuần tự, nghĩa là các lệnh được thực thi một cách tuần tự, tại mỗi thời điểm chỉ có một lệnh được thực thi (one instruction at a time) Đây

là đặc điểm tiêu biểu của kiến trúc Von Neumann

CP

U Dat a Bu s

Flags

PC IR

CU

MAR

Data Buffer

A: Thanh ghi tích lũy

Y,Z: Temporary Register (thanh ghi đệm)

Flags: Thanh ghi cờ

PC: Bộ đếm chương trình (Program Counter)

IR: Thanh ghi lệnh (Instruction Register)

Trang 12

Chính kiến trúc này, như Von Neumann đã tự thừa nhận là làm giới hạntốc độ thực thi của chương trình do tại mỗi thời điểm chỉ thực thi được một lệnh Tình trạng này được John Backus, một người tiên phong trong lĩnh vực máy tính gọi là tình trạng "Thắt cổ chai Von Neumann" (von Neumann

bottleneck) Tình trạng "Thắt cổ chai von Neumann" chỉ ra rằng, tốc độ hệ thống bị giới hạn do tốc độ thực thi của CPU nhanh hơn tốc độ cung cấp thông tin cho CPU từ bộ nhớ (tốc độ truy xuất bộ nhớ)

Ngày nay, có nhiều kỹ thuật nhằm giúp hạn chế tình trạng “Thắt cổ chai von Neumann” như tăng độ rộng bus dữ liệu, kỹ thuật dùng bộ nhớ cache, cùng các kỹ thuật tiên tiến khác, tuy nhiên, bất chấp những cải tiến trên, kiến trúc dựa trên kiến trúc Von Neumann vẫn là kiến trúc máy tính phổ biến nhất hiện nay

Kiến trúc Harvard được nghiên cứu tại trường đại học Harvard (Mỹ), dưới sự lãnh đạo của Howard Aiken Nhóm nghiên cứu đã tách các bộ nhớ dữliệu và bộ nhớ chương trình với các bus riêng rẽ cho từng bộ nhớ, các bus nàycũng được điều hành độc lập Bởi thế, tại một thời điểm CPU có thể vừa đọc

mã lệnh, vừa đọc dữ liệu, điều này làm tăng đáng kể tốc độ xử lý của toàn hệ thống Vi điều khiển PIC được thiết kế theo kiến trúc này

Trang 13

Hình 1.2 Kiến trúcHarvard.

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 PIC16F, độ dài mã lệnh luôn là 14 bit trong khi dữ liệu được tổ chức thành từng byte

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- 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 - vi điều khiển có tập lệnh phức tạp), mã lệnh của các bộ vi điều khiển này không phải

là một số cố định mà luôn là bội số của 8 bit (1 byte)

Ngoài hai kiểu kiến trúc cơ bản nêu trên, Analog Devices còn đưa ra một kiểu kiến trúc dựa trên kiến trúc Harvard, đó là SHARC (Super Harvard Architecture) Kiến trúc này được áp dụng cho các bộ xử lý số (DSP – DigitalSignal Processing) của hãng (ví dụ như ADSP-2106x) Ngoài các đặc điểm như kiến trúc Harvard, SHARC được bổ sung thêm bộ nhớ đệm chỉ lệnh và điều khiển vào/ra nhằm cải thiện thông lượng dữ liệu Dòng vi điều khiển DsPIC được thiết kế theo kiểu kiến trúc này

Trang 14

1.3.Các dòng vi điều khiển PIC.

Nếu phân chia theo độ rộng bus dữ liệu thì có 3 dòng vi điều khiển PIC

Hình 1.3 Các dòng vi điều khiển của Microchip.

1.3.1 Vi điều khiển 8bit.

Đây là dòng sản phẩm bán chạy nhất của Microchip, vi điều khiển 8bit

có một số đặc điểm chính sau:

- Thiết kế theo kiến trúc Harvard

- Độ rộng bus dữ liệu: 8bit

PIC10 PIC12 PIC16 PIC18

PIC24F

PIC24 H

dsPIC30

dsPIC33

PIC32

Vi điều khiển 8bit

Vi điều khiển 32bit

Vi điều khiển 16bit

Trang 15

- Mỗi lệnh được thực hiện trong 1 chu kỳ máy

- Độ rộng của bus giữa CPU và bộ nhớ chương trình có thể là 12, 14 hoặc 16 bit tùy theo mục đích thiết kế của từng loại vi điều khiển

Hình 1.4 Sơ đồ khối vi điều khiển 8bit của Microchip.

Các dòng PIC 8bit bao gồm:

1.3.1.1.PIC10.

Đây là dòng PIC với độ dài mã lệnh là 12 bit, tốc độ thực hiện lệnh: 1 triệu lệnh/giây Ngoài bộ nhớ (ROM và RAM) dòng PIC này còn một số tài nguyên cơ bản như: Port xuất/nhập, Timer

1.3.1.2.PIC12.

PIC12 được chế tạo theo công nghệ nanoWatt, ngoài các tính năng như PIC10, dòng chip này còn được bổ sung thêm công cụ gỡ rối (debugging) tương thích với bộ công cụ MPLAB ICE-2

1.3.1.3.PIC16

Khác với PIC10 và PIC12 là loại vi điều khiển cỡ nhỏ (chỉ gồm 8 chân), PIC16 là loại vi điều khiển 8bit loại trung Dòng vi điều khiển này được bổ sung thêm khá nhiều module như ADC, Timer, PWM, truyền thông nối tiếp Ngoài ra PIC16 còn được bổ sung tính năng “tiết kiệm nguồn điện” nhờ có thể hoạt động ở chế độ “Power Saving Sleep”

Trang 16

PIC18 được Microchip nâng tốc độ thực hiện lệnh lên 10 MIPS (10 triệu lệnh/giây), ngoài ra dòng chip này còn được bổ sung một số tính năng như: Có thể hoạt động ở chế độ nghỉ (sleep mode) với dòng tiêu thụ chỉ

0.1uA; có thể chuyển sang nguồn dao động dự phòng nếu nguồn dao động chính bị hỏng

Các chip thuộc dòng 18FxxJxx còn được tích hợp thêm module

Ethernet chuẩn IEEE 802.3

1.3.2 Vi Điều Khiển 16 Bit.

Dòng vi điều khiển 16bit của Microchip gồm PIC24 và dsPIC

1.3.2.1 PIC24.

PIC24 bao gồm hai dòng PIC24F và PIC24H

Một số đặc điểm chính của dòng PIC24F:

CPU:

- Thiết kế theo kiến trúc Harvard

- Độ rộng bus dữ liệu: 16bit, độ dài mã lệnh: 24bit

- Tốc độ thực hiện lệnh: 16 triệu lệnh/giây

- Bộ nhân phần cứng 16bit x 16bit, thực hiện lệnh nhân trong 1 chu kỳ

- Bộ chia phần cứng 32bit : 16bit

- Có hỗ trợ bộ dao động nội với tần số từ 31Khz đến 8 Mhz hoặc 32 Mhz nếu qua bộ nhân 4 lần

- Được tích hợp bộ điều chỉnh điện áp, cho phép chíp có thể hoạt động khi điện áp nguồn bị rơi đột ngột (LDO- Low-Dropout)

- Được tích hợp chuẩn JTAG

- Có tính năng giám sát nguồn dao động, vi điều khiển sẽ chuyển sang chế độ shutdown khi bị sự cố ở nguồn xung cung cấp

Trang 17

- Được tích hợp Watchdog Timer với bộ dao động RC độc lập.

Hình 1.5 Sơ đồ khối của PIC24F.

Ngoại vi:

- 10-bit ADC, 10 kênh, tốc độ lấy mẫu: 500.210 mẫu/giây

- 03 bộ so sánh tương tự (analog comparator)

- 02 module truyền thông nối tiếp (UART), hỗ trợ các chuẩn giao tiếp LIN (Local Interconnect Network) và IRDA (Infrared Data Association)

- 02 module SPI (Serial_Peripheral_Interface_Bus)

- 02 module I2C (Inter-Integrated Circuit)

- 05 bộ Timer 16-bit

- 05 module Capture và 05 bộ PWM (Pulse Width Modulation)

Trang 18

- 01 module thời gian thực (RTCC - Real-Time Clock Calendar)

- Hỗ trợ giao tiếp song song (PMP - Parallel Master Port) với 16 đường địa chỉ và 8/16 đường dữ liệu

Hình 1.6 Sơ đồ khối của PIC24H.

So với PIC24F thì PIC24H có thêm module DMA (Direct Memory Access) và 16 kênh ADC với độ phân giải 12bit

Trang 19

1.3.2.2 Bộ điều khiển xử lý tín hiệu số 16-bit (dsPIC).

Hình 1.7 Sơ đồ khối của dsPIC.

Một số đặc tính cơ bản của dsPIC:

CPU:

- Tốc độ: 40 MIPS

- Dải nhiệt độ hoạt động: -40°C to +85°C

- Độ rộng bus dữ liệu: 16bit, độ dài mã lệnh: 24bit

- Không gian địa chỉ dành cho bộ nhớ chương trình lên đến 4M words, bộ nhớ dữ liệu: 64 Kbytes

- Tập lệnh gồm 83 lệnh cơ bản

- Module DSP:

- 16 thanh ghi công dụng chung 16bit

- Hai bộ tích lũy (Accumulator) 40bit

Trang 20

- Bộ nhân 16bit x 16bit

- Bộ chia 32bit/16bit và 16bit/16bit

- Bộ ghi dịch 40bit cho phép thực hiện các lệnh dịch/quay trong 1 chu kỳ lệnh

- Thực hiện biểu thức gồm phép toán nhân và cộng trong 1 chu kỳ nhờ bộ MAC (Multiply-Accumulate Unit)

- 8 kênh DMA với các tính năng:

- 2 Kbytes bộ đệm cho phép đọc/ghi dữ liệu từ/đến thiết bị ngoài trong khi CPU đang thực hiện lệnh

- Hỗ trợ ngắt DMA cho các thiết bị ngoài muốn trao đổi dữ liệu kiểu DMA

- 67 nguồn ngắt với 118 vector ngắt, trong đó:

mà không ảnh hưởng tới hoạt động của chip

- Module WT (Watchdog Timer) được tích hợp bộ dao động RC riêng

- Được tích hợp tới 16 bộ Timer/Counter 16bit (tùy loại chip):

- Các bộ Timer này có thể hợp thành 4 bộ Timer 32bit

- 01 bộ Timer có thể hoạt động như đồng hồ thời gian thực Time Clock) với nguồn dao động ngoài tần số 32.768 kHz

(Real 08 kênh Capture, xung đầu vào có thể là sườn lên hoặc xuống, 04

bộ đệm FIFO được trang bị cho 1 kênh

Trang 21

- 08 kênh PWM 16bit

- Truyền thông nối tiếp:

- 02 module 3-wire SPI

- 02 module I2C™, hỗ trợ các chế độ chủ tớ, 7-10 bit địa chỉ, tự pháthiện xung đột bus

- module UART, hỗ trợ ngắt khi truyền/nhận, khi xảy ra lỗi, trở lại trạng hoạt động khi đang ở chế độ ngủ (sleep mode) nếu nhận được bit start, bộ đệm truyền nhận có kích thước 4 byte

- Hỗ trợ chuẩn giao tiếp CAN (Controller Area Network) với 8 bộ đệm truyền và 32 bộ đệm nhận

- 08 kênh PWM hỗ trợ điều khiển động cơ

- 01 module Encoder hỗ trợ đọc các tín hiệu pha A, pha B từ

- 32 bit, kiến trúc RISC

- Xử lý song song 5 giai đoạn thực hiện lệnh (5-Stage Pipeline)

- Tần số làm việc tối đa: 80 MHz, tốc độ xử lý: 1.56 DMISP/Mhz (Dhrystone MIPS)

- Thực hiện phép nhân chia trong 1 chu kỳ

Embedded System:

- 02 tệp thanh ghi 32 bit

- Bộ nhớ đệm (Cache) cho phép tăng tốc đọc mã lệnh từ bộ nhớ Flash

- Tính năng:

- Dải điện áp hoạt động: 2.3V đến 3.6V

- Dung lượng bộ nhớ Flash: 32K đến 512Kb

Trang 22

- Dung lượng bộ nhớ SRAM: 8K đến 32K

- module I2C™

- 02 module UART bao gồm: 01 module RS232 và 01 module

RS485

- 01 module hồng ngoại (IrDA) hỗ trợ đọc Encoder

- Hỗ trợ trao đổi dữ liệu song song với chế độ 8/16 bit dữ liệu và 16 đường địa chỉ

- 01 module thời gian thực (RTCC- Real-Time Clock/Calendar)

- 05 bộ Timers/Counters 16-bit, có hỗ trợ kết hợp hai bộ 16 bit thànhmột bộ 32 bit

- 05 đầu vào Capture

- 05 đầu ra Compare/PWM

- 05 chân ngắt ngoài

- Các chân vào/ra có thể hoạt động xuất nhập ở tốc độ lên tới

80MHz

- Tính năng gỡ rối (Debugging):

- 02 giao diện cho phép lập trình (Programming) và gợi rối bao gồm:Giao diện

- 2 Wire Microchip và JTAG 4 Wire

Trang 23

Hình 1.8 Sơ đồ khối củaPIC32.

Các tính năng tương tự (Analog)

- 16 kênh ADC:

+ Độ phân giải: 10bit

+ Tốc độ biến đổi: 500Kbps

+ Có thể biến đổi trong khi CPU đang ở chế độ Sleep hoặc Idle

- 02 bộ so sánh tương tự (Analog Comparators)

Trang 24

CHƯƠNG 2 – TÌM HIỂU VỀ PIC 16F877A

2.1 Sơ Đồ Chân Của Vi Điều Khiển PIC16F877A.

Hình 2.1:Sơ đồ bố trí chân của PIC16F877A.

Trang 25

2.2 Một Vài Thông Số Về Vi Điều Khiển PIC 16F877A.

Là bộ vi điều khiển 8 bit, có các đặc tính nổi bật sau:

Bảng 2.1:Đặc tính nổi bật của VĐK PIC16F877A

- Vi điều khiển có tập lệnh rút gọn RISC(Reduced Instruction Set Computer)

- Tập lệnh gồm có 35 lệnh với độ dài 14 bit

- Tất cả các câu lệnh thực hiện trong một chu kì lệnh ngoại trừ một

số câu lệnh rẽ nhánh thực hiện trong 2 chu kì lệnh

- Tốc độ hoạt động tối đa là 20MHz với 1 chu kỳ lệnh là 200ns

- Bộ nhớ chương trình Flash 8Kx14 từ mã

- Bộ nhớ Ram 368x8 bytes

- Bộ nhớ EFPROM 256x 8 bytes

Khả năng của bộ vi xử lí này :

- Khả năng ngắt ( lên tới 14 nguồn ngắt trong vụ ngắt ngoài )

- Ngăn nhớ Stack được phân chia thành 8 mức

- Truy cập bộ nhớ bằng địa chỉ trực tiếp hoặc gián tiếp

- Nguồn khởi động lại (POR)

- Bộ tạo xung thời gian (PWRT) và bộ tạo dao động (OST)

- Bộ đếm xung thời gian (WDT) với nguồn dao động trên chip

(nguồn dao động RC ) hoạt động đáng tin cậy

Trang 26

- Có mã chương trình bảo vệ

- Chế độ SLEEP

- Có bảng lựa chọn dao động

- Công nghệ CMOS FLASH /EEPROM nguồn mức thấp, tốc độ cao

- Mạch chương trình nối tiếp có 2 chân

- Xử lý đọc/ghi tới bộ nhớ chương trình

- Dải điện thế hoạt động rộng : 2.0V đến 5.5V

- Nguồn sử dụng hiện tại 25 mA

- Dãy nhiệt độ công nghiệp thuận lợi;

- Công suất tiêu thụ thấp:

+ < 0.6mA với 5V, 4MHz

+ 20mA với nguồn 3V, 32 kHz

+ < 1mA nguồn dự phòng;

Các đặc tính nổi bật của thiết bị ngoại vi trên chip:

- Timer0: bộ đếm 8 bit với bộ chia tần 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 cả khi vi điều khiển hoạt động ở chế độ sleep

- Timer 2: bộ đếm 8 bít với bộ chia tần số, bộ postcaler

- Có 2 bộ Capture/so sánh, điều chế độ rộng xung (PWM) ;

- 8 kênh chuyển đổi ADC 10 bit, 2 bộ so sánh

- Các chuẩn giao tiếp nối tiếp SSP (Synchronous Serial Port), SPI vàI2C

- Bộ truyền nhận thông tin đồng bộ, dị bộ(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 và CS ở bên ngoài

Một đặc điểm nữa là bộ vi điều khiển PIC16F877 có bộ tạo dao động chủ trên chíp điều này sẽ tránh được những sai số không cần thiết trong việc

Trang 27

tạo xung dao động, vi điều khiển PIC16F877 có khả năng tự Reset bằng bộ WDT, và có thêm 256 byte EEPROM.

- 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 Timẻ với bộ dao đông trong

- Chế độ Sleep

Có thể hoạt động với nhiều dạng Oscillator khác nhau

2.3 Sơ Đồ Khối Của Vi Điều Khiển PIC 16F877A.

Trang 28

Hình 2.2:Sơ đồ khối của PIC16F877A.

Trang 29

Để mã hóa được địa chỉ của 8K word bộ nhớ chương trình, bộ đếm chương trình phải có dung lượng 14 bit ( PC<12:0>).

Vi điều khiển được reset, bộ đếm chương trình sẽ chỉ đến địa chỉ

Trang 30

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 trongbank 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 Sơ đồ cụ thể của bộ nhớ dữ liệu PIC 6F877A như sau:

Trang 31

Hình 2.4: Sơ đồ khối của PIC16F877A.

Bít RP1và bit RP0 trong thanh ghi STATUS (STATUS <6:5>) dùng đểlụa chọn bank làm việc

Trang 32

2.4.2.1 Các 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 loại: thanh ghi liên quan đến chức năng bên trong (CPU) và các 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 đề cập đến khi ta đề cậptới khối chức năng đó

Thanh ghi STATUS (03h,83h,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 bít 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

ghi, cho phép điều khiển chức năng pull-up của các chân trong PORTB, cá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 này cho phép

đọc và ghi, chứa các bít điều khiển và các bít cờ hiệu khi Timer0 bị tràn, ngắt

Trang 33

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 bít đ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 khối các chức năng ngoại vi,

các ngắt này cho phép bởi các bít điều khiển chứa trong thanh ghi PIE1

Thanh ghi PIE2 (8Dh): chứa các bít điều khiển ngắt của các khối chức

năng CCP2, SSP bus, ngắt của bộ so sánh và ngắt ghi vào bộ nhớ EEPROM

Thanh ghi PIR2 (0Dh): chứa các cờ ngắt của các khối chức năng

ngoại vị, các ngắt này được cho phép bời các bít điều khiển chứa trong thanh ghi PIE2

Thanh ghi PCON (8Eh): chứa các cờ hiệu cho biết trạng thái các chế

độ reset của vi điều khiển

2.4.2.2 Thanh Ghi Mục Đích Chung.

Trang 34

Các thanh ghi này có thể được truy xuất trực tiếp hoặc gián tiếp thông qua thanh ghi FSG (File Select Register) Đây là các thanh ghi dữ liệu thông thường, người sử dụng có thể tùy theo mục đích chương trình mà có thể dùng các thanh ghi này để chứa các biến số, hằng số, kết quả hoặc các tham số phục vụ cho chương trình.

2.5 Stack.

Stack không nằm trong bộ nhớ chương trình hay bộ nhớ dữ liệu mà là một vùng nhớ đặc biệt không cho phép đọc hay ghi Khi lệnh Call được thực hiện hay một ngắt xẩy ra làm chương trình bị rẽ nhánh, giá trị của bộ đếm chương trình PC tự động được vi điều khiển cất vào trong stack Khi một trong các lệnh RETURN, RETLW hoặc RETFIE được thực thi, giá trị PC sẽ

tự động được lấy ra từ stack, vi điều khiển sẽ thực hiện tiếp chương trình theo đúng quy trình định trước

Cần chú ý là không có cờ hiệu nào cho biết trạng thái stack, do đó ta không biết được khi nào stack tràn Bên cạnh đó tập lệnh của vi điều khiển dòng PIC cũng không có lệnh POP hay PUSH, các thao tác với bộ nhớ stack

sẽ hoàn toàn được điều khiển bởi CPU

2.6 Các Cổng Xuất Nhập Của PIC 16F877A.

Cổng xuất nhập (I/O port) chính là phương tiện mà vi điều khiển dùng

để tương tác với thế giới bên ngoài Sự tương tác này rất đa dạng và thông qua quá trình tương tác đó, chức năng của vi điều khiển được thể hiện 1 cách

rõ ràng

Một cổng xuất nhập của vi điều khiển bao gồm nhiều chân (I/O pin), tùy theo cách bố trí và chức năng của vi điều khiển mà số lượng cổng xuất nhập và số lượng chân trong mỗi cổng có thể khác nhau Bên cạnh đó vi điều khiển được tích hợp sẵn bên trong các đặc tính giao tiếp ngoại vi nên bên cạnh chức năng là cổng xuất nhập thông thường, một số chân xuất nhập còn

có thêm các chức năng khác để thực hiện sự tác động của các đặc tính ngoại

vi nêu trên với thế giới bên ngoài Chức năng của từng chân xuất nhập trong

Trang 35

mỗi cổng hoàn toàn có thể được xác lập và điều khiển được thông qua các thanh ghi SFR liên quan đến chân xuât nhập đó.

Vi điều khiển PIC 16F877A có 5 cổng xuất nhập, bao gồm PORTA, PORTB, PORTC, PORTD, PORTE Cấu trúc và chức năng của từng cổng xuất nhập sẽ được để cập ở phần sau

2.6.1 PORTA.

Port A là cổng hai chiều với độ rộng đường truyền là 6 bit Để điều

khiển việc truy xuất dữ liệu người ta dùng thanh ghi TRISA Nếu đặt bít TRISA = 1 thì lúc này cổng A sẽ tương ứng có các chân là chân vào Nếu xoábít TRISA = 0 thì lúc này cổng A sẽ tương ứng có các chân là chân ra Việc đọc cổng A chính là đọc trạng thái của các chân, trong khi đó việc viết phải qua việc viết các chốt của cổng Các chân của cổng A chủ yếu được sử dụng với mục đích chính là nhận tín hiệu tương tự hoặc làm các chân vào ra Riêng chân RA4 là chân đa hợp với chân vào bộ Timer 0 và khi đó nó trở thành chân RA4/T0CKI Chân này như một đầu vào của Schmitt Trigger và nó mở đầu ra Các chân khác của cổng A là chân vào với bộ TTL Việc điều khiển các chân này thông qua việc đặt hay xoá các bít của thanh ghi ADCON1 Thanh ghi TRISA điều khiển trực tiếp các chân của cổng A, khi sử dụng các chân này để nhận tín hiệu tương tự vào ta phải chắc chắn rằng các bít của thanh ghi TRISA đã được đặt rồi

2.6.2 PORTB.

Cổng B là cổng hai chiều với độ rộng đường truyền là 8 bit.Tương ứng

với nó để điều khiển trực tiếp dữ liệu ta sử dụng thanh ghi TRISB Nếu đặt bítTRISB = 1 thì lúc này các chân của cổng B được định nghĩa là chân vào Nếu xoá bít TRISB = 0 thì lúc này các chân của cổng B được định nghĩa là chân

ra Nội dung của chốt ra có thể chọn trên mỗi chân

Có 3 chân của cổng B có đa hợp với các chương trình vận hành bằng điện áp thấp Đó là các chân sau: RB3/PGM, RB6/PGC, RB7/PGD Sự thay đổi hoạt động của những chân này được miêu tả ở trong phần đặc tính nổi bật Mỗi

Trang 36

chân của cổng B có một khả năng dừng bên trong nhưng yếu Điều này được trình bày bởi việc xoá bít RBPU (bít 7 của thanh ghi OPTION_REG) Khả năng dừng này sẽ tự động tắt đi khi các chân của cổng được định nghĩa là chân ra Khả năng dừng này sẽ tự động mất đi khi ta RESET Bốn chân của cổng B, từ RB7 đến RB4 có đặc tính là ngắt khi thay đổi trạng thái Chỉ

những chân được định dạng là những chân vào thì ngắt này mới tồn tại Một vài chân RB7:RB4 được định dạng như chân ra nó thi hành ngắt trên sự thay đổi so sánh Chân vào RB7:RB4 được so sánh với giá trị cũ của chốt ở lần đọc cuối cùng của cổng B Sự ghép đôi không khớp chân ra của RB7:RB4 bằng lệnh OR làm phát sinh ngắt với cờ bít RBIF của thanh ghi INTCON Ngắt này có thể khởi động thiết bị từ trạng thái SLEEP

2.6.3 PORTC.

Cổng C là cổng hai chiều với độ rộng đường truyền là 8 bit Tương ứng

với việc điều khiển nó là thanh ghi TRISC Nếu đặt bít TRISC = 1 thì tương ứng với chân của cổng C là chân vào Nếu ta xoá bít TRISC = 0 thì tương ứngvới nó chân của cổng C là chân ra Đặt nội dung của chốt ra có thể đặt trên chân chọn Cổng C đa hợp với việc vận hành thiết bi ngoại vi Chân của cổng

C thông qua bộ đệm Schmitt Trigger đầu vào

Khi chế độ I2C hoạt động, thì các chân cổng PORTC<4:3> có thể được sắp xếp với mức I2C thường hoặc với mức SMBUS bằng cách sử dụng bit CKE (SSPSTAT<6>) là bít 6 của thanh ghi SSPSTAT

Khi vận hành các thiết bị ngoại vi bằng việc xác định bít TRISC của mỗi châncổng C Một số phần phụ có thể ghi đè lên bít TRISC làm cho chân này trở thành chân ra, trong khi đó thì một số phần phụ khác lại ghi đè lên bít TRISC làm cho chân này trở thành chân vào Từ khi những bit TRISC ghi đè thì trong việc tác động trong các thiết bị ngoại vi là có thể, những lệnh đọc-sửa- ghi (BSF, BCF, XORWF) với thanh ghi TRISC như là nơi gửi tới sẽ được tránh Người sử dụng nên đề cập tới việc phân chia kết nối các thiết bị ngoại

vi cho việc set chính xác các bit TRISC

Trang 37

2.6.4 PORTD.

Cổng D có 8 bít có bộ đệm đầu vào Schmitt Trigger Mỗi chân được

sắp xếp riêng lẻ như đầu vào hoặc đầu ra Cổng D cũng có thể được sắp xếp như là một cổng vi xử lý 8 bit (cổng phụ song song) bằng việc đặt bít điều khiển PSPMODE(TRISE<4>) và trong chế độ này vùng đệm đầu vào là TTL

2.6.5 PORTE

Cổng E có chân là RE0/RD/AN5, RE1/WR/AN6, RE2/CS/AN7 Các

chân này có thể sắp xếp riêng lẻ là các đầu vào hoặc các đầu ra, và các chân

có vùng đệm đầu vào là các mạch Schmitt Trigger

Cổng vào/ra E trở thành đầu vào điều khiển cho cổng vi xử lý khi bit

PSPMODE(TRISE<4>) được đặt Và trong chế độ này phải chắc chắn rằng các bit TRISE<2:0> được đặt (các chân được định dạng là các đầu vào số), thanh ghi ADCON1 phải được định dạng cho việc số vào/ra và vùng đệm đầu vào là TTL

Các chân cổng E cũng được tích hợp với các đầu vào tương tự và trong trường hợp này các chân sẽ đọc là ‘0’

Thanh ghi TRISE điều khiển trực tiếp các chân RE, ngay cả khi chúng được dùng là các đầu vào tương tự

2.7 Các Bộ TIMER Của PIC 16F877A.

Trang 38

Vi điều khiển PIC 16F8777A có 3 bộ Timer là : Timer0, Timer1, Timer2.

2 . 7.1 Bộ Timer0.

Hình 2.5: Sơ Đồ Khối Timer0.

Là bộ định thời hoặc bộ đếm có những ưu điểm nổi bật sau

- 8 bit cho timer hoặc bộ đếm

- Có khả năng đọc và ghi

- Có thể dùng đồng hồ bên trong hoặc bên ngoài

- Có thể chọn cạnh xung của xung đồng hồ

- Có hệ số chia cho xung đầu vμo có thể lập trình lại bằng phần o có thể lập trình lại bằng phần mềm

- Ngắt tràn

Hoạt động của Timer 0:

Trang 39

Timer 0 có thể hoạt động như một bộ định thời hoặc một bộ đếm Việc chọn bộ định thời hoặc bộ đếm có thể được xác lập bằng việc xoá hoặc đặt bítTOCS của thanh ghi OPTION_REG<5>

Nếu dùng hệ số chia xung đầu vào thì xoá bit PSA của thanh ghi

OPTION_REG<3>

Trong chế độ bộ định thời được lựa chọn bởi việc xoá bit T0CS

(OPTION REG<5>), nó sẽ được tăng giá trị sau một chu kỳ lệnh nếu không chọn hệ số chia xung đầu vào Và giá trị của nó được viết tới thanh ghi

TMR0

Chế độ đếm được lựa chọn bởi việc set bit T0CS (OPTION REG<5>) Trong chế độ bộ đếm, nó sẽ được tăng ở xung đi xuống nếu xoá bit

T0SE(OPTION_REG<4>) hoặc ở xung đi lên nếu set bit T0SE Và giá trị của

nó được viết tới thanh ghi TMR0

Khi dùng xung clock bên ngoài cho bộ định thời Timer0 và không dùng hệ số chia clock đầu vào Timer0 thì phải đáp ứng các điều kiện cần thiết để có thể hoạt động đó là phải bảo đảm xung clock bên ngoài có thể đồng bộ với pha xung clock bên trong (TOSC)

Ngắt của bộ Timer0

Ngắt của bộ Timer 0 được phát sinh ra khi thanh ghi TMR0 bị tràn tức

từ FFh quay về 00h Khi đó bít T0IF của thanh ghi INTCON<2> sẽ được set Bít này phải được xóa bằng phần mềm nếu cho phép ngắt bit T0IE của thanh ghi INTCON<5> được set Timer0 bị dừng hoạt ở chế độ SLEEP, ngắt Timer

0 không đánh thức bộ xử lý ở chế độ SLEEP

Trang 40

Hình 2.6:Thanh ghi OPTION_REG.

bit 5 TOCS lựa chọn nguồn clock

1=Clock ngoài từ chân T0CKI

0=Clock trong Focs/4

bit 4 T0SE bit lựa chon sườn xung clock

1=Timer 0 tăng khi chân T0CKI tử cao xuống thấp(sườn âm)

0=Timer 0 tăng khi chân T0CKI tử thấp lên cao(sườn dương)

bit 3 PSA bit gán bộ chia xung đầu vào

1=gán bộ chia Prescaler cho WDT

0=gán bộ chia Prescaler cho Timer 0

Bảng 2.3: Bit 2:0 PS2:PS1 lựa chọn hệ số chia xung

Ngày đăng: 08/05/2015, 01:05

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. TUT01.03 “PIC16F877A từ dễ tới khó” - Nguyễn Trung Chính, thuộc chuyên mục “Cơ bản về vi điều khiển và PIC” : http://picvietnam.com/forum 2. TUT01.01 “Lập trình cho PIC bằng CCS ver3.242” – Nguyễn Chí Linh http://picvietnam.com/forum Sách, tạp chí
Tiêu đề: PIC16F877A từ dễ tới khó” - Nguyễn Trung Chính, thuộc chuyên mục “Cơ bản về vi điều khiển và PIC” : "http://picvietnam.com/forum"2. TUT01.01 “Lập trình cho PIC bằng CCS ver3.242” – Nguyễn Chí Linh
3. TUT040.2 “Mạch phát triển PIC16F877A” – Phạm Đức Mạnh http://picvietnam.com/forum Sách, tạp chí
Tiêu đề: Mạch phát triển PIC16F877A” – Phạm Đức Mạnh
4. “Vi điều khiển PIC – Học nhanh đi vào ứng dụng” – Falleaf, diễn đàn picvietnam.com Sách, tạp chí
Tiêu đề: Vi điều khiển PIC – Học nhanh đi vào ứng dụng
5. “Tài liệu sử dụng CCS tiếng Việt” – Trần Xuân Trường, ĐHBK TP HCM 6. “PIC16F877A Datasheet” – http://www.microchip.com Sách, tạp chí
Tiêu đề: Tài liệu sử dụng CCS tiếng Việt” – Trần Xuân Trường, ĐHBK TP HCM6. “PIC16F877A Datasheet” –
9. Các trang wep khác: http://diendandientu.com http:// www.automation.org.vn Link

HÌNH ẢNH LIÊN QUAN

Hình 1.1 Kiến trúc Von Neuman - Ứng dụng vi điều khiển PIC vào thiết kế bộ volmet điện tử
Hình 1.1 Kiến trúc Von Neuman (Trang 11)
Hình 1.2 Kiến trúcHarvard. - Ứng dụng vi điều khiển PIC vào thiết kế bộ volmet điện tử
Hình 1.2 Kiến trúcHarvard (Trang 13)
Hình 1.3  Các dòng vi điều khiển của Microchip. - Ứng dụng vi điều khiển PIC vào thiết kế bộ volmet điện tử
Hình 1.3 Các dòng vi điều khiển của Microchip (Trang 14)
Hình 1.4  Sơ đồ khối vi điều khiển 8bit của Microchip. - Ứng dụng vi điều khiển PIC vào thiết kế bộ volmet điện tử
Hình 1.4 Sơ đồ khối vi điều khiển 8bit của Microchip (Trang 15)
Hình 1.5  Sơ đồ khối của PIC24F. - Ứng dụng vi điều khiển PIC vào thiết kế bộ volmet điện tử
Hình 1.5 Sơ đồ khối của PIC24F (Trang 17)
Hình 1.7 Sơ đồ khối của dsPIC. - Ứng dụng vi điều khiển PIC vào thiết kế bộ volmet điện tử
Hình 1.7 Sơ đồ khối của dsPIC (Trang 19)
Hình 1.8  Sơ đồ khối củaPIC32. - Ứng dụng vi điều khiển PIC vào thiết kế bộ volmet điện tử
Hình 1.8 Sơ đồ khối củaPIC32 (Trang 23)
2.1. Sơ Đồ Chân Của Vi Điều Khiển PIC16F877A. - Ứng dụng vi điều khiển PIC vào thiết kế bộ volmet điện tử
2.1. Sơ Đồ Chân Của Vi Điều Khiển PIC16F877A (Trang 24)
Hình 2.2:Sơ đồ khối của PIC16F877A. - Ứng dụng vi điều khiển PIC vào thiết kế bộ volmet điện tử
Hình 2.2 Sơ đồ khối của PIC16F877A (Trang 28)
Hình 2.3: Bộ nhớ chương trình  của PIC16F877A. - Ứng dụng vi điều khiển PIC vào thiết kế bộ volmet điện tử
Hình 2.3 Bộ nhớ chương trình của PIC16F877A (Trang 29)
Hình 2.4: Sơ đồ khối của PIC16F877A. - Ứng dụng vi điều khiển PIC vào thiết kế bộ volmet điện tử
Hình 2.4 Sơ đồ khối của PIC16F877A (Trang 31)
Hình 2.5: Sơ Đồ Khối Timer0. - Ứng dụng vi điều khiển PIC vào thiết kế bộ volmet điện tử
Hình 2.5 Sơ Đồ Khối Timer0 (Trang 38)
Hình 2.10 :Sơ Đồ Khối Bộ Chuyển Đổi ADC. - Ứng dụng vi điều khiển PIC vào thiết kế bộ volmet điện tử
Hình 2.10 Sơ Đồ Khối Bộ Chuyển Đổi ADC (Trang 47)
Hình 2.11 :Các cách lưu kết quả chuyển Đổi ADC. - Ứng dụng vi điều khiển PIC vào thiết kế bộ volmet điện tử
Hình 2.11 Các cách lưu kết quả chuyển Đổi ADC (Trang 48)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w