Nghiên cứu ứng dụng điều khiển pic – Tài liệu text

Nghiên cứu ứng dụng điều khiển pic

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.79 MB, 125 trang )

LỜI MỞ ĐẦU
Ngày nay kỹ thuật vi điều khiển đã trở nên quen thuộc trong các ngành kỹ thuật
và trong dân dụng. Các bộ vi điều khiển có khả năng xử lý nhiều hoạt động phức
tạp mà chỉ cần một chip vi mạch nhỏ, nó đã thay thế các tủ điều khiển lớn và phức
tạp bằng những mạch điện gọn nhẹ, dễ dàng thao tác sử dụng.
Vi điều khiển không những góp phần vào kỹ thuật điều khiển mà còn góp phần
to lớn vào việc phát triển thông tin. Chính vì các lý do trên, việc tìm hiểu vi điều
khiển là điều mà các sinh viên ngành điện phải hết sức quan tâm.
Các bộ điều khiển sử dụng vi điều khiển tuy đơn giản nhưng để vận hành và sử
dụng đươc lại là một điều rất phức tạp. Phần công việc xử lý chính vẫn phụ thuộc
vào con người, đó chính là chương trình hay phần mềm. Nếu không có sự tham gia
của con người thì hệ thống vi điều khiển cũng chỉ là một vật vô tri. Do vậy khi nói
đến vi điều khiển cũng giống như máy tính bao gồm 2 phần là phần cứng và phần
mềm.
Để tìm hiểu bộ vi điều khiển một cách khoa học và mang lại hiệu quả cao làm
nền tản cho việc xâm nhập vào những hệ thống tối tân hơn. Việc trang bị những
kiến thức về vi điều khiển cho sinh viên là hết sức cần thiết. Xuất phát từ thực tiển
này em đã đi đến quyết định “Nghiên cứu ứng dụng điều khiển Pic” nhằm đáp
ứng nhu cầu ham muốn học hỏi của bản than và giúp cho các bạn sinh viên dễ tiếp
cận và hiểu sâu hơn về vi điều khiển Pic.
Trong quá trình thực hiện đề tài vẫn còn nhiều sai sót, mong nhận được nhiều ý
kiến đóng góp từ thầy và các bạn.
Em chân thành cảm ơn!

1

CHƯƠNG 1: GIỚI THIỆU KHÁI QUÁT VỀ VI ĐIỀU KHIỂN
1.1 TỔNG QUAN VỀ VI ĐIỀU KHIỂN.
1.1.1 Lịch sử phát triển của bộ vi xử lí và bộ vi điều khiển
Sự ra đời và phát triển nhanh chóng của kỹ thuật viđiện tử mà đặc trưng là kỹ

thuật vi xử lí đã tạo ra một bước ngoặt quan trọng trong sự phát triển của khoa học
tính toán, điều khiển và xử lí thông tin. Kỹ thuật vi xử lí đóng một vai trò rất quan
trọng trong tất cả các lĩnh vực của cuộc sống và khoa học kỹ thuật, đặc biệt là lĩnh
vực Tin học và Tự động hóa.
Năm 1971, hãng Intel đã cho ra đời bộ vi xử lí (microprocessor) đầu tiên trên
thế giới tên gọi là Intel-4004/4bit, nhằm đáp ứng nhu cầu cấp thiết của một công
ty kinh doanh là hãng truyền thông BUSICOM. Intel-4004là kết quả của một ý
tưởng quan trọng trong kỹ thuật vi xử lí số. Đó là một kết cấu logic mà có thể thay
đổi được chức năng của nó bằng chương trình ngoài chứ không phát triển theo
hướng tạo ra một cấu trúc cứng chỉ thực hiện một số chức năng nhất định như trước
đây.
Sau đó, các bộ vi xử lí mới liên tục được đưa ra thị trường và ngày càng được phát
triển, hoàn thiện hơn trong các thế hệ sau :
Vào năm 1972, hãng Intel đưa ra bộ vi xử lí 8-bit đầu tiên với tên Intel-
8008/8bit.
Từ 1974 đến 1975, Intel chế tạo các bộ vi xử lí 8-bit 8080 và 8085A.
Cũng vào khoảng thời gian này, một loạt các h!ng khác trên thế giới cũng đã cho ra
đời các bộ vi xử lí tương tự như : 6800 của Motorola với 5000 tranzitor, Signetics
2
6520, 1801 của RCA, kế đến là 6502 của hãng MOS Technology và Z80 của hãng
Zilog.
Vào năm 1976 Intel giới thiệu bộ vi điều khiển(microcontroller) 8748, một chip
tương tự như các bộ vi xử lí và là chip đầu tiên trong họ vi điều khiển MCS-
48.8748 là một vi mạch chứa trên 17000 transistor, bao gồm một CPU, 1K byte
EPROM, 64 byte RAM, 27 chân xuất nhập và một bộ định thời 8-bit. IC này và các
IC khác tiếp theo của họ MCS-48 đã nhanh chóng trở thành chuẩn công
nghiệp trong các ứng dụng hướng điều khiển (control-oriented application).
Năm 1978 xuât hiện Intel 8086 là loại bộ xi xử lý 16 bit với 29.000 tranzitor,
Motorola 68000 tích hợp 70.000 tranzitor, APX 432 chứa 120.000 tranzitor. Bộ vi
xử lý của Hewlet Pakard có khoảng 450.000 tranzitor. Từ năm 1974 đến

1984 số tranzitor tích hợp trong một chip tăng khoảng 100 lần.
Năm 1983, Intel đưa ra bộ vi xử lý 80286 dung trongcác máy vi tinh họ AT
(Advanced Technology). 80286 sử dụng I/O 16 bit, 24đường địa chỉ và không gian
nhớ địa chỉ thực 16MB. Năm 1987, Intel đưa ra bộ vixử lý 80386 32-bit. Năm 1989
xuất hiện xuất hiện bộ vi xử lý Intel 80486 là cảI tiến của Intel 80386 với bộ nhớ ẩn
và mạch tính phép toán đại số dấu phẩy động.
Năm 1992, xuất hiện Intel 80586 còn gọi là Pentium 64 bit chứa 4 triệu
tranzitor.
3
Hình 1.1 Số tranzitor tích hợp trong một chip của bộ vi xử lý Intel 8086
Độ phức tạp, sự gọn nhẹ về kích thước và khả năng của các bộ vi điều khiển
được tăng thêm một bậc quan trọng vào năm 1980 khi Intel công bố chip 8051, bộ
vi điều khiển đầu tiên của họ vi điều khiển MCS-51. Sovới 8048, chip 8051 chứa
trên 60.000 transistor bao gồm 4K byte ROM, 128 byte RAM, 32 đường xuất
nhập, 1 port nối tiếp và 2 bộ định thời 16-bit – một số lượng mạch đáng chú ý trong
một IC
đơn.
Từ các bộ vi xử lý ban đầu chỉ là các bộ xử lý trung tâm trong một hệ thống,
không thể hoạt động nếu thiếu các bộ phận như RAM, ROM, bo mạch chủ các
hưng đã phát triển các bộ vi xử lý này lên thành các bộ vi điều khiển để phục vụ
các mục đích riêng biệt, khác nhau trong công nghiệp. Một bộ vi điều khiển là một
4
hệ vi xử lí thật sự được tổ chức trong một chip(trong một vỏ IC) bao gồm một bộ
vi xử lí (microprocessor), bộ nhớ chương trình (ROM), bộ nhớ dữ liệu
(RAM), tuy không bằng dung lượng RAM ở các máy vi tính nhưng đây không phải
là một hạn chế vì các bộ vi điều khiển được thiết kế cho một mục đích hoàn toàn
khác, ngoài ra trên chip còn có bộ xử lý số học-logic (ALU) cùng với các thanh ghi
chức năng, các cổng vào/ra, cơ chế điều khiển ngắt, truyền tin nối tiếp, các bộ định
thời Hiện nay, các bộ vi điều khiển được sử dụng rất rộng rãi và ngày càng
được chuẩn hóa để có thể sử dụng rộng rãi trong các ngành công nghiệp, có

mặt trong nhiều máy móc, trong các hàng tiêu dùng.

