You are on page 1of 137

Chương 1

Giới thiệu bộ công cụ của


Microchip
MPLAB® IDE, MPSIM™ Simulator và MPLAB ICD 2
Mục tiêu của lớp học
• Kiến thức
– Kiến thức cơ bản về môi trường làm việc
MPLAB® IDE
– Các thao tác để:
• Tạo Project
• Mô phỏng chương trình ứng dụng
• Nạp chương trình.
• Chạy Debug chương trình trên mạch thí
nghiệm.
• Nạp chương trình và chạy ứng dụng.
Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 2
Mục lục
• Giới thiệu môi trường làm việc MPLAB® IDE
– Các chức năng của môi trường làm việc
• Quản lí các file của dự án đang làm việc
• Soạn thảo chương trình
• Các công cụ - Trình hợp dịch và trình biên
dịch
– Phần cứng hỗ trợ
• Mạch nạp/Debug MPLAB ICD 2
• Mạch PICSTART® Plus và MPLAB PM3
• Mạch MPLAB ICE 2000/4000
• Mạch thí nghiệm PICkit™ 2 Starter Kit
Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 3
Mục lục (tt)
• Làm quen với môi trường làm việc MPLAB® IDE
• Qui trình dùng MPLAB IDE để phát triển ứng dụng:
• Tạo Project
• Mô phỏng chương trình ứng dụng sử dụng MPSIM
• Test chương trình sử dụng mạch MPLAB ICD 2 và
mạch PICDEM™ 2 Plus demo hoặc Proteus
• Nạp chương trình và chạy ứng dụng độc lập
• Các lưu ý trong cách sử dụng các công cụ soạn
thảo MPLAB, công cụ mô phỏng MPSIM và công
cụ Debug/Nạp chương trình MPLAB ICD 2
• Tóm tắt
Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 4
Giới thiệu môi trường
làm việc MPLAB® IDE
Tại sao nên sử dụng các công
cụ của Microchip?
• Chất lượng cao: đạt tiêu chuẩn ISO 9000
• Được phân phối nhanh chóng và sử dụng
rộng rãi.
• Được hỗ trợ kĩ thuật miễn phí
• Cập nhật liên tục, nâng cấp thường xuyên
• Được phát triển và phân phối bởi chính nhà
sản xuất
• Đạt tiểu chuẩn của thế giới, giá thành hợp lí

Chất lượng * Luôn có sẵn * Hỗ trợ * Dịch vụ * Giá trị


Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 6
MPLAB® IDE và các thành phần
hỗ trợ
– Chạy trên môi trường
Windows®

– Bao gồm cả phần cứng


và phần mềm

– Được phân phối miễn phí!


Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 7
MPLAB® IDE và các thành phần hỗ trợ

MPLAB® IDE
Integrated Development Environment
Môi trường Chạy Debug Quản lí
soạn thảo chương trình dự án
Ngôn ngữ Nạp chương
lập trình Mô phỏng Emulators trình
MPLAB MPLAB ICE MPLAB PM3
MPLAB 2000
C18, C30
SIM PICSTART®
Compilers
Plus
MPLAB ICE
4000 PICkit™ 2
Assemblers Starter Kit
Linkers
MPLAB ICD 2
Librarians

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 8
Mạch thí nghiệm
PICSTART® Plus
• RS-232 Interface
• Hỗ trợ hầu hết các vi điều
khiển có kiểu chân DIP …
• Trình biên dịch ngôn ngữ C
PICC Lite™ được cung cấp
miễn phí
• Thao tác với bộ nhớ
chương trình (Read/
Program/Verify), bộ nhớ dữ
liệu EEDATA và các bit cấu
hình (Configuration bits).

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 9
Mạch phát triển PICkit™ 2 Starter
Kit Development Programmer

Mạch phát triển


(Starter Kit)
(DV164120)

Bộ nạp chương trình


