1. Trang chủ
  2. » Giáo án - Bài giảng

TÀI LIỆU THÍ NGHIỆM KỸ THUẬT VI ĐIỀU KHIỂN VÀ VI XỬ LÝ

54 353 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 54
Dung lượng 1,74 MB

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

Nội dung

Một máy tính ñược thiết kế ñể thực hiện chương trình ñiều khiển dữ liệu nào ñó.. Các thiết bị vào là cần thiết ñể nhập chương trình ñược thực hiện và dữ liệu ñược xử lý vào máy tính..

Trang 1

TRƯỜNG ðẠI HỌC BÁCH KHOA ðÀ NẴNG

KHOA ðIỆN TỬ VIỄN THÔNG

BỘ MÔN KỸ THUẬT MÁY TÍNH

-o0o -

TÀI LIỆU THÍ NGHIỆM

KỸ THUẬT VI ðIỀU KHIỂN

VÀ VI XỬ LÝ

ðÀ NẴNG 2009

Trang 2

THÍ NGHIỆM KỸ THUẬT VI ðIỀU KHIỂN VÀ VI XỬ LÝ

THỜI LƯỢNG: 15 TIẾT

KẾ HOẠCH THÍ NGHIỆM:

BUỔI 1: CHƯƠNG 1,2,3 BUỔI 2: CHƯƠNG 4,5 BUỔI 3: CHƯƠNG 6,7

Trang 3

MỤC LỤC

1 MỤC ðÍCH VÀ YÊU CẦU CHUNG

• MỤC ðÍCH THÍ NGHIỆM

• YÊU CẦU THÍ NGHIỆM

2 GIỚI THIỆU HỌ VI ðIỀU KHIỂN PIC

• GIỚI THIỆU VI XỬ LÝ VÀ VI ðIỀU KHIỂN

• GIỚI THIỆU PICF16F877A

3 GIỚI THIỆU KIT PICDEM 2 PLUS VÀ MPLAB TOOLS

• GIỚI THIỆU PICDEM2 PLUS

• GIỚI THIỆU MPLAB TOOLS

Trang 4

1 MỤC ðÍCH VÀ YÊU CẦU CHUNG

1.2 Yêu cầu thí nghiệm:

Dựa vào các thiết bị có sẵn tại phòng thí nghiệm cụ thể là Board PICDEM 2

PLUS và các công cụ kèm theo, sinh viên tham gia thí nghiệm phải:

- Nắm vững lý thuyết trước khi ñi vào thí nghiệm cụ thể là làm việc trực tiếp với dụng cụ thí nghiệm

- Sử dụng các công cụ thí nghiệm một cách cơ bản

- Hoàn thành các bài thí nghiệm

Sau khi hoàn thành thí nghiệm yêu cầu:

- Lập trình cơ bản cho PIC16F877A

- Sử dụng ñược các công cụ hỗ trợ cho PIC có trong phòng thí nghiệm

- Nắm cơ bản về cấu trúc PIC16F877A

Trang 5

2 GIỚI THIỆU HỌ VI ðIỀU KHIỂN PIC

• GIỚI THIỆU VI XỬ LÝ VÀ VI ðIỀU KHIỂN

• GIỚI THIỆU PICF16F877A

================================================================ 2.1 Máy tính là gì?

Một máy tính ñược kết hợp từ phần cứng và phần mềm Phần cứng của một máy tính bao gồm 4 thành phần:

• Bộ xử lý Bộ xử lý chịu trách nhiệm thực hiện tất cả các hoạt ñộng tính toán và phối hợp việc sử dụng tài nguyên của máy tính Một hệ thống máy tính có thể gồm

1 hoặc nhiều bộ xử lý một bộ xử lý có thể sử dụng tính toán ña dụng hoặc tính toán chuyên dụng, như là việc thực hiện ñồ họa, việc in ấn, hay là xử lý mạng

• Các thiết bị nhập Một máy tính ñược thiết kế ñể thực hiện chương trình ñiều khiển

dữ liệu nào ñó Các thiết bị vào là cần thiết ñể nhập chương trình ñược thực hiện

và dữ liệu ñược xử lý vào máy tính Các thiết bị vào rất ña dạng: bàn phím, bàn phím số, máy quét, ñầu ñọc mã vạch, bộ cảm biến, và nhiều nữa

• Các thiết bị xuất Không có vấn ñề gì nếu người dùng sử dụng máy tính ñể chỉ ñể tính toán hay ñể tìm kiếm thông tin từ Internet hay một cơ sở dữ liệu, kết quả cuối cùng phải ñược hiển thị hoặc in ra giấy ñể người dùng có thể thấy Một số phương tiện truyền thông và thiết bị có thể ñược sử dụng ñể hiển thị thông tin: màn hình CRT, màn hình phẳng, bộ hiển thị 7 doạn, máy in, diode phát quang, và nhiều nữa

• Các thiết bị nhớ: Chương trình ñược ñiều khiển và dữ liệu ñược xử lý phải chứa trong thiết bị nhớ ñể bộ xử lý có thể sẵn sàng truy cập chúng

lý này ñến những bộ xử lý khác

Trang 6

• ðơn vị logic số học (ALU) ALU thực hiện tất cả các tính toán bằng số và sự ước lượng bằng logic cho bộ xử lý ALU nhận dữ liệu từ bộ nhớ, thực hiện các công việc, và, nếu cần, ghi kết quả trở lại bộ nhớ Siêu máy tính ngày nay có thể thực hiện hàng ngàn tỷ công việc trên 1 giây ALU và các thanh ghi cùng ñược mệnh danh như là ñường dữ liệu của bộ xử lý