1.1.2 Ưu và khuyết điểm của các bộ vi điều khiển
Các công việc được thực hiện bởi các bộ vi điều khiển thì không mới. Điều mới
là các thiết kế hiện thực với ít thành phần hơnso với các thiết kế trước đó. Các thiết
kế trước đó đòi hỏi phải vài chục hoặc vài trăm IC để hiện thực nay chỉ cần một ít
thành phần trong đó bao gồm bộ vi điều khiển. Số thành phần được giảm bớt, hiệu
quả trực tiếp của tính khả lập trình của các bộ vi điều khiển và độ tích hợp cao
trong công nghệ chế tạo vi mạch, thường chuyển thành thời gian phát triển ngắn
hơn, giá thành khi sản xuất thấp hơn, công suất tiêu thụ thấp hơn và độ tin cậy cao
hơn.
Vấn đề ở đây là tốc độ. Các giải pháp dựa trên bộ vi điều khiển không bao giờ
nhanh bằng giải pháp dựa trên các thành phần rời rạc. Những tình huống đòi hỏi
phải đáp ứng thật nhanh (cỡ nsec) đối với các sự kiện (thường chiếm thiểu số trong
các ứng dụng) sẽ được quản lý tồi khi dựa vào các bộ vi điều khiển.
Tuy nhiên trong vài ứng dụng, đặc biệt là các ứng dụng liên quan đến
con người, các khoảng thời gian trễ tính bằng nsec, usec hoặc thậm chí msec là
5
không quan trọng. Việc giảm bớt các thành phần là một điều lợi như đã đề cập, các
thao tác trong chương trình điều khiển làm cho thiết kế có thể thay đổi bằng cách
thay đổi phần mềm. Điều này có ảnh hưởng tối thiểu đến chu kỳ sản xuất. Do đó
các bộ vi điều khiển có thể được ứng dụng rộng rãi trong các ứng dụng phục vụ con
người.
Để có thể hiểu rõ hơn về các bộ vi điều khiển, chúng ta sẽ tìm hiểu về một số các
họ vi điều khiển của một số hãng điện tử điển hình đang được sử dụng rộng rãi
trong khoa học kỹ thuật và đời sống.
1.1.3 Phân loại
1.1.3.1 Độ dài thanh ghi
Dựa vào độ dài của các thanh ghi và các lệnh của vi điều khiển mà người ta chia ra
các loại vi điều khiển 8bit, 16bit, hay 32bit Các loại vi điều khiển 16bit do có độ

dài lệnh lớn hơn nên các tập lệnh cũng nhiều hơn, phong phú hơn. Tuy nhiên bất cứ
chương trình nào viết bằng vi điều khiển 16bit chúng ta đều có thể viết trên vi điều
khiển 8bit với chương trình thích hợp.
1.1.3.2 Kiến trúc CISC và RISC
vi xử lí hoặc vi điều khiển CISC là vi điều khiển có tập lệnh phức tạp. Các vi điều
khiển này có một số lượng lớn các lệnh nên giúp cho người lập trình có thể linh
hoạt và dễ dàng hơn khi viết chương trình. vi điều khiển RISC là vi điều khiển có
tập lệnh đơn giản. Chúng có một số lương nhỏ các lệnh đơn giản. DO đó, chúng
đòi hỏi phần cứng ít hơn, giá thành thấp hơn, và nhanh hơn so với CISC. Tuy nhiên
nó đòi hỏi người lập trình phải viết các chương trình phức tạp hơn, nhiều lệnh hơn.
1.1.3.3 Kiến trúc Harvard và kiến trúc Vonneumann
Kiến trúc Harvard sử dụng bộ nhớ riêng biệt cho chương trình và dữ liệu. Bus địa
chỉ và bus dữ liệu độc lập với nhau nên quá trình truyền nhận dữ liệu đơn giản hơn
Kiến trúc Vonneumann sử dụng chung bộ nhớ cho chương trình và dữ liệu. Điều
6
này làm cho vi điều khiển gọn nhẹ hơn, giá thành nhẹ hơn.
1.1.4 Cấu trúc tổng quan của vi điền khiển CPU
Là trái tim của hệ thống. Là nơi quản lí tất cả các hoạt động của vi điều khiển.
Bên trong CPU gồm:
– ALU là bộ phận thao tác trên các dữ liệu
– Bộ giải mã lệnh và điều khiển, xác định các thao tác mà CPU cần thực
hiện
– Thanh ghi lệnh IR, lưu giữ opcode của lệnh được thực thi
– Thanh ghi PC, lưu giũ địa chỉ của lệnh kế tiếp cần thực thi
– Một tập các thanh ghi dùng để lưu thông tin tạm thời
1.1.4 .1 Rom
ROM là bộ nhớ dùng để lưu giữ chương trình. ROM còn dùng để chứa số liệu
các bảng, các tham số hệ thống, các số liệu cố định của hệ thống. Trong quá
trình hoạt động nội dung ROM là cố định, không thể thay đổi, nội dung ROM
chỉ thay đổi khi ROM ở chế độ xóa hoặc nạp chương trình.

1.1.4.2 Ram
RAM là bộ nhớ dữ liệu. Bộ nhớ RAM dùng làm môi trường xử lý thông tin,
lưu trữ các kết quả trung gian và kết quả cuối cùng của các phép toán, xử lí
thông tin. Nó cũng dùng để tổ chức các vùng đệm dữ liệu, trong các thao tác
thu phát, chuyển đổi dữ liệu.
1.1.4.3 Bus
BUS là các đường dẫn dùng để di chuyển dữ liệu. Bao gồm: bus địa chỉ, bus
dữ liệu, và bus điều khiển
1.1.4.4 Bộ định thời: Được sử dụng cho các mục đích chung về thời gian.
1.1.4.5 Watchdog: Bộ phận dùng để reset lại hệ thống khi hệ thống gặp “bất
7
thường”.
1.1.4.6Adc: Bộ phận chuyển tín hiệu analog sang tín hiệu digital. Các tín hiệu bên
ngoài đi vào vi điều khiển thường ở dạng analog. ADC sẽ chuyển tín hiệu này về
dạng tín hiệu digital mà vi điều khiển có thể hiểu được.
1.1.5 Một số loại vi điều khiển thông dụng
1.1.5.1 Vi điều khiển 8051.
Intel 8051 – là vi điều khiển đơn tinh thể kiến trúc Harvard, lần đầu tiên được
sản xuất bởi Intel năm 1980, để dùng trong các hệ thống nhúng. Trong những năm
1980 và đầu những năm 1990 đã rất nổi tiếng. Tuy nhiên hiện tại đã cũ và được
thay thế bằng các thiết bị hiện đại hơn, với các lõi phối hợp 8051, được sản xuất
bởi hơn 20 nhà sản xuất độc lập như Atmel, Maxim IC (công ty con của Dallas
Semiconductor), NXP Semiconductors (Philips Semiconductor trước đây),
Winbond, Silicon Laboratories, Texas Instruments và Cypress Semiconductor. Tên
gọi chính thức của họ vi điều khiển Intel 8051 – MCS 51.
Những vi điều khiển Intel 8051 được sản xuất với việc dùng công nghệ MOSFET,
những những bản sau, chứa kí hiệu “C” trong tên, như 80C51, dùng công nghệ
CMOS và yêu cầu công suất thấp, hơn những cái MOSFET trước (điều này cho
phép trang bị cho các thiết bị với nguồn là pin).
Các thông số kỹ thuật:

8 bit ALU, 8 bit thanh ghi.
8 bit dữ liệu bus
16 bit địa chỉ bus vì vậy không gian bộ nhớ tối đa cho ROM và RAM lên tới 64 kb
Bộ nhớ dữ liệu SRAM 128 bytes
Bộ nhớ chương trình ROM 4 kb.
32 chân vào/ra đa hướng.
Giao tiếp nối tiếp UART.
8
Hai bộ timer/counter 16 bit.
Hai ngắt ngoài.
Hình 1.1: Sơ đồ chân của 8051:
9
Hình 1.2 : Sơ đồ khối điều khiển:
Lập trình cho 8051:
Các nhà sản xuất 8051 đều hỗ trợ ngôn ngữ lập trình Assembler tuy nhiên ngôn ngữ
10
này thường ít được dùng cho những ứng dụng lớn do tính phù hợp của nó, vì vậy
trong các ứng dụng thực tế hay sử dụng ngôn ngữ C. Ngoài ra còn một số ngôn ngữ
khác được phát triển cho 8051 như Pascal, Basic, Forth.
1.1.5.2 Vi điều khiển AVR.
Là dòng vi điều khiển do hãng Atmel sản xuất có nhiều loại AVR như:
– 32-bit AVR UC3.
– 8/16-bit AVR XMEGA.
– 8-bit mega AVR.
– 8-bit tiny AVR.
Vi điều khiển Atmega 16:
Là vi điều khiển 8 bit với tiêu thụ điện năng thấp dựa trên kiến trúc RISC
(Reduced Instruction Set Computer). Vào ra Analog – digital và ngược lại. Với
công nghệ này cho phép các lệnh thực thi chỉ trong một chu kì xung nhịp, vì thế tốc
độ xử lý dữ liệu có thể đạt đến 1 triệu lệnh trên giây ở tần số 1Mhz. Vi điều khiển

