II.SƠ LƯỢC PHẦN CỨNG VI ĐIỀU
KHIỂN-GIAO TIẾP BÊN NGOÀI Các thành
viên của họ MCS-51 (Atmel) có các đặc điểm chung như sau:
Có
4/8/12/20 Kbyte bộ nhớ FLASH ROM bên trong để lưu chương
trình. Nhờ vậy Vi điều khiển có khả năng nạp xoá chương
trình bằng điện đến 10000 lần.
128 Byte RAM nội
4 Port xuất/nhập 8 bit
Từ 2 đến 3 bộ định thời 16-bit
Có khả năng giao tiếp truyền dữ liệu nối tiếp
Có thể mở rộng không gian nhớ chương trình ngoài 64KByte (bộ nhớ ROM ngoại):
khi chương trình do người lập trình viết ra có dung lượng
lớn hơn dung lượng bộ nhớ ROM nội, để lưu được chương trình
này cần bộ nhớ ROM lớn hơn, cách giải quyết là kết nối Vi
điều khiển với bộ nhớ ROM từ bên ngoài (hay còn gọi là
ROM ngoại). Dung lượng bộ nhớ ROM ngoại lớn nhất mà Vi điều
khiển có thể kết nối là 64KByte Có thể mở rộng không gian nhớ dữ liệu ngoài 64KByte (bộ nhớ RAM ngoại)
Bộ xử lí bit (thao tác trên các bit riêng rẽ)
210 bit có thể truy xuất đến từng bit
1.2.KHẢO
SÁT SƠ ĐỒ CHÂN Mặc dù các thành viên của họ MSC-51 có nhiều kiểu đóng vỏ
khác nhau, chẳng hạn như hai hàng chân DIP (Dual In-Line
Pakage) dạng vỏ dẹt vuông QFP (Quad Flat Pakage) và dạng
chíp không có chân đỡ LLC (Leadless Chip Carrier) và đều có
40 chân cho các chức năng khác nhau như vào ra I/0, đọc ,
ghi , địa chỉ, dữ liệu và ngắt. Tuy nhiên, vì hầu hết các nhà
phát triển chính dụng chíp đóng vỏ 40 chân với hai hàng chân
DIP, nên chúng ta cùng khảo sát Vi điều khiển với 40 chân
dạng DIP.
Hình
1.2.1 1.2.1.
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.
1.2.2.
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. 1.2.3. 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. 1.2.4.Port 1
(P1) Port P1 gồm 8 chân (từ chân 1 đến chân
, chỉ có chức năng làm
các đường xuất/nhập, không có chức năng khác.
1.2.5.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.
1.2.6.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 như trong
bảng sau
Bit | Tên | Chức năng |
P3.0 | RxD | Ngõ vào nhận dữ liệu nối tiếp |
P3.1 | TxD | Ngõ xuất dữ liệu nối tiếp |
P3.2 | INT0 | Ngõ vào ngắt cứng thứ 0 |
P3.3 | INT1 | Ngõ vào ngắt cứng thứ 1 |
P3.4 | T0 | Ngõ vào của Timer/Counter thứ 0 |
P3.5 | T1 | Ngõ vào của Timer/Counter thứ 1 |
P3.6 | WR | Ngõ điều khiển ghi dữ liệu lên bộ nhớ ngoài |
P3.7 | RD | Ngõ điều khiển đọc dữ liệu từ bộ nhớ bên ngoài |
P1.0 | T2 | Ngõ vào của Timer/Counter thứ 2 |
P1.1 | T2X | Ngõ Nạp lại/thu nhận của Timer/Counter thứ 2 |
1.2.7.
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.
1.2.8.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.
1.2.9.
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 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
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)
(Không cần kết nối chân này khi không sử dụng đến)
1.2.10.
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.
Ghi chú: khi không sử dụng có thể bỏ trống chân này
1.2.11.
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.KẾT
NỐI PHẦN CỨNG
1.3.1.Kết nối trên hai chân XTAL1 và XTAL2. Mạch dao động được đưa vào hai chân này thông thường được
kết nối với dao động thạch anh như sau:
Ghi chú: C1,C2= 30pF
±10pF
(thường được sử dụng với C1,C2 là tụ 33pF) dùng ổn định dao
động cho thạch anh.Hình
1.2.2 Hoặc có thể
cấp tín hiệu xung clock lấy từ một mạch tạo dao động nào đó
và đưa vào Vi điều khiển theo cách sau: NC: để trống, chân XTAL2 để trống
Hình 1.2.3
1.3.2.Chu kì máy Gọi
fzat
là tần số dao động của
thạch anh. Đối với 89Sxx
có thể sử dụng thạch anh có tần số
fzat từ
2MHz đến 33MHz. Chu kì máy
là khoảng thời gian cần thiết được qui định để Vi điều khiển
thực hiện hoàn thành một lệnh cơ bản.
Một chu kì máy bằng 12 lần chu kì dao động của nguồn xung
dao động cấp cho nó.
Tck = 12.Toc Với:
Tck là chu kì máy
Toc là chu kì của nguồn xung dao động cấp
cho Vi điều khiểnNhư vậy:
Với:
Tck là chu kì máy
foc là tần số dao động cấp cho Vi điều khiển.
Ví dụ: Ta kết nối Vi điều khiển với thạch anh có tần số
fzat là 12MHz, thì chu kì máy
Tck=12/(12.10
6)=10
-6s =1
µs Chính vì lí do thạch anh có tần số
fzat là 12MHz tạo ra chu kì máy là 1
µs,
thuận lợi cho việc tính toán thời gian khi lập trình do đó thạch anh
có tần số
fzat là 12MHz
thường được sử dụng trong thực tế.
Khi giao tiếp truyền nối tiếp với máy vi tính dùng
thạch anh có tần số
fzat là
11.0592MHz.
1.3.3. Kết nối chân
RESET-chân 9 Việc kết nối
chân RESET đảm bảo hệ thống bắt đầu làm việc khi Vi điều
khiển được cấp điện, hoặc đang hoạt động mà hệ thống bị lỗi
cần tác động cho Vi điều khiển hoạt động trở lại, hoặc do
người sử dụng muốn quay về trạng thái hoạt động ban đầu. Vì
vậy chân RESET được kết nối như sau:
Với
Vi điều khiển sử dụng
thạch anh có tần số
fzat = 12MHz sử dụng C=10
µF
và R=10KΩ. Hình 1.2.4
1.3.4. Kết nối các Port với led. Các Port
khi xuất tín hiệu ở mức logic 1 thường không đạt đến 5V mà
dao động trong khoảng từ 3.5V đến 4.9V và dòng xuất ra rất
nhỏ dưới 5mA(
P0,P2 dòng xuất khoảng 1mA; P1,P3 dòng xuất ra khoảng 1mA đến 5mA)
vì vậy dòng xuất này không đủ để có thể làm led sáng
Tuy nhiên
khi các Port xuất tín hiệu ở mức logic 0 dòng điện cho phép
đi qua lớn hơn rất nhiều:
Chân Vi điều khiển khi
ở mức 0:
Dòng lớn nhất qua P0 : -25mA
Dòng lớn nhất qua P1,P2,P3 : -15mA
Do đó khi kết nối với led
hoặc các thiết bị khác Vi điều khiển sẽ gặp trở ngại là nếu
tác động làm led sáng khi Vi điều khiển xuất ở mức 1, lúc
này dòng và áp ra không đủ để led có thể sáng
rõ (led đỏ sáng ở
điện áp 1.6V-2.2V và dòng trong khoảng 10mA). Khắc phục bằng
cách sau:
a.
Cho led sáng khi Vi
điều khiển ở mức 0: Px.x thay cho các chân xuất của các Port. Ví dụ: Chân P1.1,
P2.0, v.v...
Khi Px.x ở mức 1 led không sáng
Khi
Px.x ở mức 0 led sáng
Hình 1.2.5 b.
Cho led sáng khi Vi điều khiển
xuất ở mức 1:
Như đã trình bày vì ngõ
ra Vi điều khiển khi xuất ở mức 1 không đủ để cho led sáng,
để led sáng được cần đặt thêm một điện trở kéo lên nguồn
VCC(gọi là điện trở treo).
Hình 1.2.6 Tuỳ từng trường hợp mà chọn R2 để dòng và áp phù hợp
với thiết bị nhận.
Khi Px.x ở mức 0, có sự
chênh lệch áp giữa nguồn VCC và chân Px.x -dòng điện đi từ
VCC qua R2 và Px.x về Mass, do đó hiệu điện thế giữa hai
chân led gần như bằng 0, led không sáng.
Khi Px.x ở mức 1 (+5V),dòng
điện không chạy qua chân Vi điều khiển để về mass được, có sự
lệch áp giữa hai chân led, dòng điện trong trường hợp này
qua led về Mass do đó led sáng.
R2 thường được sử dụng với giá trị
từ 4.7KΩ đến 10KΩ. Nếu tất cả các chân trong 1
Port đều kết nối để tác động ở mức cao thì điện trở R2 có
thể thay bằng điện trở thanh 9 chân vì nó có hình dáng và sử
dụng dễ hơn khi làm mạch điện.
c.
Ngoài cách sử dụng điện trở
treo, việc sử dụng
cổng đệm cũng có tác dụng thay đổi cường độ dòng điện xuất ra khi ngõ
ra ở mức 1, cổng đệm xuất ra tín hiệu ở mức 1 với áp và dòng
lớn khi
có tín hiệu mức 1 đặt ở ngõ vào. Tùy theo yêu cầu
của người thiết kế về dòng và áp cần thiết mà chọn IC đệm
cho phù hợp. Chẳng hạn từ một ngõ ra P0.0 làm nhiều led sáng
cùng lúc thì việc sử dụng IC đệm được ưu tiên hơn.
Có thể sử dụng 74HC244 hoặc
74HC245, tuy nhiên 74HC245 được cải tiến từ 74HC244 nên việc
sử dụng 74HC245 dễ dàng hơn trong thiết kế mạch.
Hình
1.2.7var geo_Partner = '325da841-dd3f-4a9f-972d-e6c98bc228bc'; var geo_isCG = true;