• ðơn vị ñiều khiển ðơn vị ñiều khiển chứa chỉ dẫn logic phần cứng ðơn vị ñiều khiển giải mã và giám sát sự ñiều khiển của các chỉ dẫn ðơn vị ñiều khiển cũng làm việc như một bộ trọng tài của hệ thống máy tính phân chia sự thay ñổi dưới dạng cạnh tranh của những tài nguyên CPU Các hoạt ñộng của CPU ñược ñồng bộ hóa bởi ñồng hồ hệ thống Tốc ñộ của ñồng hồ của những bộ vi xử lý ñời mới ñã vượt quá 3.0GHz tại thời ñiểm này

1GHz=1 tỷ chu kỳ trên 1 giây

Chu kỳ của 1 tín hiệu ñồng hồ 1GHz là 1ns(10-9 giây) ðơn vị ñiều khiển chỉ khai thác một thanh ghi gọi là bộ ñếm chương trình (PC) ñể giữ vết ñịa chỉ của lệnh tiếp theo

ñể thực hiện Trong lúc thực thi lệnh, tràn xảy ra, một số nhớ ñược thêm vào, một số trừ ñược mượn, và nhiều nữa ñược ñánh dấu bằng cờ bởi hệ thống và ñược lưu trong thanh ghi khác gọi là thanh ghi trạng thái Kết quả xảy ra của các cờ ñược sử dụng bởi lập trình viên cho việc ñiều khiển trình tự và quyết ñịnh sự làm việc của chương trình

2.1.2 Bộ vi xử lý

Sự tiến bộ của công nghệ bán dẫn cho phép hệ mạch của bộ xử lý ñầy ñủ ñược ñặt trong một mạch tích hợp( còn gọi là chip) Một bộ vi xử lý là một bộ xử lý gọn trong một mạch tích hợp ñơn Một máy vi tính là một máy tính sử dụng một bộ vi xử lý làm CPU của nó Một máy tính cá nhân(PC) là một máy vi tính Các máy vi tính ñời cũ rất chậm Tuy nhiên, các máy tính cá nhân ngày nay chạy với tốc ñộ cao hơn 3.0GHz và nhanh hơn các siêu máy tính của vài năm trước

Việc phụ thuộc vào số bit mà một bộ vi xử lý có thể ñiều khiển trong một công việc, một bộ vi xử lý ñược quy về là 4-bit, 8-bit,16-bit, 32-bit, hoặc 64-bit Con số này là

ñộ dài từ ( hoặc ñộ dài ñường dữ liệu) của bộ vi xử lý Hiện nay, bộ vi xử lý 8-bit hầu như ñược dùng rộng rãi

Trang 7

Mặc dù tốc ñộ ñồng hồ của bộ vi xử lý ñã tăng ñột biến, sự cải tiến về thời gian truy cập ( hay nói ñơn giản là tốc ñộ) của các chip bộ nhớ dung lượng cao (nhất là các chip DRAM ñược dùng rộng rãi ñược bàn trong mục 1.2.4) ñược ñiều tiết ở mức tốt nhất

Bộ vi xử lý có thể hoàn thành 1 hoạt ñộng tính toán trong một chu kỳ ñồng hồ; tuy nhiên,

nó có thể lấy nhiều chu kỳ ñồng hồ ñể truy cập dữ liệu từ chip nhớ Sự chênh lệch tốc ñộ này làm cho tốc ñộ ñồng hồ cao của bộ vi xử lý ñơn vô ích trong việc thực hiện trao ñổi tốc ñộ cao Giải pháp ñược ñưa ra là thêm vào một bộ nhớ tốc ñộ cao nhỏ vào chip CPU

Bộ nhớ trên chip này ñược gọi là bộ nhớ cache CPU có thể truy cập dữ liệu từ bộ nhớ cache trên chip trong 1 hay 2 chu kỳ ñồng hồ bởi vì nó rất gần với ALU Bộ nhớ cache là

có ích trong việc cải thiện thời gian truy cập bộ nhớ trung bình bởi vì CPU giải thích ñược

vị trí hành vi truy cập nó Trong thời gian một chu kỳ ngắn, CPU tiến ñến truy cập một vùng nhỏ trong bộ nhớ tái lập Một ñoạn chương trình hoặc dữ liệu ñược ñưa vào trong bộ nhớ cache, nó sẽ ñược truy xuất nhiều lần Các kết quả trong thời gian truy cập bộ nhớ trung bình rất gần với thời gian truy cập bộ nhớ cache

Bộ vi xử lý và thiết bị nhập/xuất(I/O) có ñặc tính và tốc ñộ khác nhau Một bộ vi

xử lý không ñược thiết kế ñể giải quyết thiết bị I/O trực tiếp Thay vào ñó, các chip ngoại vi( còn gọi là các chip giao tiếp) là cần thiết ñể tạo ra sự khác biệt giữa bộ vi xử lý và các thiết bị I/O Ví dụ, i8255 của Intel ñã ñược thiết kế ñể giao tiếp với bộ vi xử lý 8-bit 8080

từ Intel, và M6821 ñã ñược thiết kế ñể giao tiếp với 6800 8-bit từ Motorola với các thiết

bị I/O

Các bộ vi xử lý ñược sử dụng trong nhiều ứng dụng từ khi chúng ñược phát minh