này cho phép người thiết kế có thể tối ưu hoá chế độ tiêu thụ năng lượng mà vẫn
đảm bảo tốc độ xử lý.
Lõi AVR có tập lệnh phong phú với số lượng với 32 thanh ghi làm việc chung
với nhau. Tất cả 32 thanh ghi đều được nối trực tiếp với ALU (Arithmetic Logic
Unit), cho phép 2 thanh ghi truy cập độc lập trong một chỉ lệnh đơn trong một chu
kỳ xung nhịp. Kiến trúc đạt được có tốc độ xử lý nhanh gấp 10 lần vi điều khiển
dạng CISC (Complex Instruction Set Computer) thông thường.
Atmega 16 được hỗ trợ đầy đủ phần mềm và công cụ phát triển hệ thống bao gồm:
Trình dịch Assembly như AVR studio của Atmel, Trình dịch C như win AVR,
CodeVisionAVR C, ICCAVR. C – CMPPILER của GNU… Trình dịch C đã được
nhiều người dùng và đánh giá tương đối mạnh, dễ tiếp cận đối với những người bắt
đầu tìm hiểu AVR, đó là trình dịch CodeVisionAVR C. Phần mềm này hỗ trợ nhiều
11
ứng dụng và có nhiều hàm có sẵn nên việc lập trình tốt hơn.
– Bộ nhớ:
Flash 16KB
EEPROM 512 Byte
SRAM 1KB.
– Ngoại vi:
Hai timer 8 bit
Một timer 16 bit
Bộ counter với tần số riêng
Bốn bộ điều chế độ rộng xung PWM.
Tám kênh ADC 10 bit.
USART.
Giao tiếp SPI, Giao diện I2C.
Watchdog timer.
Bộ so sánh tương tự trên chip.
– Tính năng:
Tập lệnh gồm 131 lệnh, hầu hết thực hiện trong một chu kỳ máy.

Xử lý 16 triệu lệnh ở tần số 16 MHZ.
32 chân vào/ra có thể lập trình được.
Sáu chế độ sleep .
40 pin kiểu PDIP, 44 pin kiểu TQFP và kiểu QFL/MLF.
32 thanh ghi 8 bit đa dụng.
Ngắt trong và ngắt ngoài.
Điện áp hoạt động từ 2,7-5,5V cho Atmega 16A.
12
Hình 1.3: Sơ đồ chân
13
Hình 1.4 Sơ đồ khối điều khiển
1.1.5.3 Vi điều khiển PIC
14
PIC là một họ vi điều khiển RISC được sản xuất bởi công ty MicrochipTechnology.
Dòng PIC đầu tiên là PIC1650 được phát triển bởi Microelectronics Division thuộc
General Instrument. PIC bắt nguồn là chữ viết tắt của “Programmable Intelligent
Computer” (Máy tính khả trình thông minh). Là vi điều khiển với kiến trúc RISC
thực thi một lệnh với một chu kỳ máy (bằng bốn chu kỳ của bộ dao động). Ngày
nay có nhiều dòng PIC được sản xuất với hàng loạt các mô đun ngoại vi tích hợp
sẵn như ADC, PWM, USART, SPI…với bộ nhớ chương trình từ 512 word đến 32
Kword.
Các họ vi điều khiển PIC:
– Họ 8 bit: PIC 10/ PIC 12/ PIC 16/ PIC 18
– Họ 16 bit: PIC 24F/ PIC 24H/ dsPIC 30/ dsPIC 33
– Họ 32 bit: PIC 32.
Một vài đặc tính:
– Chân vào/ra I/O có thể lập trình được.
– Flash và ROM có thể tuỳ chọn từ 256 byte đến 512 Kbyte
– Bộ dao động bên trong.
– 8/16/32 bit Timers.

– Bộ nhớ EEPROM nội
– Chuẩn giao tiếp nối tiếp đồng bộ và không đồng bộ USART
– MSSP Peripheral cho giao tiếp I2C và SPI
– Các chế độ so sánh, bắt giữ và điều chế độ rộng xung PWM.
– Bộ so sánh điện áp.
– Bộ chuyển đổi ADC (tần số có thể lên tới 1 MHz).
– Hộ trợ các giao thức USB, CAN, Ethernet.
15
– Mô đun điều khiển động cơ, mô đun đọc encoder.
– Hộ trợ bộ nhớ ngoài.
– DSP những tính năng xử lý tín hiệu số (dsPIC)
Lập trình cho PIC:
Hãng Microchip cung cấp môi trường lập trình MPLAB nó bao gồm phần mềm mô
phỏng, trình dịch ASM, liên kết và gỡ rối. Ngoài ra hãng này cũng bán trình biên
dịch C cho các dòng PIC18 và dsPIC tích hợp trong MPLAB.
Ngoài ra còn một số công ty khác cung cấp trình biên dịch C, PASCAL, BASIC
cho PIC đó có thể là phần mềm thương mại hoặc phần mềm mã nguồn mở.
1.1.5.4 Vi điều khiển ARM.
Cấu trúc ARM (viết tắt từ tên gốc là Acorn RISC Machine) là một loại cấu trúc
vi xử lý 32-bit kiểu RISC được sử dụng rộng rãi trong các thiết kế nhúng. Được
phát triển lần đầu trong một dự án của công ty máy tính Acorn. Do có đặc điểm tiết
kiệm năng lượng, các bộ CPU ARM chiếm ưu thế trong các sản phẩm điện tử di
động, mà với các sản phẩm này việc tiêu tán công suất thấp là một mục tiêu thiết kế
quan trọng hàng đầu.
Ngày nay, hơn 75% CPU nhúng 32-bit là thuộc họ ARM, điều này khiến ARM trở
thành cấu trúc 32-bit được sản xuất nhiều nhất trên thế giới. CPU ARM được tìm
thấy khắp nơi trong các sản phẩm thương mại điện tử, từ thiết bị cầm tay (PDA,
điện thoại di động, máy đa phương tiện, máy trò chơi cầm tay, và máy tính cầm tay)
cho đến các thiết bị ngoại vi máy tính (ổ đĩa cứng, bộ định tuyến để bàn.). Một
nhánh nổi tiếng của họ ARM là các vi xử lý Xscale của Intel.

Giới thiệu về vi điều khiển LPC2148:
Là dòng vi điều khiển ARM được sản xuất bởi hãng Philips.
Tính năng:
– Vi điều khiển 16/32-bit ARM7TDMI-S
16
– 40k RAM tĩnh (8k +32k), 512k flash
– Tích hợp USB 2.0
– Hộ trợ hai bộ ADC 10 bit
– Một bộ DAC 10 bit
– 2 bộ timer 32 bit, 6 ngõ điều chế độ rộng xung
– Đồng hồ thời gian thực hỗ trợ tần số 32kHz
– Khả năng thiết lập chế độ ưu tiên và định địa chỉ cho ngắt
– 45 chân GPIO vào ra đa dụng
– 9 chân ngắt ngoài (tích cực cạnh hoặc tích cực mức)
– CPU clock đạt tối đa 60MHz thông qua bộ PLL lập trình được
– Xung PLCK hoạt động độc lập.
On-chip Flash Memory:
LPC 2148 có 512K bộ nhớ Flash có thể được dùng để lưu trữ code và dữ liệu.
Trong khi thực thi ứng dụng, vẫn có thể xóa hoặc lập trình Flash thông qua IAP (In
Application Programming). Khi đó trình loader trên chip được sử dụng, bộ nhớ
trống còn lại là 500K.
Bộ nhớ Flash có thể ghi xóa được ít nhất 100000 lần, lưu trữ dữ liệu đến 20 năm.
On-chip Static RAM:
LPC 2148 có 32K RAM tĩnh, có thể được truy xuất theo đơn vị byte, half word &
word. Bộ điều khiển SRAM sử dụng phương thức write-back buffer để ngăn chặn
tình trạng treo CPU khi có thao tác ghi. Bộ đệm luôn giữ dữ liệu cuối cùng từ
chương trình gửi tới bộ nhớ. Dữ liệu chỉ được ghi vào SRAM khi có 1 thao tác ghi
khác từ chương trình.
Lập trình cho ARM:
Ngôn ngữ lập trình chính cho ARM hiện nay là ngôn ngữ C. Các trình biên dịch

