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

Nghiên cứu về vi điều khiển pic và mạch điện ứng dụng

100 657 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 100
Dung lượng 4,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ể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ý

Trang 1

BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

BÁO CÁO THỰC TẬP TỐT NGHIỆP

Nghiên cứu về vi điều khiển pic và mạch

điện ứng dụng

Giáo viên hướng dẫn: Nguyễn Tuấn Anh

Sinh viên thực hiện : Lại văn Đức

Trang 2

MỤC LỤC

LỜI NỐI ĐẦU

CHƯƠNG 1 TỔNG QUAN VỀ VI ĐIỀU KHIỂN1.1 PIC LÀ GÌ ??

1.2 KIẾN TRÚC PIC

1.4 RISC VÀ CISC

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

1.6 MẠCH NẠP PIC

CHƯƠNG 2 VI ĐIỀU KHIỂN PIC16F877A2.1 SƠ ĐỒ CHÂN VI ĐIỀU KHIỂN PIC16F877A

2.2 MỘT VÀI THÔNG SỐ VỀ VI ĐIỀU KHIỂN PIC16F877A

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

2.4 TỔ CHỨC BỘ NHỚ

2.5 BỘ NHỚ DỮ LIỆU

2.6 MỘT SỐ THANH GHI ĐẶC BIỆT

2.7 STACK

2.8 CỔNG VÀO RA

Trang 3

2.16 GIAO TIẾP NỐI TIẾP

2.17 GIAO TIẾP SONG SONG

2.18 TỔNG QUAN VỀ MỘT SỐ ĐẶC TÍNH CỦA CPU

PHUÏ LUÏC 1 CODE CỦA CHƯƠNG TRÌNH

Trang 4

LỜI NÓI ĐẦU

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

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á

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

Nguyễn Tuấn Anh 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 “ĐIỀU KHIỂN ĐÓNG MỞ

CỬA TỰ ĐỘNG”, 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 cáo chưa đầy đủ nên báocáo không tránh khỏi những thiếu sót và hạn chế, em rấ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ạntrong 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êmhoàn thiện

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

Trang 5

CHƯƠNG 1 TỔNG QUAN VỀ

VI ĐIỀU KHIỂN PIC

1.1 PIC LÀ GÌ ??

1.1.1 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

1.1.2 Tại sao lại chọn pic

Hiện nay trên thị trường cĩ rất nhiều họ vi điều khiển như 8051,

Motorola 68HC, AVR, ARM, trong đĩ cĩ vi điều khiển 8051 đã được học tại trường đại học.Em đã quyết định chọn họ vi điều khiển PIC để mở rộng vốn kiếnthức và phát triển các ứng dụng trên cơng cụ này vì các nguyên nhân sau:

 Họ vi điều khiển này cĩ thể tìm mua dễ dàng tại thị trường Việt Nam Giá thành khơng quá đắt Cĩ đầy đủ các tính năng của một vi điều khiển khi hoạt động độc lập Là một sự bổ sung rất tốt về kiến thức cũng như về ứng dụng cho họ vi điều khiển mang tính truyền thống: họ vi điều khiển 8051

 Số lượng người sử dụng họ vi điều khiển PIC Hiện nay 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,…

 Sự hỗ trợ của nhà sản xuất về trình biên dịch, các cơng cụ lập trình, nạp chương trình từ đơn giản đến phức tạp,…

 Các tính năng đa dạng của vi điều khiển PIC ,và các tình năng này ngày càng được phát triển

Để cĩ thể giải thích cụ thể lý do tại sao chọn pic là đối tượng nghiên cứu trong

đồ án này em xin đưa ra một sư so sánh giữa vi điều khiển pic và 8051 (một dịng vi điều khiển đã khá quen thuộc trong qua trình học ở trường)

Trang 6

So sánh với vi điều khiển 8051

Bộ vi điều khiển 8051 là bộ vi điều khiển đầu tiên thuộc họ vi điều khiển x51 được sản xuất bởi cơng ty intel,siemen,Advanced Micro Devices, Fujitsu, Philips

