1. Trang chủ
  2. » Luận Văn - Báo Cáo

thiết kế đồng hồ số sử dụng họ 8051

56 1,3K 9
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Thiết kế đồng hồ số sử dụng họ 8051
Người hướng dẫn Nguyễn Đăng Thông, GVHD
Trường học Khoa Điện Tử - Đại Học Công Nghệ Thông Tin
Chuyên ngành Kỹ thuật Vi xử lý
Thể loại Đồ án
Năm xuất bản 2011
Thành phố Vinh
Định dạng
Số trang 56
Dung lượng 1,3 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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ácthiết kế dùng bộ nhớ mở rộng

Trang 1

Vinh, ngày 01 tháng 09 năm 2011

PHIẾU GIAO ĐỀ TÀINhó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: ………

Nguyễn Minh Quân

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

………

………

Trang 2

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN

Trang 3

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

Trang 4

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áttriể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à xuhướ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 thanhtruyề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ớicủ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ựctiễ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ấtmong 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áotrong khoa Điện tử đã giúp đỡ chúng em hoàn thành đồ án này

PHIẾU GIAO ĐỀ TÀI 1

Trang 5

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN 2

NHẬ Nhóm sinh viên Mục Lục N XÉT CỦA GIÁO VIÊN PHẢN BIỆN 3

Lời nói đầu 4

A CƠ SỞ LÝ THUYẾT 6

Chương 1: Họ vi điều khiển 8051 6

A-1.1 Tổng quan về họ vi xử lý 8051 6

A-1.2 Sơ đồ và chức năng các chân của họ VĐK 8051 7

A-1.3 Cho phép và không cho phép ngắt trong 8051 9

A-1.4 Các bước thực hiện khi cho phép ngắt 10

A-1.5 Ưu tiên ngắt 11

A-1.6 Xử lý ngắt 11

A-1.7 Bộ định thời / Bộ đếm (Timer/Counter) 12

A-1.8 Tổ chức bộ nhớ 13

A-1.9 Các thanh ghi có chức năng đặc biệt 15

A-1.10 Bộ nhớ ngoài (External memory) 19

Chương 2: Vi điều khiển 89S52 22

A-2.1 Tổng quan vi điều khiển 89S52 22

A-2.2 Sơ đồ và chức năng các chân 89S52 23

A-2.3 Tổ chức bộ nhớ và ngắt bên trong 89S52 25

Chương 3: Khối hiển thị LCD 31

A-3.1 Giới thiệu LCD 31

A-3.2 Chức năng các chân LCD hiển thị ký tự 16x2 (LCD-016M002B) 31

A-3.3 Hoạt động của LCD 16x2 (LCD-016M002B) 33

B ĐỒNG HỒ SỐ SỬ DỤNG HỌ 8051 VÀ LCD 41

B-1 Sơ đồ nguyên lý của mạch 41

B-2 Lưu đồ thuật toán 44

B-3 Chương trình điều khiển 44

B-4 Sản phẩm thực tế 54

Trang 6

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 ào năm 1981 Hãng Intel giới thiệu một bộ vi điều khiển ăm 1981 Hãng Intel giới thiệu một bộ vi điều khiển ới thiệu một bộ vi điều khiển ệu một bộ vi điều khiển ột bộ vi điều khiển ột bộ vi điều khiển ều khiển ển

đ ược gọi là 8051 Thành viên đầu tiên của họ MCS-51 Bộ vi c g i l 8051 Th nh viên đ u tiên c a h MCS-51 B vi ọi là 8051 Thành viên đầu tiên của họ MCS-51 Bộ vi ào năm 1981 Hãng Intel giới thiệu một bộ vi điều khiển ào năm 1981 Hãng Intel giới thiệu một bộ vi điều khiển ầu tiên của họ MCS-51 Bộ vi ủa họ MCS-51 Bộ vi ọi là 8051 Thành viên đầu tiên của họ MCS-51 Bộ vi ột bộ vi điều khiển

đi u khi n n y có 128 byte b nh RAM v 4 kbyte b nh ều khiển ển ào năm 1981 Hãng Intel giới thiệu một bộ vi điều khiển ột bộ vi điều khiển ới thiệu một bộ vi điều khiển ào năm 1981 Hãng Intel giới thiệu một bộ vi điều khiển ột bộ vi điều khiển ới thiệu một bộ vi điều khiển ROM trên chíp, hai b đ nh th i, m t c ng n i ti p v 4 ột bộ vi điều khiển ịnh thời, một cổng nối tiếp và 4 ời, một cổng nối tiếp và 4 ột bộ vi điều khiển ổng nối tiếp và 4 ối tiếp và 4 ếp và 4 ào năm 1981 Hãng Intel giới thiệu một bộ vi điều khiển

