t
p
B ộ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỘC DL KY THUẬT CÔNG NGHỆ TP.HCM
KHOA ĐIỆN - ĐIỆN TỬ
NGÀNH ĐIỆN TỬ VIỄN THÔNG
s
ỉ
ầ
LUẬN VĂN TỐT NGHIỆP
\ ĐẺ TẢI:
1
8
THIẾT Ố : VÀ THI CÔNG
MẠCH ĐỒNG HỒ ĐIỆN TỬ
DÙNG 89C51
GVHD
SVTH
MSSV
LỚP
r m v m PHÒL-J
THƯ VIỆN
NGUYỄN VIỆT HÙNG
NGUYỄN LAM
10101104
01ĐĐT2
BỘ GIÁO DỤC & DÀO TẠO
TRƯONG ĐẠI HỌC DL K Ỹ THUẬT CƠNG NGHỆ
KHOA ĐIỆN - ĐIỆN TỬ
CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc Lập - Tự Do - Hạnh Phúc
—....... --0O0-...... —
*********
NHIỆM VỤ LUẬN ÁN TƠT NGHIỆP
Chú í : sv phải đóng bản nhiệm vụ này vào trang thứ nhâ'l của luận án
Hụ và tên sv :..
............................... MSSV : ....XŨ.ÍỒ .ẨíO ^t..
NịỊÙnh : .............................................i i £ ..................................... .............. Lâp : ..... Ở
I Ằ A I I .......
1. Đẩu đề luận án tốt nghiệp :
.......... ^.Q.A/(c +ĨL...
...... TỆx^ti Ke
....................... ...... ..........................................2.Q.UÔ ị ...................................
2.
Nhiệm vụ (Yêu cầu về nội dung và sô' liệu ban đ ẩu ):
Ql.1
Sĩị\AÂẢ. \Ct ...............................
iL
u m . ậ Vv\CịJỈ,
3. N g à y g iao n h iệ m vụ lu ận á n : è / i O /2 0 0 5
4. Ngày hoàn thành nhiệm vụ : G /4/ '2006
5. Họ tên người hướng dẫn :
1/
Phần hướng dẫn
AkưVLỊ.
2/ .
3/.
3/
Nội dung và yêu cầu LATN đã được thông qua.
Ngày ,A?T. tháng ...lủ năm 20oS”.
TRƯỞNG KHOA
( KÝ và ỊỊỈti rị họ tên)
NGƯỜI HƯỚNG DẪN CHÍNH
Ị Kỷ vỉ, /~v< rị hụ tôn)
LUẬN VĂN TỐT NGHIỆP
ĐỒNG HỒ ĐIỆN TỬ
Xin cảm ơn quí Thầy Cô khoa Điện - Điện tử và các
bạn sinh viên cùng khóa đã đóng góp những ý kiến q
báu để quyển luận văn này hoàn thành đúng thời hạn.
LUẬN VĂN TỐT NGHIỆP
ĐỔNG HỔ ĐIỆN TỬ
MỤC LỤC
PHẦN A: DẪN N H Ậ P ................................................................................................... ..
I. ĐẶT VẤN Đ E .................6
II. GIỚI HẠN ĐỀ T À I........
6
III. MỤC ĐÍCH NGHIÊN C Ứ ư Z ........Z Z Z ..Z Z Z Z Z Z Z Z ....Z " ! l6
IV. MỞ RỘNG ĐỀ TÀI........................................................................................ 6
PHẦN B: KIẾN THỨC LIÊN QUAN........................................................................ 7
zzzz.zzzzzzzzzzzzzzz;
CHƯƠNG I: GIỚI THIỆU AT89C51 Z Z Z . . . Z . . . . . Z Z Z . Z Z . . . Z Z . I I Z 7
I. ĐỊNH NGHĨA VI ĐIÊU KHIÊN..................................................................... 7
II.LỊCH SỬ PHÁT TRIỂN CỦA CÁC BỘ VI ĐIÊU KHIÊN..................... 7
III. GIỚI THIỆU S ơ LƯỢC 89C51..................................................................... 8
IV. S ơ ĐỒ VÀ CHỨC NĂNG TỪNG CHÂN CỦA 89C51............................ 9
V. TỔ CHỨC BỘ NHỚ........................................................................................ 12
1. RAM đa dụng..........................................................................................
13
2. RAM địa chỉ hóa từng bit.......................................................................... 15
3. Các bank thanh gh i................................................................................... 15
VI. CÁC THANH GHI CHỨC NĂNG ĐẶC B IỆ T .......................................15
1. Từ trạng thái chương trình ................................................................... 16
2. Thanh ghi B ............................................................................................... 17
3. Con trỏ ngăn xếp......................................................................................... 18
4. Con trỏ dữ liệu......................................................................................
18
5. Các thanh ghi port xuất nhập....................................................................18
6. Các thanh ghi tim er................................................................................... 19
7. Các thanh ghi port nổí tiếp........................................................................19
8. Các thanh ghi điều khiển n g ắ t..................................................................19
9. Thanh ghi điều khiển công slt................................................................19
VII. BỘ NHỚ NGỒI...........................................................................................20
L Truy xuất bộ nhớ chương trình ngoài...................................................... 20
2. Truy xuất bộ nhơ dữ liệu ngoài...............................................................22
VIII. LỆNH RESET..............................................................................................23
IX. pOẠT ĐỘNG CỦA BỘ ĐỊNH THỜI (Tim er)......................................24
1. Giời thiệu...................................................................................................
24
2. Thanh ghi ch ế độ tiiiier (TMOD).............................................................25
3. !Thanh ghi điều khiển timer (TCON).......................................................26
4. ịCác chế độ tim er....................................................................................
26
5. Nguồn tạo xung nhịp.................................................................................... 27
6.iBắt đầu, dừng và diều khiển các tim er................................................... 28
2
LUẬN ỊVĂN TỐT NGHIỆP
ĐỔNG HỔ ĐIỆN TỬ
7. Khởi động và truy xua't các thanh ghi tim er.....................................
29
lỉ. Các khoảng ngắn và các khoảng dài.....................................
30
X. ỊNGẮT (INTERRUPT)...................... ... . . . . Z Z . . . . . . . Z Z Z . . Z Z ! 31
Giới thiệu..................................................
..............32
t. Tô’ chức ngắt của 89C51.........................
32
Xử lý ngắt........................................................................... Z Z Z Z Z
34
Thiêt kê chương trình dùng các n gắt..................................
35
Các ngắt của 89C51........................................,............
35
XI.
1 HOẠT ĐỘNG PORT N ố i T m p Z Z Z Z Z Z Z Z . . Z Z Z " Z Z Z 37
Giới thiệu...........................................
37
!• Thanh ghi điều khiển port nốì tiếp ....................................
38
1. Khởi động và truy xuẩìt các thanh ghi cểng nốĩ tiếp ...................... 39
XII. TẬP LỆNH CỦA 89C51:...............1 ............1 ........ 1 ..........................”*42
1. Các chê'độ đánh địa c h ỉ.................................. ................
42
2. Các nhóm lệnh của 89C51...............................................
44
LCdZZZZZZZZZZZZZZ”
CHƯƠNG II: GIỚI THIỆU MODULE
51
LCẤU TRÚC PHẦN CỨNG CỦA MODULE LCD Z Z Z Z Z Z Z Z ! 51
1 Giởi thiệu...................................
53
2, c ấ ủ trúc phần cứng của module L C D ....................................
53
3, Câu trúc các thanh ghi bên trong L C D ......................................
54
II. MÃ LỆNH ĐIỀU KHIỂN CỦA LCD......
56
1. Display C lear..................................................... .............
55
2. Return H om e...........................................................................
3 Entry Mode S e t................................................................................
4 Display ON/OFF Control.................................................................
55
5. Cursor or Display Shift................................................................
6. Function S e t............................................................................
7, Set CGRAM Address...............................................................
8. Set DDRAM Address..............................................................
9. Read Busy Flag & A ddress............................................................
10. Write Data To RAM .............Z ......... Z Z . Z Z Z Z Z Z . Z Z
59
11. Read Data To RA M ......................................................
........... 59
HI. ] ỉộ ĐỊNH THỜI (Timing characteristics)......................................
59
1. Write Operation........................................................................
2. Read O peration..........................................................................
ZZZZZZZZZZZZZ
CHƯƠNG III: GIỚI THIỆU DS1307........................................Z .... .... .....
I.GIỚI THIỆU............. !...................Z Z Z Z Z Z Z Z Z Z Z Z I Z Z Z Z
II. C 4C CHAN CỦA DS1307
III. I [OẠT ĐỘNG CỦA
1. Hạch tạo dao động......................... .....................
2. :)ộ chính xác của đổng h ồ .....................................
zzzzzzzzzzzzzzzzzzz
DS1307ZZZZZZZZZ-ZZZZZZZZ'
62
62
64
64
55
55
55
55
57
5g
58
58
58
59
50
LUẬN VĂN TỐT NGHIỆP
ĐỔNG HỔ ĐIỆN TỬ
3. RTC và bản đồ địa chỉ RAM
4. Đổng hồ và lịch...................... .
í í. Thanh ghi điều k h iển............
Bus dữ liệu I2C ..................................
PHẦN :: THIẾT KẾ VÀ THI CÔ NG ..........
CHU ƠNGI: THIẾT KẾ VÀ THI CÔNG.
I PHẦN CỨNG.........................................
].. Thiết k ế các khối............................
í I. Sơ đồ ngun lý mạch hồn chỉnh
2. Ngun lý hoạt động của m ạch....
<. Tính tốn giá trị các linh kiện của mạch
II. PHẦN M ỀM ...................................................
]. Lưu đổ thuật giả i.
Chương trình chính..............
CHủỊoỉNG II: k ế t l u ậ n ...............
PHẦN :ơ: Tà i l i ệ u t h a m k h ả o .
4
..66
.. 66
..67
..67
...71
..71
..71
..71
..71
„73
.73
.73
.74
.78
.78
103
LUẬN VĂN TỐT NGHIỆP
ĐỔNG HỔ ĐIỆN TỬ
LỜI NÓI ĐẦU
Trong thời đại ngày nay cùng với sự phát triển của xã hội, khoa hoc kỹ thuật
cũng không ngừng tiến bộ để đáp ứng những nhu cầu trong cuộc sống hàng ngày
của COE người. Những thiết bị tiên tiến như: Tivi, đầu Video, Walkman, đầu VCD
và đầu DVD... đã được tạo ra nhằm đáp ứng phần nào những nhu cầu này.
Vì trong cuộc sống hiện đại thời gian giữ vai trò rất quan trọng nên những thiết
bị báo thời gian cũng góp phần khơng nhỏ trong việc định thời gian chính xác cho
mọi người trong công việc cũng như trong các hoạt động vui chơi... Còn rất nhiều
mạch đổng hồ tiên tiên khác nhau nhưng ở quyển luận văn này chỉ khảo sát mạch
báo thờ: gian dùng vi điều khiển. Qua quyển luận văn này sẽ giúp em hiểu rõ hơn
về bộ vi điều khiển và những kiến thức liên quan đến đề tài.
Do tiờ i gian và kiến thức có hạn nên quyển luận văn này sẽ không tránh khỏi
những thiếu sót. Rât mong sự đóng góp ý kiến của q Thầy Cô cùng các bạn.
Trường Đại Học Dân Lập Kỹ Thuật Công Nghệ
Sinh viên thực hiện luận văn
Nguyễn Lam
5
A
PHẨN Aĩ DÂN NHẬP
L ĐẤT VẤN ĐỂ:
Ngày nay cùng với sự phát triển vượt bậc của khoa hoc kỹ thuật, cơng nghệ
o n rra
o hàng
h ị n n Iloạt
n o t nViíVnr,
.-».t _ điểm
__
điện tử cũng phát triển rộng rãi, ttạo
những thiết U4
bi „X
có các đăc
nổi bật như độ chính xác cao, gọn nhẹ và tiện nghi cho người sử dụng,
Một trong những ứng dụng rất quan trọng trong công nghệ điện tử là tự động
làm việc theo yêu cầu, thời gian định trước của con người... đã góp phần nâng cao
chất lương cuộc sống của con người. Xuất phát từ những ứng dụng trên, em đã
thiết kế và thi công mạch đồng hồ điện tử.
ĨI. GIỎ ĩ HAN ĐỂ TẰT:
Do kiến thức và thời gian có hạn nên trong luận án này chỉ thi cơng mạch đồng
hồơ có chức năng hiển thị giờ, báo chuông và ngày-tháng-năm của dương
t l ơ p n riliiVr» n o n r r H i ố r» NTV» 1 1*n rr tv»
Ẩ r» rr U Ầ
AI
1 _1 _ • Ạ7
lịch,khổng
có chức năng khác. Nhưng mạch Ađồng
hồ hiển thị số dùng --•
vi điều
khiển
là một dề tài thực tế ứng dụng rất nhiều trong cơ quan, xí nghiệp, nhà máy... Hơn
nữa với sự phát triển không ngừng của khoa học kĩ thuật trong lĩnh vực vi xử lý vi
điều kh ển đồng hồ không chỉ là báo thời gian mà cịn có các chức năng đặc biệt
khác míing lại sự thoải mái cho con người. Với sự ứng dụng của vi điều khiển điều
này được thực hiện dễ dàng hơn.
ĩ ĩĩ. MUC ĐÍCH NGHTÊN CỨU:
;n tl’f P Í Ì n ơ n h á t t r i ể n r n n r r r ã i
Mục đích trước hết khi thực hiện đề tài này là để hồn tất chương trình mơn
học để ¿tủ điều kiện ra trường.
Cụ thể khi nghiên cứu thực hiện đề tài là em muốín phát huy những thành quả
ứng dụng của vi điều khiển nhằm tạo ra những sản phẩm, những thiết bị tiên tiến
hơn, và ĩạt hiệu quả sản xuất cao hơn.
M ặt khác quyển luận văn này cũng có thể làm tài liệu tham khảo cho những
sinh viên khóa sau. Giúp họ hiểu rõ hơn về những ứng dụng của vi điều khiển
Ngoẵ i ra quá trình nghiên cứu thực hiện đề tài là một cơ hội để em tự kiểm tra
lại những kiến thức đã được học ở trường, đồng thời phát huy tính sáng tạo, khả
năng giải quyết một vấn đề theo yêu cầu đặt ra. Và đây cũng là dịp đe chúng em
tự khẳng định mình trước khi ra trường để tham gia vào các hoạt động sản xuất của
xã hội.
IV. MỞ RÔNG ĐỂ TẰT;
Ngồj các chức năng trên, đồng hồ có thể thiết k ế vi mô lớn hơn như hiển thị
các ngà) âm lịch và các chức năng trang trí khác làm cho đồng hồ thực tế hơn.
Hơn nữa đồng hồ báo thời gian dùng trong cơ quan xí nghiệp hoặc ở ngồi cơng
cộng thì phải được thiết k ế kích.thước lớn hơn.Và được đặt ở một nơi nào đó mà
mọi ngươi dễ nhìn thây, do đó vấn đề điều chỉnh rất khó khăn. Để giải guyết vấn
đề này và năng cao tính hữu dụng của nó ta thiết k ế cho mạch đồng hồ một remote
điều khiln từ xa. Hoặc vận dụng các remote tivi đầu máy... làm remote cho đồng
hồ. Trong trường hợp này ta chỉ thiết k ế bộ phận thu hồng ngoại gắn trực tiếp trên
mạch đồng hồ.
Phẩn ĩ : Kiến thức liên quan
Chương ĩ: Giđi thiệu vi điều khiển AT89C51
PHẨNB: KIẾN THỨC LBÊN QUAN
CHƯƠNG l i GIỚI THIỆU VI ĐIÊU K H lỂN AT89C51
L ĐINH NGHĨA V ĩ Đ lỂ lI KH ĩ ỂN;
DA 4.:
1' X
Bộ ñ điều khiển___viết
tắt là Micro - controller, là mạch tích hợp trên một chip
có thể i ập trình được, dùng để điều khiển hoạt động của một hệ thống. Theo các
tập lệnl I của người lập trình, bộ vi điều khiển tiến hành đọc, lưu trữ thơng tin, xử lí
thơng ti n, đo thời gian và tiến hành đóng mở một cơ cấu nẩo đó.
Trong các thiết bị điện và điện tử dân dụng, các bộ vi điều khiển, điều khiển
hoạt độịig của ti vi, máy giặt, đầu đọc laser, điện thoại, lị vi b a ,... Trong hệ thơng
sản xuất tự động, bộ vi điều khiển được sử dụng trong robot, dây chuyền tự động.
Các hệ hông càng thông minh thì vai trị của hệ vi điều khiển càng quan trọng.
ĨLLỊCĨ1 SỬ PHÁT TRIỂN CỦA CÁC BỐ V ĩ Đ ĩỀ ĩĩ KHTFNBộ vi điều khiển thực ra là một loại vi xử lí trong tập hợp các bộ vi xử lí nói
chung. 1ỉộ vi điều khiển được phát ữiển từ bộ vi xử lí, từ những năm 70 do sự phát
triển và hồn thiện về cơng nghệ vi điện tử dựa ưên kỹ thuật MOS (Metal - Oxide
- Semic onductor), mức độ tích hợp của các linh kiện bán dẫn trong một chip ngày
càng cao.
Năm 1971, xuất hiện bộ vi xử lí 4 bit loại TMS1000 do cơng ty Texas
Instruments vừa là nơi phát minh vừa là nhà sản xuất. Nhìn tổng thể thì bộ vi xử lí
chỉ có chứa trên một chip những chức năng cần thiết để xử lí chương trình theo một
trình tự, cịn tât cả bộ phận phụ trợ khác cần thiết như: bộ nhớ dữ liệu, bộ nhớ
chương 1rình, bộ chuyển đổi AID, khôi điều khiển, khối hiển thị, điều khiển máy
in, khôi lồng hồ và lịch là những linh kiện nằm ở bên ngồi được nối vào bộ vi xử
lí.
Ị
Mãi nên năm 1976, cồng ty INTEL (Interlligen - Elictronics) mới cho ra đời bộ
vi điều Khiển đơn chip đầu tiên trên th ế giới với tên gọi 8048. Bên cạnh bộ vi xử lí
trung tâ n , 8048 cịn chứa bộ nhớ dữ liệu, bộ nhớ chương trình, bộ đếm và phát thời
gian các cổng vào và ra digital trên một chip.
Các ^:ông ty khác cũng lần lượt cho ra đời các bộ vi điều khiển 8 bit tương tự
như 8041Ỵ và hình thành họ vi điều khiển MCS - 48 (Microcontroller - system 48).
Đên lăm 1980, công ty INTEL cho ra đời thế hệ thứ hai của bộ vi điều khiển
đơn chip với tên gọi 8051. Và sau đó hàng loạt các vi điều khiển cùng loại với
ìs l
• j9
r
8051 ra <|ời và hình thành họ vi điều khiển MCS-51.
Đến lay họ vi điều khiển 8 bit MCS-51 đã có đến 250 thành viên và hầu hết
các công ty đều là những công ty hàng đầu thế giới về chế tạo. Đứng đầu là công
ty INTE - và rất nhiều công ty khác nhứ: AMD, SIEMENS, PHILIPS, DALLAS,
OKI,...
Ngồ ra cịn có các cơng ty khác cũng có những họ vi điều khiển riêng như:
ỉọ 68HCOS của công ty Motorola.
_ .ĩi
1N„1_
x L r s. _ 1_
1
•
4' Ẳ
11
1
-
-,
Phần ĩ : Kiến thức liên quan
Chương L Giđi thiệu vi điều khiển AT89C51
Họ ST62 của công ty SGS - THOMSON.
• Họ H8 của cơng ty Hitachi.
Họ PIC của cơng ty Microchip.
II. GIC I THIÊU Sơ LƯƠC 89C51:
89C 51 là một IC vi điều khiển (Microcontroller) do hãng Intel sản xuất. Nó có
các đặc điểm sau:
ROM nội: 4K EEPROM.
128 byte RAM.
4 PORTI/O 8 bit.
1 cổng nối tiếp.
64 KByte không gian bộ nhớ chương ữình mở rộng.
64 KByte khơng gian bộ nhớ dữ liệu mở rộng.
210 bit được địa chỉ hóa (nằm trong vùng RAM nội).
Bộ nhân/chia 4 |ÌS .
8
Phần ĩ Ị: Kiến thức liên quan
Chương I: Giời thiệu vi điều khiển AT89C51
Phần chính của vi điều khiển 89C51 là bộ xử lí trung tâm (CPU: Central
Processing Unit) bao gồm:
Thanh ghi tích lũy A.
Thanh ghi tích lũy B, dùng cho phép nhân và phép chia.
Đơn vị logic học (ALU: Arithmetic Logical Unit).
Từ trạng thái chương trình (PSW: Program Status Word).
Bốn băng thanh ghi.
Con trỏ ngăn xếp.
Ngồi ra cịn có bộ nhớ chương trình, bộ giải mã lệnh, bộ điều khiển thời
gian và logic.
Đơn vị xử lí trung tâm nhận trực tiếp xung từ bộ dao động, ngồi ra cịn có khả
năng đua một tín hiệu giữ nhịp từ bên ngồi.
Chương trình đang chạy có thể cho dừng lại nhờ một khôi điều khiển ngắt ở
bên ngqài. Các nguồn ngắt có thể là: các biến cố ở bên ngồi, sự tràn bộ đếm định
thời hoặịc cũng có thể là giao diện nối tiếp.
Hai )ộ định thời 16 bit hoạt động như một bộ đếm.
Các cổng (port 0, port 1, port 2, port 3) sử dụng vào mục đích điều khiển.
Ở CCng 3 có thêm các đường dẫn điều khiển dùng để trao đổi với một bộ nhớ
bên ngoỊài, hoặc để đầu nơì giao diện nối tiếp, cũng như các đường ngắt dẫn bên
ngồi.
Giad diện nối tiếp có chứa một bộ truyền và một bộ nhận không đồng bộ, làm
việc độc lập với nhau. Tốc độ truyền qua cổng nối tiếp có thể đặt trong vảy rộng
và đươclân định bằng một bộ định thời.
Trong vi điều khiển 89C51 có hai thành phần quan trọng khác đó là bộ nhớ và
các than 1 ghi, trong đó:
•
Bộ nhớ gồm có bộ nhớ RAM và ROM dùng để lưu trữ dữ liệu và mã lệnh.
•
Các thanh ghi sử dụng để lưu trữ thơng tin trong q trình xử lí. Khi CPU
làm việc nó làm thay đổi nội dung của các thanh ghi.
IV- S ơ ĩ 'Ổ VẢ CHỨC NĂNG TỪNG CHẮN CỦA 89C51:
89C^1 là 1 vi mạch có 40 chân mỗi chân có 1 chức năng đặc biệt khác nhau,
Trong
đ( có 24 chân có cơng dụng kép, mỗi đường có thể hoạt động như đường
ng đ('
xuât nhậ p hoặc như đường điều khiển hoặc là thành phần của bus dữ liệu và bus
địa chỉ.
a
9
Phần ĩ : Kiến thức liên quan
Chương I: Giời thiệu vi điều khiển AT89C51
VCC
Q
U2
17
■
■
12 ■
11 ■
16
15
14
13
10
_1_
6
7,
8
18
P3.7/RD
P3.6/WR >
P3.5/T1
P3.4/T0
P3.3/1UI1 .
P3.2/INT0
P3.1/TXD
P3.0/RXD
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
_3
4
5.
_9
19
2
21
22
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
23
24
25
26
27
28
39
38
37
36
35
34
33
32
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
RST
>XTAL1
31
EA/VPP ■ 30
ALE/PROG ■ 29
z
PSEN -
►XTAL2
(5
p
AT89C51
Sơ đồ chân 89C51
1. P( r t 0: Port 0 là một port hai chức năng trên các chân 32 - 39(P0.7, P0.6,...).
tV» -ĩ t I r ấ y»
V»Ẳ /1 r l» A
Mo L â
1—
2»
Ơ
\
_ 1 /• _ . y
1
Trong c
k ế cỡ Mnhỏ
(khơng/V dùng
bộ nhớ
mở
rộng)
nó> _có/ chức
năng như
các
đường I/O . Đối với các thiết k ế lớn với bộ nhớ mở rộng, nó vừa là byte thấp bus
địa chỉ v i là bus dữ liệu 8 bit.
i~*
m
Á
*
2. P a rt 1: Port 1 là một port I/O trên chân 1 - 8. Các chân được ký hiệu P l.o
P l.l ... cp thể dùng cho giao tiếp với các thết bị ngoài nếu cần. Port 1 khơng có
chức năng khác, và vậy chúng chỉ dùng cho giao tiếp với các thiết bị ngoài hoặc
trao đổi ilữ liệu với các hệ thống khác.
3. P o rt 2: Port 2 là một port công dụng kép ưên các chân 21- 28 được dùng như
Ý r tr " r r
I
Ẩ iì
các đườr
g xuât nhập hoặc là byte cao của busA địa
chỉ với
các thiết k ế dùng bộ nhớ
mở rộng
/ti
v n o t
r tV io n
IX
U « r+s-k
L ___
„
„Im?
_.
-
'
-
i L í
i_ Ạ y
_1 V
_
1
A
1
/.
4. Poit_3: Port 3 là một porkcông dụng kép trên các chân 10 -17. Mỗi chân của
port này vừa có chức năng trao đổi dữ liệu vừa có các chức năng đặc biệt như ở
bảng sau
*f
n
ồ
v
t n V o
r*r\
n õ n r t
Ỷ T t y-x
A
Ẫ
ì
y líĩ»
10
K A . ,
. , . SJ «
„ X
~ x
„
— S í ______ i y
_
1_ ■ A. M
1
. 9 .
Phẩn B ; Kiến thức liên quan
Bit
P3.0
P3.1
I P3-2
P3.3
P3.4
—
lê n
RXD
TXD
1
Chức năng chuyển đổi
Dữ liệu nhận cho port nối tiếp.
Dữ liệu phát cho port nối tiếp.
Ngắt bên ngoài 0
Ngắt bên ngoài 1
INTO
INTI
TO
TI
! P3.5
P3.6
WR
P3.7
RD
.
Chương I: Giới thiệu vi điều khiển AT89C51
Ngõ vào của timer/couter 0.
Ngõ vào của timer/couter 1.
Xung ghi bộ nhớ dữ liệu ngoài.
Xung đọc bộ nhớ dữ liệu ngoài.
5. PSEN (Program Store Enable): 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 byte mã lệnh.
PSEịịN 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 đtỊợc đọc từ EPROM qua bus dữ liệu và được chốt vào thành ghi lệnh của
89C51 ậể giải mã lệnh. Khi thi hành chương trình trong ROM nội PSEN sẽ ở mức
thụ độnậ (mức cao).
6. AỊLE (Address Latch Enable): Tín hiệu ra ALE trên chân 30 tương hơp với
các thiêậ bị làm việc với vi xử lý 8080, 8085, 8088, 8086. 89C51 dùng ALE một
cách tư(jfng tự cho việc giải kênh các bus địa chỉ và dữ liệu, khi port 0 được dùng
trong clỊế độ chuyển đổi của nó: vừa là bus dữ liệu vừa là byte thấp của bus địa
chỉ, ALÉ 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 port 0 dùng để xuất nhập dữ liệu trong nữa sau
của chu kỳ 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àm nguồn xung nhịp cho các phần khác của hệ thống. 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 các loại có ROM nội.
Í
7. EA (External Access):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, 89C51 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. Nêu EA được nối mức thấp bộ nhớ bên trong
chương {rình 89C51 sẽ bị cấm và chương trình thi hành từ EEPROM mở rộng.
Người taịcòn dùng EA làm chân cấp điện áp Vp khi lập trình cho ROM trong.
i
(Reset):Ngõ vào RST trên chân 9 là ngõ reset của 89C51. Khi tín hiệu
này đượệ đưa lên mức cao (trong ít nhất 2 chu kì máy), các thanh ghi bên trong
89C51 được tải những giá trị thích hợp để khội động hệ thống.
9. C^c ngõ vào bô dao đỏng trẽ n chip: 89C51 có một bộ dao động trên chip.
Nó thườiịg được nối với một thạch anh giữa hai chân 18 và 19. Các tụ giữ cũng cần
thiêt như đã vẽ. Tần sô" thạch anh thông thường là 12Mhz.
11
ỉ
10. |Các chân nguồn: 89C51 sử dụng nguồn đơn +5V. Vcc được nói vào chân
40 và Ỹss (GND) được nối vào chân 20.
V. TỔ CHỨC BỎ NHỚ:
89C|51 có bộ nhớ theo câu trúc Harvart: có những vùng bộ nhớ riêng biệt cho
chương trình và dữ liệu. Như đã nói ở trên, cả chương trình và dữ liệu có thể ở bên
trong; 4ù vậy chúng có thể được mở rộng bằng các thành phần ngoài lên đến tối
đa 64 KByte bộ nhớ chương trình và 64KByte bộ nhớ dữ liệu.
Bộ ịihđ bên trong bao gồm ROM nội và RAM trên chip, RAM trên chip bao
gồm nh|ều 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 gỊii và các thanh ghi chức năng đặc biệt.
FFFFH
FFFFH
Bộ nhớ
chương trình
được chọn
qua chân
PSEN
0FH
00H
0000H
Bộ nhớ trên chip
Bộ nhớ dừ
liệu được
chọn qua
chân qua
chân WR và
RD
0000H
Bộ nhớ mở rộng
Tóm tắt các vùne bơ nhớ của MCS51.
Hai ịặ c tính cần lưu ý là:
• Các thanh ghi và các phort xuất nhập đã được xếp trong bộ nhớ và có thể
được 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ộ vi xử lý khác.
RAM bên trong MCS51 được phân chia giữa các bank thanh ghi (00H - 1FH)
RAM địa chỉ hóa từng bit (20H - 2FH), RAM đa dụng (30H - 7FH) và các thanh
ghi chức nặng đặc biệt (80H - FFH).
12
Phẩn lị: Kiến thức liên quan
Chương ĩ: Giđi thiệu vi điều khiển AT89C51
1. B.AM đa dunff:
Địa chỉ byte
Địa chỉ bit
RAM ĐA DỤNG
0
F 7F
7E
7D
7C
7B
7A
79
78
E 77
76
75
74
73
72
71
70
3 6F
6E
6D
6C
6B
6A
69
68
:
67
66
65
64
63
62
61
60
5F
5E
5D
5C
5B
5A
59
58
* 57
56
55
54
53
52
51
50
4F
4D
4E
4C
4B
4A
49
48
47
46
45
44
43
42
41
40
3F
3E
3D
3C
3B
3A
39
38
37
36
35
34
33
32
31
30
2F
2E
2D
2C
2B
2A
29
28
27
26
25
24
23
22
21
20
1F
1E
1D
1C
1B
1A
19
18
17
16
15
14
13
12
11
10
OF
OE
OD
oc
OB
OA
09
08
07
06
05
04
03
02
01
00
BANK 3
BANK 2
BANK 1
Bank thanh ghi 0
(mặc định cho RO - R7)
Tóm tắt bộ nhớ dữ liệu trên chip của
RAM
13
Phần 11: Kiến thức liên quan
Chương ĩ: Giời thiệu vi điều khiển AT89C51
Địa chỉ byte
Địa chỉ bit
F
F0
F7
F6
F5
F4
F3
F2
F1
F0
E
EO
E7
E6
E5
E4
E3
E2
E1
EO
ACC
D
D7 D 6 D5
D4
D3
D2
_
DO
PSW
B8
B C B B B A B9 B8
BO
B7 B6
A8
AO
IP
BO
P3
A f | _ I _ Ị AC Ị AB | T Ã
A9 A8
IE
A7 I A 6 A5 Ị A 4
AI
AO
P2
BS I B 4 I B3~ B2 I B I
A3 I A2
99
98
9F I 9E I 9D I 9C I 9B
9A
99
98
SBUF
SCON
90
97
un
92
91
90
P1
k h ông đư ợc địa chỉ hóa bit
96
95
94
93
8
khơng đư ợc đ ịa chỉ hóa bit
8C
8B
8A
89
k h ơng đư ợc đ ịa chỉ hóa bit
khơng đư ợc địa chỉ hóa bit
88
8E
87
k h ơng đư ợc địa chỉ hóa bit
83
82
81
80
khơng đư ợc địa chi hóa bit
THI
THO
TL1
TLO
TMOD
TCON
PCON
k h ơng đư ợc địa chỉ hóa bit
8C
8B
00
05
8D
00
>
khơng được địa chỉ hóa bit
khơng đư ợc địa chỉ hóa bit
khơng đư ợc đ ịa chỉ hóa bit
87
86
85 1 84
83 1 82
81
80
DPH
DPL
SP
PO
Tóm tắt bộ nhớ dữ liệu trên chip của
Các thanh ghi chức năng đặc biệt
Mặc dù trên hình cho thây 80 .byte RAM đa dụng chiếm các địa chỉ từ 30H7FH, 32 Dyte dưới cùng từ OOH đến 1FH cũng có thể được dùng với mục đích tương
tự (mặc Ậù các địa chỉ này đã có mục đích khác).
14
Phẩn ĩ : Kiến thức liên quan____ Chương I: Giởi thiệu vi điều khiển AT89C51
Mọ địa chỉ trong vùng RAM đa dụng đều có thể được truy xuất tự do dùng
cách đá nh địa chỉ trực tiếp hay gián tiếp. Ví dụ, để đọc nội dung ở địa chỉ 5FH của
RAM nậi vào thanh ghi tích lũy lệnh sau sẽ được dùng:
MOV A, 5FH
Lệnh này di chuyển một bit dữ liệu dùng cách đánh địa chỉ trực tiếp để xác
định “đia chỉ nguồn” (5FH). Đích nhận dữ liệu được ngầm xác định ữong mã lệnh
là thanh ghi tích lũy A.
RAM bên trong cũng có thể được truy xuất dùng cách đánh địa chỉ gián tiếp
qua RO hay R l. Ví dụ, sau khi thi hành cùng nhiệm vụ như lệnh đơn ở trên:
MOV RO, #5FH
MOV A, @R0
Lện 1 đầu dùng địa chỉ tức thời để di chuyển giá trị 5FH vào thanh ghi RO và
lệnh thứ hai dùng địa chỉ trực tiếp để di chuyển dữ liệu “được trỏ bởi RO” vào
thanh ghi tích lũy.
2. RAM đia chỉ hóa từng bit;
89C 51 chứa 210 bit được địa chỉ hóa, trong đó 128 bit là ở các địa chỉ byte 20H
đên 2FÍ [ và phần cịn lại là trong các thanh ghi chức năng đặc biệt.
Ý tư ẳng truy xuất từng bit riêng rẽ bằng phần mềm là một đặc tính tiện lợi của
vi điều khiển nói chung. Các bit có thể được đặt, xóa, AND, OR,... với một lệnh
đơn. Đa sơ" các vi xử lý địi hỏi một chuỗi lệnh đọc - sửa - ghi để đạt được hiệu
ủatương tự. Hơn nữa, các port I/O cũng được địa chỉ hóa từng bit làm đơn giản
phần mé m xuất nhập từng bit.
Có 128 bit được địa chỉ hóa đa dụng ở các byte 20H đến 2FH. Các địa chỉ này
được truv xuất như các byte hoặc như các bit phụ thuộc vào lệnh được dừng.
3. dác bank thanh ghi:
32 bvte thấp nhất của bộ nhớ nội là dành cho các bank thanh hi. Bộ lệnh của
8051/80B1 hỗ trợ 8 thanh ghi (RO đến R7) và theo mặc định (sau khi Reset hệ
thông) cac thanh ghi này ở các địa chỉ 00H-07H.
Bank thanh ghi tích cực có thể chuyển đổi bằng cách thay đổi các bit chọn bank
thanh ghi trong từ trạng thái chương trình (PSW).
Ý tương dùng “các bank thanh ghi” cho phép “chuyển hướng” chương trình
nhanh vẩ hiệu quả (từng phần riêng rẽ của phần mềm sẽ có một bộ thanh ghi riêng
không phụ thuộc vào các phần khác).
Vĩ. CẮC THANH GHI CHỨC NẤNG ĐẢC BĨỂT:
Các Ihanh ghi trong MCS51 đượ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 đếm chương trình và
15
Phẩn ĩ : Kiến thức liên quan_____ Chương ĩ: Giđi thiệu vi điều khiển AT89C51
thanh ghi lệnh và các thanh ghi bày hiếm khi bị tác động trực tiếp, nên khơng có
lợi khi lìặc chúng trong RAM trên chip). Cũng như RO đến R7 có 21 thanh ghi chức
năng đầc biệt (SFR: Special Function Register) ở vùng trên RAM nội, từ địa chỉ
80H đến FFH. Chú ý rằng hầu hết 128 địa chỉ tử 80H đến FFH không được định
nghĩa, ¿ h ỉ có 21 địa chỉ SFR là được định nghĩa.
Ngoại trừ thanh ghi tích lũy (A) có thể được truy xuất ngầm như đã nói, đa số
các SFR được truy xuất dùng địa chỉ trực tiếp. Chú ý rằng một vài SFR có thể được
địa chỉ hóa bit hoặc byte. Người thiết k ế phải thận trọng trong truy xuất bit và
byte. Ví dụ lệnh sau:
SETB OEOH
sẽ set b It 0 trong thanh ghi tích lũy, các bit khác không thay đổi. Ta thấy rằng EOH
đồng thpi là địa chỉ byte của thanh ghi tích lũy và là địa chỉ bit có trọng số nhỏ
nhất trong thanh ghi tích lũy. Vì lệnh SETB chỉ tác động trên bit, nên chỉ có địa chỉ
bit là ca hiệu quả.
1. T if trang thái chương trình:
Từ trạng thái chương trình (PSW: Program Status Word) ở địa chỉ DOH chứa
các bit t ang thái như bảng tóm tắt sau:
Ký hiệu
Địa chỉ
Ý nghĩa
CY
D7H
Cờ nhớ
AC
D6H
Cờ nhớ phụ
F0
D5H
CỜO
RS1
D4H
Bit 1 chọn bank thanh ghi
RSO
D3H
Bit 0 chọn bank thanh ghi
00 = bank 0: địa chỉ OOH - 07H
01 = bank 1: địa chỉ 08H - OFH
10 = bank 2: địa chỉ 10H - 17H
11 = bank 3: địa chỉ 18H - 1FH
P5W.2
ov
D2H
Cờ tràn
PỈW .l
D1H
Dự trữ
PSW.0
DOH
Cờ parity chẩn
*CỜ nhớ:
16
Phần ĩ : Kiến thức liên quan
Chương I: Giổi thiệu vi điều khiển AT89C51
Cờ ihớ (CY) có cơng dụng kép. Thơng thường nó được dùng cho các lệnh tốn
học: nó sẽ được set nếu có một số nhớ sinh ra bởi phép cộng hoặc có một số mượn
bởi phé|p trừ. Ví dụ, nếu thanh ghi tích lũy chứa FFH, thì lệnh sau:
ADD
A, #1
sẽ trả về thanh ghi tích lũy kết quả 00H và set cờ nhớ trong PSW.
Cờ nhớ cũng có thể xem như một thanh ghi 1 bit cho các lệnh luận lý thi hành
trên bit. Ví dụ, lệnh sau sẽ AND bit 25 với cờ nhớ và đặt kết quả trở vào cờ nhớ:
ANL
c,
25H
* C(fr nhớ phu:
Khi cộng các số BCD, cờ nhớ phụ (AC) được set nếu kết quả của 4 bit thấp
trong kl oảng OAH đến 0FH.
7
r\ A T T
J#
/-VỴ-1Ỵ T
* CcJ):
Cờ ( (F0) là 1 bit cờ đa dụng dành cho các ứng dụng của người dùng.
* Cá c bit chon bank thanh ghi:
Các bit chọn bank thanh ghi (RSO và RS1) xác định bank thanh ghi được tích
cực. Chiing được xóa sau khi reset hệ thông và được thay đổi bằng phần mềm nếu
cần. Ví ỉụ, ba lệnh sau cho phép bank thanh ghi 3 và di chuyển nội dung của thanh
ghi R7 ( ỉịa chỉ byte 1FH) đến thanh ghi tích lũy:
SETB RS1
SETB RSO
MOV A, R7
Khi chương trình được hợp dịch, các địa chỉ bit đúng được thay thế cho các ký
hiệu “RS1 ” và “RSO ”. Vậy, lẹnh SETB RS1 sẽ giống như lệnh SETB 0D4H.
* Cờ tràn:
Cờ tràn (OV) được set sau một lệnh cộng hoặc trừ nếu có một phép tốn bị
tràn. Khị 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 để xác định xem kết quả có nằm trong tầm xác định không. Khi các số không
dâu được cộng, bit ov có thể được bỏ qua. Các kết quả lớn hơn ( +127 ) hoặc nhỏ
hơn (-12B) sẽ set bit ov.
2. TI anh ghi B:
Thanh ghi B ở địa chỉ-F0h được dùng cùng với thanh ghi tích lũy 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 8 bit trong A
và B rồi trả về kết qưả nguyên trong A và phần dư trong B. Thanh ghi B cũng có
thể được xem như thanh ghi đệm đa dụng. Nó được địa chỉ hóa từng bit bằng các
địa chỉ b t F0H đến F7H.
m
17
Phẩn BỊ: Kiến thức liên quan
Chương I: Giới thiệu vi điều khiển AT89C51
jon trỏ ngăn xếp:
Cod trỏ ngăn xếp (SP) là một thanh ghi 8 bit ở địa chỉ 81h. Nó chứa địa chỉ của
byte dũi 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 tha® tác 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àổ ngăn xếp sẽ làm tang SP trước khi ghi dữ liệu, và lệnh lấy dữ liệu ra khỏi
ngăn x rp sẽ đọc dữ liệu và giảm SP. Ngăn xếp của 8051/8031 được giữ trong
RAM n )i và được 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 89C51.
Để 1hởi động lại SP với ngăn xếp bắt đầu tại 60h, lệnh sau được dùng:
MOV SP,#5FH.
Trêr 89C51 ngăn xếp bị giới hạn 32 byte vì địa chỉ cao nhất của RAM trên
chip là : FH. Sở dĩ dùng giá trị 5FH vì SP sẽ tăng lên 60H trước khi cất dữ liệu đầu
tiên.
Ngưệi thiết kê có thể chọn khơng phải khởi động lại con ữỏ ngăn xếp mà để
nó lây g á t r i n h m ã n đ i n h k h i
h ê t Y í t in c r m * t r i m ă ^
AA là m u ..X
là ngăn
không k 1C
vùng R / M này đã được dùng làm ngăn xếp.
Ngări 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à lay lại dữ liệu, hoặc được truy xuất ngầm bằng các lệnh gọi chương trình
con (ACALL, LCALL) và các lệnh trở về (RET, RETI) để cất và lấy lại bộ đếm
chương tịình.
Ịtrỏ dữ liêu:
Con jrỏ 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
MOV
A, #55H
DPTR, #1000H
MOV
@DPTR, A
Lệnh đầu tiên dùng địa chỉ tức thời để tải dữ liệu 55H vào thanh ghi tích lũy.
Lệnh thứ hai cũng dùng địa chỉ tức thời, lần này để tải dữ liệu 16 bit 1000H vào
con trỏ d ĩ liệu. Lệnh thứ ba dùng địa chỉ gián tiếp để di chuyển dữ liệu trong A
(55H) đến RAM ngoài ở địa chỉ được chứa trong DPTR (1000H).
5. Cái: thanh ghi port xuất nhâp;
Các p:>rt của 89C51 bao gồm pòrt 0 ở địa chỉ 80H, Port 1 ở địa chỉ 90H, Port 2
ở địa chỉ A.0H và Port 3 ở địa chỉ BOH. Tất cả các port đều được địa chỉ hóa từng
bit. Điều ló cung cấp một khả năng giao tiếp thuận lợi. Ví dụ nếu một motor được
18
Phần ĩ : Kiến thức liên quan_____ Chương ĩ; Giời thiệu vi điều khiển AT89C51
nơi quaị một cuộn dây có transistor lái đến bit 7 của Port 1, nó có thể được bật và
tắt bằng một lệnh đơn:
SETB P1.7
; bật motor
CLR
; tắt motor
P1.7
Cád lệnh trên dùng dấu chấm để xác định một bit trong một byte. Trình hợp
dịch sẽ thi hành sự chuyển đổi cần thiết, vì vậy hai lệnh sau đây là như nhau:
CLR
P1.7
CLR
97H
Tron g một ví dụ khác, xem xét giao tiếp đến một thiết bị với một bit trạng thái
gọi là I USY, được set khi thiết bị đang bận và được xóa khi thiết bị sẩn sàng. Nếu
BUSY dược nối tới P1.5, vòng lặp sau sẽ được dùng để chờ thiết bị trở lại sẩn
sàng:
WAIT:
JB
P1.5, WAIT
L ệ m này có nghĩa là “ nếu bit P1.5 được set thì nhảy tới nhãn WAIT ”. Nói
cách khạc “nhảy trở lại và kiểm tra lần nữa”.
6.
c íc thanh ghi timer:
89Cj> 1 chứa hai bộ định thời / đếm 16 bit được dùng cho việc định thời hoặc
đếm sự kiện. Timer 0 ở địa chỉ 8AH (TLO: byte thấp) và 8CH (THO: byte cao),
Timer 1 ở địa chỉ 8BH (TL1: byte thấp) và 8DH (THI: byte cao). Việc vận hành
hành tỉnker được set bởi thanh ghi 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.
7. Cá c thanh ghi port nốì tiếp:
MC5 51 chứa một port nối tiếp trên chip dành cho việc trao đổi thông tin với
các thiế bị nối tiếp như máy tính, modem hoặc cho việc giao tiếp với các IC khác
có giao iếp nối tiếp (các bộ chuyển đổi A/D, các thanh ghi dịch...). Một thanh ghi
gọi là bo đệm dự liệu nối tiếp (SBƯF) ở địa chỉ 99H sẽ giữ cả hai dữ liệu truyền
và nhận Khi truyền dữ liệu thì ghi lên SBUF, khi nhận dữ liệu thì đọc SBƯF. Các
mode ví n hành 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.
8. G c thanh ghi điều khiến ngắt;
89C Í1 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 reset
hệ thống và sẽ được cho phép bằng việc ghi thành ghi cho phép ngắt (IE) ở địa chỉ
A8H. Cảl hai thanh ghi được địa chỉ hóa từng bit.
9. Thanh ghi điểu khiển công suất;
Thanh ghi điều khiển công suất (PCON) ở địa chỉ 87H chứa nhiều bit điều
khiển chúng được tóm tắt trong bảng sau:
19
Phần I : Kiến thức liên quan
Bit
Chương I: Giời thiệu vi điểu khiển AT89C51
Ký hiệu
Ý nghĩa
7
SMOD
Bit gấp đôi tốc độ baud, nếu được
set thì tốc độ baud sẽ tăng gấp đôi
trong các mode 1, 2 và 3 của port
nối tiếp.
6
-
Không định nghĩa
5
-
Không định nghĩa
4
-
Không định nghĩa
3
GF1
Bit cờ đa dụng 1
2
GF0
Bit cờ đa dụng 0
1
PD
Giảm cơng suất, được set để kích
hoạt mode giảm cơng suất, chỉ
thốt khi reset
0
IDL
Mode chờ, set để kích hoạt mode
chờ, chỉ thốt khi có ngắt hoặc
reset hệ thống.
VĨL BC NHỚ NGOẢI:
89CM có khả năng mở rộng bộ nhớ lên đến 64K bộ nhớ chương trình và 64K
bộ nhớ
liệu bên ngồi. Do đó, có thể dùng thêm ROM và RAM nếu cần.
4ữ
Khi lùng bộ nhớ ngoài, port 0 khơng cịn là một port I/O thuần túy nữa. Nó
được hợịi kênh
kê giữa bus địa chỉ (AO - A7) và bus dữ liệu (DO - D7) với tín hiệu
ALE để chốt byte thấp của địa chỉ khi bắt đầu mỗi chu kỳ của bộ nhớ. Port 2 thông
thường qược dùng cho byte cao của bus địa chỉ.
Tron Ị nửa đầu của mỗi chu kỳ của bộ nhớ, byte thấp của địa chỉ được cấp trong
port 0 vi được chốt bằng xung ALE. Một IC chốt 74HC373 (hoặc tương đương) sẽ
giữ byte địa chỉ thấp trong phần còn lại của chu kỳ bộ nhớ. Trong nửa sau của chu
kỳ bộ nriớ port 0 được dùng như bus dữ liệu và được đọc hoặc ghi tùy theo lệnh.
1. Ti uv xuất bô nhờ chương trình ngồi;
Bộ n lớ chương trình ngồi là một IC ROM được cho phép bởi tín hiệu PSEN.
Hình sai mô tả cách nối một EPROM vào MCS51:
20
Phân ĩ : Kiến thức liên quan
Chương ĩ: Giời thiệu vi điều khiển AT89C51
Một :hu kỳ máy của 89C51 có 12 chu kỳ xung nhịp. Nếu bộ dao động trên chip
được lái bởi một thạch anh 12Mhz thì một chu kỳ máy kéo dài 1 micro giây. Trong
một chu kỳ máy, sẽ có hai xung ALE và hai byte được đọc từ bộ nhớ chương trình
(nếu lệ n h hiện hành là lệnh 2 byte thì byte thứ hai sẽ được loại bỏ). Giản đồ thời
gian của một lần lây lệnh được vẽ ở hình sau:
4------------ Một chu kỳ
________ »
I STATE 11STATE 21STATE 31STATE í I STATE ỉ I STATE 61STATE 11STATE 21
|f» 1 |P 2 | P 1 |P 2 | p i | P 2 | p i | P 2 | p i | P 2 | P 1 | P 2 | p i | P 2 | p i | P 2 |
XTAL:
ALE
PSEN:
P0.
P2:
PCHOUT
PCH OUT
- Giản đồ thời gian đọc bộ nhớ chương trình ngồi.
ị J RVơHG 0KOL - K ' CN;
T H Ư V 1É ÍS
**
ỉ
ĩ .ICA
!
I
21
PCH OUT
ần ĩỉ : Kiến
Kiê thức liên quan
Phần
Chương I: Giới thiệu vi điều khiển AT89C51
2. T ruv xuất bỏ nhđ dữ liêu ngoài:
Bộ n lớ dữ liệu ngoài là một bộ nhớ RAM được cho phép ghi/đọc bằng các tín
hiệu WL: và RD (các chân P3.6 và P3.7 thay đổi chức năng). Chỉ có một cách truy
xuất bộ ihớ dữ liệu ngoài là với lệnh MOVX dùng con trỏ dữ liệu (DPTR) 16 bit
hoặc RO và RI xem như thanh ghi địa chỉ.
[STATE 4.1STATE a ISTATE 6 [STATE 1 1STATE 2 [STATE 3 [STATE 4 | STATE 5 |
|p 1 | P 2 | p 1 | P 2 | P I |P 2 |p 1 | P 2 |p 1 | f>2 | p i IP 2 1 P í | P 2 | p l | P 2 |
XTAL:
ALE:
RD:
PCLOUTiF
PROGRAM MEMORY
â EXTERNAL
DATA SAMPLED
P2:
FLOAT
DPLORRI
OUT
P:
PCHO ô
P2SFR
FLOAT
DPH OR P2 SFROUT
Chu k c bộ nhớ dữ liệu ngoài
22
PCHCH
P2 SFR
Phần
M E:
me
PCLOLm f
PROGRAM MEMORY
IS EXTERNAL
OPLGRRI
OUT
PĐ:
P2:
PCHOR
r * i
DATA OUT
DPHORP2SFROUT
PSSFR
our
PCHOR
P2SFR
Chu kỳ ghi bộ nhớ dữ liệu ngoài
Kết lối bus địa chỉ và bus dữ liệu giữa RAM và 89C51 cũng giống như
EPROM và do đó cũng có thể lên đến 64Kbyte bộ nhớ RAM. Ngoài ra, chân RD
của 89C: i 1 đưỢc nối tới chân cho phép xuất (OE) của RAM và chân WR đươc nối
tới chân hi (WR) của RAM.
VĨĨI. LÊỈNH RESET!
89C5 được reset bằng cách giữ chân RST ở mức cao ít nhất trong 2 chu kỳ
máy và irả’ nó
mức thấp. RST có thể được kích bằng tay dùng một nút bấm
hoặc có t lẽ được kích khi cấp điện dùng mạch RC.
Mach reset hê thốnọ.
Trạng hái của tất cả các thanh ghi của 89C51 sau khi reset hệ thông được tóm
tắt trong b tng sau:
23