You are on page 1of 20

MÔN HỌC

Ứng dụng Vi điều khiển


(Microcontroller Applications)

By Trần Văn Hùng


Mechatronics Dept

http://www.ntu.edu.vn/
Email: tvh42th@gmail.com

Tài liệu tham khảo


1. Microprofessors and microcpmputers hardware and softwware, Ronaid J.Tocci, Frank J.Ambrosio,
Prentice Hall, 2003
2. Interfacing Sensors To The Pc, Willis J.Tompkin, Jonh G.webster, Prentice Hall, 1998
3. Vi xử lý, Văn Thế Minh, NXB Giáo Dục.
4. Họ vi điều khiển 8051, Tống Văn On.
5. Kỹ thuật Vi điều khiển AVR, Tống Văn On.

1
Nội dung chương trình

n Ch01: Các hệ đếm và mã hoá


n Ch02: Hệ thống vi xử lý
n Ch03: Bộ nhớ
n Ch04: Họ vi điều khiển AVR
n Ch05: Ngôn ngữ lập trình CodevisionAVR
n Ch06: Input/Output

Các bài toán


1. Thiết kế mạch điều khiển ánh sáng theo chương trình định trước
2. Thiết kế mạch trang trí bằng đèn LED
3. Thiết kế mạch nhận dạng điểm phục vụ (thêm ít nhất 2IC)
4. Thiết kế mạch đo lượng mưa
5. Thiết kế mạch điều khiển nhiệt độ không khí
6. Thiết kế mạch điều khiển nhiệt độ dung dịch
7. Thiết kế mạch đồng hồ điện tử
8. Thiết kế mạch tính thời gian cho các môn điền kinh
9. Thiết kế bảng quang báo
10. Thiết kế mạch khoá điện tử
11. Thiết kế mạch điều khiển thiết bị bằng remote
12. Kết nối bàn phím máy tính với VXL, hiển thị ký tự lên LCD
13. Thiết kế mạch điều khiển Robot chạy theo qũy đạo (sd motor bước)
14. Thiết kế mạch điều khiển tốc độ động cơ DC
15. Thiết kế mạch điều khiển góc quay của môtơ, ổn tốc cho motor.

2
Chương 1: Các hệ đếm và mã hoá

n Các hệ đếm dùng trong máy tính


n Các phép toán số học đối với hệ hai
n Mã ASCII

1.1 Các hệ đếm dùng trong máy tính


1.1.1 Hệ mười và hệ hai
n Con người thì quen dùng hệ cơ số mười (hệ mười)
1234,56 = 1.103 + 2.102 + 3.101 + 4.100 + 5.10-1 + 6.10-2
n Máy tính thì chỉ làm việc với hệ cơ số hai (hệ hai)
1011,01 = 1.23 + 0.22 + 1.21 + 1.20 + 0.2-1 + 1.2-2 MSB LSB
n Nibble gồm 4 bit
3 0

n Byte gồm 8 bit


7 0
n Word gồm 16 bit

15 0

1
1.1.1 Chuyển đổi giữa hệ mười và hệ hai
n Đổi hệ hai sang hệ mười
1011,012 = 1.23 + 0.22 + 1.21 + 1.20 + 0.2-1 + 1.2-2 = 11,2510
n Đổi hệ mười sang hệ hai
4610 = 1011102
46 2
0 23 2
1 11 2
1 5 2
1 2 2
0 1 2
1 0

Hình 1. Một cách đổi hệ mười sang hệ hai

1.1.1 Chuyển đổi giữa hệ mười và hệ hai (tiếp)


n Đổi số thập phân hệ mười sang hệ hai
0,12510 = 0,0012

0,125 x 2 = 0 ,250
0,250 x 2 = 0 ,500
0,500 x 2 = 1 ,000

n Số BCD (số hệ mười mã hoá bằng hệ hai)


Số BCD thích hợp cho các thiế bị đo có hiển thị số ở đầu ra.
123410 = 0001 0002 0003 0004BCD
n Hệ mười sáu
123410 = 0100 1101 00102 = 4D216

2
1.2 Các phép toán số học đối với hệ hai
1.2.1 Phép cộng
ana(n-1) ... a2a1a0 + bmb(m-1) ... b2b1b0 = ckc(k-1) ... c2c1c0 (hệ cơ số x)
ci = (ai + bi + (ai-1 + bi-1)%x )/x
Ví dụ cộng hệ hai 1101 1001
+
0001 1011
1111 0100

1.2.2 Phép trừ và số bù hai


