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

thiết kế đồng hồ số sử dụng họ 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 (1.08 MB, 55 trang )

Chương1:
________________________________________________________________________________
KHOA ĐIỆN TỬ
BỘ MÔN LTCSN
***
ĐỒ ÁN MÔN HỌC
Môn: Kỹ thuật Vi xử lý

Vinh, ngày 01 tháng 09 năm 2011
PHIẾU GIAO ĐỀ TÀI
Nhóm sinh viên thực hiện (Lớp ):
Giáo viên hướng dẫn: …
Tên đề tài:
“Thiết kế đồng hồ số sử dụng họ 8051”
Các yêu cầu của đề tài:
- Sử dụng LCD hiển thị các giá trị giờ, phút, giây, ngày, tháng, năm.
- Kiểu thời gian: 24h
- Có thể cài đặt thời gian
Sản phẩm của đề tài: Quyển đồ án và mạch thi công thực tế.
Thời hạn nộp đồ án: 01/12/2011
Thời gian bảo vệ đồ án: ……………………………………………
Duyệt bộ môn Giáo viên dạy
Nguyễn Minh Quân
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
………………………………………………………………………………………
…………………………………………………………………………………………
______________________________________________________________________________
Thiết kế đồng hồ số sử dụng họ 8051 GVHD: Nguyễn Đăng Thông
1
Chương1:
________________________________________________________________________________


…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
……………………………………………………………………………….
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………….
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………….
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………

………………………………….
…………………………………………………………………………………………
…………………………………………………………………………………………
………………………….
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
______________________________________________________________________________
Thiết kế đồng hồ số sử dụng họ 8051 GVHD: Nguyễn Đăng Thông
2
Chương1:
________________________________________________________________________________
………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
……………………………………………………………………………….
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………….
…………………………………………………………………………………………
…………………………………………………………………………………………

…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………….
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
………………………………….
…………………………………………………………………………………………
…………………………………………………………………………………………
………………………….
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………
______________________________________________________________________________
Thiết kế đồng hồ số sử dụng họ 8051 GVHD: Nguyễn Đăng Thông
3
Chương1:
________________________________________________________________________________
Lời nói đầu

Ngày nay khoa học kỹ thuật đang phát triển hết sức mạnh mẽ, đặc biệt là lĩnh vực
điều khiển và tự động hoá. Nhiều sản phẩm khoa học công nghệ về lĩnh vực này đã
được ra đời là bằng chứng cho sự bùng nổ về cuộc cách mạng khoa học đang diễn ra,
các sản phẩm không chỉ hiện đại thông minh mà chúng còn là những thiết bị nhỏ gọn,
tiêu thụ ít năng lượng… Từ việc tìm ra tính chất của vật liệu bán dẫn và công nghệ
đóng gói Chip mà ngày nay chúng ta được thừa hưởng những thành tựu công nghệ
vượt bậc như ngày nay. Từ việc đóng gói Chip mm cho tới um cho tới ngày nay thì
chúng ta không còn xa lạ với các thế hệ loại Chip này. Cho tới nay người ta đã phát
triển công nghệ mới là công nghệ nano được tích hợp trong các thế hệ như ngày nay,
đặc biệt là IC sử dụng trong vi điều khiển, vi xử lý…. Các sản phẩm này ra đời nhằm
phục vụ cho cuộc sống con người được tốt hơn và đang đưa con người vào một cuộc
sống mới, cuộc sống “số”.
Khái niệm vi điều khiển đã trở thành quen thuộc với nhiều người, bởi vì sự phát
triển của ngành Điện Tử đã có ảnh hưởng rất lớn đến nền 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 thuật ngữ kỹ thuật. 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ỹ thuật số, vi điều khiển đã và
đang thâm nhập mạnh mẽ vào kỹ thuật điện tử, điều khiển tự động, truyền 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.
Với việc tìm hiểu về họ vi điều khiển 8051 nhóm sinh viên chũng em có thể nắm
bắt được xu hướng phát triển này, và từ đây chúng em có nền tảng kiếm thức để tìm
hiểu các sản phẩm số khác và đặc biệt là các họ vi điều khiển hiển đại sau này trên nền
tảng họ vi điều khiển 8051 đã cũ này. Tuy là đồ án đầu tiên với các kiến thức mới của
ngành và còn nhiều khó khăn với nhiều thuật ngữ, khái nệm chưa từng biết đến nhưng
với sự hướng dẫn nhiệt tình của thầy giáo Nguyễn Đăng Thông cùng một số thầy cô
giáo trong Khoa Điện tử Trường ĐH SPKT Vinh và sự nhiệt tình và chịu khó tìm hiểu
của các thành viên trong nhóm chúng em đã hoàn thành nội dung của đề tài đưa ra
“Thiết kế đồng hồ số sử dụng họ 8051”.
Là đồ án đầu tiên nên chúng em thực hiện hình thức còn sơ sài, nội dung chưa sâu

