1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Đề cương bài giảng mô đun: Điều khiển hệ thống Cơ điện tử sử dụng vi điều khiển

136 35 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 136
Dung lượng 5,55 MB

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

Nội dung

Giáo trình gồm 10 chương với những nội dung chính như: Giới thiệu về vi điều khiển pic của microchip, kiến trúc phần cứng của PIC 18f4520, phần mềm MPLAB và trình dịch MCC18, hoạt động vào ra, hoạt động định thời, lập trình với LCD 1602, hoạt động ngắt, module CCP (CAPTURE/COMPARE/PWM), bộ chuyển đổi tương tự - số (ADC), truyền thông nối tiếp và giao tiếp giữa 2 vi điều khiển PIC. Mời các bạn cùng tham khảo.

Trang 1

BỘ LAO ĐỘNG THƯƠNG BINH VÀ XÃ HỘI TRƯỜNG CAO ĐẲNG KỸ NGHỆ II KHOA ĐIỆN – ĐIỆN TỬ

Trang 2

Chương 1 GIỚI THIỆU VỀ VI ĐIỀU KHIỂN PIC CỦA MICROCHIP

1 Giới thiệu về PIC 4

2 Các loại PIC thông dụng 4

3 Ứng dụng của PIC 5

Chương 2 KIẾN TRÚC PHẦN CỨNG CỦA PIC 18F4520 1 Sơ đồ khối 6

2 Sơ đồ chân 9

3 Tổ chức bộ nhớ 9

4 Khối tạo dao động 13

5 Hoạt động Reset 15

6 Các Port vào / ra 17

Chương 3 PHẦN MỀM MPLAB VÀ TRÌNH DỊCH MCC18 1 Cài đặt MPLAB 29

2 Sử dụng MPLAB 29

3 Trình dịch MCC18 40

Chương 4 HOẠT ĐỘNG VÀO RA 1 Lập Trình xuất 50

2 Lập Trình nhập 50

3 Hoạt động xuất/nhập 51

4 Bài tập ứng dụng 52

Chương 5: HOẠT ĐỘNG ĐỊNH THỜI 1 Giới thiệu 53

2 Timer 0 53

3 Timer 1 60

4 Lập trình với timer 64

Chương 6: LẬP TRÌNH VỚI LCD 1602 1 Khái niệm 69

2 Nguyên lý hoạt động 70

3 Nguyên tắc hiển thị trên LCD 70

4 Ví dụ lập trình điều khiển hiển thị trên LCD 71

Chương 7: HOẠT ĐỘNG NGẮT 1 Khái niệm 75

2 Tổ chức ngắt của PIC 18F4520 75

3 Ngắt ngoài 77

4 Các thanh ghi liên quan 77

5 Lập trình sử dụng ngắt 85

Trang 3

Chương 8: MODULE CCP (CAPTURE / COMPARE / PWM)

1 Giới thiệu 91

2 Các thanh ghi liên quan 93

3 Sử dụng các bộ PWM 94

4 Lập trình điều chế độ rộng xung 96

Chương 9: BỘ CHUYỂN ĐỔI TƯƠNG TỰ - SỐ (ADC) 1 Giới thiệu 99

2 Các thanh ghi liên quan 101

3 Điều khiển hoạt động chuyển đổi A/D 104

4 Lập trình sử dụng ADC 111

Chương 10: TRUYỀN THÔNG NỐI TIẾP VÀ GIAO TIẾP GIỮA 2 VI ĐIỀU KHIỂN PIC 1 Giới thiệu 116

2 Các thanh ghi liên quan 118

3 Tốc độ baud 121

4 Ngắt USART 128

5 Lập trình sử dụng USART 131

Trang 4

GIỚI THIỆU VỀ VI ĐIỀU KHIỂN PIC CỦA MICROCHIP

1 GIỚI THIỆU VỀ PIC

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 General 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

Hình 1.1 Vi điều khiển PIC

2 CÁC LOẠI PIC THÔNG DỤNG

Các kí hiệu của vi điều khiển PIC:

 PIC12xxxx: độ dài lệnh 12 bit

 PIC16xxxx: độ dài lệnh 14 bit

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

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

F: PIC có bộ nhớ flash

LF: PIC có bộ nhớ flash hoạt động ở điện áp thấp

LV: 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ó chữ A

ở cuối là flash (ví dụ PIC16F877 là EEPROM, còn PIC16F877A là flash)

Ngoài ra còn có thêm dòng vi điều khiển PIC mới là dsPIC

Trang 5

Ở Việt Nam phổ biến nhất là 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ó 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 và sau cùng cần chú ý đến bộ nhớ chương trình mà vi điều khiển cho phép

3 ỨNG DỤNG CỦA PIC

Ngày nay PIC được ứng dụng rất rộng rãi trong thực tế, từ những vật dụng đơn giản cho đến những hệ thống điều khiển phức tạp trong công nghiệp

Hình 1.2 Ứng dụng PIC

Trang 6

KIẾN TRÚC PHẦN CỨNG CỦA PIC 18F4520

1 SƠ ĐỒ KHỐI

Hình 2.1 Sơ đồ khối của PIC18F4520

Các khối chính trên PIC 18F4520 bao gồm:

 Bộ xử lý trung tâm CPU (Central Processing Unit):

Trang 7

 Tần số làm việc tối đa 40 MHz, sản xuất bằng công nghệ nanoWatt

 Thiết kế theo kiến trúc Havard, tập lệnh RISC

 Sử dụng kỹ thuật đường ống lệnh (Instruction Pipelining)

 Đơn vị logic học (ALU: Arithmetic Logical Unit)

 Thanh ghi làm việc (WREG: work register )

 Bộ nhân bằng phần cứng (8x8 Multiply), kết quả được chứa trong cặp thanh ghi (PRODH, PRODL)

 Thanh ghi đếm chương trình (PC: Program Counter) có 21 bit bao gồm thanh ghi PCL(PC-Low) chứa các bit từ 7-0, thanh ghi PCH (PC-High) chứa các bit từ 15-8, thanh ghi PCU (PC-upper) chứa các bit từ 20-16

 Thanh ghi con trỏ ngăn xếp STKPTR (Stack Pointer)

 31 mức ngăn xếp (31 level stack)

 Thanh ghi lựa chọn băng (BSR: Bank Select Register)

 Thanh ghi con trỏ dữ liệu gián tiếp FSR (Indirect Data Memory Address Pointer)

 Nguồn xung chính được đưa vào chip qua chân OSC1 và OSC2

 Nguồn xung phụ được đưa vào chip qua các chân T1OSI, T1OSO

 Bộ phát xung nội INTRC tần số 31kHz

 Bộ phát xung nội trên chíp tần số 8 MHz

 Watchdog Timer (WDT): là một bộ timer có chức năng đặc biệt, khi bị tràn sẽ khởi động lại hệ thống Thời gian khởi động lại hệ thống có thể lựa chọn được