ra Tuy nhiên, có vài hạn chế trong việc thiết kế bộ vi xử lý ban ñầu ñã dẫn ñến sự phát triển của bộ vi ñiều khiển:

• Các chip nhớ ngoài là cần thiết ñể giữ chương trình và dữ liệu bởi vì các bộ vi xử

lý cũ không có bộ nhớ trên chip

• Glue logic( như là bộ giải mã ñịa chỉ và các chip bộ ñệm) ñược yêu cầu ñể giao tiếp với các chip nhớ

• Các chip ngoại vi là cần thiết ñể giao tiếp với thiết bị I/O

Bởi vì các hạn chế trên, một sản phẩm ñược thiết kế với các bộ vi xử lý không thể gọn hơn mà có lẽ ñang ñược chờ ñón Việc phát triển các bộ vi ñiều khiển không chỉ loại

Trang 8

trừ hầu như các vấn ñề trên, mà còn kích thích việc thiết kế các sản phẩm trên cơ sở bộ

vi xử lý giá thành thấp

2.1.3 Vi ñiều khiển:

Một bộ vi ñiều khiển, hoặc MCU, là một máy tính ñược thực hiện trên một mạch ñơn tích hợp quy mô rất lớn(VLSI) Thêm vào các thành phần ñược chứa trong một bộ vi xử lý, một MCU còn chứa vài thành phần ngoại vi sau:

• Bộ nhớ

• Các bộ ñịnh thời, gồm ñếm sự kiện, thu thập ngõ vào, so sánh ngõ ra, ngắt thời gian thực, và bộ ñịnh thời watchdog

• ðiều chế ñộ rộng xung(PWM)

• Bộ chuyển ñổi tương tự sang số(ADC)

• Bộ chuyển ñổi số sang tương tự(DAC)

• Giao tiếp song song I/O

• Giao tiếp truyền thông nối tiếp bất ñồng bộ(UART)

• Giao tiếp truyền thông nối tiếp ñồng bộ (SPI, I2C, và CAN)

• Bộ ñiều khiển truy cập bộ nhớ trực tiếp(DMA)

cơ và máy móc trong nhà máy Một trong số ứng dụng quan trọng nhất của MCU có lẽ là ñiều khiển ô tô Ngày nay, một ô tô sang trọng có thể sử dụng hơn 100 MCU Ngày nay, hầu hết gia ñình có ñồ gia dụng ñiện xài 1 hoặc nhiều MCU ñể ñiều khiển Trong các ứng dụng này, mọi nguời chỉ ñể ý ñến chức năng của sản phẩm cuối cùng hơn là ñến MCU ñược sử dụng ñể thực hiện chức năng ñiều khiển Những sản phẩm mang ñặc tính này

thường ñược gọi là Hệ thống nhúng

Trang 9

2.1.4 Bộ nhớ

Chương trình và dữ liệu ñược lưu trữ trong bộ nhớ trong một hệ thống máy tính Một máy tính có thể gồm bộ nhớ bán dẫn, từ, quang Chỉ bộ nhớ bán dẫn là ñược thảo luận trong ñoạn này bởi vì bộ nhớ từ và quang hiếm khi sử dụng trong các ứng dụng MCU 8 bit Bộ nhớ bán dẫn có thể phân loại thành 2 loại chủ yếu: bộ nhớ truy cập ngẫu nhiên RAM( random-access memory) và bộ nhớ chỉ ñọc ROM(Read-Only Memory)

Bộ nhớ truy cập ngẫu nhiên RAM(Random-Access Memory)

Bộ nhớ truy cập ngẫu nhiên thay ñổi ñược theo nghĩa không thể giữ ñược dữ liệu khi bị mất nguồn RAM còn ñược gọi là bộ nhớ ñọc/ghi bởi vì nó cho phép bộ xử lý ñọc

từ nó và ghi vào nó Cả ñọc và ghi ñều truy cập RAM cùng một thời gian Cùng lúc bật nguồn, bộ vi xử lý có thể viết dữ liệu vào vùng RAM và ñọc trở lại giống nội dung cũ Việc ñọc bộ nhớ là không làm hỏng nó Khi bộ vi xử lý viết dữ liệu ñến bộ nhớ, dữ liệu

cũ ñược viết ñè lên và mất ñi

Có 2 loại công nghệ RAM: RAM tĩnh(SRAM) và RAM ñộng(DRAM) SRAM sử dụng từ 4 ñến 6 transistor ñể lưu thông tin của một bit Cùng lúc bât nguồn, thông tin lưu trong SRAM sẽ không bị mất RAM ñộng sử dụng một transistor và một tụ ñể lưu thông tin của một bit Thông tin ñược lưu trong tụ dưới dạng nạp ñiện Việc nạp vào tụ sẽ thoát hết sau một thời gian, vì vậy mỗi chu kì hoạt ñộng làm tươi ñược yêu cầu ñể bảo trì nội dung của DRAM

RAM chủ yếu ñể dùng ñể lưu dữ liệu và chương trình thay ñổi Người sử dụng máy tính thường muốn chạy nhiều chương trình khác nhau trên cùng một máy tính, và các chương trình ñó thường hoạt ñộng trên những tổ hợp khác nhau của dữ liệu Các chương trình và dữ liệu vì thế mà ñược nạp vào RAM từ ñĩa cứng hoặc bộ lưu trữ thứ cấp khác,

và vì lý do này nên chúng ñược gọi là ñộng