(PG164120)

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 10
Bộ nạp chương trình chuyên dụng
MPLAB® PM3
• Màn hình LCD lớn
• Parallel Interface
• USB Interface
• Cáp kết nối ICSP™
• (In Circuit Serial
Programming™)
• 3 chế độ hoạt động
– Kết nối với PC
– Hoạt động độc lập
– Chế độ Safe-mode

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 11
MPLAB® ICE 2000 In-Circuit
Emulator
• Parallel Interface
• 32K x 128 bit Trace
• Up to 25 MHz
• Code Coverage Profiling
• Flexible Processor Modules

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 12
MPLAB® ICE 4000 In-Circuit
Emulator
• Tốc độ cao
• Dung lượng bộ nhớ 2 Mb
• Hỗ trợ Stopwatch
• Hỗ trợ 48-bit Time Stamp
• 64K x 136 bit Trace
• Code Coverage Profiling
• Parallel Interface
• USB Interface
• Flexible Processor
Modules

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 13
Các mạch phát triển và mạch demo
Hệ thống các mạch phát triển hỗ trợ cho việc học tập,
nghiên cứu và phát triển sản phẩm nhanh chóng.

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 14
Các mạch phát triển và mạch Demo
Danh sách các mạch phát triển thông dụng.
• PICkit™ 1 Starter Kit  PIC18FXX20 64/80 pin • Analog Filter, Temp
• PICDEM™ 1 board Demo Sensor, and Thermister
• PICDEM™ 2 board  PIC18F2539 Motor design
Control
• PICDEM™ 2 Plus board • CAN Evaluation Kits
 dsPICDEM™ Demo Board
• PICDEM™ 4 board • PIC18F2539 Motor
 dsPIC® DSC Starter
• PICDEM™ 14A board Board Control
• PICDEM™ 18R board • KEELOQ® Security ICs
 dsPIC DSC Motor Control
• PICDEM™ USB board • MCP2110/2150 Infrared
 microID® Radio
• PICDEM™ MSC1 board Frequency Devices Controller
• PICDEM.net™ board • Fan Controllers
• PICDEM™ LIN board • Memory
• PICDEM™ CAN-LIN 1
board
• PICDEM™ CAN-LIN 2 Lưu ý: Xem thêm trên trang
board
• PICDEM™ CAN-LIN 3 www.microchip.com
board
Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 15
Bộ công cụ thí nghiệm MPLAB® ICD 2 và
PICDEM™ 2 Plus Demo Board
• Bộ nạp chương trình và Debug • Mạch thí nghiệm cho PIC18 và
giá thành thấp PIC16 loại chân DIP
• Debug chương trình theo từng • Màn hình LCD 2x16
bước, và được hỗ trợ • Loa tạo âm thanh
Breakpoint • Loa(Piezo)
• Nạp chương trình cho hầu hết
• Cảm biến nhiệt độ
các chip có bộ nhớ flash.
• Cổng kết nối RS-232 với
• Cho phép kết nối với các ứng MPLAB ICD2
dụng thực tế.
• Có sẵn chương trình ứng
• Cho phép kết nối qua cổng dụng tổng hợp.
USB hoặc RS-232

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 16
Tài nguyên của mạch
MPLAB® ICD 2
• 2 vùng nhớ Stack
• Các vùng nhớ ROM và RAM
• Hỗ trợ 2 chân I/O phụ.
• Chân Reset dùng chung

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 17
Giới thiệu các thao tác với
MPLAB® IDE, MPSIM™
Simulator và MPLAB ICD 2
Môi trường làm việc của
MPLAB® IDE
• Các file
Template

• Cửa sổ
làm việc

• Hỗ trợ Online

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 19
Chức năng Debug của MPLAB® IDE

• Các Breakpoint
– Điạ chỉ (Address) trong bộ nhớ, tên nhãn (Label) hoặc số thứ tự
của dòng lệnh (Line Number)
• Quan sát bằng cửa sổ Watch
– Hiển thị giá trị hiện tại của một thanh ghi hoặc một chuỗi các
thanh ghi
– Định dạng dữ liệu cần hiển thị của thanh ghi
• Theo dõi quá trình hoạt động của chương trình
– Bằng phần mềm (simulator)
– Trực tiếp trên phần cứng (ICE)
• Simulator Stimulus
• File chứa kết quả mô phỏng (Output Log)
• Nhập/xuất dữ liệu

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 20
Cửa sổ MPLAB® IDE

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 21
Cửa sổ MPLAB® IDE

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 22
Qui trình phát triển 1 ứng dụng
Select
Select Create
Language Add Files
Device Project
Tools

Develop Build
Simulate
Code Project

Program In Circuit
Device Debug

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 23
Màn hình hiển thị khi khởi động
MPLAB® IDE

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 24
Select Device

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 25
Cửa sổ Select Device

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 26
Chọn Vi điều khiển

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 27
Tạo một Project

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 28
Cửa sổ Project Wizard

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 29
Bước 1: Xác nhận vi điều khiển

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 30
Bước 2: Chọn trình biên dịch

• Các đường dẫn mặc định cho MPLAB® assembler và linker:


• C:\Program Files\Microchip\MPASM Suite\MPAsmWin.exe
• C:\Program Files\Microchip\MPASM Suite\mplink.exe
Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 31
Bước 3: Đặt tên cho Project

• Tên Project: BlinkLED


• Thư mục chứa Project: C:\FirstPicProject\BlinkLED
• Lưu ý đường dẫn không quá 63 kí tự

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 32
Tạo thư mục chứa Project
BlinkLED

• Trong mục <My Computer>, chọn ổ đĩa <C:>


• Click vào nút <Make New Folder>
Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 33
Tạo thư mục chứa Project
BlinkLED

• Đổi tên cho thư mục <New Folder>


Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 34
Create the BlinkLED Directory

• Đổi tên thư mục thành <FirstPicProject>


• Click vào nút <Make New Folder> một lần nữa.
Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 35
Tạo thư mục BlinkLED

• Đổi tên thư mục New Folder thành thư mục “BlinkLED”

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 36
Thư mục BlinkLED đã được tạo

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 37
Bước 4:Chọn file Template

• Đường dẫn:
<C:\ProgramFiles\Microchip\MPASMSuite\Template\Object\4520t
mpo.asm>
• Ấn nút <Add>
Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 38
Absolute và Linker
• Người dùng có hai lựa chọn:
– Sử dụng Linker
– Không sử dụng Linker (absolute code)
• Ưu điểm của việc sử dụng Linker:
– Cho phép liên kết nhiều file với nhau
– Được định nghĩa trước các Vector và các vùng nhớ
trong bộ nhớ chương trình
• Các Vector ngắt (Interrupt Vector)
• Vùng nhớ dùng để Debug chương trình
– Độc lập với vi điều khiển được sử dụng.
– Sử dụng các định nghĩa đã được mô tả trong
datasheet của vi điều khiển
• Ưu điểm của việc tự viết chương trình
– Đơn giản.
Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 39
Khuyến cáo của Microchip

• Sử dụng Linker
• Vi điều khiển được lựa chọn trong
Project là PIC18F4520, do đó file linker
4520tmpo.asm được chọn.
– Kí tự “o” được thêm vào trong tên của file
linker là viết tắt của “Object” dùng để chỉ
đối tượng vi điều khiển được lựa chọn.

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 40
Thêm file 4520tmpo.asm vào
Project

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 41
Lưu file vào thư mục chứa
Project

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 42
Đổi tên file thành
BlinkLED.asm

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 43
Thêm file Linker

• Chọn file <C:\Program Files\Microchip\MPASM suite\lkr\18f4520.lkr>


• Nhấn nút “Add”

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 44
Lưu file 18F4520.lkr vào thư
mục chứa Project

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 45
Tất cả các file cần thiết đã được thêm
vào trong thư mục chứa Project

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 46
Kết thúc 4 bước tạo Project

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 47
Cây thư mục các file của Project

Vào Project/View để xem cây thư mục quản lý Project

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 48
Biên dịch các file trong Project

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 49
Cửa sổ Output hiển thị kết quả
biên dịch Project

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 50
Soạn thảo chương trình ứng
dụng của Project

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 51
Cửa sổ soạn thảo chương trình
ứng dụng (file Template)

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 52
Điều chỉnh các thuộc tính của
cửa sổ soạn thảo

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 53
Điều chỉnh các thuộc tính của
cửa sổ soạn thảo

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 54
Điều chỉnh các thuộc tính của
cửa sổ soạn thảo

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 55
Chọn Font

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 56
Lựa chọn các thuộc tính khác

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 57
Thêm code vào chương trình
chính Main

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 58
Tham khảo Data Sheet: lựa chọn
chân điều khiển cần dùng

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 59
Tham khảo các thuộc tính
các chân IO của PORTB
7 6 5 4 3 2 1 0

0 1 1 0 1 0 1 0 TRISB

O I I O I O I O PORTB

PINs

• Thanh ghi TRISB thiết lập chân điều khiển là chân ngõ
vào (Input) hay chân ngõ ra (Output)
• TRISB, bit0 = 0 ; PORTB, bit0 = Output
• TRISB bit1 = 1 ; PORTB, bit1 = Input
Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 60
Lệnh MOVLW
File Registers

