Tải bản đầy đủ (.doc) (82 trang)

Thiết kế Hệ Thống Quảng Cáo

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.55 MB, 82 trang )

Tæng quan Vi ®iÒu khiÓn hä 8051 §å ¸n tèt nghiÖp
MỞ ĐẦU
Cùng với sự phát triển đi lên các doanh nghiệp thuộc nhiều thành phần,
trong mọi lĩnh vực rất cần một chỗ đứng trên thị trường, đặc biệt là vấn đề
quảng bá sản phẩm của mình để tăng tính cạnh tranh. Trong đó một hình
thức đóng vai trò hết sức quan trọng cho sự thành công đối với doanh
nghiệp chính là nhờ vào quảng cáo.
Hiện nay có rất nhiều hình thức quảng cáo khác nhau như quảng cáo bằng
pha nô áp phic, biển kẻ vẽ, đề can… Một trong số những hình thức có hiệu
quả nhất và đang được sử dụng rộng rãi đó là thông tin quảng cáo bằng
bảng điện tử. Để làm được một bảng điện tử chúng ta có thể dùng vi xử lý,
dùng IC rời, dùng EPROM, dùng vi điều khiển, hay điều khiển bằng máy
tính... Trong Đồ án tốt nghiệp này em xin trình bày thiết kế Hệ Thống
Quảng Cáo sử dụng vi điều khiển AT89C51.
Trong quá trình học tập ở trường và đặc biệt thời gian thiết kế Đồ án tốt
nghiệp. Đây là dịp có điều kiện tốt nhất để em có thể tìm hiểu về vi điều
khiển AT89C51 cũng như họ vi điều khiển 8051. Được sự hướng dẫn và
đặc biệt quan tâm của thầy Phạm Mạnh Hùng do đó mà em đã chọn đề tài
thiết kế Hệ Thống Quảng Cáo.
CHƯƠNG I
Hoµng Quang Lý
-1-
Tæng quan Vi ®iÒu khiÓn hä 8051 §å ¸n tèt nghiÖp
TỔNG QUAN VỀ HỌ VI XỬ LÝ 8051
I. NHỮNG ĐẶC ĐIỂM CƠ BẢN HỌ VI XỬ LÝ 8051
1.Tóm tắt về lịch sử của 8051.
Vào năm 1981. Hãng Intel giới thiệu một số bộ vi điều khiển được
gọi là 8051. Bộ vi điều khiển này có 128 byte RAM, 4K byte ROM trên
chíp, hai bộ định thời, một cổng nối tiếp và 4 cổng (đều rộng 8 bit) vào ra
tất cả được đặt trên một chíp. Lúc ấy nó được coi là một “hệ thống trên
chíp”. 8051 là một bộ xử lý 8 bit có nghĩa là CPU chỉ có thể làm việc với 8


bit dữ liệu tại một thời điểm. Dữ liệu lớn hơn 8 bit được chia ra thành các
dữ liệu 8 bit để cho xử lý. 8051 có tất cả 4 cổng vào - ra I/O mỗi cổng rộng
8 bit. Mặc dù 8051 có thể có một ROM trên chíp cực đại là 64 K byte,
nhưng các nhà sản xuất lúc đó đã cho xuất xưởng chỉ với 4K byte ROM
trên chíp 8051 đã trở nên phổ biến sau khi Intel cho phép các nhà sản xuất
khác sản xuất và bán bất kỳ dạng biến thể nào của 8051 mà họ thích với
điều kiện họ phải để mã lại tương thích với 8051. Điều này dẫn đến sự ra
đời nhiều phiên bản của 8051 với các tốc độ khác nhau và dung lượng
ROM trên chíp khác nhau được bán bởi hơn nửa các nhà sản xuất. Điều
này quan trọng là mặc dù có nhiều biến thể khác nhau của 8051 về tốc độ
và dung lương nhớ ROM trên chíp, nhưng tất cả chúng đều tương thích với
8051 ban đầu về các lệnh. Điều này có nghĩa là nếu ta viết chương trình của
mình cho một phiên bản nào đó thì nó cũng sẽ chạy với mọi phiên bản bất
kỳ khác mà không phân biệt nó từ hãng sản xuất nào.
2. Bộ ví điều khiển 8051
Hoµng Quang Lý
-2-
Tæng quan Vi ®iÒu khiÓn hä 8051 §å ¸n tèt nghiÖp
Bộ vi điều khiển 8051 là thành viên đầu tiên của họ 8051. Hãng Intel
ký hiệu nó như là MCS51
Bảng 1.1. Các đặc tính của 8051 đầu tiên
3. Sơ đồ khối chung của họ vi điều khiển 8051
Interrupt control : Điều khiển ngắt.
Other registers : Các thanh ghi khác.
128 Byte RAM : RAM 128 Byte.
Timer 2, 1 , 0 : Bộ định thời 2 , 1 , 0
CPU : Đơn vị điều khiển trung tâm.
Oscillator : Mạch dao động.
Bus control: Điều khiển Bus
I/O ports: Các ports vào/ ra

Serial port: port nối tiếp
Address/data : địa chỉ/ dữ liệu
Hoµng Quang Lý
Đặc tính Số lượng
ROM trên chíp 4K byte
RAM
128 byte
Bộ định thời 2
Các chân vào - ra 32
Cổng nối tiếp 1
Nguồn ngắt 6
-3-
Tæng quan Vi ®iÒu khiÓn hä 8051 §å ¸n tèt nghiÖp
Interrupt
Control
Timer 2 ( 8032,8052)
Timer 1
Timer 0
Serial port
INT 1
INT 0
CPU
Oscillator Bus control
EA
RST
ALE
PSEN
I/O Port
SERIAL
PORT