Bộ nhớ chỉ ñọc ROM(Read-Only-Memory)

ROM là loại “không bốc hơi” Nếu nguồn cấp cho ROM bị ngắt và sau ñó ñược cấp lai, dữ liệu gốc sẽ vấn còn ở ñó Như tên gọi của nó bao hàm, dữ liệu ROM chỉ có thể ñược ñọc Cái này không chính xác lắm ða số công nghệ ROM yêu cầu giải thuật ñặc biệt và ñiện áp ñể ghi dữ liệu vào chip Việc không sử dụng giải thuật và ñiện áp ñặc biệt,

Trang 10

bất kì sự cố gắng nào ñể ghi vào bộ nhớ ROM sẽ không thành công Có vài dạng khác biệt của công nghệ ROM sử dụng ngày nay:

Bộ nhớ chỉ ñọc lập trình hóa mặt nạ MROM(Masked-programmed read-only memory) là loại của ROM ñược lập trình khi nó ñược chế tạo Nhà sản xuất bán dẫn ñặt

dữ liệu nhị phân vào bộ nhớ theo như ñặc tả kỹ thuật của khách hàng ðể hiệu quả về chi phí, hàng ngàn chip bộ nhớ MROM, mỗi bộ chứa cùng một bản sao dữ liệu (hoặc chương trình), ñã ñược bán Mọi người gọi MROM ñơn giản là ROM

Bộ nhớ chỉ ñọc lập trình ñược PROM( Programable Read-Only Memory) là một loại bộ nhớ chỉ ñọc có thể ñược lập trình trong lĩnh vực (thường là do người dùng cuối) sử dụng thiết bị gọi là bộ lập trình PROM hoặc bộ xóa PROM Một khi PROM ñược lập trình, nội dung của nó không thể thay ñổi ñược PROM dựa trên cơ sở làm ngắt mạch, nghĩa là người dùng lập trình ngắt mạch ñể cấu hình nội dung bộ nhớ

Bộ nhớ chỉ ñọc lập trình ñược xóa ñược EPROM(Erasable programmable only memory) là loại bộ nhớ chỉ ñọc có thể bị xóa bằng việc bắt nó phải chịu ánh sáng tia

read-tử ngoại mạnh Mạch thiết kế của EPROM yêu cầu người dùng xóa nội dụng của một vùng trước khi giá trị mới có thể ñược viết vào nó Một cửa sổ thạch anh trên mặt của mạch tích hợp EPROM cho phép ánh sáng tử ngoại có thể chiếu trực tiếp vào bên trong chip silicon Một lần chip ñược lập trình, cửa sổ thạch anh có thể ñược bao bọc bởi băng tối ñể ngăn dữ liệu bị xóa ñi dần dần Nếu cửa sổ thạch anh không ñược cung cấp, chip EPROM trở thành chỉ lập trình ñược một lần OTP(one-time programmable) EPROM thường ñược dùng trong các máy tính dùng thử nơi mà phần mềm có thể ñược sửa lại vài lần cho ñến khi nó ñược hoàn thiện EPROM không cho phép xóa ñi nội dung của một vị trí riêng lẻ Chỉ có một cách ñể thay ñổi nó là xóa toàn bộ chip EPROM và lập trình lại

nó Việc lập trình một chip EPROM làm bằng ñiện bởi việc sử dụng một thiết bị gọi là bộ lập trình EPROM Ngày nay, ña số các bộ lập trình là phổ biến theo nghĩa chúng có thể lập trình cho một số loại thiết bị khác nhau bao gồm EPROM, EEPROM, bộ nhớ Flash,

và thiết bị logic lập trình ñược

Bộ nhớ chỉ ñọc lập trình ñược xóa ñược bằng ñiện EEPROM (electrically erasable programmable read-only memory) là một loại bộ nhớ không bốc hơi có thể xóa ñược và lập trình lại bởi tín hiệu ñiện Giống với EPROM, mạch thiết kế của EEPROM cũng ñòi

Trang 11

hỏi người dùng xóa nội dung của một vi trí bộ nhớ trước khi ghi một giá trị mới vào nó EEPROM cho phép mỗi vị trí riêng lẻ bị xóa và lậ trình lại Khác với EPROM, EEPROM

có thể bị xóa và lập trình sử dụng cùng bộ lập trình Tuy nhiên, EEPROM trả giá cho sự mềm dẻo trong cách thức xóa của nó Giá của chip EEPROM là cao hơn nhiều so với chip EPROM có thể so sánh ñược về tỷ trọng

Bộ nhớ Flash ñã ñược phát minh ñể hợp nhất những lợi thế và loại bỏ những hạn chế của hai công nghệ EPROM và EEPROM Bộ nhớ Flash có thể bị xóa và lập trình lại trong hệ thống không sử dụng bộ lập trình chuyên dụng Nó ñạt ñược tỷ trọng của EPROM, nhưng nó không ñòi hỏi cửa sổ cho việc xóa Giống với EEPROM, bộ nhớ Flash có thể ñược lập trình và xóa bằng ñiện tuy nhiên, nó không cho phép xóa một vị trí

bộ nhớ riêng lẻ - người dùng có thể chỉ xóa một nhóm tách biệt hoặc toàn bộ chip Ngày nay, càng ngày càng nhiều MCU tích hợp bộ nhớ flash trên chip cho việc lưu trữ chương trình và dữ liệu MCUs PIC16 trên cơ sở bộ nhớ Flash cho phép bạn xóa một khối 64 byte một lúc