a. Phép trừ
ana(n-1) ... a2a1a0 - bmb(m-1) ... b2b1b0 = ckc(k-1) ... c2c1c0 (hệ cơ số x)
ci = (ai – Bi-1) – bi (nếu (ai – Bi-1) >= bi và Bi = 0)
ci = (ai – Bi-1 + x) – bi (nếu (ai – Bi-1) < bi và Bi = 1)
Ví dụ trừ hệ hai 1101 1001
-
0001 1011
1011 1110

1.2.2 Phép trừ và số bù hai (tiếp)


b. Số bù hai
Ta có thể thay phép trừ bằng phép cộng: cộng số bị trừ với đối số của số trừ.
Để tìm số bù hai của một số A ta làm theo các bước sau:
+ Biểu diễn số A số hệ hai của nó.
+ Tìm số bù một (bù logic) của số đó (đảo bít).
+ Cộng một vào số bù một ở trên để nhận được số bù hai của A.
1.2.3 Phép nhân
Ví dụ nhân 2 số hệ hai có độ dài 4 bít
a b a.b 1 1 01
0 0 0 1 0 01
0 1 0 1 1 01
1 0 0 0 0 0 0
1 1 1 00 0 0
1 10 1
Bảng 1. Quy tắc phép nhân 1 11 0 1 01

3
1.2.2 Phép chia
b. Chia trực tiếp
Ví dụ: 35/5 = 7 1 00 01 1 10 1
0 00 01 11
1 00 0
10 1
11 1
10 1
1 01
1 01
0
b. Chia gián tiếp
Lấy số bị chia trừ đi số chia, kết quả sẽ là số bị chia của phép toán
tiếp theo, lặp lại đến khi số bị chia nhỏ hơn số chia hoặc bằng 0.

4
Chương 2: Hệ thống vi xử lý

n Ưu và nhược điểm hệ nhúng

n Vi xử lý, vi điều khiển

n Các họ vi điều khiển

n Ngắt và xử lý ngắt

2.1 Tại sao lại sử dụng hệ nhúng?


2.1.1 Ưu điểm
n Khả năng thích nghi cao
n Tính linh động
n Khả năng thay đổi dễ dàng
n Khả năng tái sử dụng tài nguyên (thư viện,…)
n Giá thành rẻ
n ...
2.1.2 Nhược điểm
n Tốc độ phản ứng chậm
n Độ ổn định thấp
n Không xử lý được gía trị liên tục
n ...

1
2.2 Vi điều khiển, vi xử lý

Data bus

CPU
Timer,
General- Wdg, USB,
I/O
RAM ROM ADC, UARST,
Purpose PORT
DAC, I2C,…
Micro- …
processor

Address bus

TERMINOLOGY
n Microcontroller vs. Microprocessor vs. Microcomputer
n A microprocessor is a central processing unit on a
single chip.
n A microprocessor combined with support circuitry ,
peripheral I/O components and memory (RAM & ROM)
used to be called a “microcomputer.”
n A microprocessor where all the components mentioned
above are combined on the same single chip that the
microprocessor is on, is called a microcontroller.

2
2.3 Kiến trúc vi điều khiển
n Đơn vị sử lý số học (ALU)
n Bộ nhớ
n Input
n Output
n Đơn vị điều khiển

2.3.1 Đơn vị xử lý số học (ALU)


n Thực hiện phép toán và phép logic trên dữ liệu
n Dữ liệu có thể lấy trên bộ nhớ hoặc I/O
n Kết quả có thể được đưa ra ngoài hoặc vào bộ nhớ
(kết quả được lưu lại)

General
Purpose
Registrers

ALU

3
2.3.2 Bộ nhớ
n Lưu trữ lệnh hay dữ liệu
n Có thể để lưu trữ dữ liệu tạm thời
n Có thể ghi/đọc được bởi bộ điều khiển

Program Memory Data Memory Data Memory


$000 $000
32 Gen. Purpose $0000
Program Flash Working Resisters $001F
$0020 EEPROM
(4K x 16)
64 I/O Resisters (512 x 8)
$005F
$0060
$1FF

Internal SRAM
(512 x 8)

$025F

$FFF

2.3.3 Input
n Thiết bị cho phép thông tin và dữ liệu vào bên trong
bộ vi điều khiển
n Ví dụ: ADC, I2C, UART, …

2.3.4 Output
n Thiết bị chuyển đổi thông tin và dữ liệu từ bộ nhớ ra
thiết bị ngoại vi.
n Thiết bị ngoại vi: LED, LCD, máy in, …