và mới. Và cũng là đồ án đưa chúng em vào một phương pháp học mới đó là làm thực
tiễn nên kinh nghiêm chưa có để phát triển tính thực tiễn của nó. Vì vậy chúng tôi rất
mong nhận được sự quan tâm của các thầy, cô trong khoa Điện Tử đóng góp ý kiến để
chúng em có thể có được bước đi vững chắc hơn trong lần thực hiện đồ án sau.
Cuối cùng, chúng em xin chân thành cám ơn thầy giáo Nguyễn Đăng Thông đã
trực tiếp hướng dẫn nhóm chúng em thực hiện nội dung đồ án và một số thầy cô giáo
trong khoa Điện tử đã giúp đỡ chúng em hoàn thành đồ án này.
______________________________________________________________________________
Thiết kế đồng hồ số sử dụng họ 8051 GVHD: Nguyễn Đăng Thông
4
Chương1:
________________________________________________________________________________
A. CƠ SỞ LÝ THUYẾT
Chương 1: Họ vi điều khiển 8051
A-1.1. Tổng quan về họ vi xử lý 8051
Vào năm 1981. Hãng Intel giới thiệu một bộ vi điều khiển được gọi là 8051 Thành
viên đầu tiên của họ MCS-51. Bộ vi điều khiển này có 128 byte bộ nhớ RAM và 4
kbyte bộ nhớ ROM trên chíp, hai bộ định thời, một cổng nối tiếp và 4 cổng vào ra 8
bit 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 xử lý 8bit có nghĩa là CPU chỉ làm việc với 8 bít 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 để xử lý. 8051 có tất cả 4 cổng
vào - ra I/O có độ rộng 8 bit (xem hình 1). 8051 đã 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 với 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 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 chip, nhưng 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 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 cần phân biệt hãng sản xuất nào.
Đặc tính Số lượng

______________________________________________________________________________
Thiết kế đồng hồ số sử dụng họ 8051 GVHD: Nguyễn Đăng Thông
5
Chương1:
________________________________________________________________________________
ROM trên chíp
RAM
Bộ định thời
Các chân vào – ra
Cổng nối tiếp
Nguồn ngắt
4K byte
128 byte
2
32
1
6
Bảng A1.1: Các đặc tính của 8051:
Hình A1.1 : Sơ Đồ Khối 8051
A-1.2. Sơ đồ và chức năng các chân của họ VĐK 8051
______________________________________________________________________________
Thiết kế đồng hồ số sử dụng họ 8051 GVHD: Nguyễn Đăng Thông
6
Chương1:
________________________________________________________________________________
Hình A1.2 : Sơ Đồ Chân 8051
a. Port0 (Từ chân 32 đến 39): là port có 2 chức năng ở trên chân từ 32 đến 39
trong các thiết kế cỡ nhỏ ( không dùng bộ nhớ mở rộng ) có hai chức năng như các
đường IO. Đối với các thiết kế cỡ lớn ( với bộ nhớ mở rộng ) nó được kết hợp kênh
giữa các bus )

b. Port1 (Từ chân 1 đến 8): port1 là một 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 … có thể dùng cho các thiết bị ngoài nếu cần. Port1
không có chức năng khác, vì vậy chúng ta chỉ được dùng trong giao tiếp với các thiết
bị ngoài.
c. Port2 (Từ chân 21 đến 28) : port2 là một port công 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 kế dùng bộ nhớ mở rộng.
d. Port3 (Từ chân 10 đến 17): port3 là một port công 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ín đặc biệt của 8051 như ở bảng 2.1
______________________________________________________________________________
Thiết kế đồng hồ số sử dụng họ 8051 GVHD: Nguyễn Đăng Thông
Bit Tên Chức năng chuyển đổi Tên
P3.0 RXD Dữ liệu nhận cho port nối tiếp
P3.1 TXD Dữ liệu phát cho port nối tiếp
P3.2 INTO Ngắt 0 bên ngoài
P3.3 INT1 Ngắt 1 bên ngoài
P3.4 TO Ngõ vào của timer/counter 0
P3.5 T1 Ngõ vào của timer/counter 1
P3.6 WR Xung ghi bộ nhớ dữ liệu ngoài
P3.7 RD Xung đọc bộ nhớ dữ liệu ngoài
7
Chương1:
________________________________________________________________________________

Bảng A1.2 : Chức năng của các chân trên Port3
e. PSEN (Program Store Enable ) (Chân 29) : 8051 có 4 tín hiệu điều khiển
PSEN là tín hiệu ra trên chân 29. Nó là tín hiệu điều khiển để cho phép bộ nhớ
chương trình mở rộng và thường được nối đến chân OE (Output Enable) của một
EPROM để cho phép đọc các bytes mã lệnh.