c ng v o ra 8 bit t t c đ ổng nối tiếp và 4 ào năm 1981 Hãng Intel giới thiệu một bộ vi điều khiển ất cả được đặt trên một chíp Lúc ấy nó ả được đặt trên một chíp Lúc ấy nó ược gọi là 8051 Thành viên đầu tiên của họ MCS-51 Bộ vi c đ t trên m t chíp Lúc y nó ặt trên một chíp Lúc ấy nó ột bộ vi điều khiển ất cả được đặt trên một chíp Lúc ấy nó

đ ược gọi là 8051 Thành viên đầu tiên của họ MCS-51 Bộ vi c coi l m t “h th ng trên chíp” 8051 l m t x lý ào năm 1981 Hãng Intel giới thiệu một bộ vi điều khiển ột bộ vi điều khiển ệu một bộ vi điều khiển ối tiếp và 4 ào năm 1981 Hãng Intel giới thiệu một bộ vi điều khiển ột bộ vi điều khiển ử lý 8bit có ngh a l CPU ch l m vi c v i 8 bít d li u t i m t ĩa là CPU chỉ làm việc với 8 bít dữ liệu tại một ào năm 1981 Hãng Intel giới thiệu một bộ vi điều khiển ỉ làm việc với 8 bít dữ liệu tại một ào năm 1981 Hãng Intel giới thiệu một bộ vi điều khiển ệu một bộ vi điều khiển ới thiệu một bộ vi điều khiển ữ liệu tại một ệu một bộ vi điều khiển ại một ột bộ vi điều khiển

th i đi m D li u l n h n 8 bit đ ời, một cổng nối tiếp và 4 ển ữ liệu tại một ệu một bộ vi điều khiển ới thiệu một bộ vi điều khiển ơn 8 bit được chia ra thành các dữ ược gọi là 8051 Thành viên đầu tiên của họ MCS-51 Bộ vi c chia ra th nh các d ào năm 1981 Hãng Intel giới thiệu một bộ vi điều khiển ữ liệu tại một

li u 8 bit đ x lý 8051 có t t c 4 c ng v o - ra I/O có đ ệu một bộ vi điều khiển ển ử lý ất cả được đặt trên một chíp Lúc ấy nó ả được đặt trên một chíp Lúc ấy nó ổng nối tiếp và 4 ào năm 1981 Hãng Intel giới thiệu một bộ vi điều khiển ột bộ vi điều khiển

r ng 8 bit (xem hình 1) 8051 đã ph bi n sau khi Intel cho ột bộ vi điều khiển ổng nối tiếp và 4 ếp và 4 phép các nh s n xu t khác s n xu t v bán b t k d ng ào năm 1981 Hãng Intel giới thiệu một bộ vi điều khiển ả được đặt trên một chíp Lúc ấy nó ất cả được đặt trên một chíp Lúc ấy nó ả được đặt trên một chíp Lúc ấy nó ất cả được đặt trên một chíp Lúc ấy nó ào năm 1981 Hãng Intel giới thiệu một bộ vi điều khiển ất cả được đặt trên một chíp Lúc ấy nó ỳ dạng ại một

bi n th n o c a 8051 m h thích v i đi u ki n h ph i đ ếp và 4 ển ào năm 1981 Hãng Intel giới thiệu một bộ vi điều khiển ủa họ MCS-51 Bộ vi ào năm 1981 Hãng Intel giới thiệu một bộ vi điều khiển ọi là 8051 Thành viên đầu tiên của họ MCS-51 Bộ vi ới thiệu một bộ vi điều khiển ều khiển ệu một bộ vi điều khiển ọi là 8051 Thành viên đầu tiên của họ MCS-51 Bộ vi ả được đặt trên một chíp Lúc ấy nó ển

mã l i t ại một ươn 8 bit được chia ra thành các dữ ng thích v i 8051 v i t c đ khác nhau v dung ới thiệu một bộ vi điều khiển ới thiệu một bộ vi điều khiển ối tiếp và 4 ột bộ vi điều khiển ào năm 1981 Hãng Intel giới thiệu một bộ vi điều khiển

