Xem mẫu

  1. ỦY BAN NHÂN DÂN THÀNH PHỐ HÀ NỘI TRƯỜNG CAO ĐẲNG NGHỀ VIỆT NAM - HÀN QUỐC THÀNH PHỐ HÀ NỘI TRỊNH THỊ HẠNH (Chủ biên) NGUYỄN THANH HÀ – TRƯƠNG VĂN HỢI GIÁO TRÌNH VI XỬ LÝ – VI ĐIỀU KHIỂN Nghề: Điện tử công nghiệp Trình độ: Trung cấp (Lưu hành nội bộ) Hà Nội - Năm 2019 1
  2. LỜI NÓI ĐẦU Để cung cấp tài liệu học tập cho học sinh - sinh viên và tài liệu cho giáo viên khi giảng dạy, Khoa Điện tử Trường CĐN Việt Nam - Hàn Quốc thành phố Hà Nội đã chỉnh sửa, biên soạn cuốn giáo trình “VI XỬ LÝ – VI ĐIỀU KHIỂN” dành riêng cho học sinh - sinh viên nghề Điện tử công nghiệp. Đây là môn học kỹ thuật cơ sở trong chương trình đào tạo nghề Điện tử công nghiệp trình độ Trung cấp. Nhóm biên soạn đã tham khảo các tài liệu: Giáo trình “Vi xử lý” dùng cho học sinh trung cấp kỹ thuật của tác giả Trần Văn Trọng,Trường ĐHSPKT TP HCM. Giáo trình “Họ vi điều khiển” Tống văn On, Đại học Bách khoa TP.HCM 2005và nhiều tài liệu khác. Mặc dù nhóm biên soạn đã có nhiều cố gắng nhưng không tránh được những thiếu sót. Rất mong đồng nghiệp và độc giả góp ý kiến để giáo trình hoàn thiện hơn Xin chân thành cảm ơn! Hà Nội, tháng 09 năm 2019 Chủ biên: Trịnh Thị Hạnh 2
  3. MỤC LỤC LỜI NÓI ĐẦU ................................................................................................... 1 MỤC LỤC ......................................................................................................... 3 GIÁO TRÌNH MÔ ĐUN .............................................................................. 5 Phần I: VI XỬ LÝ ........................................................................................ 7 Bài 1Tổng quan về các hệ vi xử lý ............................................................... 7 1.1. Lịch sử phát triển các trung tâm vi xử lý: ............................................ 7 1.2. Cấu trúc cơ bản của hệ vi xử lý............................................................ 9 Bài 2Các đơn vi vi xử lý trung tâm............................................................ 11 2.1. Trung tâm vi xử lý P 8085 ............................................................... 11 2.2. Khái niệm và bản chất vật lý của các bus trong hệ vi xử lý ............... 15 2.3. Mạch 3 trạng thái............................................................................... 16 2.4. Ngắt (lnterrupt).................................................................................. 17 2.5. Các tập lệnh của 8085 ........................................................................ 18 Bài 3Bộ nhớ trong của hệ vi xử lý.............................................................. 37 3.1. Bộ nhớ trong hệ vi xử lý .................................................................... 37 3.2. Tổ chức bộ nhớ cho hệ vi xử lý ......................................................... 44 Bài 4Thiết bị vào ra của hệ vi xử lý ........................................................... 49 4.1. Bàn phím HEX (keyboard) ................................................................ 49 4.2. Màn hình (Monitor) ........................................................................... 55 Phần II: VI ĐIỀU KHIỂN ......................................................................... 60 Bài 5Sơ lược về lịch sử và hướng phát triển của vi điều khiển ................ 60 5.1. Lịch sử xuất hiện bộ vi điều khiển 8051 ............................................ 60 5.2. Lĩnh vực và ứng dụng ........................................................................ 62 Bài 6Cấu trúc của họ vi điều khiển 8051 ................................................... 64 6.1. Tổng quan ......................................................................................... 64 6.2. Sơ đồ chân vi điều khiển 8051 ........................................................... 65 6.3. Cấu trúc Port I/O ............................................................................... 71 Bài 7Tập lệnh 8051 ..................................................................................... 75 7.1. Mở đầu .............................................................................................. 75 7.2. Các phương pháp định địa chỉ ........................................................... 77 3
  4. 7.3. Các nhóm lệnh................................................................................... 82 Bài 8Bộ định thời ...................................................................................... 116 8.1.Mở đầu ............................................................................................. 116 8.2.Thanh ghi SFR của timer .................................................................. 118 8.3.Các chế độ làm việc .......................................................................... 120 8.4. Nguồn cung cấp xung cho Timer ..................................................... 122 8.5.Khởi động, dừng và điều khiển Timer .............................................. 123 8.6 Khởi tạo và truy xuất thanh ghi Timer .............................................. 123 Bài 9Cổng nối tiếp (serial port) ............................................................... 129 9.1. Mở đầu ............................................................................................ 129 9.2. Thanh ghi điều khiển ....................................................................... 131 9.3. Chế độ làm việc. .............................................................................. 131 9.4. Chế độ 3: UART 9 bit với tốc độ Baud thay đổi ............................. 136 9.4. Khởi tạo và truy xuất thanh ghi PORT nối tiếp ................................ 136 9.5. Truyền thông đa xử lý (Multiprocessor Communications) ............... 138 9.6. Tốc độ baud ..................................................................................... 140 Bài 10Ngắt................................................................................................. 146 10.1. Mở đầu .......................................................................................... 146 10.2.Tổ chức ngắt của 8051 (hình 6.2) .................................................. 147 10.3. Xử lý ngắt...................................................................................... 153 10.4. Thiết kế chương trình sử dụng ngắt ............................................... 156 10.5. Ngắt cổng nối tiếp ......................................................................... 160 10.6. Các cổng ngắt ngoài ...................................................................... 160 10.7. Đồ thị thời gian của ngắt................................................................ 160 Bài 11Phần mềm hợp ngữ ........................................................................ 165 11.1. Mở đầu .......................................................................................... 165 11.2. Hoạt động của trình biên dịch Assembler ...................................... 166 11.3. Cấu trúc chung chương trình hợp ngữ cho 8051 ............................ 167 11.4. Tính biểu thức trong khi hợp dịch .................................................. 169 TÀI LIỆU THAM KHẢO ........................................................................ 174 4
  5. GIÁO TRÌNH MÔ ĐUN Tên mô đun: Vi xử lý – Vi điều khiển Mã số của mô đun: MĐ 23 Thời gian của mô đun: 90 giờ. (LT: 30 giờ; BT: 55 giờ; KT: 5 giờ) I. Vị trí, tính chất, ý nghĩa và vai trò của mô đun Vị trí của mô đun: Mô đun được bố trí dạy cuối chương trình sau khi học xong các môn học cơ bản như linh kiện điện tử, đo lường điện tử, kỹ thuật xung - số, điện tử công suất.... Tính chất của mô đun: Là mô đun bắt buộc. Ý nghĩa của mô đun: sau khi học xong mô đun Vi xử lý, người học phải biết lập trình một số ứng dụng từ đơn giản đến phức tạp và xử lý được các kết nối máy tính với thiết bị ngoại vi. Vai trò của mô đun: Giáo trình mô đun “Vi xử lý – Vi điều khiển” nhằm cung cấp cho người học những kiến thức về lập trình và giao tiếp với máy tính bằng vi xử lý – vi điều khiển. II. Mục tiêu của mô đun Về kiến thức: - Trình bày được về hệ đếm và mã hóa trong máy tính, tương tác giữa máy tính và vi xử lý, các bộ vi xử lý intel đang được ứng dụng. - Giải thích được nguyên lý làm việc các hệ điều khiển ứng dụng vi xử lý. - Vận hành được các thiết bị và dây chuyền sản xuất dùng vi điều khiển. - Xác định được các nguyên nhân gây ra hư hỏng xảy ra trong thực tế. - Kiểm tra và viết được các chương trình điều kiển. Về kỹ năng: - Lập trình hợp ngữ một số bài tập cơ bản một cách thành thạo. - Xử lý được một số dạng kết nối máy tính với vi xử lý và các thiết bị ngoại vi. - Phát triển được các hệ điều khiển trên cơ sở khối trung tâm là vi xử lý. - Vận hành được các thiết bị và dây chuyền sản xuất dùng vi điều khiển. - Xác định được các nguyên nhân gây ra hư hỏng xảy ra trong thực tế. Về thái độ: - Rèn luyện tính tỷ mỉ, chính xác và an toàn vệ sinh công nghiệp 5
  6. III. Nội dung của mô đun Thời gian Số Tên các bài trong mô đun Tổng Lý Thực TT Kiểm tra* số thuyết hành A Phần 1. Vi xử lý 30 11 18 1 1 Tổng quan về các hệ vi xử lý 3 3 2 Các đơn vị vi xử lý trung tâm 8 3 5 3 Bộ nhớ trong của hệ vi xử lý 8 2 6 4 Thiết bị vào ra của hệ vi xử lý 11 3 7 1 B Phần 2. Vi điều khiển 60 19 37 4 1 Sơ lược về lịch sử và hướng phát 2 2 triển của vi điều khiển 2 Cấu trúc họ vi điều khiển 8051 6 3 3 3 Tập lệnh 8051 10 2 7 1 4 Bộ định thời 14 4 9 1 5 Cổng nối tiếp 10 4 5 1 6 Ngắt 10 3 7 7 Phần mềm hợp ngữ 8 1 6 1 Cộng 90 30 55 5 6
  7. Phần I: VI XỬ LÝ Bài 1 Tổng quan về các hệ vi xử lý Mục tiêu - Trình bày được một số hệ đếm, và các mã thường dùng trong hệ vi xử lý. - Tính toán, chuyển đổi được các phép toán nhị phân. - Trình bày được cách biểu diễn thông tin trong các hệ vi xử lý. - Rèn luyện tính tư duy, tác phong trong công nghiệp. 1.1. Lịch sử phát triển các trung tâm vi xử lý: Bộ vi xử lý là thành phần rất cơ bản không thể thiếu được để tạo nên máy vi tính và các hệ vi xử lý. Trước khi tìm hiểu cấu trúc của một hệ vi xử lý ta lướt qua về lịch sử phát triển của các bộ vi xử lý. Vi xử lý được chế tạo từ các tranzito tích hợp trên một vi mạch tích hợp đơn. Xuất hiện lần đầu tiên vào những năm đầu của thập kỷ 70 của thế kỷ 20. Sử dụng mã BCD trên nền 4 bit. Các vi xử lý 4 bit và 8 bit được sử dụng trong các thiết bị đầu cuối, máy in, các hệ thống tự động...Đến giữa những năm 1970 thì lần đầu tiên các vi xử lý 8 bit với 16 bit địa chỉ được sử dụng như máy tính đa mục đích. Các hãng sản xuất vi xử lý đầu tiên ở thời điểm này là Intel, Texas Instruments và Garrett AiResearch với ba dịng chip tương ứng: Intel 4004, TMS 1000 và Central Air Data Computer. Đây là những vi xử lý 4 bit. Sau sự ra đời của các vi xử lý 4 bit thì các hãng cho ra đời các dịng 8 bit, 12 bit, 16 bit, 32 bit, 64 bit. 1.1.1. Thế hệ 1 (1971 - 1973) Năm 1971, hãng Intel đã cho ra đời bộ vi xử lý đầu tiên là 4004 (4 bit số liệu, 12 bit địa chỉ). Sau đó Intel và các hãng khác lần lượt cho ra đời các bộ vi xử lý khác: 4040 (4 bit) và 8008 (8 bit) của Intel,PPS-4 (4 bit) của Rockwell International,IPM-16 (16 bit) của NationalSemiconductor. Đặc điểm chung của các bộ vi xử lý thế hệ này là: Độ dài từ thường là 4 bit (có thể dài hơn). Công nghệ chế tạo PMOS có mật độ tích hợp nhỏ. Tốc độ thực hiện lệnh: 10 - 60 μs/lệnh với tần số đồng hồ fclk = 0,1 - 0,8 MHz. 7
  8. Tập lệnh đơn giản và phải cần nhiều vi mạnh phụ trợ mới tạo nên một hệ vi mạch hoàn chỉnh. 1.1.2. Thế hệ 2 (1974 – 1977) Các bộ vi xử lý đại diện cho thế hệ này là các bộ vi xử lý 8 bit 8080 và 8085 của Intel, 6800 và 6809 của Motorola và Z80 của Zilog. Đặc điểm: Độ dài từ là 8 bit, đồng thời tập lệnh phong phú hơn thế hệ trước. Công nghệ chế tạo: NMOS (có mật độ tích hợp cao hơn PMOS) hoặc CMOS. Tốc độ thực hiện lệnh: 1-8 μs/lệnh với tần số đồng hồ fclk = 1-5 MHz. 1.1.3. Thế hệ 3 (1978 - 1982) Các bộ vi xử lý đại diện cho thế hệ này là các bộ vi xử lý 16 bit 8086, 80186, 80286 của Intel, 68000 và 68010 của Motorola. Đặc điểm: Độ dài từ là 16 bit. Công nghệ chế tạo: HMOS (có mật độ tích hợp cao hơn PMOS) hoặc CMOS. Tốc độ thực hiện lệnh: 0,1-1 μs/lệnh với tần số đồng hồ fclk =5-10 MHz. Tập lệnh đa dạng với các lệnh nhân, lệnh chia và các lệnh thao tác với chuỗi ký tự. 1.1.4. Thế hệ 4 (1983) Các bộ vi xử lý đại diện cho thế hệ này là các bộ vi xử lý 32 bit 80386, 80486 và 64 bit Pentium của Intel, các bộ vi xử lý 32 bit 68020, 68030, 68040, 68060 của Motorola. Đặc điểm của các bộ vi xử lý thế hệ này là bus địa chỉ đều là 32 bit (có khả năng đánh địa chỉ cho bộ nhớ tới 4 GB) và có khả năng làm việc với bộ nhớ ảo. Người ta cũng áp dụng các cơ chế hoặc các cấu trúc đã được sử dụng trong các máy tính lớn vào các bộ vi xử lý: cơ chế xử lý xen kẽ liên tục dạng mã lệnh (pipeline), bộ nhớ cache (bộ nhớ ẩn), bộ nhớ ảo. Các bộ vi xử lý thế hệ này đều có bộ quản lý bộ nhớ (MMU) và nhiều khi cả bộ đồng xử lý toán học ở bên trong. Phần lớn các bộ vi xử lý thế hệ này đều sản xuất bằng công nghệ HCMOS. Bên cạnh các bộ vi xử lý vạn năng truyền thống thường được sử dụng để xây dựng các máy tính với tập lệnh đầy đủ (Complex Instruction Set Computer, 8
  9. CISC) mà chúng ta đã nói ở trên, trong thời gian này cũng đã xuất hiện các bộ vi xử lý cải tiến dùng để xây dựng các máy tính với tập lệnh rút gọn (Reduced Instruction Set Computer, RISC) với nhiều tính năng có thể so sánh với các máy tính lớn ở thế hệ trước. Đó là các bộ vi xử lý Alpha của hãng Digital, PowerPC của ba hãng Apple-Motorola-IBM. 1.2. Cấu trúc cơ bản của hệ vi xử lý Một vi xử lý về cơ bản gồm có 3 khối chức năng: đơn vị thực thi (Execution), bộ điều khiển tuần tự (Sequencer) và bus giao tiếp. - Đơn vị thực thi: Xử lý các lệnh số học và logic. Các toán hạng liên quan có mặt ở các thanh ghi dữ liệu hoặc địa chỉ hoặc từ bus nội. - Bộ điều khiển tuần tự: Bao gồm bộ giải mã lệnh (Intrustruction Decoder) và bộ đếm chương trình (Program Counter). Bộ đếm chương trình gọi các lệnh chương trình tuần tự. Bộ giải mã lệnh thì khởi động các bước cần thiết để thực hiện lệnh. Bộ điều khiển tuần tự tạo thành một hệ thống logic tuần tự mà cách thức hoạt động của nó được chứa trong ROM. Nội dung chứa trong ROM được gọi là vi chương trình. Các lệnh bên ngoài trong trường hợp này xác định các địa chỉ vào vi chương trình. Khi chương trình bắt đầu thực hiện thì bộ đếm chương trình PC được đặt ở địa chỉ bắt đầu, thường là địa chỉ 0000H (với xi xử lý 8 bit). Địa chỉ này được chuyển đến bộ nhớ thông qua bus địa chỉ (Address Bus). Khi tín hiệu Read được đưa vào ở bus địa chỉ nội dung của bộ nhớ liên quan xuất hiện trên bus dữ liệu (data bus) và sẽ được chứa ở bộ giải mã lệnh (Instruction Decoder). Sau khi khởi động một số bước cần thiết để thực thi lệnh nhờ một số chu kỳ máy và khi lệnh đã thực thi, thì bộ giải mã lệnh làm cho bộ đếm chương trình chỉ đến địa chỉ của lệnh kế. Hình 1.14. Sơ đồ khối một máy tính cổ điển 9
  10. Để tạo thành một hệ vi xử lý hoàn chỉnh, bộ vi xử lý cần phải kết hợp với các bộ phận điện tử khác như bộ nhớ và các bộ phối ghép vào/ra. Cần lưu ý rằng máy vi tính chỉ là một trong những ứng dụng cụ thể của hệ vi xử lý. Dưới đây là sơ đồ khối tổng quát của một hệ vi xử lý. Trong sơ đồ này ta thấy các khối chức năng chính của hệ vi xử lý gồm có: + Khối xử lý trung tâm (Central Processing Unit, CPU) + Bộ nhớ trong RAM-ROM (Memory, M) + Khối phối ghép với các thiết bị ngoại vi (Input/Output, I/O) + Các bus truyền thông tin giữa các khối. 10
  11. Bài2 Các đơn vi vi xử lý trung tâm Mục tiêu - Trình bày được cấu trúc của các đơn vị vi xử lý đã học. - Phân tích các chương trình có sẵn - Thực hiện các ứng dụng thực tế thông qua các mô hình. - Rèn luyện tính tỷ mỉ, chính xác, an toàn và vệ sinh công nghiệp 2.1. Trung tâm vi xử lý P 8085 Hình 2.1. Sơ đồ khối cấu trúc của µP8085 Hình 2.1 là sơ đồ nối chân của µP8085. Khác với các loại µP xuất hiện trước đó như µP8008 hay µP8080, µP8085 có những bước phát triển có tính đột phá như sau: 11
  12. Hình 2.2. Sơ đồ chân của µP8085 Cơ cấu ngắt theo nhiều mức khác nhau được hình thành qua một khối điều khiển ngắt, tạo ra một vector ngắt tránh được sự chèn nhau do lệnh RET N trên BUS dữ liệu. Tín hiệu nhận biết yêu cầu ngắt INTA được tạo bởi khối điều khiển ngắt, chứ không phải từ mạch phụ 8228 như ở µP8080. Các tín hiệu điều khiển ghi/đọc WR và RD được tạo ra từ bộ định thời và điều khiển chức năng. Các tín hiệu INTA ,WR và RD được tạo ngay trong CPU, chứ không do mạch phụ trợ bên ngoài. µP8085 có mạch tạo xung đồng hồ được tích hợp ngay trong CPU. Khối chức năng điều khiển vào/ra nối tiếp được tích hợp cũng cho phép µP8085 thực hiện các lệnh vào/ra dữ liệu nối tiếp mà nhiều khi không cần đến sự hỗ trợ của vi mạch chuyên dụng. Đặc biệt hơn, µP8085 có hai thanh ghi đệm địa chỉ, đó là thanh ghi đệm A5 -A8. Và thanh ghi đệm AD7-AD0 cho cả dữ liệu và địa chỉ. Việc dồn kênh như trên tạo điều kiện cho những chân chức năng khác được tạo thêm, làm tăng thêm sức mạnh cho CPU. 12
  13. Đặc tính của vi xử lý 8085: Nguồn cung cấp: 5 V ± 10%. Dòng điện cực đại: Imax = 170 mA. Tần số xung clock chuẩn: 6,134 Mhz. Độ dài dữ liệu là 8 bit. Khả năng truy xuất ô nhớ trực tiếp là 64Kb. Vi xử lý có thể tính số nhị phân, thập phân. Vi xử lý có 8 đường dữ liệu và 16 đường địa chỉ. Các đường điều khiển: RD\, WR\, IO/M\, Clock Out, Reset Out và 4 ngắt. A8 – A15. Nhóm tín hiệu ra: 8 bit cao của địa chỉ, các chân này là các chân được nối với bên ngoài qua mạch 3 trạng thái. Các phần tử 3 trạng thái sẽ được đặt ở trạng thái high-z trong các trường hợp một trong các tín hiệu HOLD hay HALT là tích cực AD0 – AD7. Nhóm tín hiệu dồn kênh 3 trạng thái. Ở giai đoạn đầu của chu kỳ máy, T1 của M1, sẽ là byte thấp của 16 bộ địa chỉ ALE (Address Enable). Tín hiệu ra qua mạch 3 trạng thái. Được sử dụng để chốt byte thấp của tín hiệu địa chỉ (A0 - A7) Tín hiệu này được tạo ra trong giai đoạn đầu tiên của chu kỳ máy, T1 của M1, và cũng được dùng để chốt các tín hiệu trạng thái S0 và S1 khi cần thiết. S0 và S1 (Data BUS Status). Là các tín hiệu chỉ trạng thái của các chân thuộc BUS dữ liệu trong mỗi chu kỳ máy. Tổ hợp của hai tín hiệu này cũng cho biết trạng thái của CPU. S0 S1 Hoạt động của BUS dữ liệu 0 0 Trạng thái HALT 0 1 CPU đang thực hiện thao tác WRITE 1 0 CPU đang thực hiện thao tác READ 1 1 CPU đang thực hiện thao tác nhận lệnh Instruction fetch. RD (Read). Chân ra 3 trạng thái. Nằm trong nhóm tín hiệu điều khiển. Tín hiệu tích cực khi CPU tiến hành đọc dữ liệu từ bộ nhớ hoặc từ thiết bị ngoại vi. Trong chế độ HALT hoặc DMA, chân ra này ở trạng thái high-z. WR (Write). Chân ra 3 trạng thái. Nằm trong nhóm tín hiệu điều khiển. Tín hiệu tích cực khi CPU tiến hành ghi dữ liệu vào bộ nhớ hoặc đưa dữ liệu ra thiết bị ngoại vi. Trong các chế độ HALT hoặc DMA, chân ra này ở trạng thái high-z. 13
  14. IO/M . Trạng thái logic của Ngõ ra này cho biết CPU đang làm việc với thiết bị ngoại vi hay với bộ nhớ. Nếu là logic "l", CPU đang truy cập thiết bị vào/ra, còn nếu là "0", CPU đang truy cập bộ nhớ. Kết hệ với hai Ngõ ra RD và WR để tạo ra các tín hiệu I/OR, , I/OW RD , MEMR và MEMW trong trường hợp sử dụng địa chỉ tách biệt đối với thiết bị vào/ra. Nằm trong nhóm tín hiệu điều khiển, nên IO/M cũng là Ngõ ra 3 trạng thái. Interrupts. µP8085 có ngắt đa mức. Có 5 chân ngắt tất cả: (INTR, RST5.5. RST6.5, RST7.5 và TRAP). Ngoài chân ngắt không che được là TRAP, các chân khác đều có thể che hoặc không che nhờ lập trình phần mềm. INTR: Chân nhận yêu cầu ngắt từ bên ngoài, được đáp ứng theo nguyên tắc polling hoặc vectoring thông qua lệnh RST. Các yêu cầu ngắt RST. Có 3 Ngõ vào yêu cầu ngắt với các mức ưu tiên khác nhau là RST7.5, RST6.5 và RST5.5. Khi yêu cầu ngắt xuất hiện tại các chân này, CPU tự động chuyển đến các vector ngắt tương ứng. Cụ thể như sau: • RST5.5 là mức ưu tiên thấp nhất, phản ứng theo mức điện áp trên chân yêu cầu ngắt, địa chỉ vector ngắt này nằm ở ô nhớ có địa chỉ 2CH. •RST6.5 Ngắt ưu tiên thấp thứ 2, phản ứng theo mức điện áp trên chân yêu cầu ngắt, địa chỉ vector ngắt này nằm ở ô nhớ 34H. • RST7.5 Mức ưu tiên cao nhất. Phản ứng theo sườn lên của xung yêu cầu ngắt. Sườn lên của xung này tác động lên một flip-flop, mạch này giữ lại yêu cầu ngắt cho đến khi được xóa nhờ tín hiệu nhận biết yêu cầu ngắt Acknowledge. Địa chỉ của vector ngắt này nằm ở ô nhớ 3CH. TRAP: Là chân nhận yêu cầu ngắt không che được (có mức ưu tiên cao nhất). Địa chỉ của vector ngắt này ở ô nhớ 24H. INTA . Tín hiệu ra nhận biết yêu cầu ngắt tại chân INTR. Các yêu cầu ngắt RST5.5, RST6.5, RST7.5 và TRAP không tác động đến INTA . HOLD. trạng thái logic "1" ở chân này là yêu cầu của thao tác DMA. Các Ngõ ra RD, WR, IO/M và ALE sẽ được đưa về trạng thái high-z. HLDA. Tín hiệu nhận biết yêu cầu HOLD. IN RESET . Logic thấp "0" ở Ngõ vào của chân này yêu cầu tái khởi động hệ Vi xử lý. Do tác động của tín hiệu RESET IN tích cực, giá trị của thanh đếm chương trình PC sẽ được nạp lại là 0000H các địa chỉ ngắt và tín hiệu HLDA cũng được tái thiết lập về giá trị mặc định. RESET OUT. Ngõ ra nhận biết hệ Vi xử lý được tái khởi động. Dùng tín hiệu này để tái khởi động toàn bộ hệ thống. 14
  15. READY. Logic "1" ở Ngõ vào này thông báo trạng thái sẵn sàng cung cấp dữ liệu cho CPU hoặc nhận dữ liệu từ CPU của các thiết bị ngoại vi. SID (Serial Input Data). Là cổng vào của dữ liệu nối tiếp của hệ Vi xử lý. Bit hiện diện tại cổng này được đọc vào CPU nhờ lệnh RIM, bit sẽ được đưa vào bit cao của Acc (MSB). SOD (Serial Output Data). Bit cao (MSB) của Acc được truyền ra ngoài chân này khi sử dựng lệnh SIM. X1, X2. Chân nối thạch anh hoặc một mạch dao động để tạo xung nhịp cho CPU. Có thể sử dụng thạch anh có tần số dao động trong khoảng từ 0.5 đến 3MHz. CLK. Ngõ ra của xung nhịp, có thể làm xung nhịp cho các thành phần chức năng khác trong hệ Vi xử lý. Vcc, Vss. Chân nối nguồn +5V và GND cho µP8085. µP8085,chỉ cần một nguồn nuôi duy nhất là +5V, khả năng cung cấp dòng của nguồn cần được thiết kế tuỳ theo nhu cầu của toàn hệ Vi xử lý. 2.2. Khái niệm và bản chất vật lý của các bus trong hệ vi xử lý Hoạt động của một hệ Vi xử lý thực chất là việc trao đổi và xử lý các giá trị nhị phân giữa các thành phần, các khối và các mạch vi điện tử trong toàn bộ hệ thống. Như đã biết, các giá trị nhị phân (hoặc "0" hoặc "1") được thể hiện qua mức điện áp so với một chuẩn nhất định. Giá trị "0" tương ứng với mức điện áp thấp (từ 0V đến +0,8V) và giá trị "1" tương ứng với mức điện áp từ khoảng +3V đến +5V. Để biểu diễn một số liệu nhị phân, các phần tử mang thông tin được liên kết kề nhau theo nhóm (ví dụ 1byte là 8 bits). Để đảm nhận công việc di chuyển các dữ liệu này trong toàn bộ hệ thống, có các đường dây truyền dẫn điện chuyên dụng được ghép song song thành hệ thống, mỗi dây truyền dẫn dành riêng cho 1 bit. Tập các đường truyền dẫn dành riêng cho các tín hiệu có cùng chức danh (dữ liệu, địa chỉ, điều khiển) được gọi là BUS. Như vậy, trong một hệ Vi xử lý, có ba loại BUS: BUS dữ liệu, BUS địa chỉ và BUS điều khiển. Các BUS này hợp lại thành BUS hệ thống. Từ khái niệm trên, dễ dàng suy ra bản chất vật lý của các BUS trong một hệ Vi xử lý: Đó là các dường truyền dẫn điện, có thể dưới các dạng cáp nhiều sợi, đường dẫn trong các bảng mạch in v. v... Khả năng và chất lượng dẫn điện của các đường truyền dẫn này đóng vai trị quan trọng và quyết định đối với hoạt động của một hệ Vi xử lý. Đường truyền dẫn kém, trở kháng cao có thể gây ra sự suy giảm của tín hiệu điện dẫn đến các hiện tượng mất mát hoặc sai dữ liệu, rất nguy hiểm. BUS là đường dẫn điện nội bộ mà theo đó các tín hiệu được truyền từ bộ phận này đến các bộ phận khác trong hệ Vi xừ lý. Có 3 loại BUS trong một hệ Vi xử lý cũng nhu trong máy tính. 15
  16. 2.3. Mạch 3 trạng thái Trong hệ Vi xử lý, có nhiều khối chức năng cần thông tin, nhưng tại một thời điểm, bao giờ cũng chỉ có một khối đưa tín hiệu ra (dữ liệu) và một số hạn chế các khối thu nhận tín hiệu. Thay vì nối dây dẫn liên kết các khối qua từng đôi phần tử một, các tín hiệu này được đưa lên BUS. Với các cổng logic thông thường, không thể nối trực tiếp chúng lên cùng một đường dây vì sẽ xảy ra tranh chấp BUS vì đoản mạch. Ví dụ Ngõ ra của phần tử A là "1" trong lúc Ngõ ra của phần tử B là "0". (Hình 2.4 và hình 2.5). Các Ngõ ra của loại mạch này đều theo cấu trúc pull-up, nghĩa là có hai transistor được nối nối tiếp với nhau (xem hình vẽ), emitter của transistor này qua một diode rồi đến đầu ra, đến collector của transistor kia. Với hai trạng thái logic "1" và "0", tương ứng sẽ là T1 mở, T2 đóng và ngược lại, T2 mở và T1 đóng. Trên hình vẽ 2.4 hiện tượng nguy hiểm xảy ra khi ngõ ra của phần tử logic A là "1", các khóa mở hay đóng tương đương việc transistor thông bão hoà hay ngắt, ngõ ra chua phần tử logic B là "0" và hiện tượng đoản mạch xảy ra. Hình 2.4. Hiện tượng đoản mạch xảy ra khi nối hai đầu ra của hai phần tử trên cùng một đường dây của BUS Để tránh hiện tượng này, một loại cổng logic gọi là cổng 3 trạng thái (tri- state gate) được sử dụng cho ngõ ra của các khối nối chung vào BUS. Hình II.3a là một phần tử đảo Ngõ ra 3 trạng thái. Hình 2.5 là sơ đồ tương đương của trạng thái high-z, tương ứng với trường hợp Ngõ ra bị tách khỏi BUS. 16
  17. Hình 2.5. Phần tử đảo 3 trạng thái và sơ đồtương đương Ngõ ra của phần tử ở trạng thái high-z Như vậy, để tránh xung đột trên BUS, các phần tử có Ngõ ra nối với BUS cần phải đưa qua cổng 3 trạng thái. 2.4. Ngắt (lnterrupt) Trong thực tế, tốc độ xử lý dữ liệu của CPU cao hơn rất nhiều so với “sự chế biến dữ liệu” của các thiết bị I/O. Vì vậy cần tạo ra một cơ chế vào/ra hợp lý để tăng hiệu suất làm việc của CPU. Ngắt trong hệ thống Vi xử lý nhằm mục đích giải quyết sự bất hợp lý do CPU phải chờ đợi thiết bị ngoại vi. Thiết bị ngoại vi chỉ yêu cầu CPU phục vụ việc nhận hay chuyển giao dữ liệu khi bản thân nó đã sẵn sảng. Để thực hiện tốt yêu câu này, cơ chế phục vụ ngắt là hợp lý nhất. Ngắt nghĩa là yêu cầu CPU tạm thời dừng công việc hiện tại để trao đổi hay xử lý dữ liệu không thuộc tuần tự của chương trình đang được thực hiện. Ngắt là một hiện tượng xuất hiện ngẫu nhiên về phương diện thời điểm nhưng được dự đoán trước. 17
  18. Ngắt là hiện tượng một tín hiệu xuất hiện báo với CPU rằng có một sự kiện đã xảy ra yêu cầu CPU phải xử lý. Quá trình xử lý của CPU sẽ bị tạm thời dừng lại để thực hiện một thao tác khác phục vụ sự kiện có yêu cầu. Khi thao tác này kết thúc, quá trình xừ lý vừa bị tạm dừng sẽ được tiếp tục. Bản thân sự kiện thông thường là yêu cầu phục vụ của thiết bị ngoại vi đối với CPU. Trong thực tế, ngắt được sử dụng chủ yếu khi các thiết bị ngoại vi (thường rất chậm so với tốc độ xử lý của CPU) cần trao đổi thông tin với CPU. Khi cần trao đổi thông tin, thiết bị ngoại vi gửi tín hiệu yêu cầu ngắt (Interrupt Request) tới CPU. CPU sẽ thực hiện nốt lệnh hiện tại và trả lời bằng tín hiệu nhận biết yêu cầu ngắt (INTA ). Chương trình chính lúc này bị tạm dừng (ngắt) và CPU chuyển sang thực hiện chương trình con phục vụ ngắt,tức là chương trình con trao đổi thông tin với thiết bị ngoại vi yêu cầu ngắt. Sau khi xong công việc phục vụ ngắt, CPU quay về thực hiện tiếp chương trình chính kể từ lệnh tiếp theo sau khi bị ngắt các tín hiệu yêu cầu phục vụ ngắt từ một thiết bị ngoại vi bất kỳ được gửi tới chấp nhận yêu cầu ngắt của CPU có thể thông qua một khối điều khiển ngắt, tuỳ theo người lập trình mà yêu cầu ngắt đó có được chuyển tới CPU hay không. Trong trường hợp yêu cầu ngắt được gửi tới CPU, xử lý của CPU gồm các bước sau: Thực hiện xong lệnh đang được xử lý. Phát tín hiệu nhận biết yêu cầu ngắt gửi cho thiết bị yêu cầu phục vụ ngắt qua chân INTA. Cất các cờ trạng thái hiện tại vào ngăn xếp. Xóa các cờ IF (Interrupt Flag) và cờ TF (Trap Flag). Cất địa chỉ lệnh tiếp theo trong tuần tự chương trình đang thực hiện vào ngăn xếp. Lấy địa chỉ của chương trình con phục vụ ngắt Thực hiện chương trình con phục vụ ngắt. 2.5. Các tập lệnh của 8085 1. MOV : chuyển một byte hay Word Dạng lệnh: MOV Đích, Nguồn Mô tả: Đích←Nguồn Trong đó toán hạng đích và Nguồn có thể tìm được theo các chế độ địa chỉ khác nhau, nhưng phải có cùng độ dài và không được phép đồng thời là hai ô nhớ hoặc hai thanh ghi đoạn. Các cờ bị thay đổi: không. 18
  19. Ví dụ: MOV AL, AH ;AL←AH MOV CX, 50 ;CX←50 MOV DL, [SI] ;DL←{DS:SI} 2. OUT : Xuất một Byte hay một Word ra Port. Dạng lệnh: OUT Port, Acc Mô tả: Acc→{Port} Trong đó {port} là dữ liệu của cổng có địa chỉ port. Port là địa chỉ 8 bit của cổng, nó có thể là các giá trị trong khoảng 00...FFH. Như vậy có thể có các khả năng sau đây. - Nếu Acc là AL thì dữ liệu 8 bit được đưa ra cổng Port. - Nếu Acc là AX thì dữ liệu 16 bit được đưa ra cổng Port và Port + 1. Có một cách khác để chứa địa chỉ cổng là thông qua thanh ghi DX. Khi dùng thanh ghi DX để chứa địa chỉ cổng ta có khả năng địa chỉ hoá cổng mềm dẻo hơn. Lúc này địa chỉ cổng nằm trong dải 0000H … FFFFH và viết lệnh theo dạng: OUT DX, Acc Các cờ bị thay đổi: không. Ví dụ: OUT 45H, AL ;dua du lieu tu AL ra cong 45H MOV DX, 0 ;xoa DX MOV DX, 00FFH ;nap dia chi cong vao DX OUT DX, AX ;dua du lieu tu AX ra 00FFH 3. IN : Đọc dữ liệu từ cổng vào thanh ghi Acc. Dạng lệnh: IN Acc, địa_chỉ_cổng Lệnh IN truyền một byte hoặc một từ từ một cổng vào lần lượt tới thanh ghi AL hoặc AX. Địa chỉ của cổng có thể được xác định là một hằng tức thì kiểu byte cho phép truy nhập các cổng từ 0…255 hoặc thông qua một số đã được đưa ra trước đó trong thanh ghi DX mà cho phép truy nhập các cổng từ 0…65535. Các cờ bị thay đổi: không. 19
  20. Ví dụ: IN AL, 45H ;doc mot byte tu mot cong duoc xac ;dinh trong che do tuc thi IN AX, 0046H ;doc hai byte tu mot cong duoc xac ;dinh trong che do tuc thi IN AX, DX ;doc mot tu tu mot cong dang bien 4. POP : Lấy lại 1 Word vào thanh ghi từ đỉnh ngăn xếp Dạng lệnh: POP Đích Mô tả: Đích←{SP} SP←SP+2 Toán hạng đích đích có thể là các thanh ghi đa năng, thanh ghi đoạn (nhưng không được là thanh ghi đoạn mã CS) hoặc ô nhớ. Các cờ bị thay đổi: không. Ví dụ: POP DX ;lay 2 byte tu dinh ngan xep dua vao DX 5. PUSH: Cất 1 Word vào ngăn xếp Dạng lệnh: PUSH Nguồn Mô tả: SP←SP-2 Nguồn→{SP} Toán hạng đích đích có thể là các thanh ghi đa năng, thanh ghi đoạn(kể cả CS) hoặc ô nhớ. Các cờ bị thay đổi: không. Ví dụ: PUSH BX ;cat BX vao ngan xep tai vi tri do SP chi ra Nhóm lệnh số học và logic: các lệnh trong nhóm này thực hiện các phép tính số học cơ bản là cộng và trừ 2 toán hạng, các lệnh tăng giảm, hay so sánh nội dung thanh ghi, các phép tính logic trong số sọc nhị phân, các phép dịch trái, phải dữ liệu trong thanh ghi, lệnh quay vòng trái phải v.v... 6. ADC: Cộng có nhớ Dạng lệnh: ADC Đích, Nguồn Mô tả: Đích ← Đích + Nguồn + CF Cộng hai toán hạng Đích và Nguồn với cờ CF kết quả lưu vào Đích. 20
nguon tai.lieu . vn