Lệnh Giá trị Địa chỉ


0x00 0x000
MOVLW 0x55 0x10 0x001

Thanh ghi W 0x55 Wreg 0x00 0x0FE


0xAB 0x0FF
0x00
0x55

SFR s 0x00 0xF80


0x00 0xF81

Tham số = 0 đến 0xFF


0x00 0xFFE
0x00 0xFFF

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 61
Lệnh MOVWF
File Registers

Lệnh Giá trị Địa chỉ

0x00 0x000
MOVWF 0xFF 0x10 0x001

Thanh ghi W Wreg [0xFF] 0x00 0x0FE


0xAB
0x55 0x0FF
0x55

SFR s 0x00 0xF80


0x00 0xF81

Vùng địa chỉ = 0 đến 0xFF


0x00 0xFFE

PORTB là thanh ghi SFR (Special Function Register) 0x00 0xFFF

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 62
Viết thêm lệnh cho chương trình

• Viết dòng lệnh đầu tiên:


movlw 0x00 ; move hex 0 to w register
Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 63
Viết thêm lệnh cho chương trình

• Thêm các lệnh vào chương trình như trong hình


Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 64
Cấu hình loại thạch anh cần
sử dụng

• Tìm dòng lệnh CONFIG OSC = LP


• Bỏ lệnh trên bằng cách thêm dấu “;” ở đầu dòng
• ;CONFIG OSC = LP
• Cấu hình của loại thạch anh cần sử dụng sẽ được
thiết lập sau
Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 65
Biên dịch chương trình

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 66
Lựa chọn công cụ mô phỏng

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 67
Thiết lập cấu hình họat động

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 68
Thiết lập cấu hình họat động

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 69
Chọn cấu hình xung nhịp họat
động của chip là INT RC

• Chọn cấu hình INT RC-Port on


RA6, Port on RA7

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 70
Tắt chế độ BOD

• Click chuột lên vị trí thiết lập cấu hình


cho chức năng “Brown Out Detect”
• Chọn chức năng “Disable in hardware”
Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 71
Tắt WDT (WatchDog Timer)

• Click chuột lên vị trí thiết lập của


“WatchDog Timer” và chọn
“Disabled – Controlled by SWDTEN”

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 72
Cấu hình các chân PORTB <4:0>
là chân Digital

• Click chuột lên chức năng “PortB A/D


Enable”
• Chọn “PORTB<4:0> configured as
Digital I/O”
Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 73
Reset chương trình

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 74
Vị trí của chương trình sau khi
được Reset

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 75
Theo dõi hoạt động của chương
trình theo từng bước

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 76
Theo dõi hoạt động của chương
trình theo từng bước

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 77
Tự tạo ra một lỗi khi biên dịch

Change PORTB to
PORT

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 78
Xem thông báo lỗi khi biên dịch

• Thông báo lỗi: “Error[113] Symbol not


previously defined”
• Click chuột vào thông báo lỗi để nhảy đến vị
trí gây ra lỗi trong chương trình
Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 79
Con trỏ nhảy đến vị trí gây ra lỗi

• Chỉ ra dòng lệnh gây ra lỗi trong chương trình


• Sửa lỗi (đổi PORT thành PORTB) và biên dịch
lại chương trình

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 80
Chọn cửa sổ Watch

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 81
Cửa sổ Watch hiện ra

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 82
Menu đổ xuống trong cửa sổ
Watch

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 83
Thêm thanh ghi PORTB vào
cửa sổ Watch

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 84
Cửa sổ Watch

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 85
Quan sát bit RB0 được set trong
cửa sổ Watch

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 86
Quan sát bit RB0 được xóa
trong cửa sổ Watch

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 87
Kết nối công cụ ICD2 với môi
trường MPLAB®

MPLAB ICD 2
PICDEM™ 2 Demo
Board +

Có thể sử dụng PicKit2


Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 88
Kích hoạt MPLAB® ICD 2
sử dụng môi trường MPLAB IDE

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 89
Cửa sổ Download

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 90
Thanh công cụ của MPLAB® ICD 2

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 91
Tắt chức năng nạp chương trình
điện áp thấp (Low Voltage Pogram)

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 92
Nạp chương trình cho
MPLAB® ICD 2

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 93
Nạp chương trình thành công