PSEN sẽ ở mức thấp trong thời gian lấy lệnh. Các mã nhị phân của chương
trình được đọc từ EPROM qua bus và được chốt vào thanh ghi lệnh của 8051 để giải
mã lệnh. Khi thi hành chương trình trong ROM nội (8051) PSEN sẽ ở mức thụ động
(mức cao).
f. ALE (Address Latch Enable ) (Chân 30):
Tín hiệu ra ALE trên chân 30 tương hợp với các thiết bị làm việc với các xử lí
8585, 8088, 8086, 8051 dùng ALE một cách tương tự cho làm việc giải các kênh các
bus địa chỉ và dữ liệu khi port 0 được dùng trong chế độ chuyển đổi của nó : vừa là
bus dữ liệu vừa là búyt thấp của địa chỉ, ALE là tín hiệu để chốt địa chỉ vào một
thanh ghi bên ngoài trong nữa đầu của chu kỳ bộ nhớ. Sau đó, các đường dùng để xuất
hoặc nhập dữ liệu trong nữa sau chu kỳ của bộ nhớ.
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à nguồn xung nhịp cho các hệ thống. Nếu xung trên 8051 là 12MHz thì
ALE có tần số 2MHz. Chỉ ngoại trừ khi thi hành lệnh MOVX, một xung ALE sẽ bị
mất. Chân này cũng được làm ngõ vào cho xung lập trình cho EPROM trong 8051.
g. EA (External Access) (Chân 31):
Tín hiệu vào EA trên chân 31 thường được mắc lên mức cao (+5V) hoặc mức
thấp (GND). Nếu ở mức cao, 8051 thi hành chương trình từ ROM nội trong khoảng
địa chỉ thấp (4K). Nếu ở mức thấp, chương trình chỉ được thi hành từ bộ nhớ mở rộng.
Khi dùng 8051, EA luôn được nối mức thấp vì không có bộ nhớ chương trình trên
chip. Nếu EA được nối mức thấp bộ nhớ bên trong chương trình 8051 sẽ bị cấm và
chương trình thi hành từ EPROM mở rộng. Người ta còn dùng chân EA làm chân cấp
điện áp 21V khi lập trình cho EPROM trong 8051.
h. RST -Reset (Chân 9):
Ngõ vào RST trên chân 9 là ngõ reset của 8051. Khi tín hiệu này được đưa lên
mức cao (trong ít nhất 2 chu kỳ máy), các thanh ghi trong 8051 được tải những giá trị
thích hợp để khởi động hệ thống.
______________________________________________________________________________
Thiết kế đồng hồ số sử dụng họ 8051 GVHD: Nguyễn Đăng Thông
8

Chương1:
________________________________________________________________________________
i. Các ngõ vào bộ dao động trên chip XTAL1 và XTAL2 (Chân 19 và 18):
Như đã thấy trong các hình trên , 8051 có một bộ dao động trên chip. Nó thường
được nối với thạch anh giữa hai chân 18 và 19. Các tụ giữa cũng cần thiết như đã vẽ.
Tần số thạch anh thông thường là 12MHz.
j. Các chân nguồn GND và VCC (Chân 20 và 40) :
8051 vận hành với nguồn đơn +5V. V
cc
được nối vào chân 40 và V
ss
(GND) được
nối vào chân 20.
A-1.3. Cho phép và không cho phép ngắt trong 8051
Khi Reset thì tất cả mọi ngắt đều bị cấm (bị che), có nghĩa là không có ngắt nào
được bộ vi điều khiển đáp ứng nếu chúng được kích hoạt. Các ngắt phải được cho
phép bằng phần mềm để bộ vi điều khiển có thể đáp ứng được. Có một thanh ghi được
gọi là cho phép ngắt (Interrupt Enable) chịu trách nhiệm về việc cho phép (không che)
và cấm (che) các ngắt.
IE Register (Interrupt Enable)
EA – bit enable hoặc disable tất cả các interrupt.
EA=0 thì không ngắt nào được nhận.
EA=1 thì từng nguồn ngắt sẽ được mở hoặc cấm bằng cách bật hoặc xóa
bit cho phép tương ứng.
ES – bit enable hoặc disable ngắt cổng nối tiếp.
ES=0 thì không cho phép ngắt nối tiếp.
ES=1 cho phép ngắt nối tiếp.
ET1 – bit enable hoặc disable ngắt tràn của của Timer1.
ET1=0 Timer1 không ảnh hưởng đến ngắt.
ET1=1 Timer1 kích hoạt ngắt.

______________________________________________________________________________
Thiết kế đồng hồ số sử dụng họ 8051 GVHD: Nguyễn Đăng Thông
9
Chương1:
________________________________________________________________________________
EXT1 – cho phép hoặc cấm ngắt ngoài của Timer1.
EXT1=0 thì sự thay đổi trạng thái của cổng INT0 không ảnh hưởng đến
việc ngắt.
EXT1=1 enable ngắt ngoại ngay tại thời điểm INT0 thay đổi trạng thái.
ET0 – bit enable hoặc disable ngắt tràn của Timer0.
ET0=0 Timer0 không ảnh hưởng đến ngắt.
ET0=1 Timer0 kích hoạt ngắt.
EX0 – bit enable hoặc disable ngắt ngòai của Timer0.
EX0=0 thì sự thay đổi trạng thái của INT1 không ảnh hưởng đến việc ngắt.
EX0=1 enable ngắt ngoại ngay tại thời điểm INT1 thay đổi trạng thái.
A-1.4. Các bước thực hiện khi cho phép ngắt
Để cho phép một ngắt, trình tự thực hiện các bước sau:
1. Bit7 của thanh ghi IE là EA phải bật lên cao cho phép các bit còn lại của thanh
ghi có hiệu lực
2. Nếu EA=1 thì tất cả mọi ngắt đều được phép và sẽ được đáp ứng nếu các bit
tương ứng của ngắt này trong IE có mức cao. Nếu IE=0 thì không có ngắt nào được
đáp ứng, cho dù bit tương ứng trong IE có giá trị cao.
A-1.5. Ưu tiên ngắt
Mỗi một nguyên nhân ngắt được lập trình riêng để có một trong hai mức ưu tiên
thông qua thanh ghi chức năng đặc biệt được định địa chỉ bit, thanh ghi ưu tiên ngắt IP
(interrupt priority), thanh ghi này có địa chỉ byte là 0B8H như mô tả dưới đây.
IP Register (Interrupt Priority) – 0: mức thấp, 1: mức cao.
PS – ưu tiên cho ngắt port nối tiếp.
PT1 – ưu tiên cho ngắt bộ định thời 1.
PX1 – ưu tiên cho ngắt ngòai 1.

PT0 – ưu tiên cho ngắt do bộ định thời 0.
PX0 – ưu tiên cho ngắt ngoài 0.
Khi hệ thống được thiết lập lại trạng thái ban đầu, thanh ghi IP sẽ mặc định đặt
tất cả các ngắt ở mức ưu tiên thấp. Ý tưởng “các mức ưu tiên” cho phép một trình
phục vụ ngắt được tạm thời dừng bỏi một ngắt khác nếu ngắt mới này có mức ưu tiên
cao hơn mức ưu tiên của ngắt hiện đang được phục vụ. Điều này hoàn toàn hợp lý đối
với 8051 vì ta chỉ có 2 mức ưu tiên. Nếu có ngắt với mức ưu tiên cao xuất hiện, trình
______________________________________________________________________________
Thiết kế đồng hồ số sử dụng họ 8051 GVHD: Nguyễn Đăng Thông
10
Chương1:
________________________________________________________________________________
phục vụ ngắt cho ngắt có mức ưu tiên thấp phải tạm dừng (nghĩa là bị ngắt). Ta không
thể tạm dừng một chương trình phục vụ ngắt có mức ưu tiên cao.
Chương trình chính do được thực thi ở mức nền và không được kết hợp với một
ngắt nào nên luôn luôn bị ngắt cho dù các ngắt này có mức ưu tiên thấp hay cao. Nếu
có 2 ngắt với mức ưu tiên ngắt khác nhau xuất hiện đồng thời, ngắt có ưu tiên cao sẽ
được phục vụ trước.
Nếu có 2 ngắt có cùng mức ưu tiên xuất hiện đồng thời, chuỗi vòng cố định sẽ xác
định ngắt nào được phục vụ trước. Chuỗi vòng này sẽ là: ngắt ngoài 0, ngắt do bộ
định thời 0, ngắt ngoài 1, ngắt do bộ định thời 1, ngắt do port nối tiếp, ngắt do bộ định
thời 2.
A-1.6. Xử lý ngắt
Khi có một ngắt chương trình xuất hiện và được CPU chấp nhận, chương trình
chính bị ngắt. Các thao tác sau đây xảy ra:
- Hoàn tất việc thực thi lệnh hiện hành.
- Bộ đếm chươn trình PC được cất vào stack.
- Trạng thái của ngắt hiện hành được lưu giữ lại.
- Các ngắt được chận lại ở mức ngắt.
- Bộ đếm chương trình PC được nạp địa chỉ vector của trình phục vụ ngắt ISR.

- ISR được thực thi.
ISR được thực thi để đáp ứng công việc của ngắt. Việc thực thi ISR kết thúc khi
gặp lệnh RET1 (trở về từ một trình phục vụ ngắt). Lệnh này lấy lại giá trị cũ của bộ
đếm chương trình PC từ stack và phục hồi trạng thái của ngắt cũ. Việc thực thi
chương trình chính được tiếp tục ở nơi bị tạm ngưng
A-1.7. Bộ định thời / Bộ đếm (Timer/Counter)
8051 có 2 timer tên là timer0 và timer1. Các timer này đều là timer 16bit, giá trị
đếm max do đó bằng 216 = 65536 (đếm từ 0 đến 65535). Hai timer có nguyên lý hoạt
động hoàn toàn giống nhau và độc lập. Sau khi cho phép chạy, mỗi khi có thêm một
xung tại đầu vào đếm, giá trị của timer sẽ tự động được tăng lên 1 đơn vị, cứ như vậy
cho đến khi giá trị tăng lên vượt quá giá trị max mà thanh ghi đếm có thể biểu diễn thì
giá trị đếm lại được đưa trở về giá trị min (thông thường min = 0). Sự kiện này được
hiểu là sự kiện tràn timer (overflow) và có thể gây ra ngắt nếu ngắt tràn timer được
cho phép (bit ETx trong thanh ghi IE = 1). Việc cho timer chạy/dừng được thực hiện
bởi các bit TR trong thanh ghi TCON (đánh địa chỉ đến từng bit).
Khi bit TRx = 1, timerx sẽ đếm, ngược lại khi TRx = 0, timerx sẽ không đếm
mặc dù vẫn có xung đưa vào. Khi dừng không đếm, giá trị của timer được giữ
nguyên.
Các bit TFx là các cờ báo tràn timer, khi sự kiện tràn timer xảy ra, cờ sẽ được
tự động đặt lên bằng 1 và nếu ngắt tràn timer được cho phép, ngắt sẽ xảy ra. Khi CPU
xử lý ngắt tràn timerx, cờ ngắt TFx tương ứng sẽ tự động được xóa về 0.
______________________________________________________________________________
Thiết kế đồng hồ số sử dụng họ 8051 GVHD: Nguyễn Đăng Thông
11
Chương1:
________________________________________________________________________________
Giá trị đếm 16bit của timerx được lưu trong hai thanh ghi THx (byte cao) và TLx
(byte thấp). Hai thanh ghi này có thể ghi/đọc được bất kỳ lúc nào. Tuy nhiên nhà sản
xuất khuyến cáo rằng nên dừng timer (cho bit TRx = 0) trước khi ghi/đọc các thanh
ghi chứa giá trị đếm.

Các timer có thể hoạt động theo nhiều chế độ, được quy định bởi các bit trong
thanh ghi TMOD (không đánh địa chỉ đến từng bit).
Để sử dụng timer của 8051, hãy thực hiện các bước sau:
- Quy định chế độ hoạt động cho timer bằng cách tính toán và ghi giá trị cho các
bit trong thanh ghi TMOD.
- Ghi giá trị đếm khởi đầu mong muốn vào 2 thanh ghi đếm THx và TLx. Đôi
khi ta không muốn timer/counter bắt đầu đếm từ 0 mà từ một giá trị nào đó để thời
điểm tràn gần hơn, hoặc chẵn hơn trong tính toán sau này. Ví dụ nếu cho timer đếm từ
15535 thì sau 50000 xung nhịp (tức 50000 micro giây với thạch anh 12MHz) timer sẽ
tràn, và thời gian một giây có thể dễ dàng tính ra khá chính xác = 20 lần tràn của timer
(đương nhiên mỗi lần tràn lại phải nạp lại giá trị 15535).
- Đặt mức ưu tiên ngắt và cho phép ngắt tràn timer (nếu muốn).
- Dùng bit TRx trong thanh ghi TCON để cho timer chạy hay dừng theo ý muốn.
A-1.8. Tổ chức bộ nhớ
- Bộ nhớ trong 8051 bao gồm ROM và RAM. RAM trong 8051 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.
- 8051 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 8051 nhưng
8051 vẫn có thể kết nối với 64K byte bộ nhớ chương trình và 64K byte dữ liệu.
FFFF FFFF
FF
00
0000 0000
Hình A1.3: Tổ chức bộ nhớ
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.
______________________________________________________________________________
Thiết kế đồng hồ số sử dụng họ 8051 GVHD: Nguyễn Đăng Thông

12
CODE
Memory
Enable
via
PSEN
DATA
Memory
Enable
via
RD & WR
ON-CHIP
Memory
Chương1:
________________________________________________________________________________
 Ngăn xếp bên trong Ram nội nhỏ hơn so với Ram ngoại như trong các bộ
Microprocontroller khác.
RAM bên trong 8051 được phân chia như sau:
 Các bank thanh ghi có địa chỉ từ 00H đến 1FH.
 RAM địa chỉ hóa từng bit 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.
Hình A1.4: Bảng bản đồ bộ nhớ Data bên trong chip 8051
RAM đa dụng:
- Mặc dù trên 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).
______________________________________________________________________________
Thiết kế đồng hồ số sử dụng họ 8051 GVHD: Nguyễn Đăng Thông
13

Chương1:
________________________________________________________________________________
- 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:
- 8051 chứa 210 bit được địa chỉ hóa, trong đó có 128 bit có chứa các byte có
chứa các địa chỉ từ 20F đế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 bít có thể được đặt, xóa, AND, OR, …, với 1 lệnh
đơ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 bít.
- 128 bit truy xuất từng bit này cũng có thể truy xuất như các byte hoặc như 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 8951
hỗ trợ 8 thanh ghi có tên là R0 đến 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 đến 07H.
- Các lệnh dùng các thanh ghi RO đến 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 đến 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.
A-1.9. Các thanh ghi có chức năng đặc biệt
- Các thanh ghi nội của 8051 được truy xuất ngầm định bởi bộ lệnh.
- Các thanh ghi trong 8051 đượ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ộ điế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, 8051 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 đến 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 đặc 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):
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
______________________________________________________________________________
Thiết kế đồng hồ số sử dụng họ 8051 GVHD: Nguyễn Đăng Thông
14
Chương1:
________________________________________________________________________________
PSW4 RS1 D4H Register Bank Select 1
PSW.3 RS0 D3H Register Bank Select 0
00=Bank 0; address 00H÷07H
01=Bank 1; address 08H÷0FH
10=Bank 2; address 10H÷17H
11=Bank 3; address 18H÷1FH
PSW.2 OV D2H Overlow Flag
PSW.1 - D1H Reserved
PSW.0 P DOH Even Parity Flag
Bảng A1.3: Từ trạng thái chương trình ở địa chỉ D0H
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.
RS1 RS0 BANK
0 0 0
0 1 1
1 0 2
1 1 3
Bảng A1.4: Bảng các bit chọn bank thanh ghi truy xuất
• 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 để
______________________________________________________________________________
Thiết kế đồng hồ số sử dụng họ 8051 GVHD: Nguyễn Đăng Thông
15
Chương1:
________________________________________________________________________________
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 một để 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
AB ➜ lấy A chia B, kết quả nguyên đặt vào A, số dư đặt vào 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
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 8051.
- Để 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 8051 chỉ có 32 byte vì địa chỉ cao nhất của
RAM trên chip là 7FH. Sở dĩ giá trị 5FH được nạp vào SP vì SP tăng lên 60H trước
khi cất byte dữ liệu.
- Khi Reset 8051, 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 ghi 1 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) để