4
2.3.5 Đơn vị điều khiển
n Cung cấp xung nhịp và điều khiển tín hiệu
n Tìm nạp lệnh và dữ liệu
n Chuyển dữ liệu tới/từ I/O
n Giải mã lệnh
n Thực hiện phép tính số học/logic
n Đáp ứng tín hiệu ngoài (Reset/Ngắt)

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


n Vi điều khiển 8051
n 8051, 89Cxx, 89Sxx, 89Dxx,…

n Vi điều khiển AVR


n AVR 8 bít, AVR 16 bít,…

n Vi điều khiển PIC


n PIC 8 bít, PIC 16 bít,…

n Vi điều khiển MCUs của Philips


n P8xCxx,…

n …

5
2.3.6 Các họ vi điều khiển (tiếp – so sánh)
n Tốc độ xử lý (clock, clock cycle execution)
n Khả năng tích hợp (ADC, DAC, UART, I2C,…)
n Dải điện áp hoạt động (Operating Voltages)
n Công suất đầu ra (DC current per I/O pin)
n Khả năng chống nhiễu (Noise Reduction)
n Tập lệnh (Instruction)
n Công suất IC (Power consumption)
n ...

2.4 Ngắt và xử lý ngắt (Interrupt)


2.4.1 Khái niệm
n Ngắt là sự dừng thực hiện chương trình chính (CTC) để
thực hiện chương trình con phụ vụ ngắt(ctc)

Main Prog
ISRj
ISRi

n: IRQi m: IRQj
n + 1: m + 1:

iret iret

6
2.4.2 Cấu trúc ngắt
n Xuất hiện không được báo trước
n Phục vụ gần giống chương trình con
n Tích hợp nhiều loại ngắt
n Có ưu tiên ngắt

2.4.3 Xử lý ngắt
n Xuất hiện và cho phép ngắt
n Hoàn thành lệnh hiện tại
n Lưu trữ địa chỉ lệnh tiếp theo vào ngăn xếp
n Nạp địa chỉ ISR vào PC
n Thực hiện ISR
n Kết thúc ISR là lệnh RETI
n Khôi phục địa chỉ lệnh tiếp theo trong ngăn xếp,
chương trình tiếp tục thực hiện

7
2.4.4 Phân loại ngắt
n Ngắt mềm (software interrupt)
Là việc gọi 1 ctc (Subroutine) được xây dựng riêng mà ctc
này còn có thể được gọi bởi thiết bị ngoại vi
n Ngắt cứng (hardware interrupt)
Do port phát tín hiệu đến CPU
n Ngắt trong (internal interrupt)
Trong một số CPU để bẫy/xử lý các sự kiện trong khi thực
hiện
n Ngoại lệ (exceptions)
Là vấn đề hay điều kiện để CPU dừng công việc đang thực
hiện, tìm địa chỉ và thực hiện 1 ctc, được thiết kế để xử lý sự
kiện này.

8
Chương 3: Bộ nhớ

n Bộ nhớ
nhớ bán dẫ
dẫn
n Giải mã đị
Giả địa chỉ
chỉ cho bộ
bộ nhớ
nhớ
n Phối ghé
Phố bộ nhớ
ghép bộ nhớ
n Mở rộng bộ
bộ nhớ
nhớ

Bộ nhớ
3.1 Bộ nhớ bán dẫ
dẫn
n Các nhó
nhó m tí hiệu
tín hiệ
n ROM (read only memory)
n RAM (random access memory)

Memory
Radom
Read RAM Access
ROM Only
Memory
Memory

SRAM DRAM
Programmable ROM
PROM Static RAM Dynamic RAM

EPROM Erasable PROM


EEPROM CACHE
Electrically EPROM
L1, L2, L3

1
3.1.1 Cá
Các nhó
nhóm tí hiệu
tín hiệ

A0 D0
A1 D1
A2 D2
Address .. .. Data
. .
An Dm

WR WE

CS OE

Select IC RD

Hình 3. Sơ đồ khối của bộ nhớ

a. Nhó
Nhóm tí hiệu đị
tín hiệ địa chỉ
chỉ
n dụng chọ
Có tác dụ chọn ra mộ
một ô nhớ
nhớ cụ thể
thể
n Số đườ
đường đị
địa chỉ
chỉ sẽ quyế
quyết đị
định có
có tối đa bao nhiêu ô
nhớ. Ví
nhớ Ví dụ có m đườ
đường đị
địa chỉ
chỉ vậy thì
thì tối đa 2m ô nhớ
nhớ.