Nạp
thành công

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 94
Vị trí con trỏ chương trình khi
reset MPLAB® ICD 2

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 95
Nhảy tới lệnh ghi giá trị lên
thanh ghi PORTB

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 96
LED sáng; nhưng PORTB,0 = 0?

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 97
Bit PORTB,0 đã được cập nhật

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 98
LED tắt, nhưng PORTB,0 = 1?

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 99
PORTB,0 đã được cập nhật

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 100
Chạy/dừng chương trình trên
MPLAB® ICD 2

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 101
Thiết lập Breakpoint trên
MPLAB® ICD 2

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 102
Kí hiệu Breakpoint

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 103
Tác dụng của Breakpoint

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 104
Xóa Breakpoint
trên MPLAB® ICD 2

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 105
Breakpoint trên MPLAB® ICD
2 đã được xóa

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 106
Các tính năng khác của môi
trường soạn thảo - Bookmarks

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 107
Kí hiệu Bookmarks

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 108
Kéo và thả các tham số vào
cửa sổ Watch

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 109
Kéo và thả các tham số vào
cửa sổ Watch

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 110
Thêm chương trình con Delay

• Thêm hai lệnh gọi hàm Delay call Delay vào


chương trình chính

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 111
Lệnh CALL
Cú pháp

CALL Sub

Here: CALL Sub


Other Inst.
Other Inst.
Sub: Next Inst.
Next Inst.
RETURN

Lệnh CALL có thể nhảy đến mọi vùng nhớ


trong bộ nhớ chương trình của PIC18

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 112
Lệnh DECFSZ
Cú pháp File Registers
Value Addr.
DECFSZ 0xFF 0x00 0x000
0x10 0x001

Loop: DECFSZ 0xFF


Thanh ghi W
GOTO Loop 0x00 0x0FE
0x55 Exit: Next Inst. 0x01
0x00
0x02 0x0FF

SFR s
0x00 0xF80
0x00 0xF81

0x00 0xFFE
0x00 0xFFF

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 113
Lệnh CLRF
Cú pháp File Registers
Value Addr.

0x00 0x000
CLRF 0xFF
0x10 0x001

Thanh ghi W 0x00 [0xFF]


0x00 0x0FE
0x00 0x00
0xAB 0x0FF

SFR s
0x00 0xF80
0x00 0xF81

Trá trị vùng địa chỉ = 0 đến 0xFF

0x00 0xFFE
0x00 0xFFF
Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 114
Viết chương trình con Delay
call Delay
goto Loop
Delay:
BANKSEL count1 Tcycle = 1 uS; mỗi vòng lặp tốn 3 Tcyl;
clrf count1 Thời gian Delay (tính gần đúng)
clrf count2
[(256*3*1)256]us = 197mS
clrf count3
DLoop:
decfsz count1,F
goto DLoop
decfsz count2,F
goto Dloop
decfsz count3,F
goto DLoop
return
Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 115
Viết chương trình con Delay(tt)
call Delay
goto Loop
Delay:
BANKSEL count1
movlw 0x02
movwf count3 Thời gian Delay ?
DLoop:
decfsz count1,F
goto Dloop
movlw 0x04
movwf count1
decfsz count2,F
goto Dloop
movlw 0x03
movwf count1
decfsz count3,F
goto DLoop
return

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 116
Khai báo hai thanh ghi CountL
và CountH

Dưới dòng khai báo UDATA_ACS


Sau lệnh EXAMPLE RES 1 thêm các khai báo
CountH RES 1
CountL RES 1
• Trình biên dịch sẽ dành riêng hai vùng nhớ để chứa
giá trị các biến CountL và CountH sử dụng trong
chương trình con Delay
• Biên dịch chương trình
Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 117
Chọn công cụ Simulator

• Trong menu <Debugger> chọn <MPLAB


SIM>

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 118
Chọn cửa sổ Watch

• Trong menu <Debugger> chọn <StopWatch>


Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 119
Cửa sổ Stopwatch

• Tần số họat động của bộ xử lí (Processor Frequency) là 20 MHz


• Sửa thành 1 MHz (tần số mặc định khi chọn cấu hình xung nhịp
cho bộ xử lí là INTRC Freq).

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 120
Thiết lập tần số hoạt động cho
bộ xử lí
• Chọn <Debugger>, sau
đó chọn <Settings…>

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 121
Thiết lập tần số hoạt động cho
bộ xử lí