______________________________________________________________________________
Thiết kế đồng hồ số sử dụng họ 8051 GVHD: Nguyễn Đăng Thông
16
Chương1:
________________________________________________________________________________
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 8051 bao gồm Port0 ở đị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):
- 8051 có chứa hai bộ định thời/bộ đếm16 bit được dùng cho việc định thời
được đếm sự kiện. Timer0 ở địa chỉ 8AH (TL0: byte thấp) và 8CH (TH0: 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):
- 8051 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ẽdữ cảhai dữ liệu truyền và 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):
- 8051 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ệt 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):
______________________________________________________________________________
Thiết kế đồng hồ số sử dụng họ 8051 GVHD: Nguyễn Đăng Thông
17
Chương1:
________________________________________________________________________________
- 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:
 Bit 7 (SMOD): Bit có tốc độ Baud ở mode 1, 2, 3 ở Port nối tiếp khi set.
 Bit 6, 5, 4: Không có địa chỉ.
 Bit 3 (GF1) : Bit cờ đa năng 1.
 Bit 2 (GF0) : Bit cờ đa năng 2 .
 Bit 1
*
(PD) : Set để khởi động mode Power Down và thoát để reset.
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.
A-1.10. Bộ nhớ ngoài (External memory)

- 8051 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à ROM nếu cần.
- Khi dùng bộ nhớ ngoài, Port0 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ớ. Port được cho là byte cao của bus địa
chỉ.
Truy xuất bộ nhớ mã ngoài (Acessing External Code Memory):
Bộ nhớ chương trình bên ngoài là bộ nhớ ROM được cho phép của tín hiệu PSEN.
Sự kết nối phần cứng của bộ nhớ EPROM như sau:
Hình A1.5 : Accessing External Code Memory (Truy xuất bộ nhớ mã ngoài)
- Trong một chu kỳ máy tiêu biểu, tín hiệu ALE tích cực 2 lần. Lần thứ nhất cho
phép 74HC373 mở cổng chốt địa chỉ byte thấp, khi ALE xuống 0 thì byte thấp và byte
______________________________________________________________________________
Thiết kế đồng hồ số sử dụng họ 8051 GVHD: Nguyễn Đăng Thông
18
Chương1:
________________________________________________________________________________
cao của bộ đếm chương trình đều có nhưng EPROM chưa xuất vì PSEN chưa tích cực,
khi tín hiệu lên một trở lại thì Port 0 đã có dữ liệu là Opcode. ALE tích cực lần thứ hai
được giải thích tương tự và byte 2 được đọc từ bộ nhớ chương trình. Nếu lệnh đang hiện
hành là lệnh 1 byte thì CPU chỉ đọc Opcode, còn byte thứ hai bỏ đi.
• Truy xuất bộ nhớ dữ liệu ngoài (Accessing External Data Memory):
- Bộ nhớ dữ liệu ngoài là một bộ nhớ RAM được đọc hoặc ghi khi được cho
phép của tín hiệu RD và WR. Hai tín hiệu này nằm ở chân P3.7 (RD) và P3.6 (WR).
Lệnh MOVX được dùng để truy xuất bộ nhớ dữ liệu ngoài và dùng một bộ đệm dữ
liệu 16 bit (DPTR), R0 hoặc R1 như là một thanh ghi địa chỉ.
- Các RAM có thể giao tiếp với 8051 tương tự cách thức như EPROM ngoại trừ
chân RD của 8051 nối với chân OE (Output Enable) của RAM và chân WR của 8951
nối với chânWE của RAM. Sự nối các bus địa chỉ và dữ liệu tương tự như cách nối
của EPROM.

Hinh A1.6: Truy xuất bộ nhớ dữ liệu ngoài
• Sự giải mã địa chỉ (Address Decoding):
- Sự giải mã địa chỉ là một yêu cầu tất yếu để chọn EPROM, RAM, 8279, … Sự
giải mã địa chỉ đối với 8051 để chọn các vùng nhớ ngoài như các vi điều khiển. Nếu
các con EPROM hoặc RAM 8K được dùng thì các bus địa chỉ phải được giải mã để
chọn các IC nhớ nằm trong phạm vi giới hạn 8K: 0000H÷1FFFH, 2000H÷3FFFH, …
• Sự đè lên nhau của các vùng nhớ dữ liệu ngoài:
- Vì bộ nhớ chương trình là ROM, nên nẩy sinh một vấn đề bất tiện khi phát
triển phần mềm cho vi điều khiển. Một nhược điểm chung của 8051 là các vùng
______________________________________________________________________________
Thiết kế đồng hồ số sử dụng họ 8051 GVHD: Nguyễn Đăng Thông
19
Chương1:
________________________________________________________________________________
nhớ dữ liệu ngoài nằm đè lên nhau, vì tín hiệu PSEN được dùng để đọc bộ nhớ mã
ngoài và tín hiệu RD được dùng để đọc bộ nhớ dữ liệu, nên một bộ nhớ RAM có
thể chứa cả chương trình và dữ liệu bằng cách nối đường OE của RAM đến ngõ ra
một cổng AND có hai ngõ vào PSEN và RD. Sơ đồ mạch như hình sau cho phép
cho phép bộ nhớ RAM có hai chức năng vừa là bộ nhớ chương trình vừa là bộ nhớ
dữ liệu:
Hình A1.7 : Overlapping the External code and data space
-Vậy một chương trình có thể được tải vào RAM bằng cách xem nó như bộ nhớ
dữ liệu và thi hành chương trình băng cách xem nó như bộ nhớ chương trình.
Hoạt động Reset:
- 8051 có ngõ vào reset RST tác động ở mức cao trong khoảng thời gian 2 chu
kỳ xung máy, sau đó xuống mức thấp để 8051 bắt đầu làm việc. RST có thể kích bằng
tay bằng một phím nhấn thường hở, sơ đồ mạch reset như sau:
Hình A1.8 : Manual Reset
Thanh ghi Nội dung
Đếm chương trình PC

Thanh ghi tích lũyA
Thanh ghi B
Thanh ghi thái PSW
SP
DPRT
0000H
00H
00H
00H
07H
0000H
______________________________________________________________________________
Thiết kế đồng hồ số sử dụng họ 8051 GVHD: Nguyễn Đăng Thông
20
Reset
10 µF
8.2 KΩ
100Ω
+5V
Chương1:
________________________________________________________________________________
Port 0 đến port 3
IP
IE
Các thanh ghi định thời
SCON SBUF
PCON (HMOS)
PCON (CMOS)
FFH
XXX0 0000 B

0X0X 0000 B
00H
00H
00H
0XXX XXXXH
0XXX 0000 B
Bảng A1.4: Trạng thái các thanh ghi sau khi reset hệ thống
-Thanh ghi quan trọng nhất là thanh ghi bộ đếm chương trình PC được reset tại
địa chỉ 0000H. Khi ngõ vào RST xuống mức thấp, chương trình luôn bắt đầu tại địa
chỉ 0000H của bộ nhớ chương trình. Nội dung của RAM trên chip không bị thay đổi
bởi tác động của ngõ vào reset.
Chương 2: Vi điều khiển 89S52
A-2.1.Tổng quan vi điều khiển 89S52
Là thành viên của 8051 của Atmel. AT89S52 thích hợp cho những ứng dụng điều
khiển. Việc xử lý trên byte và các toán số học ở cấu trúc dữ liệu nhỏ được thực hiện
bằng nhiều chế độ truy xuất dữ liệu nhanh trên RAM nội. Tập lệnh cung cấp một bảng
tiện dụng của những lệnh số học 8 bit gồm cả lệnh nhân và lệnh chia. Nó cung cấp
những hổ trợ mở rộng trên chip dùng cho những biến một bit như là kiểu dữ liệu riêng
biệt cho phép quản lý và kiểm tra bit trực tiếp trong hệ thống điều khiển.
Cũng chính vì là thành viên của 8051 nên AT89S52 cung cấp những đặc tính
chuẩn như: 8 KByte bộ nhớ chỉ đọc có thể xóa và lập trình nhanh (EPROM), 128 Byte
RAM, 32 đường I/O, 3 TIMER/COUNTER 16 Bit, 5 vectơ ngắt có cấu trúc 2 mức
ngắt, một Port nối tiếp bán song công, 1 mạch dao động tạo xung Clock và bộ dao
động ON-CHIP.
Các đặc điểm khác của chip AT89S52 so với anh em của mình (89C51,
89S8252… ) được tóm tắt như sau:
8 KByte bộ nhớ có thể lập trình nhanh, có khả năng tới 1000 chu kỳ ghi/xoá
Tần số hoạt động từ: 0Hz đến 24 MHz
3 mức khóa bộ nhớ lập trình
3 bộ Timer/counter 16 Bit

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.
4 µs cho hoạt động nhân hoặc chia
______________________________________________________________________________
Thiết kế đồng hồ số sử dụng họ 8051 GVHD: Nguyễn Đăng Thông
21
Chương1:
________________________________________________________________________________
Hình A2.1: Sơ đồ khối của AT89S52
A-2.2.Sơ đồ và chức năng các chân 89S52
a. Sơ đồ chân 89S52
Hình A2.2: Sơ đồ chân 89S52
______________________________________________________________________________
Thiết kế đồng hồ số sử dụng họ 8051 GVHD: Nguyễn Đăng Thông
22
Chương1:
________________________________________________________________________________
Mặc dù các thành viên của họ 8051(ví dụ 8751, 89S52, 89C51, DS5000) đều có
các kiểu đóng vỏ khác nhau, chẳng hạn như hai hàng chân DIP (Dual In-Line Pakage),
dạng vỏ dẹt vuông QPF (Quad Flat Pakage) và dạng chip không có chân đỡ LLC
(Leadless Chip Carrier) thì chúng đều có 40 chân cho các chức năng khác nhau như
vào ra I/O, đọc
RD
, ghi
WR
, địa chỉ, dữ liệu và ngắt. Cần phải lưu ý một số hãng
cung cấp một phiên bản 8051 có 20 chân với số cổng vào ra ít hơn cho các ứng dụng