từ 4ms đến 131,072s WDT sẽ được khởi tạo ở đầu chương trình, trong thân chương trình sẽ được “chèn” các lệnh reset WDT sao cho khi vi điều khiển thực hiện các đúng tuần tự các lệnh, WDT chưa bị tràn Mục đích chính của việc sử dụng WDT là tránh cho vi điều khiển vô tình thực hiện phải một vòng lặp chết (dead loop) mà không thoát ra được

 Bộ nạp chương trình: Bộ nạp chương trình nối tiếp trên chip (Single-Supply In-Circuit Serial Programming) sẽ giúp nạp chương trình từ mạch nạp vào bộ nhớ ROM qua các chân PGM, PGC và PGD

Trang 8

lập trình kiểm soát lỗi chương trình bằng cách cho vi điều khiển hoạt động ở chế độ chạy từng lệnh, nhóm lệnh hay toàn bộ chương trình

 Khối phát hiện tín hiệu reset: Mạch phát hiện tín hiệu reset có khả năng phát hiện 03 nguồn reset:

 Reset từ chân MCLR

 Reset khi bật nguồn (POR: Power-on Reset)

 Reset khi nguồn yếu (BOR : Brown-out Reset)

 Khối quản lý lỗi bộ phát xung (Fail-Safe Clock Monitor): Khối này được sự dụng để quản lý an toàn bộ phát xung hệ thống

 Khối định thời khởi động bộ phát xung (Oscillator Start-up Timer): Khối này

sử dụng để tạo thời gian trễ chờ cho bộ phát xung ổn định

 Thiết bị ngoại vi (Peripheral): PIC18f4520 được tích hợp các thiết bị ngoại vi sau:

 Bộ phát hiện điện áp cao/thấp HLVD(High/low-Voltage Detect)

 Bộ nhớ lưu dữ liệu khi tắt nguồn EEPROM

 04 bộ đếm, định thời 16 bit: Timer0, Timer1, Timer2 và Timer3

 01 bộ so sánh tín hiệu tương tự (Comparator)

 02 bộ CCP1, CCP2 (Capture, Compare, PWM : Chụp, So sánh, xung Pwm);

 13 kênh biến đổi tương tự - số (ADC) độ phân giải 10 bit

 Khối giao tiếp vào/ra số: Vi điều khiển PIC18F4520 có 5 cổng vào/ra A, B, C,

D và E Mỗi cổng có một thanh ghi đệm dữ liệu tương ứng là PORTA, PORTB, PORTC, PORTD và PORTE, các thanh ghi này được định địa chỉ theo byte và theo bit

 PORTA : RA7 - RA0

 PORTB : RB7 - RB0

 PORTC : RC7 - RC0

 PORTD : RD3 - RD0

 PORTE : RE3-RE0

Trang 9

2 SƠ ĐỒ CHÂN

Sơ đồ chân dạng PDIP (Lead Plastic Dual In-Line Package)

Hình 2.2 Sơ đồ chân PIC 18F4520 dạng PDIP

3 TỔ CHỨC BỘ NHỚ

Bộ nhớ của vi điều khiển PIC 18F4520 bao gồm 3 loại:

 Bộ nhớ chương trình (Program memory)

 Bộ nhớ dữ liệu RAM (Data RAM)

 Bộ nhớ dữ liệu EEPROM (Data EEPROM)

Bộ nhớ của PIC 18F4520 được thiết kế theo kiến trúc Havard, bộ nhớ chương trình và bộ nhớ dữ liệu được thiết kế riêng đường Bus, cho phép CPU truy cập cùng lúc tới bộ nhớ chương trình và bộ nhớ dữ liệu Bộ nhớ dữ liệu EEPROM được sử dụng để lưu trữ dữ liệu khi mất điện

Bộ nhớ chương trình

Thanh ghi đếm chương trình PC (Program Counter) của PIC 18F4520 có 21 bit nên có thể địa chỉ hóa 2 Mbyte bộ nhớ chương trình Bộ nhớ Flash của PIC 18F4520 có dung lượng 32 Kbyte nên chứa được 16384 lệnh từ đơn (single-word instructions), với dải địa chỉ từ 0000h đến 7FFFh Nếu đọc ở vùng nhớ ngoài 32Kbyte của PIC 18F4520 và trong khoảng 2 Mbyte mà nó có thể quản lý thì giá trị dữ liệu trả về sẽ là “0” PIC 18F4520 có 31 mức ngăn xếp

Trang 10

thanh ghi đếm chương trình PC sẽ được xóa về 0 Các thanh ghi của PIC 18F4520

sẽ được tải lại các giá trị mặc định

Hình 2.3 Sơ đồ tổ chức bộ nhớ chương trình và ngăn xếp

Vector ngắt ưu tiên cao (High-Priority Interrupt Vector) được đặt ở địa chỉ 0008h, vector ngắt ưu tiên thấp (Low-Priority Interrupt Vector) được đặt ở địa chỉ 0018h Thanh ghi đếm chương trình PC 21 bit chứa trong 3 thanh ghi 8 bit riêng biệt, 8 bit thấp chứa trong thanh ghi PCL, 8 bit tiếp theo chứa trong thanh ghi PCH, 5 bit cao chứa trong thanh thi PCU Thanh ghi PCH và PCU không cho phép truy cập trực tiếp mà phải truy cập thông qua hai thanh ghi PCLATH và PCLATU tương ứng PIC 18F4520 đươc thiết kế theo kỹ thuật đường ống lệnh (Instruction Pipelining) nên việc thực hiện lệnh PC-2 và đọc mã lệnh PC được diễn ra cũng một thời điểm

Trang 11

Hình 2.4 Giản đồ xung đọc mã lệnh và thực hiện lệnh của PIC 18F4520

Bộ nhớ dữ liệu RAM

Hình 2.5 Sơ đồ tổ chức bộ nhớ dữ liệu RAM

Bộ nhớ dữ liệu RAM 1536 byte (SRAM) được chia thành 2 vùng chức năng riêng biệt, vùng RAM đa dụng GPR (General Purpose Registers) sử dụng để chứa dữ

Trang 12

chứa các thanh ghi chức năng điều khiển ngoại vi và CPU

Bộ nhớ dữ liệu RAM được chia thành 16 Bank từ Bank 0 đến Bank15, vùng RAM

đa dụng nằm từ Bank 0 đến Bank 2, các thanh ghi SFR nằm ở Bank 15 Vùng địa chỉ từ 300h đến EFFh không được sử dụng, đọc ở vùng này sẽ trả về giá tri 00h Bốn bit thấp của thanh ghi lựa chọn băng BSR (Bank Select Register) được sử dụng để lựa chọn truy cập băng

Hình 2.6 Phân bổ địa chỉ của các thanh ghi chức năng đặc biệt SFR

Bộ nhớ dữ liệu EEPROM

Trang 13

Bộ nhớ dữ liệu EEPROM của PIC 18F4520 là bộ nhớ mảng không bị mất dữ liệu khi mất điện, độc lập với bộ nhớ chương trình và bộ nhớ dữ liệu RAM, được sử dụng để lưu trữ dữ liệu lâu dài Nó có thể ghi/đọc được 1.000.000 lần, dữ liệu có thể lưu trữ trong bộ nhớ 100 năm