Sau đây là bảng so sánh các thơng số chính của hai dịng vi điều khiển này

Vi điều khiển 8051 Vi điều khiển PIC

Đặc tính Dung lượng Đặc tính Dung lượng

ROM trên chip 4 K byte Rom trên chip 8 Kb

Bộ định thời 2 Bộ định thời 3

Các chân vào ra 32 Các chân vào ra 40

Cổng nối tiếp 1 Cổng nối tiếp 2

Bảng 1.1

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

Trang 7

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

1.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:

PIC10 PIC12 PIC16 PIC18

Vi điều khiển 32bit

Vi điều khiển 16bit

Trang 8

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

- 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.2 Sơ đồ khối vi điều khiển 8bit của Microchip

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

1.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.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.1.3.1.3.PIC16

Trang 9

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”

1.1.3.1.4 PIC18

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.1.3.2 Vi điều khiển 16bit

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

1.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ỳ

Trang 10

- 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

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

Trang 12

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)

- 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

Trang 13

Hình 1.4.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

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

Trang 14

Hình 1.5 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

Trang 15

Module DSP:

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

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

- 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 đó:

Trang 16

- 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 (Real-Time Clock) với nguồn dao động ngoài tần số 32.768 kHz

+ 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

+ 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át hiệnxung đột bus

+ 02 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ừ Encoder ngoài

- 02 module ADC, tốc độ 1.1 Mbps (ADC 10 bit) hoặc 500Kbps (ADC 12bit)

1.1.3.3 Vi điều khiển 32bit

Trang 17

- 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

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

- 02 module I2C™

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

Trang 18

- 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ành một

Trang 19

Hình 1.6 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

Trang 20

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

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

1.2 Kiến trúc của 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 Harvard

Hình1.7.kiến trúc Harvard và von-neumann

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

Trang 21

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 trên

1.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 (ComplexInstruction 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)

Trang 22

1.4 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, … Ngồ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,…

Ở đây em chọn ngơn ngữ lập trình cho pic là ngơn ngữ bậc cao C vì đây là ngơn ngữ dễ tiếp cận và rất mạnh

+ Phần mềm biên dịch chương trình cho pic

Để viết firmware cho PIC thì cĩ rất nhiều phần mềm, HTPIC, CCS, C18, C30, PICBasic, mikroC, mikroBasic, mikroPascal, CC5X, IAR for PIC

+ Mỗi loại này đều cĩ những ưu điểm và nhược điểm riêng ta cĩ thể điểm qua như sau:

- Với HTPIC, trình dịch này cĩ thể dịch cho gần như mọi loại PIC, HTPIC cho PIC2/16, HTPICC18 cho PIC18, và HTDSPIC cho dspic Trước kia thì HTPIC được nhúng trong MPLAB, hiện nay thì HTPIC đã cĩ IDE riêng là HTTIDE phát triển trên nền Java, tơi đánh giá đây là một trong những IDE cĩ giao diện đẹp nhất, nhưng hơi khĩ dùng

Ưu điểm của nĩ là cú pháp rất gần với C chuẩn, cơ cấu dịch rất thơng minh trongviệc chuyển bank khiến cho file hex sinh ra cĩ kích thước nhỏ Nhược điểm, nĩ

là trình dịch đắt nhất cho PIC, những lệnh cĩ sẵn hạn chế gần như chẳng cĩ gì, chỉ được vài lệnh đọc ghi EEPROM, FLASH và vài lệnh xử lý số

- Với CCS tập lệnh cĩ sẵn của nĩ khá lớn, ta cĩ thể sử dụng dễ dàngm, cĩ IDE riêng, CCS cịn cĩ ICD riêng, đây là một trong những mạch nạp, debug cho PIC thuộc hàng nhanh nhất

- tuy nhiên nếu ta viết bằng CCS thì khơng thể viết được cho họ khác ví dụ như

8051 chẳng hạn, cịn với HTPIC thì viết lại cho dịng nào cũng được thêm nữa