l ược gọi là 8051 Thành viên đầu tiên của họ MCS-51 Bộ vi ng ROM trên chíp khác nhau đ ược gọi là 8051 Thành viên đầu tiên của họ MCS-51 Bộ vi c bán b i h n n a các ởi hơn nửa các ơn 8 bit được chia ra thành các dữ ử lý

nh s n xu t i u quan tr ng l m c dù có nhi u bi n th ào năm 1981 Hãng Intel giới thiệu một bộ vi điều khiển ả được đặt trên một chíp Lúc ấy nó ất cả được đặt trên một chíp Lúc ấy nó Điều quan trọng là mặc dù có nhiều biến thể ều khiển ọi là 8051 Thành viên đầu tiên của họ MCS-51 Bộ vi ào năm 1981 Hãng Intel giới thiệu một bộ vi điều khiển ặt trên một chíp Lúc ấy nó ều khiển ếp và 4 ển khác nhau c a 8051 v t c đ v dung l ủa họ MCS-51 Bộ vi ều khiển ối tiếp và 4 ột bộ vi điều khiển à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 ng nh ROM trên ới thiệu một bộ vi điều khiển chip, nh ng chúng đ u t ư ều khiển ươn 8 bit được chia ra thành các dữ ng thích v i 8051 ban đ u v ới thiệu một bộ vi điều khiển ầu tiên của họ MCS-51 Bộ vi ều khiển các l nh ệu một bộ vi điều khiển Điều quan trọng là mặc dù có nhiều biến thể ều khiển i u n y có ngh a l n u ta vi t ch ào năm 1981 Hãng Intel giới thiệu một bộ vi điều khiển ĩa là CPU chỉ làm việc với 8 bít dữ liệu tại một ào năm 1981 Hãng Intel giới thiệu một bộ vi điều khiển ếp và 4 ếp và 4 ươn 8 bit được chia ra thành các dữ ng trình cho m t phiên b n n o đó thì nó c ng s ch y v i m i ột bộ vi điều khiển ả được đặt trên một chíp Lúc ấy nó ào năm 1981 Hãng Intel giới thiệu một bộ vi điều khiển ũng sẽ chạy với mọi ẽ chạy với mọi ại một ới thiệu một bộ vi điều khiển ọi là 8051 Thành viên đầu tiên của họ MCS-51 Bộ vi phiên b n b t k khác m không c n phân bi t hãng s n ả được đặt trên một chíp Lúc ấy nó ất cả được đặt trên một chíp Lúc ấy nó ỳ dạng ào năm 1981 Hãng Intel giới thiệu một bộ vi điều khiển ầu tiên của họ MCS-51 Bộ vi ệu một bộ vi điều khiển ả được đặt trên một chíp Lúc ấy nó

xu t n o ất cả được đặt trên một chíp Lúc ấy nó ào năm 1981 Hãng Intel giới thiệu một bộ vi điều khiển

32 1 6

Bảng A1.1: Các đặc tính của 8051:

Trang 7

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

Hình A1.2 : Sơ Đồ Chân 8051

Trang 8

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ênhgiữ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 Port1khô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ácthiế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

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ộtEPROM để 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ươngtrì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)

Trang 9

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ácbus đị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ộtthanh ghi bên ngoài trong nữa đầu của chu kỳ bộ nhớ Sau đó, các đường dùng để xuấthoặ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ứcthấ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ênchip 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ênmứ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

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 Vcc được nối vào chân 40 và Vss (GND) đượcnối vào chân 20

Trang 10

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 đượcgọ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

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

Trang 11

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 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ôngthể 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ộ địnhthờ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

Trang 12

- 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

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ácbit 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)

Trang 13

- 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

 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

CODE Memory

EnableviaPSEN

DATAMemory

Enablevia

RD & WRON-CHIP

Memory

Trang 14

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)

- Mọi địa chỉ trong vùng RAM đa dụng đều có thể truy xuất tự do dùng kiểu địachỉ 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ứcnăng đặc biệt

Trang 15

- Ý 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 đượcmụ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 thanhghi 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:

00=Bank 0; address 00H07H 01=Bank 1; address 08H0FH 10=Bank 2; address 10H17H 11=Bank 3; address 18H1FH

Trang 16

PSW.2 OV D2H Overlow 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ếuphé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 đượcset 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

OV = 1

