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

TÌM HIỂU VI XỬ LÝ MICROCHIP PIC 16F877A

57 763 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 57
Dung lượng 1,55 MB

Nội dung

TÌM HIỂU VI XỬ LÝ MICROCHIP PIC 16F877A

Trang 1

KIẾN TRÚC MÁY TÍNH

Đềề tài:

TÌM HIỂU VI XỬ LÝ MICROCHIP PIC 16F877A

Thực hiện: Nhóm 4

Trang 2

 Tổng quan về vi điều khiển PIC

 Vi điều khiển PIC16F877A

Nội dung

Trang 3

 PIC (Programable Intelligent Computer) do hãng General Instrument đặt tên cho vi điều khiển đầu tiên của họ: PIC1650 được thiết kế để dùng làm các thiết bị ngoại vi cho vi điều khiển CP1600.

 Vi điềều khiềển này sau đó đượợc nghiền cưứu và phát triềển thềm tưề đó hình thành nền dòng vi điềều khiềển PIC ngày nay.

Tổểng quan vềề vi điềều khiềển PIC

Trang 4

 Mổợt sổứ ưu điềểm cuểa hoợ vi điềều khiềển PIC

◦ Hoợ vi điềều khiềển này có thềể tìm mua dềễ dàng taợi thiợ trượềng Viềợt Nam.

◦ Giá thành khổng quá đắứt.

◦ Có đầềy đuể tính nắng cuểa mổợt vi điềều khiềển khi hoaợt đổợng đổợc lầợp.

◦ Là mổợt sượ bổể sung rầứt tổứt vềề kiềứn thưức cũng như vềề ưứng duợng cho hoợ vi điềều khiềển mang tính truyềền thổứng: hoợ vi điềều khiển 8501.

Tổểng quan vềề vi điềều khiềển PIC

Trang 5

 Mổợt sổứ ưu điềểm cuểa hoợ vi điềều khiềển PIC

◦ Hiềợn nay taợi Viềợt Nam cũng như trền thềứ giợứi, hoợ vi điềều khiềển này đượợc sưể duợng khá rổợng rãi Điềều này taợo nhiềều thuầợn lợợi trong quá trình tìm hiềểu và phát triềển các ưứng duợng.

◦ Sượ hổễ trợợ tưề nhà saển xuầứt vềề trình biền diợch, các cổng cuợ lầợp trình, naợp chượng trình tưề đợn giaển đềứn phưức taợp.

◦ Các tính nắng đa daợng cuểa vi điềều khiềển PIC, và các tính nắng này khổng ngưềng đượợc phát triềển.

Tổểng quan vềề vi điềều khiềển PIC

Trang 6

 Kiềứn trúc PIC

◦ Tổể chưức phầền cưứng cuểa PIC đượợc thiềứt kềứ theo theo kiềứn trúc Harvard

◦ Qua viềợc tách rợềi bổợ nhợứ chượng trình và bổợ nhợứ dưễ liềợu, CPU có thềể cùng mổợt lúc truy xuầứt caể hai bổợ nhợứ, giúp tắng tổức đổợ xưể lý cuểa vi điềều khiềển lền gầứp đổi

Tổểng quan vềề vi điềều khiềển PIC

Trang 7

 Xưể lý lềợnh theo cợ chềứ Pipelining, mổợt chu kỳ lềợnh cuểa vi điềều khiềển seễ bao gổềm 4 xung clock.

Tổểng quan vềề vi điềều khiềển PIC

Trang 8

 Ngổn ngưễ lầợp trình cho PIC

◦ Ngổn ngưễ lầợp trình cho PIC rầứt đa daợng Ngổn ngưễ lầợp trình cầứp thầứp có MPLAB, 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,

Tổểng quan vềề vi điềều khiềển PIC

Trang 9

 Maợch naợp cho PIC

◦ Có thềể sưể duợng các maợch naợp đượợc cung cầứp bợểi nhà saể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 saển phầểm này đềể naợp cho vi điềều khiềển khác thổng qua chượng trình MPLAB

◦ Dòng saển phầểm chính thổứng này có ưu thềứ là naợp đượợc cho tầứt caể 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 saển phầểm.

Tổểng quan vềề vi điềều khiềển PIC

Trang 10

 Maợch naợp cho PIC

◦ Còn có rầứt nhiềều maợch naợp đượợc thiềứt kềứ dành cho vi điềều khiềển PIC: JDM programmer, WARP-13A và MCP-USB, P16PRO40, Universal…

◦ Các maợch naợp kềể trền có ưu điềểm là đợn giaển, reể tiềền, hoàn toàn có thềể tượ lắứp ráp, và moợi thổng tin maợch naợp đềều dềễ dàng tìm đượợc trền Internet.

