You are on page 1of 30

Vi iu khin PIC

Ni dung:
Gii thiu v vi iu khin PIC, cc ng dng ca PIC Vi iu khin PIC16F877A

GII THIU V VI IU KHIN PIC


PIC c sn xut bi cng ty Microchip Technology

"Programmable Intelligent Computer" l mt sn phm ca hng General Instruments Dng sn phm u tin l PIC1650 PIC 8-bit c pht trin vo khong nm 1975

Kin trc Von Neuman v kin trc Havard

PIC c kin trc Havard

Tp lnh trong kin trc Havard c th c ti u ty theo yu cu kin trc ca vi iu khin m khng ph thuc vo cu trc d liu

RISC v CISC
RISC( Reduced Instruction Set Computer) Tp lnh rt gn Cc lnh c kch c 12, 14, 16 bit CISC (Complex Instruction Set Computer)

Tp lnh phc tp : s lnh ln


Cc lnh c kch c bi ca 8 bit

Cc loi chip PIC


PIC10 PIC12 PIC14 PIC16

PIC18
PIC24 DSPIC30, dsPIC33, PIC32

c im cc dng PIC
8/16/32 bit CPU, xy dng theo kin trc Harvard c sa i Flash v ROM c th tu chn t 256 byte n 256 Kbyte Cc cng Xut/Nhp (I/O ports) (mc logic thng t 0V n 5.5V, ng vi logic 0 v logic 1) 8/16 Bit Timer Cng ngh Nanowatt Cc chun Giao Tip Ngoi Vi Ni Tip ng b/Khng ng b USART, AUSART, EUSARTs

c im cc dng PIC
B chuyn i ADC Analog-to-digital converters 10/12 bit B so snh in p (Voltage Comparators) Cc module Capture/Compare/PWM LCD MSSP Peripheral dng cho cc giao tip IC, SPI, v IS B nh ni EEPROM - c th ghi/xo ln ti 1 triu ln Module iu khin ng c, c encoder H tr giao tip USB H tr iu khin Ethernet

c im cc dng PIC
H tr giao tip CAN-Controller-area network H tr giao tip LIN- Local Interconnect Network H tr giao tip IrDA-The Infrared Data Association Mt s dng c tch hp b RF (PIC16F639, v rfPIC) KEELOQ M ho v gii m DSP nhng tnh nng x l tn hiu s (dsPIC)

PIC16F877A

B nh chng trnh

B nh flash, dung lng b nh 8K word (1 word = 14 bit) c phn thnh nhiu trang (t page 0 n page 3).

B nh d liu

THANH GHI CHC NNG C BIT SFR THANH GHI MC CH CHUNG GPR

Lp trnh cho PIC


Phn mm CCS

To Project trong CCS

PIC Wizard

T to mu chng trnh
#include <16f877a.h> #include <def_877a.h> Cn thit #device *=16 ADC=8 #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP #use delay(clock=20000000) #use rs232(baud=9600,parity=N,xmit=PIN_B5,rcv=PIN_B2,bits=9) #use i2c(Master,Fast,sda=PIN_B1,scl=PIN_B4) #int_xxx // Khai bao chuong trinh ngat xxx_isr() { // Code here } void Ten_chuong_trinh_con(Ten_Bien) { // Code here } void main() { // Enter code here! }

T to mu chng trnh

BI 1: I/O

Mc ch: Input /Ouput ng dng

PORTA

PORTB

PORTC

PORTD

PORTE

Giao tip vi cc led

#include <def_877a.h>

S thut ton
Chng trnh chnh

Sng Led

Tr 1 giy

Tt Led

Tr 1 giy

Chng trnh

Bin dch( n F9)

Np chng trnh bng phn mm Winpic 800

Np Bootloader

File Hex

Nhn nt Reset

Bi tp

You might also like