là CCS cĩ file hex dịch ra lớn, mặc dù hiếm khi viết hết Flash của PIC

Với C18,C30 hai thằng này là sản phẩm của Microchip, C18 cũng phát triển theohướng của HTPIC, tui đánh giá cao C18 Cịn C30 cĩ tập lệnh ăn sẵn dành cho DSP dùng được Bộ language toolsuit của C30 khá đầy đủ

- Mikrobasic, mikroC, mirkoPascal, phát triển theo hướng giống như CCS, mỗi loại đều cĩ IDE riêng, tập lệnh ăn sẵn cuả nĩ khá lớn đủ hết mọi thứ, bác nào caothủ PIC rùi thì dùng thằng này cho nhanh cũng tốt , nhưng các loại trình biên dịch này cịn nhược điểm cịn phải sửa chữa,như cơ cấu gọi chương trình con

Trang 23

trong ngắt Điểm hay nhất của bọn Mikro chính là mấy cái kit phát triển của nĩ cho PIC.

+ Đĩ là một vài trình biên dịch cho pic và trong các trình biên dịch kể trên thì CCS đã được chọn lựa để viết chương trình cho pic

1.5 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ìnhMPLAB

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ạpcá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 PICSTARTPLUS 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

Ngồi ra hiện nay cịn rất nhiều các mạch nạp khác nữa và trong thời gian nghiêncứu đề tài em quyết định chọn mạch nạp PG2C vì mạch nạp này cĩ mốt số ưu điểm sau : dễ làm,rẻ tiền,cĩ thể nạp được khá nhiều chip và cĩ thể hồn thành trong thời gian ngắn

Sau đây là sơ đồ mạch nạp PG2C :

Trang 24

Hình 1.8(Trích từ www.olimex.com/dev)

Trang 25

Chương Hai vi điều khiển 16F877A 2.1.Sơ đồ chân

Hình 2.1 (nguồn datasheet.com)

Trang 26

2.2.Một số thông số về vi điều khiển 16F877A

 Sử dụng công nghệ tích hợp cao RISC CPU

 Người lập trình có thể sử dụng với 35 câu lệnh đơn giản

 Tất cả các câu lệnh thực hiện trong một số chu kì lệnh ngoại trừ một số câu lệnh rẽ nhánh thực hiện trong hai chu kì lệnh

 Tốc độ hoạt động là : - xung đồng hồ vào là DC – 20Mhz

- chu kì lệnh thực hiện trong 200ns

 Bộ nhớ chương trình flash 8Kx14 words

 Bộ nhớ RAM 368x8 bytes

 Bộ nhớ EEPROM 256x8 bytes

Khả năng của bộ 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 làm 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ộ tao giao động (OST)

+ Bộ đếm xung thời gian (WDT) với nguồn giao động trên chip (nguồn giao động RC) hoạt động đáng tin cậy

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

+ Phương thức cất giữ sleep

+ Có bảng lựa chọn giao động

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

+ Thiết kế hoàn toàn tĩnh

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

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

+ Dải nhiệt độ công nghiệp và thuận lợi

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

< 0.6 mA với 5v,4 Mhz

20 µ A với nguồn 3V ,32 Mhz

< 1 µ A nguồn dự phỏng

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

Trang 27

 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

Trang 28

2.3 Sơ đồ khối vi điều khiển 16f877A

Hình 2.2(nguồn datasheet.com)

Trang 29

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

đến địa chỉ 0004h (Interrupt vector)

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

Hình 2.3 (nguồn datasheet)