RXD
TXD
P 0 P 1 P 2 P 3
Address/Data
Other
registers
128 Byte
RAM
128 Byte
RAM
(8032/8052)
ROM
0K - 8031/8032
4K - 8051
8K - 8052
Timer 0
Timer 1
Timer 2
(8032/8052)
T 0
T 1
T 2
T 2 EX
Hình 1.1. Bố trí bên trong của sơ đồ khối 8051
II. THÀNH VIÊN HỌ VI XỬ LÝ 8051
1. Bộ vi điều khiển 8052:
Bộ vi điều khiển 8052 là một thành viên khác của họ 8051, 8052 có
tất cả các đặc tính chuẩn của 8051 ngoài ra nó có thêm 128 byte RAM và
một bộ định thời nữa. Hay nói cách khác là 8052 có 256 byte RAM 3 bộ
định thời. và có 8K byte ROM. trên chíp thay vì 4K byte như 8051.


Hoµng Quang Lý
-4-
Tæng quan Vi ®iÒu khiÓn hä 8051 §å ¸n tèt nghiÖp
Đặc tính 8051 8052 8031
ROM trên chíp 4K byte 8K byte
RAM 128 byte 256 byte 128 byte
Bộ định thời 2 3 2
Chân vào - ra
32 32 32
Cổng nối tiếp 1 1 1
Nguồn ngắt 6 8 6
Bảng 1.2. So sánh các đặc tính của các thành viên họ 8051.
Như nhìn thấy từ bảng 1.2 thì 8051 là tập con của 8052. Do vậy tất
cả mọi chương trình viết cho 8051 đều chạy trên 8052 nhưng điều ngược
lại là không đúng.
2. Bộ vi điều khiển 8031:
Một thành viên khác nữa của 8051 là chíp 8031. Chíp này thường
được coi như là 8051 không có ROM trên chíp vì nó có OK byte ROM trên
chíp. Để sử dụng chíp này ta phải bổ xung ROM ngoài cho nó. ROM ngoài
phải chứa chương trình mà 8031 sẽ nạp và thực hiện. So với 8051 mà
chương trình được chứa trong ROM trên chíp bị giới hạn bởi 4K byte, còn
ROM ngoài chứa chương trinh được gắn vào 8031 thì có thể lớn đến 64K
byte. Khi bổ xung cổng, như vậy chỉ còn lại 2 cổng để thao tác. Để giải
quyết vấn đề này ta có thể bổ xung cổng vào - ra cho 8031. Phối phép 8031
với bộ nhớ và cổng vào - ra chẳng hạn với chíp 8255. Ngoài ra còn có các
phiên bản khác nhau về tốc độ của 8031 từ các hãng sản xuất khác nhau.
3. Các bộ vi điều khiển 8051 từ các hãng khác nhau.
Mặc dù 8051 là thành viên phổi biến nhất của họ 8051 nhưng chúng
ta sẽ thấy nó trong kho linh kiện. Đó là do 8051 có dưới nhiều dạng kiểu

bộ nhớ khác nhau như UV - PROM, Flash và NV - RAM mà chúng đều có
Hoµng Quang Lý
-5-
Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp
s ng ký linh kin khỏc nhau. Phiờn bn UV-PROM ca 8051 l 8751
Phiờn bn Flash ROM c bỏn bi nhiu hóng khỏc nhau chng hn ca
Atmel corp vi tờn gi l AT89C51 cũn phiờn bn NV-RAM ca 8051 do
Dalas Semi Conductor cung cp thỡ c gi l DS5000. Ngoi ra cũn cú
phiờn bn OTP (kh trỡnh mt ln) ca 8051 c sn xut bi rt nhiu
hóng.
3.1. B vi iu khin 8751
Chớp 8751 ch cú 4K byte b nh UV-EPROM trờn chớp. s dng
chớp ny phỏt trin yờu cu truy cp n mt b t PROM cng nh b
xoỏ UV- EPROM xoỏ ni dung ca b nh UV-EPROM bờn trong 8751
trc khi ta cú th lp trỡnh li nú. Do mt thc t l ROM trờn chớp i vi
8751 l UV-EPROM nờn cn phi mt 20 phỳt xoỏ 8751 trc khi nú cú
th c lp trỡnh tr li. iu ny ó dn n nhiu nh sn xut gii thiu
cỏc phiờn bn FLASH ROM v UV-RAM ca 8051. Ngoi ra cũn cú nhiu
phiờn bn vi cỏc tc khỏc nhau ca 8751 t nhiu hóng khỏc nhau.
3.2. B vi iu khin AT8951 t Atmel Corporation.
Chớp 8051 ph bin ny cú ROM trờn chớp dng b nh Flash.
iu ny l lý tng i vi nhng phỏt trin nhanh vỡ b nh Flash cú th
c xoỏ trong vi giõy trong tng quan so vi 20 phỳt hoc hn m 8751
yờu cu. Vỡ lý do ny m AT89C51 phỏt trin mt h thng da trờn b
vi iu khin yờu cu mt b t ROM m cú h tr b nh Flash. Tuy
nhiờn li khụng yờu cu b xoỏ ROM. Lu ý rng trong b nh Flash ta
phi xoỏ ton b ni dung ca ROM nhm lp trỡnh li cho nú. Vic xoỏ
b nh Flash c thc hin bi chớnh b t PROM v õy chớnh l lý do
ti sao li khụng cn n b xoỏ. loi tr nhu cu i vi mt b t
PROM hóng Atmel ang nghiờn cu mt phiờn bn ca AT 89C51 cú th