cho ARM thường được dùng:
17
– Keil ARM.
– IAR.
– HTPICC for ARM.
– ImageCraft ICCV7 for ARM
1.2 TÌNH HÌNH PHÁT TRIỂN TRONG NƯỚC VÀ NGOÀI NƯỚC
Hiện nay vi điều khiển đang được sử dụng rất rộng rãi ở nước ta và các nước trên
thế giới như Mỹ, Nhật, Đức ….Vi điều khiển có vai trò cực kì quan trọng và không
thể thay thế. Điều đó đã được minh chứng bằng các ứng dụng quan trọng của vi
điều khiển trong đời sống của chúng ta.
Một số loại vi điều khiển có trên thị trường hiện nay:
– vi điều khiển MCS-51: 8031, 8032, 8051, 8052,
– vi điều khiển ATMEL: 89Cxx, AT89Cxx51
– vi điều khiển AVR AT90Sxxxx
– vi điều khiển PIC 16C5x, 17C43
Ứng dụng của một số vi điều khiển:
– Vi điều khiển MCS-51: có rất nhiều ứng dụng trong đời sống, đơn giản như điều
khiển các đèn led, đồng hồ báo thức, lịch vạn niên, máy đo nhiệt độ
– Vi điều khiển PIC : được sự dụng để điều khiển các Port I/O, điều khiển động cơ,
hỗ trợ giao tiếp USB, làm các mạnh đo nhiệt độ, đồng hồ số…
– Vi điều khiển AVR : điều khiển động cơ, điều khiển nhiệt độ, truyền dữ liệu
không dây….
1.3 ĐỊNH HƯỚNG ĐỀ TÀI
18
Đồ án gồm 3 mục chính như sau:
– Khái quát về vi điều khiển : giới thiệu một số họ vi điều khiển thông dụng và ứng
dụng của các họ vi điều khiển
– Giới thiệu về vi điều khiển Pic16F877A
– Ứng dụng vi điều khiển Pic : cụ thể là ứng dụng điều khiển các Port I/O

bằngPic16F877A

19
CHƯƠNG 2 : VI ĐIỀU KHIỂN PIC 16F877A
2.1 KHÁI QUÁT VỀ VI ĐIỀU KHIỂN PIC
2.1.1 Pic là gì?
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.
2.1.2 Kiến trúc 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 Havard.
Hình 2.1: Kiến trúc Havard và kiến trúc Von-Neuman
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
20
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 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 1.1.
2.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
21
đặ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 (Complex Instruction 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).
2.1.4 Pipeliningp
Đây chính là cơ chế xử lí lệnh của các vi điều khiển PIC. Một chu kì lệnh của vi
điều khiển sẽ bao gồm 4 xung clock. Ví dụ ta sử dụng oscillator có tần số 4 MHZ,

