Tải bản đầy đủ
2 Giới thiệu về vi điều khiển AT89C51

2 Giới thiệu về vi điều khiển AT89C51

Tải bản đầy đủ

1.2.1 Các đặc điểm của vi điều khiển AT895C1 được tóm tắt như sau

• AT89C51 có những đặc điểm chung của họ vi điều khiển 8051
-

4 KB PEROM (Flash Programmable and Erasable Read Only

Memory), có khả năng tới 1000 chu kỳ ghi xoá
- Tần số hoạt động từ: 0Hz đến 24 MHz.
- 128 Byte RAM nội.
- 4 Port xuất /nhập 8 bit.
- 2 bộ Timer/counter 16 Bit.
- Giao tiếp nối tiếp điều khiển bằng phần cứng.
- 64 KB vùng nhớ mã ngoài
- 64 KB vùng nhớ dữ liệu ngoài.
- Cho phép xử lý bit.
- 210 vị trí nhớ có thể định vị bit.
- 4 chu kỳ máy (4 µs đối với thạch anh 12MHz) cho hoạt động nhân
hoặc chia.
- Có các chế độ nghỉ (Low-power Idle) và chế độ nguồn giảm (Powerdown).

• AT89C51 là một vi điều khiển 8 Bit, chế tạo theo công nghệ CMOS
chất lượng cao. Thiết bị này được chế tạo bằng cách sử dụng bộ nhớ
không bốc hơi mật độ cao của ATMEL và tương thích với chuẩn công
nghiệp MCS – 51 về tập lệnh và các chân ra.
• AT89C51 có các đặc trưng cơ bản như sau: 4 K byte Flash, 128 byte
RAM, 32 đường xuất nhập, hai bộ định thời/đếm 16-bit, một cấu trúc ngắt
hai mức ưu tiên và 5 nguyên nhân ngắt, một port nối tiếp song công, mạch
dao động và tạo xung clock trên chip.
• AT89C51 được thiết kế với logic tĩnh cho hoạt động có tần số giảm xuống
0 và hỗ trợ hai chế độ tiết kiệm năng lượng được lựa chọn bằng phần
mềm. Chế độ nghỉ dừng CPU trong khi vẫn cho phép RAM, các bộ định
thời/đếm, port nối tiếp và hệ thống ngắt tiếp tục hoạt động. Chế độ nguồn
giảm duy trì nội dung của RAM nhưng không cho mạch dao động cung

9

cấp xung clock nhằm vô hiệu hoá các hoạt động khác của chip cho đến khi
có reset cứng tiếp theo.
1.2.2 Sơ đồ khối và sơ đồ chân
Các thành viên khác của họ MCS-51 có các tổ hợp ROM (EPROM), RAM
trên chip với dung lượng khác nhau, bộ biến đổi tín hiệu tương tự-số và số-tương
tự, và có thể có thêm bộ định thời thứ ba. Mỗi một chíp của họ MCS-51 đều có
phiên bản CMOS tiêu thụ công suất thấp.

 Sơ đồ khối

10

Hình 1.1 Sơ đồ khối của họ vi điều khiển 8051

• CPU(Central Processing Unit):
Đơn vị xử lý trung tâm tính toán và điều khiển quá trình hoạt động của hệ
thống.

• OSC(Oscillator):
Mạch dao động tạo tín hiệu xung clock cung cấp cho các khối trong chip
hoạt động.

11

• Interrupt control:
Điều khiển ngắt, nhận tín hiệu ngắt từ bên ngoài, từ bộ định thời, và từ
cổng nối tiếp, lần lượt đưa các ngắt này đến CPU để xử lý.

• Other register:
Các thanh ghi khác, lưu trữ dữ liệu của các port xuất/nhập, trạng thái làm
việc của các khối bên trong chip trong suốt quá trình hoạt động.

• RAM (Random access Memory):
Bộ nhớ dữ liệu trong chip, lưu các dữ liệu.

• ROM(Read only Memory):
Bộ nhớ chương trình trong chip, lưu chương chình hoạt động của chip.

• I/O ports (In/Out ports):
Các port xuất/nhập, điều khiển việc xuất nhập dữ liệu dưới dạng song
song giữa trong và ngoài chip thông qua các port P0, P1, P2, P3.

• Serial port:
Port nối tiếp, điều khiển việc xuất nhập dữ liệu dưới dạng nối tiếp giữa
trong và ngoài chip thông qua các chân TxD, RxD.

• Timer 0, Timer 1:
Bộ định thời 0,1; dùng để định thời gian hoặc đếm sự kiện thông qua các
chân T0,T1.

• Bus control:
Điều khiển bus, điều khiển hoạt động của hệ thống bus và việc di chuyển
thông tin trên hệ thống bus.

• Bus system:
Hệ thống bus, liên kết các khối trong chip lại với nhau.

 Sơ đồ chân

12

Hình 1.2 Sơ đồ chân



-