◦ Tuy nhiền các maợch naợp trền có nhượợc điềểm là haợn chềứ vềề sổứ vi điềều khiềển đượợc hổễ trợợ, mổễi maợch naợp cầền đượợc sưể duợng vợứi mổợt chượng trình naợp thích hợợp.

Tổểng quan vềề vi điềều khiềển PIC

Trang 11

 Vi điều khiển PIC16F877A

Phần 2

Trang 12

 Mổợt vài thổng sổứ cuểa PIC16F877A

◦ Đầy là vi điềều khiềển thuổợc hoợ PIC16Fxxx vợứi tầợp lềợnh gổềm 35 lềợnh Mổễi lềợnh có đổợ dài 14bit và đềều đượợc thược thi trong mổợt chu kì xung clock Tổức đổợ hoaợt đổợng tổứi đa cho phép là 20MHz vợứi mổợt chu kì lềợnh là 200ns.

◦ Bổợ nhợứ chượng trình 8Kx14bit, bổợ nhợứ dưễ liềợu 368x8 byte RAM và bổợ nhợứ dưễ liềợu EEPROM vợứi dung lượợn g 256x8 byte Sổứ PORT I/O là 5 vợứi 33 pin I/O.

Vi điềều khiềển PIC16F877A

Trang 13

 Mổợt vài thổng sổứ cuểa PIC16F877A

◦ Bền caợnh đó là mổợt vài đắợc tính khác cuểa vi điềều khiềển như:

 Bổợ nhợứ flash vợứi khaể nắng ghi xóa đượợc 100.000 lầền.

 Bổợ nhợứ EEPROM vợứi khaể nắng ghi xóa đượợc 1.000.000 lầền.

 Dưễ liềợu bổợ nhợứ EEPROM có thềể lưu trền 40 nắm.

 Khaể nắng tượ naợp chượng trình vợứi sượ điềều khiềển cuểa phầền mềềm.

 Naợp đượợc chượng trình ngay trền maợch ICSP thổng qua 2 chần.

 Watchdog Timer vợứi bổợ dao đổợng trong.

 Chưức nắng baểo mầợt mã chượng trình.

 Chềứ đổợ sleep.

 Có thềể hoaợt đổợng vợứi nhiềều daợng Oscillator (bổợ dao đổợng) khác nhau.

Vi điềều khiềển PIC16F877A

Trang 14

Sợ đổề khổứi

Trang 16

Sợ đổề bổợ nhợứ chượng trình

Trang 17

Sơ đồ bộ nhớ dữ liệu

Trang 18

 Là phương tiện để vi điều khiển tương tác với bên ngoài và thực hiện chức năng chính của nó

 Một số chân còn có chức năng khác

 Tùy cách bố trí và chức năng mà số chân khác nhau.

 Có 5 cổng: PORTA, PORTB, PORTC, PORTD, PORTE

 Chức năng từng chân trong mỗi cổng do các thanh ghi SFR liên quan đến nó điều khiển.

◦ Muốn xác lập chân đó là input: set bit điều khiển ứng với chân đó trong thanh ghi TRISX tương ứng

◦ Muốn xác lập chân đó là output: clear bit điều khiển

Các cổng nhập xuất

Trang 20

 Bộ định thời, bộ đếm của vi điều khiển.

 Timer0: Bộ đếm, bộ định thời 8 bit, lưu trong thanh ghi TMR0

◦ Chế độ Timer: clear bit TOSC (OPTION_REG<5>) Khi đó giá trị thanh ghi TMR0 sẽ tăng theo từng chu kì đồng hồ

◦ Chế độ counter: set bit TOSC (OPTION_REG<5>), khi đó xung tác động lên bộ đếm được lấy từ chân RA4/TOCK1

 Timer1: Bộ đếm, bộ định thời 16 bit, lưu trong 2 thanh ghi TMR1H:TMR1L

 Timer2: Bộ đếm, bộ định thời 8 bit, lưu trong thanh ghi TMR2

Timer0, Timer1, Timer2

Trang 21

 Bộ chuyển đổi giữa tín hiệu tương tự và tín hiệu số

 8 ngõ vào analog Hiệu điện thế chuẩn VREF có thể do VDD,VSS hay được xác lập trên 2 chân

RA2, RA3

 Kết quả là 10 bit số tương ứng, được lưu trong 2 thanh ghi ADRESH:ADRESL

ADC(Analog to Digital Converter)

Trang 22

 Gồm 2 bộ so sánh tín hiệu analog, được đặt ở PORTA

 Ngõ vào: chân RA3:RA0

 Ngõ ra: RA4:RA5

 Thanh ghi điều khiển bộ so sánh là CMCON

COMPARATOR

Trang 23

 Gồm các thao tác trên các xung đếm được cung cấp bởi bộ đếm Timer1 và Timer2.

 Capture: khi có 2 hiện tượng xảy ra ở pin RC2/CCP1, giá trị của thanh TMR1 sẽ được đưa vào