c lp trỡnh qua cng truyn thụng COM ca mỏy tớnh IBM PC .
S linh kin ROM RAM
Chõn I/O
Timer Ngt Vcc úng v
Hoàng Quang Lý
-6-
Tæng quan Vi ®iÒu khiÓn hä 8051 §å ¸n tèt nghiÖp
AT89C51 4K 128 32 2 6 5V 40
AT89LV51 4K 128 32 2 6 3V 40
AT89C1051 1K 64 15 1 3 3V 20
AT89C2051 2K 128 15 2 6 3V 20
AT89C52 8K 256 32 3 8 5V 40
AT89LV52 8K 128 32 3 8 3V 40
Bảng 1.3: Các phiên bản của 8051 từ Atmel (Flash ROM).
Chữ C trong ký hiệu AT89C51 là CMOS.
Cũng có những phiên bản đóng vỏ và tốc độ khác nhau của những
sản phẩm trên đây. Xem bảng 1.4. Ví dụ để ý rằng chữ “C” đứng trước số
51 trong AT 89C51 -12PC là ký hiệu cho CMOS “12” ký hiệu cho 12
MHZ và “P” là kiểu đóng vỏ DIP và chữ “C” cuối cùng là ký hiệu cho
thương mại (ngược với chữ “M” là quân sự ). Thông thường AT89C51 -
12PC rất lý tưởng cho các dự án của học sinh, sinh viên.
Mã linh kiện Tốc độ Số chân Đóng vỏ Mục đích
AT89C51-12PC 42MHZ 40 DTP Thương mại
Bảng 1.4: Các phiên bản 8051 với tốc độ khác nhau của Atmel
3.3. Bộ vi điều khiển DS5000 từ hãng Dallas Semiconductor.
Một phiên bản phổ biến khác nữa của 8051 là DS5000 của hãng
Dallas Semiconductor. Bộ nhớ ROM trên chíp của DS5000 ở dưới dạng
NV-RAM. Khả năng đọc/ ghi của nó cho phép chương trình được nạp vào
ROM trên chíp trong khi nó vẫn ở trong hệ thống (không cần phải lấy ra).
Điều này còn có thể được thực hiện thông qua cổng nối tiếp của máy tính

IBM PC. Việc nạp chương trình trong hệ thống (in-system) của DS5000
thông qua cổng nối tiếp của PC làm cho nó trở thành một hệ thống phát
triển tại chỗ lý tưởng. Một ưu việt của NV-RAM là khả năng thay đổi nội
dung của ROM theo từng byte tại một thời điểm. Điều này tương phản với
bộ nhớ Flash và EPROM mà bộ nhớ của chúng phải được xoá sạch trước
khi lập trình lại cho chúng.
Hoµng Quang Lý
-7-
Tæng quan Vi ®iÒu khiÓn hä 8051 §å ¸n tèt nghiÖp
Mã linh kiện
ROM RAM Chân I/O Timer Ngắt Vcc Đóng vỏ
DS5000-8
DS5000-32
DS5000T-8
DS5000T-8
8K
32K
8K
32K
128
128
128
128
32
32
32
32
2
2
2

2
6
6
6
6
5V
5V
5V
5V
40
40
40
40
Bảng 1.5: Các phiên bản 8051 từ hãng Dallas Semiconductor.
Chữ “T” đứng sau 5000 là có đồng hồ thời gian thực.
Lưu ý rằng đồng hồ thời gian thực RTC là khác với bộ định thời
Timer. RTC tạo và giữ thời gian l phút giờ, ngày, tháng - năm kể cả khi tắt
nguồn.
Còn có nhiều phiên bản DS5000 với những tốc độ và kiểu đóng gói
khác nhau. Ví dụ DS5000-8-8 có 8K NV-RAM và tốc đọ 8MHZ. Thông
thường DS5000-8-12 hoặc DS5000T-8-12 là lý tưởng đối với các dự án
của sinh viên.
Mã linh kiện
NV- RAM Tốc độ
DS5000-8-8
DS5000-8-12
DS5000-32-8
DS5000T-32-12
DS5000-32-12
DS5000-8-12

8K
8K
32K
32K
32K
8K
8MHz
12MHz
8MHz
8MHz (with RTC)
12MHz
12MHz (with RTC)
Bảng 1.6: Một số thành viên của họ 8051
3.4. Phiên bản OTP của 8051.
Các phiên bản OTP của 8051 là các chíp 8051 có thể lập trình được
một lần và được cung cấp từ nhiều hãng sản xuất khác nhau. Các phiên bản
Hoµng Quang Lý
-8-
Tæng quan Vi ®iÒu khiÓn hä 8051 §å ¸n tèt nghiÖp
Flash và NV-RAM thường được dùng để phát triển sản phẩm mẫu. Khi một
sản pohẩm được thiết kế và được hoàn thiện tuyệt đối thì phiên bản OTP
của 8051 được dùng để sản hàng loạt vì nó sẽ hơn rất nhiều theo giá thành
một đơn vị sản phẩm
3.5. Họ 8051 từ Hãng Philips
Một nhà sản xuất chính của họ 8051 khác nữa là Philips Corporation.
Thật vậy, hãng này có một dải lựa chọn rộng lớn cho các bộ vi điều khiển
họ 8051. Nhiều sản phẩm của hãng đã có kèm theo các đặc tính như các bộ
chuyển đổi ADC, DAC, cổng I/0 mở rộng và cả các phiên bản OTP và
Flash.


Hoµng Quang Lý
-9-
Tæng quan Vi ®iÒu khiÓn hä 8051 §å ¸n tèt nghiÖp
CHƯƠNG II
GIỚI THIỆU VI ĐIỀU KHIỂN AT89C51
1. Sơ Đồ Khối Của Vi Điều Khiển AT89C51
P1.0 - P1.7
PORT 1
LATCH
ALU
PORT 1 DRIVE
P0.0 - P0.7
PORT 0 DRIVE
RAM ADD
REGISTER
ALE/PROG
RST
EA/Vpp
PSEN
INTRUCTION
REGISTER
OSC
TIMING
AND
CONTROL
PSW
B
REGISTER
TMP2
ACC

