1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu vi điều khiển PIC 16F84A

24 927 3
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Nghiên Cứu Vi Điều Khiển Pic 16F84A
Tác giả Lờ Tấn Anh, Hứa Thị Hằng
Người hướng dẫn Huỳnh Minh Ngọc
Trường học Đại Học Công Nghiệp TP.HCM
Chuyên ngành Công Nghệ Điện Tử
Thể loại Bài Tiểu Luận
Năm xuất bản 2012
Thành phố TP.HCM
Định dạng
Số trang 24
Dung lượng 3,16 MB

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

Nội dung

Nghiên cứu vi điều khiển PIC 16F84A

Trang 1

BQ CONG THUONG TRUONG DAI HQC CONG NGHIEP TPHCM

KHOA CÔNG NGHỆ ĐIỆN TỬ

ole

BAI TIEU LUAN

NGHIEN CUU VI DIEU KHIEN PIC 16F84A

Giảng viên hướng dẫn : Huỳnh Minh Ngọc

Sinh viên thực hiện : Lê Tấn Anh(09286231)

Trang 2

MUC LUC

I GIỚI THIỆU KHÁI QUÁT VỀ PIC16F84A : :

1 Các đặctính 16FB4A

Ý nghĩa các chân của PIC 16FB4A

Các khối chức năng(Kết cAu bên trong) của PIC 16FB4A

e Flash Program Memory: có dung lượng 1024 thanh nhớ, loại rộng 14 bit (1Kx14) Ở đây ta cất giữ các mã lệnh của chượng trình nguồn, nó được truy cập theo mã địa chỉ có trong thanh ghỉ PC (Program Counter) Mã lệnh xuất ra trên thanh ghi Instruction Register

e Thanh ghỉ Program Counter: dùng ghỉ các địa chỉ của mã lệnh của bộ nhớ Flash ROM Trong

hoạt động, khi dàng lệnh nhảy đến các chương trình con, thì địa chỉ hiện tại sẽ được tạm thời cat giữ

trong các thanh ghỉ ngăn xắp, và chiều sâu ngăn xếp có 8 lớp (8 Level Stack,

4 Bộ nhớ Hash Program Memory- EEPROM

5 Bộnhớ RAM

6 ácthanhgửi

ILWNG DUNG QUA PIC 16F84A

1.Tập lệnh của PIC 16F84A

Trang 3

PIC 16F84A

GIỚI THIỆU KHÁI QUAT VE PIC 16F84A

1 Cac dac tinh 16F84A

Chỉ dùng 35 câu lệnh để viết tất cả các chương trình nguồn cho PIC Tất cả các

lệnh chỉ dùng một chu kì máy, còn các câu lệnh nhảy dùng hai chu kì máy Tốc độ vận hành dùng xung nhịp là 20MHz và chu kì máy 200ns

Bộ nhớ chương trình (Flash Program Memory) 1024 word, với bộ nhớ này có thể xóa ghi được 1000 lần, chiều rộng câu lệnh là 1 word 14 bít Xử lý dữ liệu ở dạng

8 bít tương ứng với 1 byte

ở mức 25mA, với nguồn nuôi trong khoảng 2V đến 5.5V Có bộ định thời Timer

0 (TMR0) dùng thanh đếm xung 8 bit, nên tối đa có thể đếm được 256 nhịp

PIC có thể lập trình và nạp ngay trên bo Có nhiều tùy chọn cho mạch dao động tạo xung nhịp chính

Có mode truy cập theo dịa chỉ trực tiếp, gián tiếp và địa chỉ tương đối Có mode bảo vệ mã (Code Protection), và mode sleep dùng tiết kiệm điện năng khi ở trạng

thái chờ

PIC có chức năng WDT- bộ đếm xung thời gian

2 Ý nghĩa các chân của PIC 16F84A

e _ Chân OSCI/CLKIN : là chân ngõ vào của mạch dao động thạch anh, dùng để định tần số xung nhịp, và cũng là ngõ vào của mạch tạo xung nhịp

Trang 4

¢ OSC2/CLKOUT : 1a chan ngé vào của dao động thạch anh, đồng thời cũng là ngõ ra của xung nhịp

e MCLR (Master Clear) : là chân reset, tác dụng của chân là trả lệnh về vị trí ban đầu và xác lập lại vị trí ban đầu cho các thanh ghi có chức năng đặc biệt

RA2 «+ «—> Ral

RAS 4—» Im] +—» RAO