2.5.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 chungGPR (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

Trang 30

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 PIC16F877A như sau:

Hình 2.4 (nguồn datasheet)

Trang 31

2.6.1.SAU ĐÂY LÀ MỘT SỐ CÁC THANH GHI ĐẶC BIỆT

Đâ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

Trang 32

PC Do vậy khi dùng lệnh CALL,GOTO chỉ đến hai bit PCLATH <4:3> đó cũngchính là hai chỉ các trạng thái của bộ nhớ chương trình.

Trang 33

Hình 2.11(nguồn datasheet.com)

2.6.2.THANH GHI MUÏC ÑÍCH CHUNG GPR

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.7.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 khi 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 hat RETFIE được thực thi, giá

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

Trang 34

Bộ nhớ Stack trong vi điều khiển PIC họ 16F87xA có khả năng chứa được 8 địa chỉ và hoạt động theo cơ chế xoay vòng Nghĩa là giá trị cất vào bộ nhớ Stack lầnthứ 9 sẽ ghi đè lên giá trị cất vào Stack lần đầu tiên và giá trị cất vào bộ nhớ Stack lần thứ 10 sẽ ghi đè lên giá tri 6 cất vào Stack lần thứ 2

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.8 CỔNG VÀO RA

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 một 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 đó, do 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ể hiện sự tác động của các đặc tính ngoại vi nêu trên đối vớithế giới bên ngoài Chức năng của từng chân xuất nhập trong 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 PIC16F877A có 5 cổng xuất nhập, bao gồm PORTA, PORTB, PORTC, PORTD và PORTE Cấu trúc và chức năng của từng cổng xuất nhập sẽ được đề cập cụ thể trong phần sau

2.8.1 PORTA

PORTA (RPA) bao gồm 6 I/O pin Đây là các chân “hai chiều” (bidirectional pin), nghĩa là có thể xuất và nhập được Chức năng I/O này được điều khiển bởi thanh ghi TRISA (địa chỉ 85h) Muốn xác lập chức năng của một chân trong PORTA là input, ta “set” bit điều khiển tương ứng với chân đó trong thanh ghi TRISA và ngược lại, muốn xác lập chức năng của một chân trong PORTA là output, ta “clear” bit điều khiển tương ứng với chân đó trong thanh ghi TRISA Thao tác này hoàn toàn tương tự đối với các PORT và các thanh ghi điều khiển tương ứng TRIS (đối với PORTA là TRISA, đối với PORTB là TRISB, đối với PORTC là TRISC, đối với PORTD là TRISD và đối với PORTE là TRISE) Bêncạnh đó PORTA còn là ngõ ra của bộ ADC, bộ so sánh, ngõ vào analog ngõ vào

Trang 35

xung clock của Timer0 và ngõ vào của bộ giao tiếp MSSP (Master Synchronous Serial Port) Đặc tính này sẽ được trình bày cụ thể trong phần sau

Cấu trúc bên trong và chức năng cụ thể của từng chân trong PORTA sẽ được trình bày cụ thể trong Phụ lục 1

Các thanh ghi SFR liên quan đến PORTA bao gồm:

PORTA (địa chỉ 05h) : chứa giá trị các pin trong PORTA

TRISA (địa chỉ 85h) : điều khiển xuất nhập

CMCON (địa chỉ 9Ch) : thanh ghi điều khiển bộ so sánh

CVRCON (địa chỉ 9Dh) : thanh ghi điều khiển bộ so sánh điện áp

ADCON1 (địa chỉ 9Fh) : thanh ghi điều khiển bộ ADC

2.8.2 PORTB

PORTB (RPB) gồm 8 pin I/O Thanh ghi điều khiển xuất nhập tương ứng là TRISB Bên cạnh đó một số chân của PORTB còn được sử dụng trong quá trình nạp chương trình cho vi điều khiển với các chế độ nạp khác nhau PORTB còn liên quan đến ngắt ngoại vi và bộ Timer0 PORTB còn được tích hợp chức năng điện trở kéo lên được điều khiển bởi chương

trình

Các thanh ghi SFR liên quan đến PORTB bao gồm:

PORTB (địa chỉ 06h,106h) : chứa giá trị các pin trong PORTB

TRISB (địa chỉ 86h,186h) : điều khiển xuất nhập

OPTION_REG (địa chỉ 81h,181h) : điều khiển ngắt ngoại vi và bộ Timer0

2.8.3 PORTC

PORTC (RPC) gồm 8 pin I/O Thanh ghi điều khiển xuất nhập tương ứng là TRISC Bên cạnh đó PORTC còn chứa các chân chức năng của bộ so sánh, bộ Timer1, bộ PWM và các chuẩn giao tiếp nối tiếp I2C, SPI, SSP, USART

Các thanh ghi điều khiển liên quan đến PORTC:

PORTC (địa chỉ 07h) : chứa giá trị các pin trong PORTC

TRISC (địa chỉ 87h) : điều khiển xuất nhập

2.8.4 PORTD

PORTD (RPD) gồm 8 chân I/O, thanh ghi điều khiển xuất nhập tương ứng là TRISD PORTD còn là cổng xuất dữ liệu của chuẩn giao tiếp PSP (Parallel Slave Port)

Trang 36

Thanh ghi PORTD : chứa giá trị các pin trong PORTD

Thanh ghi TRISD : điều khiển xuất nhập

Thanh ghi TRISE : điều khiển xuất nhập PORTE và chuẩn giao tiếp PSP

Các thanh ghi liên quan đến PORTE bao gồm:

PORTE : chứa giá trị các chân trong PORTE

TRISE : điều khiển xuất nhập và xác lập các thông số cho chuẩn giao tiếp PSP

ADCON1 : thanh ghi điều khiển khối ADC

2.9 TIMER 0

Đây là một trong ba bộ đếm hoặc bộ định thời của vi điều khiển PIC16F877A Timer0 là bộ đếm 8 bit được kết nối với bộ chia tần số (prescaler) 8 bit Cấu trúccủa Timer0 cho phép ta lựa chọn xung clock tác động và cạnh tích cực của xung clock Ngắt Timer0 sẽ xuất hiện khi Timer0 bị tràn Bit TMR0IE (INTCON<5>)

là bit điều khiển của Timer0

TMR0IE=1 cho phép ngắt Timer0 tác động, TMR0IF= 0 không cho phép ngắt Timer0 tác động Sơ đồ khối của Timer0 như sau:

Trang 37

Muốn Timer0 hoạt động ở chế độ counter ta set bit TOSC (OPTION_REG<5>) Khi đó xung tác động lên bộ đếm được lấy từ chân RA4/TOCK1 Bit TOSE (OPTION_REG<4>) cho phép lựa chọn cạnh tác động vào bột đếm Cạnh tác động sẽ là cạnh lên nếu TOSE=0 và

cạnh tác động sẽ là cạnh xuống nếu TOSE=1

Khi thanh ghi TMR0 bị tràn, bit TMR0IF (INTCON<2>) sẽ được set Đây chính

là cờ ngắt của Timer0 Cờ ngắt này phải được xóa bằng chương trình trước khi

bộ đếm bắt đầu thực hiện lại quá trình đếm Ngắt Timer0 không thể “đánh thức”

vi điều khiển từ chế độ sleep

Bộ chia tần số (prescaler) được chia sẻ giữa Timer0 và WDT (Watchdog Timer).Điều đó có nghĩa là nếu prescaler được sử dụng cho Timer0 thì WDT sẽ không

Trang 38

ghi OPTION_REG Bit PSA (OPTION_REG<3>) xác định đối tượng tác động của prescaler Các bit PS2:PS0 (OPTION_REG<2:0>) xác định tỉ số chia tần số của prescaler Xem lại thanh ghi OPTION_REG để xác định lại một cách chi tiết

về các bit điều khiển trên Các lệnh tác động lên giá trị thanh ghi TMR0 sẽ xĩa chế độ hoạt động của prescaler Khi đối tượng tác động là Timer0, tác động lên giá trị thanh ghi TMR0 sẽ xĩa prescaler nhưng khơng làm thay đổi đối tượng tác động của prescaler Khi đối tượng tác động là WDT, lệnh CLRWDT sẽ xĩa prescaler, đồng thời prescaler sẽ ngưng tác vụ hỗ trợ cho WDT

Các thanh ghi điều khiển liên quan đến Timer0 bao gồm:

 TMR0 (địa chỉ 01h, 101h) : chứa giá trị đếm của Timer0

 INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): cho phép ngắt hoạt động (GIE

Tương tự như Timer0, Timer1 cũng có hai chế độ hoạt động: chế độ định thời (timer) với xung kích là xung clock của oscillator (tần số của timer bằng ¼ tần số của oscillator) và chế độ đếm (counter) với xung kích là xung phản ánhcác sự kiện cần đếm lấy từ bên ngoài thông qua chân RC0/T1OSO/T1CKI (cạnh tác động là cạnh lên) Việc lựa chọn xung tác

động (tương ứng với việc lựa chọn chế độ hoạt động là timer hay counter) được điều khiển bởi bit TMR1CS (T1CON<1>)

Sau đây là sơ đồ khối của Timer1:

Trang 39

RC0/T1OSO/T1CKI Timer1 có hai chế độ đếm là đồng bộ (Synchronous) và bất đồng bộ (Asynchronous)

Chế độ đếm được quyết định bởi bit điều khiển (T1CON<2>)

Khi xung đếm lấy từ bên ngoài sẽ không được đồng bộ hóa với xung clock bên trong, Timer1 sẽ tiếp tục quá trình đếm khi vi điều khiển đang ở chế

độ sleep và ngắt do Timer1 tạo ra khi bị tràn có khả năng “đánh thức” vi điều khiển Ở chế độ đếm bất đồng bộ, Timer1 không thể được sử dụng để làm nguồnxung clock cho khối CCP(Capture/Compare/Pulse width modulation)

Khi xung đếm vào Timer1 sẽ được đồng bộ hóa với xung clock bên trong Ở chế độ này Timer1 sẽ không hoạt động khi vi điều khiển đang ở chế độ sleep Các thanh ghi liên quan đến Timer1 bao gồm:

 INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): cho phép ngắt hoạt động (GIE

và PEIE)

 PIR1 (địa chỉ 0Ch): chứa cờ ngắt Timer1 (TMR1IF)

