1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Thiết kế hệ thống với họ 8051 Tin học thực hành, Tống Văn On, Hoàng Đức Hải

458 3 0
Tài liệu được quét OCR, nội dung có thể không chính xác

Đ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

Định dạng
Số trang 458
Dung lượng 41,23 MB

Nội dung

Trang 1

TONG VAN ON (Chui biên)

Trang 2

(IMI) TONG VAN ON (Cha bién) Gaz HOANG DUC HAI

TIN HQC THYC HANH

THIET KE HE THONG VOI HO

Trang 3

THIET KE HE THONG VOI HO

8051

“Thực hiện liên doanh: Công ty TNHH Minh Khai S.G

E-mail: mk.book@minhkhai.com.vn - Website: www.minhkhai.com.vn Tổng phát hành Nha séch Minh Khai: 249 Nguyễn Thị Minh Khai - Quận 1 - TP.HCM ĐT: (08) 9.250.90 - 9.250.591 ~ Fax: (08) 9.257.837 + Nhà sách Minh Châu: Nhà 30 - Ngõ 22 - Tạ Quang Bửu - Bách Khoa - Hà Nội DT: (04) 8.692.785 — Fax: (04) 8.683.995 Đại lý các khu vực ® Nhà sách Huy Hoang: 95 Núi Trúc - Kim Mã - Ba Đình - Hà Nội ĐT: (04) 7.365.859 + Cty cổ phân sách thiết bị trường học Đà Nẵng: 78 Bạch Đằng - Đà Nẵng ĐT; 0611.887100 ® - Nhà sách Chánh Trí: 116A Nguyễn Chí Thanh - Đà Nẵng ĐT: 0511.820129 + Cty phát hành sách Khánh Hòa: > Nha sách Ponagar: 78 Thống Nhất - Nha Trang - Khánh Hòa DT: 0588.822636 >_ Siêu thị sách Tân Tiến: 11 Lê Thành Phương - Nha Trang - Khánh Hòa DT: 058.827303 Nha séch Nam Hién: 79/6 Xô Viết Nghệ Tĩnh - TP.Cân Thơ ĐT: 071 821668 '® HẾT KẾ HỆ THỐNG VI Hô 051 Lie ata Nụ rach wm x} wb: sana thd Bits ie otc toy Bạc ng tông

Sta ede teen Sia lưng TH He O00 cute, any 2332000, ta itnpigy in Mace Bidar Pate ete TP cas i Sg Gig hy ode at ine io bol ote ni vồng

ea i nny ea 2 vam one len và ộy hat eh tận 9 nn UT

Trang 4

THU NGO

Kinh thưa quý Ban doc gén xa!

“Trước hết, Ban xuất bản xin bày tỏ lòng bidt om va niém vinh hgnh được dong đảo Bạn đọc nhiệt tình ủng hộ tủ sách ME.PUB

"Trong thời gian qua chúng tôi rất vui và cảm ơn các Bạn đã gửi email đóng gúp nhiễu ý kiến quý bầu cho tủ sách

"Mục tiêu và phương châm phục vụ của chúng tôi là: + Lav dong bhoa học nghiêm tức

«_ Chất lượng tà ngày cảng chất lượng hơn + Tất cả vi Ban doe

Một lần mữa, Han xuất bản MK.PUB xin hính mời quý Bạn đọc tiếp tục tham gia cùng chúng tôi dé nang eao chất lượng sách Cụ thể:

'Trong quá trình sử dụng sách, nếu quý Bạn phát hiện thấy bất kỳ sai sót nào (đử nh) xin đánh dau,

ghí chứ nhận xót ý kiến của Bạn ra bên cạnh rồi gửi cuốn sách này cho chúng tôi theo địa chỉ

"Nhà sách Minh Khai

349 Nguyễn Thị Minh Khai, Q.1, Tp Hồ Chi Minh

E-mail: mh.book@minkkhai.com.vn hotje mk pub@minhkhai.com.on

Chúng tơi xin hồn lại cước phí bu điện và gửi trả lai Ban cuốn sách cùng tên Ngoài ra chúng tôi còn gửi ting Bạn một cuốn sách khác trong tủ sách MECPUB Bạn có thé chọn cuốn nách này theo danh mục thích hợp sẽ gửi tới Bạn

Voi mục đích ngày càng nâng cao chất lượng tủ sdch MK-PUB, chúng tôi rất mong nhận dược sự hợp tác nhiệt tình của quý Bạn đọc gần xa

“ME PUB cùng Bạn đọc đông hành” để năng cao chất lượng sách Mặt lần nữa chúng tôi xin chân thành cảm ơn

Trang 5

Lời nở đầu ‘a

LOI M6 ĐẦU

Nhiễu người đọc thường quen lập trình cho các chip của họ 8051 bằng hợp ngữ Do bản chất

la hợp ngữ là ngôn ngữ mã gợi nhớ và khi địch sẽ ánh xạ 1-F sung ngôn ngữ máy, việc lập trình

bằng hợp ngữ thường gặp khó khăn, nhất là đối với các chương trình lớn cũng như đối với các phiên bản cải tiến và nâng cao của họ 8051 Chương trình viết bằng hợp ngữ thường khó đọc và khó bảo trì so với chương trình viết bằng ngôn ngữ cấp cao, như C chẳng hạn

Ngôn ngữ Ở cho phép người thiết kế hệ thống viết chương trình tương đồng nhiều hơn với suy

nghĩ của con người so với chương trình viết bằng hợp ngữ Người thiết kế hệ thống có thể tập

trưng nhiễu thời gian hơn vào việc thiết kế các giải thuật của hộ thống thay vì phải tập trung vào

việc thực hiện riêng rẽ các giải thuật Điều này sẽ làm giảm một cách đáng kể thời gian phát triển hệ thống và làm giảm thời gian gỡ rối vì chương trình sẽ đễ hiểu hơn

Bling cách sử dụng ngôn ngữ giống như C, người lập trình không cản phải am tường kiến trúc của bộ ví điều khiển Điều này có nghĩa là một người chưa quen với một bộ vi điều khiển cho sẩn có thể xây dựng một để tài nhanh hơn vì tổ chức bên trong của bộ vi diéu khiển đích có thể không, cẩn nghiên cửu Ngoài ra chương trình được phát triển bằng C sẽ đễ dàng sử dụng lại với các hệ thống khác so với chương trình được phát triển bằng hợp ngữ

Quyển sách này bao gồm 15 chương và 3 phụ lục Các chương trình thí dụ trong quyển sách này một phân được viết bằng hợp ngữ và phần lớn được viết bằng C véi sự hỗ trợ của gói phần mém Keil C

“Chương 1 tóm tất cấu trúc phần cứng của các chip ho 8051 Nếu người đọc chưa từng biết qua ho vi điều khiển này, người đọc cân nghiên cứu trước quyền “Họ vi điều khiển 8051”,

Chương 2 cung cấp cho người dọc một vài thiết kế đơn giản sử dụng họ vì điều khiển 8051, với các đoạn chương trình viết bằng hợp ngữ Đây là các thiết kế thường gặp đối với các hệ thống sử đựng họ 8051 Myc đích của chương này là tiếp tục giúp người đọc nhớ lại các kiến thức về họ vĩ điều khiển 8061

Các chương từ 3 đến 10 hướng dẫn người đọc cách thiết kế tối ưu các hệ thống sử dụng ho vi điều khiển 8051, tối ưu về mặt phần cứng lẫn thời gian thực thì phần mẫm sao cho hộ thống thiết kế hoạt động theo thời gian thực Việc kết hợp C và hợp ngữ để lập trình nhứng cũng được mô tả MG@ rộng số ngất ngoài cho họ 8051 và cách tổ chức một chương trình cho hệ thống sử dụng ngất được để cập chỉ tiết, bao gồm cả phương pháp viết một thường trình phục vụ ngất ISR Port nổi tiếp và việc truyền thông mạng sử đụng các chip ho 8051 được trình bày chỉ tiết cùng với các thí du va chương trình minh họa Hệ logie mờ được để cập ở chương 10, đây là xu hướng thiết kế hệ thống được ưa chuộng hiện nay Gói phần mém Keil C được để cập chỉ tiết cùng với việc lập trình điều khiển phần cũng sử dụng C, thông qua các thí dụ thực tế

Trang 6

tru “Thiết kế hệ thống với họ 8051

Chương 12 mô tả chíp vi điều khiển AT89051RD2/PD2, hai chịp điển hình cho loạt phiên bản mới cña họ 8081 Hai chịp này được sử dụng rộng rãi trong nhiễu lĩnh vực điều khiển, trong đó có Việc điều khiển các robot

Chương 18 trình bày một ứng dụng điển bình của chịp vi điều khiển 88C2051: mạch ADC sử ‘dung RC và mạch ADC theo phương pháp xấp xỉ liên tiếp

Chương 14 mô tả việc lập trình ngay trên mạch cho ho vi điều khiển AT89G51 và phát triển để có thể lập trình từ xa qua đường đây điện thoại

“Chương 15 cung cấp cho người đọc thông tin về động cơ bước và sit dung mach PCA của ho vi điều khiển AT89O5LRD2/ED2 để điều khiển động cơ bước đơn cực

ác phụ lục 1, 2 và 8 mô tả ba vi mạch được sử dụng ở chương 2 của quyển sách này, đầy là các vi mạch thường đùng nhất hiện nay trong các trường dai hoo, cao đẳng cũng như các trường day nghề: PIO 8265, ADC0809, DAC0808

"Nội dưng quyển sách này được biên soạn từ các tài liệu sau:

1 Quyén “The final word on the 8051" của Matthew Chapman, 1994-2004, Intel Corporation 2 Các tài liệu về “Ngôn ngữ C° trên website http:/www.learn-c.com,

3 Tai Ligu "Phụ lục môn học Vi xử lý" của Bộ môn Điện tử ~ Khoa Diện&Điện từ ~ Đại học Bách khoa TP HCM 4 "Using a Personal Computer to Program the ATS9C51/C52/C1051/02051", Application

‘Note eda Atmel Semiconductor Corporation

5 “Analog-to-Digital Conversion Utilizing the AT89CX051 Microcontrollers”, Application ‘Note ciia Atmel Semiconductor Corporation 6 “Driving Unipolar Stepper Motors Using C51/C251", Application Note cia Atmel

‘Semiconductor Corporation

7 Tài liệu tra cứu AT89C2051, AT89051RD2/ED2, ATSICS1, 8051, v.v cla Atmel Semiconductor Corporation “Tài liệu tra cứu 82C5A ca Harris Semiconductor Corporation

“Tài liệu tra cứu ADC0809, DAC0808 của National Semiconductor Corporation

Đối tượng của quyển sách này là các sinh viên thuộc các chuyên ngành điện, diện tử, viễn thông, công nghệ thông tin của các trường đại học và cao đẳng Người đọc cân có kiến thức cơ bản vẻ họ vi điều khiển 8051 cũng như cần biết qua ngôn ngữ lập trình C,

Trang 7

Mục lục MỤC LỤC LỜI MỞ ĐẦU MỤC LỤC 1 TÓM TẤT PHẦN CỨNG HỌ 8051 11 TONG QUAN 1:2 TỔ CHỨC BỘ NHỚ

121 Không gian CODE 122 Không gian DATA

1.2.3 Các thanh ghỉ chức nâng đặc biệt

124 Không giaa DATA 126 Khong gian XDATA 1.3 XU LY BIT 1.4 CÁC CHẾ ĐỘ ĐỊNH ĐỊA CHỈ: 1.8 TRANG THÁI BỘ XỬ LÝ 16 DIEU KHIỂN CAP ĐIỆN 1.7 NGAT TREN 8051

17:1 Thanh ghi dụ iên ngất 1.7.2 Thanh ghi cho phép ngất 1.7.8 Sự trễ của ngất X14 Ttn hiệu ngất ngoài 1.8 BỘ ĐỊNH THỜI/ĐẾM 1.61 Chế độ 0 và chế độ 1 183 Chế độ2 L&8 Chế đ 8 +84 Bộ định thôi 2 18 UART 181 Chế đ 0 183 Chế độ 1 T83 Chế độ 5 : 1.10 CÁC NGOẠI VI KHÁC 1101120 110.2 Biến đổi tương tự — số 1103 Bp dinh tl watchdog 1.11 CÂN NHAC THIẾT KẾ +15 VẤN DE THUC HEN 3 MỘT SỐ THIẾT KE DON GIAN TREN 8051 2.1 MỞ RONG PORT 221.1 MO rg port ut 312 Mỡ rộng bơt nhập

213 Mỏ vụng pert nhậphuất sĩ dụng PPI8265A 28 HIỂN THỊ ä LED 7.ĐOẠN 282 Phương pháp chất

222 Phương phẩp aut

2.3 GIAO DIỆN VỚI CÁC BỘ BIẾN ĐỔI AD VÀ D/A

343 Giao diện ới ADOOB08 382 Gia diện với DAODB08

3.4 GIÁO DIỆN VỚI BÀN PHÍM CUA PC 3 SỬ DỤNG NGÔN NGỮ C VỚI 8051

Trang 8

av Mạng máy tính 32 GIỚI THIỆU G 381 Cấu trúc “ 4 322 Rất hợp “ 383 Cen trổ 4 324 Định nghĩa kiểu “

43 KEIL, CVA AINSI ¢ 3⁄31 Kiểu d iệc P1 2 3192 Thanh ghỉ chức năng đặc biệt SER, 49 34 KIEU BO NEO 3.4 Đoạn nhớ BDATA 3.4.1 Doan ho DATA 50 50 5

3.43 Doan nbd IDATA a

8.44 Đoạn nbd PDATA và XDATA s6

3.4.3 Đoạn ahé CODE s6 36 CON TRÒ, 5 3.6 THUONG TRINH PHUC VU NGAT 3.6.1 i 59 6 3.7 HAM REENTRANT 65 38 NHONG DIEU CAN LAM VA NHUNG DIU NEN TRANH DOt VOI KEIL ¢ sẽ 3.9 MO HINH BO NHO 0

3.10 MO HÌNH BỘ NHO HON HOP a

3.1L THỨ VIÊN THỜI GIAN THỰC THỊ a 312 CAP PHÁT BỘ NHỚ ĐỘNG, 2 4 SỬ DUNG PHAN MéM B6 SUNG PHAN CONG 41 MỞ ĐẦU, + T6 42 SỬ DỤNG MƠ HÌNH BỘ NHỚ NHỎ Tế 48 SỬ DỤNG BẰNG LCD 7 44 GHI DŨ LIỆU ĐẾN BỘ HIỂN THỊ a 4.5 SỬ DỰNG BỘ ĐỊNH THỜU/ĐỀM LÀM NHỊP HỆ THỐNG g8 -46 SỬ DŨNG NHỊP HỆ THỐNG CHO GIAO DIỆN VỚI NGƯỜI SỬ DỤNG s6 47 CẢI THIỆN PHAN MEM CUA DONG HO 8 4.8 TỐI ƯU HÓA VIỆC SỬ DỰNG RAM BÊN TRONG sọ 48 HOÀN TẤT 2 4.0 SỬ DỰNG BỘ DINH THO! WATCHDOG 102 411 LỮU DỮ LIỆU HỆ THỐNG 104 5 OP NGU VA C TREN 8051 51 MỞ ĐẦU ur un