RAM
GND
Vcc
P3.0 - P3.7
PORT 2
LATCH
PORT 0
LATCH
INTERRUPT SERIAL PORT
AND TIMER BLOCKS
PORT 3
LATCH
PORT 3 DRIVE
TMP1
STACK
POINTER
FLASH
DPTR
PROGRAM
COUNTER
PC
INCREMENTER
BUFFER
PROGRAM
ADDRESS
REGISTER
P2.0 - P2.7
PORT 0 DRIVE
Hình 2.1: Sơ Đồ Khối Của Vi Điều Khiển AT89C51
Hoµng Quang Lý

-10-
Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp
2. c Tinh Ca AT89C51
Chớp AT89C51 cha trờn 60000 Transistor bao gm 4Kbyte ROM,
128Byte RAM, 32 ng xut nhp, 1 Port ni tip v 2 b nh thi 16
Bit. Mt s lng mch ỏng chỳ ý trong IC n. Cỏc thnh viờn mi c
thờm vo cho h MCS-51 v cỏc bin th ny gn nh cú gp ụi cỏc c
trng ny. Tp on Seimens, ngun sn xut th hai cỏc b vi iu khin
thuc h MCS-50 cung cp Chớp SAB80515, mt ci tin ca 8051 cha
trong mt v 68 chõn, cú 6 Port xut nhp 8-bit, 13 ngun to ra ngt v
mt b bin i A/D 8-bit vi 8 kờnh ngừ vo. H 8051 l mt trong nhng
b vi iu khin 8-bit mnh v linh hot nht, ó tr thnh b vi iu khin
hng u trong nhng nm gn õy.
- C th vi iu khin AT89C51 l 1 IC cú tớch hp trờn ú h vi x lớ.
- IC AT98C51 cú 40 chõn.
- 4KB ROM trong v cú th ghi xoỏ c 1000 ln.
- Di tn s hot ng t 0MHz 24MHz.
- 128x8 bit RAM trong.
- 4 Cng vo ra 8 bit.
- 2 B nh thi 16 bit.
- Cú 6 nguyờn nhõn ngt.
- Cú th lp trỡnh c qua cng ni tip.
- 210 bit c a ch hoỏ.
- Giao tip ni tip.
Hoàng Quang Lý
-11-
Tæng quan Vi ®iÒu khiÓn hä 8051 §å ¸n tèt nghiÖp
3. Sơ đồ chân và chức năng các chân của Chíp AT89C51
Hình 2.2: Sơ đồ chân và chức năng các chân của Chíp AT89C51
Hoµng Quang Lý

-12-
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 21
22
23
24
27
26
25
28
29
34

30
31
33
32
35
36
37
38
40
39
P 1.0
P 1.1
P 1.2
P 1.3
P 1.4
P 1.5
P 1.6
P 1.7
RST
P 3.0
P 3.1
P 3.2
P 3.3
P 3.4
P 3.5
P 3.6
P 3.7
XTAL 2
XTAL 1
Vss

Vcc
P 0.0
P 0.1
P 0.2
P 0.3
P 0.4
P 0.5
P 0.6
P 0.7
EA
ALE
PSEN
P 2.7
P 2.6
P 2.5
P 2.4
P 2.3
P 2.2
P 2.1
P 2.0
RXD
TXD
LNT 0
LNT 1
T 0
T 1
WR
RD
INTEL
89C51

Tæng quan Vi ®iÒu khiÓn hä 8051 §å ¸n tèt nghiÖp
- PORT 0 : Nằm trên các chân từ 32 đến 39 có 2 công dụng. Trong
các thiết kế có tối thiểu thành phần thì Port 0 được sử dụng làm nhiệm vụ
xuất/nhập. Trong các thiết kế lớn hơn có bộ nhớ ngoài, Port 0 trở thành Bus
địa chỉ và Bus dữ liệu đa hợp..
- PORT 1 : Nằm trên các chân 1 đến 8, chỉ có một cộng dụng là để
gao tiếp với thiết bị ngoài khi có yêu cầu.
- PORT 2 : Nằm trên các chân 21 đến 28 có 2 công dụng hoặc làm
nhiệm vụ xuất/nhập hoặc là Byte địa chỉ cao của BUS địa chỉ 16 bit cho
các thiết kế có nhiều hơn 256Byte bộ nhớ dữ liệu ngoài.
- PORT 3 : Nằm trên các chân 10 đến 17 có 2 công dụng. một là
chức năng xuất/nhập bình thường còn khi không hoạt động xuất nhập các
chân của PORT 3 có nhiều chức năng riêng . Cụ thể các chức năng của các
chân ở PORT 3 như sau :
Bit Tên Địa chỉ Bit Chức năng
P 3.0 RxD B0H Nhận dữ liệu của Port nối tiếp
P 3.1 TxD B1H Phát dữ liệu của Port nối tiếp.
P3.2 INT 0 B2H Ngõ vào ngắt ngoài 0
P 3.3 INT 1 B3H Ngõ vào ngắt ngoài 1
P 3.4 T 0 B4H Ngõ vào của bộ định thời/đếm 0.
P 3.5 T 1 B5H Ngõ vào của bộ định thời/đếm 1
P 3.6 WR B6H Điều khiển ghi bộ nhớ dữ liệu ngoài.
P 3.7 RD B7H Điều khiển đọc bộ nhớ dữ liệu ngoài.
Bảng 2.1: Các chức năng của PORT 3
- Chân cho phép bộ nhớ chương trình PSEN
8051 Cung cấp cho ta 4 tín hiệu điều khiển BUS. Tín hiệu cho phép
bộ nhớ chương trình PSEN (Program Store Enable) là tín hiệu xuất trên
chân 29. Đây là tín hiệu điều khiển cho phép ta truy xuất bộ nhớ chương
Hoµng Quang Lý
-13-

