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

Đồ án vi điều khiển 8051

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.67 MB, 83 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.

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 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.

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
RAM

4K 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

128 byte

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

INT 1
INT 0

Timer 2 ( 8032,8052)
Timer 1

T 2 EX

Timer 0
Serial port

Interrupt
Control

128 Byte
RAM
(8032/8052)

Other
registers

ROM
0K - 8031/8032
4K - 8051
8K - 8052

128 Byte
RAM

Timer 2
(8032/8052)

T2


Timer 1

T1

Timer 0

T0

CPU

Oscillator

EA
RST

SERIAL
PORT

I/O Port

Bus control

ALE
PSEN

P0

P1


Address/Data

P2

P3

TXD RXD

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
Đặc tính

§å ¸n tèt nghiÖp

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

Hoàng Quang Lý

RAM

Chõn I/O

-6-

Timer

Ngt


Vcc

úng v


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
Mã linh kiện

§å ¸n tèt nghiÖp

ROM

RAM

Chân I/O

Timer

Ngắt

Vcc Đóng vỏ

DS5000-8

8K

128

32

2

6


5V

40

DS5000-32

32K

128

32

2

6

5V

40

DS5000T-8

8K

128

32

2


6

5V

40

DS5000T-8

32K

128

32

2

6

5V

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

8K

8MHz

DS5000-8-12

8K

12MHz

DS5000-32-8

32K

8MHz

DS5000T-32-12

32K

8MHz (with RTC)


DS5000-32-12

32K

12MHz

DS5000-8-12

8K

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
P0.0 - P0.7

P2.0 - P2.7

PORT 0 DRIVE

PORT 0 DRIVE


Vcc
GND

RAM ADD
REGISTER

B
REGISTER

PORT 0
LATCH

RAM

PORT 2
LATCH

FLASH

STACK
POINTER

ACC

BUFFER

TMP1

TMP2


PROGRAM
ADDRESS
REGISTER

PC
INCREMENTER

ALU
INTERRUPT SERIAL PORT
AND TIMER BLOCKS

PROGRAM
COUNTER

PSW
PSEN
ALE/PROG
EA/Vpp
RST

TIMING
INTRUCTION
AND
REGISTER
CONTROL

OSC

DPTR


PORT 1
LATCH

PORT 3
LATCH

PORT 1 DRIVE

PORT 3 DRIVE

P1.0 - P1.7

P3.0 - P3.7

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
Chip 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 Chip 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 89C51 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

1


P 1.0

Vcc

40

2

P 1.1

P 0.0

39

3

P 1.2

P 0.1 38

4

P 1.3

P 0.2

5

P 1.4


P 0.3 36

6

P 1.5

P 0.4

7

P 1.6

P 0.5 34

8

P 1.7

P 0.6

9

RST

RXD

10

P 3.0


TXD

11

P 3.1

LNT 0

12

P 3.2

LNT 1

13

P 3.3

P 2.7 28

T0

14

P 3.4

P 2.6

T1


15

P 3.5

P 2.5 26

WR

16

P 3.6

P 2.4

RD

17

P 3.7

P 2.3 24

18

XTAL 2

P 2.2

19


XTAL 1

P 2.1 22

20

Vss

P 2.0

INTEL
89C51

37

35

33

P 0.7 32
EA

31

ALE

30

PSEN


29

27

25

23

21

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-


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 địc 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

T0

B4H

Ngõ vào của bộ định thời/đếm 0.

P 3.5

T1

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 21VPP 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 kh dng 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

IC 1
8051
Oscillator
18

C1
30pF

19

X1
12MHz

C2
30pF

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 :

TTL

Oscillator

18

IC 1
8051
Oscillator

19

74LS04

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

8051 Internal bus

VDD
Read
latch


Write
to Latch

Interrnal
Pull-up

Read
pin

Porrt
pin

Q
D
Port
Latch

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
Địa
chỉ
Byte

Địa
chỉ
Byte

Địa chỉ Bit
( Bit Address )


80 Byte

7F
Vùng RAM đa dụng
(General Purpose RAM)

Bit addressable locations

30
2F

7F 7E 7D 7C 7B 7A 79 78

2E

77 76 75 74 73 72 71 70

2D

6F 6E 6D 6C 6B 6A 69 68

2C

67 66 65 64 63 62 61 60

2B

5F 5E 5D 5C 5B 5A 59 58


2A

56 56 55 54 53 52 51 50

29

4F 4E 4D 4C 4B 4A 49 48

28

47 46 45 44 43 42 41 40

27

3F 3E 3D 3C 3B 3A 39 38

26

37 36 35 34 33 32 31 30

25

2F 2E 2D 2C 2B 2A 29 28

24

27 26 25 24 23 22 21 20

23


1F 1E 1D 1C 1B 1A 19 18

22

17 16 15 14 13 12 11 10

21

0F 0E 0D 0C 0B 0A 09 08

20

07 06 05 04 03 02 01 00

1F

BANK 3

8

BANK 2

8

BANK 1

8

Defauk register
Bank for R0 - R7


8

32 Byte

18
17
10
0F
08
07
00

Địa chỉ Bit
( Bit Address )

FF
F0

EF EE ED EC EB EA E9 E8

B

E0

E7 E6 E5 E4 E3 E2 E1 E0

ACC

D0


D7 D6 D5 D4 D3 D2 D1 D0

PSW

B8

BF BE BD BC BB BA B9 B8

IP

B0

B7 B6 B5 B4 B3 B2 B1 B0

P3

A8

AF AE AD AC AB AA A9 A8

IE

A0

A7 A6 A5 A4 A3 A2 A1 A0

P2

99

98

Not bit addressable
9F 9E 9D 9C 9B 9A 99 98

SBUF
SCON

90

97 96 95 94 83 92 91 90

P1

8D
8C
8B
8A
89
88
87

Not bit addressable
TH1
Not bit addressable
TH0
Not bit addressable
TL1
Not bit addressable
TL0

Not bit addressable
TMOD
8F 8E 8D 8C 8B 8A 89 88 TCON
Not bit addressable
PCON

83
82
81
80

Not bit addressable
Not bit addressable
Not bit addressable
87 86 85 84 83 82 81 80

RAM

Thanh ghi chức
năng đặc biệ t

(Cấu trúc RAM nội)

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-


DPH
DPL
SP
P0


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).
89C50 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
89C51 nhng 89C51 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 89C51 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.
89C51 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 89C51 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.

89C51 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.
Bit 0 chọn Bank thanh ghi.
00 = Bank 0 : Địa chỉ 00H - 07H.

PSW .3


RS0

D3H

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

+B
+5V
Động


8051 Internal bus

VDD
Read
latch

Interrnal
Pull-up

Read
pin

Porrt
pin 1.7


D Q
Port
Latch

Write
to Latch

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

Hoµng Quang Lý

-25-

12 (P3 : 3)


×