52 TẠO CÁC ĐOẠN NHỚ VÀ CÁC BIẾN CỤC BỘ ul

5.8 THIẾT LẬP ĐỊA CHỈ CHO BIẾN tạ

5.4 KẾT HỢP C VÀ HỢP NGỮ 15

55 MA HOP NOU TREN DONG LỆNH nở

56 CẢI TIẾN HỢP NGỮ ĐƯỢC TẠO RA BỞI TRÌNH DỊCH 123

57 MÔ PHÔNG NHIÊU MỨC NGẮT 126

Trang 9

Mục lục 7 HỢP NGỮ VÀ C TRÊN 8051 T1 MỞ ĐẦU: 17 ur 1.2 NHAPXUAT NOI TIẾP TỐC ĐỘ CHAM - GIAO DIỆN VỚI PC 147 113 NHẬP/XUẤT NỐI TIẾP TỐC ĐỘ CAO 187 8 TRUYEN THÔNG MẠNG VỚI 8051 31 GHÉP KÊNH PORT NỔI TIẾP 82 ĐIỀU KIIEN TOMA SỬ DUNG CAC BỘ ĐỊNH THỜI TREN CHIP 83 MẠNG CSMA VỚI 8051 18 x9 197 207 9 KIỂM SỐT TRÌNH DỊCH VA TRÌNH LIÊN KẾT 91 CHUYỂN CHƯƠNG TRÌNH € ĐANG CÓ VÀO KEIL ¢ 213 213 92 CHUYỀN CHƯƠNG TRÌNH HỢP NGỮ ĐẾN HỢP NGU CBA KELL au 93 SU DUNG TU KHOA-USING: 215 9⁄4 DIEU KHIỂN QUÁ TRINH OVERLAY CUA TRÌNH LIÊN KẾT zai 95 SU DUNG 64K RAM HOAC HON 223 26 SU DỤNG KHONG GIAN CODE NHIEU HON 64K 236 10 LOGIC MỜ 101 MỞ ĐẦU, 1 2a 102 LOGIC MO LA Gh? 2 103 CẤU TRÚC CUA HE THONG MO z4 104 LOGIC MO BUGC SU DUNG 6 BAU? 246 105 MỜ HÓA 247 106 KHOI DONG PHUONG TIEN 250 107 ĐIÊU CHINH PHUONG TIEN 260

11 BỘ VI ĐIỀU KHIỂN 8902051 “CÁC ĐẶC ĐIỂM MO nA 2m an zm CẤU HÌNH CHÂN a MƠ TẢ CHÂN 279 CÁC ĐẠO TÍNH CỦA MẠCH DAO ĐỘNG 280 CÁC GIỚI HẠN TRÊN MOT 6 LENE 282 CAC BIT KHÓA BỘ NHỚ CHƯƠNG TRÌNH 288 “CHẾ ĐỘ NGHĨ VÀ GIẢM CÔNG SUẤT 289 LAP TRINH FLASH 288 CÁC CHẾ ĐỘ LẬP TRINH FLASH 286 18 BỘ VI DIEU KHIỂN ATB9C6IRiD2/ED2 121 CÁC ĐẶC ĐIỂM 201 29L 122 MÔ TẢ 29 123 SƠ ĐỒ KHỐI 209 124 ANH XASFR 204 125 MO TA CHAN 301 136 CÁC RIỂU PoRT 304 157 MẠCH DAO ĐỘNG 305 128 CÁC TÍNH CHẤT NẴNG CAO, 307 12.9 TINH CHAT x2 207 1210 THANH GHI DPTR ano 12.11 RAM MO RỘNG 312 12:12 RESET 315 12.19 MACH GIAM SAT CAP ĐIỆN 316 1514 BỘ ĐỊNH THỜI 2 3 1216 DAI DEM LẬP TRÌNH ĐƯỢC PCA 322

Trang 10

au ‘Mang may tinh

12.17 GIAO DIEN BAN PHIM aaa

12.18 GIAO DIỆN PORT NỔI TIẾP SPI 348

12.19 He THONG NOAT 358

1230 QUAN LY CAP ĐIỆN 12.21 BỘ DINH THO! WATCHDOG PHAN CUNG WoT 366 368

12.22 CHE BO ONCE 370

1223 GỠ TAT CAP ĐIỆN zm

1224 CHẾ ĐỘ EMI ĐƯỢC GIAM 32

12.25 BO NHO DU LIBU EEPROM 313

12.26 BỘ NHỚ FLASH/EEPROM 36

18 MẠCH ADC SỬ DỤNG AT89CX051 379

18.1 MG BAU 379

13.2 MACH BIEN BOI TUONG TY ~ 86 RO 379

18.3 MẠCH BIỂN ĐỔI TƯƠNG TỰ - SỐ XẤP XỈ LIÊN TIẾP 385

14 LẬP TRÌNH NGAY TRÊN MẠCH AT89C51 389 14.1 MỞ ĐẦU 389 14.2 CÁC KHẢO SÁT TỔNG QUÁT 389 14.3 ỨNG DỰNG THÍ DỤ 390 144 SỬA ĐỐI ỨNG DỰNG ĐỀ LẬP TRINH NGAY TREN MACH 390 145 MẠCH LẬP TRÌNH 392 146 LẬP TRÌNH TỪ XA TREN DUONG DAY ĐIỆN THOẠI 384 14.7 THIẾT LẬP PHẦN CỨNG 389 148 CAI DAT 399

15 ĐIỀU KHIỂN ĐỘNG CƠ BƯỚC SỬ DỤNG C5I/C251 1861 MỞ ĐẦU, 401 401

183 MÔ TẢ 15.3 NHAN DANG BONG CƠ BƯỚC _ 401

Trang 11

har "Tim ee phn cong 8 1

TOM TAT PHAN CUNG HQ 8051

1.1 TONG QUAN

Họ vi điều khiển 8051 đặt nến tổng trên một kiến trúc được tối ưu hóa cao đành cho các hệ

thống nhúng điều khiển (embedded control system) Ho vi điều khiển 8051 được sử dụng rộng rãi

trong rất nhiêu ứng dụng từ thiết bị quân sự đến các xe ô tô, các bàn phím của các máy tính cá nhân PC (personal computer) của ta Chỉ đớng sau Motorola 68HC11 về doanh thu của các bộ vi

xử lý B-bit, ho vi điểu khiến 8051 có sẵn dưới rất nhiễu biến thể khác nhau từ các nhà sản xuất

như Intel, Atmel, Philips và Siemens Các nhà sản xuất này đã đưa thêm vào 8051 nhiều đặc tính

và ngoại vi khác nhau, chẳng hạn như các giao điện lỄC, các bộ biến đổi tương tự sang sf ADC

(analog to digital converter), các hộ định thời watchdog (watchdog timer), các ngõ rz được điều chế độ rộng xung (pulse width moddlated output), v.v Các biến thể này của 8051 có tốc độ xung clock

lên đến 40 MHz và các yêu cầu điện áp giảm đến 1.5 V Tắm rộng các lình kiện này được đặt nên tăng trên một lõi làm cho họ 8051 trở thành một lựa chọn rất tốt ở dạng kiến trúc cơ bản đối với toàn bộ một đồng sản phẩm của một công ty do các biến thể của 8051 thực hiện được nhiều chức

ng và những người phát triển chỉ cân bọc công nghệ cơ sở của lõi này

iến trúc cơ bản bao gồm các đặc tính sau:

"Mật ALU Sit

= 32 chan ƯO riêng biệt (4 nhóm mỗi nhóm 8 chân 1/0) o6 thé được truy cập riêng rẽ

~ Hai bé dinh thoi/dém 16-bit

~ _ Đơn vị thu/phat bat déng bo phé bign UART (universal asynchronous receiver/transmitter)

"hồn tồn song cơng

-_ 8áu nguồn hay nguyên nhân ngất (interrupt souree) với 2 mức ưu tiên (priority level)