thanh CCPR1(CPPR2)

 Compare: giá trị trong thanh CCPRx sẽ thường xuyên được so sánh với giá trị trong thanh

TMR1.

 PWM(Pulse Width Modulation – khối điều chế độ rộng xung): tín hiệu sau điều chế sẽ được

đưa ra các pin của khối CCP (cần ấn định pin này là out)

CCP(Capture/Compare/PWM)

Trang 24

 USART(Universal Synchronuos Asynchronous Receiver Transmitter) – Giao tiếp nhận phát

đồng bộ/không đồng bộ

 MSSP(Master Synchronous Serial Port)

 Giao diện đồng bộ nối tiếp dùng với các thiết bị ngoại vi hay các vi điều khiển khác

Giao tiếp nối tiếp

Trang 25

 Cổng giao tiếp song song, thông qua PORTD và PORTE

 Chịu sự điề khiển của thiết bị ngoài qua các pin của PORTE

 Dữ liệu được đọc/ghi thông qua PORTD

PSP(Parallel slave port)

Trang 26

 Các bit lựa chọn đặc tính của CPU tại địa chỉ 2007h, chỉ có thể truy xuất trong quá trình lập

trình cho vi điều khiển

Một số đặc tính của CPU

Trang 27

 Vài nét sơ lược về tập lệnh của vi điều khiển PIC

 Tập lệnh của vi điều khiển PIC

Tập lệnh của vi điều khiển PIC

Trang 28

 Pic là vi điều khiển có tập lệnh rút gọn RISC, gồm 35 lệnh và được chia làm 3 nhóm cơ bản:

1. Nhóm lệnh thao tác trên bit

2. Nhóm lệnh thao tác trên byte

3. Nhóm lệnh điều khiển

 Mỗi lệnh được mã hóa thành 14bit word bao gồm các bit opcode và các bit mô tả hay vài tham số dòng lệnh

Vài nét sơ lược về tập lệnh

Trang 29

Vài nét sơ lược về tập lệnh (tiếp)

 Nhóm lệnh thao tác trên byte có 2 tham số: d và f

• d=0 kết quả đưa vào thanh ghi W

• d=1 kết quả được đưa vào thanh ghi được mô tả bởi

Trang 30

 Nhóm lệnh điều khiển chỉ có 1 tham số duy nhất là k để mô tả tác động của vi điều khiển

 Mỗi lệnh được vi điều khiển thực thi xong trong vòng 1 chu kỳ lệnh Lệnh làm thay đổi giá trị bộ đếm chương trình cần 2 chu kỳ

lệnh Chu kỳ lệnh gồm 4 xung clock của oscillator

Vài nét sơ lược về tập lệnh (tiếp)

Trang 31

1 Lềợnh ADDLW

◦ Cú pháp: ADDLW k (0-255)

◦ Tác duợng: cổợng giá triợ k vào thanh ghi W

◦ Bit traợng thái: C,DC,Z

2 Lềợnh ADDWF

◦ Cú pháp: ADDLW f,d

◦ Tác duợng: cổợng 2 giá triợ thanh ghi W và f Kềứt quaể chưứa vào W(d=0) và f(d=1)

◦ Bit traợng thái: C,DC,Z

Tầợp lềợnh cuểa vi điềều khiềển PIC

Trang 32

3 Lềợnh ANDLW

◦ Cú pháp: ANDLW k (0-255)

◦ Tác duợng: thược hiềợn phép toán AND giưễa thanh ghi W và giá triợ k Kềứt quaể chưứa trong thanh ghi W

◦ Bit traợng thái: Z

4 Lềợnh ANDWF

◦ Cú pháp: ANDW f,d (f:0-127, d:0,1)

◦ Tác duợng: thược hiềợn phép toán AND giưễa các giá triợ chưứa trong 2 thanh ghi W và f Kềứt quaể đượợc

đưa và thanh ghi W (d=0) hoắợc thanh ghi f (d=1)

◦ Bit traợng thái: Z

Tầợp lềợnh cuểa vi điềều khiềển PIC (tiềứp)

Trang 33

5 Lệnh BCF

◦ Cú pháp: BCF f,b (f: 0-127, b: 0-7)

◦ Tác dụng: xóa bit b trong thanh ghi f về giá trị 0

◦ Bit trạng thái: không có

6 Lệnh BSF

◦ Cú pháp: BSF f,b (f: 0-127, b: 0-7)

◦ Tác dụng: set bit b trong thanh ghi f

◦ Bit trạng thái: không có

Tập lệnh của vi điều khiển PIC (tiếp)

Trang 35

9 Lệnh CALL

◦ Cú pháp: CALL k (0-2047)