• Trong cửa sổ “Simulator Settings”, thẻ “Osc/Trace”,


sửa lại tần số hoạt động là 1.0 MHz
• Click vào nút <Apply>, sau đó click nút <OK>
Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 122
Điều chỉnh xong tần số cho cửa
sổ Stopwatch

• Đã chọn đúng tần số hoạt động


• Click vào nút “Reset” trên thanh công cụ mô phỏng

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 123
Tính năng “Run to Cursor”

• Di chuyển con trỏ lệnh đến dòng lệnh “Call Delay”,


sau đó click phải chuột và chọn <Run to Cursor>

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 124
Tính năng “Run to Cursor”

• Chương trình sẽ chạy và dừng như trên cửa sổ


StopWatch
• 6 lệnh đã được thực thi
Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 125
Reset cửa sổ Stopwatch

• Reset giá trị trong cửa sổ StopWatch bằng


cách click lên nút “Zero”
• Bây giờ thời gian được hiển thị trên cửa sổ
Stopwatch Time là 0.0
Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 126
Nhảy qua lệnh “Call Delay” và kiểm tra
thời gian thực thi chương trình con Delay

• Dùng nút <Stepover> trên thanh công cụ mô phỏng để nhảy


qua lệnh gọi chương trình con Delay
• Thời gian trên cửa sổ Stopwatch = 789.528 mS = thời gian
Delay chính xác
• Tiếp tục chạy thử chương trình bằng công cụ MPLAB® ICD 2

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 127
Chọn công cụ Debug là
MPLAB® ICD 2

• Chọn <Debugger>, sau đó chọn <MPLAB ICD 2>


• Cửa sổ StopWatch tự động đóng lại, và thực hiện
kết nối với công cụ MPLAB ICD 2
Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 128
Nạp và chạy chương trình

• Nhất nút nạp chương trình và nhấn nút Run


• LED chớp tắt liên tục

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 129
Dừng MPLAB® ICD 2 và chọn
chế độ nạp chương trình
• Dừng chế độ chạy Debug
• Từ Menu <Debugger>
chọn <None>
• Thanh công cụ MPLAB
ICD 2 biến mất
• Từ menu <Programmer>
chọn <MPLAB ICD 2>
• Thanh công cụ mới xuất
hiện

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 130
Nạp chương trình ứng dụng
cho vi điều khiển
• Thanh công cụ nạp
chương trình xuất hiện
• Di chuyển chuột đến
các nút để tìm hiểu các
chức năng của thanh
công cụ
• Nhấn vào nút ngoài
cùng phía bên trái để
nạp chương trình cho vi
điều khiển

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 131
Ứng dụng chạy độc lập
• Cửa sổ Output hiển thị
kết quả quá trình nạp
chương trình
• Để cho ứng dụng chạy
độc lập, ngắt kết nối
giữa MPLAB ICD 2 và
mạch thí nghiệm

LED chớp tắt liên tục

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 132
Kết luận
Kết luận
• Các kiến thức thu được
– Các kiến thức liên quan đến môi trường làm việc
MPLAB® và cách sử dụng (phần cứng và phần mềm)
– Các thao tác với môi trường soạn thảo
– Cách tạo Project, bao gồm:
• Sử dụng Project Wizard
• Chọn vi điều khiển cần sử dụng
• Chọn ngôn ngữ biên dịch
• Thêm các file vào trong Project
• Viết một số chương trình ứng dụng đơn giản
• Biên dịch Project.

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 134
Kết luận
• Các kiến thức thu được
– Chạy mô phỏng chương trình sử dụng
MPLAB® SIM và MPLAB ICD 2, bao
gồm:
• Rà soát lỗi trong chương trình ứng dụng
• Bật cửa sổ Watch để rà soát lại các hoạt
động theo từng bước
• Sử dụng cửa sổ Stopwatch
• Tạo Breakpoints
– Cách sử dụng công cụ MPLAB ICD 2
như là công cụ mô phỏng và công cụ
nạp chương trình
Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 135
Download MPLAB® IDE

• www.microchip.com

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 136
Cảm ơn sự quan tâm theo dõi của các bạn

Bài giảng Vi điều khiển ứng dụng – GV: Phạm Nguyễn Huy Cường Slide 137

You might also like