Như ta ñã biết ñể có thể thực hiện một chức năng nào ñó thì vi ñiều khiển cần phải thực hiện các lệnh trong bộ nhớ chương trình code memory ñược lưu dưới dạng các số nhị phân của nó bằng
Trang 2MỤC LỤC
Trang 36.Truyền dữ liệu trên bus I2C ,master-slave 69
Trang 4là một trong những IC thích hợp nhất ñể thay thế các IC số trong việc thiết
kế mạch logic Ngày nay ñã có những MC tích hợp ñủ tất cả các chức năng của mạch logic Nói như vậy không có nghĩa là các IC số cũng như các IC mạch số lập trình ñược khác như PLD… không cần dùng nữa MC cũng có những hạn chế mà rõ ràng nhất là tốc ñộ chậm hơn các mạch logic… MC cũng là một máy tính – máy tính nhúng vì nó có ñầy ñủ chức năng của một máy tính Có CPU, bộ nhớ chương trình, bộ nhớ dữ liệu, có I/O và các bus trao ñổi dữ liệu Cần phân biệt khái niệm MC với khái niệm vi xử lý (microprocessor – MP) như 8088 chẳng hạn MP chỉ là CPU mà không có các thành phần khác như bộ nhớ I/O, bộ nhớ Muốn sử dụng MP cần thêm các chức năng này, lúc này người ta gọi nó là hệ vi xử lý (microprocessor system) Do ñặc ñiểm này nên nếu ñể lựa chọn giữa MC và MP trong một mạch ñiện tử nào ñó thì tất nhiên người ta sẽ chọn MC vì nó sẽ rẻ tiền hơn nhiều do ñã tích hợp các chức năng khác vào trong chip Trong phạm vi môn học kiến trúc máy tính, chúng em xin chọn một loại MC ñể tìm hiểu với mục ñích cuối cùng là hiểu hết các chức năng của MC này và thiết kế, lắp ráp một mạch ño nhiệt ñộ dùng MC Có rất nhiều loại MC ñể lựa chọn như họ
8051 của Atmel, Philips AVR của Atmel, dòng 68000 (32bit) của Motorola
Ở ñây xin chọn PIC của hãng microchip (www.microchip.com) vì sự phổ biến của nó Có một ñiều khá thú vị là trong sản phẩm trò chơi ñiện tử PlayStation của Sony cũng có PIC.Theo ñánh giá thì PIC là dòng MC 8 bit
sử dụng nhiều nhất trên thế giới tại thời ñiểm năm 2006 này Việt Nam có lẽ cũng không phải là một ngoại lệ
1.Giới thiệu các loại chip PIC
Như ñã nói ở phần trước, ở ñây ta sẽ chọn vi ñiều khiển PIC ñể tìm hiểu, tuy nhiên việc chọn loại nào trong họ này cũng là một ñiều cần quan tâm PIC có rất nhiều dòng từ PIC12xx, PIC16xx, PIC18xx ñến dsPIC… theo thứ
Trang 5từng dòng này nằm ngoài phạm vi kiến thức của chúng em do ñó ở ñây xin chọn loại cao nhất trong dòng 16 ñó là PIC16F877 (mid-range) Nó là loại vi ñiều khiển loại trung với kích cỡ 1 lệnh là 14 bit (dòng 12 kích cỡ lệnh là 12bit, 18 có kích cỡ 16bit)
Chữ F trong tên gọi thể hiện bộ nhớ chương trình ở ñây là bộ nhớ FLASH (có thể xoá và nạp lại xxxx lần)
2 Giới thiệu về PIC16F877
Hình 1.2.PIC16F877
a.PIC16F877 mang tất cả các ñặc ñiểm chung của các dòng PIC
- Nó là máy tính có tập lệnh rút gọn (RISC) ðiều ñó có nghĩa là số lệnh của
nó hạn chế ñến mức tối thiểu ( 35 lệnh) Tại sao là RISC lại có lợi và phát triển sau này? Như ta ñã biết ñể có thể thực hiện một chức năng nào ñó thì vi ñiều khiển cần phải thực hiện các lệnh trong bộ nhớ chương trình (code memory) ñược lưu dưới dạng các số nhị phân của nó bằng các bộ giải mã (decoder) ðiều ñó cũng có nghĩa là nếu MC càng có nhiều tập lệnh càng cần nhiều bộ decoder ñể giải mã Như vậy số mạch giải mã tích hợp trong chip sẽ cần nhiều lên ðiều này làm cho chip cần tiêu thụ nhiều năng lượng hơn cũng như chip sẽ dễ bị nóng hơn Như vậy nếu như ứng dụng cần tiêu thụ ít năng lượng thì người ta sẽ chọn RISC Và có lẽ một phần nguyên nhân
Trang 6RISC cũng có ựiều không tốt, như ựể thực hiện một phép tắnh toán có thể phức tạp hơn một chút như lệnh nhân 2 số 8 bit hay chia số 16 bit cho 8 bit chẳng hạn thì cần viết các hàm cần một chút thủ thuật tắnh toán (đó là nếu viết trực tiếp bằng ngôn ngữ Assembly còn nếu viết bằng các ngôn ngữ cấp cao như C thì sẽ không cần) Khi ựã xây dựng một trình dịch bằng ngôn ngữ
C chẳng hạn thì những việc khó khăn về thuật toán hoàn toàn do trình biên dịch (compiler) xử lý nghĩa là nếu xét về mặt tốn công sức lập trình về các thuật toán thì RISC cũng xem không tốn công hơn so với CISC Có thể hình dung chuyển từ CISC sang RISC là quá trình chuyển sự phức tạp từ phần cứng sang sự phức tạp về phần mềm Trái lại CISC lại có số lượng các thanh ghi cũng như bộ nhớ ắt hơn cần có ắt hơn RISC vì: để thao tác một chức năng nào ựó CISC cần thao tác với số thanh ghi nhỏ hơn RISC Ngoài ra bộ nhớ chương trình cũng giảm hơn rất nhiều Tưởng tượng nếu RISC cần thực hiện 1 phép toán nào ựó mà cần 5 lệnh chẳng hạn Thay vì ựó trong máy tắnh CISC người ta thiết kế một bộ giải mã lệnh ựể giải mã lệnh thay cho cả 5 lệnh này, như vậy rõ ràng trong máy tắnh CISC cần có thêm 1 bộ giải mã lệnh nhưng mã nguồn lưu trữ trong chương trình lại giảm ựi ựược 1/5 Gần ựây lại xuất hiện xu hướng ngược lại là chuyển từ phần mềm về phần cứng
và có lẽ sự lựa chọn tốt nhất trong tương lai sẽ là trung gian giữa hai loại ựể trung hoà các ựặc tắnh của cả RISC lẫn CISC Chắnh vì là RISC nên các lệnh của PIC ựã ựược tối giản hoá, tất cả các lệnh trừ các lệnh thay ựổi con trỏ chương trình(Program Counter - PC) ựều tốn 1 chu kỳ máy ( các lệnh thay ựổi PC tốn 2 chu kỳ máy) điều này là khác với CISC có thể có những lệnh tốn nhiều chu kỳ máy vì thực ra bản thân lệnh của CISC ựó cũng có thể coi
là bao gồm nhiều lệnh của RISC vậy
PIC là MC mang cấu trúc Havard là cấu trúc có các ựường bus dữ liệu và bus chương trình riêng lẻ điều này làm cho chương trình có thể ựược thực hiện ựồng thời các thao tác giải mã thực hiện lệnh với các thao tác ựọc dữ liệu cùng lúc điều này khác với cấu trúc Von Neumann có 2 ựường bus này chung do ựó cùng lúc chỉ thực hiện 1 công việc (Vẽ sơ ựồ tìm nạp) đây là nguyên nhân làm cho cấu trúc Von neumann thực hiện 1 lệnh lâu hơn máy mang cấu trúc Harvard Tất nhiên người ta chỉ thấy ựược cái lợi của cấu trúc Harvard khi mà công nghệ sản xuất chip ựã ựược phát triển lên
Cũng cần phải nhớ là MC ựã ựược phát triển từ những dòng ựời trước rồi và sau này nó có thêm các chức năng khác vào vậy một câu hỏi ựược ựặt ra là
nếu không có các chức năng phần cứng này thì trước ựây người ta sẽ làm
Trang 7thế nào ñể thực hiện các chức năng cần thiết? Thực tế người ta vẫn làm ñược
các công việc ñó nhưng là bằng phần mềm Người viết mã sẽ phải thực hiện
các chức năng ñó bằng một số phương pháp nào ñấy Còn khi tích hợp sẵn vào trong phần cứng rồi thì việc thực hiện sẽ ñơn giản hơn trước ñây ðiều này có vẻ như lại ñi ngược với khuynh hướng ñã nêu ở trên ñối với các bộ giải mã lệnh Quá trình giải mã lệnh chuyển từ phức tạp phần cứng sang phức tạp phần mềm Còn quá trình thực hiện các chức năng khác lại chuyển
từ phức tạp phần mềm sang phần cứng Hai quá trình này không có gì mâu thuẫn với nhau mà ngược lại nó là một sự bổ sung cho nhau Có thể sau này
ta sẽ thấy rõ hơn ñiều này nhưng ở ñây xin ñược nói sơ qua nguyên nhân Quá trình giải mã lệnh nếu như dùng trong RISC thì sự phức tạp phần mềm
ở ñây ngoài các giải thuật (là ñiều không ñáng ngại vì qua thời gian các giải thuật này sẽ ñược tích luỹ dần dần cũng như xây dựng ñược các compiler ngôn ngữ cấp trung và cấp cao như C, Pascal) là khó khăn ra thì các phép tính cần những thứ trung gian thực hiện lúc này là bộ nhớ chính xác hơn là các thanh ghi (càng ngày càng rẻ và dễ chế tạo) Còn ở quá trình thực hiện các chức năng khác thì nếu không có phần cứng thêm vào thì các phần cứng hiện thời ñược sử dụng sẽ mất công vào việc này mà sẽ không thực hiện ñược việc khác Chúng ta sẽ thấy rõ ñiều này hơn ở sau
PIC16F877 có ñặc ñiểm phần cứng và các chức năng:
- 368 bytes bộ nhớ dữ liệu RAM 8K Words bộ nhớ chương trình FLASH (trong ñó mỗi word của dòng mid-range là 14bit), 256 bytes EEPROM
- Có 3 bộ ñịnh thời Timer0, Timer1, Timer2
- Có khả năng xử lý ngắt từ nhiều nguồn ngắt khác nhau như ngắt ngoài, ngắt tràn Timer, ngắt ngoại vi như ngắt ADC…
- Chức năng CCP gồm Comparator (Bộ so sánh), Capture và PWM (ðiều biến ñộ rộng xung)
- Chức năng giao tiếp ñồng bộ nối tiếp SSP (Synchnorous Serial Port) bao gồm 2 giao tiếp SPI và giao tiếp I2C
- Chức năng bộ truyền/phát không ñồng bộ ña năng nối tiếp USART (Universal Serial Asynchnorous Receiver/Transmitter) ở dạng mô ñun phần cứng phục vụ cho giao tiếp theo chuẩn RS- 232, do ñó ta không cần quan tâm ñến các thao tác cấp thấp khi sử dụng RS-232 ðây là
Trang 8- Bộ chuyển ñổi ADC 10 bit chuyển ñổi tín hiệu tương tự thành tín hiệu
số 10 bit Nguồn ñiện áp tham chiếu có thể chọn từ nguồn ngoài hoặc
từ nguồn Vdd và Vss cấp cho PIC
- Chức năng giao tiếp song song PSP (Parralel Slave Port)
- Chức năng Watchdog Timer
7 Bộ biến ñổi tương tự - số ADC 10bit, 8bit
8 Giao tiếp không ñồng bộ với máy tính qua chuẩn RS-232 bằng USART
9 Các giao tiếp nối tiếp ñồng bộ SPI và I2C
10.Tóm gọn về tập lệnh
ðể có thể có cách ñọc dễ hiểu, trong quá trình giới thiệu chi tiết các chức năng tích hợp trong chip, ta sẽ giới thiệu luôn các lệnh cần thiết tương ứng cần dùng
3.Tổ chức bộ nhớ của PIC 16F877
3.1.Tổ chức bộ nhớ chương trình
Nhìn vào sơ ñồ bên ta có thể hình dung về bộ nhớ chương trình của PIC:Bộ nhớ chương trình có 8KWords (1 word = 14 bits) ñược phân thành 4 trang có ñịa chỉ như bên Cần nhớ với con trỏ chương trình PC là
13 bit thì kích cỡ ñịa chỉ tối ña ñánh ñược là 213 = 8K do ñó ta có thể thấy với dòng mid-range thì kích thước bộ nhớ chương trình PIC16F877
ñã là tối ña có thể ñạt ñược ñến, với những loại kém hơn trong mid-range thì bộ nhớ ít hơn do ñó khi PC tăng vượt quá giá trị bộ nhớ của nó sẽ xảy
ra hiện tượng quay vòng trở lại phần ñầu của bộ nhớ chương trình
Có 8 stack Stack là nơi ta lưu PC lúc cần phục vụ cho các thao tác ngắt cũng như chương trình con Chỉ có 8 mức stack ñiều ñó có nghĩa là nếu
có 9 lần ñẩy vào stack thì lần ñầu tiên sẽ bị mất ñịa chỉ trở về và chương trình sẽ bị chạy sai PIC không có cờ ngắt báo xảy ra tràn stack
3.2.Bộ nhớ dữ liệu
PIC là loại chip có bộ xử lý chỉ quản lý một không gian ñịa chỉ duy nhất, gọi là không gian ñịa chỉ bộ nhớ
Trang 9Bộ nhớ dữ liệu phân thành 4 banks như hình bên phân thành hai vùng là vùng các thanh ghi trạng thái và ñiều khiển, vùng 2 là vùng các thanh ghi
ña mục ñích Nếu muốn thực hiện một chức năng nào ñó thông thường ta cần thao tác với các thanh ghi ñiều khiển ñể thiết lập một số cài ñặt cần thiết, còn vùng các thanh ghi ña mục ñích GPR (General Purpose Register) thường ñể lưu các biến trung gian phục vụ cho các thao tác tính toán Microchip xem vùng không gian nhớ RAM như là các thanh ghi mặc dù chức năng của nó thực sự không phải như các thanh ghi, nó chỉ dùng ñể chứ dữ liệu Nếu muốn thao tác với thanh ghi nào trước tiên ta phải xem nó thuộc bank nào trong 4 bank sau ñó ta phải chuyển ñến bank
ñó bằng cách thao tác với 2 bít RP1 và RP0 của thanh ghi trạng thái STATUS như bảng dưới với các lệnh
BCF STATUS, RP1
BSF STATUS, RP0
sẽ chuyển về bank 1
Các tên STATUS, RP1, RP0 khi dịch ra không có ý nghĩa gì với PIC mà
nó chỉ là các tên ñịnh danh ñã ñược khai báo trong tệp tiêu ñề (mà ta sẽ phải include ở ñầu chương trình) của MPASM (Trình biên dịch assembler) tương ứng với giá trị ñịa chỉ của thanh ghi ñó, cũng có thể chuyển các bank bằng cách sử dụng macro ñã ñược trình biên dịch hợp ngữ BANKSEL
3.3.Một số thanh ghi quan trọng
a) Thanh ghi trạng thái
Cũng giống như tất cả các bộ vi xử lý khác, ở ñây ta có thanh ghi trạng thái STATUS tại các ñịa chỉ 03h, 83h,103h, 183h nằm ở cả 4 bank Thanh ghi trạng thái có ñịa chỉ tại 4 bank ñể ta có thể tiện trong quá trình thao tác, hơn nữa ngay bản thân các bit xác ñịnh vị trí bank cũng nằm trong thanh ghi trạng thái
IRP: Bit lựa chọn bank ñược dùng trong chế ñộ truy nhập ñịa chỉ gián
Trang 10RP1:RP0 Bit lựa chọn bank ñược dùng trong chế ñộ truy nhập ñịa chỉ trực tiếp
TO : Bit Time-out
1 = Sau khi bật nguồn hoặc lệnh CLRWDT, hoặc lệnh SLEEP
0 = 1 time-out của WDT xảy ra (WDT = watch dog timer)
0 = không carry từ bit MSb
b)Thanh ghi trạng thái OPTION
Nó chức các bit ñiều khiển ñể cấu hình
RBPU : Bit enable ñiện trở kéo lên ở PORTB
INTEDG : Bit xác ñịnh cạnh lên của ngắt ngoài tại chân RB0/INT
T0CS : Bit lựa chọn nguồn clock của timer0
c)Thanh ghi INTCON(Thanh ghi ñiều khiển ngắt chung)
GIE : Bit enable tất cả các nguồn ngắt, nếu muốn disable tất cả các nguồn ngắt chỉ cần disable nguồn ngắt này, còn nếu enable 1 nguồn ngắt nào ñó thì enable bit này sẽ là lệnh cuối cùng
PEIE: Bit enable các ngắt ngoại vi
TMR0IE: Bit enable ngắt trnà của timer0
INTE: Bit enable ngắt ngoài trên chân RB0/INT
RBIE: Bit enable ngắt thay ñổi trên cổng PORTB
TMR0IF: Bit cờ báo ngắt của timer0
Trang 11INTF: Bit cờ báo ngắt ngoài trên chân RB0/INT
RBIF: Bit cờ báo ngắt thay ñổi trên cổng RB
d)Thanh ghi PIE1 (Thanh ghi ñiều khiển ngắt thiết bị ngoại vi)
PSPIE: Bit enable ngắt ñọc/ghi cổng slave song song
ADIE: Bit enable ngắt ADC
RCIE: Bit enable ngắt nhận của USART
TXIE: Bit enable ngắt phát của USART
SSPIE: Bit enable ngắt cổng nối tiếp ñồng bộ
CCP1IE: Bit enable ngắt của CCP1 (Compare-Capture-PWM)
TMR2IE: Bit enable ngắt của timer2?
TMR1IE: Bit enable ngắt tràn timer1
e) Thanh ghi PIR1
4.Lập trình cho PIC
4.1.Giới thiệu
ðể lập trình cho PIC16F877 bạn có thể sử dụng 2 ngôn ngữ cơ bản là C và ASM Nhìn chung ,2 ngôn ngữ này có những ưu và nhược ñiểm riêng.Ngôn ngữ ASM có ưu ñiểm là gọn nhẹ ,giúp người lập trình nắm bắt sâu hơn về phần cứng Tuy nhiên lại có nhược ñiểm là phức tạp ,khó hiểu ,không thuận tiện ñể xây dựng các chương trình lớn.Ngược lại ngôn ngữ C lại dễ dung ,tiện lợi ,dễ debug ,thuận tiện ñể xây dựng các chương trình lớn.Nhưng nhược ñiểm của ngôn ngữ C là không giúp người lập trình hiểu biết sâu về phần cứng
Trang 12Hình 2.2.Giao diện phần mềm CCS
-HT-PIC
HT-PIC là phần mềm biên dịch cho PIC sử dụng ngôn ngữ lập trình C HT- PIC thường ñược tích hợp trong môi trường MPLAB-IDE ñể soạn thảo chương trình
-MPLAB IDE
Trang 13Hình 2.3.Giao diện phần mềm MPLAB IDE
Giáo trình này sẽ chủ yếu hướng dẫn các bạn lập trình PIC bằng ngôn ngữ C Sử dụng phần mềm CCS phiên bản 3
số 0 và 1 không còn phù hợp nữa, ñòi hỏi ra ñời một ngôn ngữ mới thay thế
Và ngôn ngữ lập trình Assembly Ở ñây ta không nói nhiều ñến Assmebly Sau này khi ngôn ngữ C ra ñời, nhu cầu dùng ngôn ngữ C ñề thay cho ASM
Trang 14dễ hiểu hơn ñã dẫn ñến sự ra ñời của nhiều chương trình soạn thảo và biên dịch C cho Vi ñiều khiển : Keil C, HT-PIC, MikroC,CCS…
Tôi chọn CCS cho bài giới thiệu này vì CCS là một công cụ lập trình C mạnh cho Vi ñiều khiển PIC Những ưu và nhược ñiểm của CCS sẽ ñược ñề cập ñến trong các phần dưới ñây
4.3.2.Giới thiệu về CCS
CCS là trình biên dịch lập trình ngôn ngữ C cho Vi ñiều khiển PIC của hãng Microchip.Chương trình là sự tích hợp của 3 trình biên dịch riêng biệt cho 3 dòng PIC khác nhau ñó là:
- PCB cho dòng PIC 12-bit opcodes
- PCM cho dòng PIC 14-bit opcodes
- PCH cho dòng PIC 16 và 18-bit
Tất cả 3 trình biên dịch này ñuợc tích hợp lại vào trong một chương trình bao gồm cả trình soạn thảo và biên dịch là CCS, phiên bản mới nhất là PCWH Compiler Ver 3.227.Giống như nhiều trình biên dịch C khác cho PIC, CCS giúp cho người sử dụng nắm bắt nhanh ñược vi ñiều khiển PIC và
sử dụng PIC trong các dự án Các chương trình ñiều khiển sẽ ñược thực hiện nhanh chóng và ñạt hiệu quả cao thông qua việc sử dụng ngôn ngữ lập trình cấp cao – Ngôn ngữ C.Tài liệu hướng dẫn sử dụng có rất nhiều, nhưng chi tiết nhất chính là bản Help ñi kèm theo phần mềm (tài liệu Tiếng Anh) Trong bản trợ giúp nhà sản xuất ñã mô tả rất nhiều về hằng, biến, chỉ thị tiền xủa lý, cấu trúc các câu lệnh trong chương trình, các hàm tạo sẵn cho người
sử dụng…Ngoài ra về Tiếng Việt cũng có bản dịch của tác giả Trần Xuân
Trường, SV K2001 DH BK HCM Tài liệu này dịch trên cơ sở bản Help
của CCS, tuy rằng chưa ñầy ñủ nhưng ñây là một tài liệu hay, nếu bạn tìm hiểu về PIC và CCS thì nên tìm tài liệu này về ñọc ðịa chỉ Download tài liệu: www.picvietnam.com -> Mục nói về CCS
-Tạo PROJECT ñầu tiên trong CCS
ðể tạo một Project trong CCS có nhiều cách, có thể dùng Project Wizard, Manual Creat,hay ñơn giản là tạo một Files mới và thêm vào ñó các khai báo ban ñầu cần thiết và “bắt buộc”
Dưới ñây sẽ trình bày cách tạo một project hợp lệ theo cả 3 phương pháp Một ñiều ta cần chú ý khi tạo một Project ñó là: khi tạo bắt cứ một Project nào mới thì ta nên tạo một thư mục mới với tên liên quan ñến Project ta ñịnh làm, rồi lưu các files vào ñó Khi lập trình và biên dịch, CCS sẽ tạo ra rất nhiều files khác nhau, do ñó nếu ñể chung các Project trong một thư mục sẽ
Trang 15rất mất thời gian trong việc tìm kiếm sau này ðây cũng là quy tắc chung khi
ta làm việc với bất kỳ phần mềm nào, thiết kế mạch hay lập trình.Việc ñầu tiên bạn cần làm là khởi ñộng máy tính và bật chương trình PIC C Compiler
-Tạo một PROJECT sử dụng PIC Wizard
Trước hết bạn khởi ñộng chương trình làm việc PIC C Compiler Từ giao
diện chương trình bạn di chuột chọn Project -> New -> PIC Wizard nhấn
nút trái chuột chọn
Sau khi nhấn chuột, một cửa sổ hiện ra yêu cầu ban nhập tên Files cần tạo Bạn tạo một thư mục mới, vào thư mục ñó và lưu tên files cần tạo tại ñây
Trang 16Như vậy là xong bước ñầu tiên Sau khi nhấn nút Save, một cửa sổ New
Project hiện ra.Trong của sổ này bao gồm rất nhiều Tab, mỗi Tab mô tả về
một vài tính năng của con PIC.Ta sẽ chọn tính năng sử dụng tại các Tab tương ứng.Dưới ñây sẽ trình bày ý nghĩa từng mục chọn trong mỗi Tab Các mục chọn này chính là ñề cập ñến các tính năng của một con PIC, tùy theo từng loại mà sẽ có các Tab tương ứng.ðối với từng dự án khác nhau, khi ta cần sử dụng tính năng nào của con PIC thì ta sẽ chọn mục ñó Tổng cộng có
13 Tab ñẻ ta lưa chọn Tôi giới thiệu những Tab chính thường hay ñược sử dụng
-Tab General
Tab General cho phép ta lựa chọn loại PIC mà ta sử dụng và một số lựa chọn khác như chọn tần số thạch anh dao ñộng, thiết lập các bit CONFIG nhằm thiết lập chế ñộ hoạt ñộng cho PIC
Trang 17-Device: Liệt kê danh sách các loại PIC 12F, 16F, 18F… Ta sẽ chọn tên Vi
ñiều khiển PIC mà ta sử dụng trong dự án Lấy ví dụ chọn PIC16F877A
-Oscilator Frequency: Tần số thạch anh ta sử dụng, chọn 20 MHz (tùy từng
loại)
-Fuses: Thiết lập các bit Config như: Chế ñộ dao ñộng (HS, RC, Internal ),
chế ñộ bảo vệ Code, Brownout detected…
-Chọn kiểu con trỏ RAM là 16-bit hay 8-bit
-Tab Communications
Tab Communications liệt kê các giao tiếp nối tiếp mà một con PIC hỗ trợ, thường là RS232 và I2C, cùng với các lựa chọn ñể thiết lập chế ñộ hoạt ñộng