RA4/TOCKI 4—> KỈ Im) +— OSC1/CLKIN

CLR —+ li]—> 0$02/0LK0UT

W§§ —>+ — Yoo

RB0/INT «—> ~——> Rt?

¢ Port A(RAO, RA1, RA2, RA3,RA4) : là cổng xuất nhập, có 5 bit

e RA4/TOCKI: là chân đa nhiệm, vừa là chân xuất nhập vừa là chân lấy xung

cho bộ định thời timer 0 Và chân này có cực máng để hở

¢ _ PortB từ RB0 đến RB7 : là cổng xuất nhập dữ liệu, có 8 bit

e RB0/INT: đây là chân đa nhiệm, ngoài là chân xuất nhập dữ liệu nó còn là chân phát động theo ngắt ngoài, nó có thể được lập trình để có trở kháng lớn dùng làm ngõ vào, nhập trạng thái ngoiaf vào PIC

¢ RB4, RBS: 1a chan xuất nhập, đồng thời là chân phát động ngắt theo sự thay

đôi trên các chân này

Trang 5

¢ RBG: la chin xuất nhập, và cũng là chân phát động ngắt theo sự thay đổi của

chân, có thể lập trình để đề phát xung nhịp cho truyền PIC ở dạng nối tiếp

¢ RB7: la chan xuất nhập, phát động ngắt theo sự thay đổi trên chân này, bên

cạnh đó nó còn có thể lập trình đề cho trao đổi dữ liệu

¢ VSS : la chan néi masse dé lay dòng

¢ VDD: la chan néi với nguồn dương từ 2V đến 5.5V

3 Các khối chức năng(Kết cấu bên trong) của PIC 16F84A

Sơ đồ khối của PIC 16F84A được trình bày như hình bên dưới, nó được sử dụng

dây chung 14 hàng và kết cấu phân ly dây chung số liệu 8 bít làm cho nó có thể tiến hành đồng thời viếc đọc và nhận các lệnh cũng như chấp hành lệnh, nâng cao được tốc độ vận hành.

Trang 6

SƠ ĐÔ KHOI KET CAU BEN TRONG PIC 16F84

Trang 7

Flash Program Memory: c6 dung lượng 1024 thanh nhớ, loại rộng 14 bít (IKx14) Ở đây ta cất giữ các mã lệnh của chượng trình nguồn, nó được truy cập theo mã địa chỉ có trong thanh ghi PC (Program Counter) Mã lệnh xuất ra trên thanh ghi Instruction Register

Thanh ghi Program Counter: ding ghi cdc dia chi cia ma lénh cia b6 nhớ Flash ROM Trong hoạt động, khi dùng lệnh nhảy đến các chương trình con,

thì địa chỉ hiện tại sẽ được tạm thời cất giữ trong các thanh ghỉ ngăn xếp, và chiều sâu ngăn xép có 8 lớp (8 Level Stack)

Ngăn xếp (Level Stack): dùng lưu giữ các mã địa chỉ của chương trình chính khi trong chưương trình có dàng lệnh nhảy Cát vào địa chỉ ngăn xếp ta dùng

lệnh Push và lấy địa chỉ ra từ ngăn xếp có thể dàng lệnh Pop

Thanh ghỉ mã lệnh( Instruction Register ): ở ngõ ra, mã lệnh có thể chuyển đến khối giải mã Instruction Decode & Control để tạo ra lệnh điều khiển Hay

chuyển đến khối xử lý địa chi da kénh Address Multiplex để truy cập các

thanh nhớ trong bộ nhớ RAM (File Register)

Khối giải mã (Instruction Decode & Control): xác định tính năng điều khiển trong câu lệnh, nó tác dụng vào khối định trạng thái cho IC Khối này gồm có

các chức năng: Power-up Timer, Oscillator Start-up Timer, Power-on Reset,

Watchdog Timer

Power-up Timer ding kich hoạt IC theo dong hé Timer

Oscillator Start-up Timer: dé lam mach dao động theo đồng hỗ Timer

Watchdog Timer: bộ định thời dùng vào ra mode theo déng hé Timer, la tinh

năng dùng tiết kiệm điện

Timing Generation: là khối tạo ra xung nhịp chính, tần số của xung nhịp thường định theo thạch anh PICI6F84A có thể hoạt động với xung nhịp

20MH:

Đồng hà Timer 0 (TMRO) dùng một thanh đếm 8 bit để tạo ra chức năng điều khiển theo thời gian Nó có thể đếm tối da 256 xung nhịp, khi thanh đếm đẩy