thì xung lệnh sẽ có tần số 1 MHz (chu kì lệnh sẽ là 1 us). Giả sử ta có một đoạn
chương trình như sau:
1. MOVLW 55h
2. MOVWF PORTB
3. CALL SUB_1
4. BSF PORTA,BIT3
5. instruction @ address SUB_1
Ở đây ta chỉ bàn đến qui trình vi điều khiển xử lí đoạn chương trình trên thông qua
từng chu kì lệnh. Quá trình trên sẽ được thực thi như sau:
22
Hình 2.2: Cơ chế pipelining
– TCY0: đọc lệnh 1
– TCY1: thực thi lệnh 1, đọc lệnh 2
– TCY2: thực thi lệnh 2, đọc lệnh 3
– TCY3: thực thi lệnh 3, đọc lệnh 4.
– TCY4: vì lệnh 4 không phải là lệnh sẽ được thực thi theo qui trình thực thi
của chương trình (lệnh tiếp theo được thực thi phải là lệnh đầu tiên tại label
SUB_1) nên chu kì thực thi lệnh này chỉ được dùng để đọc lệnh đầu tiên tại
label SUB_1. Như vậy có thể xem lênh 3 cần 2 chu kì xung clock để thực thi.
– TCY5: thực thi lệnh đầu tiên của SUB_1 và đọc lệnh tiếp theo của SUB_1.
Quá trình này được thực hiện tương tự cho các lệnh tiếp theo của chương trình.
Với cơ chế pipelining được trình bày ở trên, mỗi lệnh xem như chỉ được thực thi
trong một chu kì lệnh. Đối với các lệnh mà quá trình thực thi nó làm thay đổi giá trị
thanh ghi PC (Program Counter) cần hai chu kì lệnh để thực thi vì phải thực hiện
việc gọi lệnh ở địa chỉ thanh ghi PC chỉ tới. Sau khi đã xác định đúng vị trí lệnh
trong thanh ghi PC, mỗi lệnh chỉ cần một chu kì lệnh để thực thi xong.
23
2.1.5 Các dòng Pic và cách lựa chọn vi điều khiển Pic
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: tương tự 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ó thêm chữ
A ở cuối là flash (ví dụ PIC16F877 là EEPROM, còn PIC16F877A là flash).
Ngoài ra còn có thêm một dòng vi điều khiển PIC mới là dsPIC.
Ở Việt Nam phổ biến nhất là các 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ó cá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.
– Sau cùng cần chú ý đến bộ nhớ chương trình mà vi điều khiển cho phép.
– Ngoài ra, cách lựa chọn vi điều khiển PIC có thể được tìm thấy trong cuốn
24
sách “Select PIC guide” do nhà sản xuất Microchip cung cấp.
2.1.6 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ó MAPLAB
(đượ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, … Ngoà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,…
2.1.7 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ình MPLAB.
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ạp
cá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 PICSTART
PLUS 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.
25
thuật vi xử lí đã tạo ra một bước ngoặt quan trọng trong sự tăng trưởng của khoa họctính toán, điều khiển và xử lí thông tin. Kỹ thuật vi xử lí đóng một vai trò rất quantrọng trong toàn bộ những nghành của đời sống và khoa học kỹ thuật, đặc biệt quan trọng là lĩnhvực Tin học và Tự động hóa. Năm 1971, hãng Intel đã cho sinh ra bộ vi xử lí ( microprocessor ) tiên phong trênthế giới tên gọi là Intel-4004 / 4 bit, nhằm mục đích cung ứng nhu yếu cấp thiết của một côngty kinh doanh thương mại là hãng tiếp thị quảng cáo BUSICOM. Intel-4004là hiệu quả của một ýtưởng quan trọng trong kỹ thuật vi xử lí số. Đó là một cấu trúc logic mà hoàn toàn có thể thayđổi được tính năng của nó bằng chương trình ngoài chứ không tăng trưởng theohướng tạo ra một cấu trúc cứng chỉ triển khai một số ít tính năng nhất định như trướcđây. Sau đó, những bộ vi xử lí mới liên tục được đưa ra thị trường và ngày càng được pháttriển, triển khai xong hơn trong những thế hệ sau : Vào năm 1972, hãng Intel đưa ra bộ vi xử lí 8 – bit tiên phong với tên Intel-8008 / 8 bit. Từ 1974 đến 1975, Intel sản xuất những bộ vi xử lí 8 – bit 8080 và 8085A. Cũng vào khoảng chừng thời hạn này, một loạt những h ! ng khác trên quốc tế cũng đã cho rađời những bộ vi xử lí tựa như như : 6800 của Motorola với 5000 tranzitor, Signetics6520, 1801 của RCA, kế đến là 6502 của hãng MOS Technology và Z80 của hãngZilog. Vào năm 1976 Intel ra mắt bộ vi điều khiển ( microcontroller ) 8748, một chiptương tự như những bộ vi xử lí và là chip tiên phong trong họ vi điều khiển MCS-48. 8748 là một vi mạch chứa trên 17000 transistor, gồm có một CPU, 1K byteEPROM, 64 byte RAM, 27 chân xuất nhập và một bộ định thời 8 – bit. IC này và cácIC khác tiếp theo của họ MCS-48 đã nhanh gọn trở thành chuẩn côngnghiệp trong những ứng dụng hướng điều khiển ( control-oriented application ). Năm 1978 xuât hiện Intel 8086 là loại bộ xi giải quyết và xử lý 16 bit với 29.000 tranzitor, Motorola 68000 tích hợp 70.000 tranzitor, APX 432 chứa 120.000 tranzitor. Bộ vixử lý của Hewlet Pakard có khoảng chừng 450.000 tranzitor. Từ năm 1974 đến1984 số tranzitor tích hợp trong một chip tăng khoảng chừng 100 lần. Năm 1983, Intel đưa ra bộ vi giải quyết và xử lý 80286 dung trongcác máy vi tinh họ AT ( Advanced Technology ). 80286 sử dụng I / O 16 bit, 24 đường địa chỉ và không giannhớ địa chỉ thực 16MB. Năm 1987, Intel đưa ra bộ vixử lý 80386 32 – bit. Năm 1989 Open xuất hiện bộ vi giải quyết và xử lý Intel 80486 là cảI tiến của Intel 80386 với bộ nhớ ẩnvà mạch tính phép toán đại số dấu phẩy động. Năm 1992, Open Intel 80586 còn gọi là Pentium 64 bit chứa 4 triệutranzitor. Hình 1.1 Số tranzitor tích hợp trong một chip của bộ vi giải quyết và xử lý Intel 8086 Độ phức tạp, sự gọn nhẹ về size và năng lực của những bộ vi điều khiểnđược tăng thêm một bậc quan trọng vào năm 1980 khi Intel công bố chip 8051, bộvi điều khiển tiên phong của họ vi điều khiển MCS-51. Sovới 8048, chip 8051 chứatrên 60.000 transistor gồm có 4K byte ROM, 128 byte RAM, 32 đường xuấtnhập, 1 port tiếp nối đuôi nhau và 2 bộ định thời 16 – bit – một số lượng mạch đáng quan tâm trongmột ICđơn. Từ những bộ vi giải quyết và xử lý khởi đầu chỉ là những bộ giải quyết và xử lý TT trong một mạng lưới hệ thống, không hề hoạt động giải trí nếu thiếu những bộ phận như RAM, ROM, bo mạch chủ cáchưng đã tăng trưởng những bộ vi giải quyết và xử lý này lên thành những bộ vi điều khiển để phục vụcác mục tiêu riêng không liên quan gì đến nhau, khác nhau trong công nghiệp. Một bộ vi điều khiển là mộthệ vi xử lí thật sự được tổ chức triển khai trong một chip ( trong một vỏ IC ) gồm có một bộvi xử lí ( microprocessor ), bộ nhớ chương trình ( ROM ), bộ nhớ tài liệu ( RAM ), tuy không bằng dung tích RAM ở những máy vi tính nhưng đây không phảilà một hạn chế vì những bộ vi điều khiển được phong cách thiết kế cho một mục tiêu hoàn toànkhác, ngoài những trên chip còn có bộ xử lý số học-logic ( ALU ) cùng với những thanh ghichức năng, những cổng vào / ra, chính sách điều khiển ngắt, truyền tin tiếp nối đuôi nhau, những bộ địnhthời Hiện nay, những bộ vi điều khiển được sử dụng rất thoáng đãng và ngày càngđược chuẩn hóa để hoàn toàn có thể sử dụng thoáng đãng trong những ngành công nghiệp, cómặt trong nhiều máy móc, trong những hàng tiêu dùng. 1.1.2 Ưu và khuyết điểm của những bộ vi điều khiểnCác việc làm được thực thi bởi những bộ vi điều khiển thì không mới. Điều mớilà những phong cách thiết kế hiện thực với ít thành phần hơnso với những phong cách thiết kế trước đó. Các thiếtkế trước đó yên cầu phải vài chục hoặc vài trăm IC để hiện thực nay chỉ cần một ítthành phần trong đó gồm có bộ vi điều khiển. Số thành phần được giảm bớt, hiệuquả trực tiếp của tính khả lập trình của những bộ vi điều khiển và độ tích hợp caotrong công nghệ tiên tiến sản xuất vi mạch, thường chuyển thành thời hạn tăng trưởng ngắnhơn, giá tiền khi sản xuất thấp hơn, hiệu suất tiêu thụ thấp hơn và độ an toàn và đáng tin cậy caohơn. Vấn đề ở đây là vận tốc. Các giải pháp dựa trên bộ vi điều khiển không bao giờnhanh bằng giải pháp dựa trên những thành phần rời rạc. Những trường hợp đòi hỏiphải cung ứng thật nhanh ( cỡ nsec ) so với những sự kiện ( thường chiếm thiểu số trongcác ứng dụng ) sẽ được quản trị tồi khi dựa vào những bộ vi điều khiển. Tuy nhiên trong vài ứng dụng, đặc biệt quan trọng là những ứng dụng tương quan đếncon người, những khoảng chừng thời hạn trễ tính bằng nsec, usec hoặc thậm chí còn msec làkhông quan trọng. Việc giảm bớt những thành phần là một điều lợi như đã đề cập, cácthao tác trong chương trình điều khiển làm cho phong cách thiết kế hoàn toàn có thể biến hóa bằng cáchthay đổi ứng dụng. Điều này có tác động ảnh hưởng tối thiểu đến chu kỳ luân hồi sản xuất. Do đócác bộ vi điều khiển hoàn toàn có thể được ứng dụng thoáng đãng trong những ứng dụng ship hàng conngười. Để hoàn toàn có thể hiểu rõ hơn về những bộ vi điều khiển, tất cả chúng ta sẽ khám phá về một số ít cáchọ vi điều khiển của một số ít hãng điện tử nổi bật đang được sử dụng rộng rãitrong khoa học kỹ thuật và đời sống. 1.1.3 Phân loại1. 1.3.1 Độ dài thanh ghiDựa vào độ dài của những thanh ghi và những lệnh của vi điều khiển mà người ta chia racác loại vi điều khiển 8 bit, 16 bit, hay 32 bit Các loại vi điều khiển 16 bit do có độdài lệnh lớn hơn nên những tập lệnh cũng nhiều hơn, đa dạng chủng loại hơn. Tuy nhiên bất cứchương trình nào viết bằng vi điều khiển 16 bit tất cả chúng ta đều hoàn toàn có thể viết trên vi điềukhiển 8 bit với chương trình thích hợp. 1.1.3. 2 Kiến trúc CISC và RISCvi xử lí hoặc vi điều khiển CISC là vi điều khiển có tập lệnh phức tạp. Các vi điềukhiển này có một số lượng lớn những lệnh nên giúp cho người lập trình hoàn toàn có thể linhhoạt và thuận tiện hơn khi viết chương trình. vi điều khiển RISC là vi điều khiển cótập lệnh đơn thuần. Chúng có một số ít lương nhỏ những lệnh đơn thuần. DO đó, chúngđòi hỏi phần cứng ít hơn, giá tiền thấp hơn, và nhanh hơn so với CISC. Tuy nhiênnó yên cầu người lập trình phải viết những chương trình phức tạp hơn, nhiều lệnh hơn. 1.1.3. 3 Kiến trúc Harvard và kiến trúc VonneumannKiến trúc Harvard sử dụng bộ nhớ riêng không liên quan gì đến nhau cho chương trình và tài liệu. Bus địachỉ và bus dữ liệu độc lập với nhau nên quy trình truyền nhận tài liệu đơn thuần hơnKiến trúc Vonneumann sử dụng chung bộ nhớ cho chương trình và tài liệu. Điềunày làm cho vi điều khiển gọn nhẹ hơn, giá tiền nhẹ hơn. 1.1.4 Cấu trúc tổng quan của vi điền khiển CPULà trái tim của mạng lưới hệ thống. Là nơi quản lí toàn bộ những hoạt động giải trí của vi điều khiển. Bên trong CPU gồm : – ALU là bộ phận thao tác trên những tài liệu – Bộ giải mã lệnh và điều khiển, xác lập những thao tác mà CPU cần thựchiện – Thanh ghi lệnh IR, lưu giữ opcode của lệnh được thực thi – Thanh ghi PC, lưu giũ địa chỉ của lệnh sau đó cần thực thi – Một tập những thanh ghi dùng để lưu thông tin tạm thời1. 1.4. 1 RomROM là bộ nhớ dùng để lưu giữ chương trình. ROM còn dùng để chứa số liệucác bảng, những tham số mạng lưới hệ thống, những số liệu cố định và thắt chặt của mạng lưới hệ thống. Trong quátrình hoạt động giải trí nội dung ROM là cố định và thắt chặt, không hề biến hóa, nội dung ROMchỉ biến hóa khi ROM ở chính sách xóa hoặc nạp chương trình. 1.1.4. 2 RamRAM là bộ nhớ tài liệu. Bộ nhớ RAM dùng làm thiên nhiên và môi trường giải quyết và xử lý thông tin, tàng trữ những hiệu quả trung gian và tác dụng ở đầu cuối của những phép toán, xử líthông tin. Nó cũng dùng để tổ chức triển khai những vùng đệm tài liệu, trong những thao tácthu phát, quy đổi tài liệu. 1.1.4. 3 BusBUS là những đường dẫn dùng để vận động và di chuyển tài liệu. Bao gồm : bus địa chỉ, busdữ liệu, và bus điều khiển1. 1.4.4 Bộ định thời : Được sử dụng cho những mục tiêu chung về thời hạn. 1.1.4. 5 Watchdog : Bộ phận dùng để reset lại mạng lưới hệ thống khi mạng lưới hệ thống gặp “ bấtthường ”. 1.1.4. 6A dc : Bộ phận chuyển tín hiệu analog sang tín hiệu digital. Các tín hiệu bênngoài đi vào vi điều khiển thường ở dạng analog. ADC sẽ chuyển tín hiệu này vềdạng tín hiệu digital mà vi điều khiển hoàn toàn có thể hiểu được. 1.1.5 Một số loại vi điều khiển thông dụng1. 1.5.1 Vi điều khiển 8051. Intel 8051 – là vi điều khiển đơn tinh thể kiến trúc Harvard, lần tiên phong đượcsản xuất bởi Intel năm 1980, để dùng trong những mạng lưới hệ thống nhúng. Trong những năm1980 và đầu những năm 1990 đã rất nổi tiếng. Tuy nhiên hiện tại đã cũ và đượcthay thế bằng những thiết bị tân tiến hơn, với những lõi phối hợp 8051, được sản xuấtbởi hơn 20 đơn vị sản xuất độc lập như Atmel, Maxim IC ( công ty con của DallasSemiconductor ), NXP Semiconductors ( Philips Semiconductor trước đây ), Winbond, Silicon Laboratories, Texas Instruments và Cypress Semiconductor. Têngọi chính thức của họ vi điều khiển Intel 8051 – MCS 51. Những vi điều khiển Intel 8051 được sản xuất với việc dùng công nghệ MOSFET, những những bản sau, chứa kí hiệu “ C ” trong tên, như 80C51, dùng công nghệCMOS và nhu yếu hiệu suất thấp, hơn những cái MOSFET trước ( điều này chophép trang bị cho những thiết bị với nguồn là pin ). Các thông số kỹ thuật kỹ thuật : 8 bit ALU, 8 bit thanh ghi. 8 bit dữ liệu bus16 bit địa chỉ bus vì thế khoảng trống bộ nhớ tối đa cho ROM và RAM lên tới 64 kbBộ nhớ tài liệu SRAM 128 bytesBộ nhớ chương trình ROM 4 kb. 32 chân vào / ra đa hướng. Giao tiếp nối tiếp UART.Hai bộ timer / counter 16 bit. Hai ngắt ngoài. Hình 1.1 : Sơ đồ chân của 8051 : Hình 1.2 : Sơ đồ khối điều khiển : Lập trình cho 8051 : Các nhà phân phối 8051 đều tương hỗ ngôn từ lập trình Assembler tuy nhiên ngôn ngữ10này thường ít được dùng cho những ứng dụng lớn do tính tương thích của nó, vì vậytrong những ứng dụng thực tiễn hay sử dụng ngôn từ C. Ngoài ra còn một số ít ngôn ngữkhác được tăng trưởng cho 8051 như Pascal, Basic, Forth. 1.1.5. 2 Vi điều khiển AVR.Là dòng vi điều khiển do hãng Atmel sản xuất có nhiều loại AVR như : – 32 – bit AVR UC3. – 8/16 – bit AVR XMEGA. – 8 – bit mega AVR. – 8 – bit tiny AVR.Vi điều khiển Atmega 16 : Là vi điều khiển 8 bit với tiêu thụ điện năng thấp dựa trên kiến trúc RISC ( Reduced Instruction Set Computer ). Vào ra Analog – digital và ngược lại. Vớicông nghệ này được cho phép những lệnh thực thi chỉ trong một chu kì xung nhịp, vì vậy tốcđộ giải quyết và xử lý tài liệu hoàn toàn có thể đạt đến 1 triệu lệnh trên giây ở tần số 1M hz. Vi điều khiểnnày được cho phép người phong cách thiết kế hoàn toàn có thể tối ưu hoá chính sách tiêu thụ nguồn năng lượng mà vẫnđảm bảo vận tốc giải quyết và xử lý. Lõi AVR có tập lệnh nhiều mẫu mã với số lượng với 32 thanh ghi thao tác chungvới nhau. Tất cả 32 thanh ghi đều được nối trực tiếp với ALU ( Arithmetic LogicUnit ), được cho phép 2 thanh ghi truy vấn độc lập trong một chỉ lệnh đơn trong một chukỳ xung nhịp. Kiến trúc đạt được có vận tốc giải quyết và xử lý nhanh gấp 10 lần vi điều khiểndạng CISC ( Complex Instruction Set Computer ) thường thì. Atmega 16 được tương hỗ khá đầy đủ ứng dụng và công cụ tăng trưởng mạng lưới hệ thống gồm có : Trình dịch Assembly như AVR studio của Atmel, Trình dịch C như win AVR, CodeVisionAVR C, ICCAVR. C – CMPPILER của GNU … Trình dịch C đã đượcnhiều người dùng và nhìn nhận tương đối mạnh, dễ tiếp cận so với những người bắtđầu khám phá AVR, đó là trình dịch CodeVisionAVR C. Phần mềm này tương hỗ nhiều11ứng dụng và có nhiều hàm có sẵn nên việc lập trình tốt hơn. – Bộ nhớ : Flash 16KBEEPROM 512 ByteSRAM 1KB. – Ngoại vi : Hai timer 8 bitMột timer 16 bitBộ counter với tần số riêngBốn bộ điều chế độ rộng xung PWM.Tám kênh ADC 10 bit. USART.Giao tiếp SPI, Giao diện I2C. Watchdog timer. Bộ so sánh tựa như trên chip. – Tính năng : Tập lệnh gồm 131 lệnh, hầu hết triển khai trong một chu kỳ luân hồi máy. Xử lý 16 triệu lệnh ở tần số 16 MHZ. 32 chân vào / ra hoàn toàn có thể lập trình được. Sáu chính sách sleep. 40 pin kiểu PDIP, 44 pin kiểu TQFP và kiểu QFL / MLF. 32 thanh ghi 8 bit đa dụng. Ngắt trong và ngắt ngoài. Điện áp hoạt động giải trí từ 2,7 – 5,5 V cho Atmega 16A. 12H ình 1.3 : Sơ đồ chân13Hình 1.4 Sơ đồ khối điều khiển1. 1.5.3 Vi điều khiển PIC14PIC là một họ vi điều khiển RISC được sản xuất bởi công ty MicrochipTechnology. Dòng PIC tiên phong là PIC1650 được tăng trưởng bởi Microelectronics Division thuộcGeneral Instrument. PIC bắt nguồn là chữ viết tắt của ” Programmable IntelligentComputer ” ( Máy tính khả trình mưu trí ). Là vi điều khiển với kiến trúc RISCthực thi một lệnh với một chu kỳ luân hồi máy ( bằng bốn chu kỳ luân hồi của bộ giao động ). Ngàynay có nhiều dòng PIC được sản xuất với hàng loạt những mô đun ngoại vi tích hợpsẵn như ADC, PWM, USART, SPI … với bộ nhớ chương trình từ 512 word đến 32K word. Các họ vi điều khiển PIC : – Họ 8 bit : PIC 10 / PIC 12 / PIC 16 / PIC 18 – Họ 16 bit : PIC 24F / PIC 24H / dsPIC 30 / dsPIC 33 – Họ 32 bit : PIC 32. Một vài đặc tính : – Chân vào / ra I / O hoàn toàn có thể lập trình được. – Flash và ROM hoàn toàn có thể tuỳ chọn từ 256 byte đến 512 Kbyte – Bộ xê dịch bên trong. – 8/16/32 bit Timers. – Bộ nhớ EEPROM nội – Chuẩn giao tiếp nối tiếp đồng nhất và không đồng điệu USART – MSSP Peripheral cho tiếp xúc I2C và SPI – Các chính sách so sánh, bắt giữ và điều chế độ rộng xung PWM. – Bộ so sánh điện áp. – Bộ chuyển đổi ADC ( tần số hoàn toàn có thể lên tới 1 MHz ). – Hộ trợ những giao thức USB, CAN, Ethernet. 15 – Mô đun điều khiển động cơ, mô đun đọc encoder. – Hộ trợ bộ nhớ ngoài. – DSP những tính năng giải quyết và xử lý tín hiệu số ( dsPIC ) Lập trình cho PIC : Hãng Microchip cung ứng thiên nhiên và môi trường lập trình MPLAB nó gồm có ứng dụng môphỏng, trình dịch ASM, link và tháo gỡ. Ngoài ra hãng này cũng bán trình biêndịch C cho những dòng PIC18 và dsPIC tích hợp trong MPLAB.Ngoài ra còn 1 số ít công ty khác cung ứng trình biên dịch C, PASCAL, BASICcho PIC đó hoàn toàn có thể là ứng dụng thương mại hoặc ứng dụng mã nguồn mở. 1.1.5. 4 Vi điều khiển ARM.Cấu trúc ARM ( viết tắt từ tên gốc là Acorn RISC Machine ) là một loại cấu trúcvi giải quyết và xử lý 32 – bit kiểu RISC được sử dụng thoáng đãng trong những phong cách thiết kế nhúng. Đượcphát triển lần đầu trong một dự án Bất Động Sản của công ty máy tính Acorn. Do có đặc thù tiếtkiệm nguồn năng lượng, những bộ CPU ARM chiếm lợi thế trong những loại sản phẩm điện tử diđộng, mà với những mẫu sản phẩm này việc tiêu tán hiệu suất thấp là một tiềm năng thiết kếquan trọng số 1. Ngày nay, hơn 75 % CPU nhúng 32 – bit là thuộc họ ARM, điều này khiến ARM trởthành cấu trúc 32 – bit được sản xuất nhiều nhất trên quốc tế. CPU ARM được tìmthấy khắp nơi trong những loại sản phẩm thương mại điện tử, từ thiết bị cầm tay ( PDA, điện thoại di động, máy đa phương tiện, máy game show cầm tay, và máy tính cầm tay ) cho đến những thiết bị ngoại vi máy tính ( ổ đĩa cứng, bộ định tuyến để bàn. ). Mộtnhánh nổi tiếng của họ ARM là những vi giải quyết và xử lý Xscale của Intel. Giới thiệu về vi điều khiển LPC2148 : Là dòng vi điều khiển ARM được sản xuất bởi hãng Philips. Tính năng : – Vi điều khiển 16/32 – bit ARM7TDMI-S16 – 40 k RAM tĩnh ( 8 k + 32 k ), 512 k flash – Tích hợp USB 2.0 – Hộ trợ hai bộ ADC 10 bit – Một bộ DAC 10 bit – 2 bộ timer 32 bit, 6 ngõ điều chế độ rộng xung – Đồng hồ thời hạn thực tương hỗ tần số 32 kHz – Khả năng thiết lập chính sách ưu tiên và định địa chỉ cho ngắt – 45 chân GPIO vào ra đa dụng – 9 chân ngắt ngoài ( tích cực cạnh hoặc tích cực mức ) – CPU clock đạt tối đa 60MH z trải qua bộ PLL lập trình được – Xung PLCK hoạt động giải trí độc lập. On-chip Flash Memory : LPC 2148 có 512K bộ nhớ Flash hoàn toàn có thể được dùng để tàng trữ code và tài liệu. Trong khi thực thi ứng dụng, vẫn hoàn toàn có thể xóa hoặc lập trình Flash trải qua IAP ( InApplication Programming ). Khi đó trình loader trên chip được sử dụng, bộ nhớtrống còn lại là 500K. Bộ nhớ Flash hoàn toàn có thể ghi xóa được tối thiểu 100000 lần, tàng trữ tài liệu đến 20 năm. On-chip Static RAM : LPC 2148 có 32K RAM tĩnh, hoàn toàn có thể được truy xuất theo đơn vị chức năng byte, half word và word. Bộ điều khiển SRAM sử dụng phương pháp write-back buffer để ngăn chặntình trạng treo CPU khi có thao tác ghi. Bộ đệm luôn giữ tài liệu sau cuối từchương trình gửi tới bộ nhớ. Dữ liệu chỉ được ghi vào SRAM khi có 1 thao tác ghikhác từ chương trình. Lập trình cho ARM : Ngôn ngữ lập trình chính cho ARM lúc bấy giờ là ngôn từ C. Các trình biên dịchcho ARM thường được dùng : 17 – Keil ARM. – IAR. – HTPICC for ARM. – ImageCraft ICCV7 for ARM1. 2 TÌNH HÌNH PHÁT TRIỂN TRONG NƯỚC VÀ NGOÀI NƯỚCHiện nay vi điều khiển đang được sử dụng rất thoáng rộng ở nước ta và những nước trênthế giới như Mỹ, Nhật, Đức …. Vi điều khiển có vai trò cực kỳ quan trọng và khôngthể thay thế sửa chữa. Điều đó đã được vật chứng bằng những ứng dụng quan trọng của viđiều khiển trong đời sống của tất cả chúng ta. Một số loại vi điều khiển có trên thị trường lúc bấy giờ : – vi điều khiển MCS-51 : 8031, 8032, 8051, 8052, – vi điều khiển ATMEL : 89C xx, AT89Cxx51 – vi điều khiển AVR AT90Sxxxx – vi điều khiển PIC 16C5 x, 17C43 Ứng dụng của một số ít vi điều khiển : – Vi điều khiển MCS-51 : có rất nhiều ứng dụng trong đời sống, đơn thuần như điềukhiển những đèn led, đồng hồ đeo tay báo thức, lịch vạn niên, máy đo nhiệt độ – Vi điều khiển PIC : được sự dụng để điều khiển những Port I / O, điều khiển động cơ, tương hỗ tiếp xúc USB, làm những mạnh đo nhiệt độ, đồng hồ đeo tay số … – Vi điều khiển AVR : điều khiển động cơ, điều khiển nhiệt độ, truyền dữ liệukhông dây …. 1.3 ĐỊNH HƯỚNG ĐỀ TÀI18Đồ án gồm 3 mục chính như sau : – Khái quát về vi điều khiển : ra mắt 1 số ít họ vi điều khiển thông dụng và ứngdụng của những họ vi điều khiển – Giới thiệu về vi điều khiển Pic16F877A – Ứng dụng vi điều khiển Pic : đơn cử là ứng dụng điều khiển những Port I / ObằngPic16F877A19CHƯƠNG 2 : VI ĐIỀU KHIỂN PIC 16F877 A2. 1 KHÁI QUÁT VỀ VI ĐIỀU KHIỂN PIC2. 1.1 Pic là gì ? PIC là viết tắt của “ Programable Intelligent Computer ”, hoàn toàn có thể tạm dịch là “ máytính mưu trí 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 phong cách thiết kế để dùng làm những thiết bị ngoại vi cho viđiều khiển CP1600. Vi điều khiển này sau đó được điều tra và nghiên cứu tăng trưởng thêm vàtừ đó hình thành nên dòng vi điều khiển PIC thời nay. 2.1.2 Kiến trúc PicCấu trúc phần cứng của một vi điều khiển được phong cách thiết kế theo hai dạng kiến trúc : kiến trúc Von Neuman và kiến trúc Havard. Hình 2.1 : Kiến trúc Havard và kiến trúc Von-NeumanTổ chức phần cứng của PIC được phong cách thiết kế theo kiến trúc Havard. Điểm khác biệtgiữa kiến trúc Havard và kiến trúc Von-Neuman là cấu trúc bộ nhớ tài liệu và bộnhớ chương trình. Đối với kiến trúc Von-Neuman, bộ nhớ tài liệu và bộ nhớ chương trình nằm chung20trong một bộ nhớ, do đó ta hoàn toàn có thể tổ chức triển khai, cân đối một cách linh động bộ nhớchương trình và bộ nhớ tài liệu. Tuy nhiên điều này chỉ có ý nghĩa khi vận 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 gian CPU chỉ có thểtương tác với bộ nhớ tài liệu hoặc bộ nhớ chương trình. Như vậy hoàn toàn có thể nói kiếntrú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ớ tài liệu và bộ nhớ chương trình tách ra thành haibộ nhớ riêng không liên quan gì đến nhau. Do đó trong cùng một thời gian CPU hoàn toàn có thể tương tác với cả haibộ nhớ, như vậy vận tốc xử lí của vi điều khiển được cải tổ đáng kể. Một điểm cần quan tâm nữa là tập lệnh trong kiến trúc Havard hoàn toàn có thể được tối ưu tùytheo nhu yếu kiến trúc của vi điều khiển mà không phụ thuộc vào vào cấu trúc tài liệu. Ví dụ, so 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 triển khai thành từng byte ), còn so với kiến trúc Von-Neuman, độ dài lệnh luônlà bội số của 1 byte ( do tài liệu được tổ chức triển khai thành từng byte ). Đặc điểm này đượcminh họa đơn cử trong hình 1.1.2. 1.3 Risc và CiscNhư đã trình diễn ở trên, kiến trúc Havard là khái niệm mới hơn so với kiến trúcVon-Neuman. Khái niệm này được hình thành nhằm mục đích nâng cấp cải tiến vận tốc thực thi của mộtvi điều khiển. Qua việc tách rời bộ nhớ chương trình và bộ nhớ tài liệu, bus chương trình và busdữ liệu, CPU hoàn toàn 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 vận tốc xử lí của vi điều khiển lên gấp đôi. Đồng thời cấu trúc lệnhkhông còn nhờ vào vào cấu trúc tài liệu nữa mà hoàn toàn có thể linh động kiểm soát và điều chỉnh tùytheo năng lực và vận tốc của từng vi điều khiển. Và để liên tục nâng cấp cải tiến vận tốc thựcthi lệnh, tập lệnh của họ vi điều khiển PIC được phong cách thiết kế sao cho chiều dài mã lệnhluôn cố định và thắt chặt ( ví dụ so với họ 16F xxxx chiều dài mã lệnh luôn là 14 bit ) và chophép thực thi lệnh trong một chu kì của xung clock ( ngoại trừ 1 số ít trường hợp21đặ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ồ đeo tay ). Đ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 thuần hơn để phân phối nhu yếu mã hóa lệnh bằng một số lượng bitnhất định. Vi điều khiển được tổ chức triển khai theo kiến trúc Havard còn được gọi là vi điều khiểnRISC ( 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 phong cách thiết kế theo kiến trúc Von-Neuman còn được gọi là vi điều khiểnCISC ( Complex Instruction Set Computer ) hay vi điều khiển có tập lệnh phức tạpvì mã lệnh của nó không phải là một số cố định và thắt chặt mà luôn là bội số của 8 bit ( 1 byte ). 2.1.4 PipeliningpĐây chính là chính sách xử lí lệnh của những vi điều khiển PIC. Một chu kì lệnh của viđiều khiển sẽ gồm có 4 xung clock. Ví dụ ta sử dụng oscillator có tần số 4 MHZ, thì xung lệnh sẽ có tần số 1 MHz ( chu kì lệnh sẽ là 1 us ). Giả sử ta có một đoạnchương trình như sau : 1. MOVLW 55 h2. MOVWF PORTB3. CALL SUB_14. BSF PORTA, BIT35. instruction @ address SUB_1Ở đây ta chỉ bàn đến qui trình vi điều khiển xử lí đoạn chương trình trên thông quatừng chu kì lệnh. Quá trình trên sẽ được thực thi như sau : 22H ình 2.2 : Cơ chế pipelining – TCY0 : đọc lệnh 1 – TCY1 : thực thi lệnh 1, đọc lệnh 2 – TCY2 : thực thi lệnh 2, đọc lệnh 3 – TCY3 : thực thi lệnh 3, đọc lệnh 4. – TCY4 : vì lệnh 4 không phải là lệnh sẽ được thực thi theo qui trình thực thicủa chương trình ( lệnh tiếp theo được thực thi phải là lệnh tiên phong tại labelSUB_1 ) nên chu kì thực thi lệnh này chỉ được dùng để đọc lệnh tiên phong tạilabel SUB_1. Như vậy hoàn toàn có thể xem lênh 3 cần 2 chu kì xung clock để thực thi. – TCY5 : thực thi lệnh tiên phong của SUB_1 và đọc lệnh tiếp theo của SUB_1. Quá trình này được triển khai tương tự như cho những lệnh tiếp theo của chương trình. Với chính sách pipelining được trình diễn ở trên, mỗi lệnh xem như chỉ được thực thitrong một chu kì lệnh. Đối với những lệnh mà quy trình thực thi nó làm biến hóa giá trịthanh ghi PC ( Program Counter ) cần hai chu kì lệnh để thực thi vì phải thực hiệnviệc gọi lệnh ở địa chỉ thanh ghi PC chỉ tới. Sau khi đã xác lập đúng vị trí lệnhtrong thanh ghi PC, mỗi lệnh chỉ cần một chu kì lệnh để thực thi xong. 232.1.5 Các dòng Pic và cách lựa chọn vi điều khiển PicCá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 bitC : PIC có bộ nhớ EPROM ( chỉ có 16C84 là EEPROM ) F : PIC có bộ nhớ flashLF : PIC có bộ nhớ flash hoạt động giải trí ở điện áp thấpLV : tương tự như như LF, đây là kí hiệu cũBên cạnh đó một số ít vi điệu khiển có kí hiệu xxFxxx là EEPROM, nếu có thêm chữA ở cuối là flash ( ví dụ PIC16F877 là EEPROM, còn PIC16F877A là flash ). Ngoài ra còn có thêm một dòng vi điều khiển PIC mới là dsPIC. Ở Nước Ta phổ cập nhất là những 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 tương thích : – Trước hết cần chú ý quan tâm đến số chân của vi điều khiển thiết yếu 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òn có viđiều khiển chỉ có 8 chân, ngoài những còn có những vi điều khiển 28, 40, 44, … chân. – Cần chọn vi điều khiển PIC có bộ nhớ flash để hoàn toàn có thể nạp xóa chương trìnhđược nhiều lần hơn. Tiếp theo cần chú ý quan tâm đến những khối tính năng được tíchhợp sẵn trong vi điều khiển, những chuẩn tiếp xúc bên trong. – Sau cùng cần quan tâm đến bộ nhớ chương trình mà vi điều khiển được cho phép. – Ngoài ra, cách lựa chọn vi điều khiển PIC hoàn toàn có thể được tìm thấy trong cuốn24sách “ Select PIC guide ” do đơn vị sản xuất Microchip cung ứng. 2.1.6 Ngôn ngữ lập trình cho PicNgôn ngữ lập trình cho PIC rất phong phú. Ngôn ngữ lập trình cấp thấp có MAPLAB ( được phân phối không tính tiền bởi đơn vị sản xuất Microchip ), những ngôn từ lập trình cấpcao hơn gồm có C, Basic, Pascal, … Ngoài ra còn có một số ít ngôn từ lập trìnhđược tăng trưởng dành riêng cho PIC như PICBasic, MikroBasic, … 2.1.7 Mạch nạp PicĐây cũng là một dòng mẫu sản phẩm rất phong phú dành cho vi điều khiển PIC. Có thể sửdụng những mạch nạp được cung ứng bởi nhà phân phối là hãng Microchip như : PICSTART plus, MPLAB ICD 2, MPLAB PM 3, PRO MATE II. Có thể dùng cácsản phẩm này để nạp cho vi điều khiển khác trải qua chương trình MPLAB.Dòng mẫu sản phẩm chính thống này có lợi thế là nạp được cho toàn bộ những vi điều khiểnPIC, tuy nhiên giá tiền rất cao và thường gặp rất nhiều khó khăn vất vả trong quá trìnhmua mẫu sản phẩm. Ngoài ra do tính năng được cho phép nhiều chính sách nạp khác nhau, còn có rất nhiều mạchnạp được phong cách thiết kế dành cho vi điều khiển PIC. Có thể sơ lược 1 số ít mạch nạp choPIC như sau : – JDM programmer : mạch nạp này dùng chương trình nạp Icprog được cho phép nạpcác vi điều khiển PIC có tương hỗ tính năng nạp chương trình điện áp thấp ICSP ( In Circuit Serial Programming ). Hầu hết những mạch nạp đều tương hỗ tính năng nạpchươ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 đơn vị sản xuất Microchip cung ứng, thích hợp với trình biên dịchMPLAB, nghĩa là ta hoàn toàn 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ạnnhư ICprog. 25

5/5 - (1 vote)
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments