1. Trang chủ
  2. » Cao đẳng - Đại học

bài giảng pp VI xử lý TRONG điều KHIỂN AVR

206 7 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 206
Dung lượng 4,35 MB

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

Nội dung

bài giảng Vi điều khiển VNUA do sinh viên đã học và lưu trữ lại. Đây là môn học rất khó nếu ko nắm vũng kiến thức sẽ bị đuổi mong các bạn có cố gắng vì môn này rất khó. chúc các bạn may mắn

Trang 1

PHẦN I:

• Chương I: Tổng quan

• Chương II: Vi điều khiển ATMEGA 8

• Chương III:Ngôn ngữ lập trình

• Chương IV: PORT xuất nhập

• Chương V:TIMER – COUNTER

• Chương VI: NGẮT

PHẦN II: Một số ứng dụng đơn giản sử dụng Atmega 8

Trang 2

TÀI LIỆU THAM KHẢO

1 Ngô Diên Tập, Kỹ thuật vi điều khiển với AVR, NXB

Trang 3

Nguyễn Kim Dung

Trang 4

CHƯƠNG I

NHỮNG KHÁI NIỆM CƠ BẢN

Trang 5

NỘI DUNG CHƯƠNG I

1.1 Các hệ thống số cơ bản

1.2.Nhắc lại một số kiến thức cơ bản về kỹ thuật số 1.3 Vi xử lý và Vi điều khiển

Trang 7

b Chuyển đổi giữa các hệ thống số:

- Từ thập phân sang nhị phân:

Phương pháp : Thực hiện phép chia số thập phân

cho 2

Trang 8

b Chuyển đổi giữa các hệ thống số:

- Từ thập phân sang nhị phân:

Trọng số của bit:

Vị trí bit: 7 6 5 4 3 2 1 0

Chương 1 Những khái niệm cơ bản

Trang 9

b Chuyển đổi giữa các hệ thống số:

- Từ nhị phân sang thập phân:

Phương pháp :

Trang 10

b Chuyển đổi giữa các hệ thống số:

- Từ thập lục phân sang nhị phân:

Phương pháp :

Một số thập lục phân là một số gồm 4 bit

Chương 1 Những khái niệm cơ bản

Trang 11

b Chuyển đổi giữa các hệ thống số:

- Từ thập lục phân sang nhị phân:

Ví dụ: A5h  1010 0101

FA  ???

53B  ???

Trang 12

- Từ nhị phân sang thập lục phân:

Ví dụ:

Chương 1 Những khái niệm cơ bản

Trang 13

Chuyển đổi giữa thập phân và thập lục phân:

Trang 14

c Chiều dài từ dữ liệu

Trang 15

d Một số phép toán cơ bản

• Cộng nhị phân

Ví dụ

Trang 16

Chương 1 Những khái niệm cơ bản

d Một số phép toán cơ bản

• Trừ nhị phân:

Máy tính không thực hiện được trực tiếp phép trừ Để thực hiện phép

trừ, máy tính thực hiện phép cộng giữa số bị trừ với số bù 2 của số

trừ

Số bù 2 của một số A:

- Bước 1: Tìm số bù 1 của A bằng cách đảo tất cả các bit của số A

- Bước 2: Cộng số bù 1 của A với 1 được số bù 2

Số bù 2 của một số A chính là số -A

Trang 17

Ví dụ 1:Tìm số bù 2 của số 10011101

Ví dụ 2: Thực hiện phép trừ 100 – 25 = ???

Trang 18

Chương 1 Những khái niệm cơ bản

Ví dụ 2: Thực hiện phép trừ 100 – 25 = ???

Trang 20

Chương 1 Những khái niệm cơ bản

Nếu 1byte biểu diễn một số không dấu thì giá trị của

nó thay đổi từ 0 255

Nếu 1 byte biểu diễn một số có dấu thì giá trị của nó thay đổi từ -128 +127

Trang 21

1.2 Nhắc lại một số kiến thức kỹ thuật số cơ bản:

Trang 22

1.2 Nhắc lại một số kiến thức kỹ thuật số cơ bản:

b Các cổng logic cơ bản và bảng chân lý

Chương 1 Những khái niệm cơ bản

Trang 23

1.2 Nhắc lại một số kiến thức kỹ thuật số cơ bản:

b Các cổng logic cơ bản và bảng chân lý

Trang 24

1.2 Nhắc lại một số kiến thức kỹ thuật số cơ bản:

b Các cổng logic cơ bản và bảng chân lý

Chương 1 Những khái niệm cơ bản

Trang 25

1.2 Nhắc lại một số kiến thức kỹ thuật số cơ bản:

c Bộ cộng nửa – Bộ cộng đủ

Trang 26

Bộ cộng đủ

Chương 1 Những khái niệm cơ bản

Trang 27

1.3 Vi xử lý và vi điều khiển

1.3.1 Một số nét khái quát về vi xử lý

a Khái niệm

• Vi xử lý là một IC số chuyên về xử lý dữ liệu, tính toán

dữ liệu và điều khiển theo chương trình Bản thân vi xử lý không có bộ nhớ ROM,RAM

• Hệ thống vi xử lý gồm có vi xử lý, bộ nhớ và các thiết bị

ngoại vi xuất nhập

Trang 28

b Cấu trúc của một hệ vi xử lý:

Chương 1 Những khái niệm cơ bản

Trang 30

Chương 1 Những khái niệm cơ bản

Trang 31

• ROM:

- Bộ nhớ chỉ đọc được mà không thay đổi được

- Không bị mất khi mất điện

- Chương trình được nạp bởi nhà sản xuất

Trang 33

• BUS điều khiển

Trang 34

• CPU:

Chương 1 Những khái niệm cơ bản

Trang 36

c Tập lệnh của vi xử l{:

• Lệnh của vi xử l{ là một số nhị phân, khi vi xử l{ đọc một

lệnh thì từ dữ liệu của vi xử l{ sẽ yêu cầu vi xử l{ thực hiện một công việc đơn giản nào đó hầu hết là chuyển dữ liệu và

Chương 1 Những khái niệm cơ bản

Trang 37

c Tập lệnh của vi xử l{:

Một số mã lệnh của 8051:

1110 0101 direct address: chuyển dữ liệu từ ô nhớ của

bộ nhớ trong vào thanh chứa

1111 0101 direct address: chuyển dữ liệu từ thanh chứa

vào ô nhớ của bộ nhớ bên trong

0011 0101 direct address: cộng có nhớ nội dung thanh

chứa với nội dung ô nhớ

Trang 38

c Tập lệnh của vi xử l{:

Một số mã lệnh của 8051:

Chương 1 Những khái niệm cơ bản

Trang 39

1.3.2 Vi điều khiển:

Vi điều khiển có chứa ROM,RAM bên trong nó Ngoài ra còn

có thể tích hợp thêm một số khối chức năng như Timer – Counter, ADC, UART, … giúp cho vi điều khiển có thể ứng

dụng cho những hệ thống nhỏ

Một số họ vi điều khiển:

Trang 40

1.3.2 Vi điều khiển:

Chương 1 Những khái niệm cơ bản

Trang 41

HẾT CHƯƠNG I

Trang 42

CHƯƠNG II

VI ĐIỀU KHIỂN AVR

Trang 43

Làm quen với AVR

• AVR là một họ vi điều khiển do Atmel sản xuất

• AVR là một chip vi điều khiển với cấu trúc lệnh được đơn giản hóa – RISC (Reduced

Instruction Set Computer)

• Gần như không cần mắc thêm linh kiện phụ

nào khi sử dụng AVR

Trang 44

Một số đặc điểm nổi bật của AVR

• Bộ nhớ Flash được tích hợp ngay trên chip

 Không cần dùng bộ nhớ EROM hoặc ROM bên

ngoài để nhớ mã chương trình

 Cho phép nạp chương trình khi bộ xử l{ vẫn ở nguyên vị trí trên bản mạch

Trang 46

Một số công cụ khi làm việc với AVR

1 Trình biên dịch: biên dịch file code

chương trình từ ngôn ngữ assembly

(ASM) hoặc ngôn ngữ cấp cao khác sang file hex

- AvrStudio: trình biên dịch ASM chính

nguồn:

http://www.atmel.com/tools/atmelstudio aspx

Trang 47

Một số công cụ khi làm việc với AVR

1 Trình biên dịch(tiếp):

phát triển bởi gnu, sử dụng ngôn ngữ C

và có thể tích hợp với AVRstudio

- CodevisionAVR: trình biên dịch sử dụng

ngôn ngữ C với nhiều thư viện hỗ trợ, là một chương trình thương mại ( Tuy

nhiên có thể sử dụng bản demo với giới

hạn dung lượng bộ nhớ chương trình

2Kbyte)

Trang 48

Một số công cụ khi làm việc với AVR

1 Trình biên dịch(tiếp):

basic, dễ sử dụng, nhiều thư viện hỗ trợ nhưng khó tìm và sửa lỗi =>

Không thích hợp cho việc tìm hiểu

AVR

- ………

Trang 49

Một số công cụ khi làm việc với AVR

2 Mạch nạp và chương trình nạp

-Mạch nạp STK200/300 và chương trình nạp Ponyprog

-Mạch nạp USB AVR910 và chương trình nạp CodevisionAVR và AVR prog của

AVRstudio

-Mạch nạp USBasp

Trang 50

Một số công cụ khi làm việc với AVR

3 Chương trình mô phỏng

-AVR simulator là chương trình mô

phỏng và debug được tích hợp trong

AVRstudio

-Proteus

Trang 51

2.1 Đặc tính – Cấu trúc – Chức năng các PORT

2.1.1 Đặc tính

Có những đặc điểm chung của họ vi điều khiển AVR 8 bit:

• 8kByte bộ nhớ FLASH bên trong dùng để lưu chương trình điều khiển

• 512 EEPROM

• 1 Kbyte SRAM nội

• Chu kỳ viết/ xóa: 10,000 FLASH/ 100,000 EEPROM

• 2 Timer/counter 8 bit và 1 timer/counter 16 bit

• Bộ đếm thời gian thực

• 3 kênh PWM

Trang 52

Chương 2 Vi điều khiển ATmega8L/ATmega8

2.1 Đặc tính – Cấu trúc – Chức năng các PORT

- Master/Slave SPI serial interface

• Có 23 đường xuất nhập chương trình; số chân trên chip phụ thuộc kiểu vỏ: 28 (PDIP); 32 (TQFP và QFN/MLF)

Trang 53

2.1 Đặc tính – Cấu trúc – Chức năng các PORT

Trang 54

Chương 2 Vi điều khiển AT89C51

2.1.3 Các chân của vi điều khiển

Trang 55

2.1.2 Sơ đồ cấu trúc của vi điều khiển ATmega8L/8

Trang 58

Chương 2 Vi điều khiển ATmega8L/ ATmega8

2.1.3 Các chân của vi điều khiển

a Một số chân điều khiển chung:

• VCC : cấp nguồn nuôi vi điều khiển

• GND( chân 8, 22): nối đất

• AVCC chân cấp nguồn cho bộ chuyển đổi ADC PortC(3 0) và

ADC (7 6)

note: ADC Port C(5 4) sử dụng nguồn nuôi số Vcc

• AREF: chân cấp điện áp so sánh cho bộ chuyển đổi ADC

• RESET\ (PC6, chân 1 PDIP): tích cực ở mức thấp, reset chip về trạng thái ban đầu Một reset được thực thi khi chân này được duy trì ở mức thấp trong một thời gian tối thiểu nào đó Khoảng thời gian tối thiểu này phụ thuộc nguồn tạo reset cho vi điều khiển

Có 04 nguồn tạo reset cho vi điều khiển ATmega8/8L

Trang 59

b Port B (PB7 PB0):

• Đặc điểm:

PortB : port xuất nhập 8 bit 2 chiều(bi-directional I/O port) với điện trở nội kéo lên (internal pull-up resistors)

Port B cho phép lựa chọn riêng rẽ từng bit

Khi sử dụng là cổng vào, các chân của Port B được kéo xuống mức thấp sẽ tạo ra dòng hút về vi điều khiển khi các trở kháng kéo lên được kích hoạt (sink)

Khi sử dụng là cổng ra, các chân của Port B được đặt ở mức điện

áp cao và tạo dòng hút về phía tải (source)

Khi các điều kiện reset xảy ra, các chân của PortB sẽ ở trạng thái logic thứ 3 (tri-stated), mức trạng thái trở kháng cao

Trang 60

Chương 2 Vi điều khiển ATmega8L/ ATmega8

b Port B:

• Chức năng của các chân:

Bảng 2.1 Chức năng các chân trên PortB

Trang 61

• Chức năng của các chân:

- XTAL2/TOSC2 – Port B, Bit 7 và XTAL1/TOSC1 – Port B, Bit 6: +XTAL 1,2: Sử dụng làm chân 1, 2 cấp xung dao động cho vi điều

khiển khi sử dụng các nguồn tạo dao động tinh thể Khi đó chân này không được dùng làm cổng xuất/nhập

+TOSC1, 2: Chân 1,2 của bộ tạo dao động cho bộ định thời Chỉ sử

dụng nếu bộ dao động RC nội được chọn làm nguồn tạo dao động cho chip, và bộ định thời không đồng bộ được kích hoạt trên thanh ghi

ASSR: bit AS2 = 1 kích hoạt đồng hồ không đồng bộ của Timer /

Trang 62

Chương 2 Vi điều khiển ATmega8L/ ATmega8

2.1.3 Các chân của vi điều khiển

Trang 64

Chương 2 Vi điều khiển ATmega8/8L

2.2 Kiến trúc của vi điều khiển ATmega8/8L

Trang 65

Mỗi bộ nhớ giao tiếp với CPU qua một bus độc lập

- Ƣu điểm: Giao tiếp nhanh, có thể thay đổi số bit của từng bộ

nhớ mà không ảnh hưởng lẫn nhau

- Nhƣợc: Kiến trúc phức tạp

Program memory

Trang 66

Chương 2 Vi điều khiển ATmega8/8L

2.2.2 Kiến trúc tổng quan của ATmega8/8L

Kiến trúc của bộ xử lý ATmega8

Trang 67

• Mô tả chung:

- ATmega8 có bộ nhớ nội bên trong (Internal memory) và có thể giao tiếp với bộ nhớ bên ngoài nếu bộ nhớ bên trong không đủ khả năng lưu giữ chương trình

- Bộ nhớ nội của ATmega8 có kiến trúc kiểu Harvard gồm bộ nhớ và các bus chương trình, dữ liệu tách biệt nhau

- Các lệnh trong bộ nhớ chương trình được thực hiện bằng kỹ thuật cấu trúc đường ống lệnh (instruction pipline), điều này cho phép trong khi một lệnh đang được thực thi thì lệnh tiếp theo được tìm, nạp trong bộ nhớ chương trình Kỹ thuật này làm tăng tốc độ xử lý của CPU

Trang 68

Chương 2 Vi điều khiển ATmega8/8L

2.2.3 Tổ chức bộ nhớ của ATmega8/8L

a Bộ nhớ chương trình

Bộ nhớ chương trình (Progam memory) là bộ nhớ

Flash có thể lập trình lại (In-System

Reprogrammable Flash memory)

- Dung lượng: 8KByte

- Các lệnh của AVR có độ dài 16bit hoặc 32 bit nên

bộ nhớ chương trình được tổ chức thành 4Kx16 bits

- Con trỏ chương trình –PC (program counter) có

chiều dài 12 bits xác định các địa chỉ trên bộ nhớ

chương trình

- Không gian bộ nhớ chương trình được chia thành

hai phần: phần dành cho chương trình khởi động

(Boot program section) và phần dành cho chương

trình ứng dụng (Application Flash memory section)

- Bus dữ liệu dùng cho bộ nhớ chương trình có độ

rộng 16 bit và chỉ nối với thanh ghi lệnh

Trang 70

Chương 2 Vi điều khiển ATmega8/8L

2.2.3 Tổ chức bộ nhớ của ATmega8/8L

 Tệp thanh ghi

-Gồm 32 thanh ghi 8 bit được dùng đa

mục đích với thời gian truy cập trong

 Có thể truy xuất đến các thanh ghi

này thông qua tên gọi hoặc địa chỉ

trực tiếp

- Thanh ghi R0 được sử dụng trong lệnh

nạp của bộ nhớ chương trình (LPM)

- Sáu thanh ghi từ R26-R31 có thể được

sử dụng làm 3 thanh ghi địa chỉ gián tiếp

16 bit để xác định địa chỉ của dữ liệu

Trang 71

2.2.3 Tổ chức bộ nhớ của ATmega8/8L

Tệp thanh ghi

-Thanh ghi X, Y, Z

Trang 72

Chương 2 Vi điều khiển ATmega8/8L

2.2.3 Tổ chức bộ nhớ của ATmega8/8L

Bộ nhớ SRAM nội

- 1120 địa chỉ đầu tiên của bộ nhớ

dữ liệu được sử dụng cho Tệp

thanh ghi (32 byte từ

0x00-0x1Fh), các thanh ghi I/O(64 byte

từ 0x20-0x5Fh), bộ nhớ SRAM

nội (1024 byte hay 1kB từ

0x060-045Fh)

- Dung lượng: 1kByte

- Được sử dụng cho ngăn xếp

cũng như để lưu trữ các biến

- Trong thời gian có ngắt hoặc gọi chương trình con, giá trị hiện tại của bộ đếm chương trình được lưu trữ trong ngăn xếp

- Vị trí (địa chỉ) của ngăn xếp được xác định bằng con trỏ ngăn xếp

Trang 73

2.2.3 Tổ chức bộ nhớ của ATmega8/8L

Bộ nhớ vào/ra (I/O)

- Gồm 64 thanh ghi 8 bit phục vụ

cho các chức năng ngoại vi của

CPU Bộ nhớ I/O có thể truy cập

trực tiếp như các thanh ghi có địa

chỉ 0x00h-0x3Fh hoặc có thể truy

cập như một phần của bộ nhớ

SRAM có địa chỉ từ 0x20-0x5Fh

Trang 74

Chương 2 Vi điều khiển ATmega8/8L

- Có 3 thanh ghi liên quan đến việc sử dụng bộ nhớ EEPROM:

 Thanh ghi địa chỉ bộ nhớ EEPROM: thanh ghi EEARH và EEARL

Sử dụng các bit 8 0 để xác định địa chỉ từ 0-511 của bộ nhớ EEPROM

Trang 75

Bộ nhớ EEPROM

 Thanh ghi địa chỉ bộ nhớ EEPROM: thanh ghi EEARH và EEARL

Sử dụng các bit 8 0 để xác định địa chỉ từ 0-511 của bộ nhớ EEPROM Các bit này cho phép đọc/ghi Địa chỉ cần truy cập vào EEPROM cần phải được nạp vào thanh ghi này trước khi truy xuất đến bộ nhớ

Các bit 15 9 không dùng đến, chỉ cho phép đọc Giá trị đọc được của các bit này bằng 0

Trang 76

Chương 2 Vi điều khiển ATmega8/8L

2.2.3 Tổ chức bộ nhớ của ATmega8/8L

Bộ nhớ EEPROM

 Thanh ghi dữ liệu bộ nhớ EEPROM: thanh ghi EEDR

Có độ dài 8 bit, được dùng để đọc hoặc ghi dữ liệu vào ô nhớ của

EEPROM có địa chỉ được xác định bởi thanh ghi EEAR

Trang 77

Bộ nhớ EEPROM

 Thanh ghi điều khiển bộ nhớ EEPROM: thanh ghi EECR

Chức năng: Điều khiển quá trình đọc/ghi dữ liệu vào bộ nhớ EEPROM

Có độ dài 8 bit, trong đó:

- 4 bit 7 4 chưa sử dụng, chỉ cho phép đọc và có giá trị bằng 0

- Bit 3-EERIE : = 1 cho phép ngắt bộ nhớ EEPROM

= 0 không cho phép ngắt

- Bit 2- EEMWE (EEPROM Master Write Enable):

Khi EEMWE =1 và EEWE=1 sẽ ghi dữ liệu trên thanh ghi EEDR vào EEPROM Giá trị của EEMWE tự động bị xóa sau 4 chu kỳ xung nhịp

Trang 78

Chương 2 Vi điều khiển ATmega8/8L

2.2.3 Tổ chức bộ nhớ của ATmega8/8L

Bộ nhớ EEPROM

 Thanh ghi điều khiển bộ nhớ EEPROM: thanh ghi EECR

Chức năng: Điều khiển quá trình đọc/ghi dữ liệu vào bộ nhớ EEPROM

- Bit 1-EEWE (EEPROM Write Enable) : Cho phép ghi dữ liệu lên EEPROM cùng bit EEMWE

Bit EEWE giữ nguyên giá trị bằng 1 trong suốt chu trình ghi, khoảng thời gian này có thể đến 2,5ms Sau khoảng thời gian này thì phần cứng sẽ xóa bit trên

- Bit 0- EERE (EEPROM READ Enable):

Đặt EERE =1 và sau đó xóa EERE, dữ liệu ở địa chỉ EEAR sẽ được chuyển vào thanh ghi EEDR

Trước khi 1 chu trình đọc được thực hiện, cần phải kiểm tra bit EEWE cho đến khi bit này bằng 0 để đảm bảo không một chu trình ghi nào được tiến hành

Trang 79

a Khối số học logic ALU

Chức năng: Thực hiện các phép tính số học, logic, thao tác bit trên nội dung các thanh ghi và ghi kết quả vào tệp thanh ghi trên thanh ghi

đã được chỉ định

Đặc điểm:

- Các thao tác này được thực hiện trong một chu kỳ đồng hồ đơn lẻ

- Mỗi thao tác đều làm ảnh hưởng đến các cờ trong thanh ghi trạng thái tùy thuộc vào lệnh

Trang 80

Chương 2 Vi điều khiển ATmega8/8L

2.2.4 Khối số học logic ALU và thanh ghi trạng thái SREG

b Thanh ghi trạng thái SREG:

- Gồm 8 bit cờ báo hiệu trạng thái hiện tại của bộ xử lý

- Các bit được xóa khi reset và có thể đọc hoặc ghi vào bởi chương trình

- Thanh ghi trạng thái không được tự động lưu trũ khi có một ngắt xảy

ra, do đó chương trình của người dùng phải lưu trữ và khôi phục thanh ghi trạng thái trong thời gian có ngắt

Trang 81

b Thanh ghi trạng thái SREG:

- Bit 7-I: I =1 Cho phép ngắt toàn cục; I=0 cấm tất cả các ngắt

- Bit 6-T: bit Copy Storage Được sử dụng với lệnh nạp bit BLD và lệnh lưu trữ bit BST Một bit trên một thanh ghi trong Tệp thanh ghi

có thể được sao chép vào T bởi lệnh BST, ngược lại có thể chuyển một bit trên T vào một thanh ghi trên Tệp thanh ghi thông qua lệnh BLD

- Bit 5 – H: Half Carry Flag Cho thấy phép cộng một nửa đã được thực hiện trong một số lệnh số học, rất hữu ích trong các phép toán với số BDC

Ngày đăng: 30/12/2021, 10:12

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

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

w