bit báo tràn sẽ chuyển lên mức 1

1O Port (gồm Port A có 5 chân và Port B có 8 chân) dàng xuất nhập dữ liệu Nhiều chân còn có tính đa nhiệm, nên ngoài chức năng xuất nhập dữ liệu nó

Trang 8

còn có các chức năng khác, như nhập xung đếm trên chân RA4/TOCKI, ngắt

trên chân RB/INT

e_ EEPROM Data Memory (bộ nhớ đữ liệu): đây là bộ nhớ xóa ghỉ được trên 1

triệu lần, EEPROM có 64 thanh nhớ, với độ rộng 8 bit (1 byte) Để truy cập

dữ liệu trong các thanh nhớ, mã địa chỉ sẽ chuyển vào thanh ghi EEADR và

dữ liệu xuất nhập trên thanh ghỉ EEDATA

© Bộ nhớ RAM File Register: đây là bộ nhớ RAM có 68 thanh nhớ, với độ rộng

8 bữ, trong đó có 12 thanh nhớ chuyên dụng (SFR, Special Function Register), các thanh nhớ còn lại được dùng làm thanh nhớ phổ dung (GPR, General Purpose Register) Cac thanh nho chuyên dụng xác định hoạt động của IC, các thanh nhớ phổ dụng dùng làm thanh nhớ tạm Khi IC mat nguén, các dữ liệu trong các thanh nhớ RAM đều bị xóa sạch Người ta truy cập dữ liệu trong các thanh nhớ của RAM với bó nối mã địa chi RAM Adar (7 duéng)

và xuất nhập dữ liệu trên bó nỗi Data Bus (8 đường)

¢ Thanh ghi FSR (File Select Register) ding truy tìm dữ liệu theo mã địa chỉ

gidn tiép (Indirect Address), ding bé néi Indirect Addr (7 duéng)

© Thanh ghi STATUS (Status Register) dàng chọn định các điều kiện cho IC

© MUX (Muhiplex) là khối xử lý đa nhiệm, nó cung cấp mã cho khối xử lý ALU

© ALU (Arihmetic & Logic Unit) là khối thực hiện các phép toán số học và

logic

© Thanh ghi W (Work Register) la thanh ghi tich lity, n6 cat giữ các kết quả của

khối toán ALU

4 Bộ nhớ Flash Program Memory- EEPROM

Đây là loại bộ nhớ ROM xóa ghỉ bằng mức áp cao Vpp, nên nội dưng ghỉ trong

các thanh nhớ sẽ không bị xóa dù IC không được cấp điện Các thanh nhớ này có

thể cho xóa ghi lại nhiều lần, dung lương của bộ nhớ là 64 byte, số lần xóa ghi bi

hạn chế Vi vậy bộ nhớ EEPROM không được dùng làm bộ nhớ tạm thời như

RAM, bộ nhớ EEPROM chỉ được dùng dé ghi các dữ liệu ít phải thay đổi.

Trang 9

Unimplemented

Thanh nhớ có địa chỉ 0000h (Reset Vector) la vi tri nhay đến chức năng Reset

Khi IC vừa được cấp điện, hay do tác dụng của bộ định thời và bat cứ lý do nào

khác, tác dụng Reset sẽ cho chương trình khởi đâu trở lại từ địa chỉ 00001 Thanh nhé 0004h (Interrupt Vector) dùng cho chức năng ngắt

Thanh ghỉ 2007h (Configuration word) dùng để xác định hoạt động cơ bản của PIC

Trang 10

Bộ nhớ RAM của PIC 16F84A về chức năng có thể chia thành loại bộ nhớ thông

dụng và bộ nhớ chuyên dùng Về không gian thì có thể chia thành hai băng, đó là băng 0 và băng 1

Bit 7: trong PIC 16F84A khéng ding bit nay

Bit 6-5: được dùng đề chọn bank Thật ra thì bit 6 luôn để mức 0 va chi thay đổi bit 5, nếu xác lập trị 00 là chọn bank 0, còn xác lập trị 01 là chọn

bang 1

Bit 4: Bir='1': sau khi cấp nguôn dùng lénh CLRWDT hay SLEEP Bii='0': thì lệnh WDT diễn ra

Bit 3: Bit='1': sau cấp nguôn hay sau lệnh CLRWDT

Bit='0': thực hiện lệnh SLEEP.

Trang 11

Bit=’1’: khi két qua phép toán bang 0