b. Nhó
Nhóm tí hiệu dữ
tín hiệ dữ liệ
liệu
n Thường là
Thườ là đầ
đầu ra củ
của ROM và
và là vào/ra đố
đối vớ
với RAM
n mạch nhớ
Các mạ nhớ thườ
thường có
có đầ
đầu và
vào/ra là trạng thá
là 3 trạ thái.
n Số đườ
đường dây dữ
dữ liệ
liệu quyế
quyết đị
định độ
độ dài từ
từ nhớ
nhớ của
mỗi ô nhớ
nhớ.

2
c. Nhó
Nhóm tí hiệu chọ
tín hiệ chọn vi mạ
mạch
n Chọn vi mạ
Chọ mạch sẽ
sẽ trao đổ
đổi dữ
dữ liệ
liệu.
n Các tí hiệu nà
tín hiệ thường đượ
này thườ được nố
nối vớ
với đầ
đầu ra củ
của bộ
bộ
giải mã đị
giả địa chỉ
chỉ.
mạch không đượ
n Vi mạ được chọ
chọn thì dữ liệ
thì bus dữ liệu củ
của nó
nó bị
(ở trạ
treo (ở trạng thá trở khá
thái trở kháng cao).
d. Nhó
Nhóm tí hiệu điề
tín hiệ điều khiể
khiển
n Cho phé
phép dữdữ liệ
liệu ra bus.
dữ liệ
n Bus dữ liệu bị
bị treo nế
nếu không có hiệu điề
có tín hiệ điều khiể
khiển.
n Mạch thườ
thường chỉchỉ có một tí hiệu điề
tín hiệ điều khiể
khiển đọ
đọc/ghi.

3.1.2 ROM
n Bộ nhớ
nhớ có nội dung đã ghi sẵ
sẵn chỉ
chỉ để
để đọ
đọc ra
Chỉ nạp và
n Chỉ một lầ
vào mộ lần duy nhấ
nhất
bị mất thông tin khi mấ
n Không bị mất điệ
điện

A0 D0
A1 D1
A2 D2
Address .. .. Data
. .
An Dm

WR WE
CS OE

Select IC RD

Hình 3. Bộ nhớ ROM

3
3.1.3 ROM có thể lập trì
có thể trình đượ
được
a. PROM (Programmable ROM)
n Thời gian truy cậ
Thờ cập nhanh 120-
120-250ns
n Chỉ nạp mộ
Chỉ một lầ
lần duy nhấ
nhất bằ
bằng cá
các đố
đốt chá
cháy cá cầu chì
các cầ chì
n Điệ
Điện áp khi lậ
lập trì khoảng 10-
trình khoả 10-13V
VCC

A0

Address Address A1
Bus decoder

A2

D2 D1 D0

b. EPROM (erasable PROM)


n Thời gian truy cậ
Thờ cập khoả
khoảng 120 – 450 ns
n Điệ
Điện áp lậ
lập trì khoảng 10-
trình khoả 10-25V
thể đượ
n Nó có thể được xoáxoá toà bộ bằng tia cự
toàn bộ cực tí
tím.
Thời gian lậ
n Thờ lập trì một ô nhớ
trình cho mộ nhớ lâu (khoả
(khoảng 50ms)

4
c. EEPROM (electrically EPROM)
n Xoá từng đơn vị
Xoá vị nhớ
nhớ bằng điệ
điện, không cầ
cần tia cự
cực tí
tím.
n Thời gian lậ
Thờ lập trì một ô nhớ
trình cho mộ nhớ khoả
khoảng 5ms.

d. Flash memory
n Thời gian truy cập nhanh (khoảng 120ns).
n Thời gian ghi nhanh 10µs
n Xóa từng khối nhớ

5
3.1.4 RAM
n Bị mất dữ liệu khi mất điện.
n Thời gian truy cập nhanh (có loại 15ns).

R/W
Input buffers

Register 0
Register 1
Address

Decoder Register 2
input

. CS
6 line to 64 line .
.
Register 62
Register 63

Output buffers

Hình 3. Cấu tạo bên trong của 64 x 4 RAM

tiếp)
3.1.4 RAM (tiế
n SRAM (static RAM)
n Chế tạo đơn giản
n Dễ dàng bảo trì
n Thường được sử dụng trong hệ thống có bộ nhớ nhỏ

n DRAM (dynamic RAM)


n Giá thành thấp
n Đòi hỏi mạch phụ trợ
n Phải làm tươi (refresh) thường xuyên
n Thường được sử dụng trong hệ thống có bộ nhớ lớn

You might also like