Tæng quan Vi ®iÒu khiÓn hä 8051 §å ¸n tèt nghiÖp
trình ngoài. Chân này thường được nối với chân cho phép xuất OE ( Output
Enable) của EPROM hoặc ROM để cho phép đọc các Byte lệnh.
Tín hiệu PSEN ở mức Logic 0 trong suất thời gian tìm nạp lệnh, các
mã nhị phân của chương trình hay mã thao tác (Opcode) được đọc từ
EPROM qua BUS dữ liệu và được chốt vào thanh ghi IR của 8051 để được
giải mã.
Khi thực thi một chương trình chứa ở ROM nội PSEN được duy trì
ở mức Logic tích cực 1.
- Chân cho phép chốt địa chỉ ALE.
Chân này nằm trên chân 30 của 8051 là chân xuất tín hiệu cho phép
chốt địa chỉ ALE (Address Latch Enable) để giải đa hợp. Bus dữ liệu và
Bus địa chỉ. Khi Port 0 được sử dụng làm Bus địa chỉ/dữ liệu đa hợp chân
ALE xuất tín hiệu để chôt địa chỉ ( Byte thấp của địa chỉ 16bit) vào một
thanh ghi ngoài trong suốt 1/2 đầu chu kỳ bộ nhớ. Sau khi điều này đã được
thực hiện các chân của Port 0 sẽ xuất nhập dữ liệu hợp lệ trong suốt 1/2 thứ
2 của chu kỳ bộ nhớ.
Tín hiệu ALE có tần số bằng 1/6 tần số của mạch dao động bên trong
vi điều khiển và có thể được dùng làm xung Clock cho phần còn lại của hệ
thống. Nếu mạch dao động có tần số 12MHz, tín hiệu ALE có tần số
2MHz. Ngoại lệ duy nhất là trong thời gian thực thi lệnh MOVX, một xung
ALE sẽ bị bỏ qua. Chân ALE còn được dùng để nhận xung ngõ vào lập
trình cho EPROM trên CHIP đối với các phiên bản của 8051 có EPROM
này.
- Chân truy xuất ngoài EA.
Ngõ vào này ở chân 31 có thể được nối với nguồn +5V (Logic 1)
hoặc GND (Logic 0). Nếu chân này nối lên 5V , 8051/8052 thực thi
Hoµng Quang Lý
-14-
Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp

chng trỡnh trong ROM ni( chng trỡnh nh hn 4K/8K). Nu chõn ny
ni vi GND( v chõn PSEN cng mc Logic 0), chng trỡnh cn thc
thi cha b nh ngoi. i vi 8031/8032 chõn EA phi mc Logic 0
vỡ chỳng khụng cú b nh chng trỡnh trờn CHIP. Nu chõn EA mc
Logic 0 i vi 8051/8052, ROM ni bờn trong CHIP c vụ hiu hoỏ v
chng trỡnh cn thc thi cha EPROM bờn ngoi.
Cỏc phiờn bn EPROM ca 8051 cũn s dng chõn EA lm chõn
nhn in ỏp cp ngun 21V
PP
cho vic lp trỡnh EPROM ni ( Np
EPROM).
- Chõn RESET ( RST).
Ngừ vo RST chõn 9 l ngừ vo xoỏ chớnh (Master reset) ca 8051
dựng thit lp li trng thỏi ban u cho h thng hay cũn gi tt l
Reset h thng. Khi ngừ vo ny c treo mc Logic 1 ti thiu hai chu
k mỏy , cỏc thanh ghi bờn trong ca 8051 c np cỏc giỏ tr thớch hp
cho vic khi ng li h thng.
- Cỏc chõn thch anh XTAL 1 v XTAL 2.
Nm trờn chõn 18 v 19 ca CHIP, 2 chõn ny c dựng ni vi
thch anh ngoi nhm tỏi to dao ng v xỏc nh tn s lm vic cho
mch dao ng bờn trong CHIP. Kt hp vi thch anh cú thờm 2 t gm
n nh tn s dao ng. Tn s danh nh ca thch anh l 12MHz cho
hu ht cỏc CHIP ca h MCS - 51.
Hoàng Quang Lý
-15-
Tæng quan Vi ®iÒu khiÓn hä 8051 §å ¸n tèt nghiÖp
Oscillator
18 19
X1
12MHz

C2
30pF
C1
30pF
IC 1
8051
Hình 2.3: Mạch dao động Thạch Anh XTAL 1 và XTAL 2
Hoặc ta cũng có thể dùng một nguồn xung CLOCK TTL để tạo dao
động cho 8051 như mạch sau :
IC 1
8051
19
18
TTL
Oscillator
74LS04
Oscillator
Hình 2.4: Mạch dao động
4. Cấu trúc của PORT In/Out.
- Sơ đồ cấu trúc bên trong của chân PORT xuất/nhập như sau :
Hoµng Quang Lý
-16-
Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp
V
DD
Q
D
Write
to Latch
Read