PIE1( địa chỉ 8Ch): cho phép ngắt Timer1 (TMR1IE)

Trang 40

 TMR1H (địa chỉ 0Eh): chứa giá trị 8 bit cao của bộ đếm Timer1

 T1CON (địa chỉ 10h): xác lập các thông số cho Timer1

2.11.TIMER 2

Timer2 là bộ định thời 8 bit và được hỗ trợ bởi hai bộ chia tần số prescaler va postscaler Thanh ghi chứa giá trị đếm của Timer2 là TMR2 Bit cho phép ngắt Timer2 tác động là TMR2ON (T2CON<2>) Cờ ngắt của Timer2 là bit TMR2IF (PIR1<1>) Xung ngõ vào (tần số bằng ¼ tần số oscillator) được đưa qua bộ chia tần số prescaler 4 bit (với các tỉ số chia tần số là 1:1, 1:4 hoặc 1:16 và được điều khiển bởi các bit T2CKPS1:T2CKPS0 (T2CON<1:0>))

Hình 2.14(nguồn datasheet.com)

Timer2 còn được hỗ trợ bởi thanh ghi PR2 Giá trị đếm trong thanh ghi TMR2 sẽtăng từ 00h đến giá trị chứa trong thanh ghi PR2, sau đó được reset về 00h KhI reset thanh ghi PR2 được nhận giá trị mặc định FFh

