VI ĐIỀU KHIỂN AVR

10

Transcript of VI ĐIỀU KHIỂN AVR

BÙI HÓNG HUẾ - BÙI XUÂN HÒA

HlróUG DẪN THỊỊỊC HÀNH

VI ĐIỀU KHIỂN AVR

NHÀ XUẤT BẢN XÂY DựNGHÀ NỘI-2012

LỜI NÓI ĐẦU

Hiện nay, các bộ vi điều khiển đã và đang được ứng dụng vào lĩnh vực diêu khiển động các quá trình công nghệ như: Tự động hoú quá trình sản xuất, điều khiển hệ thối tr ạ m b ơ m , đ iề u khiển c á c th iế t b ị Ih tiỷ lực v à k lii n én , đ iề u k h iể n n lìiệ t đ ộ , đ o lư ờ n g đù

tử... Do giá thành hạ, chi ph í thấp nên ngay cả các thiết bị văn phòng, các thiết bị troi g ia đ ìn li c ũ n g đ ề u c ó d ù n g đ ế n c á c b ộ v i đ iề u k liiển . Nhưng vấ n đ ề đ ặ t r a là là m th ê IU

đ ể m a u chóng t iế p c ậ n , nghiên cứ u ứ ng d ụ n g c á c b ộ v i đ iể u khiển và o tr o n g lĩn h Vi

điều khiển, tự động lioá pluic vụ cho sản xuất vù nlui cầu sinh hoạt của cluing ta. I ràng kliông phải là chỉ nghiên cứu thuần tuỷ về m ặt lí tlutyêt mà cẩn có những klu nghiệm cụ thẻ.

Xiíấl phú t từ thực t ế đỏ, cliúng tôi mạnh dạn biên soạn cuốn tài liệu Hướng dẫn thi h àn h Vi điều kh iển AVR cùng với Bộ thực tập Vi điều AVR khiển kèm theo nhằm gii cho các em học sinh, sinli viên tiếp cận với các ứng dụng của Vi điều khiển Iilìanh nil một cách nlianli nhất. Tài liệu tập trung giới thiệu những kiến thức cơ hán nhất vế Ct trúc và lập trình hệ vi diều kliiển cùng với các bài tập thực hành. Đ ể tìm hiểu sáu tlié các liọc viên phả i đọc các tài liệu li thuyết vê vi điều kliiển.

Tài liệu cũng có th ể dìm làm sácli tham khảo cho các giáo viên dạy ngliê điện, c sinlì viên không chuyên điện nhưng có liên quan đến chuyên ngànli tự dộng hoá.

Do bộ lài liệu đê' cập đến nhiều vấn đ ề mới, viết cho nhiều đối tượng ở các trình khác nhau nên kliông tránh khỏi những thiêìi sót. Kính mong các bạn đọc gần xa, c chuyên ẹia tham gia đóng góp ỷ kiến đ ể lần tái bản sau dược hoàn thiện liơn.

C ác tác giá

Phần I

TỔNG QUAN VỂ ATEMEGA 16 VÀ HƯỚNG DAN c à i đ ặ t VÀ SỬ DỤNG PHẦN MỂM CODE VISION AVR

I. T Ổ N G Q U A N VỂ A T E M E G A 16

Các tính năng của A tm egaló:

- Hiệu xuất cao (high performance), là loại vi điều khiển AVR 8 bit công suất thấp

- Cấu trúc lệnh đơn giản, thời gian thực thi lệnh như nhau,

o 130 lệnh thực thi trong vòng 1 chu kì chip.

o 32 thanh ghi công dụng chung 8 bit.

o Đẩy dù các xử lí tĩnh.

o Hỗ trợ 16 MIPS khi hoạt động ở tẩn số 16 MHz.

o Tích hợp bộ nhân 2 thực hiện trong 2 chu kì chip.

- Bộ nhớ chương trình và dữ liệu không bay hơi (nonvolatile).

o 16k byte trong hệ thống flash khả trình có thể nạp và xóa 1,000 lần.

o Tùy chọn khới động phần mã với các bit nhìn độc lập trong hệ thống bằng cá vào chương trình khới động chip.

o 512 byte EEPROM có thể ghi và xóa 100,000 lần.

o Ik byte ram nhỡ tinh trong (internal SRAM),

o Lập trình khóa cho phần mềm bảo mật.

- Tính năng ngoại vi

o 2 bộ đinh thòi/bộ đếm (timers/counters) 8 bit với các c h í độ đếm riêng rẽ và kiểu so sánh.

o 1 bộ định thời/bộ đếm (timer/counter) 16 bit với các chế độ đếm riêng rẽ, kiểu so sánh và kiểu bắt sự kiện.

o Bộ đếm thời gian thực với máy giao động riêng rẽ.

o 4 kênh băm xung PWM.

o 8 kênh ADC 10 bit.

o Byte định hướng 2 đường giao tiếp nối tiếp,

o Giao tiếp USART nối tiếp khả trình,

o Giao tiếp SPI nối tiếp chủ/tớ (master/slave).

o Bộ định thời khả trình giám sát xung nhịp của chip 1 cách riêng rẽ.

o Tích hợp bộ so sánh tín hiệu tương tự.

- Giao tiếp JTAG

- Các tính năng đặc biệt của vi điểu khiển

o Chế độ bật nguồn reset và phát hiện Brown-out khả trình,

o Tích hợp mạch dao động RC bên trong,

o Các ngắt trong và ngoài.

o 6 chế độ nghỉ: rảnh rỗi, giảm nhiễu ADC, tiết kiệm năng lượng, nguồn thấp.Standby và Extended Standby.

- Vào/ra và các gói dữ liệu

o 32 chân vào ra khả trình,

o 40-pin PDIP and 44-lead TQFP.

- Điện áp sừ dụng

o 2.7 - 5.5V dùng với atmegalóL.

o 4.5 - 5.5V dùng với atmegaló.

- Tốc độ xung nhịp dùng cho chip

o 0 - 8 MHz cho atmegalóL.

o 0 - 16 MHz cho atmegalỗ.

6

1. Sơ dồ chân

PDIP

(XCK/TO) PBO c 1 40 □ PAO (ADCO)(T1) PB1 c 2 39 J PA1 (ADC1)

(INT2/AIN0) PB2 r 3 38 ~ì PA2 (ADC2)(OCO/AIN1) PB3 c 4 37 3 PA3 (ADC3)

(55) PB4 :: 5 36 3 PA4 (ADC4)(MOSI) PB5 c 6 35 □ PA5 (ADC5)(MISO) PB6 z 7 34 J PA6 (ADC6)(SCK) PB7 Z 8 33 □ PA7 (ADC7)

RESET r 9 32 □ AREFvcc z 10 31 ~ì GNDGND !Z 11 30 3 AVCC

XTAL2 L 12 29 J PC7 (TOSC2)XTAL1 c 13 28 1 PC6 (TOSC1)

(RXD) PDO 14 27 3 PC5 (TDI)(TXD) PD1 L 15 26 □ PC4 (TDO)(INTO) PD2 z 16 25 □ PC3 (TMS)(INT1) PD3 r 17 24 J PC2 (TCK)

(OC1B) PD4 r 18 23 3 PC1 (SOA)(OC1A) PD5 C 19 22 □ PCO (SCL)(ICP1) PD6 L 20 21 □ PD7 (OC2)

A tm egaló gồm có 40 chân:

- Chân 1 đến 8 : cổ n g nhập xuất dữ liệu song song B (PORTB) nó có thể được í dụng các chức năng đặc biệt thay vì nhập xuất dữ liệu.

- Chân 9 : RESET để đưa chip về trạng thái ban đẩu.

- Chân 10 : v c c cấp nguồn nuôi cho vi điều khiển.

- Chân 11,31 : GND 2 chân này nối với nhau và nối đất.

- Chân 12,13 : 2 chân XTAL2 và XTAL1 dùng để đưa xung nhịp từ bên ngc

vào chip.

- Chân 14 đến 21: cổ n g nhập xuất dữ liệu song song D (PORTD) nó có thể được dụng các chức năng đặc biệt thay vì nhập xuất dữ liệu.

- Chân 22 đến 29: cổ n g nhập xuất dữ liệu song song c (PORTC) nó có thể được dụng các chức nãng đặc biệt thay vì nhập xuất dữ liệu.

- Chân 30: AVCC cấp điện áp so sánh cho bộ ADC.

- Chân 32: A R EF điện áp so sánh tín hiệu vào ADC.

- Chãn 33 đến 40: cổ n g vào ra dữ liệu song song A (PORTA) ngoài ra nó còn đu

tích hợp bộ chuyển đổi tín hiệu [ương tự sang tín hiệu số ADC (analog to digì

converter.

L. Lac chan tnanli gni cua VI dieu Khien Atmegal6

a. N hóm c á c thanh ghi truy xuất EFPROMBít 15 14 13 12 11 10 9 8

- * ■ EEARỈl EEAR10 EEAR9 EEAR8

EEAR7 EEAR6 EEAR5 EEAR4 EEAR3 EEAR2 EEAR1 EEARO

7 6 5 4 3 2 1 0

Read/write R R R R R/W R/W R/W R/W

R/W R/W R!W R/W R/W R/W R/W R W

initial Value 0 0 0 0 X X X X

X X X X X X X X

1. Thanh Ghi EEAR (EEARH và EEARL)

EEAR là thanh ghi 16 bit lưu giữ địa chỉ của các ô nhớ của EEPROM, thanh ghi EEAR được kết hợp từ 2 thanh ghi 8 bit là EEARH và thanh ghi EEARL. Vì bộ nhớ EEPROM cùa ATmegal28 có dung lượng 4 Kbyte = 4096 byte = 212 byte nên ta chỉ cẩn 12 bit của thanh ghi EEAR , 4 bit từ 15 -12 được dự trữ, ta nên ghi 0 vào các bit dự trữ này.

2. Thanh Ghi EEDR

Bit 7 6 s 4 3 2 1 0

MSB

Read/write R/W

0InitialValue

R/W

0

R/W

0

Đây là thanh ghi dữ liệu cùa EEPROM, là nơi chứa dữ liệu ta định ghi vào hay lấy ra từ EEPROM.

3. Thanh Ghi EECR

Bít

Read/write

Initial Value

7 6 5 4 3 2 Ị 0

I - I - I EERIE I EEMWE I EEWE I E E fiẼ ~ ~ | EECR

R R R R RIW R /w Rl tv RIW

Đây là thanh ghi điều khiển EEPROM, ta chỉ sử dụng 4 bit đầu của thanh ghi này, 4 bit cuối là dự trữ, ta nên ghi 0 vào các bit dự trữ. Sau đây ta xét chức nãng của từng bit.