Bit Parity (P):

Trang 17

- Bit tự động được set hay Clear ở mỗi chu kỳ máy để lập Parity chẵn với thanhghi 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ụ Achứ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ốitiế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 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ủabyte 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ệnhcấ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 địachỉ 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 đượcdù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ủaRAM trên chip là 7FH Sở dĩ giá trị 5FH được nạp vào SP vì SP tăng lên 60H trướckhi 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ằngcá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ầmbằ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ấylại khi kết thúc chương trình con …

Con trỏ dữ liệu DPTR (Data Pointer) :

Trang 18

-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ẽ ghi55H vào RAM ngoài ở địa chỉ 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ừngbit 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 độngtimer được SET bởi Timer Mode (TMOD) ở địa chỉ 89H và thanh ghi điều khiểnTimer (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ốitiế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 Khitruyề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ừngbit ở đị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) ở địachỉ A8H Cả hai được địa chỉ hóa từng bit

Thanh ghi điều khiển nguồn PCON (Power Control Register):

- Thanh ghi PCON không có bit định vị Nó ở địa chỉ 87H chứa nhiều bit điềukhiể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

Trang 19

 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à 64kbyte 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ợpgiữa bus địa chỉ (A0-A7) và bus dữ liệu (D0-D7) với tín hiệu ALE để chốt byte củabus địa chỉ chỉ khi bắt đầu mỗi chu kỳ bộ nhớ Port được cho là byte cao của bus địachỉ

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 chophép 74HC373 mở cổng chốt địa chỉ byte thấp, khi ALE xuống 0 thì byte thấp và bytecao 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ệnhành là lệnh 1 byte thì CPU chỉ đọc Opcode, còn byte thứ hai bỏ đi

Trang 20

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 chophé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 8951nố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ốicủ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ếucá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áttriể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ùngnhớ 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õ ramột cổng AND có hai ngõ vào PSEN và RD Sơ đồ mạch như hình sau cho phép

Trang 21

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ằngtay bằng một phím nhấn thường hở, sơ đồ mạch reset như sau:

Hình A1.8 : Manual Reset

Đếm chương trình PC Thanh ghi tích lũyA Thanh ghi B

Thanh ghi thái PSW SP

DPRT Port 0 đến port 3 IP

IE Các thanh ghi định thời

0000H 00H 00H 00H 07H 0000H FFH XXX0 0000 B 0X0X 0000 B 00H

Trang 22

SCON SBUF PCON (HMOS) PCON (CMOS)

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 địachỉ 0000H của bộ nhớ chương trình Nội dung của RAM trên chip không bị thay đổibở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ảngtiệ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êngbiệ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 ByteRAM, 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

Trang 23

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

Trang 24

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ácchâ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:

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):

Trang 25

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ùnglà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

Trang 26

Đị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

Trang 27

RAM đa dụng có địa chỉ từ 30h – 7Fh có thể truy xuất mỗi lần 8 bit bằng cách dùng chế độ định địa chỉ trực tiếp hay gián tiếp.

Các vùng địa chỉ thấp từ 00h – 2Fh cũng có thể sử dụng cho mục đích như trên, ngoài các chức năng đặc biệt được đề cập ở phần sau

b RAM có thể định địa chỉ bit

Vùng địa chỉ từ 20h -2Fh gồm 16 byte có thể thực hiện như vùng RAM đa dụng(truy xuât mỗi lần 8 bit) hay thực hiện truy xuất mỗi lần 1 bit bằng các lệnh xử lý bit

c Các bank thanh ghi

Vùng địa chỉ 00h – 1Fh được chia thành 4 bank thanh ghi: bank 0 từ 00h – 07h, bank 1 từ 08h – 0Fh, bank 2 từ 10h – 17h và bank 3 từ 18h – 1Fh Các bank thanh ghi này được đại diện bằng các thanh ghi từ R0 đến R7 Sau khi khởi động thì hệ thống bank 0 được chọn sử dụng

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 R0 đến R7 Viêc thay đổi bank thanh ghi được thực hiện thông qua thanh ghi từ trạng thái chương trình (PSW)

d Các thanh ghi có chức năng đặc biệt

Các thanh ghi trong 89S52 được định dạng như một phần của RAM trên chip vìvậy mỗi thanh ghi sẽ có một địa chỉ (ngoại trừ thanh ghi bộ đếm chương trình và thanh ghi lệnh vì các thanh ghi này hiếm khi bị tác động trực tiếp) Cũng như R0 đến R7, 89S52 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 0FFH