Chân VCC
Chân số 40 là VCC cấp điện áp nguồn cho vi điều khiển .
Nguồn điện cấp là +5V±0.5.
Chân GND
Chân số 20 nối GND (hay nối Mass).
Khi thiết kế cần sử dụng một mạch ổn áp để bảo vệ cho Vi điều khiển,
cách đơn giản là sử dụng IC ổn áp 7805.

13

• Port 0 (P0)
Port 0 gồm 8 chân (từ chân 32 đến 39) có hai chức năng:

- Chức năng xuất/nhập: Các chân này được dùng để nhận tín hiệu từ bên
ngoài vào để xử lí, hoặc dùng để xuất tín hiệu ra bên ngoài, chẳng hạn

-

xuất tín hiệu để điều khiển led đơn sáng tắt.
Chức năng là bus dữ liệu và bus địa chỉ (AD7-AD0) : 8 chân này (hoặc
Port 0) còn làm nhiệm vụ lấy dữ liệu từ ROM hoặc RAM ngoại (nếu có
kết nối với bộ nhớ ngoài), đồng thời Port 0 còn được dùng để định địa chỉ

của bộ nhớ ngoài.
• Port 1 (P1)
- Port 1 gồm 8 chân (từ chân 1 đến chân 8), chỉ có chức năng làm các
đường xuất/nhập, không có chức năng khác.
• Port 2 (P2)
Port 2 gồm 8 chân (từ chân 21 đến chân 28) có hai chức năng:

- Chức năng xuất/nhập .
- Chức năng là bus địa chỉ cao (A8-A15): Khi kết nối với bộ nhớ ngoài có
dung lượng lớn, cần 2 byte để định địa chỉ của bộ nhớ, byte thấp do P0
đảm nhận, byte cao do P2 này đảm nhận.
• Port 3 (P3)
Port 3 gồm 8 chân (từ chân 10 đến 17):
- Chức năng xuất /nhập.
- Với mỗi chân có một chức năng riêng thứ hai .
Bảng dưới đây cho ta chức năng các chân của Port 3 và 2 chân P1.0, P1.1
của Port 1:
Bit
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5

Tên
RxD
TxD
INT0
INT1
T0
T1

P3.6

WR

P3.7

RD

Chức năng
Ngõ vào nhận dữ liệu nối tiếp
Ngõ xuất dữ liệu nối tiếp
Ngõ vào ngắt cứng thứ 0
Ngõ vào ngắt cứng thứ 1
Ngõ vào của Timer/Counter thứ 0
Ngõ vào của Timer/Counter thứ 1
Ngõ điều khiển ghi dữ liệu lên bộ
nhớ ngoài
Ngõ điều khiển đọc dữ liệu từ bộ nhớ

14

P1.0

T2

P1.1

T2X

bên ngoài
Ngõ vào của Timer/Counter thứ 2
Ngõ Nạp lại/thu nhận của
Timer/Counter thứ 2

• Chân RESET (RST)
Ngõ vào RST ở chân 9 là ngõ vào Reset dùng để thiết lập trạng thái ban
đầu cho vi điều khiển. Hệ thống sẽ được thiết lập lại các giá trị ban đầu nếu
ngõ này ở mức 1 tối thiểu 2 chu kì máy.

• Chân XTAL1 và XTAL2
Hai chân này có vị trí chân là 18 và 19 được sử dụng để nhận nguồn xung
clock từ bên ngoài để hoạt động, thường được ghép nối với thạch anh và các
tụ để tạo nguồn xung clock ổn định.

• Chân cho phép bộ nhớ chương trình PSEN
- PSEN ( program store enable) tín hiệu được xuất ra ở chân 29 dùng để
truy xuất bộ nhớ chương trình ngoài. Chân này thường được nối với chân

-

OE (output enable) của ROM ngoài.
Khi thực thi một chương trình ở ROM nội, chân này được duy trì ở mức

-

logic không tích cực (logic 1) .
Khi vi điều khiển làm việc với bộ nhớ chương trình ngoài, chân này phát
ra tín hiệu kích hoạt ở mức thấp và được kích hoạt 2 lần trong một chu kì

máy.
• Chân ALE (chân cho phép chốt địa chỉ-chân 30)
- Khi Vi điều khiển truy xuất bộ nhớ từ bên ngoài, port 0 vừa có chức năng
là bus địa chỉ, vừa có chức năng là bus dữ liệu do đó phải tách các đường
dữ liệu và địa chỉ. Tín hiệu ở chân ALE dùng làm tín hiệu điều khiển để
giải đa hợp các đường địa chỉ và các đường dữ liệu khi kết nối chúng với

-

IC chốt.
Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động đưa vào Vi
điều khiển, như vậy có thể dùng tín hiệu ở ngõ ra ALE làm xung clock

-

cung cấp cho các phần khác của hệ thống.
Khi không sử dụng có thể bỏ trống chân này.

15