2.2 Giới thiệu PIC16F877A

2.2.1 PIC là gì?

PIC ñầy ñủ là “Programable Intelligent Computer”, 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 hình thành nên dòng vi ñiều khiển PIC ngày nay

2.2.2 ðại cương PIC16F877A

2.2.2.1 Sơ ñồ chân

Trang 12

Hình 1 Sơ ñồ chân PIC16F877A 2.2.2.2 Các thông số ñáng quan tâm

- Vi ñiều khiển PIC16F877A với tập lệnh gồm 35 lệnh có ñộ dài 14 bit Mỗi lệnh ñều ñược thực thi trong một chu kì xung clock Tốc ñộ hoạt ñộng tối ña cho phép là 20 MHz với một chu kì lệnh là 200ns

- Bộ nhớ chương trình 8Kx14 bit, bộ nhớ dữ liệu 368x8 byte RAM và bộ nhớ dữ liệu EEPROM với dung lượng 256x8 byte

- Số PORT I/O là 5 với 33pin I/O

-Các ñặc tính ngoại vi bao gồmcác khối chức năng sau:

+ Timer0: bộ ñếm 8 bit với bộ chia tần số 8 bit

+ Timer1: bộ ñếm 16 bit với bộ chia tần số, có thể thực hiện chức năng ñếm dựa vào

xung clock ngoại vi ngay khi vi ñiều khiển hoạt ñộng ở chế ñộ sleep

+ Timer2: bộ ñếm 8 bit với bộ chia tần số, bộ postcaler

+ Hai bộ Capture/so sánh/ñiều chế ñộ rông xung

+ Các chuẩn giao tiếp nối tiếp SSP (Synchronous Serial Port), SPI và I2C

+ Chuẩn giao tiếp nối tiếp USART với 9 bit ñịa chỉ

Trang 13

+ Cổng giao tiếp song song PSP (Parallel Slave Port) với các chân ñiều khiển RD,

+ Bộ nhớ flash với khả năng ghi xóa ñược 100.000 lần

+ Bộ nhớ EEPROM với khả năng ghi xóa ñược 1.000.000 lần

+ Dữ liệu bộ nhớ EEPROM có thể lưu trữ trên 40 năm

+ Khả năng tự nạp chương trình với sự ñiều khiển của phần mềm

+ Nạp ñược chương trình ngay trên mạch ñiện ICSP (In Circuit Serial Programming) thông qua 2 chân

+ Watchdog Timer với bộ dao ñộng trong

+ Chức năng bảo mật mã chương trình

+ Chế ñộ Sleep

+ Có thể hoạt ñộng với nhiều dạng Oscillator khác nhau

Trang 14

2.2.2.3 Sơ ñồ khối

Hình 2 Sơ ñồ khối PIC16F877A

Trang 15

2.2.2.4 Tổ chức bộ nhớ Hình 3 BẢN ðỒ BỘ NHỚ CHƯƠNG TRÌNH

- Tổ chức bộ nhớ chương trình: VÀ NGĂN XẾP STACK PIC16F876/877A

Các thiết bị PIC16F87XA có bộ ñếm

chương trình 13 bit có khả năng ñịnh ñịa chỉ

8K từ x 14 bit không gian bộ nhớ chương

trình Thiết bị PIC16F876A/877A có 8K từ x

14 bit bộ nhớ chương trình Flash Việc truy

nhập một vị trí phía trên ñịa chỉ thực thi theo

quy luật tự nhiên sẽ gây ra một vòng tiếp

Vector Reset tại 0x0000 và vector ngắt tại

0x0004

- Tổ chức bộ nhớ dữ liệu

Bộ nhớ dữ liệu ñược phân chia thành

nhiều dãy bank chứa các thanh ghi mục ñích

chung (GPRs) và các thanh ghi chức năng ñặc

biệt (SFRs) Các bit RP1 (STATUS<6>) và

RP0 (STATUS<5>) là các bit lựa chọn bank

Mỗi bank mở rộng lên ñến 0x7F (128 byte)

Các vị trí thấp của mỗi bank ñược dành riêng

cho các thanh ghi chức năng ñặc biệt Phía

trên các thanh ghi chức năng ñặc biệt là các

thanh ghi mục ñích chung, làm việc như RAM

tĩnh Tất cả các bank làm việc ñều chứa các thanh ghi chức năng ñặc biệt Một số thanh

ghi chức năng ñặc biệt ñược sử dụng thương xuyên từ một bank này có thể ñược ánh xạ

trong một bank khác ñể rút gọn mã và truy cập nhanh hơn

- Tệp thanh ghi mục ñích chung

Tệp thanh ghi có thể ñược truy cập hoặc trực tiếp, hoặc gián tiếp, thông qua thanh

ghi chọn lựa tệp (FSR)

Trang 16

Hình 2-3: BẢN ðỒ TỆP THANH GHI PIC16F877A

Trang 17

- Các thanh ghi chức năng ñặc biệt

Các thanh ghi chức năng ñặc biệt là các thanh ghi ñược dùng bởi CPU và các module ngoại vi cho việc ñiều khiển các hoạt ñộng mong muốn của thiết bị Các thanh ghi này ñược sử dụng như RAM tĩnh Bảng 1 liệt kê các thanh ghi này Các thanh ghi chức năng ñặc biệt có thể ñược nhóm vào 2 tập hợp: lõi(CPU) và ngoại vi Các thanh ghi kết hợp với các chức năng lõi ñược trình bày chi tiết trong mục này Các thanh ghi liên quan ñến hoạt ñộng của các tính năng ngoại vi ñược trình bày chi tiết trong mục các tính năng ngoại vi