4 KHỐI TẠO DAO ĐỘNG

PIC 18F4520 có thể hoạt động ở một trong 10 chế độ tạo dao động khác nhau Việc lựa chọn các chế độ tạo dao động nhờ các bit FOSC3:FOSC0 trong thanh ghi CONFIG1H

Hình 2.7 Sơ đồ khối bộ tạo dao động trên PIC 18F4520

Các chế độ tạo dao động:

 LP (Low-Power Crystal) nguồn xung thạch anh ngoài, nguồn thấp

 XT (Crystal/Resonator) thạch anh/bộ cộng hưởng bên ngoài

 HS (High-Speed Crystal/Resonator) thạch anh/bộ cộng hưởng bên ngoài tốc độ cao

 HSPLL nhân 4 lần tần số HS bằng vòng khóa pha (Phase Locked Loop)

 RC (External Resistor/Capacitor) tạo dao động bằng mạch RC bên ngoài, phát xung FOSC/4 ra chân RA6

 RCIO tạo dao động bằng mạch RC ngoài, vào/ra trên chân RA6

 INTIO1 bộ tạo dao động nội, phát xung FOSC/4 ra chân RA6, vào/ra trên chân RA7

 INTIO2 bộ tạo dao động nội, vào/ra trên chân RA6 và RA7

 EC bộ phát xung ngoài, phát xung FOSC/4 ra chân RA6

Trang 14

Tạo dao động bằng thạch anh ngoài (Crystal/ Ceramic Resonator)

Trong chế độ tạo dao động LP, XT, HS, HSPLL sử dụng thạch anh (Crystal) chưa

có tụ điện hoặc mạch cộng hưởng thạch anh bọc gốm đã có tụ điện (Ceramic Resonator) Ở các chế độ này bộ tạo dao động kết nối với vi điều khiển PIC 18F4520 qua hai chân OSC1 và OSC2

- Sơ đồ kết nối giữa vi điều khiển với bộ phát xung ngoài:

Hình 2.8 Sơ đồ kết nối với bộ dao động thạch anh/mạch cộng hưởng ngoài

- Lựa chọn giá trị tụ điện khi sử dụng mạch cộng hưởng thạch anh bọc gốm

Bảng 2.1 Lựa chọn giá trị tụ điện khi sử dụng Ceramic Resonator

- Lựa chọn giá trị tụ điện khi sử dụng thạch anh chưa có tụ điện (Crystal)

Bảng 2.2 Lựa chọn tụ điện khi sử dụng thạch anh (Crystal)

Nguồn xung ngoài (External Clock)

Trang 15

Chế độ EC và ECIO sử dụng nguồn xung ngoài làm xung hệ thống và được nối qua cổng NOT trước khi đưa vào chân OSC1/CLKI

- Chế độ nguồn xung ngoài EC (External Clock), nguồn xung được lấy từ bên ngoài nối qua cổng NOT trước khi đưa vào OSC1/CLKI và chân OSC2/CLKO phát ra tần số bằng ¼ tần số đầu vào

Hình 2.9 Chế độ dao động EC

- Chế độ nguồn xung ngoài ECIO (External Clock Input Output), nguồn xung được lấy từ bên ngoài nối qua cổng NOT trước khi đưa vào OSC1/CLKI và chân OSC2/CLKO là chân vào/ra RA6

Hình 2.10 Chế độ dao động ECIO

5 HOẠT ĐỘNG RESET

Vi điều khiển PIC 18F4520 có 8 nguồn Reset:

 Reset do bật nguồn POR (Power-on Reset)

 Reset từ chân MCLR, sử dụng trong quá trình hoạt động bình thường

 Reset từ chân MCLR, sử dụng trong chế độ quản lý nguồn

 Reset do Watchdog Timer (WDT)

 Reset do sụt điện áp nguồn BOR (Brown-out Reset)

 Reset bằng lệnh RESET

 Reset do đầy ngăn xếp (Stack Full Reset)

 Reset do rỗng ngăn xếp (Stack Underflow Reset)

Trang 16

Hình 2.11 Mô tả các nguồn Reset của PIC 18F4520

a Reset từ chân MCLR

Nguồn reset MCLR đươc nối từ mạch reset bên ngoài qua chân MCLR/RE3 Nếu bit MCLRE trong thanh ghi CONFIG3H được đặt bằng 1 thì chân MCLR/RE3 là chân reset, đặt MCLRE = “0” chân MCLRE là chân vào/ra của PORTE Khi có mức điện áp thấp được đặt lên chân MCLR hệ thống sẽ thực hiện reset

Hình 2.12 Mạch reset ngoài MCLR

b Reset do bật nguồn POR (Power-on Reset)

Trang 17

Khi nguồn được cấp vào chân VDD, khối reset POR sẽ phát hiện sườn dương trên chân VDD sau đó phát tín hiệu reset vi điều khiển Bit POR trong thanh ghi RCON

sẽ báo trạng thái của reset POR, POR = ‘1’ là không phát hiện tín hiệu reset, POR=

‘0’ là phát hiện tín hiệu reset POR

Giá trị linh kiện: R < 40 kΩ; R1 >= 1KΩ

Hình 2.13 Mạch reset do bật nguồn POR

 Thanh ghi PORT là thanh ghi dữ liệu, được định địa chỉ theo byte và theo bit, sử dụng để đệm đọc/ghi dữ liệu trên các cổng

 Thanh ghi LAT là thanh ghi chốt dữ liệu đầu ra (bằng ‘1’ đầu ra chốt mức

1, bằng ‘0’ đầu ra chốt mức 0)

 Thanh ghi TRIS là thanh ghi lựa chọn hướng dữ liệu (bằng ‘0’ chiều ra, bằng ‘1’ chiều vào)

6.1 Cấu trúc chung của một chân vào/ra

Hình 2.14 thể hiện cấu trúc chung của một chân vào/ra Trong đó việc xác định chân vào hay ra do các bit cụ thể quy định

Trang 18

Hình 2.14 Cấu trúc chung của một chân vào/ra

I/O Kiểu

RA0/AN0 RA0 0 O DIG Chiều ra dữ liệu sử dụng bit LATA<0>; không bị ảnh

hưởng bởi đầu vào tương tự

1 I TTL Chiều vào dữ liệu sử dụng bit PORTA<0>

AN0 1 I ANA Đầu vào kênh 0 của bộ biến đổi A/D hoặc chân đầu

vào C1- của bộ so sánh Mặc đinh khi Reset POR RA1/AN1 RA1

0 O DIG Chiều ra dữ liệu sử dụng bit LATA<1>; không bị ảnh

hưởng bởi đầu vào tương tự

1 I TTL Chiều vào dữ liệu sử dụng bit PORTA<1>

AN1 1 I ANA Đầu vào kênh 1 của bộ biến đổi A/D hoặc chân đầu

