z
Đồ án vi xử lý đề tài
mạch đếm sản phẩm
Đồ án vi xử lý GVHD:Nguyễn Minh Quân
Nhóm 05:lớp ĐTVTA_K3 _______________
Trang
1
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
…………ngày …… tháng …… năm 2011
Giáo viên hướng dẫn
Đồ án vi xử lý GVHD:Nguyễn Minh Quân
Nhóm 05:lớp ĐTVTA_K3 _______________
Trang
2
NHẬN XÉT CỦA HỘI ĐỒNG CHẤM ĐIỂM
…………ngày …… tháng …… năm 2011
Giáo viên phản biện
Đồ án vi xử lý GVHD:Nguyễn Minh Quân
Nhóm 05:lớp ĐTVTA_K3 _______________
Trang
3
Ngày nay, khái niệm kỹ thuật số ñã trở thành quen thuộc với nhiều người, bởi
vì sự phát triển của ngành kỹ thuật số này ñã có ảnh hưởng rất lớn ñến ngành kinh tế
toàn cầu. Có người ñã nêu lên ý tưởng gọi nền kinh tế của thời ñại chúng ta là “ nền
kinh tế kỹ thuật số “, “số hóa” ñã gần như vượt khỏi ranh giới của một thuật ngữ kỹ
thuật . Nhờ có ưu ñiểm của xử lý số như ñộ tin cậy trong truyền dẫn, tính ña thích nghi
và kinh tế của nhiều phần mềm khác nhau, tính tiện lợi trong ñiều khiển và khai thác
mạng.
Số hóa ñang là xu hướng phát triển tất yếu của nhiều lĩnh vực kỹ thuật và kinh
tế khác nhau. Không chỉ trong lĩnh vục thông tin liên lạc và tin học. Ngày nay, kỹ thật
số ñã và ñang thâm nhập mạnh mẽ vào Kỹ thuật ñiện tử, Điều khiển tự ñộng, phát
thanh truyền hình, y tế, nông nghiệp…và ngay cả trong các dụng cụ sinh hoạt gia ñình.
Ngay từ những ngày ñầu khai sinh, kỹ thuật số nói riêng và ngành ñiện tử nói
chung ñã tạo ra nhiều bước ñột phá mới mẽ cho các ngàng kinh tế khác và còn ñảm
bảo ñược yêu cầu của người dùng cả về chất lượng và dịch vụ. Đồng thời kiến thức về
kỹ thuật số là không thể thiếu ñối với mỗi sinh viên, nhất là sinh viên ñiện tử.
Công nghệ kĩ thuật số có nhiều ứng dụng rộng rãi trong thực tế, với nhiều những
ứng dụng rất tiện ích sử dụng trong kĩ thuật, trong ñời sống, trong công nghiệp ở các
nhà máy và xí nghiệp sản xuất… và cả những tiện nghi trong ngôi nhà của chúng ta.
Một trong những ứng dụng tiện ích của kĩ thuật số ñó là chức năng ñếm với các mạch
ñếm như ñếm sản phẩm, ñếm số người vào phòng, thang máy hay ñếm xe ra vào
cổng… ñó ñều là những ứng dụng rất thực tế. Và trong bài ñồ án này em ñã ñược
nghiên cứu về mạch ñếm sản phẩm.
B
B
à
à
i
i
b
b
á
á
o
o
c
c
á
á
o
o
n
n
à
à
y
y
ñ
ñ
u
u
ợ
ợ
c
c
t
t
ì
ì
m
m
k
k
i
i
ế
ế
m
m
t
t
ừ
ừ
n
n
h
h
i
i
ề
ề
u
u
n
n
g
g
u
u
ồ
ồ
n
n
k
k
h
h
á
á
c
c
n
n
h
h
a
a
u
u
n
n
h
h
ư
ư
:
:
s
s
á
á
c
c
h
h
b
b
á
á
o
o
,
,
i
i
n
n
t
t
e
e
r
r
n
n
e
e
t
t
…
… Và do kiến thức còn hạn hẹp, nên trong quá trình thực hiện ñồ án em không
thể tránh khỏi sai sót và ñề tài chưa ñựơc phát triển một cách hoàn hảo, mong quý thầy
cô trong hội ñồng khảo thí bỏ qua và có hướng giúp ñỡ ñể em có thể hoàn chỉnh kiến
thức của mình .
Em xin chân thành cảm ơn !
Đồ án vi xử lý GVHD:Nguyễn Minh Quân
Nhóm 05:lớp ĐTVTA_K3 _______________
Trang
4
CHƯƠNG I: ĐẶT VẤN ĐỀ
I.1 Lí do chọn ñề tài:
Ngày nay việc nghiên cứu ứng dụng vi ñiều khiển vào các lĩnh vực cuộc sống khá
phổ biến,ñiển hình là các loại vi ñiều khiển họ 8051.Ở trong công nghiệp cũng như
trong các lĩnh vực liên quan ñếm sản phẩm thì ñã phát huy ñược lợi thế khi sử dụng vi
ñiều khiển,việc ñếm sản phẩm ñã trở nên ñơn giản hơn, giảm bớt ñược nhiều sức lao
ñộng và thời gian.Được sự gợi ý của giáo viên hướng dẫn NGUYỄN MINH QUÂN và
qua sự tìm hiểu của các thành viên trong nhóm,nên chúng em ñã chọn ñề tài nghiên
cứu và thiết kế mạch ñếm sản phẩm với ứng dụng của họ vi ñiều khiển 8051.Đây cũng
là một cơ hội tốt ñể ứng dụng những kiến thức của môn VI XỬ LÝ ñã học vào thực tế.
I.2 Mục tiêu của ñề tài
Đề tài nhằm mục ñích thiết kế và chế tạo thành công mạch ñếm sản phẩm sử dụng
họ vi ñiều khiển 8051,số lượng sản phẩm ñếm ñược nhập từ bàn phím,hiện thị kết quả
ñếm ñược bằng hệ thống LED 7 thanh và báo hiệu bằng tín hiệu ñèn LED.
I.3 Vấn ñề cần giải quyết
+Tìm hiểu các tài liệu liên quan ñến các ñề tài nghiên cứu, ñưa ra các giải pháp tối
ưu cho việc thiết kế chế tạo sản phẩm thực tế.
+Thiết kế và chế tạo 1 board mạch gồm các khối: khối xử lí trung tâm dùng họ vi
ñiều khiển 8051,khối cảm biến,khối hiện thị,bàn phím.
+Tiến hành viết chương trình phần mềm phối hợp hoạt ñộng các khối dưới sự ñiều
khiển của khối mạch chính chứa IC AT89S52
Đồ án vi xử lý GVHD:Nguyễn Minh Quân
Nhóm 05:lớp ĐTVTA_K3 _______________
Trang
5
CHƯƠNG II: GIẢI QUYẾT VẤN ĐỀ
II.1.Cơ sở lý thuyết:
II.1.1 Tổng quan về họ vi ñiều khiển 8051
1. Giới thiệu chung về cấu trúc phần cứng
8051là IC vi ñiều khiển ,là vi mạch tổng quát của họ MCS-51, linh kiện ñầu
tiên của họ này ñược hãng sản xuất Intel ñưa ra thị trường .
IC 8051 có các ñặc trưng ñược tóm tắt như sau:
• 4 KB EPROM bên trong.
• 128 Byte RAM nội.
• 4 Port xuất /nhập I/O 8 bit.
• Giao tiếp nối tiếp.
• 64 KB vùng nhớ mã ngoài
• 64 KB vùng nhớ dữ liệu ngoại.
• Xử lý Boolean (hoạt ñộng trên bit ñơn).
• 210 vị trí nhớ có thể ñịnh vị bit.
• 4µs cho hoạt ñộng nhân hoặc chia.
Hình : Sơ ñồ chân của vi ñiều khiển 8051
Đồ án vi xử lý GVHD:Nguyễn Minh Quân
Nhóm 05:lớp ĐTVTA_K3 _______________
Trang
6
Port 0 : Port0 (P0.0-P0.7) có số chân từ 32-39 .
Port 0 có 2 chức năng:
-Port xuất nhập dữ liệu (P0.0-P0.7) → không sử dụng bộ nhớ ngoài và bus ñịa chỉ
byte thấp và bus dữ liệu ña hợp (AD0-AD7) → có sử dụng bộ nhớ ngoài.
-Port0 ñóng vai trò xuất nhập dữ liệu thì phải sử dụng các ñiện trở kéo bên ngoài.
Port1: Port1(P1.0-P1.7) có số chân từ 1 -8. Port có chức năng xuất nhập dữ
liệu (P1.0-P1.7) →sử dụng hoặc không sử dụng bộ nhớ ngoài
Port 2: Port(P2.0-P2.7) có số chân từ 21-28.Port có 2 chức năng :port xuất
nhập dữ liệu(p2.0-P2.7) không sử dụng bộ nhớ ngoài và bus ñịa chỉ cao(A8-A5) có sử
dụng bộ nhớ ngoài
Port 3: Port 3( P3.0-P3.7) có số chân từ 10-17.Có 2 chức năng: Khi không
hoạt ñộng xuất / nhập,các chân của port3 có nhiều chức năng riêng (mỗi chân có chức
năng riêng liên quan ñến ñặc trưng cụ thể của 8051)
*Bảng chức năng của port3 và 2 chân của P1.0 , P1.1 của port.
Bit
Tên Đ
ịa chỉ bit
Chức năng
P3.0
RxD B0H Chân nhận dữ liệu của bit nối tiếp
P3.1
TxD B1H Chân phát dữ liệu của port nối tiếp
P3.2
B2H Ngõ vào ngắt ngoài 0
P3.3
B3H Ngõ vào ngắt ngoài 1
P3.4
T0
B4H Ngõ vào của bộ ñịnh thời /ñiểm 0
P3.5
T1
B5H Ngõ vào của bộ ñịnh thời /ñiểm1
P3.6
B6H Điều khiển ghi bộ nhớ dữ liệu
P3.7
B7H Điều khiển ñọc bộ nhớ dữ liệu
P1.0
T2 90H Ngõ vào của bộ ñịnh thời /ñiểm 2
P1.1
T2EX 91H Nạp lại /thu nhận của bộ ñịnh thời 2
* Chân PSEN:
- PSEN cho phép bộ nhớ chương trình,chân số 29
- là tín hiệu cho phép truy xuất (ñọc) bộ nhớ chương trinh (ROM) ngoài
- Là mức xuất tích cực ở mức thấp PSEN =0 → trong thời gian CPU tìm - nạp lệnh từ
ROM ngoài ,PSEN =1 → CPU sử dụng ROM trong.
* Chân ALE :
- ALE cho phép chốt ñịa chỉ,chân số 30
-Là tín hiệu cho phép chốt ñịa chỉ ñể thực hiện việc giải ña hợp cho bus ñịa chỉ byte
thấp và byte dữ liệu ña hợp (AD0-AD7).
Đồ án vi xử lý GVHD:Nguyễn Minh Quân
Nhóm 05:lớp ĐTVTA_K3 _______________
Trang
7
* Chân EA: Là chân truy xuất ngoài
- Là tín hiệu cho phép truy xuất ngoài (sử dụng )bộ nhớ chương trình ROM ngoài.
- Là tín hiệu nhập tích cực ở mức thấp EA =0 sử dụng chương trình ROM ngoài,AE=1
sử dụng chương trình ROM trong.
*Chân XTAL1,XTAL2: tinh thể thạch anh chân số 18,19
-Dùng ñể nối thạch anh với mạch dao ñộng tạo xung clock bên ngoài cung cấp xung
clock cho chíp hoạt ñộng .
- XTAL1 Ngõ vào mạch tạo xung clock trong chíp
- XTAL2 Ngõ ra mạch tạo xung clock trong chip
f =12MHz f tần số danh ñịnh
Chân RST: thiết lập lại là chân số 9
- Là tín hiệu cho phép thiết lập lại trạng thái ban ñầu cho hệ thống
- Là tín hiệu nhập tích cực mức cao
RST=0 chip 8051 hoạt ñộng bình thường, RTS=1 chip 8051 ñược thiết lập lại trạng
thái ban ñầu
Chân Vcc, GND: Nguồn cung cấp ñiện chân số 40-20
-Cung câp nguồn ñiện cho chip hoạt ñộng
- Vcc =+5V±10% và GND=0V
2.Giới thiệu chung về cấu trúc bên trong
*Sơ ñồ khối bên trong 8051
Đồ án vi xử lý GVHD:Nguyễn Minh Quân
Nhóm 05:lớp ĐTVTA_K3 _______________
Trang
8
Hình : sơ ñồ cấu trúc bên trong của 8051
*Tổ chức bộ nhớ của 8051
Bộ nhớ bên trong 8051 bao gồm RAM và ROM.RAM bao gồm nhiều thành phần:
lưu trữ ña dụng,phần lưu trữ ñịa chỉ hoá từng bank thanh ghi và các thanh ghi chức
năng ñặc biệt.
8051 có bộ nhớ theo cấu trúc Harvard: có những vùng nhớ riêng biệt cho chương
trình và dữ liệu.Chương trình và dữ liệu có thể chứa bên trong 8051 nhưng 8051 vẫn
có thể kết nối 64k byte bộ nhớ chương trình và 64k byte bộ nhớ dữ liệu mở rộng.
RAM trong 8051 ñược phân chia như sau:
- các bank thanh ghi có ñịa chỉ từ 00H ñến 1FH.
- RAM ñịa chỉ hoá từng bít có ñịa chỉ từ 20H ñến 2FH.
- RAM ña dụng từ 30H ñến 7FH.
- Các thanh ghi chức năng ñặc biệt từ 80H ñến FFH.
Đồ án vi xử lý GVHD:Nguyễn Minh Quân
Nhóm 05:lớp ĐTVTA_K3 _______________
Trang
9
-
Hình : Tổ chức bộ nhớ của 8051
Đồ án vi xử lý GVHD:Nguyễn Minh Quân
Nhóm 05:lớp ĐTVTA_K3 _______________
Trang
10
II.1.2 Tìm hiểu IC AT89S52
1.Cấu trúc phần cứng
a.Sơ ñồ chânAT89S52
Hình 1: Sơ ñồ chân của IC AT89S52
*Sơ ñồ khối của AT89S52
Hình 2:Sơ ñồ khối AT89S52
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P0.0
P0.1
P0.2
P0.3
P0.4
P0.5
P0.6
P0.7
P2.7
P2.6
P2.5
P2.4
P2.3
P2.2
P2.1
P2.0
RESET
XTAL1
XTAL2
RXD
TXD
INT0
INT1
T0
T1
WR
RD
GND
VCC
PSEN
ALE/P
EA/VP
Đồ án vi xử lý GVHD:Nguyễn Minh Quân
Nhóm 05:lớp ĐTVTA_K3 _______________
Trang
11
b. Chức năng các chân của AT89S52
AT89C51 có tất cả 40 chân có chức năng như các ñường xuất nhập.
Trong ñó có 24 chân có tác dụng kép (có nghĩa là 1 chân có 2 chức năng), mỗi ñường
có thể hoạt ñộng như ñường xuất nhập hoặc như ñường ñiều khiển hoặc là thành phần
của các bus dữ liệu và bus ñịa chỉ.
#Các cổng xuất nhập
- Port 0: Port 0 là port có 2 chức năng ở các chân 32 - 39 của 8951. Trong các
thiết kế cỡ nhỏ không dùng bộ nhớ mở rộng nó có chức năng như các ñường I/O. Đối
với các thiết kế cỡ lớn có bộ nhớ mở rộng, nó ñược kết hợp giữa bus ñịa chỉ và bus dữ
liệu.
- Port 1: Port 1 là port I/O trên các chân 1-8. Các chân ñược ký hiệu P1.0, P1.1,
p1.2, p1.7 có thể dùng cho giao tiếp với các thiết bị ngoài nếu cần. Port 1 không có
chức năng khác, vì vậy chúng chỉ ñược dùng cho giao tiếp với các thiết bị bên ngoài.
- Port 2: Port 2 là 1 port có tác dụng kép trên các chân 21- 28 ñược dùng như
các ñường xuất nhập hoặc là byte cao của bus ñịa chỉ ñối với các thiết bị dùng bộ nhớ
mở rộng.
- Port 3: Port 3 là port có tác dụng kép trên các chân 10-17. Các chân của port
này có nhiều chức năng, các công dụng chuyển ñổi có liên hệ với các ñặc tính ñặc biệt
của 8951 như ở bảng sau:
Bảng 1: Chức năng của các chân của Port 3
# Các ngõ tín hiệu ñiều khiển
- Ngõ tín hiệu PSEN (Program Store Enable):
PSEN là tín hiệu ngõ ra ở chân 29 có tác dụng cho phép ñọc bộ nhớ
chương trình mở rộng thường ñược nối ñến chân OE\ (Output Enable) của EPROM
Bit Tên Chức năng chuyển ñổi
P3.0 RXT Ngõ vào 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ủaTIMER/COUNTER thứ 0
P3.5 T1 Ngõ vào củaTIMER/COUNTER thứ 1
P3.6 WR\ Tín hiệu ghi dữ liệu lên bộ nhớ ngoài
P3.7 RD\ Tín hiệu ñọc bộ nhớ dữ liệu ngoài
Đồ án vi xử lý GVHD:Nguyễn Minh Quân
Nhóm 05:lớp ĐTVTA_K3 _______________
Trang
12
cho phép ñọc các byte mã lệnh.
PSEN ở mức thấp trong thời gian Microcontroller 8951 lấy lệnh. Các mã lệnh
của chương trình ñược ñọc từ EPROM qua bus dữ liệu và ñược chốt vào thanh ghi
lệnh bên trong 8951 ñể giải mã lệnh. Khi 8951 thi hành chương trình trong EPROM
nội PSEN sẽ ở mức logic 1.
- Ngõ tín hiệu ñiều khiển ALE (Address Latch Enable):
Khi 8951 truy xuất bộ nhớ bên ngoài, port 0 có chức năng là bus ñịa chỉ và bus
dữ liệu do ñó phải tách các ñường dữ liệu và ñịa chỉ. Tín hiệu ra ALE ở chân thứ 30
dùng làm tín hiệu ñiều khiển ñể giải ña hợp các ñường ñịa chỉ và dữ liệu khi kết nối
chúng với IC chốt.
Tín hiệu ra ở chân ALE là một xung trong khoảng thời gian port 0 ñóng vai trò
là ñịa chỉ thấp nên chốt ñịa chỉ hoàn toàn tự ñộng.
Các xung tín hiệu ALE có tốc ñộ bằng 1/6 lần tần số dao ñộng trên chip và có thể ñược
dùng làm tín hiệu clock cho các phần khác của hệ thống. Chân ALE ñược dùng làm
ngõ vào xung lập trình cho EPROM trong 8951.
- Ngõ tín hiệu EA\(External Access):
Tín hiệu vào EA\ ở chân 31 thường ñược mắc lên mức 1 hoặc mức 0. Nếu ở
mức 1, 8951 thi hành chương trình từ EPROM nội trong khoảng ñịa chỉ thấp 4 Kbyte.
Nếu ở mức 0, 8951 sẽ thi hành chương trình từ bộ nhớ mở rộng. Chân EA\ ñược lấy
làm chân cấp nguồn 12V khi lập trình cho EPROM trong 8951.
- Ngõ tín hiệu RST (Reset):
Ngõ vào RST ở chân 9 là ngõ vào Reset của 8951. Khi ngõ vào tín hiệu này
ñưa lên cao ít nhất là 2 chu kỳ máy, các thanh ghi bên trong ñược nạp những giá trị
thích hợp ñể khởi ñộng hệ thống. Khi cấp ñiện mạch tự ñộng Reset.
RESET
VC C
10K
R2
100
R1
1 3
2 4
P
104
C6
+
10uF
C3
Hình 3: Mạch Reset hệ thống
Trạng thái của tất cả các thanh ghi của 8051 sau khi reset hệ thống ñược tóm tắt trong
bảng sau:
Đồ án vi xử lý GVHD:Nguyễn Minh Quân
Nhóm 05:lớp ĐTVTA_K3 _______________
Trang
13
Bảng 2: Trạng thái các thanh ghi sau khi Reset
Quan trọng nhất trong các thanh ghi trên là thanh ghi ñếm chương trình, nó
ñược ñặt lại 0000H. Khi RST trở lại mức thấp, việc thi hành chương trình luôn bắt ñầu
ở ñịa chỉ ñầu tiên trong bộ nhớ trong chương trình: ñịa chỉ 0000H. Nội dung của RAM
trên chip không bị thay ñổi bởi lệnh reset.
Các ngõ vào bộ dao ñộng X1,X2:
Bộ dao ñộng ñược ñược tích hợp bên trong 8951, khi sử dụng 8951 người thiết
kế chỉ cần kết nối thêm thạch anh và các tụ. Tần số thạch anh thường sử dụng cho
8951 là 12Mhz. Chân 40 (Vcc) ñược nối lên nguồn 5V.
2.Cấu trúc bên trong
a. Tổ chức bộ nhớ (Organizational memory)
Bộ nhớ trong 8951 bao gồm EPROM và RAM. RAM trong 8951 bao gồm
nhiều thành phần: phần lưu trữ ña dụng, phần lưu trữ ñịa chỉ hóa từng bit, các bank
thanh ghi và các thanh ghi chức năng ñặc biệt. Họ 8951 có bộ nhớ theo cấu trúc
Harvard: có những vùng bộ nhớ riêng biệt cho chương trình và dữ liệu. Chương trình
và dữ liệu có thể chứa bên trong 8951 nhưng 8951 vẫn có thể kết nối với 64K byte bộ
nhớ chương trình và 64K byte dữ liệu.
* Bản ñồ bộ nhớ Data trên chip như sau:
Thanh ghi Nội dung Thanh ghi Nội dung
Đếm chương trình 0000H IP XXX00000B
Tích lũy 00H IE 0XX00000B
B 00H Các thanh ghi ñịnh thời 00H
PSW 00H SCON 00H
SP 07H SBUF 00H
DPTR 0000H PCON(HMOS) 0XXXXXXXB
Port 0-3 FFH PCON(CMOS) 0XXX0000B
Đồ án vi xử lý GVHD:Nguyễn Minh Quân
Nhóm 05:lớp ĐTVTA_K3 _______________
Trang
14
Hình 5:Bản ñồ bộ nhớ Data trên chip AT89S52
Hai ñặc tính cần chú ý là:
- Các thanh ghi và các port xuất nhập ñã ñược ñịnh vị (xác ñịnh) trong bộ nhớ
và có thể truy xuất trực tiếp giống như các ñịa chỉ bộ nhớ khác.
- Ngăn xếp bên trong Ram nội nhỏ hơn so với Ram ngoại như trong các bộ
Microcontroller khác.
*RAM bên trong AT89S52 ñược phân chia như sau:
1 Các bank thanh ghi có ñịa chỉ từ 00H ñến 1FH.
2 RAM ñịa chỉ hóa từng bit có ñịa chỉ từ 20H ñến 2FH.
3 RAM ña dụng từ 30H ñến 7FH.
+ Vùng RAM ña dụng:
Từ hình vẽ cho thấy 80 byte ña dụng chiếm các ñịa chỉ từ 30H ñến 7FH, 32 byte
dưới từ 00H ñến 1FH cũng có thể dùng với mục ñích tương tự (mặc dù
các ñịa chỉ này ñã có mục ñích khác).
Mọi ñịa chỉ trong vùng RAM ña dụng ñều có thể truy xuất tự do dùng kiểu ñịa
chỉ trực tiếp hoặc gián tiếp.
+ RAM có thể truy xuất từng bit:
AT89S52 chứa 210 bit ñược ñịa chỉ hóa, trong ñó có 128 bit có chứa các byte
chứa các ñịa chỉ từ 20H ñến 2FH và các bit còn lại chứa trong nhóm thanh ghi có chức
năng ñặc biệt. Ý tưởng truy xuất từng bit bằng phần mềm là các ñặc tính mạnh của
microcontroller xử lý chung. Các bit có thể ñược ñặt, xóa, AND, OR, … , với 1 lệnh
Đồ án vi xử lý GVHD:Nguyễn Minh Quân
Nhóm 05:lớp ĐTVTA_K3 _______________
Trang
15
ñơn. Đa số các microcontroller xử lý ñòi hỏi một chuỗi lệnh ñọc - sửa - ghi ñể ñạt
ñược mục ñích tương tự. Ngoài ra các port cũng có thể truy xuất ñược từng bit.
128 bit có chứa các byte có ñịa chỉ từ 00H -1FH cũng có thể truy xuất như các
byte hoặc các bit phụ thuộc vào lệnh ñược dùng.
+ Các bank thanh ghi :
32 byte thấp của bộ nhớ nội ñược dành cho các bank thanh ghi. Bộ lệnh 89S52
hổ trợ 8 thanh ghi có tên là R0 - R7 và theo mặc ñịnh sau khi reset hệ thống, các thanh
ghi này có các ñịa chỉ từ 00H - 07H.
Các lệnh dùng các thanh ghi RO - R7 sẽ ngắn hơn và nhanh hơn so với các lệnh
có chức năng tương ứng dùng kiểu ñịa chỉ trực tiếp. Các dữ liệu ñược dùng thường
xuyên nên dùng một trong các thanh ghi này. Do có 4 bank thanh ghi nên tại một thời
ñiểm chỉ có một bank thanh ghi ñược truy xuất bởi các thanh ghi RO - R7 ñể chuyển
ñổi việc truy xuất các bank thanh ghi ta phải thay ñổi các bit chọn bank trong thanh ghi
trạng thái.
b.Các thanh ghi (the registers)
Các thanh ghi nội của AT89S52 ñược truy xuất ngầm ñịnh bởi bộ lệnh.
Các thanh ghi trong AT89S52 ñược ñịnh dạng như một phần của RAM trên chip vì
vậy mỗi thanh ghi sẽ có một ñịa chỉ (ngoại trừ thanh ghi bộ ñếm
chương trình và thanh ghi lệnh vì các thanh ghi này hiếm khi bị tác ñộng
trực tiếp). Cũng như R0 ñến R7, AT89S52 có 21 thanh ghi có chức năng ñặc biệt
(SFR: Special Function Register) ở vùng trên của RAM nội từ ñịa chỉ 80H - FFH.
Chú ý: tất cả 128 ñịa chỉ từ 80H ñến FFH không ñược ñịnh nghĩa, chỉ có 21
thanh ghi có chức năng ñặc biệt ñược ñịnh nghĩa sẵn các ñịa chỉ.
Ngoại trừ thanh ghi A có thể ñược truy xuất ngầm như ñã nói, ña số các thanh
ghi có chức năng ñiệt biệt SFR có thể ñịa chỉ hóa từng bit hoặc byte.
Thanh ghi trạng thái chương trình (PSW: Program Status Word):
Đồ án vi xử lý GVHD:Nguyễn Minh Quân
Nhóm 05:lớp ĐTVTA_K3 _______________
Trang
16
Từ trạng thái chương trình ở ñịa chỉ D0H ñược tóm tắt như sau:
Bit Symbol Address Description
PSW.7 CY D7H Cary Flag
PSW.6 AC D6H Auxiliary Cary Flag
PSW.5 F0 D5H Flag 0
PSW4 RS1 D4H Register Bank Select 1
PSW.3 RS0 D3H Register Bank Select 0
00=Bank 0; address 00H07H
01=Bank 1; address 08H0FH
10=Bank 2; address 10H17H
11=Bank 3; address 18H1FH
PSW.2 OV D2H Overlow Flag
PSW.1 - D1H Reserved
PSW.0 P DOH Even Parity Flag
Chức năng từng bit trạng thái chương trình
- Cờ Carry CY (Carry Flag):
- Cờ nhớ có tác dụng kép. Thông thường nó ñược dùng cho các lệnh toán học: C=1
nếu phép toán cộng có sự tràn hoặc phép trừ có mượn và ngược lại C=0 nếu phép toán
cộng không tràn và phép trừ không có mượn.
- Cờ Carry phụ AC (Auxiliary Carry Flag):Khi cộng những giá trị BCD
(Binary Code Decimal), cờ nhớ phụ AC ñược set nếu kết quả 4 bit thấp nằm
trong phạm vi ñiều khiển 0AH - 0FH. Ngược lại AC=0.
- Cờ 0 (Flag 0): Cờ 0 (F0) là 1 bit cờ ña dụng dùng cho các ứng dụng của người dùng
- Những bit chọn bank thanh ghi truy xuất:
+ RS1 và RS0 quyết ñịnh dãy thanh ghi tích cực. Chúng ñược xóa sau khi reset
hệ thống và ñược thay ñổi bởi phần mềm khi cần thiết.
Tùy theo RS1, RS0 = 00, 01, 10, 11 sẽ ñược chọn Bank tích cực tương ứng là
Bank 0, Bank1, Bank2, Bank3.
Đồ án vi xử lý GVHD:Nguyễn Minh Quân
Nhóm 05:lớp ĐTVTA_K3 _______________
Trang
17
RS1 RS0 BANK
0 0 0
0 1 1
1 0 2
1 1 3
+ Cờ tràn OV (Over Flag):
Cờ tràn ñược set sau một hoạt ñộng cộng hoặc trừ nếu có sự tràn toán học. Khi
các số có dấu ñược cộng hoặc trừ với nhau, phần mềm có thể kiểm tra bit này ñể xác
ñịnh xem kết quả có nằm trong tầm xác ñịnh không. Khi các số không có dấu ñược
cộng bit OV ñược bỏ qua. Các kết quả lớn hơn +127 hoặc nhỏ hơn -128 thì bit OV=1.
+ Bit Parity (P) :
Bit tự ñộng ñược set hay Clear ở mỗi chu kỳ máy ñể lập Parity chẵn với thanh
ghi A. Sự ñếm các bit 1 trong thanh ghi A cộng với bit Parity luôn luôn chẵn. Ví dụ A
chứa 10101101B thì bit P set lên 1 ñể tổng số bit 1 trong A và P tạo thành số chẵn.
Bit Parity thường ñược dùng trong sự kết hợp với những thủ tục của Port
nối tiếp ñể tạo ra bit Parity trước khi phát ñi hoặc kiểm tra bit Parity sau khi thu.
+ Thanh ghi B :
Thanh ghi B ở ñịa chỉ F0H ñược dùng cùng với thanh ghi A cho các phép toán
nhân chia. Lệnh MUL AB sẽ nhận những giá trị không dấu 8 bit trong hai thanh ghi A
và B, rồi trả về kết quả 16 bit trong A (byte cao) và B(byte thấp). Lệnh DIV A,B lấy
A chia B, kết quả nguyên ñặt ở A, số dư ñặt ở B.
Thanh ghi B có thể ñược dùng như một thanh ghi ñệm trung gian ña mục ñích.
Nó là những bit ñịnh vị thông qua những ñịa chỉ từ F0H - F7H.
+ Con trỏ Ngăn xếp SP (Stack Pointer) :
Con trỏ ngăn xếp là một thanh ghi 8 bit ở ñịa chỉ 81H. Nó chứa ñịa chỉ của của
byte dữ liệu hiện hành trên ñỉnh ngăn xếp. Các lệnh trên ngăn xếp bao gồm các lệnh
cất dữ liệu vào ngăn xếp (PUSH) và lấy dữ liệu ra khỏi ngăn xếp (POP). Lệnh cất dữ
liệu vào ngăn xếp sẽ làm tăng SP trước khi ghi dữ liệu và lệnh lấy ra khỏi ngăn xếp sẽ
làm giảm SP. Ngăn xếp của 8031/8051 ñược giữ trong RAM nội và giới hạn các ñịa
chỉ có thể truy xuất bằng ñịa chỉ gián tiếp, chúng là 128 byte ñầu của AT89S52
Để khởi ñộng SP với ngăn xếp bắt ñầu tại ñịa chỉ 60H, các lệnh sau ñây ñược dùng:
MOV SP , #5F
Với lệnh trên thì ngăn xếp của 8951 chỉ có 32 byte vì ñịa chỉ cao nhất của RAM
Đồ án vi xử lý GVHD:Nguyễn Minh Quân
Nhóm 05:lớp ĐTVTA_K3 _______________
Trang
18
trên chip là 7FH. Sở dĩ giá trị 5FH ñược nạp vào SP vì SP tăng lên 1 là 60H trước khi
cất byte dữ liệu.
Khi Reset AT89S52, SP sẽ mang giá trị mặc ñịnh là 07H và dữ liệu ñầu tiên sẽ
ñược cất vào ô nhớ ngăn xếp có ñịa chỉ 08H. Nếu phần mềm ứng dụng không khởi
ñộng SP một giá trị mới thì bank thanh ghi1 có thể cả 2 và 3 sẽ không dùng ñược vì
vùng RAM này ñã ñược dùng làm ngăn xếp. Ngăn xếp ñược truy xuất trực tiếp bằng
các lệnh PUSH và POP ñể lưu trữ tạm thời và lấy lại dữ liệu, hoặc truy xuất ngầm
bằng lệnh gọi chương trình con (ACALL, LCALL) và các lệnh trở về (RET, RETI) ñể
lưu trữ giá trị của bộ ñếm chương
trình khi bắt ñầu thực hiện chương trình con và lấy lại khi kết thúc chương trình con
+ Con trỏ dữ liệu DPTR (Data Pointer):
Con trỏ dữ liệu (DPTR) ñược dùng ñể truy xuất bộ nhớ ngoài là một thanh ghi
16 bit ở ñịa chỉ 82H (DPL: byte thấp) và 83H (DPH: byte cao).
Ba lệnh sau sẽ ghi 55H vào RAM ngoài ở ñịa chỉ 1000H:
MOV A , #55H
MOV DPTR, #1000H
MOV @DPTR, A
Lệnh ñầu tiên dùng ñể nạp 55H vào thanh ghi A. Lệnh thứ hai dùng ñể nạp ñịa
chỉ của ô nhớ cần lưu giá trị 55H vào con trỏ dữ liệu DPTR. Lệnh thứ ba sẽ di chuyển
nội dung thanh ghi A (là 55H) vào ô nhớ RAM bên ngoài có ñịa chỉ chứa trong DPTR
(là 1000H)
- Các thanh ghi Port (Port Register):
Các Port của AT89S52 bao gồm Port 0 ở ñịa chỉ 80H, Port1 ở ñịa chỉ 90H,
Port2 ở ñịa chỉ A0H, và Port3 ở ñịa chỉ B0H. Tất cả các Port này ñều có thể truy xuất
từng bit nên rất thuận tiện trong khả năng giao tiếp.
- Các thanh ghi Timer (Timer Register):
AT89C51 có chứa hai bộ ñịnh thời/bộ ñếm 16 bit ñược dùng cho việc ñịnh thời
ñược ñếm sự kiện. Timer 0 ở ñịa chỉ 8AH (TLO: byte thấp) và 8CH ( THO: byte cao).
Timer1 ở ñịa chỉ 8BH (TL1: byte thấp) và 8DH (TH1 : byte cao). Việc khởi ñộng
timer ñược SET bởi Timer Mode (TMOD) ở ñịa chỉ 89H và thanh ghi ñiều khiển
Timer (TCON) ở ñịa chỉ 88H. Chỉ có TCON ñược ñịa chỉ hóa từng bit.
- Các thanh ghi Port nối tiếp (Serial Port Register):
AT89S52 chứa một Port nối tiếp cho việc trao ñổi thông tin với các thiết bị nối
tiếp như máy tính, modem hoặc giao tiếp nối tiếp với các IC khác. Một thanh ghi ñệm
dữ liệu nối tiếp (SBUF) ở ñịa chỉ 99H sẽ giữ cả hai dữ liệu truyền
Đồ án vi xử lý GVHD:Nguyễn Minh Quân
Nhóm 05:lớp ĐTVTA_K3 _______________
Trang
19
là dữ liệu nhập. Khi truyền dữ liệu ghi lên SBUF, khi nhận dữ liệu thì ñọc SBUF. Các
mode vận khác nhau ñược lập trình qua thanh ghi ñiều khiển Port nối tiếp (SCON)
ñược ñịa chỉ hóa từng bit ở ñịa chỉ 98H.
- Các thanh ghi ngắt (Interrupt Register):
AT89S52 có cấu trúc 5 nguồn ngắt, 2 mức ưu tiên. Các ngắt bị cấm sau khi bị
reset hệ thống và sẽ ñược cho phép bằng việc ghi thanh ghi cho phép ngắt (IE) ở ñịa
chỉ A8H. Cả hai ñược ñịa chỉ hóa từng bit.
Thanh ghi ñiều khiển nguồn PCON (Power Control Register):
Thanh ghi PCON không có bit ñịnh vị. Nó ở ñịa chỉ 87H chứa nhiều bit ñiều
khiển. Thanh ghi PCON ñược tóm tắt như sau:
1 Bit 7(SMOD): Bit có tốc ñộ Baud ở mode 1, 2,3 ở Port nối tiếp khi set.
2 Bit 6, 5, 4: Không có ñịa chỉ.
3 Bit 3 (GF1): Bit cờ ña năng 1.
4 Bit 2 (GF0): Bit cờ ña năng 2.
5 Bit 1* (PD): Set ñể khởi ñộng mode Power Down và thoát ñể reset.
6 Bit 0*(IDL): Set ñể khởi ñộng mode Idle và thoát khi ngắt mạch hoặc reset.
Các bit ñiều khiển Power Down và Idle có tác dụng chính trong tất cả các IC họ
MSC-51 nhưng chỉ ñược thi hành trong sự biên dịch của CMOS.
c. Bộ nhớ ngoài (External Memory)
AT89S52 có khả năng mở rộng bộ nhớ lên ñến 64K byte bộ nhớ chương trình
và 64K byte bộ nhớ dữ liệu ngoài. Do ñó có thể dùng thêm RAM và EPROM nếu cần.
Khi dùng bộ nhớ ngoài, Port 0 không còn chưc năng I/O nữa. Nó ñược kết hợp giữa
bus ñịa chỉ (A0 - A7) và bus dữ liệu (D0 - D7) với tín hiệu ALE ñể chốt byte của bus
ñịa chỉ chỉ khi bắt ñầu mỗi chu kỳ bộ nhớ. Port2 ñược cho là byte
cao của bus ñịa chỉ.
d. Các tập lệnh của AT89S52
Tập lệnh củaAT89S52 ñược chia thành 5 nhóm:
• Số học.
• Logic.
• Chuyển dữ liệu.
• Chuyển ñiều khiển.
Chi tiết tệp lệnh của họ 8051 có thể tham khảo trong “Họ vi ñiều khiển” của tác
giả Tống Văn Ôn và Hoàng Đức Hải.
Đồ án vi xử lý GVHD:Nguyễn Minh Quân
Nhóm 05:lớp ĐTVTA_K3 _______________
Trang
20
II.1.3.Các linh kiện thường dùng cho ñề tài:
1
1
-
-
Đ
Đ
i
i
ệ
ệ
n
n
t
t
r
r
ở
ở
:
:
Điện trở là linh kiện thụ ñộng có tác dụng cản trở cả dòng và áp.
Điện trở ñựơc sử dụng rất nhiều trong các mạch ñiện tử.
R =ρℓ/S
Trong ñó ρ là ñiện trở suất của vật liệu
S là thiết diện của dây.
ℓ là chiều dài của dây.
Điện trở là ñại lượng vật lí ñặc trưng cho tính chất cản trở dòng ñiện của một vật
thể dẫn ñiện. Nó ñược ñịnh nghĩa là tỉ số của hiệu ñiện thế giữa hai ñầu vật thể ñó với
cường ñộ dòng ñiện ñi qua nó:
Trong ñó:
U : là hiệu ñiện thế giữa hai ñầu vật dẫn ñiện, ño bằng vôn (V).
I : là cường ñộ dòng ñiện ñi qua vật dẫn ñiện, ño bằng ămpe (A).
R : là ñiện trở của vật dẫn ñiện, ño bằng Ohm (Ω).
2-Biến trở
Là 1 ñiện trở thay ñổi ñược , có tác dụng là thay ñổi ñiện áp
theo yêu cầu của người sử dụng. Ở trong ñề tài này nó có tác
dụng kiểm soát ñộ sáng của Led phát quang và tốc ñộ nhận tín
hiệu của led thu hồng ngoại.
Đồ án vi xử lý GVHD:Nguyễn Minh Quân
Nhóm 05:lớp ĐTVTA_K3 _______________
Trang
21
3-Transistor:
C1815 là Transistor BJT gồm ba miền tạo bởi hai tiếp giáp p–n, trong ñó miền
giữa là bán dẫn loại p. Miền có mật ñộ tạp chất cao nhất, kí hiệu n+ là miền phát
(emitter). Miền có mật ñộ tạp chất thấp hơn, kí hiệu n, gọi là miền thu (collecter).
Miền giữa có mật ñộ tạp chất rất thấp, kí hiệu p, gọi là miền gốc (base). Ba chân kim
loại gắn với ba miền tương ứng với ba cực emitter (E), base (B), collecter (C) của
transistor.
4-Tụ ñiện:
Tụ ñiện là một linh kiện thụ ñộng cấu tạo của tụ ñiện là hai bản cực bằng kim
loại ghép cách nhau một khoảng d ở giữa hai bản tụ là dung dịch hay chất ñiện môi
cách ñiện có ñiện dung C. Đặc ñiểm của tụ là cho dòng ñiện xoay chiều ñi qua, ngăn
cản dòng ñiện một chiều.
Công thức tính ñiện dung của tụ: C = ε.S/d
ε là hằng số ñiện môi
S là ñiện tích bề mặt tụ m
2
d là bề giày chất ñiện môi
Tụ ñiện phẳng gồm hai bàn phẳng kim loại diện tích ñặt song song và cách
nhau một khoảng d.
÷
Cường ñộ ñiện trường bên trong tụ có trị số
E =
0
δ
ε ε
0
ε
= 8.86.10
-12
C
2
/ N.m
2
là hằng số ñiện môi của chân không.
ε
là hằng số ñiện môi tương ñối của môi trường; ñối với chân không
ε
= 1, giấy
tẩm dầu = 3,6, gốm = 5,5; mica = 4
÷
5
Đồ án vi xử lý GVHD:Nguyễn Minh Quân
Nhóm 05:lớp ĐTVTA_K3 _______________
Trang
22
5
5
-
-
D
D
i
i
o
o
d
d
e
e
:
:
Diode ñược cấu tạo gồm hai lớp bán dẫn p-n ñược ghép với nhau. Diode chỉ
hoaït ñộng dẫn dòng ñiện từ cực anot sang catot khi áp trên hai chân ñược phân cực
thuận (V
P
>V
N
) và lớn hơn ñiện áp ngưỡng. Khi phân cực ngược (V
P
<V
N
) thì Diode
không dẫn ñiện.
Là diode thông dụng nhất, dùng ñể ñổi ñiện xoay chiều – thường là ñiện thế
50Hz ñến 60Hz sang ñiện thế một chiều. Diode này tùy loại có thể chịu ñựng ñược
dòng từ vài trăm mA ñến loại công suất cao có thể chịu ñược ñến vài trăm ampere.
Diode chỉnh lưu chủ yếu là loại Si. Hai ñặc tính kỹ thuật cơ bản của Diode
chỉnh lưu là dòng thuận tối ña và ñi ngược tối ña (Điện áp sụp ñổ). Hai ñặc tính này do
nhà sản xuất cho biết.
6
6
-
-
L
L
e
e
d
d
:
:
L
L
e
e
d
d
l
l
à
à
m
m
ộ
ộ
t
t
d
d
ạ
ạ
n
n
g
g
d
d
i
i
o
o
d
d
e
e
p
p
h
h
á
á
t
t
q
q
u
u
a
a
n
n
g
g
,
,
k
k
h
h
i
i
p
p
h
h
â
â
n
n
c
c
ự
ự
c
c
t
t
h
h
u
u
ậ
ậ
n
n
t
t
h
h
ì
ì
l
l
e
e
d
d
p
p
h
h
á
á
t
t
s
s
a
a
n
n
g
g
,
,
p
p
h
h
â
â
n
n
c
c
ự
ự
c
c
n
n
g
g
h
h
ị
ị
c
c
h
h
t
t
h
h
ì
ì
l
l
e
e
d
d
k
k
h
h
ô
ô
n
n
g
g
s
s
á
á
n
n
g
g
.
.
K
K
í
í
h
h
i
i
ệ
ệ
u
u
:
:
7
7
-
-
L
L
e
e
d
d
7
7
ñ
ñ
o
o
ạ
ạ
n
n
L
L
à
à
7
7
c
c
o
o
n
n
L
L
E
E
D
D
s
s
ắ
ắ
p
p
x
x
ế
ế
p
p
t
t
h
h
e
e
o
o
h
h
ì
ì
n
n
h
h
m
m
ẫ
ẫ
u
u
.
.
M
M
ộ
ộ
t
t
c
c
h
h
á
á
n
n
c
c
ủ
ủ
a
a
c
c
á
á
c
c
c
c
o
o
n
n
l
l
e
e
d
d
ñ
ñ
ư
ư
ợ
ợ
c
c
n
n
ố
ố
i
i
c
c
h
h
u
u
n
n
g
g
v
v
ớ
ớ
i
i
n
n
h
h
a
a
u
u
(
(
A
A
n
n
o
o
d
d
c
c
h
h
u
u
n
n
g
g
h
h
o
o
ặ
ặ
c
c
K
K
a
a
t
t
o
o
d
d
c
c
h
h
u
u
n
n
g
g
)
)
,
,
c
c
á
á
c
c
c
c
h
h
â
â
n
n
c
c
ò
ò
n
n
l
l
ạ
ạ
i
i
ñ
ñ
ư
ư
ợ
ợ
c
c
ñ
ñ
ư
ư
a
a
r
r
a
a
n
n
g
g
o
o
à
à
i
i
ñ
ñ
ể
ể
p
p
h
h
ầ
ầ
n
n
c
c
ự
ự
c
c
c
c
h
h
o
o
c
c
á
á
c
c
c
c
o
o
n
n
l
l
e
e
d
d
.
.
Đồ án vi xử lý GVHD:Nguyễn Minh Quân
Nhóm 05:lớp ĐTVTA_K3 _______________
Trang
23
a
7
b
6
c
4
d
2
e
1
f
9
g
10
cc
3
cc
8
Dp
5
U1
led 7 doan Katod chung
a
7
b
6
c
4
d
2
e
1
f
9
g
10
ca
3
ca
8
Dp
5
U2
led 7 doan Anod chung
Đây là lọai ñèn dùng hiển thị các số từ 0 ñến 9, ñèn gồm 7 ñọan a, b, c, d, e, f,
g, bên dưới mỗi ñọan là một led (ñèn nhỏ) hoặc một nhóm led mắc song song (ñèn
lớn).Qui ước các ñọan cho bởi:
Khi một tổ hợp các ñọan cháy sáng sẽ tạo ñược một con số thập phân từ 0 - 9.
Led 7 ñoạn có hai loại là loại anot chung và catot chung:
Đồ án vi xử lý GVHD:Nguyễn Minh Quân
Nhóm 05:lớp ĐTVTA_K3 _______________
Trang
24
LED anot chung LED catot chung
Đối với led 7 ñoạn ta phải tính toán sao cho mỗi ñoạn của led 7 ñoạn có dòng
ñiện từ 10 20mA. Với ñiện áp 5V thì ñiện trở cần dùng là 270Ω; công suất là 1,4
Watt. Bảng giá trị Led 7 Đoạn
8- Bộ chuyển ñổi SN74LS47
Là 1 IC giải mã dữ liệu , bộ ñệm ñầu vào bao gồm các cổng NAND và ba cổng vào
AND-OR-IN. IC SN74LS47 vừa có tac dụng biến ñổi BCD ,vừa có tác dụng hạn chế
dòng bảo vệ các thiết bị ñầu ra của nó.Cấu hình của SN54 / 74LS47 ñược thiết kế ñể
chịu ñược ñiện áp tương ñối cao .Trong ñể tài này thì SN74LS47 biến ñổi tín hiệu
nhận ñược từ AT89S52 ñể ñưa ñến hệ thống hiện thị là 4 LED 7 thanh.