Bii='0°: khi kết quả phép toán khác 0

Bit=’1’: khi xudt hién tran sé 6 bit thấp thứ 4

Bit='0': không có bịt tràn ở bit thấp thứ 4

Bii='1': khi xuất hiện tràn số ở thanh ghi

Bit=’0’: không có số tràn ở thanh ghi

Thanh ghi OPTION

Bit cho phép dién trở kéo lên ở portB

Bit=’1’: khéng cho treo cdc chan 6 PortB

Bit='0°: cho treo các chân ở PortB

Bit chọn cạnh ngắt

Bit='1': ngắt cạnh lên của xung trên chân RB0/INT

Bit=`0': ngắt cạnh xuống của xung trên chân RB0/INT

Bit nguồn tín hiệu TMR0

Bit=’1’: mạch làm việc với xung vào trên chân RA4/TOCKI

Bit='0°: mạch dùng xung nội

Bit chọn cạnh tín hiệu TMRO0

Bit='1': cạnh từ mức cao xuống mức thấp ở chân RA4/TOCKI Bit='0': cạnh từ mức thấp lên mức cao trên chân RA4/TOCKI

Bit gán bộ chia số tỉ lệ trước

?: cho xác lập trước với mạch WDT

°: cho xác lập trước với mạch TMRO0

Bit 2-0:Dùng đề chọn tốc độ cho TMRO va WDT

Trang 12

12

Bit x4c dinh diéu kién mé hay tắt tất cả các ngắt

Bit=" 1’: cho ding tat ca cac ngat

Bit='0: tắt tất cả các ngắt

Bit cho phép tắt mở dạng ngắt khi ghi xong vô EEPROM

Bit='1':cho mở ngắt khi ghi xong vô EEPROM

Là bt cờ ngắt RB0/INT mà chỉ ra sự thay đổi trên RB0

Bit='1': chỉ ra sự thay đổi diễn ra

Bit='0': chỉ ra không có sự thay đổi diễn ra

Trang 13

13

Bit 0: Là bit cờ ngắt thay đổi ở chân B4 và chân B7 6 port B

Bit="1’: chỉ ra một trong 4 chân ngõ vào B4 đến B7 có sự thay đổi

trạng thái Bit này được xóa bằng phần mềm

Bit='0': chỉ ra không có sự thay đổi

II.ỨNG DỤNG CỦA PIC 16F84A

Các chip đơn thường dàng là mạch tích hợp số TTL,CMOS,nắm vững về nó không phải là dễ dang vi vấn đê là ở hỗ các chip đơn thông mình,không những chúng ta phải nắm vững phân cứng mà còn phải nắm vững phân mềm Khi thiết kế phần mềm cần phải có nhiều sang tạo

Do PIC 16F84 có EEPROM cóthễ viết và xóa để lưu chương trình cho nên nó đặc biệt thích hợp

với một số ứng dụng thường phải thay đổi giá trị,PIC 16F84 thích hợp cho những người mới học lập trình vì nó có thể viết và xóa dễ dàng.Ngoài ra trong bộ nhớ EEPROM 64x8 không chỉ có chức năng bảo

vệ số liệu khi mất điện mà còn có tính bảo mật cao

LOOPA (nhãn);MOVF(mã lệnh);TMR0,W (toán hạng với TMRO là nguôn, W là đích);ghỉ chú là

phân giải thích sau dấu “;

1.Tập lệnh của PIC 16F84A

a)Lệnh bit

-BCF:xóa bit trong ô nhớ F

-BSF:bật bịt lên 1 trong ô nhớ F

Vd:BSF 6,4;bật bit 4 của ô nhớ 6

Trang 14

14

-BTFSC-kiém tra bit trong 6 nhé va bé qua lénh ké tiép néu bit bi x6a

Vd:BTFSC 3,2;kiém tra bit 2(cờ Z) của thanh ghi STATUS

®Lệnh này sẽ bỏ qua nếu cờ Z=0

-BTFSS:kiém tra bit trong ô nhớ và nhảy qua lệnh kế nếu bit được bật lên 1

b)Lệnh byte

-ADDWF:Cộng nội dung thanh ghỉ W vào ô nhớ F

Vả:ADDWF ` 7;cộng W với ô nhớ 7.Kết quả đặt vào ô nhớ 7

VA:ADDWF 7,W;như trên nhưng kết quả đượ lưu vào thanh ghi W

-ANDWF:Nội dung của thanh ghỉ W được logic AND với ô nhớ F.Lệnh này ảnh hưởng