Sau đây là một vài thanh ghi đặc biệt thường được sử dụng:

=> Thanh ghi trạng thái chương trình (PSW: Program Status Word)

PSW.6 AC D6H Auxiliary Cary Flag

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

Bảng A2.2: Bảng thanh ghi trạng thái chương trình

Chức năng từng bit trạng thái chương trình:

- Cờ Carry CY (Carry Flag):

Trang 28

Cờ nhớ 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 và Bank3

Bảng A2.3: Bảng các bit chọn 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

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

Vi Điều Khiển 89S52 có 3 timer 16 bit, mỗi timer có bốn cách làm việc Người

ta sử dụng các timer để:

Định khoảng thời gian

Đếm sự kiện

Tạo tốc độ baud cho port nối tiếp trong 89S52

Trong các ứng dụng định khoảng thời gian, người ta lập trình timer ở những

khoảng đều đặn và đặt cờ tràn timer Cờ được dùng để đồng bộ hóa chương trình để thực hiện một tác động như kiểm tra trạng thái của các ngõ vào hoặc gửi sự kiện ra

Ngày đăng: 21/06/2014, 21:37

HÌNH ẢNH LIÊN QUAN

Hình A1.4: Bảng bản đồ bộ nhớ Data bên trong chip 8051 - thiết kế đồng hồ số sử dụng họ 8051
nh A1.4: Bảng bản đồ bộ nhớ Data bên trong chip 8051 (Trang 14)
Hình A1.5 : Accessing External Code Memory (Truy xuất bộ nhớ mã ngoài) - thiết kế đồng hồ số sử dụng họ 8051
nh A1.5 : Accessing External Code Memory (Truy xuất bộ nhớ mã ngoài) (Trang 19)
Hình A2.1: Sơ đồ khối của AT89S52 - thiết kế đồng hồ số sử dụng họ 8051
nh A2.1: Sơ đồ khối của AT89S52 (Trang 23)
Hình A2.2: Sơ đồ chân 89S52 - thiết kế đồng hồ số sử dụng họ 8051
nh A2.2: Sơ đồ chân 89S52 (Trang 23)
Bảng A2.1: Chức năng chân ở Port 3 của 89S52 - thiết kế đồng hồ số sử dụng họ 8051
ng A2.1: Chức năng chân ở Port 3 của 89S52 (Trang 24)
Hình A2.3 : Bản đồ bộ nhớ Data bên trong Chip 89S52 - thiết kế đồng hồ số sử dụng họ 8051
nh A2.3 : Bản đồ bộ nhớ Data bên trong Chip 89S52 (Trang 26)
Bảng A2.6: Các vectơ ngắt - thiết kế đồng hồ số sử dụng họ 8051
ng A2.6: Các vectơ ngắt (Trang 30)
Sơ đồ chân tương tự như LCD 16x2 này. - thiết kế đồng hồ số sử dụng họ 8051
Sơ đồ ch ân tương tự như LCD 16x2 này (Trang 31)
Bảng A3.3 : Bảng mã kí tự (ROM code A00) - thiết kế đồng hồ số sử dụng họ 8051
ng A3.3 : Bảng mã kí tự (ROM code A00) (Trang 36)
Hình A3.4 : Khởi tạo LCD với giao thức 8 bit - thiết kế đồng hồ số sử dụng họ 8051
nh A3.4 : Khởi tạo LCD với giao thức 8 bit (Trang 40)
B-1. Sơ đồ nguyên lý của mạch - thiết kế đồng hồ số sử dụng họ 8051
1. Sơ đồ nguyên lý của mạch (Trang 41)
Hình B.1: Sơ đồ nguyên lý - thiết kế đồng hồ số sử dụng họ 8051
nh B.1: Sơ đồ nguyên lý (Trang 41)
Hình B.3: Khối điều khiển - thiết kế đồng hồ số sử dụng họ 8051
nh B.3: Khối điều khiển (Trang 42)
Hình B.4: Khối hiển thị - thiết kế đồng hồ số sử dụng họ 8051
nh B.4: Khối hiển thị (Trang 43)
Hình B.6: Sơ đồ mạch in  phía sau - thiết kế đồng hồ số sử dụng họ 8051
nh B.6: Sơ đồ mạch in phía sau (Trang 54)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w