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

nghiên cứu hệ thống điều khiển cho cầu trục 10 tấn

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.94 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.
Em xin chân thành cảm ơn thầy Phạm Mạnh Hùng cùng các
thầy cô trong khoa ĐTVT đã tận tình hướng dẫn em hoàn
thành đồ án tốt nghiệp này.
Hoµng Quang Lý
-1-
Tæng quan Vi ®iÒu khiÓn hä 8051 §å ¸n tèt nghiÖp
CHƯƠNG I
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, hai bộ định


thời, một cổng nối tiếp và 4 cổng 8 bit. Tất cả đều được tích hợp trên một
chíp. Lúc bấy giờ, bộ vi điều khiển như vậy được coi là một “hệ thống trên
chíp”. 8051 là một bộ xử lý 8 bit, tức là CPU chỉ có thể làm việc với 8 bit
dữ liệu. Dữ liệu lớn hơn 8 bit được chia ra thành các dữ liệu 8 bit để xử lý.
8051 có tất cả 4 cổng I/O mỗi cổng rộng 8 bit, có thể có một ROM trên
chíp cực đại là 64 K byte. Tuy nhiên, lúc đó các nhà sản xuất đã 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ã chương trình tương
thích với 8051. Từ đó dẫn đến sự ra đời nhiều phiên bản của 8051 với các
tốc độ khác nhau. Tuy nhiên, điều quan trọng là mặc dù có nhiều biến thể
của 8051, như khác nhau về tốc độ và dung lượng nhớ ROM trên chíp,
nhưng tất cả các lệnh đều tương thích với 8051 ban đầu. Đ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.
Hoµng Quang Lý
-2-
Tæng quan Vi ®iÒu khiÓn hä 8051 §å ¸n tèt nghiÖp
2. Bộ ví điều khiển 8051
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
Đặ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

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ý
-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 phẩ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ì giá thành một đơn vị sản phẩm sẽ
rẻ hơn.
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 Tớnh 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 thanh ghi trạng
thái chương trình (PSW)
Giả sử băng 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.
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ụ.
PSW .5 F0 D5H Cờ 0.
Hoµng Quang Lý
-20-
Tæng quan Vi ®iÒu khiÓn hä 8051 §å ¸n tèt nghiÖp
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.
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.
Lệnh sau cho phép Bank thanh ghi 3 và di chuyển nội dung của 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 AT89C51.
Để 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 AT89C51
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
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.
Hoµng Quang Lý
-22-
Tæng quan Vi ®iÒu khiÓn hä 8051 §å ¸n tèt nghiÖp
- 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, 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 i 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)
AT89C51 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.
- Cỏc thanh ghi ni tip.
Hoàng Quang Lý
-24-
Tæng quan Vi ®iÒu khiÓn hä 8051 §å ¸n tèt nghiÖp
AT89C51 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 1 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)
Ngắt bộ timer 1 (TF1) 0018
Ngắt COM nối tiếp (R1 và T1) 0023
Hoµng Quang Lý
-25-

×