đến cờ DC và cờ Z

VA:ANDWF — 12h,W;WAND 12H

Vd:ANDWF 12H;như trên nhưng kết quả lưu vào 12H

-CLRF:Lệnh này xóa 8 bit trong ô nhớ F.Trạng thái ảnh hưởng đến cờ Z

Vd:CLRF 5;xóa ô nhớ 5

-CLRW:xóa nội dung thanh ghỉ W

-COMF:Láy bù 8 bit trong ô nhớ F

VA:COMEF — 6;đảo bít bù ô nhớ 6

-DECF:Nội dung của ô nhớ F giảm đi 1.Lệnh này có tác dụng khi đếm về 0

Vd:DECF 12;giảm ô nhớ 12 đi 1,kết quả lưu tại ô nhớ 12

Vd:DECF 12,W;như trên nhưng kết quả lưu ở W

-DECFSZ:Nội dung ô nhớ F được giảm đi 1 và lệnh kế được bỏ qua nếu kạ=0”

Vd:DECFSZ 12;Lệnh này thường dùng để tạo trễ

-INCF:Cộng 1 vào ô nhớ F.Giá trị này sau đó được so sánh với cái khác để xem gid tri tong đã đạt được chưa

-INCFSZ:Cộng 1 vào ô nhớ F.Nếu kết quả bằng 0 thì bỏ qua lệnh kế tiếp

-IORWF:Nội dung thanh ghi tích lăy W được logic OR voi ô nhớ F

-MOVE:Nội dung của ô nhớ F được di chuyển vào thanh ghỉ tích lăy U:Từ đó dữ liệu có thể chuyển đến port ngõ ra.Lệnh này ảnh hưởng đến cờ Z

Trang 15

15

-MOVWF:Nội dung của thanh ghỉ W chuyển đến ô nhớ F

-NOP(No Operation):không làm gì cả nhưng để tạo trễ 1 chu kỳ máy.Lệnh này có tác

dụng cho các trì hõan nhỏ

-RLF:N6i dung của ô nhớ F được quay trái I bịt thông qua cờ Z.Dịch di 1 bit nghia la sé

đó nhân 2.Lệnh này có ích khi lên xuống nhị phân

Vd:RLF 12,W;dịch trái ô nhớ 12,kết quả lưu ở ô thanh ghỉ W

-RRF:Nội dung của ô nhớ F' được quay phải 1 bít thông qua cờ nhớ C

-SUBWE:Trit W từ F.Nghĩa là lấy F-W

Vd:SUBWF 14.W;ô nhớ 14-W,kết quả lưu ở W

Lưu ý: Nếu W>F' thì cờ C=0 nghĩa là kết quả âm

Nếu W<F thì cờ C=1 nghĩa là kết quả dương

Nếu U=F thì cờ Z=1.Tạng thái này ảnh hưởng đến cờ Z

-SWAPF:4 bit thap va 4 bit cao dugc héan đổi cho nhau

-XORWF(Exclusive Or):N6i dung W dugc EXOR.Néu 1 ngõ vào trên port chỉ báo nhiệt

độ giống như thanh ghỉ W thì kết quả là 0 và cờ Z=1

Luu ¥: Không thế EXOR ngõ vào trực tiếp của I ô nhớ mà phải làm điều này bằng cách nạp ô nhớ vào

thanh ghi W trước.trạng thái nay ảnh hưởng đến cờ Z

Như trong phân này ta đã thấy thanh ghỉ tích lấy W quan trọng như thế nào trong hoạt động của Vĩ điều khiển Dữ liệu không thể di chuyển trực tiếp từ A đến B mà phải thông qua W (A đến W,W đến B)

2.Các tác vụ số và điều khiển

-ADDLW:Cộng 1 số với thanh ghỉ W

-ANDLW:Nội dung thanh ghỉ W được AND với số 8 bù Kết quả đặt vào thanh ghỉ W

-CALL:gọi chương trình con trong chương trình chính.Lệng này tốn 2 chu kỳ máy

-CLRWDT:xóa bộ đếm xung thời gian

-GOTO:Lệnh nhảy không điều khiển tới 1 vị trí cụ thể trong chương trình

-IORLW:Nội dung của W được OR với 1 số

-MOVLW:số 8 bit di chuyển trực tiếp vào W.Lệnh này ảnh hưởng đến cờ Z

-RETFIE:Trở về từ ngắt,

Ngày đăng: 02/03/2013, 16:58

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w