◦ Tác dụng: gọi một chương trình con Trước hết, địa chỉ quay trở về từ chương trình con (PC+1) được cất vào Stack, giá trị mới

được đưa vào bộ đếm gồm 11bit của biến k và 2bit PCLATH<4:3>

◦ Bit trạng thái: không có

Trang 38

15 Lệnh DECFSZ

◦ Cú pháp: DECFSZ f,d (f: 0-127, d:0,1)

◦ Tác dụng: giá trị thanh ghi f được giảm đi 1 đơn vị Nếu kết quả sau khi giảm khác 0, lệnh tiếp theo được thực thi, nếu kết quả bằng

0 lệnh tiếp theo được bỏ qua thay vào đó là lệnh NOP Kết quả được đưa vào thanh ghi W(d=0) hoặc f(d=1)

◦ Bit trạng thái: không có

16 Lệnh GOTO

◦ Cú pháp: GOTO k (k: 0-2047)

◦ Tác dụng: nhảy tới 1 label được định nghĩa bởi tham số k và 2bit PCLATH<4:3>

◦ Bit trạng thái: không có

Tập lệnh của vi điều khiển PIC (tiếp)

Trang 39

◦ Tác dụng: tăng giá trị thanh ghi f lên 1 đơn vị Nếu kết quả khác 0, lệnh tiếp theo được thực thi Nếu kết quả bằng 0 lệnh tiếp theo

được bỏ qua thay vào đó bằng lệnh NOP Kết quả sẽ được đưa vào thanh ghi f(d=1) hoặc thanh ghi W(d=0)

◦ Bit trạng thái: không có

Tập lệnh của vi điều khiển PIC (tiếp)

Trang 42

 Bit trạng thái: TO, PD

Tập lệnh của vi điều khiển PIC (tiếp)

Trang 44

27 Lệnh SWAP

.Cú pháp: SWAP f,d (0 ≤ f ≤ 127, d [0,1])∈

.Tác dụng: đảo 4 bit thấp với 4 bit cao trong thanh ghi F Kết quả được chứa trong thanh ghi W nếu d=0 hoặc thanh ghi F nếu d=1

.Bit trạng thái: không có

Trang 46

31 Lệnh INCLUDE

 Cú pháp: #INCLUDE <filename> hoặc #INCLUDE “filename”

 Tác dụng: đính kèm một file khác vào chương trình, tương tự như việc ta copy file đó vào vị trí xuất hiện lệnh INCLUDE Nếu dùng cú pháp <filename> thì file đình kèm là file hệ thống (sýtem file), nếu dùng cú pháp

“filename” thì file đính kèm là file của người sử dụng.

 Thông thường chương trình được đính kèm theo một “header file” chứa các thông tin định nghịa các biến (thanh ghi W, thanh ghi F, ) và các địa chỉ cảu các thanh ghi chức năng đặc biệt trong bộ nhớ dữ liệu Nếu không có header file, chương trình sẽ khó đọc và khó hiểu hơn.

32 Lệnh CONSTANT

 Cú pháp: CONSTANT <name>=<value>

 Tác dụng: khai báo một hằng số, có nghĩa là khi phát hiện chuỗi kí tự “name” trong chương trình, trình biên dịch

sẽ tự động thay bằng chuỗi kí tự bằng giá trị “value” đã được định nghĩa trước đó.

Tập lệnh của vi điều khiển PIC (tiếp)

Trang 47

 Cú pháp: <name variable> SET <value>

 Tác dụng: gán giá trị cho một tên biến Tên của biến có thể thay đổi được trong quá trình thực thi chương trình

Tập lệnh của vi điều khiển PIC (tiếp)

Trang 48

35 Lệnh EQU

 Cú pháp: <name constant> EQU <value>

 Tác dụng: gán giá trị cho tên của tên của hằng số Tên của hằng số không thay đổi trong quá trình thực thi chương trình.

36 Lệnh ORG

 Cú pháp: ORG <value>

 Tác dụng: định nghĩa một địa chỉ chứa chương trình trong bộ nhớ chương trình của vi điều khiển.

Tập lệnh của vi điều khiển PIC (tiếp)

Trang 49

 Cú pháp: PROCESSOR <processor type>

 Tác dụng: định nghĩa vi điều khiển nào sử dụng chương trình.

Tập lệnh của vi điều khiển PIC (tiếp)

Trang 50

Cấu trúc của một chương trình ASSEMBLY viết cho vi điều khiển

PIC

Trang 52

Mô hình LED 7 đoạn

Trang 53

Anode

Bảng dữ liệu LED 7 đoạn

Trang 54

processor 16f877a

include <p16f877a.inc>

CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC &

_WRT_OFF & _LVP_OFF & _CPD_OFF

Ngày đăng: 14/08/2015, 22:18

TỪ KHÓA LIÊN QUAN

w