latch
Read
pin
Interrnal
Pull-up
Port
Latch
Porrt
pin
8051 Internal bus
Hỡnh 2.5: Cu trỳc ca PORT In/Out
Vic ghi n 1 chõn ca Port s np d liu vo b cht ca Port,
ngừ ra Q ca b cht iu khin mt Transistor trng v Transistor ny
ni vi chõn ca Port. Kh nng phõn chia u ra (Fan - out) ca cỏc Port
1, 2 v 3 l 4 ti vi mch TTL loi Schottky cụng sut thp (LS) cũn ca
Port 0 l 8 ti loi LS.
Lu ý l in tr kộo lờn (Pull Up) khụng cú Port 0 ( tr khi port ny lm
nhim v ca Port a ch d liu a hp) Do vy phi ni thờm mt in
tr kộo lờn bờn ngoi cho Port 0.
Giỏ tr in tr ny ph thuc vo c tớnh ngừ vo ca thnh phn ghộp
ni vi chõn ca Port.
õy ta thy cú 2 kh nng " c b cht" v "c chõn port". Cỏc lnh
yờu cu thao tỏc c - sa - ghi, c b cht trỏnh nhm mc in ỏp do
s hiu nhm in ỏp do s kin dũng ti tng. Cỏc lnh nhp mt Bit ca
Port, c chõn port. Trong trng hp ny b cht ca port phi cha 1 nu
khụng FET s c kớch bóo ho v iu ny kộo ngừ ra xung mc thp.
Vic Reset h thng s set tt c cỏc b cht port. Do vy cỏc chõn port cú
th c dựng lm cỏc ngừ nhp m khụng cn phi SET cỏc b cht port
mt cỏch tng minh. Tuy nhiờn nu mt b cht port b xoỏ (nh CLR
P1.5). Chõn Port khụng th lm nhim v tip theo l ngừ nhp tr khi

trc tiờn ta phi SET b cht ( nh SETB P1.5).
Hoàng Quang Lý
-17-
Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp
5. T chc b nh
7F
77
6F
67
5F
56
4F
47
3F
37
2F
27
1F
17
0F
07
7E
76
6E
66
5E
56
4E
46
3E

36
2E
26
1E
16
0E
06
7D
75
6D
65
5D
55
4D
45
3D
35
2D
25
1D
15
0D
05
7C
74
6C
64
5C
54
4C

44
3C
34
2C
24
1C
14
0C
04
7B
73
6B
63
5B
53
4B
43
3B
33
2B
23
1B
13
0B
03
7A
72
6A
62
5A

52
4A
42
3A
32
2A
22
1A
12
0A
02
79
71
69
61
59
51
49
41
39
31
29
21
19
11
09
01
78
70
68

60
58
50
48
40
38
30
28
20
18
10
08
00
2F
2E
2D
2C
2B
2A
29
28
27
26
25
24
23
22
21
20
1F

18
17
10
0F
08
07
00
BANK 3
BANK 2
BANK 1
Defauk register
Bank for R0 - R7
30
7F
Vùng RAM đa dụng
(General Purpose RAM)
RAM
(Cấu trúc RAM nội)
87 86 85 84 83 82 81 80
Not bit addressable
Not bit addressable
Not bit addressable
Not bit addressable
Not bit addressable
Not bit addressable
Not bit addressable
Not bit addressable
8F 8E 8D 8C 8B 8A 89 88
97 96 95 94 83 92 91 90
9F 9E 9D 9C 9B 9A 99 98

Not bit addressable
Thanh ghi chức
năng đặc biệ
t
A7 A6 A5 A4 A3 A2 A1 A0
AF AE AD
AC
AB AA
A9 A8
B7 B6 B5 B4 B3 B2 B1 B0
BF BE BD BC BB BA B9 B8
D7 D6 D5 D4 D3 D2 D1 D0
E7 E6 E5 E4 E3 E2 E1 E0
EF EE ED EC EB EA
E9
E8
Not bit addressable
80
81
82
83
87
88
89
8A
8B
8C
8D
90
98

99
A0
A8
B0
B8
D0
E0
F0
FF
P0
SP
DPL
DPH
PCON
TCON
TMOD
TL0
TL1
TH0
TH1
P1
SCON
SBUF
P2
IE
P3
IP
PSW
ACC
B

Địa
chỉ
Byte
Địa chỉ Bit
( Bit Address )
Địa
chỉ
Byte
Địa chỉ Bit
( Bit Address )
8
8
8
8
32 Byte
Bit addressable locations
80 Byte
Hỡnh 2.6: T chc b nh RAM
B nh bờn trong 89C51 bao gm ROM v RAM.
Hoàng Quang Lý
-18-
Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp
RAM bao gm nhiu thnh phn : Phn lu tr a dng, phn lu tr
a ch húa tng bit, cỏc thanh ghi (BANK) v cỏc thanh ghi chc nng c
bit ( Special Funtion Registers).
AT89C50 cú b nh theo cu trỳc : Cú nhng vựng nh riờng bit
cho chng trỡnh v d liu. Chng trỡnh v d liu cú th cha bờn trong
AT89C51 nhng AT89C51 vn cú th kt ni vi 64K Byte b nh chng
trỡnh v 64KByte b nh d liu m rng.
RAM bờn trong AT89C51 c phõn chia nh sau :