= 128 byte RAM bén trong chip (RAM nội

- Hai không gian dja chi 64 Kbyte riêng r8 cho bg nhé CODE (chung trinh) va b nhớ DATA (di lieu)

Một chu kỳ bộ xử lý (processor cycle) của 8051 bao gồm 12 chu kỳ của mạch dao động tạo xung

clock Mỗi chu ky cia 12 chu kỳ mạch dao động được sử dụng cho một chức năng riêng biệt bởi löi của 8051, chẳng hạn như tìm nạp mã lệnh (opcode fetch) va Idy mau chudi ngắt đối với các ngất

còn tổn tại (pending iaterrupt) chưa xử lý Thời gian cẩn cho một lệnh bất kỳ của 8051 có thể

được tính bằng cách chia tắn số xung clock cho 12, nghịch đảo kết quả này rồi nhân với số chu kỳ:

Trang 12

w@: “Thiết kế hệ thống với họ 8051

bộ xử lý cần có đối với lệnh đang để cập Do vậy, nếu ta có một hệ thống đang sit dung xung clock có tắn số 11089 MHz, ta có thể tính số lệnh trong một gidy bằng cách chia giá trị này cho 12 Két qué cho ta tén 66 lgnh (instruction frequency) là 921583 lệnh mỗi giấy Việc nghịch đảo con số này cho ta lượng thời gian cần có cho mỗi chu kỳ lệnh (instruction cycle) (1:085 microsecond)

1.3 TỔ CHỨC BỘ NHỚ

Xiến trúc của 8051 cung cấp cho người sử dụng 8 không gian bộ nhớ vật lý phân biệt được trình bày ở hình 11 Mỗi không gian nhd (memory space) bao gém các địa chỉ kể nhau từ 0 đến kích thước cực đại của không gian nhớ, được tinh bằng byte Các chẳng lấp địa chỉ được giải quyết bằng cách sử dụng các lệnh tham chiếu một cách rõ ràng đến một không gian địa chỉ cho trước .Ba không gian nhớ thực hiện chức năng được mô tả dưới đây SpeelaiFunetlon TĐTA [=Z—|

‘CODE DATA XDATA

(Dostana ent mamary Hình 1.1: Kiến trúc bộ nhớ của 8051 Not available on all devices: khong có sẵn trên tất cả các linh kiện Special lunetion regislers: các thanh ghỉ chức năng đặc biệt General purpose RAM: RAM nhiều mục địch,

Địt ađdressable: có thể định địa chỉ bi Register banks: các dải thanh ghỉ

Denotes read-onle memory: biểu thị bộ nhớ chỉ đọc 1.8.1 Không gian CODE

"Không gian nhớ dau tiên là vùng nhớ (hay đoạn nhớ) CODE (CODE segment) trong đó chương trình thực thi thường trú, Đoạn nhớ CODE này có thể có kích thước lên đến 64 KB (do đoạn nhớ nay được định địa chỉ bằng 16 đường địa chi) Bộ vĩ điều khiển xem đoạn nhớ này như là đoạn

=hớ chỉ đọc và sẽ tạo ra các tín hiệu thích hợp để truy cập một linh kiện nhớ chẳng hạn như một

EPROM Tuy nhiên, điều này không có nghĩa là đoạn nhớ CODE phải được thực hiện bằng cách sử dụng các BPROM Nhiễu hệ thống nhúng ngày nay dang sử dụng EEPROM, linh kiện này cho phép bộ nhớ có thể được ghi đè bởi chính 8051 hoặc bởi một thiết binh kiện bên ngoài Điều "này làm cho việc nâng cấp sản phẩm được dễ dàng thực hiện do hắn mễm mới có thể được nạp xuống FEPROM thay vì phai ldy EPROM ra và cài đặt một EPROM mới Ngoài ra, các SRAM có agubn nuôi là pin có thể được sử dụng thay cho EPROM Phuong pháp này còn cho ta khả năng tướng tự là tải lên phần mêm mới đến một đơn vị như là FEPROM thực hiện mà không có bất kỳ loại giới hạn chu kỳ doc/ghi nto, trong khi EEPROM Iai có Tuy nhiên, một khi nguồn pin cong cấp cho SRAM bị hỏng, phản mễm trong SRAM cling bi hỏng theo (bị mất) Việc sử dụng SRAM

Trang 13

Chae 1 Ri tp ng hy 881 :m

thay cho EPROM trong các hệ thống phát triển cho phép ta nạp xuống nhanh một chương trình mới đến hộ thống đích Khi điều này có thể được thực hiện, ta tránh được chu kỳ lập trình/kiểm tra/xéa cẩn có đối với ede EPROM va ta cũng tránh được những rắc rồi trên công cụ mô phỏng, "gay trên mạch, công cụ này thường là một tiên nghỉ hiếm thay

Cùng với chương trình thự thị, trong thực tế người ta còn lưu giữ các bảng tìm kiếm (look-up table) cố định trong đoạn nhớ CODE Để tạo thuận lợi cho việc này, 8051 cung cấp các lệnh cho phép truy cập nhanh đến các bảng thông qua coa trỏ dữ liệu DPTR (data pointer) hoặc bộ đếm chương trình PC (program counter) cùng với một độ đời (ofset) trong bảng được cung cấp tùy ý bởi thanh chứa (accumulator) Điểu này có nghĩa là thông thường, địa chỉ nên (base address) của một bảng có thể được nap cho DPTR và độ dòi của một phản tử trong bảng cẩn truy cập có thể được lưu trong thanh chứa Việc cộng được thực hiện bởi 8051 trong thời gian thực thi lệnh và có thể tiết kiệm nhiều chu kỳ tùy thuộc vào tình huống cụ thể Một thí dụ cho điều này sẽ được trình bày sau trong chương này

1.2.2 Không gian DATA

Khong gian nhớ thi hai 1a 128 byto RAM ben trong 8051 hose 128 byte đầu tiên của RAM ben trong 8052, Đoạn nhớ này điển hình được tham chiếu như là đoạn ahé DATA Các vị trí của RAM trong đoạa nhớ này được truy cập trong một hoặc bai chu kỳ phụ thuộc vào lệnh Thời gian truy cập này nhanh hơn nhiều so với thời gian truy cập đoạn nhớ XDATA do đoạn nhớ này được định địa chỉ trực tiếp thay vì thông qua một con trỏ bộ nhớ (memory pointer) chẳng hạn như DPTR, con trỏ bộ nhớ này trước tiên phải được khởi động Do vay, các biến thường được sử dụng, hoặc các biến nháp tạm thời thường được gán đến đoan nhớ DATA Tuy nhiên, việc cấp phát như vậy phải được thực hiện cẩn thân do dung lượng nhớ có giổi hạn của đoạn nhớ DATA

Các biến được kêu trong đoạn nhớ DATA có thể được truy cập gián tiếp thông qua thanh ghi 0 hoặc R1 Thanh ghỉ này khi được sử dụng làm con trở bộ nhớ phải chứa địa chỉ của byte ofa đọc hoặc cần thay đổi Các lệnh sử dụng thanh ghỉ RO hoặc R1 phải mất một hoặc hai chủ kỳ bộ xử lý tùy thuộc vào byte dữ liệu nguôn/đích

Đoạn nhớ DATA nay chứa hai đoạn nhớ quan trọng nhỏ hơn Đoạn nhớ nhỏ đầu tiên chứa 4 đãi thanh ghi (register bank) két hop thanh 82 byte du tiên của RAM bên trong 8051 có thể sit dung một trong 4 dai thanh ghi 8-bit này làm đãi thanh ghi rmặc định Ta có thé thay đổi dai thanh ghỉ đang sử dụng bất kỳ lúc nào thông qua các bit RS1 và RS0 của từ trạng thái bộ xử lý PSW (processor state word) Hai bit này kết hợp thành các số từ 0 đến 3 (với RS1 là bít có ý nghĩa lớn nhất) chỉ ra dải thanh ghỉ được sử dụng Việc chuyển đổi dải thanh ghi cho phép không chỉ truyền thông số nhanh mà còn tạo diéu kiện làm đơn giản việc chuyển đối các tác vụ (task) trong 8051

Đoạn nhớ nhỏ thứ hai trong không gian DATA là đoạn nhớ định địa chỉ bit (bít addressable segment), trong đó mỗi bit có thể được truy cập riêng rõ Đoạn nhớ này được xem như là đoạn nhớ BDATA Đoạn nhớ định địa chỉ bit nay chia 16 byte (128 bit) nim ngay bên trên 4 dải thanh ghỉ cia RAM bén trong 8051 e6 một số lệnh liên quan đến bịt (lệnh xử lý bit) thường rat him dung trong các ứng dụng điều khiển và giúp ta thay thế mạch tổ hợp bên ngoài bằng phén mém trong 8051, như vậy sẽ giảm được các linh kiện cần có ở hệ thống kết quả Ta cũng cần lưu ý rằng 16 byte này cũng có thể được truy cập trên cơ ở byte giống như mọi byte khác trong không gian

DATA

1.8.3 Các thanh ghí chức năng đặc biệt

Trang 14

“Thiết kế hệ thống với họ 8061

địa chỉ bịt Các bit của các SER định địa chỉ bịt có thể được truy cập bằng tên, chỉ số (index) hoặc dia chi bit (bit address) Thi dụ, ta có thể tham chiếu đến bit ĐA sủa SFR cho phép ngất (interrupt enable SFR) bing EA, IE.7 hoặc 0AEH Các SFR diéu khiển một điều gì đó chẳng hạn như là hoạt động của các bộ định thời/đếm, UART và các nguyên nhân (hay nguồn) ngất cũng như mức ưu tiên của các nguyên nhân ngất này Các thanh ghi này có thể được truy cập bởi cùng tập lệnh dưới dang các byte hoặc các bit trong đoạn nhớ DATA Bản đồ bộ nhớ (memory map) của các “SEN chỉ ra các thanh ghỉ định địa chỉ bít được trình bày ở bảng 1.1 =lzl- g| ROAPAL | ROAPOH | Tk | THE T SP PL | PH Izlzlslzlz|z|zlzlslsi (Bl - bre atest Se Funan ag inland owing lan Băng Là

Denotes bit addressable SFRs in this table and all following diagrams: biểu thị các SFR định dia chi bit trong bằng này cũng như trong mọi giản đồ sau này

1.24 Khong gian IDATA

Một số thành viên của họ 8051 chẳng hạn như 8052 còn chứa thêm 128 byte RAM bén trong, vùng RAM này thường trú tại các vị trí RAM có dia chỉ từ 80H trở lôn Đoạn nhớ RAM nay thường được xem như là đoạn nhớ IDATA Do các địa chỉ của IDATA va các địa chỉ của các SFR trùng lấp nhau, việc xung đột địa chỉ giữa IDATA và các SFR có thổ được giải quyết bởi loại truy cập bộ nhớ sẽ được thực hiện, vì đoạn nhớ IDATA chỉ có thể được truy cập thông qua các chế đệ inh địa chỉ gián tiếp (adireet addressing mode)

1.2.5 Khong gian XDATA

hông gian nhớ sau cùng của 8051 có kích thước 64 K va được định địa chỉ bởi cùng 16 đường địa chỉ như đoạn nhớ CODE Không gian này điển hình được xem là không gian nhớ dữ liệu bên "goài (external data memory space) hoặc đoạn nhớ XDATA Đoạn nhớ này thường bao gồm một loại RAM nào đó (thường là SRAM) và các linh kiện I/O hoặc các ngoại vì bên ngoài, chúng phải giao diện với 8051 thông qua bus hộ thống của 8051 Các thao tác đọc và ghi đến đoạn nhớ này sẽ mất tối thiểu hai chu kỳ bộ xử lý và sẽ được thực hiện bằng cách sử dựng DPTR, RO hoặc R1 ‘mong rnuốn cùng với hai chu kỳ được cản đến để thực hiện thao tác đọc hoặc ghi Tương tự việc “Trong trường hợp sử dụng DPTR, ta thường muất hai chu kỳ bộ xử lý hoặc hơn để nạp địa chỉ "=ạp cho RO hoặc R1 sẽ mất tối thiểu một chu kỳ bộ xử lý cùng với hai chu kỳ nữa cho chính việc

Trang 15

Chg: Tn phận cng họ tối a

truy cập bô nhớ, Do vậy, một cách tổng quát, ta dễ dàng thấy rằng một thao tác điển hình với đoạn nhớ XDATA sẽ chiếm tối thiểu 3 chu kỳ bộ xử lý Do điều này, đoạn nhớ DATA là đoạn nhớ ất thích hợp để lưu giữ các biến được sử dụng thường xuyên

Ta có thể làm day đoạn nhớ này bằng 64 Kbyte RAM né 8051 không cẩu thực hiện bất kỳ việc xuất nhập nào với các linh kiện trên bus của mình hoặc nếu người thiết kế muốn quay vòng, TRAM hoạt động và tất theo chu kỳ khi ede link kiện ƯO sẽ được truy cập thông qua bus Các

phương pháp để thực hiện kỹ thuật này sẽ dược để cập trong các chương sau của quyển sách nà)

1.8 XỦ LÝ BIT

8051 chứa một bộ xử lý bit có thể được sử dụng để thực hiện các thao tác logic trên bất kỳ bit ào trong 128 bit được định địa chỉ trong đoạn nhớ BIT, 128 bit được định địa chỉ của các SFR vA bất kỳ đường /O nào trong 82 đường 1/0 (tit port 0 đến por 3) 8051 có thể thực biện các thao tác ‘OR, AND, XOR, lấy bù (eomplement), cho bằng 1 (set) va xéa vé 0 (reset) trên các bit cũng như có thể di chuyển các giá trị bịt bình thường như khi ta di chuyển các giá trị byte

‘MOV C, 28H; di chuyển giá trị bít ỡ địa chỉ 22H đến bít nhớ (carry bit) ORL ©, 23H; or gid tri bit & dia chi

; 28H với bịt nhớ, kết quả cất trong bịt nhớ ANL 24H, Cand bit nhớ C với bit 6

5 dla chi 24H và cất kết quả vào địa chỉ bít này

8051 còn có các lệnh rẽ nhánh có điều kiện sử dựng các bít được định địa chỉ làm điều kiện "Một lệnh rẽ nhánh như vậy và đặc biệt thông đụng là lành “nhây nếu bit được cho bằng 1 và xóa bit”, Việc rẻ nhánh và xóa này có thể được thực hiện trong 2 chu kỳ bộ xử lý và tiết kiệm một hoặc hai chu kỳ so với việc chia lệnh nhảy và xóa thành hai mã thao tác riêng biệt,

'Thí du, giả định rằng ta phải viết một chương trình chờ cho chân P0.0 được cho bằng 1 nhưng không thể chờ vô hạn Thường trình (rontine) này (đây là thuật ngữ chung để chỉ đến bất kỳ doạn nã nào được yêu cầu bên trong một chương trình, thường trình thường có tên và có thể được thực, ‘thi bằng cách tham chiếu đến tân này) sẽ phải giảm một giá trị quá thời gian (timeout value) va thoát khỏi vòng lập thăm đồ (theo kiểu hỏi vòng) khi giá trị quá thời gian giảm bằng 0 (bị vượt quá) Khi chân P0.0 được cho bằng 1, bộ vi điều khiển phải buộc chan nay trd về 0 và thoát khỏi vòng lặp Với luỗng logïe bình thường, thường trình này sẽ giống như sau:

‘MOV timeout, #TO VAL, ; thiết lập giá trị quá thời gian

12 JBP00,LL ; kiểm tra bít,

DINZ, timeout, L2 ¡ giảm bộ đếm giá trị quá thời gian ¡ và lấy mẫu lắn nữa

Li: CLR POO ¡ buộc PO.0 vé mức logic 0 RET ¡ thoát khỏi thường trình "Bằng cách sử dụng lệnh JBƠ, thường trình tương tự sẽ được viết như sau:

MOV timeout, #TO_VAI, ; thiết lập giá trị quá thời gian La: JBC P00, L1 ¡ kiểm tra bit và buộc PO.0

xmức logic 0 nếu được cho bằng 1 idm bộ đếm giá trị quá thời gian ¡ thoát khỏi thường trình

Trang 16

Thi

"kế hộ thống với họ 8051

"Trong khi thường trình thứ hai có thể không cho ta tiết kiệm một lượng mã lớn, thường trình này đơn giản hơn một chút và thanh lịch hơn Sẽ có nhiễu tình huống, khi sử dụng chương trình viết bằng hợp ngữ (gọi tất là chương trình hợp ngữ) trên bộ vi điều khiển 8051, trong đó lệnh JBC 58 06 ich

1.4 CÁC CHẾ ĐỘ DỊNH ĐỊA CHỈ

8051 có khả năng thực hiện các truy cập bộ nhớ trực tiếp và gián tiếp trên các không gian nhớ khác nhau eda minh Có nhiều phương pháp điển hình mà thông qua các phương pháp này, các hệ thống xử lý sẽ truy cập bộ nhớ Các truy cập trực tiếp được đặc trưng bởi sự hiện diện của địa chỉ biến cẩn truy cập ngay trong lệnh Các truy cập này chỉ có thể được thực hiện trên đoạn nhớ DATA và trên các SFR, Các thí dụ truy cập trực tiếp bộ nhớ được trình bày dưới đây: MOV A, 03H ¡ di chuyển giá trị ở địa chỉ 08H đến ¡ thanh chứa, MOV48H,22M — ;ởi chuyển giá trịở địa chỉ22H đến ¡ địa chỉ 48H,

MOV 02H, C ¡ di chuyển giá trị của bit nhớ đến 5 dia chi bit 03H,

MOV 42H, #18 ¡ nạp giá trị 18 vào 6 nhớ có địa chỉ là 42H

MOV 08H, SBUF_ ; nạp giá trị trong SBUF (hay nội dung của SBUF) vào ¡ địa chỉ 00H,

Các truy cập gián tiếp yêu câu thanh ghi khác (DPTR, PC, R0 hoặc R1) của 8051, thanh ghỉ này chứa dia chi eis biến cần truy cập Vậy thì lệnh sẽ tham chiếu đến thanh ghi làm con tré thay vì tham chiếu đến chính địa chỉ Đây là cách thức mà mọi truy cập đến các đoạn nhớ CODE, TDATA và XDATA đều thực hiện Đoạn nhớ DATA cũng có thể được truy cập theo cách thức này “Các bit trong đoạn nhớ BDATA chỉ có thể được truy cập theo cách trực tiếp

Các truy cập gián tiếp bộ nhớ, khi ta muốn di chuyển một khối dữ liệu, cần được thay đổi hoặc en được thao tác với muột lượng mã chương trình nhỏ vì cơn trở có thể được tăng ngang qua vùng "nhớ thông qua cơ chế lập vòng Các truy trong DPTR hoặc thanh ghi PC và một độ dời (offset) trong thanh chứa Điều này hữu dụng đối cập gián tiếp đến đoạn nhớ CODE có thể có địa chỉ nên với các thao tác yêu edu các bảng tìm kiếm (lookup table) Các thí dụ truy cập gián tiếp bộ nhớ cđược trình bay dưới đây:

DATA and IDATA accesses

MOV RI, #22H ¡ thiết lập R1 để trỏ đến địa chỉ 22H ¡ của đoạn nhớ DATA,

MOV R0,#0A9H ; thiết lập RO để trỏ đến địa chỉ A9H ¡ của đoạn nhớ IDATA,

‘MOV A, @RL ; di chuyển (theo nghĩa sao chép) giá trị ở dia chi 228 ¡ của đoạn nhớ DATA

¡ vào trong thanh chia ‘MOV @RO, A , ¡ ghỉ giá trị trong thanh chứa

Trang 17

Chương 1: Tớm tắt pn eng hy 8061 INC Ro INC RL MOV 34H, GR0 MOY 6ñ, 671 XDATA accesses MOV DPTR, #30481 MOVX A, GDPTR INC DPTR MOV A, #26H MOVX @DPTR, A ‘MOV RO, #87H MOVX A, @R0 CODE accesses

¡ thiết lập R0 để trỏ đến địa chỉ AAH, ¡ của đoạn nhớ IDATA

¡ thiết lập R1 để trở đến địa chỉ 23H của đoạn nhớ DATA

¡ ghi giá trị d địa chỉ AAH ¡của TDATA,

¡ đến địa chỉ 34H của DATA

¡ ghỉ 67H đến địa chỉ 23H cia DATA ¡ thiết lập ĐPTR để trỏ đến địa chỉ 90481 ¡ trong đoạn nhớ XDATA,

+ doe dữ liệu ở địa chỉ 3048H ¡ trong đoạn nhớ XDATA ¡ vào trong thanh chứa

¡ thiết lập DPTR để trỏ đến địa chỉ 304911 ¡ trong đoạn nhớ XDATA,

nạp 26H cho thanh chứa

¡ ghi 28 đến địa chỉ 3049H của XDATA, ¡ thiết lập RO để trõ đến địa chỉ 87H ¡ trong đoạn nhớ XDATA

¡ đạc dữ liệu ở địa chỉ B7H của XDATA ; vào trong thanh chứa MOV DPTR, #TABLE BASE ; thiét lap DPTR để trõ đến địa chỉ nên MOV A, index MOVC A, @A+DPTR 1.5 TRANG THAI BO XU LY ¡ của bằng tìm kiếm

nap địa chỉ chỉ số trong bằng vào trong thanh chứa

¡ đọc giá trị từ bảng + vao trong thanh chứa

Trang 18

“Thiết kế hộ thống với họ 8051

Lo | Ác | ro | rst [aso [ov [usr J wy 'Cany Fig

AC ‘Aasiiary Cary Flag rũ General Purpose Flag

RS1 Register Bank Selector 1 MSB of selector RSO Register Bank Selector 0 LSB of selector ov ‘Overton Flag

USR UserDefnsbleFlag P ‘Accumulator Paty Flag

Bing 12

Processor status word ~ Bit addressable: tif trang th ea b) xitI¥ ~ dink dja chi bit Carry flag: of nha +

Auxiliary carry iag: cỡ nhớ phụ General purpose flag: ob da mye dich,

Register bank selector 1 MSB of selector: bit 1 Iya chon dai thanh ghỉ Bịt có ý nghĩa lớn nhất Register bank selector 0, LSB of selector: bit 0 Iya chon dai thanh ghi Bit e6 ý nghìa thấp nhất, Overflow flag: cờ tràn

‘User definable flag: cb do ngubi sit dung dinh nghĩa Accumulator parity Mag: et chin 18 cho thank chứa

1.6 ĐIỀU KHIỂN CẤP ĐIỆN

Các phiên bản CHMOS của 8051 được nổi bật nhờ vào 2 chế độ tiết kiệm nguồn cấp điện, hai chế độ này có thể được kích hoạt bằng phản mềm: chế độ nghi (idle mode) và chế độ giảm cấp điện hay giãm công suất (power-down mode) Các chế độ này được truy cập thông qua thanh ghỉ SFR có tên là điều khiển cấp điện PCON (power control) được trình bày ở bảng 1.3

Pewnr ControlReglster (PCON) NọtBlt Addrassabis

EA : SMOO _ Serial baud rate generator Reserved [_: | - I swr | œo [| sụ | mg ] made, SMOD=1 the baud rete of he UART ls doubed : Resewed

- GF Reserved

Gonaral Purpose fag GFO GoneralPwponatag

OWN Power Down ag Setting this bt causes activation of power down mode, OLE le fap Seg his bt causes actvaton of ile mode

Bang 13

Power control register (PCON) ~ Not bit addressable: thanh ghỉ điều khiến cấp điện (PCON) ~ không định a chi bit

Serial baud rate generator mode If SMOD = 1 the baud rate of the UART is doubled: ché dp tgo te dp baud truyền nối tiếp, Nếu SMOD = 1 tốc độ baud của UARMT được nhân ?,

Reserved: dy tra,

General purpose fag: &b da mye Ach

Power down flag Setting this bit causes acti nay bing 1 98 kich hoạt chế độ giảm cấp điện

Tae ne Seti hl bit uses activation of te mode: ot ag Vite tie lậpht này ằng sẽ kính bo chế độ ngh,

Trang 19

Chuang 1: Tmt phần cũng họ 8051 siW°

Chế độ nghĩ được kích hoạt bằng cách thiết lập bit IDLE bằng 1 Chế độ nghĩ làm dừng mọi vite thực thí chương trình Các nội dung của RAM bên trong được bảo toàn và mach dao động tiếp tye hoạt động nhưng xung clock bj khéa không đến được CPU Các bộ định thời và UART tiếp tục thực biện bình thường chức năng của chúng,

Ghế độ nghĩ được kết thúc bằng cách kích hoạt một ngất bất kỳ Khi việc thực thị thường trình phục vụ ngét ISR (interrupt service routine) hoàn tất, việc thực thi chương trình sẽ tiếp tục từ lệnh theo sau lệnh thiết lập bit IDLE bing 1

“Chế độ giảm cấp điện được kích hoạt bằng cách thiết lập bit PDWN bằng 1 Trong chế độ này "mạch dao dong trén chip bị đừng Như vậy, các bộ định thời và UART cũng như việc thực thỉ phần "mềm được tạm ngưng Miễn là có một điện ép tối thiểu 2 V đặt vào chịp (giả sử chịp được cấp điện 5 V), các nội dung của RAM bên trong sẽ được bảo toàn

Cách duy nhất để buộc bộ vi điều khiển ra khôi chế độ giảm công suất là áp đặt việc thiết lập Tại (rese) bộ vi điều khiển này khi cấp điện

Bit chế độ nối tiếp SMOD (serial mode) e6 thé dược sử dụng để nhân đôi các tốc độ baud của port ni tip (serial por), tốc độ baud này được tạo ra bởi tốc độ tran của bộ định thời 1 hoặc tấn số của mạch dao động Việc thiết lập bit SMOD bằng 1 làm tăng gấp đôi tốc độ baud cia UART khí UART hoạt động ở chế độ 1, 2 hoặc 8 Khi bộ định thời 2 được sử dụng đổ tạo ra tốc độ baud, giá trị của SMOD khong ảnh hưởng đến UART

1-7 NGẮT TRÊN 8051

Bộ vì điểu khiển cơ bản 8051 hỗ trợ 5 nguồn ngất (bay 5 nguyên nhân ngất): 2 ngất ngoài, 2 ngất của bộ định thời/đếm và một ngất do nhập/suất nối tiếp byte Các nguồn ngất này buộc bộ vi điều khiển định hướng đến một trong õ vị trí nhớ trong phản thấp nhất của không gian địa chỉ CODE, gọi là 5 vector ngất (các ngất do nhập nổi tiếp và xuất nối tiếp sử dụng chung một vector ngất) Thường trình phục vụ ngất ISR phải thường trú tại các vector ngất này hoặc phải được rõ "nhánh từ đây, Bản đỗ vector ngất cho 8051/8052 được trình bày ở bảng 14 [interrupt Source vector Address ] Power On Reset ‘000 Extomal interrupt 0 90030 Timer 0 Overfow 0008H External Interrupt 1 ‘0013H “Timer 1 Overtiow ‘001BH ‘Serial RecelverTransmit | 0023H Timer 2 Overlow 0028H Bang 14 Interrupt source: ngutn ngất; voetor addrose: địa chỉ của vector Power on reset: reset Khi ofp điện

External interrupt 0,1: ngất ngoài 0, 1

‘Timer 0 (1, 2) overflow: net do tran bộ định thời 0 (1,2) Sorial receive/transmit: ngit do thu/phét nối tiếp

Trang 20

“Thiết kế hệ thống với họ 8051

1.7.1 Thanh ghỉ ưu tiên ngất

XMỗi nguồn ngắt có thể được gần riêng rẻ một trong 2 mức uu tién ngất bằng cách thay đổi giá trị của SFR ưu tiên ngất IP (interrupt priority) Néu bit tương ứng với một nguồn ngất trong thanh ghỉ này được thiết lập bằng 1, nguồn ngất này sẽ có mức ưu tiên cao Tương tự, nếu bit tương ứng được xóa về 0, nguồn ngất sẽ có mức ưu tiên thấp và phải chịu bị ngất bởi bất kỳ ngất nào có mức ưu tiên cao Hai mức ưu tiên dường như là ít, hãy kiên nhẫn, ta sẽ để cập đến cách thức tăng số mức ưu tiên ngất như ta muốn Bảng 1õ trình bày thanh ghi IP va việc sấp xếp các bịt của thanh ghỉ này Luu ý rằng thanh ghỉ này là thanh gh định địa chỉ bit,

Inemupt ter UP) - Bt Addressable

L—L: ¡m ] Lm [ext | mo [0]

Reserved

5 Pt2 Reserved Timer 2 overow nterupt prion eve!

Ps Serial receive and transmit complete interrupt prioty PT Pxt Timer 4 overtiow inarrup pty External interrupt 1 priory

PTO Timer 0 overtow interrupt priory PXO ——_Extomal interrupt 0 priory

Băng Lõ

Interrupt priority registor (IP) ~ Bit addressable: thanh ghi ws tién ngat (IP) ~ định địa chỉ bí Reserved: dy tr

‘Timer 2 (1, 0) overflow interrupt priority level: me wu tidn của ngất do trần bộ định thời 2 (1, 0)

Serial receive and transmit complete intorrupt priority: mie wy tién eda ngất do hoàn tất thu và phát nối tiếp

External interrupt 1 (0) priority: mie wu titm của ngất ngoài 1 (0) 1.7.2 Thanh ghỉ eho phép ngắt

“Tất cả các ngất đêu được cho phép hoặc bị chận (không cho phép) bằng cách cho bằng 1 hoặc xóa vẻ 0 "bit cho pháp tất cả" EA (enable all) của thanh ghỉ eho phép ngắt TE (interrupt enable register)

‘Timg nguồn ngất có thể được cho phép hoặc không cho phép riêng biệt ở bất kỳ thời điểm nao bởi phần mm bằng cách thay đổi giá trị của bit cho phép tương ứng trong SFR IE,

Bảng 16 trình bày thanh ghi IE và cách sắp xếp các bit của thanh ghỉ này Cũng giống như thanh ghỉ ÏP, thanh ghi IB là thanh ghỉ định địa chỉ bit emet le Bagktc()-B5Ademcoae Eratie Flag Sree i enable BL TEA=O, no lorupls ‘xe alowed : served

Ev ‘Taner ovetow inteupt enable

es em ‘Seat recsive and vansmit complete nar enable ‘Timer overfow etemupt enable ext Extemalinterupt 1 enable

ET0 EXO ‘Timer 0 overtow eterupt enable ——_Extemalintarupt 0 enable

Trang 21

Chung 1: Tom tt phần công hạ 8061 u 8P

Interrupt enable register (IE) ~ Bit addressable: thank ghi cho phép ngất (IE) ~ định địa chỉ bit

Bnable flag If EA = 1, each interrupt can be enabled via its enable bit If BA » 0, no interrupts are allowed: cho phép Néu EA = 1, mbi ngit 6 thé duye cho phép thông qua bit cho phép tương ứng Nếu BẢ » 0, “không có ngất nào được cho phép,

‘Timer 2, 1,0 overflow intecrupt enable: cho phép ngất do trần bộ định thải, 1, 0 External 1,0 interrupt enable: cho phép nat ngoai 1, 0

Serial receive and transmit completo intorrupt enable: cho phép ngất đo hoàn tất thủ và phát nối tiếp 1.7.8 Sự trễ của ngất

8051 lấy mẫu các cờ ngất một lần cho mỗi chu kỳ bộ xử lý để xác định xem có ngất nào còn tôn tại không Một ngất được yêu cấu bằng cách xác lập tín hiệu thích hợp đối với lõi của bộ vì điều khiến để được nhận biết trong chu kỳ lấy mẫu tiếp theo Như vậy, thời gian giữa lúc một "a8ất được yêu câu và lúc ngất này được nhận biết bởi bộ vi điều khiển là một chu kỳ lệnh Vào lúc này phần cứng sẽ tạo ra một lời gọi đến thường trình phục vụ ngất trong bảng vector ngất, việc này mất hai chủ kỳ Vậy thì toàn bộ quá trình chiếm tất cả 3 chủ kỹ Dưới các điều kiện lý tưởng (ở đồ sẽ không có gì ngăn chận lời gọi ngất) và không có lệnh nào đang thực thí, một ngất sẽ được đấp ứng trong 3 chu kỹ lệnh Thời gian đáp ứng này là tuyệt vời và cung cấp cho người sử dụng, thời gian đáp ứng rất nhanh đổi với các sự kiện của hệ thống

“Chắc hẳn sẽ có nhiều lên mà một ngất không được đáp ứng trong vòng 3 chu kỳ như đã để cập 4 tren, Quan trong nhất trong những lần này là khi một ngất có mức ưu tiên bằng hoặc cao hơn dang được phục vụ Trong trường hợp này, độ trễ để phục vụ cho ngất đang treo (đang tẫn tại chưa phục vụ) phụ thuộc hoàn toàn vào ISR đang được thực thi

Mot tình huống khác, trong đó độ trễ sẽ nhiều hơn 8 chủ kỳ, sẽ xuất hiện là khi bộ ví điều khiển đang thực thì một lệnh nhiều chu kỳ và phát hiện một ngất đang treo trong thời gian thực thi lệnh này Ngất dang treo sẽ không được phục vụ cho đến khi việc thực thi lệnh hiện hành được hoàn tất Trường hợp này sẽ cộng thêm tối thiểu một chu ky vào độ trễ (giả định rằng một lệnh hai chu kỳ chẳng hạn như MOVX đang được thực thỉ) cho đến tối đa 2 chu kỳ (giả định ngắc được phát biện sau chu kỳ thứ nhất của lệnh MUL) Điều kiện cực đại cho ta độ trỗ trong trường hợp xấu nhất là 6 chu kỹ lệnh (8 chu ky do bản thân kiến trúc và 3 ch kỷ do phải hoàn tất việc thực thí lệnh) khi một ngất đang treo không bị chận bởi ngất hiện đang được phục vụ

“Trường hợp sau cùng trong đó một ngất sẽ không được định hướng đến bằng vector ngất trong 3 chủ kỳ là khi ngất được nhận biết trong thời gian ghỉ vào IE, IP và trong thời gian thực thí lệnh quay về từ thường trình phục vụ ngất RETT (return from interrupt) Digu này nhằm tránh cho các điều kiện thời gian thực rất khác thường không xuất hiện một cách không mong muốn trong hộ thống của ta

17⁄4 Tín hiệu ngất ngoài

8051 hỗ trợ hai tín hiêu ngất ngoài Các ngõ vào này cho phép các thiết bình kiện phẩn cứng bên ngoài yêu cẩu ngất và do vậy yêu cẩu một số địch vụ từ 8051 Các ngất ngoài trên 8051 được gây ra bởi mức logic thấp trên chân ngất (P32 cho ngất ngoài 0 và P3.3 cho ngất ngoài 1) (kích khởi mức) hoặc bởi một chuyển trang thái từ mức cao xuống mức thấp ở chân ngất (kích khởi cạnh) Chế độ ngất đích khởi mức hoạc kích khởi cạnh) được chọn bằng cách thay đổi bit kiểu ngất TTX (interrupt type) tương ứng với ngất trong thanh ghi điều khiển bộ định thời TCON (timer control) Bố trí của thanh ghỉ TCON được trình bây ở bằng 17

‘Trong chế độ mức, ngắt được tạo ra bất kỳ lúc nào khi bộ vi điểu khiển lấy mẫu tin hiệu ngõ vào và thấy bằng 0 Sau khi mức thấp được phát hiện, mức thấp này phải được duy trì tối thiểu

Trang 22

Be Thiế lế bệ thing 0b 8061

một chu kỳ bộ xử lý (12 chu kỳ mạch dao động tạo xung clock), vi bộ vi điểu khiển lấy mẫu tín hiệu ngõ vào một lẫn cho mỗi chu kỳ lệnh

‘Timer Control Ragister (TCON) - Bit Addressable

Coe Tato Trot TF the interuptsorvic routine “Tver overfow fag, Set whan timer 1 overiaws, Cleared by processor upon vediring to eo ro]

TR Timer conto bi If TRI=1, timer 1 runs HTR=0, timer + stops

TFO Timer the interrupt service rutin, O overfow fag Sat when tmer 0 ovectows Cieaed by processor upon wectring to TRO Tier O contol bt 1 TRO=1, Umer O runs TRO, timer 0 stops

les by haréware when te interupt is serviced Exeralinorupt 1 edge fag Set when a vali fling edge is dotacted at pin P22 Cleared m Intern 19, ntemupt is tiagered by alow type contol bit #1T1=1,Intemupt logic evolen P343 1 is Wiggered by a faling edge on P33, I veo External nterupt 0 edge fag Set when a valid foling a0ge Is detected at pin P22 Cleared by hardware win the interup is serviced

mo leterupt Töe0,nlemupt 0 type control bit I ITO=t,intomupt Os iggsre 0i iggored by a ow logic level on P3.2 by íaling sóge on P32 Bảng L7

‘Timer Control Register (TCON) Bít Addresable: thanh gbi điều khiến bộ định thời (TCON) = định địa hi bí

‘Timer 1 overflow flag Set when timer 1 overflows Cleared by processor upon vectoring to the interrupt service routine: C2 trân hộ định thời 1 Được thiết lập bằng 1 khi bộ định thôi 1 tràn Cờ này được xóa bổi vi điều khiến khi bộ vi điều khiến định hướng đến thường trình phục vụ ngất ‘Timer 1 control bit, IFTRA = 1, timer 1 nuns TRI = 0, timer 1 s2ps bit điểu khiển bộ định thời 1 Nếo ‘TRI = 1, bộ định thời 1 hoạt động Nấu TRI <0, bộ định thot 1 dng

‘Timer 0 overflow flag Set when timer 0 overflows Cleared by procestor upon vectoring to the interrupt service routine: cb tran bp dish tho 0, Bue hi ập bằng 1 kh bộ định thôi 0 tran Ca nay dae xb hd BG Y1 điều khiển kh bộ vì điều khiển định hướng đến thường trình phục vụ ngắt

hBer 0 contel bịt TP TRO = 1, tre 0 rons, TFTRƠ =Ĩ, timer Ư siep bít điều kiến bộ định thời 0 Nếu “TRO =1, bộ định thời 0 hoạt động Nếu TR0 0, bộ định thời 0 đừng

External interupt 1 edge flag Set when a valid falling edge is detected at pin P93, Cleared by hardware "ben he intrrupt is erficl: cờ cạnh của ngất ngoài 1 Buy thi8t lap bing 1 khi mot ean xuống (chuyển tiếp trạng thái từ 1 xuống 0) hợp lệ được phát hiện ở chân P33 Dược xóa bồi phẩn cứng khi ngất được phục ve

{oterropt 1 type ontzl bit IF = 1, interrupt is triggered bya falling édge on P23 IF TTY = 0, inorrapt 1s triggered by a low logic level on P34: ít điều khiến kiểu cơ ngất ngồi 1 N6o TF1 = 1, neat mgoai 1 ‘aye kích bởi cạnh xuống chân P213,Nếu TP1 = 0, ngất nguài 1 được kích bôi mức logic thấp chân P38 External interrupt 0 edge flag Sot when a valid falling edge is detected at pin P32 Cleared by hardware hen the interrupt is serviced: c& can của ngất ngoài 0 Được thiết lập bằng 1 khi một cạnh xuống (chuyển tiếp trạng thái từ 1 xuống 0) hợp lệ được phát hiện ở chân P22, Được xóa bi phần cứng khi ngất được phực Interrupt 0 type contro it 170 = 1, interrupt Oi triggered by a falling edge'on P3.2, I¢1TO = 0, interrupt 0 i eiggerod by alow logic level on P42: bít điều khiển kế cổa ngất ngoài 0 Nếu TP0 « 1, ngấ ngồi 0 được kích bồi cạnh xuống ở chân P92 Név TPO = 0, ngất ngoài 0 được kích bồi ma loge tp 9 chân B32

Ở chế độ cạnh, ngất được tạo ra khi một chuyển tiếp từ 1 xuống 0 được phát hiện trong những

ắn lấy mẫu liên tiếp Do vậy, trạng thái 0 của ngô vào phải được duy trì tối thiểu một chu kỳ bộ xử lý để đảm bảo trạng thái này được lấy mẫu

Trang 23

“Chương 1: Tôm tất phần cứng họ 8051

1.8 BỘ ĐỊNH THỜUĐẾM

8051 chuẩn có hai bộ định thờ/đếm 16-bit (các thành viên khác của họ 8051 có số lượng thay đổi, Mỗi bộ định thờƯđếm có thể hoạt động như là một bộ định thai hoạt động tự do (trong trường hợp này chúng đếm số chu kỳ bộ xử lý) hoặc có thể được sử dụng để đếm số cạnh xuống của tín hiệu đặt vào chân LƠ tương ứng với chúng (T0 hoặc TU) Khi được sử dụng làm bộ đếm, tín hiệu ngõ vào phải có tấn số bằng hoặe thấp hơn tản số chủ kỳ lệnh chia cho 2 (nghĩa là tân số mach dao động chia cho 24) vi tin hiệu đến được lấy mẫu ở mỗi chu kỳ lệnh và bộ đếm được tăng chỉ khi một chuyển tiếp 1 -> 0 được phát hiện (điều này sẽ cần đến 2 mẫu) Nếu muốn, các bộ định thờ/đếm có thể tạo ra một ngất mẫm khi chúng trần

SFR điều khiển bộ định thời TCON (timer control) dupe sit dung dé khởi động hoặc đừng các bộ định thời cũng như lưa giữ các cờ tràn của các bộ định thai, TOON SFR được mô tả chỉ tiết ở' bảng 17, Các bộ định thai/dém được khởi động hoặc được dừng bằng eéch thay đổi các bit hoạt động của bộ định thời (timer run bit) TRO va TRI trong thanh ghỉ TOON Phén mềm có thể ngân chận hoạt động của cả hai bộ định thời cũng như khởi động lại các bộ định thời bằng cách đơn thuần thay đối bit TRx trong thanh ghi TCON Thanh ghi TCON cũng chứa các cờ tràn của các bộ định thời Khi các bộ định thời tràn, chúng thiết lap bing 1 các cờ tương ứng (TFO hoặc TE1) trong thanh ghi này Khi bộ vi điều khiển phát hiện một chuyển tiếp 0 - 1 trong cờ, một ngất sẽ xuất hiện nếu được cho phép Ta cẩn lưu ý ring phần mêm có thể thiết lập bằng 1 hoặc xóa về 0 các cờ này bất kỳ lúc nào Do vậy, một ngất có thể được cho phép hoặc bị ngăn chân (không cho phép) bởi phần mềm

“Các bộ định thời được cấu hình bằng cách thay đổi giá trị trong SER chế độ bộ định thời (timer mode) Bing cách thay đổi TMOD, phan mém có thể điều khiển chế độ của cả hai bộ định thời cũng như nguồn tín hiệu mà chúng sit dung để dém (tin hiệu ở chân ƯO của chứng hoặc các chủ kỳ bộ xử lý) 4 bit cao của TMOD điều khiển hoạt động của bộ định thời 1 và 4 bít thấp điều khiển hoạt động của bộ định thời 0 Bố trí của thanh ghỉ TMOD được trình bày ở bảng 1.8,

‘Timer Mode Reglster(TMOD) Nọt BÍ Addressable

care [ot “Tier One [om | mi [ cae | oF |i] Taner Zee wo GATE whenever Test WATE =1, mor wlan ony whan TRA and WT H GATE=O, timer x wl un on “Timer made selec IfCIT=1, timer xruns in counter mode takings input fom Ti pn (C70, timer x uns timer mode takings input om te eysiem cock

mt Mode seoctor bit 1 MSB of selector Mô Mode selector bit 0 LS8 o selectr Bing 18 ‘Timer mode register (TMOD) = Not bit addressable: thanh ghi chế độ bộ định thôi (PMOD) ~ không định địa chi bit GATE = 1: nấu GATE = 1, bộ định thị hoạt động mỗi khi TRx « 1

‘Timer mode select If C/T = 1, timer x runs in counter mode taking ite input from Tx pin, IF C/T = 0, timer x runs in timer mode taking ils input from the systom clock: chon chế độ bộ định thời, Nếu CT = 1, bộ định thời x hoạt động ở chế độ bộ dém véi tin hitu ngd vao lay tt chén Tx Néu C/T = 0, bp dinh thai x hoat dng

ở chế độ bộ định thồi vớ tín hiệu ngỡ vào lấy từ xung clock của hệ thống “Mode selector bit 1 MSB of selector: bit 1 chọn chế độ Bị có ý nghĩa lớn nhất

‘Mode selector it 0, LSB of selector: bit 0 chon chế độ Bi có ý nghĩa nhỏ nhất

, timer x will run only when Ti = 1 and TNTx = 1 1T GATE = 0, timer x will run wvhanever TRx chỉ boạt động khi TRx = 1 và INTx = 1 Nếu GATE = 0, bộ định thời x sẽ

Trang 24

' ‹ “Thiết kế hộ thống với họ 8061

Nguôn tín hiệu cho bộ định thời được cấu hình bằng cách thay đổi bit C/T trong thanh gỉ 'TMOD Việc thiết lập bit này bằng 1 sẽ buộc bộ định thời đếm số xung trên chân ƯO được gan cho bộ định thời Việc thiết lập bit nay bằng O sẽ buộc bộ định thời/đếm đấm số chu kỳ bộ xử lý, “Khi một bộ định thời bị buộc phải đếm số chu kỳ bộ xử lý, bộ định thời có thể thực hiện điều này dưới sự điều khiển của phần cứng hoặc phản mễm Khi muốn điều khiển bằng phẩn mm ta thiết lập bữt GATE của TMOD bằng Ø, Trong trường hợp này bộ định thải sẽ đếm bất kỳ lúc nào khi bi: “TRx của bộ định thời trong thanh ghỉ TCON bằng 1 Trong chế độ điều khiển bằng phần cứng, cả bịt TRx lẫn chân INTx trén chip phải ở mức điện áp cao để cho phép bộ định thời đếm Khi mức thấp được phát hiện ở chân INTx, bộ định thời sẽ dừng Điều này thường được sử dụng để đo đội tông xung của các tín hiệu trên chân [NTx nếu ta không quan tâm đến việc phải từ bỗ nguồn ngất "ngoài từ tín hiệu đến chân này,

1.8.1 Chế độ 0 và chế độ 1 của bộ định thời

Các bộ định thời/đếm eó thể hoạt động ở một trong 4 chế độ đưới sự điều khiển của phần mềm Trong chế độ 0, bộ định thời/đếm sẽ hoạt động như là bộ dém 13-bit Khi bộ đếm tran, bit TEO hoặc bi TF1 (cờ tràn bộ định thời) trong SER điều khiển bộ định thời TCON được thiết lập bằng 1, Điều này sẽ gây ra một ngất do bộ định thời tương ứng (giả định ngắt này được phép) Cả "bộ định thời 0 lẫn bộ định thời 1 đều hoạt động giống nhau ở chế độ 0 Hoạt động của các bộ định thời ở chế độ 1 cũng giống như ở chế độ 0 ngoại trừ việc cã 16 bit của bộ định thời đều được sử dụng thay vì chỉ có 18 bít,

1.8.2 Chế độ 3 của bộ định thời

© chế độ 2, bộ định thời được thiết lập thành bộ đốm 8 bit tự động nạp lại mỗi khi diều kiện tràn được phát hiện Byte thấp của bộ định thời (TLO ho§e TL1) được sử dụng làm bộ đếm 8-bit còn byte cao (THO hoặc THỊ) của bộ định thời sẽ lưu giữ giá trị nạp lại cho bộ đếm Khi bộ định thờVđếm trần, giá trị trong THÍx được nạp vào TH và bộ định thời tiếp tục đếm từ giá trị nạp lại Cả hai bộ định thời 0 và bộ định thời 1 đêu hoạt động giống nhau ở chế độ 2 Bộ định thồi 1 thường được sử dụng ở chế độ này để tạo ra các tốc độ baud cho UART

1⁄88 Chế độ 3 của bộ định thời

Ở chế độ 9, bộ định thời 0 trở thành 2 bộ đếm 8-bít được thực hiện trong THO và T0 Bộ đếm được thực hiện trong TL2 sẽ duy trì việc điều khiển tất cả các cờ của bộ định thời 0 nhưng bộ đếm trong THO chuyển đến điểu khiển các cờ trong TCON của bộ định thời 1 Điểu này làm cho bộ định thời 1 không còn khả năng tạo ngất nữa, nhưng bộ định thời này vẫn được sử dụng cho các mục đích khác không yêu cẩu ngất do tràn bộ định thời chẳng hạn như tạo tốc độ baud cho UART hoặc làm bộ định thời/đếm được thăm đò bởi phẩn mềm Điều này hữu dụng khi một ứng dụng phải sử dụng một chế độ của UART yéu cầu việc tạo tốc độ baud từ bộ định thời 1 và đồng thời cing yêu cấu bai bộ định thờiđếm Khi bộ định thai 1 được đặt ở chế độ 3, bộ định thời nay

không hoạt động

L4 Bộ định thời 2

“Nhiễu thành viên của E051, chẳng hạn như 8058, còn có một bộ định tht thi ba trong chip được gọi là bộ định thời 2 Bộ định thời 2 được điều khiển thông qua SFR điều khiến bộ định thời

T2CON ‘T2CON SFR là thanh ghi định địa chỉ bit Sơ đổ bố trí cho ở bảng 1.9 Thông qua T2CON, phẩn mêm có thể cấu hình bộ định thời/đếm 2 hoạt động ở một trong 3 chế do cg ban

Chế độ đầu tiên được gọi là chế độ thu gia (capture) Trong chế độ thu gia, bo định thờy đếm 2

"hoạt động giống như bộ định thời 0 hoặc bộ định thời 1 ở chế độ bộ định thời/đểm 16-bit (ché dO 1),

Trang 25

Chương Rom pn cing i 051 >

r2CON) - Bit Addrossablo

EXF2 Timer 2 extemal flag EXF2is set when afaling edge is detected on T2EX and EXENZ=1 “This causes an inerrupt, the tier 2 interrupts enabled

RCLK Receive clock lag When RCLK=, tho UART (fin mado 1 or) will use the timer 2 ‘overflow frequency for the recalve dock TCLK ‘overflow frequency for the transmit clock ‘Transmit lock lag When TCLKE", the UART (fin mode 1 o 3) will use the mer 2 EXEN2 External enable flag, f EXEN2=1, a capture or reload wl be caused by a fling edge on ‘TREX I EXEN2-0, external avents on TZEX are ignorad TR2 Timer run contro bit TR2=1, the ter wil un IfTR2=0, the tmer wil stop

C72 Timer mode solet I C/T2=1, the timer 2 wil act as an external event counter 2 wil count procassor clock cytes If C/T2=0, timer CPIRL2 —_Caplure/Reload fag CPIRLZ=1, detection of a fling edge on T2EX causes a capture f

EXEN2=1 IF CPIRL2=0, detaction of afaling edge on T2EX ar an overflow causes a timer feload if EXENZ=1

Bing 1.9

‘Timer 2 control register (T2CON) ~ Bit addressable: thanh ghi di6u khiển bộ định thời 2 (T2CON) ~ định ia chi bit,

‘Timer 2 overflow fag Set when timer 2 overflows Will not be set if RCLK = 1 hote TCLK = 1: eb trin của "bộ định thời 2 Được thiết lập bằng 1 khi bộ định thời 2 tràn 8 không được thiết lập bằng 1 nấu RCLK = 1 hhoge TCL

‘Timer 2 external flag, EXF2 is sot when a falling edge is detected on T2EX va EXEN2 = 1 This causes an ‘interrupt, if the timer 2 interrupt is enabled: cd ngoai cia bo dinh thot 2 EXF2 được thiết lập bằng 1 khi có cạnh xuống được phát hiện ở T2EX và EXEN2 = 1 Điều này tạo ra ngét néu ngdt cia bp dinh thai 2 due phép

Receive clock flag When RCLK = 1, the UART (if in mode 1 or 8) will use the timer 2 overflow frequency for the receive clock: ed xung clock thu Khi ROLK = 1, ƯART (nếu ở chế độ 1 hoặc 3) sẽ wit dung tan số trân của bộ định thời 2 làm xung clock thu

‘Transmit clock flag When TCLK = 1, the UART for the transmit clock: cỡ xung clock phát Khi TCL trân của bộ định thời 2 làm xung clock phát

External enable flag If EXEN2 « 1, a capture or reload will be caused by a falling edge on T2EX If EXEN2 = 0, external events on T2EX are ignored: cd cho phép ngoài, Nấu PXEEN2 = 1, một thu giữ hoặc nạp lại sẽ được tạo ra hỏi cạnh xuống trên T9EX Nếu EXEN2 = 0, ede sự kiện bên ngoài được bổ qua

‘Timer run control bit, If TR2 = 1, the timer will run If TR2 = 0, the timer will stop: bit diéu khiém host ong bộ định thời Nếu TR2 = 1, bộ định thời hoạt động Nếu TR2 « 0, bộ định thời đừng

Trang 26

gs Tae eho oh 6051

Chế độ thứ hai của bộ định thời 2 được gọi là chế độ tự nạp lai (auto reload) Trong chế độ nay ta cũng có 2 chúc năng phụ được lựa chọn thông qua bit EXEN2 Khi EXEN2 duge xóa, việc quay tron của bộ định thời 16-bit sẽ tạo ra một ngất và nạp giá trị được thiết lập trong RCAP2H va RCAP2L vào bộ định thời Khi EXEN2 được thiết lập bằng 1, bộ định thời/đếm sẽ phần ứng theo cùng cách đối với việc quay tròn và ngoài ra cũng nạp lại bộ định thời căn cứ vào chuyển trang thái 1 - 0 ở chân TĐEX,

Ở chế độ sau cùng, bộ định thời 2 có thể được sử dụng để tạo ra tốc độ baud cho UARET, Điều này được thực hiện bằng cách thiết lập bằng 1 cho RCLK hoặc TCLXK hoặc cả bai Trong chế độ tạo tốc độ baud, bộ định thời tăng thêm: một ở mỗi chu kỳ mạch dao động khác thay vì tăng thêm một ở mỗi chu kỳ dao động thứ 12 như bộ định thời 0 và bộ định thời 1 thực hiện, nghĩa là tốc độ baud cực đại của UARRT sẽ cao hơn Ngoài ra, toàn bộ 16 bit của bộ định thời được nạp lại từ RCAP2H va RCAP2L méi lần tràn

1.9 UART

8051 of sin UART hoàn toàn sơng cing trên chip UART được cấu hình thong qua SE điều khiển nối tiếp SCON (serial contra) Thanh ghi SCON cho phép người sử dụng chọn chế độ cho UART, cho phép thu va kiém tra trạng thái UART SCON được minh họa ở bằng 1.10

Serial Conrol Regsle (SCON) - Bi Addreseabi

[_swo | sư | se | mA | TH T ng | n J mÒỎỒ] su, “Serial Por Mode Spectier 0 MSE SM1_— Seria Port Mode Specifier 1 LSB,

‘SM2 rot be set uniess a valid stop bt was received In modes Multiprocessor Mode enable In mado 0, tis bit should be 0 In mode 1, if SM2=1, Ri wi 2 and 3 SM2=1, Rl will not be set unless the ninth data bite 4

REN Receive Enable Fig Must he 1 to allow UART to receive data 758 Tho rth data bit that wil be sent in mode 2 and 3

RBB_——_Inmode 0 this bit unused In mode 1 # SM2=0, RE is he stop bit thal was received, n ‘modes 2 and 8 RBB isthe ninth data bit that wae received, m Rt Receive interrupt lag, Must be claared by software Transmit interupt flag Must be cleared by soiware,

Bang 1.10

‘Serial control register (SCON) — Bit addressable: thanh ghỉ điều khiển port nối tiếp ~ định địa chỉ bít Serial port mode specifier 0 MSB: bit 0 chọn chế độ port nối tiếp Bt có ý nghĩa lớn nhất

Sorial port mode speciler 1 LSH: bít 1 chọn chế độ port nối tiếp BÍt có ý nghĩa nhỏ nhất

‘Multiprocessor mode enable In mode 0, this bit should be 0 In mode 1, if SM2 = 1, RI will not be set unless 8 valid stop bit was received In mode 2 and 3 if SM2 = 1, RL will not be set unless the ninth data bit is 1 cbo phép chế độ đa xử lý Trong chế độ 0, bit này sẽ bằng 0 Trung chế độ 1, nếu SM2 = 1, RH sẽ không được thiết lập bằng 1 trừ khi mot bit stop hyp Ip da được nhận Trong chế độ 2 và 3, nếu SM2 =1, RI sé không được thiết lập bằng 1 trừ khi bịt dữ liệu thứ 9 là 1 Receive enable flag Must be 1 to allow UART to receive data: cb cho phép thu Phải bằng 1 để cho phép UART thụ dữ liệu

“The hinth data bít that wil be sent in mode 2 and 8: bi: dữ liệu thứ 9 sẽ được truyền ở chế độ 9 và 3 ‘In mode 0 this bit is unused In mode 1 if SM2 = 0, RBS is the stop bit that was received In made 2 and 3 ‘RAG is the ninth data bit that was received: Trong ché 4 0, bit này không được sử dụng Trong chế độ 1 khi ‘SM2 = 0, RÖ8 là bít stop đã được nhận Trong chế độ 2 và 3, B8 là bit âu liệu thứ 9 đá được nhận ‘Transmit interrupt ag Maot be cleared by softvare: cờ ngất

Trang 27

Chương 1: Toe tt pin cng hy 8051 og

UART có một bộ đệm i:byte cho dữ liệu đến sao cho byte khác có thé dang dua vio UART trước khi byte sau cùng đã được doc Tuy nhiên sau thời gian của một byte, bộ độm sẽ bị ghỉ đè “khi byte đến kế tiếp được hoàn tất Do vậy, phẩn mễm phải có khả năng đáp ứng đối với byte đang đến trong vòng thời gian cla mot byte dạng nổi tiếp Điểu này cũng đúng đổi với dữ liệu cđang xuất ra với giả định được yêu cầu xuất ra liên tiếp

8061 hỗ trợ các khung (frame) chuẩn 10-bit cing như khung 11-bit được thiết kế cho hoạt động truyền thông liên bộ vi điều khiển và chế độ thanh ghi dịch 8-bit tốc độ cao Tốc độ baud thay đổi đối với mọi chế độ ngoại trừ chế độ dịch 8-bit và một trong các chế độ liên bộ vi điều khiển

1.8.1 Chế độ 0 của UART

"Trong chế độ 0, UART hoạt động như là một thanh ghỉ dịch 8-bit, thanh ghỉ này địch (theo nhịp xung loek) dữ liệu vào và ra ở tốc độ baud là 1/12 tằm số của mạch dao động Dữ liệu được truyền đi với bit LSB được truyền trước tiên và đi vào hoặc đi ra khỏi UART thông qua chan RxD Do vậy, chế độ 0 không hỗ trợ truyền song công vì chân RxD được sử dụng cho cả dữ liệu đi vào lân dữ liệu xuất ra còn chan TxD được sử đụng để lặp lại xung clock địch Chế độ này thường hữu dung trong các tình huống mà bộ vi điều khiển được sử đọng để giao điện với một thiết bịlính kiện nối tiếp chẳng hạn như EPPROM và chip nhớ này có khuôn đạng giao dign 8 bit néi tip

Việc truyền (phát) một by‡e bắt đầu khi SBUF SFR là thanh ghí đích của lệnh di chuyển dữ liệu Vào lúe này, 8 bit xuất ra theo nhịp xung cloek và bit TT sẽ được thiết lập bằng 1 khi việc truyền bịt thứ 8 được hoàn tấ Việc nhận (thu) bất đâu khi bít REN của thanh ghỉ SƠƠN được thiết lập bằng 1 Bit RI được thiết lập bằng 1 khi bit thứ 8 đã được nhận vào dưới sự điều, fa mung clock,

1.9.3 Chế độ 1 của UART

“Trong chế độ 1, 8 bít dữ liệu được truyền đi đưới dạng một khung 10-bit: 1 bit start, 8 bịt dữ liệu và 1 bit stop Chế độ này thích bợp với các truyễn thông đến hẳu hết các thiết bjlinh kiện nổi tiếp bao gốm cả các PC Tốc độ baud thay đổi và được điều khiến bởi tốc độ trần của bộ định thời 1 ở chế độ tự nạp lại hoặc, một cách tùy ý bởi bộ định thời 2 trong chế độ tạo tốc độ baud trên 8052 Các ngất do trần nên được võ hiệu (không cho phép) đối với bộ định thời đang được sử dung để tạo tốc độ baud Bit SMOD trong SFR điều khiến cấp điện PCON (power contrdl) có thể được thiết lập bằng 1 để tăng gấp đôi tốc độ baud được thực hiện bởi UART,

ác tín hiệu ngất TT và RI được kích hoạt thỏa hiệp thông qua việc truyền và nhận bít stop Didu nay sẽ cho phép thời gian phẩn mềm để đáp ứng ngắt và nạp cho SBUF byte kế tiếp theo dang liên tiếp trong thời gian truyền khối đữ liệu Lượng thời gian xử lý phụ thuộc vào tốc độ baud đang sử dụng và tẩn số mạch dao động đang điều khiển 8051

“Nếu bộ định thời 1 được dự định sử dựng để tạo ra tốc độ baud mong muốn cho ART, ta có thể tính giá trị nạp lại cho THỊ bằng cách sử đọng phương trình sau:

“THỊ = 256 ~ (K*OscFreg)/(384*BaudRate) K= 1if SMOD = 0

=9 if SMOD =1

Bất kỳ tốc độ baud nào không cho giá trị nạp lại dương nhỏ hon 255 déu không thể được tạo +a bởi 8051 ở tấn số xung clock cho trước Các giá trị nạp lại không phải là số nguyên đễu phải được làm tròn đến số nguyên kế tiếp Thông thường, kết quả của tốc độ baud sẽ khá phù hợp để cho phép hệ thống hoạt động Ước lượng này phải được thực hiện bởi người phát triển hộ thống

Trang 28

gx TH bế bệ hing vt 061

Vay thi, néu ta o6 mét chip 8051 dang sử dụng mạch dao động 9.316 MIHz và muốn tạo ra tốc 49 baud 1a 9600 baud, ta phi di qua các bước sau đây Trước tiên ta đi theo phương trình trên với K-= 1 va sau đồ thử lại với K = 2 Với KK = 1, tử số sẽ là 9216000 và mẫu số sẽ là 3680400 Việc chia hai giá trị này sẽ cho kết quả là 25 Hiển nhiên từ kết qua nay, ta thấy rồng giá trị nạp lại không phải là số nguyên Ta thử đi theo phương trình trên với Eí= ?, tử số sẽ là 18432000 và mẫu số sẽ là 3686400 Phép chia hai giá trị này cho ta kết quả là 5, kết quả này được trừ bớt cho 286 Nhu vay, gid tr nap lai cho THỊ là 251 hoặc OEBH

Đổi với 8052 sử dụng bộ dịnh thời 2 để tạo tốc độ baud, gid trị nạp lại cho RCAPZH và RCAP2L phai được tính toán Một lấn nữa ta phải bất đầu từ tốc độ baud mong muốn và giải phương trình sau đầy để nhận được các giá trị nạp lại

[RCAP2H, RCAP2L] = 65536 ~ OseF req/(32*BaudRate)

Gia định rằng một lẩn nữa ta cá một hệ thống host dong 8 tin s6 mach dao động là 9.216 MHz vA ta muốn có tốc độ baud là 9600 baud Để có được didu này, kết qua 16 bit của phương trình ở trên phải là các số dương và “gdm nguyên” Ta kết thúc việc chia 9216000 cho 307200 và nhận được kết quả trưng gian là 30 Ta trừ kết quả này cho 65536 và nhận dược 65506 hoặc FE2H Kế đến ta sẽ sử dụng giá trị nạp lại là 255 hoặc FFH cho RCAP2H và giá trị nạp lại là 226 hoặc E2H cho RCAP2L

1.93 Ché độ 2 của UART

Chế độ 2 của UART làm cho khung 11-bit được truyền di: 1 bit start, 8 bít dữ liệu, bit thứ 9 thoặc stick bit) vA 1 bit stop Giá tị của bít thứ Ø được xác định bởi bịt T8 của SCON khi truyền (phát) và bit RBS cla SCON khi nhận (thu) Điển hình, bit thứ 9 được sử dụng để truyền thông lien bộ xử lý Dể tạo thuận tiện cho điểu này, ƯART có thể được khỏi động để tạo một ngất do nhận chỉ khi bit thứ 9 được thiết lập bằng 1 Tinh chat nay được tham chiếu bởi Intel như là tính chất truyén thông liên bộ sử lý và được điều khiển bởi bit SM2 trong thanh ghi SCON Khi SM2 được cho bằng 1, bit dữ liệu thứ 9 phải được cho bằng 1 để UART gáy ra một ngất Khi bit này bị xóa về 0, UART sẽ tạo ra một ngất đo nhận mỗi khi một khung 11-bit hợp lệ được nhận vào

Bit thi 9 (stick bit) được sử dụng để làm giảm lượng ngất không cẩn thiết trong thời gian truyền thông nổi tiếp ngang qua một bus nối tiếp nhiều nhánh rẽ (mulddrop serial bus) Trong những tình huống như vậy, trước tiên một byte địa chỉ hoặc byte lệnh được truyền với bit thứ 9 được thiết lập bằng 1 Tất cả các bộ vi điều khiển trên bus đêu bị ngất và kiểm tra byte đến để xem có phải chúng có cắn nhận thông điệp (message) hay không Nếu phải, bit SM2 được xóa về 0 để loại bỏ sự bạn chế của việc có bít thứ 9 được thiết lập bằng 1 và phản còn lại của thông điệp được nhận Ngược lại bit SM2 vẫn duy trì bằng 1 và việc xử lý bình thường sẽ tiếp tục mà không "bị quấy rồi bởi chuỗi ngất đo đồng byte đến

“Tốc độ baud cho chế độ 2 là 1/64 tản số mạch dao động khi bit SMOD bj xóa vẻ 0 và tốc độ baud sẽ bằng 1⁄32 tân số mạch dao động khi bí: SMOD được thiết lập bằng 1 Do vậy, các tốc độ baud rit cao (trén 354 Kbaud) có thể nhận được bằng cách sử dụng chế độ này và tấn số mạch dao “động khá phể biến là 11.069 MHz Chế độ 3 cia UART chính xác giống chế độ 2 về mặt khuôn dang dữ liệu và việc sử dụng bịt thứ 9 Tuy nhiên các tốc độ baud trong chế độ 3 là.có sẵn và được điêu khiển thao cùng cách như trong chế độ 1

1.10 CÁC NGOẠI VI KHÁC

„ Nhiễu biến thể của 8051 có thêm nhiễu linh kiện khác được tích hợp trên chip dé lam cho chip trở thành một sản phẩm thu hút hơn cho các ứng dụng nhúng Một số linh kiện ngoại vi phổ biến được đễ cập dưới day

Trang 29

Chương 1: Tóm tất phân cứng họ 8051

1.10.1 Pe

Mot dạng mối của truyền thông liên thiết bÿlinh kiện trở nên thông dụng là giao diện liên mach tich hop I°C (inter-integrated eircuit interface) được Philips chế tạo và phổ biến IZC là et da liệu dạng nối tiếp sử dụng bai đường đây (một cho đữ liệu và một cho xung elock) va có thể e6 nhiễu rẽ nhánh cho nhiều thiét bilinh kign khác nhau Mỗi thiết bịđinh kiện có một ID riêng, trên liên kết mà thiết bifinh kiện này sẽ đáp ứng, việc truyễn dữ liệu là hai chiểu và bus có thể só nhiều hơn một mmaster (thiết binh kiện chủ) Philips là hãng tiên phong trong việc thêm vào

8051 khả năng lẺC Về phản cứng, hai chân dược lấy từ port 1 cho giao diện TC, một tập các SFR

được thêm vào để điều khiển 1°C va hỗ trợ việc thực biện giao thức của giao diện này, Các chỉ tiết về giao dign 1°C o6 thé tim thấy trong sách tra cứu kỹ thuật họ 8051 của Philips

1.10.2 Bộ biến đối tương tự-số

Các bộ biến đổi tương tự số A/D (analog to digital convorter) là eác linh kiện chỉ có trên một số thành viên của họ 8051 nhưng cũng khá phổ biến và đáng cho ta để cập đến trong chương tóm tất phần cứng này Các bộ biến đổi A/D thường được điều khiển thông qua mật thanh ghỉ chủ nào đồ (ta hay gọi là ADCON), thanh ghỉ này được gần cho một vị trí còn trống nào đó trong đoạn nhớ đành cho các SFR Thanh ghỉ ADCON cho phép người sử dựng chọn lựa kênh edn được biến đổi -AUD, bất đâu một biến đổi mới và kiểm tra trạng thái của lần biến đổi hiện tại

Các bộ biến đổi A/D điển hình cẩn 40 chủ kỳ lệnh hoặc ít hơn để hoàn tất việc biến đổi và chứng được cấu hình để tạo ra ngất vào lúc hoàn tất việe biến đổi, điều này sẽ làm cho bộ vi điều khiển định hướng đến một vector ngất cụ thể dành cho việc biến đổi A/D Thông thường, khuyết điểm của việc có bộ biến đối A/D Ia bộ này yêu cẩu bộ vỉ điều khiển tích cực thay vì di vào chế độ nghỉ để chờ ngất do hoàn tất việc biến đổi Kết quả của việc biến đối được đọc từ một SFR khác "hoặc một cặp SFR, phụ thuộc vào độ phân giải của bộ biến đổi

1.10.3 BO dinh thai watchdog

“Bộ định thời watchdog có sẵn trên nhóm mỡ rộng của các thành viên họ 8051 Mục đích của bộ định thời watehdog là thiết lập lại reset) bộ vi điều khiển nếu bộ định thời không được cung cấp một trình tự thao tác cụ thể trong một khoảng thời gian xác định Điễu này ngân ngừa việc nạp lại watchdog một cách trùng khớp ngấu nhiên bởi phần mêm lang thang

Để sử dụng một watchdog, vige định thời trong phần mềm phải được am hiểu khá dây đủ bai người thiết kế để xác định nơi nào các lời gọi thường trình cung cấp cẩn được đặt vào trong hệ thống Nếu watehdog được cung cấp quá nhiễu, ta sẽ hoang phí một lượng khả năng xử lý nào đó ‘Tuy nhiên, néu watchdog không được cung cấp dây di, watchdog có thể thiết lập lại (rsset) hệ thống mặc dù phần mém vin đang hoạt động như mong muốn

"Trong họ 8051, watchdog thường được thực hiện dưới dạng một bộ định thời khác trén chip, bộ định thời này lập tỉ lê giảm tần số mạch dao động hộ thống và kế đến đếm xung clock đã được chia t lệ Khi bộ định thời quay vòng, hệ thống thiết lập lại từ đâu (reseb Watehdog có thể được cấu hình đối với tốc độ quay vòng và thường có thể được sử dụng làm hộ định thời khác mặc dù cđây là bộ định thời có độ phân giải thấp

111 'NHẮC THIẾT KẾ

Ho vi diéu khiển 8051 bao gồm rất nhiều thành viên cùng với một tắm rộng các thiết binh kiện ngoại vi và các đặc tính, thích hợp với một lượng lớn các ứng dụng Với vô số các lựa chon như vậy, khó khăn lớn nhất trong việc sử dụng bộ vi điều khiến này có lẽ là việc lựa chọn thành

Trang 30

@» The HEN eg ih 6081

viên thích hợp, Khi không gian bo mạch và giá thành là điều cẩn quan tâm, điều cần thiết là có được số linh kiện càng ít (nếu có thể) càng tốt, Ho 8051 cung cấp nhiều tùy chọn với các bộ vi điều khiển có đến 612 byte RAM trên chip va đến 82 Kbyte EPROM trén chip Thông thường, ta có thể thực hiện một hộ thống bằng cách chỉ sử dựng RAM và PPROM bên trong chip ho 8051 Các wu điểm có ý nghĩa của diều này là số linh kiện Ngay từ đầu, ta loại bồ được nhu cấu cẩn một EPROM (linh kiện này điển hình có 28 chân), một mạch chốt địa chỉ cho 8 bit thấp của bus địa chi (inh kiện này điển hình có 20 chân) và mot RAM ngoài ình kiện này điển hình cing có 28 chân) Cùng với việc tiết kiệm các linh kiện vừa nêu, ta đã tăng khả năng nhập/xuất (IO) của 8051 thêm 16 chân (port 2 và port 0) Các chân này có thể được sử dụng để giao điện 8051 với các thiết bình kiện khác một cách dễ đàng mà không cẩn có thêm một giao điên bus nào khác, giao điên bus này thường kéo theo một mạch giải mã và có thể cân nhiễu mạch chốt dữ liệu nữa, Khi eác chân O phụ không còn được cẩn đến và chương trình ứng dung sẽ nhỗ một cách thích hợp, phiên bản 28 chân của 8051 có thể được sử dụng để tiết kiệm thêm nữa không gian bo mạch "huyết điểm cho các tiếp cận giống như vậy là không có đũ không gian bộ nhớ chương trình hoặc RAM cho các ứng dụng lớn hơn Khi điểu này xảy ra, người thiết kế có ít lựa chọn trừ khi có lối 8051 đẩy aii va moi chip hỗ trợ được yêu cầu (SRAM, BPROM, v.v.) Nhiễu bộ phận chẳng hạn ahw bộ biến đối A/D, PWM, các mạch kích khởi phần cứng và các bộ định thời có thể được thay thế bằng thành viên hợp lý của họ 8051 và các thường trình điều khiển phần mêm thích hợp sẽ để cập sau

“Tiêu tần công suất trong sản phẩm nhúng (embedded prodoet) thường là mối quan tâm lớn Có thể phần mễm có quá nhiễu việc vặt phải làm đến nỗi bộ ví điều khiển không có nhiều thời gian ở chế độ ngủ hoặc nghỉ Trong các trường hợp này, người thiết kế có tùy chọn hệ thống điện áp thấp (3.6 Ý hoặc thấp hơn) để làm giảm công suất tiêu tán Ngoài ra, nếu có đủ thời gian xử lý dự trữ, người thiết kế có thể xét đến việc làm giảm tân số mạch dao động, điều này sẽ cho ta những lợi ích nhỏ trong tiêu tần công suất

Neu thiết kế phải lựa chọn cẩn thận tấn số mạch dao động đối với các ứng dụng mà các ứng dung này phải truyền thông nổi tiếp ở các tếc độ baud chuẩn (1200, 4800, 9600, 19.2 K v.y ), Rất

có ích nếu ta tạo ra bảng các tốc độ bauở có thể có đối với các thạch anh dễ tìm có sẵn và kế đến

chọn tần số dựa trên các tốc độ baud được yêu cầu, khả năng xử lý cản có và tính dễ tìm kiếm để

mua Khi lựa chọn tấn số mạch dao động lớn hơn 90 MHz, người thiết kế cần phải cẩn thận để đảm bảo rằng bất kỳ linh kiện nào đặt trên bus của 8051 đều có khả năng xoay sở thời gian truy cập sẽ được yêu cẩu bởi lõi của 8061, Điển hình, các linh kiện chẳng hạn như EPROM, RAM đều

só thể dễ dàng thích hợp với các tốc độ truy cập Các mạch chốt địa chỉ, chẳng hạn như 74C278,

cũng có sẩn phiên bản HC có thể hỗ trợ cho mọi tấn số của 8051 Ngoài ra người thiết kế phải để ý rằng khi tần số thạch anh tăng lên, công suất tiêu tán của hệ thống cũng sẽ tăng theo Như đã để cập ở trên, sự thỏa hiệp sẽ phải được xem xét rất cẩn thận đối với các ứng dụng hoạt động

trong thời gian đài bằng các nguồn pin

1.12 VAN DE THỰC BIEN

Sau khí đã chọn được thành viên thích hợp của họ 8061 và các thiết binh kiện ngoại vi cản thiết, vấn để tiếp theo là quyết định bin 48 bộ nhớ cho việc nhập xuất của hệ thống Theo thôi 40en, không gian CODE sẽ bắt dâu ở địa chỉ 0 và sẽ tăng dân trong một khối liên tục Điều này Số thé thay đổi nhưng theo kinh nghiệm, trên thực tế không có nhu câu nào để phải thay đổi Khong gian xhớ XDATA thường được tạo thành từ một kết hợp nào đó của RAM và các thiết Ditinh kin O, Một lần nữa RAM là một khđi nhớ liên tục bất đảu ở địa chỉ 0000H hoặc 8000H “Thường ta hay đặt SRAM ở địa chỉ 0000H và sử dựng địa chỉ A15 để cho phép TRAM cùng với các ấn hiệu RD và WRR được tạo ra bởi bộ vi điều khiển Tiếp cận này cho phép ta có thể sử dạng

Trang 31

“Chương 1: Tôm tất phần cứng họ 8051

vùng RAM lên đến 32 K, dung lượng này thường nhiễu hơn nhu cẩu của một ứng đụng nhúng 'Ngoài ra, 82 K vj trí địa chỉ (cừ 8000H đến FEEFH) có thể dành cho các thiết bình kiện LO bản figoti, Trong đa số trường hợp, số thiết bụlinh kiện l/O hiện điện trong một hệ thống 8051 là thấp và do vậy các đường địa chỉ cao có thể được dẫn đến một mạch giải mã để cưng cấp các tín biệu cho phép đối với các thiết binh kiện I/O Một thí dụ thực hiện lõi nén mot bản đỏ bộ nhớ như vậy cho việc nhập/xuất của hệ thống được trình bày ở hình 1.2 ~ bus nhập/xuất của 051 Như +a thấy, tiếp cận này làm dơn giản phản cứng bằng cách giảm lượng giải mã địa chỉ cắn có để truy cập một thiết bÿinh kiện LO cho trước Ta cũng có thể làm đơn giản phản mềm vì không nhất thiết phải nạp cho nửa thấp của DIPTR khi thực hiện việc nhập/xuất với các thiết bitinh kiện nay

Hình 1.2: Bus ƯO của 8051

(Các truy cập mẫu đến mạch chốt nhập và mạch chốt xuất cho mạch này được trình bày dưới đây

MOV DPTR, #09000H ; thiết lập DPTR trỏ đến mạch chốt nhập MOVXA, @DPIR ; dọc giá trị của mạch chốt

Trang 32

@ “Thiết kế hộ thống với họ 8051

'Ta có thể thấy rằng việc nhập xuất tudn tự sẽ được làm đơn giản bởi kiến trúc được bố trí trong mạch ở trên do bản thân phần mềm không cần phải quan tầm đến nữa thấp của con trỏ dữ liệu DPTR, Lệnh đấu tiên có thể chỉ đơn giản là 'MOV DPH, #090H” vì giá trị của 8 bịt thấp là gì không quan trọng,

1.18 KẾT LUẬN

Trang 33

“Chương 2: Một số thiết kế đơn giấn trên 8051

MỘT SỐ THIẾT KẾ ĐƠN GIẢN TRÊN 8051 3.1 MỞ RONG PORT

Ho vi điều khiển 8051 có 4 port có thể sử dụng làm các port nhập/quất dữ liệu, ngồi các cơng dụng khác như ta đã biết, đó là các port 0, 1, 2 va 8 Port 0 còn được sit dung làm bus dữ liệu/địa chỉ (8 bit dja chỉ thấp tir Ag dén Ar) khi ta sử dụng bộ nhớ ngoài (bộ nhớ chương trình hoặc bộ nhớ dữ liệu) Port # còn được sử dụng làm 8 bit địa chỉ cao (từ As đến Aig) Port 3 có một số chân được sử dụng cho các mục đích đặc biệt Như vậy trong các hệ thống có sử dụng bộ nhớ ngoài cho chương trình hoặc dữ liệu, khi cẩn thêm các ngõ vào và ngõ ra, ta edn phai mé rong port

3.1.1 Mở rộng port xuất

Trang 34

“Thiết kế hệ thống với họ 8051

“Chân C của U2 nối với C8-01 và chân Ở của U3 nối với CS-08 Để các ngõ ra Y6 hoặc Y7 cũa 24LS188 bằng 0 (mức logie tích cực), các đường địa chỉ A15, A14 và A18 phải là 110 hoặc 111 theo thứ tự Khi WE = 0 và Y6 hoặc Y7 bằng 0, ta có CS-01 hoặc CS-02 bằng 1 Ngược lại hai ngõ ra này bằng 0 Do chân € của U2 và U3 tích cực logic 1 nôn khi CS-01 hoặc CS-02 bằng 1, U2 hoặc U8 được chọn Như vậy, dia chi cia U2 là C000H và U3 là E000H Ta xuất dữ liệu ra các ngoại vỉ thông qua các IC U2 và U3 bằng cách sử dựng lệnh MOVX vì các 1C trên được định vị địa chỉ theo kiểu ánh xạ bộ nhớ Ta sử dụng port 0 làm bus dữ liệu và các chân của por 2 làm các chân địa chỉ

cao Khi lệnh MOVX @DPTR, A được thực thi, chan WW của 8051 sẽ ở logic 0

"Đoạn chương trình sau đây sẽ xuất nội dung của ð nhớ 30H ở RAM bên trong ra ngoại vì ghép với U2 và xuất nội dưng của ô nhớ 81H ở RAM bén trong ra ngoại vi ghép với US ‘MOV A, 30H 'MOV DPTR, #00000H 'MOVX @DPTR, A ‘MOV A, 31H, ‘MOV DPTR, #0E000H MOVX @DPTR, A 2.1.2 M@ rong port nhập

“Các vì mạch thường sử dụng để mở rộng port nhập là 74244, 74245, Cée vi mach này nối "vào bus đữ liệu và IC giải mã địa chỉ như ở hình 2.2 nh 28: Mở rộng port nhập

Chân C của U2 nổi voi CS-I1 và chân C của U3 nối với CS-12 Để các ngõ ra Y4 hoặc Yõ của

?4L8188 bằng 0 (mứe logje tích cự), các đường địa chỉ A15, A14 và A13 phải là 100 hoặc 101 theo

thứ tự Khi RD = 0 và Y4 hoặc Y5 bằng 0, ta c6 C8-I1 hoặc CS-I2 bằng 0 Ngược lại bai ngõ ra

Trang 35

hag 2 MOL 9 hit om gin rn 8051 oo

thông qua các IC U2 và U3 hằng cách sit dung lénh MOVX vi eée IC trén được định vị địa chỉ theo kiểu ánh xạ bộ nhớ Ta sử dụng port 0 làm bus dữ liệu và các chân của port 2 làm các chân địa chỉ cao Khi lệnh MOVX A, ®DPTR được thực thi, chân RD của 8051 sẽ ở logic 0

“Đoạn chương trình sau đây sẽ nhập dữ liệu từ ngoại vi ghép với U2 rồi cất vào ð nhớ 40H ở RAM bén trong và nhập dữ liệu từ ngoại vi ghép với Ứ3 rồi cất vào ð nhớ 41H & RAM bén trong, 'MOV DPTR, #800011 MOVX A, @DPTR ‘MOV 40H, A ‘MOV DPTR, #0A000H MOVX A, @DPTR ‘MOV 41H, A

3.1.8 Mở rộng port nhap/xudt sit dung PPI 8255A

Chỉ tiết về PPI 8255A được cho ở phụ lục 1 của quyển sách này

"Hình 2.3 là sơ đổ điển hình st dung PPI 8255A để mở rộng port nhập/xuất " —| HE a = B= H— cm" : H— = Ht aoe BH HC

Hình 23: Mỏ rộng port sử dụng PPI 8255A

`Vi mạch 741673 là vi mạch chốt địa chỉ được điều khiển bởi ngd ra cho phép chốt địa chỉ ALE cia 8061 A0 và A1 (ngõ ra Q1 và Q2 của 74LS673) được nối đến chân A0 và A1 của PPI 8255A để chọn port A, port B, port C hoặc thanh ghỉ điều khiển của 8255A Do chân CŠ của 8285A được nối với Y3 của ÏC giải mã địa chỉ 74L8238 và chân Y3 này tích cực khi A15, A14 và LA18 bằng 011, địa chỉ của các port và thanh ghỉ điều khiến của 8255A lần lượt là

Port A: dja chi la G000H, Port B: dja chi la 6001H Port C: dia chi Ia 6002H

Trang 36

Bx “Thiết kế hệ thống với họ 8051

8255A có 3 chế độ hoạt động: chế độ 0, chế độ 1 và chế độ 2 Để PPT này hoạt động nhập/xuất, trước tiên ta phải khởi động để chon chế độ và xác định việc nhập/xuất cho các port của 8255A "Đoạn chương trình sau đầy sẽ khởi động 8255A theo you edu sau: - _ Pert A xuất ở chế độ 1, ~ Port B nhập ở chế độ 0 ‘MOY DPTR, 86008H ‘MOV A, #10100010B MOV @DPTR, A Mã nhị phân 8-bit nạp cho thanh ghi điều khiển 10100010 có ý nghĩa như sau: Bie ÝngMn

7 | Bìt MSB này của thanh gh điều khiển khi bằng 1 chỉ ra công dụng chọn chế độ nhập xuất cho các port Bt này bằng 0 cho phép ta sereset (cho bằng xóa về 0) timg bit cia port C 6, | Chon chế độ cho các nhóm A 5 | 00: che độ 0 01: eh độ 1 1X: chế độ 2 4 | Qại định việc nhập xuất cho port A 0: xuất ¡ 1: nhập, 3 ] Qại định viạe nhập xuất cho 4 cao ela port C .: xuất ; 1: nhập 2 | Chọn chế độ cho các nhóm B 0 chế độ, 1: chế độ 1 1 | Quidinh việc nhập/xuất cho port B, 0: xuất; 1: nhập, © | Qui dink việc nhập/xuất cho 14 thấp của port C 0: xuất ; 1: nhập,

Đoạn chương trình sau đây

Trang 37

Chương Mộ 6 de i in gối fa" ‘MOVX A, @DPTR ‘MOV 30H, A MOV A, 81H ‘MOV DPTR, #600111 MOVX @DPTR, A MOV DPTR, #600211 MOVX @DPTR, A

“Ta cũng có thể sử dụng các chân địa chỉ A8 và A9 cia bus địa chi dé chon các port và thanh hi điều khiến của 8255A như ở hình 2.4 ri 3 Five 10

Hình 24: Mở rồng port aif dang PPI S260 cách kết nấ khác)

`Với cách kết nối này địa chỉ của các port và thanh ghỉ điều khiển sẽ như sau:

= Địa chỉ của port A: 6000H, = Bia chi cia port B: 6100H = Địa chỉ gia port C: 6200H

Trang 38

@ x “Thiết kế hộ thống với họ 8051 2.2 HIEN THI 4 LED 7-DOAN 3.3.1 Phương pháp chốt Hình 2.5 mình họa việc hiển thị lên 4 LED 7-đoạn sử dụng phương pháp chốt dữ liệu

Minh 25: Hiển thị 4 LED 7-đoạn sử dụng phương pháp chốt

“Trong sơ đổ ở hình 2.5, các điện trở có giá trị điển hình là 840 © và có công dụng giới han đồng qua các đoạn LED để các LED sáng bình thường khi dẫn điện Việc xác định địa chỉ cho các 1O chốt dữ liệu 74LS873 vẫn sử dụng phương pháp ánh xạ bộ nhớ Do ta chỉ xuất dữ liệu ra các LED 7-doan thông qua các IC chốt, ta chỉ cản sử dụng ngõ ra điều khiển ghí WR phi hop với các ngõ ra CS, CS, CSö và CŠT (của IC giải mã địa chỉ 74LS188) bằng các cổng NORR 7402 để chọn (đồng nghĩa với việc xác định địa chỉ) các TƠ chốt

"Địa chỉ của các IƠ chốt như sau: ~ U3: 8000H

~ Ud: OOOH US: COOH - U6: BO0OH

a ligu do 8051 xuất ra từ bus dữ liệu (port 0) là dữ liệu mã 7-đoạn điều khiển các doan LED sa một đèn LED 7-đoạn sao cho én LED 7-đoạn hiển thị đúng con số mong muốn Như vậy nếu sác số cân hiển thị được cất trong RAM nội dưới dạng s6 BCD géi (packed BCD) (hai để-cát chứa trong mot byte) ching hạn, ta phải có thủ tục đối số BCD sang mã 7-đoạn Trong đoạn chương trình đưới đây, thủ tục này có tên là BCDTO7SEG

Trang 39

“Chương 2: Một số thiết kế đơn giãn trên 8051

‘Thi tục BCDTO7SEG sẽ tra bảng chuyển đổi có tên là LEDTSEG_TABLE Cách thành lập bảng này như sau đối với đòn LED 7-đoạn anod chung và ta không sử dụng đấu chấm (.)

Số cân hiển thị | Ma BCD | Mã 7 đoạn | Mã xuất ra port0

TTTZT7[E [4 [e [ba | D?spspspspspipo —s 0000 ]t|i|o|o|o|o|o|o co 1 0001 J1|1|1|1|i|o|o|i FOH 2 6016 |1|o|i|ololi|olo Am 3 on |l|o|i|i|o|o|lolo BOH 4 ø0o [ti|olo|ililo|loji 99H 5 øøơi |i|lo|o|lalololi|o 92H 6 ono [afo[o[ofololilo 52H 7 PTRHHHHHHHB Tam 8 1000 |ilo|o|o|o|o|o|o 30H 9 loi |1|o|o|i|o|o|o|o 908

Đoạn chương trình sau đây hiển thị 4 số trên 4 LED 7-doạn Oác số hàng ngàn và hàng trăm cat trong 6 nhớ 31H của RAM bên trong, còn các số hàng chục và hàng đơn vị cất trong ô nhớ 30H dưới dạng số BCD gối ‘ORG 0000H (G84 EQU 8000H C6 EQU 0A000H .CS8 EQU 00000 (G7 EQU 0B900H MOV A, 80H ; lấy nội dung ð nhớ 80H (số BƠD gói hàng chục và hàng đơn vi)

ANL A, #0FH - xóa 4 bịt cao (óa số BCD hàng chụo ACALL, BCDTO7SEG ; đổi số BCD hang đơn vị thành mã 7 đoạn

MOV DPTR, #C87 —_ ; địa chỉ của IC chốt cho đền LED 7-đoạn hàng đơn vị, MOVX @DPTR, A ˆ_ ;xuất ra đèn LED 7-đoạn hang don vi qua IC chốt

MOV A, 80H ¡ lấy nội dung ð nhớ 80H (số BCD gối hàng chục và hàng ¡ đơm vị)

SWAP A hoán đổi 2 số BƠD hàng chục và hàng đơn vị ANL A, #0PH xóa 4 bịt cao (xóa số BƠ hàng đơn vị)

ACALL BCDTO7SEG ; đổi số BCD hàng chục thành mã 7 đoạn

Trang 40

gx Te hig oi 064

MOV A, 81H : lấy nội dung ð nhớ 31H (số BCD gối hàng ngàn và hàng trăm),

ANL A, #0FH 5 x6a 4 bit cao (xóa số BƠD hàng ngàn) ACALL BCDTO7SEG ; déi số BCD hàng tram thành mã 7 đoạn

MOV DPTR, CS5 ; địa chỉ của 1G chốt cho đèn LED 7-đoạn hàng trăm MOVX ®DPTR, A _ ; xuất ra đèn LED 7-đoạn hàng trăm qua IC chốt

MOV A, 81H ¡ lấy nội dung ð nhớ 81H (số BCD gối hàng ngàn và hàng ¡ trăm),

SWAP A : hoán đổi 2 số BCD hàng ngàn va hàng trăm, ANL A, #0FH ¡Xóa 4 bit cao (xóa số BCD hang tram),

ACALL BCDTO7SEG ; đổi số BCD hàng ngàn thành mã 7 đoạn

MOV DPTR, #C84 —_; dia chi cia IC chét cho đèn LED 7-đoạn hang ngàn MOVX @DPTR, A; xuft ra dan LED 7-dogn hang ngàn qua IC chét BODTO7SEG: ‘MOV DPTR, #LED7SEG_TABLE MOVC A, @A+DPTR_ ; tra bang RET LED?SEG_TABLE: DB OCOH, OF SH, OAH, OBOH, 99H, 92H, 82H, OFSH, 80H, 90H END Phương pháp trên sử dụng 4 cổng NOR và 4 IƠ chốt, số linh kiện của sơ dé ở hình 2.5 khé nhiều 3⁄42 Phương pháp quét — ¿

Phương pháp này chỉ sử dụng một ïC giải mmã từ BCD sang 7 đoạn (giải mã bằng phản cứng)

"Hình 2.6 minh hoa vie biển thị lên 4 đèn LED 7-đoạn sử dụng phương pháp quết

Sơ đổ ð hình 2.6 sit dung port 1 để giao diện với 4 đèn LED 7-doan qua trung gian IC gidi mã tir BCD sang 7-đoạn 74247 4 bit thấp của port 1 sẽ xuất số BCD (B0 -> B3) cắn hiển thị đến IC

T42ÁT, còn 4 bìt cao của port 1 sẽ xuất mã điều khiển 4-bit (L3 > LO) dén cực nên các transistor

từ Q1 đến Q4, mã này sẽ điều khiển céc transistor trén lần lượt dẫn điện và tất để cung cấp điện ấp cấp điện 5 V lần lượt cho các đèn 7-đoạn

Ngày đăng: 09/06/2022, 17:34

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

TÀI LIỆU LIÊN QUAN

w