Bảng 1: BẢNG TÓM TẮT THANH GHI CHỨC NĂNG ðẶC BIỆT

Trang 18

Bảng 1: BẢNG TÓM TẮT THANH GHI CHỨC NĂNG ðẶC BIỆT(tiếp)

Trang 19

Bảng 1: BẢNG TÓM TẮT THANH GHI CHỨC NĂNG ðẶC BIỆT(tiếp)

2.2.2.5.Tập lệnh

Hệ lệnh PIC16 là loại trực giao cao và gồm 3 loại cơ bản:

• Nhóm lệnh thanh ghi ñịnh hướng Byte

• Nhóm lệnh thanh ghi ñịnh hướng Bit

• Nhóm lệnh ñiều khiển và literal

Mỗi lệnh PIC16 là một từ 14 bit ñược ñưa vào trong mã lệnh chỉ rõ loại lệnh và một hoặc nhiều toán hạng sau ñó chỉ rõ hoạt ñộng của lệnh Khuôn dạng của mỗi loại ñược trình bày ở hình 3, các trường mã lệnh khác ñược tóm tắt ở bảng 2

Trang 20

Bảng 3 liệt kê các lệnh ñược nhận dạng bởi bộ hợp dịch MPASM Với các lệnh thanh ghi ñịnh hướng byte, ‘f’ là một thanh ghi tệp ñược chỉ ñịnh và ‘d’ mô tả một vị trí ñích ñược chỉ ñịnh Thanh ghi tệp ñược chỉ ñịnh rõ là thanh ghi ñược sử dụng trong lệnh Vị trí ñích ñược chỉ ñịnh rõ là nơi mà kết quả của công việc ñược ñặt vào Nếu ‘d’ là 0, kết quả ñược ñặt vào thanh ghi W Nếu ‘d’ là 1, kết quả ñược ñặt vào thanh ghi ñược chỉ rõ ở trong lệnh Với các lệnh thanh ghi ñịnh hướng bit, ‘b’ mô tả một trường bit ñược chỉ ñịnh lựa chọn bit ñược tác ñộng bởi công việc, trong khi ‘f’ mô tả ñịa chỉ của tệp ở nơi mà bit ñược xác ñịnh Với các lệnh ñiều khiển và literal, ‘k’ mô tả một giá trị tức thời hoặc hằng

số 8 hay 11 bit Một vòng lệnh gồm 4 chu kỳ dao ñộng; cho tần số bộ dao ñộng là 4MHz, thời gian thực hiện một lệnh bình thường là 1 µs Tất cả các lệnh ñược thực hiện trong vòng một vòng lệnh ñơn, trừ lệnh kiểm tra ñiều kiện ñúng, hoặc bộ ñếm chương trình bị thay ñổi do kết quả của một lệnh khác Khi xảy ra trường hợp này, việc thực hiện lấy 2 vòng lệnh với vòng thứ hai ñược thực hiện như là một lệnh NOP

Tất cả các ví dụ lệnh sử dụng khuôn dạng ‘0xhh’ ñể mô tả số hexadecimal, ở ñây

‘h’ là kí hiệu của một chữ số hexadecimal

HOẠT ðỘNG ðỌC-CHỈNH SỬA-GHI

Các lệnh chỉ rõ thanh ghi tệp như là một phần của lệnh thực hiện hoạt ñộng ñọc - chỉnh sửa – ghi (R-M-W) Thanh ghi ñược ñọc, dữ liệu ñược chỉnh sửa, kết quả ñược lưu trữ tùy theo lệnh hoặc ñích ñược chỉ ñịnh ‘d’ Một hoạt ñộng ñọc ñược thực hiện trên thanh ghi cho dù lệnh viết ñến thanh ghi ñó

Ví dụ, lệnh “CLRF PORTB” sẽ ñọc portB, xóa tất cả các bit dữ liệu, sau ñó ghi kết quả trở lại portB Ví dụ này có kết quả không tính trước ñiều kiện làm cho cờ RBIF bị xóa

Bảng 2: Mô tả trường mã lệnh

f ðịa chỉ tệp thanh ghi(0x00->0x7F)

W Thanh ghi làm việc (Bộ tích lũy)

b ðịa chỉ bit trong thanh ghi tệp 8 bit

k Trường số thực, dữ liệu hằng hoặc nhãn

Trang 21

f = 7 bit ñịa chỉ thanh ghi

* Nhóm lệnh thanh ghi ñịnh hướng bit