vào C2- của bộ so sánh Mặc đinh khi Reset POR RA2/AN2/ VREF-

/CVREF

RA2 0 O DIG Chiều ra dữ liệu sử dụng bit LATA<2>; Cấm chức

năng này khi đầu ra CVREF được cho phép

1 I TTL Chiều vào dữ liệu sử dụng bit PORTA<2> Chức

năng này sẽ bị cấm khi chức năng tương tự hoặc đầu

ra CVREF được cho phép

AN2 1 I ANA Đầu vào kênh 2 của bộ biến đổi A/D hoặc chân đầu

vào C2+ của bộ so sánh Mặc đinh khi Reset POR VREF- 1 I ANA A/D và đầu vào điện áp tham chiếu mức thấp bộ so

sánh

CVREF x O ANA Đầu ra điện áp tham chiếu bộ so sánh

Trang 19

RA3/AN3/VREF+ RA3 0 O DIG Chiều ra dữ liệu sử dụng bit LATA<3>

1 I TTL Chiều vào dữ liệu sử dụng bit PORTA<3>; Chức

năng này bị cấm khi đầu vào tương tự được cho phép AN3 1 I ANA Đầu vào kênh 3 của bộ biến đổi A/D hoặc hoặc chân

đầu vào C1+ của bộ so sánh Mặc đinh khi Reset POR

VREF+ 1 I ANA A/D và đầu vào điện áp tham chiếu mức cao bộ so

sánh

RA4/T0CKI/C1OUT RA4 0 O DIG Chiều ra dữ liệu sử dụng bit LATA<4>

1 I ST Chiều vào dữ liệu sử dụng bit PORTA<4>; mặc định

khi reset POR

T0CKI 1 I ST Cấp xung cho Timer0

C1OUT 0 O DIG Đầu ra 1 bộ so sánh; ưu tiên hơn vào/ra dữ liệu RA5/AN4/SS/ RA5 0 O DIG Chiều ra dữ liệu sử dụng bit LATA<5>; không ảnh

hưởng bởi đầu vào tương tự

HLVDIN/C2OUT

1 I TTL Chiều vào dữ liệu sử dụng bit PORTA<5>; Chức

năng này bị cấm khi cho phép đầu vào tương tự AN4 1 I ANA Đầu vào kênh 4 của bộ biến đổi A/D mặc định khi

1 I TTL Chiều vào dữ liệu sử dụng bit PORTA<6> Chế độ

này chỉ được cho phép ở các chế độ RCIO, INTIO2

0 O DIG Chiều ra dữ liệu sử dụng bit LATA<7> Chức năng

này bị cấm ở chế độ dao động ngoài

1 I TTL Chiều vào dữ liệu sử dụng bit PORTA<7> Chức

năng này bị cấm ở chế độ dao động ngoài

OSC1 x I ANA Kêt nối với bộ dao động ngoài

CLKI x I ANA Kết nối với nguồn xung bên ngoài

Bảng 2.3 Chức năng các chân trên PORTA

Chú thích:

DIG = Digital level output (đầu ra số); TTL = đệm đầu vào chuẩn TTL Transistor Logic ); ST = đệm đầu vào sử dụng Schmitt Trigger; ANA = vào/ra tương tự; x= không xác định; I=Input (vào); O=Output (ra)