- Cỏc thanh ghi cú a ch t 00H n 1FH
- RAM a ch húa tng bit cú a ch t 20H n 2FH.
- RAM a dng t 30H n 7FH.
- Cỏc thanh ghi chc nng c bit t 80H n FFH.
- RAM a dng
Mi a ch trong vựng RAM a dng u cú th c truy xut t
do dựng kiu a ch trc tip hay giỏn tip.
Hoc truy xut dựng cỏch a ch giỏn tip qua R0 hay R1.
- RAM cú th truy xut tng bit.
AT89C51 cha 210 bit c a ch hoỏ tng bit, trong ú 128 bit
cha cỏc a ch t 20H n 2FH, cỏc bit cũn li cha trong nhúm thanh
ghi chc nng c bit.
í tng truy xut tng bit bng phn mm l mt c tớnh mnh ca
vi iu khin núi chung. Cỏc bit cú th c t, xoỏ, nhõn, cng... vi 1
lnh n. Ngoi ra cỏc Port cng cú th truy xut c tng bit lm n
gin phn mm xut nhp tng bit.
- Cỏc thanh ghi (BANK).
Hoàng Quang Lý
-19-
Tæng quan Vi ®iÒu khiÓn hä 8051 §å ¸n tèt nghiÖp
Bộ lệnh AT89C51 hỗ trợ 8 thanh ghi có tên là từ R0 đến R7 và theo
mặc định ( sau khi RESET hệ thống ), các thanh ghi này ở các địa chỉ 00H
đến 07F. Lệnh sau đây sẽ đọc nội dung ở địa chỉ 05H vào thanh ghi tích luỹ.
MOV A,R5
Đây là lệnh 1Byte dùng địa chỉ thanh ghi. Tuy nhiên có thể thi hành bằng
lệnh 2Byte dùng địa chỉ trực tiếp nằm trong Byte rhứ 2 :
MOV A,05H
Lệnh dùng các thanh ghi R0 đến R7 thì sẽ ngắn hơn và nhanh hơn nhiều so
với lệnh tương ứng dùng địa chỉ trực tiếp.
Thanh ghi tích cực bằng cách thay đổi các bit trong từng trạng thái

chương trình (PSW)
Giả sử thanh ghi thứ 3 đang được truy xuất, lệnh sau đây sẽ di chuyển nội
dung của thanh ghi A vào ô nhớ có địa chỉ 18H
MOV R0,A
- Các thanh ghi có chức năng đặc biệt.
AT89C51 có 21 thanh ghi chức năng đặc biệt ( SFR : Special
Function Register) ở vùng trên của RAM nội từ địa chỉ 80H đến FFH.
Chú ý : Tất cả 128 địa chỉ từ 80H đến FFH không được định nghĩa,
chỉ có 21 thanh ghi chức năng năng đặc biệt được định nghĩa sẵn các địa
chỉ.
- Thanh ghi trạng thái chương trình.
Thanh ghi trạng thái chương trình PSW (Program Status Word) ở địa
chỉ D0H chứa các bit trạng thái như bảng sau :
BIT KÝ HIỆU ĐỊA CHỈ Ý NGHĨA
PSW .7 CY D7H Cờ nhớ.
PSW .6 AC D6H Cờ nhớ phụ.
Hoµng Quang Lý
-20-
Tæng quan Vi ®iÒu khiÓn hä 8051 §å ¸n tèt nghiÖp
PSW .5 F0 D5H Cờ 0.
PSW .4 RS1 D4H Bit 1 chọn Bank thanh ghi.
PSW .3 RS0 D3H
Bit 0 chọn Bank thanh ghi.
00 = Bank 0 : Địa chỉ 00H - 07H.
01 = Bank 1 : Địa chỉ 08H - 0FH.
10 = Bank 2 : Địa chỉ 10H - 17H,
11 = Bank 3 : Địa chỉ 18H - 1FH
PSW .2 0V D2H Cờ tràn.
PSW .1 _ D1H Dự trữ.
PSW .0 P D0H Cờ Parity chẵn lẻ.

Bảng 2.2: Bảng Thanh ghi trạng thái chương trình
+ Cờ nhớ : C = 1 Nếu phép toán cộng có tràn hoặc phép toán trừ có mượn
và ngược lại C = 0.
Ví dụ : Nếu thanh ghi A có giá trị FF thì lệnh sau : ADD A,#1 .
Phép cộng này có tràn nên bit C = 1 và kết quả trong thanh ghi A = 00H.
Cờ nhớ có thể xem lầ thanh ghi 1 bit cho các luận lý thi hành trên bit
ANL C,25H
+ Cờ nhớ phụ : Khi cộng các số BCD, cờ nhớ phụ AC = 1. Nếu kết quả 4
bit thấp trong khoảng 0AH đến 0FH, ngược lại AC = 0.
+ Cờ 0 : Cờ 0 là cờ đa dụng dành cho các ứng dụng của người dùng.
+ Các bit chọn Bank thanh ghi truy xuất :
Các bit chọn Bank thanh ghi (RS0 và RS1) xác định Bank thanh ghi
được truy xuất. Chúng được xoá sau khi RESET hệ thống và được thay đổi
bằng phần mềm nếu cần.
Ví dụ : Lệnh sau cho phép Bank thanh ghi 3 và di chuyển nội dung
của Bank thanh ghi R7 (địa chỉ byte 1Fh) vào thanh ghi A :
Hoµng Quang Lý
-21-
Tæng quan Vi ®iÒu khiÓn hä 8051 §å ¸n tèt nghiÖp
SETB RS1
SETB RS0
MOV A,R7
- Thanh ghi B.
Thanh ghi B ở địa chỉ F0H được dùng cùng với thanh ghi tích luỹ A
cho các phép toán nhân và chia. Lệnh MUL AB sẽ nhân các giá trụ không
dấu 8bit trong A và B rồi trả kết quả về 16bit trong A (Byte thấp) và B
(Byte cao). Lệnh DIV AB sẽ chia A cho B rồi trả kết quả nguyên trong A
và phần dư trong B. Thanh ghi cũng có thể xem như thanh ghi đệm đa
dụng.
- Con trỏ ngăn xếp.