yêu cầu thấp hơn. Tuy nhiên vì hầu hết các nhà phát triển sử dụng chíp đóng vỏ 40
chân với hai hàng chân DIP nên ta chỉ tập trung mô tả phiên bản này.
b. Chức năng của các chân 89S52
Port 0: từ chân 32 đến chân 39 (P0.7 _P0.0). Port 0 có 2 chức năng: 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 IO, đối
với thiết kế 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: từ chân 1 đến chân 9 (P1.0 _ P1.7). Port 1 là port IO dùng cho giao tiếp
với thiết bị bên ngoài nếu cần.
Port 2: từ chân 21 đến chân 28 (P2.0 _P2.7). Port 2 là một port có tác dụng kép
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: từ chân 10 đến chân 17 (P3.0 _ P3.7). Port 3 là port có tác dụng kép. Các
chân của port này có nhiều chức năng, có công dụng chuyển đổi có liên hệ đến các
đặc tính đặc biệt của 89S52 như ở bảng sau:
Bit Tên Chức năng chuyển đổi
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
RXD
TXD
INT0
INT1
T0
T1
WR

RD
Ngõ vào dữ liệu nối tiếp.
Ngõ xuất dữ liệu nối tiếp.
Ngõ vào ngắt cứng thứ 0.
Ngõ vào ngắt cứng thứ 1.
Ngõ vào TIMER/ COUNTER thứ 0.
Ngõ vào của TIMER/ COUNTER thứ 1.
Tín hiệu ghi dữ liệu lên bộ nhớ ngoài.
Tín hiệu đọc bộ nhớ dữ liệu ngoài.
Bảng A2.1: Chức năng chân ở Port 3 của 89S52
PSEN (Program store enable):
PSEN là tín hiệu ngõ ra có tác dụng cho phép đọc bộ nhớ chương trình mở rộng và
thường được nối đến chân OE của Eprom cho phép đọc các byte mã lệnh.
PSEN ở mức thấp trong thời gian 89S52 lấy lệnh. Các mã lệnh của chương trình
được đọc từ Eprom qua bus dữ liệu, được chốt vào thanh ghi lệnh bên trong 89S52 để
giải mã lệnh. Khi 89S52 thi hành chương trình trong ROM nội, PSEN ở mức cao.
ALE (Address Latch Enable):
______________________________________________________________________________
Thiết kế đồng hồ số sử dụng họ 8051 GVHD: Nguyễn Đăng Thông
23
Chương1:
________________________________________________________________________________
Khi 89S52 truy xuất bộ nhớ bên ngoài, Port 0 có chức năng là bus địa chỉ và 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 ở 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.
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, 89S52 thi hành chương trình từ ROM
nội. Nếu ở mức 0, 89S52 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 21V khi lập trình cho Eprom trong 89S52.
RST (Reset): Khi ngõ vào tín hiệu này
đưa lên mức cao ít nhất 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 phải tự động reset.
Các giá trị tụ và điện trở được chọn là:
R1=10Ω, R2=220Ω, C=10 µF.
Các ngõ vào bộ dao động X1, X2: Bộ tạo dao
động được tích hợp bên trong 89S52. Khi sử dụng
89S52, người ta chỉ cần nối thêm thạch anh và các tụ.
Tần số thạch anh tùy thuộc vào mục đích của người
sử dụng, giá trị tụ thường được chọn là 33pF.
A-2.3.Tổ chức bộ nhớ và ngắt bên trong 89S52
Bộ nhớ trong 89S52 bao gồm ROM và RAM. RAM trong 89S52 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.
AT89S52 có bộ nhớ được tổ chức 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
89S52 nhưng 89S52 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 ngoài.
______________________________________________________________________________
Thiết kế đồng hồ số sử dụng họ 8051 GVHD: Nguyễn Đăng Thông
24
Chương1:
________________________________________________________________________________
Địa chỉ byte Địa chỉ bít Địa chỉ byte Địa chỉ bít
Hình A2.3 : Bản đồ bộ nhớ Data bên trong Chip 89S52

RAM bên trong AT89S52 được phân chia như sau:
 Các bank thanh ghi có địa chỉ từ 00H đến 1FH.
 RAM địa chỉ hóa từng bit 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
a. RAM đa dụng
______________________________________________________________________________
Thiết kế đồng hồ số sử dụng họ 8051 GVHD: Nguyễn Đăng Thông
25

×