(Transistor-Chú ý: Hai chân RA6 và RA7 còn phụ thuộc vào cấu hình bộ phát xung hệ thống

Trang 20

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

 PORTA: Thanh ghi dữ liệu PORTA

 LATA: Thanh ghi chốt dữ liệu đầu ra của PORTA

 TRISA: Thanh ghi lựa chọn hướng dữ liệu của PORTA (bit tương ứng trên thanh ghi đặt bằng ‘0’ thì chân tương ứng có chiều ra, bằng ‘1’ là chiều vào)

 ADCON1: Là thanh ghi điều khiển A/D, thiết lập các chân vào/ra là số hay tương tự

 CMCON: Là thanh ghi điều khiển bộ so sánh

 CVRCON là thanh ghi điều khiển điện áp tham chiếu của bộ so sánh

Tên Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

PORTA RA7 RA6 RA5 RA4 RA3 RA2 RA1 RA0 LATA LATA7 LATA6 Thanh ghi chốt dữ liệu PORTA

TRISA TRISA7 TRISA6 Thanh ghi hướng dữ liệu PORTA

ADCON1 — — VCFG1 VCFG0 PCFG3 PCFG2 PCFG1 PCFG0 CMCON C2OUT C1OUT C2INV C1INV CIS CM2 CM1 CM0 CVRCON CVREN CVROE CVRR CVRSS CVR3 CVR2 CVR1 CVR0

Bảng 2.4 Các thanh ghi liên quan đến PORTA

6.3 Port B

PORTB gồm 8 bit, tương ứng với 8 chân được ký hiệu từ RB0 đến RB7 Các chân của PORTB có thể đọc/ghi theo từng bit hoặc cả byte Các chân PORTB <7:4> của PORTB còn được sử dụng làm nguồn ngắt ngoài

a Chức năng các chân của PORTB

RB0 0 O DIG Chiều ra dữ liệu sử dụng bit LATB<0>; không bị ảnh

hưởng bởi đầu vào tương tự

1 I TTL Chiều vào dữ liệu sử dụng bit PORTB<0>; Không nối

điện trở pull-up khi RBPU = ‘0’ Cấm chức năng này khi cho phép đầu vào tương tự

INT0 1 I ST Ngắt ngoài 0

FLT0 1 I ST Đầu vào báo sự cố PWM (Module ECCP1); Cho phép

bằng phần mềm

AN12 1 I ANA Kênh 12 của bộ biến đổi A/D

RB1/INT1/AN10 RB1 0 O DIG Chiều ra dữ liệu sử dụng bit LATB<1>; chức năng này

không bị bởi đầu vào tương tự

1 I TTL Chiều vào dữ liệu sử dụng bit PORTB<1>; Ngắt kết nôi

trở pull-up khi RBPU = ‘0’ Cấm chức năng này khi đầu vào tương tự được cho phép

Trang 21

INT1 1 I ST Ngắt ngoài 1

AN10 1 I ANA Kênh 10 của bộ biến đổi A/D

RB2/INT2/AN8 RB2 0 O DIG Chiều ra dữ liệu sử dụng bit LATB<2>; không bị ảnh

hưởng bởi đầu vào tương tự

1 I TTL Chiều vào dữ liệu sử dụng bit PORTB<2>; Ngắt kết nôi

trở pull-up khi RBPU = ‘0’ Cấm chức năng này khi đầu vào tương tự được cho phép

INT2 1 I ST Ngắt ngoài 2

AN8 1 I ANA Kênh 8 của bộ biến đổi A/D

RB3/AN9/CCP2 RB3 0 O DIG Chiều ra dữ liệu sử dụng bit LATB<3>; không bị ảnh

hưởng bởi đầu vào tương tự

1 I TTL Chiều vào dữ liệu sử dụng bit PORTB<3>; Ngắt kết nôi

trở pull-up khi RBPU = ‘0’ Cấm chức năng này khi đầu vào tương tự được cho phép

AN9 1 I ANA Kênh 8 của bộ biến đổi A/D

CCP2(2) 0 O DIG CCP2 của bộ so sánh và đầu ra của PWM

1 I ST Đầu vào của bộ capture CCP2

RB4/KBI0/AN1

1 RB4 0 O DIG

Chiều ra dữ liệu sử dụng bit LATB<4>; không bị ảnh hưởng bởi đầu vào tương tự

1 I TTL Chiều vào dữ liệu sử dụng bit PORTB<4>; Ngắt kết nôi

trở pull-up khi RBPU = ‘0’ Cấm chức năng này khi đầu vào tương tự được cho phép

KBI0 1 I TTL Chân ngắt của ngắt thay đổi mức PORTB

AN11 1 I ANA Kênh 11 của bộ biến đổi A/D

RB5/KBI1/PGM RB5 0 O DIG Chiều ra dữ liệu sử dụng bit LATB<5>

1 I TTL Chiều vào dữ liệu sử dụng bit PORTB<5>; Ngắt kết nôi

trở pull-up khi RBPU = ‘0’

KBI1 1 I TTL Chân ngắt của ngắt thay đổi mức PORTB

PGM x I ST Tín hiệu nối mạch nạp nối tiếp (Single-Supply

In-Circuit Serial Programming™ mode entry (ICSP™)) Cho phép bởi bit cấu hình LVP; Tất cả các chức năng khác sẽ bị cấm

RB6/KBI2/PGC RB6 0 O DIG Chiều ra dữ liệu sử dụng bit LATB<6>

1 I TTL Chiều vào dữ liệu sử dụng bit PORTB<6>; Ngắt kết nôi

trở pull-up khi RBPU = ‘0’

KBI2 1 I TTL Chân ngắt của ngắt thay đổi mức PORTB

PGC x I ST Đầu vào xung từ (Serial execution (ICSP) clock) mạch

nạp tích hợp ICSP và mạch nạp ICD

RB7/KBI3/PGD RB7 0 O DIG Chiều ra dữ liệu sử dụng bit LATB<7>

1 I TTL Chiều vào dữ liệu sử dụng bit PORTB<7>; Ngắt kết nôi

trở pull-up khi RBPU = ‘0’

KBI3 1 I TTL Chân ngắt của ngắt thay đổi mức PORTB

PGD

x O DIG Đầu ra dữ liệu nối tiếp từ (Serial execution data output)

cho ICSP và ICD

x I ST Đầu vào dữ liệu nối tiếp từ (Serial execution data

output) cho ICSP và ICD

Bảng 2.5 Chức năng các chân của PORTB

Trang 22

Có 7 thanh ghi được sử dụng để điều khiển và chọn chức năng cho PORTB:

 PORTB: Thanh ghi dữ liệu của PORTB

 LATB: Thanh ghi chốt dữ liệu của PORTB

 TRISB: Thanh ghi hướng dữ liệu của PORTB

 INTCON: Thanh điều khiển ngắt

 INTCON2: Thanh ghi điều khển ngắt 2

 INTCON3: Thanh điều khiển ngắt 3

 ADCON1: Thanh ghi điều khiển bộ biến đổi A/D Thanh ghi này dùng

để chọn các chân AN0 đến AN12 là các chân vào/ra số hay tương tự

Tên Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

PORTB RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 LATB Thanh ghi chốt dữ liệu PORTB

TRISB Thanh ghi hướng dữ liệu PORTB

INTCON GIE/GIEH PEIE/GIEL TMR0IE INT0IE RBIE TMR0IF INT0IF RBIF INTCON2 RBPU INTEDG0 INTEDG1 INTEDG2 — TMR0IP — RBIP INTCON3 INT2IP INT1IP — INT2IE INT1IE — INT2IF INT1IF ADCON1 — — VCFG1 VCFG0 PCFG3 PCFG2 PCFG1 PCFG0

Bảng 2.6 Các thanh ghi liên quan đến PORTB

6.4 Port C

PORT C có độ rộng 8 bit, tương ứng với 8 chân được ký hiệu từ RC0 đến RC7 Các chân của PORTC có hai chiều dữ liệu và người lập trình có thể đọc/ghi theo từng bit hoặc cả byte

a Chức năng các chân của PORTC

Chân Chức

năng TRIS I/O

Kiểu

RC0/T1OSO/ RC0 0 O DIG Chiều ra dữ liệu sử dụng bit LATC<0>

T13CKI 1 I ST Chiều vào dữ liệu sử dụng bit PORTC<0>

T1OSO x O ANA Đầu ra bộ phát xung Timer1; Chức năng này được

cho phép khi cho phép bộ phát xung Timer1 Cấm vào chức năng vào/ra số

T13CKI 1 I ST Cấp xung cho Timer1/Timer3 chế độ đếm sự kiện

(Counter)

RC1/T1OSI/CCP2 RC1 0 O DIG Chiều ra dữ liệu sử dụng bit LATC<1>

1 I ST Chiều vào dữ liệu sử dụng bit PORTC<1>

Trang 23

T1OSI x I ANA Đầu vào bộ dao động Timer1; Chức năng này được

phép khi cho phép bộ dao động Timer1 Cấm chức năng vào/ra số

CCP2

0 O DIG CCP2 của bộ so sánh và đầu ra của PWM; Chức năng

này ưu tiên hơn vào/ra dữ liệu

1 I ST Đầu vào capture(chụp) CCP2

RC2/CCP1/P1A RC2 0 O DIG Chiều ra dữ liệu sử dụng bit LATC<2>

1 I ST Chiều vào dữ liệu sử dụng bit PORTC<2>

CCP1

0 O DIG Chân ECCP1 của bộ so sánh hoặc đầu ra PWM; chức

năng này được ưu tiên hơn vào/ra dữ liệu

1 I ST Đầu vào capture(chụp) ECCP1

P1A(2) 0 O DIG Đầu ECCP1 của bộ PWM tăng cường, kênh A

Chức năng này được ưu tiên hơn chức năng vào/ra dữ liệu

RC3/SCK/SCL RC3 0 O DIG Chiều ra dữ liệu sử dụng bit LATC<3>

1 I ST Chiều vào dữ liệu sử dụng bit PORTC<3>

SCK

0 O DIG

Chân phát xung(clock) của SPI (Module MSSP); Chức năng này được ưu tiên hơn chức năng vào/ra dữ liệu

1 I ST Đầu vào xung (clock) SPI (Module MSSP)

SCL

0 O DIG

Chân phát xung(clock) của giao tiếp I2C™(Module MSSP); Chức năng này được ưu tiên hơn chức năng vào/ra dữ liệu

RC4/SDI/SDA RC4 0 O DIG Chiều ra dữ liệu sử dụng bit LATC<4>

1 I ST Chiều vào dữ liệu sử dụng bit PORTC<4>

SDI 1 I ST Chân đầu vào dữ liệu của giao tiếp SPI (Module

1 I I2C/SM

B

Đầu ra dữ liệu của giao tiếp I2C (Module MSSP); Kểu tín hiệu đầu ra phụ thuộc vào cấu hình cho Module RC5/SDO RC5 0 O DIG Chiều ra dữ liệu sử dụng bit LATC<5>

1 I ST Chiều vào dữ liệu sử dụng bit PORTC<5>

SDO 0 O DIG

Chân đầu ra dữ liệu của giao tiếp SPI (Module MSSP); Chức năng này được ưu tiên hơn chức năng vào/ra dữ liệu

RC6/TX/CK RC6 0 O DIG Chiều ra dữ liệu sử dụng bit LATC<6>

1 I ST Chiều vào dữ liệu sử dụng bit PORTC<6>

TX 1 O DIG Chân truyền dữ liệu nối tiếp không đồng bộ của

Module EUSART; Chức năng này được ưu tiên hơn chức năng vào/ra dữ liệu Chức năng này phải được cấu hình hướng ra dữ liệu

CK 1 O DIG Chân phát xung(clock) đồng bộ nối tiếp của Module

Trang 24

RX 1 I ST Chân nhận dữ liệu nối tiếp không đồng bộ của Module

1 I ST Chân nhận dữ liệu nối tiếp đồng bộ của Module

EUSART Phải được cấu hình hướng dữ liệu có chiều vào

Bảng 2.7 Chức năng các chân của PORT C

b Các thanh ghi liên quan đến PORT C

Có 3 thanh ghi được sử dụng để điều khiển và chọn chức năng cho PORT C:

 PORTC: Thanh ghi dữ liệu của PORTC

 LATC: Thanh ghi chốt dữ liệu của PORTC

 TRISC: Thanh ghi hướng dữ liệu của PORTC

Tên Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

PORTC RC7 RC6 RC5 RC4 RC3 RC2 RC1 RC0 LATC Thanh ghi chốt dữ liệu của PORTC (Chốt dữ liệu đọc ghi)

TRISC Thanh ghi chọn hướng dữ liệu của PORTC

Bảng 2.8 Các thanh ghi liên quan đến PORTC

6.5 Port D

PORTD có độ rộng 8 bit, tương ứng với 8 chân được ký hiệu từ RD0 đến RD7 Các chân của PORTD có hai chiều dữ liệu và người lập trình có thể đọc/ghi theo từng bit hoặc cả byte Ngoài ra PORTD còn được sử dụng để ghi/đọc dữ liệu song song với thiết bị ngoài khi kết hợp với các chân RD, CS và WR

a Chức năng các chân của PORTD

Chân Chức

năng TRIS I/O

Kiểu

RD0/PSP0 RD0 0 O DIG Chiều ra dữ liệu sử dụng bit LATD<0>

1 I ST Chiều vào dữ liệu sử dụng bit PORTD<0>

PSP0

x O DIG

Chân PSP của giao tiếp song song sử dụng bit LATD<0>,

có chiều ra, thao tác đọc dữ liệu của PSP; Chức năng này được ưu tiên hơn chức năng vào/ra dữ liệu

x I TTL Chân PSP của giao tiếp song song, có chiều vào

RD1/PSP1 RD1 0 O DIG Chiều ra dữ liệu sử dụng bit LATD<1>

1 I ST Chiều vào dữ liệu sử dụng bit PORTD<1>

Trang 25

PSP1

x O DIG

Chân PSP của giao tiếp song song sử dụng bit LATD<1>,

có chiều ra, thao tác đọc dữ liệu của PSP; Chức năng này được ưu tiên hơn chức năng vào/ra dữ liệu

x I TTL Chân PSP của giao tiếp song song, có chiều vào

RD2/PSP2 RD2 0 O DIG Chiều ra dữ liệu sử dụng bit LATD<2>

1 I ST Chiều vào dữ liệu sử dụng bit PORTD<2>

PSP2

x O DIG

Chân PSP của giao tiếp song song sử dụng bit LATD<2>,

có chiều ra, thao tác đọc dữ liệu của PSP; Chức năng này được ưu tiên hơn chức năng vào/ra dữ liệu

x I TTL Chân PSP của giao tiếp song song, có chiều vào

RD3/PSP3 RD3 0 O DIG Chiều ra dữ liệu sử dụng bit LATD<3>

1 I ST Chiều vào dữ liệu sử dụng bit PORTD<3>

PSP3

x O DIG

Chân PSP của giao tiếp song song sử dụng bit LATD<3>,

có chiều ra, thao tác đọc dữ liệu của PSP; Chức năng này được ưu tiên hơn chức năng vào/ra dữ liệu

x I TTL Chân PSP của giao tiếp song song, có chiều vào

RD4/PSP4 RD4 0 O DIG Chiều ra dữ liệu sử dụng bit LATD<4>

1 I ST Chiều vào dữ liệu sử dụng bit PORTD<4>

PSP4

x O DIG

Chân PSP của giao tiếp song song sử dụng bit LATD<4>,

có chiều ra, thao tác đọc dữ liệu của PSP; Chức năng này được ưu tiên hơn chức năng vào/ra dữ liệu

x I TTL Chân PSP của giao tiếp song song, có chiều vào

RD5/PSP5/P1B RD5 0 O DIG Chiều ra dữ liệu sử dụng bit LATD<5>

1 I ST Chiều vào dữ liệu sử dụng bit PORTD<5>

PSP5

x O DIG

Chân PSP của giao tiếp song song sử dụng bit LATD<5>,

có chiều ra, thao tác đọc dữ liệu của PSP; Chức năng này được ưu tiên hơn chức năng vào/ra dữ liệu

x I TTL Chân PSP của giao tiếp song song, có chiều vào

P1B 0 O DIG Đầu ra kênh B của bộ PWM tăng cường ECCP1; Chức

năng này được ưu tiên hơn chức năng vào/ra dữ liệu và giao tiếp song song PSP

RD6/PSP6/P1C RD6 0 O DIG Chiều ra dữ liệu sử dụng bit LATD<6>

1 I ST Chiều vào dữ liệu sử dụng bit PORTD<6>

PSP6

x O DIG

Chân PSP của giao tiếp song song sử dụng bit LATD<6>,

có chiều ra, thao tác đọc dữ liệu của PSP; Chức năng này được ưu tiên hơn chức năng vào/ra dữ liệu

x I TTL Chân PSP của giao tiếp song song, có chiều vào

P1C 0 O DIG Đầu ra kênh C của bộ PWM tăng cường ECCP1; Chức

năng này được ưu tiên hơn chức năng vào/ra dữ liệu và giao tiếp song song PSP

RD7/PSP7/P1D RD7 0 O DIG Chiều ra dữ liệu sử dụng bit LATD<7>

1 I ST Chiều vào dữ liệu sử dụng bit PORTD<7>

PSP7

x O DIG

Chân PSP của giao tiếp song song sử dụng bit LATD<7>,

có chiều ra, thao tác đọc dữ liệu của PSP; Chức năng này được ưu tiên hơn chức năng vào/ra dữ liệu

x I TTL Chân PSP của giao tiếp song song, có chiều vào

P1D 0 O DIG Đầu ra kênh D của bộ PWM tăng cường ECCP1; Chức

năng này được ưu tiên hơn chức năng vào/ra dữ liệu và giao tiếp song song PSP

Bảng 2.9 Chức năng các chân của PORTD

Trang 26

b Các thanh liên quan đến PORTD

Có 5 thanh ghi được sử dụng để điều khiển và chọn chức năng cho PORTD:

 PORTD: Thanh ghi dữ liệu của PORTD

 LATD: Thanh ghi chốt dữ liệu của PORTD

 TRISD: Thanh ghi hướng dữ liệu của PORTD

 TRISE : Thanh ghi hướng dữ liệu của PORTE Thanh ghi này có bit PSPMODE được sử dụng để chọn chế độ vào/ra song song PSP hay vào/ra

dữ liệu trên PORTD

 CCP1CON: Thanh ghi điều khiển ECCP Thanh ghi này có 2 bit P1M1:P1M0 liên quan tới PORTD, nó sử dụng để cấu hình đầu ra cho bộ PWM tăng cường

Tên Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

PORTD RD7 RD6 RD5 RD4 RD3 RD2 RD1 RD0 LATD Thanh ghi chốt dữ liệu của PORTD (Chốt dữ liệu đọc ghi)

TRISD Thanh ghi chọn hướng dữ liệu của PORTD

TRISE(1) IBF OBF IBOV PSPMODE — TRISE2 TRISE1 TRISE0 CCP1CON P1M1 P1M0 DC1B1 DC1B0 CCP1M3 CCP1M2 CCP1M1 CCP1M0

Bảng 2.10 Các thanh ghi liên quan đến PORTD

0 O DIG Chiều ra dữ liệu sử dụng bit LATE<0>; không bị ảnh hưởng

bởi đầu vào tương tự

1 I ST Chiều vào dữ liệu sử dụng bit PORTE<0>; chức năng này sẽ

bị cấm khi đầu vào tương tự được cho phép

RD 1 I TTL Chân cho phép đọc dữ liệu, có chiều vào PSP (cho phép PSP)

AN5 1 I ANA Đầu vào kênh 5 của bộ biến đổi A/D; mặc định được cấu hình

có chiều vào khi reset POR

RE1/WR/AN6 RE1 0 O DIG Chiều ra dữ liệu sử dụng bit LATE<1>; không bị ảnh hưởng

bởi đầu vào tương tự

1 I ST Chiều vào dữ liệu sử dụng bit PORTE<1>; chức năng này sẽ

bị cấm khi đầu vào tương tự được cho phép

WR 1 I TTL Chân cho phép ghi dữ liệu của chế độ giao tiếp song song

PSP(cho phép PSP)

Trang 27

AN6 1 I ANA Đầu vào kênh 6 của bộ biến đổi A/D; mặc định được cấu hình

có chiều vào khi reset POR

RE2/CS/AN7 RE2 0 O DIG Chiều ra dữ liệu sử dụng bit LATE<2>; chức năng này sẽ bị

cấm khi đầu vào tương tự được cho phép

1 I ST Chiều vào dữ liệu sử dụng bit PORTE<2>; chức năng này sẽ

bị cấm khi đầu vào tương tự được cho phép

CS 1 I TTL Chân cho phép chế độ giao tiếp song song PSP, có chiều vào

(cho phép PSP)

AN7 1 I ANA Đầu vào kênh 7 của bộ biến đổi A/D ; mặc định được cấu

hình có chiều vào khi reset POR

Phát hiện điện áp cao; sử dụng cho ICSP™

RE3 —(2) I ST Chiều vào dữ liệu sử dụng bit PORTE<3>; cho phép khi bit

cầu hình MCLRE được đặt bằng 0

Bảng 2.11 Chức năng các chân của PORTD

b Các thanh liên quan đến PORTE

Có 4 thanh ghi được sử dụng để điều khiển và chọn chức năng cho PORTE:

 PORTE: Thanh ghi dữ liệu của PORTE

 LATE: Thanh ghi chốt dữ liệu đầu ra của PORTE

 TRISE: Thanh ghi hướng dữ liệu của PORTE, riêng chân RE3 mặc định có chiều vào

 ADCON1: Thanh thi điều khiển A/D Được sử dụng để lựa chọn vào/ra số hay tương tự cho các chân của PORTE

- Thanh ghi TRISE

R-0 R-0 R/W-0 R/W-0 U-0 R/W-1 R/W-1 R/W-1 IBF OBF IBOV PSPMODE — TRISE2 TRISE1 TRISE0 bit 7 bit 0

Ghi chú:

R = Cho phép đọc W = Cho phép ghi U = Không sử dụng, đọc bằng ‘0’

-n = Reset - POR ‘1’ = Được thiết lập ‘0’ = Được xóa -x = Reset không xác định

bit 7 IBF: Bit trạng thái đầy bộ nhớ đệm nhận

1 = Đã nhận được liệu và chờ CPU đọc

0 = Chưa nhận được dữ liệu

bit 6 OBF: Bit trạng thái đầy bộ nhớ đệm truyền

1 = Bộ nhớ đệm truyền vẫn chứa dữ liệu được ghi trước đó

0 = Dữ liệu trong bộ nhớ đệm truyền đã được đọc

bit 5 IBOV: Bit báo tràn bộ nhớ đệm nhận

1 = Ghi dữ liệu xảy ra khi dữ liệu nhận trước đó chưa được đọc (phải được xóa bằng phần mềm)

Trang 28

bit 4 PSPMODE: Bit lựa chọn chế độ PORT song song tớ

1 = Chế độ PORT song song tớ

0 = Chế độ vào/ra đa chức năng

bit 3 Không sử dụng: Đọc được ‘0’

bit 2 TRISE2: Bit chọn hướng RE2

Tên Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

PORTE — — — — RE3 RE2 RE1 RE0 LATE(2) — — — — — Thanh ghi xuất dữ liệu LATE TRISE IBF OBF IBOV PSPMODE — TRISE2 TRISE1 TRISE0 ADCON1 — — VCFG1 VCFG0 PCFG3 PCFG2 PCFG1 PCFG0

Trang 29

Chương 3 PHẦN MỀM MPLAB VÀ TRÌNH DỊCH MCC18

1 CÀI ĐẶT MPLAB

Việc cài đặt MPLAB IDE được thực hiện dễ dàng bằng việc khởi chạy trình setup trong thư mục MPLAB_IDE_v8_70, trong đó có tùy chọn cài đặt Hi-tech C compiler for PIC

2.1 Tạo Project trên MPLAB

Bước 1: Tạo Project và lựa chọn chip

- Mở MPLAB IDE bằng cách click vào biểu tượng

Trang 30

Hình 3.2 Cửa sổ khởi động của MPLAB

- Vào menu [Project] >> [Project Winzard] để tạo một Project mới

Hình 3.3 Tạo Project

- Chọn [Next] để chuyển sang cửa sổ chọn chip

Hình 3.4 Tạo Project (2)

Trang 31

- Tại cửa sổ chọn chip (Step One: Slect a device) lựa chọn chip 18F4520

Hình 3.5 Tạo Project (3): Chọn vi điều khiển

Bước 2: Lựa trình biên dịch (ASM hoặc MCC18 hoặc CCS)

- Nếu chọn trình dịch hợp ngữ (ASM): Tại cửa sổ Step Two, cửa sổ lựa chọn công

cụ biên dịch [Active Toolsuite] lựa chọn công cụ biên dịch là [Microchip

MPASM Toolsuite] và trong ô [Toolsuite Contents] chọn [MPASM Assembler (mpasmwin.exe) v5.41], tiếp tục nhấn [Next] để sang bước 3

Hình 3.6 Tạo Project (4): Chọn trình dịch hợp ngữ

Trang 32

công cụ [Microchip C18 Toolsuite] và trong ô [Toolsuite Contents] chọn [MPASM C18 C Compiler (mcc18.exe) v3.43], và nhấn [Next]

Hình 3.7 Tạo Project (4): Chọn trình dịch C

Bước 3: Đặt tên cho Project và chọn đường dẫn cho Project

Chú ý: Chọn tên Project và đường dẫn nên gợi nhớ theo nội dung của bài

- Đặt tên đường dẫn như hình 3.8

Hình 3.8 Tạo Project (5): Đặt tên, đường dẫn Project

Trang 33

- Chọn [Next] sẽ xuất hiện cửa sổ hỏi lại bạn có muốn tạo thư mục theo đường dẫn này không Chọn [OK] để tạo thư mục và chuyển sang bước 4

Hình 3.9 Tạo Project (5):Tạo tên, đường dẫn Project

Bước 4: Thêm file vào Project và kiểm tra lại các thông tin của Project

- Cửa sổ bước thứ 4 (Step Four) sử dụng để thêm các file vào Project Ở bước này

chúng ta nhấn [Next] sẽ sang cửa sổ Summary (hình 3.10)

- Ở cửa sổ Summary hiển thị tóm tắt các thông tin của Project chúng ta vừa tạo,

kiểm tra lại các thông tin và nhấn [Finish] để kết thúc

Hình 3.10 Các thông tin của Project vừa tạo

Bước 5: Tạo file mã nguồn

- Vào menu [File] >> [New] để tạo file mã nguồn

Trang 34

Hình 3.11 Tạo file mã nguồn từ menu File

- Vào menu [File] >> [Save As] để lưu file mã nguồn

Hình 3.12 Đặt tên, lưu file mã nguồn ASM

Chú ý: Chọn đường dẫn cho file ASM là được dẫn của Project vừa tạo bằng cách

trong mục Jump to chọn Project Directory, đặt tên của file ASM với phần mở rộng asm, tích chọn Add File To Project để thêm file ASM vào Project vừa tạo

Trong trường hợp file mã nguồn là file C, tên file cần có phần mở rộng C (xem hình 3.13)

Trang 35

Hình 3.13 Đặt tên, lưu file mã nguồn C

- Viết chương trình vào file mã nguồn vừa tạo

Hình 3.14 Viết chương trình

2.2 Biên dịch và sửa lỗi chương trình

- Chọn menu [Project] >> [Buil All] hoạc nhấn [Ctrl + F10] hoặc click vào biểu

tượng Buil All trên thanh công cụ biên dịch

Trang 36

- Sau khi biên dịch sẽ xuất hiện thông báo BUILD SUCCEEDED nếu như biên dịch ra file Hex thành công, tức là chương trình không có lỗi

Hình 3.15 Chương trình được biên dịch thành công

- Sau khi biên dịch sẽ xuất hiện thông báo BUILD FAILED nếu như biên dịch không thành công, có lỗi cú pháp Click vào lỗi [Error[113] D:\MAY1….] trình biên dịch IDE MPLAB sẽ trỏ vào lỗi trên cửa sổ viết mã chương trình, tiến hành sửa lỗi và biên dịch lại cho tới khi tao được file Hex (hình 1.31)

Hình 3.16 Sửa lỗi chương trình

2.3 Mô phỏng hoạt động của vi điều khiển bằng MPLAB SIM

- Từ thanh menu chọn [Debugger] >> [Select Tool] >> [MPLAB SIM] để lựa

chọn công cụ mô phỏng

Trang 37

Hình 3.17 Chọn công cụ mô phỏng

Hình 3.18 Các chức năng của công cụ mô phỏng

Run - Chế độ chạy thực tế

Halt - Dừng tại lệnh hiện tại

Animate - Chạy với khoảng thời gian trễ giữa các lệnh

Step Into - Chạy từng lệnh

Step Over - Chạy trong vòng lặp

Step Out - Chạy ngoài vòng lặp

Reset - Thực hiện reset chip

Breakpoint - Điểm dừng của lệnh (sử dụng để đặt điểm dừng chương trình)

- Chọn menu [View] >> [Special Function Register] để quan sát giá trị của các

thanh ghi

Trang 38

Hình 3.19 Quan sát các thanh ghi khi mô phỏng

- Click nút [Reset] trên thanh công cụ, sau đó nhấn [Step Into] để mô phỏng từng

lệnh

Hình 3.20 Mô phỏng từng lệnh

- Chọn menu [View] >> [Watch] Cửa sổ Watch hiện ra sẽ cho phép theo dõi hoạt

động của các thanh ghi SFR tùy chọn

Hình 3.21 Chọn các thanh ghi để quan sát

Trang 39

- Để cho dễ quan sát chúng ta có thể chọn hiển thị thêm hệ đếm thập phân bằng cách Click chuột phải lên thanh chú thích

Hình 3.22 Chọn hệ đếm để hiển thị giá trị thanh ghi

- Tiến hành chạy mô phỏng trương trình để kiểm tra kết quả, theo dõi sự biến đổi của các thanh ghi trên cửa sổ Watch và Special Function Register

2.4 Nạp chương trình

- Kết nối máy tính với thiết bị:

Hình 3.23 Kết nối máy tính với thiết bị

+ Kết nối PICKit2 với thiết bị qua M-Connector trên thiết bị, với máy tính qua một cổng USB

+ Kết nối cáp USB với thiết bị qua USB1 trên thiết bị, với máy tính qua một cổng USB khác để cấp nguồn cho thiết bị

- Chọn bộ nạp PICkit2 (hình 3.24)

Trang 40

Hình 3.24 Chọn bộ nạp

- Click lên biểu tượng “Program the target device” trên thanh công cụ

- Nhấn các phím Key1÷Key4 và quan sát kết quả trên LED1÷LED4

3 TRÌNH DỊCH MCC18

Hình 3.25 Quá trình biên dịch của MPASM và MCC18

Ngày đăng: 03/03/2021, 08:35

TỪ KHÓA LIÊN QUAN

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