Ngõ ra của Timer2 được đưa qua bộ chia tần số postscaler với các mức chia từ 1:1 đến 1:16 Postscaler được điều khiển bởi 4 bit T2OUTPS3:T2OUTPS0 Ngõ

ra của postscaler đóng vai trò quyết định trong việc điều khiển cờ ngắt

Ngoài ra ngõ ra của Timer2 còn được kết nối với khối SSP, do đó Timer2 còn đóng vai trò tạo ra xung clock đồng bộ cho khối giao tiếp SSP

Các thanh ghi liên quan đến Timer2 bao gồm:

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

HÌNH ẢNH LIÊN QUAN

Hình 1.2  Sơ đồ khối vi điều khiển 8bit của Microchip - Nghiên cứu về vi điều khiển pic và mạch điện ứng dụng
Hình 1.2 Sơ đồ khối vi điều khiển 8bit của Microchip (Trang 8)
Hình 1.4.sơ đồ khối của PIC24H - Nghiên cứu về vi điều khiển pic và mạch điện ứng dụng
Hình 1.4.s ơ đồ khối của PIC24H (Trang 13)
Hình 1.5. Sơ đồ khối của dsPIC - Nghiên cứu về vi điều khiển pic và mạch điện ứng dụng
Hình 1.5. Sơ đồ khối của dsPIC (Trang 14)
Hình 1.6  Sơ đồ khối củaPIC32 - Nghiên cứu về vi điều khiển pic và mạch điện ứng dụng
Hình 1.6 Sơ đồ khối củaPIC32 (Trang 19)
Hình 2.2(nguồn datasheet.com) - Nghiên cứu về vi điều khiển pic và mạch điện ứng dụng
Hình 2.2 (nguồn datasheet.com) (Trang 28)
Hình 2.12(nguồn datasheet.com) - Nghiên cứu về vi điều khiển pic và mạch điện ứng dụng
Hình 2.12 (nguồn datasheet.com) (Trang 37)
Hình 2.13(nguồn datasheet.com) - Nghiên cứu về vi điều khiển pic và mạch điện ứng dụng
Hình 2.13 (nguồn datasheet.com) (Trang 39)
Hình 2.16 (các cách lưu kết quả truyển đổi ADC ,nguồn datasheet.com) - Nghiên cứu về vi điều khiển pic và mạch điện ứng dụng
Hình 2.16 (các cách lưu kết quả truyển đổi ADC ,nguồn datasheet.com) (Trang 43)
Hình 2.18(nguồn datasheet.com) - Nghiên cứu về vi điều khiển pic và mạch điện ứng dụng
Hình 2.18 (nguồn datasheet.com) (Trang 45)
Hình 2.32.giản đồ xung của I2C slave mode 10 bit địa chỉ trong quá trình nhận - Nghiên cứu về vi điều khiển pic và mạch điện ứng dụng
Hình 2.32.gi ản đồ xung của I2C slave mode 10 bit địa chỉ trong quá trình nhận (Trang 71)
Hình 2.33giản đồ xung của I2C slave mode ở 7 bit địa chỉ trong quá trình nhận - Nghiên cứu về vi điều khiển pic và mạch điện ứng dụng
Hình 2.33gi ản đồ xung của I2C slave mode ở 7 bit địa chỉ trong quá trình nhận (Trang 71)
Hình 2.34. giản đồ xung của I2C slave mode 10 bit địa chỉ trong quá trình nhận - Nghiên cứu về vi điều khiển pic và mạch điện ứng dụng
Hình 2.34. giản đồ xung của I2C slave mode 10 bit địa chỉ trong quá trình nhận (Trang 72)
Hình 2.35.giản đồ xung của I2C slave mode 7 bit địa chỉ trong quá trình truyền - Nghiên cứu về vi điều khiển pic và mạch điện ứng dụng
Hình 2.35.gi ản đồ xung của I2C slave mode 7 bit địa chỉ trong quá trình truyền (Trang 73)
Hình 2.36. giản đồ xung của I2C slave mode 10 bit địa chỉ trong quá trình - Nghiên cứu về vi điều khiển pic và mạch điện ứng dụng
Hình 2.36. giản đồ xung của I2C slave mode 10 bit địa chỉ trong quá trình (Trang 74)
Hình 2.40.giản đồ xung I2C master mode trong quá trình tạo điều kiện - Nghiên cứu về vi điều khiển pic và mạch điện ứng dụng
Hình 2.40.gi ản đồ xung I2C master mode trong quá trình tạo điều kiện (Trang 77)

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