Con trỏ ngăn xếp SP là một thanh ghi 8 bit ở địa chỉ 18H. Nó chứa
địa chỉ của Byte dữ liệu hiện hành trên đỉnh của 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 và lấy dữ liệu ra khỏi
ngăn xếp.. 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 dữ liệu ra khỏi ngăn xếp. Lệnh cất dữ liệu vào ngăn xếp sẽ
làm giảm SP. Ngăn xếp của 89C51 được cất giữ trong RAM nội và giới
hạn các địa chỉ có thể truy xuất bằng các địa chỉ gián tiếp, chúng là
128Byte đầu của 89C51.
Để khởi động SP với ngăn xếp bắt đầu tại địa chỉ 60H, ta dùng lệnh sau :
MOV SP,#5FH
Nếu không dùng lệnh khởi động SP hoặc khi RESET lại 89C51 thì
SP sẽ bắt đầu tại địa chỉ 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ỉ là 08H. 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
Hoµng Quang Lý
-22-
Tæng quan Vi ®iÒu khiÓn hä 8051 §å ¸n tèt nghiÖp
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 DPRT ( Data Pointer).
Con trỏ DPTR được dùng để truy xuất bộ nhớ ngoài, DPTR là một
thanh ghi 16bit ở địa chỉ 28H (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
MOVX @DPTR,A
Lệnh đầu tiên sử dụng kiểu định địa chỉ tức thời để nạp hằng dữ liệu
55H vào thanh ghi chứa A. Lệnh thứ 2 cũng sử dụng kiểu định địa chỉ tức
thời, lần nạp hằng địa chỉ 16bit 1000H cho con trỏ dữ liệu DPTR. Lệnh thứ

3 sử dụng kiểu định địa chỉ gián tiếp di chuyển giá trị 55H chứa trong A
đến RAM ngoài tại địc chỉ chứa trong DPTR (1000H).
- Các thanh ghi PORT.
Các Port xuất nhập của 89C51 bao gồm Port 0 tại địa chỉ 80H, Port 1
tại địa chỉ 90H, Port 2 tại địa chỉ A0H và Port 3 tại địa chỉ B0H. các Port
0,2,3 không được dùng để xuất nhập nếu sử dụng thêm bộ nhớ ngoài hoặc
nếu có một số đặc tính đặc biệt của 89C51 được sử dụng ( như là ngắt, Port
nối tiếp.....).P1.2 đến P1.7, ngược lại, luôn luôn là các đường xuất nhập đa
mục đích hợp lệ.
Tất cả các Port đều được định địa chỉ từng bit nhằm cung cấp các
khả năng giao tiếp mạnh.
Thí dụ ta có một động cơ một cuộn dây và một mạch kích dùng
Transistor nối tới bit 7 của Port 1, động cơ có thể ngưng hay chạy chỉ nhờ
vào
Hoµng Quang Lý
-23-
Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp
V
DD
Q
D
Write
to Latch
Read
latch
Read
pin
Interrnal
Pull-up
Port

Latch
Porrt
pin 1.7
8051 Internal bus
Động

+B
+5V
Hinh 2.7: Mt lnh n ca 8051.
SETB P1.7 s lm ng c chy v lnh CLR P1.7 lm ng c
ngng.
Cỏc lnh trờn s dng toỏn t (dot) nh ch 1 bit trong 1Byte cho
phộp nh a ch tng bit.
Trỡnh dch hp ng thc hin bin di dng ký hiu thnh a ch
thc t ngha l 2 lnh sau s tng ng
CLR P.17 tng ng vi lnh CLR 97H.
- Cỏc thanh ghi nh thi (Timer)
89C51 cha 2 b nh thi 2 b nh thi/ m 16bit c dựng cho
vic nh thi hoc m s kin. Timer 0 a ch 8AH (TL0 : Byte thp)
v 8CH (TH0 : Byte cao). Timer 1 a ch 8BH (TL0 : Byte thp) v 8DH
( TH1 : Byte cao). Vic khi ng Timer c SET bi TIMER Mode
(TMOD) a ch 89H v thanh ghi iu khin
Timer (TCON) a ch 88H, ch cú TCON c a ch hoỏ tng bit.
Hoàng Quang Lý
-24-
Tæng quan Vi ®iÒu khiÓn hä 8051 §å ¸n tèt nghiÖp
- Các thanh ghi nối tiếp.
89C51 chứa một Port nối tiếp dành 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 gọi là bộ đệm dữ liệu nối tiếp (SBUF) ở địa chỉ

99H sẽ giữ cả 2 dữ liệu truyền và dữ liệu nhận. Khi truyền dữ liệu thì ghi
lên SBUF, khi nhận dữ liệu thì đọc SBUF. Các mode vận hành khác nhau
được lập trình ghi điều khiển port nối tiếp SCON ở địa chỉ 98H.
- Các thanh ghi ngắt.
Thực tế ở 8051 chỉ có 5 ngắt dành cho người dùng, song nhiều tài
liệu kỹ thuật của các nhà sản xuất vẫn nói rằng có 6 ngắt vì họ tính cả lệnh
reset. Bố trí sáu ngắt của 8051 như sau:
-Reset: khi chân reset được kích hoạt thì 8051 nhày về địa chỉ 0000
-Hai ngắt dành cho bộ định thời time 0 và time 1 . Đia chỉ ở bảng
vector ngắt của hai ngắt này tương ứng với time 0 và time 4 là 000B4 và
001B4
Hai ngắt phần cứng dành cho các thiết bị bên ngoài nối tới chân 12
(P3.2) và 13 (P3.2) của cổng P3 là INTO và INT1 tương ứng. Các ngắt
ngoài cũng còn được gọi là EX1 và EX2. Vị trí nhớ trong bảng vector ngắt
của hai ngắt INT0 và INT1 này là 0003H và 0013H
Truyền thống nối tiếp có một ngắt cho cả thu lẫn phát. Địa chỉ nủa
ngắt này trong bảng vector ngắt 0023H
Bảng vector ngắt của 8051
Ngắt Đỉa chỉ ROM (Hexa) Chân
RESET 0000 9
Ngắt phần cứng ngoài (INTO) 0003 12 (P3 : 2)
Ngắt bọ timer 0 (TFO) 0008
Ngắt phần cứng ngoài 1 (INT1) 0013 12 (P3 : 3)
Hoµng Quang Lý
-25-

×