OPCODE b(BIT#) f(File #)

b = 3 bit ñịa chỉ bit

f = 7 bit ñịa chỉ thanh ghi

* Nhóm lệnh ñiều khiển và literal

k = giá trị tức thời 11 bit

x Vị trí không cần lưu ý(= 0 hoặc 1)

d Chọn ñích ñến; d=0: lưu kết quả trong W, d=1: lưu kết quả trong thanh ghi tệp f.Mặc ñịnh là d=1

Trang 22

Bảng 3: Hệ lệnh PIC 16F877A

* Nhóm lệnh thanh ghi ñịnh hướng byte

Mã lệnh 14 bit Mnemonic,

toán hạng Mô tả

Chu

kỳ Msb Lsb

Ảnh hưởng trạng thái

Chú

ý ADDWF f,d Cộng w và f 1 00 0111 dfff ffff C,DC,Z 1.2 ANDWF f,d And w và f 1 00 0101 dfff ffff Z 1,2 CLRF f Xóa f 1 00 0001 1fff ffff Z 2 CLRW - Xóa w 1 00 0001 0xxx xxxx Z

COMF f Bù f (ñảo f) 1 00 1001 dfff ffff Z 1,2 DECF f,d Giảm f 1 00 0011 dfff ffff Z 1,2 DECFSZ f,d Giảm f, nhảy cách nếu = 0 1(2) 00 1011 dfff ffff 1,2,3 INCF f,d Tăng f 1 00 1010 dfff ffff Z 1,2 INCFSZ f,d Tăng f, nhảy cách nếu = 0 1(2) 00 1111 dfff ffff 1,2,3 IORWF f,d Phép OR w và f 1 00 0100 dfff ffff Z 1,2 MOVF f,d Sao chép f 1 00 1000 dfff ffff Z 1,2 MOVWF f Sao chép w vào f 1 00 0000 1fff ffff

NOP - Không làm gì cả 1 00 0000 0xx0 0000

RLF f,d Quay trái f qua cờ C(carry) 1 00 1101 dfff ffff C 1,2 RRF f,d Quay phải f qua cờ C 1 00 1100 dfff ffff C 1,2 SUBWF f,d Trừ w cho f 1 00 0010 dfff ffff C,CD,Z 1,2 SWAPF f,d Hoán ñổi các nibble trên f 1 00 1110 dfff ffff 1,2 XORWF f,d XOR w với f 1 00 0110 dfff ffff Z 1,2

* Nhóm lệnh thanh ghi ñịnh hướng bit

Mã lệnh 14 bit Mnemonic,

toán hạng Mô tả

Chu

kỳ Msb Lsb

Ảnh hưởng trạng thái

Chú

ý BCF f,d Xóa bit f 1 01 00bb bfff ffff 1.2 BSF f,d ðặt bit f 1 01 01bb bfff ffff 1,2 BTFSC f,b Kiểm tra bit,nhảy nếu bị xóa 1(2) 01 10bb bfff ffff 3 BTFSS f,b Kiểm tra bit,nhảy nếu ñược ñặt 1(2) 01 11bb bfff ffff 3

Trang 23

* Nhóm lệnh ñiều khiển và giá trị thực

Mã lệnh 14 bit Mnemonic,

toán hạng Mô tả

Chu

kỳ Msb Lsb

Ảnh hưởng trạng thái

Chú

ý ADDLW k Cộng giá trị tức thời vào w 1 11 111x kkkk kkkk C,DC,Z

ANDLW k AND giá trị tức thời vào w 1 11 1001 kkkk kkkk Z

CALL k Gọi chương trình con 2 10 0kkk kkkk kkkk

CLRWDT - Xóa bộ ñịnh thời watchdog 1 00 0000 0110 0100 TO’, PD’

GOTO k Nhảy ñến ðịa chỉ 2 10 1kkk kkkk kkkk

IORLW k OR giá trị tức thời với w 1 11 1000 kkkk kkkk Z

MOVLW k Sao chép giá trị tức thời vào w 1 11 00xx kkkk kkkk

RETFIE - Trở về từ ngắt 2 00 0000 0000 1001

RETLW k Trả về giá trị tức thời trong w 2 11 01xx kkkk kkkk

RETURN - Trở về từ chương trình con 2 00 0000 0000 1000

SLEEP - ði vào chế ñộ nghỉ 1 00 0000 0110 0011 TO’,PD’

SUBLW k Trừ w cho giá trị tức thời 1 11 110x kkkk kkkk C,DC,Z

XORLW k XOR giá trị tức thời với w 1 11 1010 kkkk kkkk Z

Trang 24

3 GIỚI THIỆU KIT PICDEM 2 PLUS VÀ MPLAB TOOLS

• GIỚI THIỆU PICDEM2 PLUS

• GIỚI THIỆU MPLAB TOOLS

===================================================================== 3.1 Giới thiệu PICDEM2 PLUS

3.1.1 PICDEM2 PLUS BOARD

Hình 4: PICDEM 2 BOARD

- The PICDEM 2 Plus Demonstration Board has the following hardware features:

• 1 18, 28 and 40-pin DIP sockets (Although three sockets are provided, only one

• device may be used at a time.)

• 2 On-board +5V regulator for direct input from 9V, 100 mA AC/DC wall adapter

or

• 9V battery, or hooks for a +5V, 100 mA regulated DC supply

• 3 RS-232 socket and associated hardware for direct connection to an RS-232

Trang 25

• 5 5 KΩ potentiometer for devices with analog inputs

• 6 Three push button switches for external stimulus and Reset

• 7 Power-on indicator LED

• 8 Four LEDs connected to PORTB

• 9 Jumper J6 to disconnect LEDs from PORTB

• 10 4 MHz canned crystal oscillator

• 11 Unpopulated holes provided for crystal connection

• 12 32.768 kHz crystal for Timer1 clock operation

• 13 Jumper J7 to disconnect on-board RC oscillator (approximately 2 MHz)

• 14 32K x 8 Serial EEPROM

• 15 LCD display

• 16 Piezo buzzer

• 17 Prototype area for user hardware

• 18 Microchip TC74 thermal sensor

3.1.2 PIC KIT 2 PROGRAMMER

Step 1: Tìm trên Desktop hoặc từ Start\All Program\Microchip và chọn biểu tượng

Step 2: Chương trình sau khi ñược khởi ñộng sẽ hiển thị một cửa sổ như sau:

Trang 26

- Tại vùng chỉ thị hiển thị một thông báo “PICkit 2 not found.Check USB connections and use Tools->Check Communication to retry”báo cho người sử dụng biết bộ PICkit2 chưa ñược kết nối, yêu cầu kiểm tra kết nối USB Ở ñây có các trường hợp có thể xảy ra như sau:

+ Chưa kết nối bộ PICkit 2 với PC

+ Có vấn ñề giữa giao tiếp USB trên PC hoặc trên PICkit 2

+ Có vấn ñề với bộ PICkit 2

Step 3: Sau khi kết nối PICkit2 với PC thông qua cổng USB thực hiện việc kiểm tra truyền thông giữa PICkit2 với phần mềm trên PC, vào Tools\Check Communication, tai vùng chỉ thị xuất hiện thông báo “PICkit 2 found and connected” báo cho người sử dụng biết ñã kết nối xong

Vùng chỉ thị

Trang 27

Step4: Tiếp theo, kết nối Board Demo vào PICkit 2 qua kết nối RJ11, chọn Tools\Check Communication, phần mềm sẽ thông báo cho ta biết một số thông tin về:

Ngày đăng: 02/07/2015, 18:34

HÌNH ẢNH LIÊN QUAN

Hỡnh 1. Sơ ủồ chõn PIC16F877A  2.2.2.2. Cỏc thụng số ủỏng quan tõm - TÀI LIỆU THÍ NGHIỆM KỸ THUẬT VI ĐIỀU KHIỂN VÀ VI XỬ LÝ
nh 1. Sơ ủồ chõn PIC16F877A 2.2.2.2. Cỏc thụng số ủỏng quan tõm (Trang 12)
Hỡnh 2. Sơ ủồ khối PIC16F877A - TÀI LIỆU THÍ NGHIỆM KỸ THUẬT VI ĐIỀU KHIỂN VÀ VI XỬ LÝ
nh 2. Sơ ủồ khối PIC16F877A (Trang 14)
Hình 2-3: BẢN ðỒ TỆP THANH GHI PIC16F877A - TÀI LIỆU THÍ NGHIỆM KỸ THUẬT VI ĐIỀU KHIỂN VÀ VI XỬ LÝ
Hình 2 3: BẢN ðỒ TỆP THANH GHI PIC16F877A (Trang 16)
Bảng 1: BẢNG TÓM TẮT THANH GHI CHỨC NĂNG ðẶC BIỆT - TÀI LIỆU THÍ NGHIỆM KỸ THUẬT VI ĐIỀU KHIỂN VÀ VI XỬ LÝ
Bảng 1 BẢNG TÓM TẮT THANH GHI CHỨC NĂNG ðẶC BIỆT (Trang 17)
Bảng 1: BẢNG TÓM TẮT THANH GHI CHỨC NĂNG ðẶC BIỆT(tiếp) - TÀI LIỆU THÍ NGHIỆM KỸ THUẬT VI ĐIỀU KHIỂN VÀ VI XỬ LÝ
Bảng 1 BẢNG TÓM TẮT THANH GHI CHỨC NĂNG ðẶC BIỆT(tiếp) (Trang 18)
Bảng 1: BẢNG TÓM TẮT THANH GHI CHỨC NĂNG ðẶC BIỆT(tiếp) - TÀI LIỆU THÍ NGHIỆM KỸ THUẬT VI ĐIỀU KHIỂN VÀ VI XỬ LÝ
Bảng 1 BẢNG TÓM TẮT THANH GHI CHỨC NĂNG ðẶC BIỆT(tiếp) (Trang 19)
Bảng 3 liệt kờ cỏc lệnh ủược nhận dạng bởi bộ hợp dịch MPASM. Với cỏc lệnh thanh  ghi ủịnh hướng byte, ‘f’ là một thanh ghi tệp ủược chỉ  ủịnh và ‘d’ mụ tả một vị trớ  ủớch  ủược chỉ ủịnh - TÀI LIỆU THÍ NGHIỆM KỸ THUẬT VI ĐIỀU KHIỂN VÀ VI XỬ LÝ
Bảng 3 liệt kờ cỏc lệnh ủược nhận dạng bởi bộ hợp dịch MPASM. Với cỏc lệnh thanh ghi ủịnh hướng byte, ‘f’ là một thanh ghi tệp ủược chỉ ủịnh và ‘d’ mụ tả một vị trớ ủớch ủược chỉ ủịnh (Trang 20)
Hỡnh 3: Dạng ủầy ủủ cho cỏc lệnh - TÀI LIỆU THÍ NGHIỆM KỸ THUẬT VI ĐIỀU KHIỂN VÀ VI XỬ LÝ
nh 3: Dạng ủầy ủủ cho cỏc lệnh (Trang 21)
Bảng 3: Hệ lệnh PIC 16F877A - TÀI LIỆU THÍ NGHIỆM KỸ THUẬT VI ĐIỀU KHIỂN VÀ VI XỬ LÝ
Bảng 3 Hệ lệnh PIC 16F877A (Trang 22)
Hình 4: PICDEM 2 BOARD - TÀI LIỆU THÍ NGHIỆM KỸ THUẬT VI ĐIỀU KHIỂN VÀ VI XỬ LÝ
Hình 4 PICDEM 2 BOARD (Trang 24)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w