• Chân EA
- Chân EA dùng để xác định chương trình thực hiện được lấy từ ROM nội
-

hay ROM ngoại.
Khi EA nối với logic 1(+5V) thì Vi điều khiển thực hiện chương trình lấy

-

từ bộ nhớ nội.
Khi EA nối với logic 0(0V) thì Vi điều khiển thực hiện chương trình lấy
từ bộ nhớ ngoại .

1.3 Bộ nhớ chương trình- Bộ nhớ ROM
Bộ nhớ ROM dùng để lưu chương trình do người viết chương trình viết ra.
Chương trình là tập hợp các câu lệnh thể hiện các thuật toán để giải quyết các
công việc cụ thể, chương trình do người thiết kế viết trên máy vi tính, sau đó
được đưa vào lưu trong ROM của vi điều khiển, khi hoạt động, vi điều khiển truy
xuất từng câu lệnh trong ROM để thực hiện chương trình. ROM còn dùng để
chứa số liệu các bảng, các tham số hệ thống, các số liệu cố định của hệ thống.
Trong quá trình hoạt động nội dung ROM là cố định, không thể thay đổi, nội
dung ROM chỉ thay đổi khi ROM ở chế độ xóa hoặc nạp chương trình (do các
mạch điện riêng biệt thực hiện).
Bộ nhớ ROM được tích hợp trong chip Vi điều khiển với dung lượng tùy
vào chủng loại cần dùng.
Bộ nhớ ROM được định địa chỉ theo từng Byte, các byte được đánh địa
chỉ theo số hex-số thập lục phân, bắt đầu từ địa chỉ 0000H, khi viết chương trình
cần chú ý đến địa chỉ lớn nhất trên ROM, chương trình được lưu sẽ bị mất khi địa
chỉ lưu vượt qua vùng này.
Ngoài ra Vi điều khiển còn có khả năng mở rộng bộ nhớ ROM với việc
giao tiếp với bộ nhớ ROM bên ngoài lên đến 64Kbyte (địa chỉ từ 0000H đến
FFFFH).
1.4 Bộ nhớ dữ liệu-Bộ nhớ RAM
Bộ nhớ RAM dùng làm môi trường xử lý thông tin, lưu trữ các kết quả
trung gian và kết quả cuối cùng của các phép toán, xử lí thông tin. Nó cũng dùng
để tổ chức các vùng đệm dữ liệu, trong các thao tác thu phát, chuyển đổi dữ liệu.

16

RAM nội trong vi điều khiển được tổ chức như sau:

- Các vị trí trên RAM được định địa chỉ theo từng Byte bằng các số thập
-

lục phân (số Hex).
Các bank thanh ghi có địa chỉ 00H đến 1FH .
210 vị trí được định địa chỉ bit .
Các vị trí RAM bình thường .
Các thanh ghi có chức năng đặc biệt có địa chỉ từ 80H đến FFH.

Các byte RAM 8 bit của vi điều khiển được gọi là "ô nhớ", nếu các ô nhớ
có chức năng đặc biệt thường được gọi là "thanh ghi", nếu là bit thì được gọi là
"bit nhớ".
1.4.1 Các bank thanh ghi
Các bank thanh ghi có địa chỉ byte từ 00H đến 1FH, có 8 thanh ghi trong
mỗi bank, các thanh ghi được đặt tên từ R0-R7, các thanh ghi này được đặt mặc
định trong bank 1. Có 4 bank thanh ghi và tại mỗi thời điểm chỉ có một bank
thanh ghi được truy xuất với các thanh ghi từ R0 đến R7, để thay đổi việc truy
xuất các thanh ghi trên các bank thanh ghi, người dùng phải thay đổi giá trị các
bit chọn bank trong thanh ghi trạng thái PSW bằng các câu lệnh trong chương
trình.
Các lệnh dùng các thanh ghi từ R0 đến R7 mất khoảng không gian lưu trữ
ít hơn và thời gian thực hiện nhanh hơn so với các lệnh dùng các ô nhớ RAM
khác, ngoài ra các thanh ghi này còn có thêm một số chức năng đặc biệt khác, vì
lí do này các dữ liệu sử dụng thường được người viết chương trình đưa vào lưu
trong các thanh ghi này. Ngoài ra, có thể truy xuất thanh ghi trên các bank thanh
ghi như với các ô nhớ bình thường khác. Ví dụ: nguời dùng có thể truy xuất đến
thanh ghi R7 bằng ô nhớ 07H.
1.4.2 Vùng RAM truy xuất từng bit
Trên RAM nội có 210 ô nhớ bit được định địa chỉ và có thể truy xuất đến
từng bit, các bit nhớ này cũng được định địa chỉ bằng các số thập lục phân- số
Hex. Trong đó có 128 bit nằm trong các ô nhớ có địa chỉ byte từ 20H đến 2FH,
các bit nhớ còn lại chứa trong nhóm thanh ghi có chức năng đặc biệt.

17