Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 113 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
113
Dung lượng
3,02 MB
Nội dung
MỤC LỤC Bài GIỚI THIỆU CHUNG VÀ CẤU TRÚC CHUNG CỦA HỆ VI XỬ LÝ 1.1 Tổng quan 1.2 Lịch sử phát triển Vi xử lý 1.3 Chức 1.4 Ứng dụng 1.5 Sơ đồ khối hệ vi xử lý 1.6 Các thành phần phần cứng hệ Vi xử lý 1.6.1 Khối xử lý trung tâm (CPU) 1.6.2 Hệ thống Bus Bài ĐỊNH DẠNG DỮ LIỆU VÀ BIỂU DIỄN THÔNG TIN TRONG HỆ VXL 2.1 Các hệ đếm 2.2 Mã ký tự Alphanumeric CODE (ASCII, EBCDIC) 10 2.3 Các phép toán số học hệ đếm nhị phân 10 Bài BÀI TẬP VÀ THẢO LUẬN VỀ TỔNG QUAN HỆ VI XỬ LÝ VÀ HỆ THỐNG MÁY TÍNH, DỮ LIỆU VÀ BIỂU DIỄN THÔNG TIN TRONG HỆ VI XỬ LÝ 11 Bài KIẾN TRÚC PHẦN CỨNG CƠ BẢN CỦA HỌ VXL 80x86 12 4.1 Tổng quan 12 4.2 Kiến trúc bên hoạt động 12 4.2.1 Đơn vị giao tiếp Bus (BIU) 13 4.2.2 Đơn vị xử lý lệnh (EU) 13 4.2.3 Bộ nhớ Cache 14 4.3 Tập ghi 17 4.3.1 Chức chung 17 4.3.2 Các ghi 18 4.4 Tập lệnh VXL 22 4.4.1 Dạng lệnh 22 4.4.2 Các nhóm lệnh 23 4.5 Các chế độ địa 29 4.5.1 Tổng quan 29 4.5.2 Chế độ địa ghi 29 4.5.3 Chế độ địa tức 29 4.5.4 Chế độ địa trực tiếp 30 4.5.5 Chế độ địa gián tiếp ghi 30 4.5.6 Chế độ địa tương đối sở(Base Relative Addressing) 30 4.5.7 Chế độ địa tương đối số(Indexed Relative Addressing) 31 4.5.8 Chế độ địa tương đối số sở(Base Indexed Relative) 31 4.5.9 Bảng tóm tắt chế độ địa 32 4.6 Phân tích mã lệnh mã máy 32 4.6.1 Khuôn dạng lệnh 32 4.6.2 Một số mã lệnh mã máy 34 4.6.3 Một số ví dụ minh họa 35 4.7 Lập trình gỡ rối DEBUG 35 4.7.1 Giới thiệu lệnh DEBUG 36 4.7.2 Lập trình DEBUG 37 4.7.3 Gỡ rối chương trình DEBUG 38 Bài CÁCH LÀM VIỆC CỦA VI XỬ LÝ VÀ LẬP TRÌNH CHO VI XỬ LÝ 39 5.1 Cách xử lý liệu VXL 39 5.2 Clock 40 5.3 External Clock 42 5.4 Cách VXL thực xử lý lệnh 44 5.5 Ngắt 47 5.5.1 Ví dụ 47 5.5.2 Chức 47 5.5.3 Sơ đồ ngắt 48 5.5.4 Qui trình ngắt 48 5.6 DMA 49 5.7 Cú pháp hợp ngữ 51 5.8 Cấu trúc chung chương trình 52 5.8.1 Khung chương trình ASSEMBLY 52 5.8.2 Cấu trúc chương trình để dịch tệp *.EXE 52 5.8.3 Cấu trúc chương trình để dịch tệp *.COM 55 5.9 Định nghĩa liệu kiểu liệu 57 5.10 Cách tạo chạy chương trình hợp ngữ 59 Bài CÁC CẤU TRÚC LẬP TRÌNH CƠ BẢN 62 6.1 Các lệnh chuyển điều khiển 62 6.1.1 Các định hướng 62 6.1.2 Điều kiện cho lệnh nhảy 62 6.1.3 Các lệnh điều khiển rẽ nhánh 62 6.2 Cấu trúc 63 6.3 Cấu trúc rẽ nhánh 63 6.3.1 Cấu trúc IF…THEN… 63 6.3.2 Cấu trúc IF THEN…ELSE 64 6.3.3 Cấu trúc rẽ nhánh CASE…OF… 65 6.3.4 Cấu trúc rẽ nhánh với điều kiện kép 66 6.4 Cấu trúc lặp 68 6.4.1 Cấu trúc FOR…TO…DO… 68 6.4.2 Cấu trúc WHILE…DO… 69 6.4.3 Cấu trúc DO…WHILE… 69 Bài THẢO LUẬN VỀ KIẾN TRÚC PHẦN CỨNG, CÁCH LÀM VIỆC VÀ LẬP TRÌNH CHO HỆ VI XỬ LÝ 70 Bài CÁC TÍN HIỆU CỦA VI XỬ LÝ VÀ MẠCH PHỤ TRỢ 71 8.1 Các tín hiệu Vi xử lý 8086 71 8.2 Phân kênh để tách thông tin việc đệm cho bus 73 8.3 Mạch tạo xung nhịp 8284 73 8.4 Mạch điều khiển bus 8288 75 8.5 Biểu đồ thời gian lệnh ghi/đọc 76 Bài GHÉP NỐI VI XỬ LÝ VỚI BỘ NHỚ VÀ THIẾT BỊ NGOẠI VI 80 9.1 Giới thiệu nhớ ghép nối VXL với nhớ 80 9.2 Các thuật ngữ nhớ 81 9.2.1 Dung lượng 81 9.2.2 Tổ chức nhớ 81 9.2.3 Tốc độ/định thời 81 9.3 Các chế độ hoạt động 83 9.4 Các hệ thống ngoại vi 83 9.5 Các cổng giao tiếp 85 9.6 Các công cụ mà VXL ghép nối đến IC riêng biệt 85 Bài 10 THẢO LUẬN VỀ GHÉP NỐI VI XỬ LÝ VỚI BỘ NHỚ VÀ THIẾT BỊ NGOẠI VI 86 Bài 11 CÁC HỆ VI XỬ LÝ TIÊN TIẾN VÀ HỌ VI ĐIỀU KHIỂN 86 11.1 Hệ vi xử lý Intel 86 11.1.1 Lịch sử phát triển 86 11.1.2 Tổng quan 87 11.2 Kiến trúc CISC RISC 87 11.3 So sánh VXL với VĐK 89 11.4 Họ VĐK 8051 91 11.4.1 Giới thiệu chung 91 11.4.2 Kiến trúc VĐK 8051 97 Bài 12 THẢO LUẬN VỀ CÁC HỆ VI XỬ LÝ TIÊN TIẾN VÀ HỌ VI ĐIỀU KHIỂN 113 Bài GIỚI THIỆU CHUNG VÀ CẤU TRÚC CHUNG CỦA HỆ VI XỬ LÝ 1.1 Tổng quan Một hệ vi xử lý gọi hệ thống bao gồm: - Đơn vị nhập xuất: Được sử dụng để nhập xuất số liệu, liệu - Đơn vị xử lý: Xử lý liệu nhập vào, sau xuất thiết bị - Bộ nhớ: Lưu trữ thông tin, liệu trình xử lý Tất thiết bị có chức gọi hệ vi xử lý Máy vi tính hệ thống vi xử lý Một thành phần quan trọng hệ thống máy vi tính, vi xử lý Trên thực tế, có nhiều hãng chế tạo vi xử lý cho máy vi tính như: IBM, Intel, Cyrix, AMD, Motorola Nhưng thông dụng vi xử lý Intel 1.2 Lịch sử phát triển Vi xử lý Hình 1-1 Lịch sử phát triển VXL - Thế hệ (1971 - 1973): vi xử lý bit, đại diện 4004, 4040, 8080 (Intel) hay IPM-16 (National Semiconductor) + Độ dài word thường bit (có thể lớn hơn) + Tốc độ 10 - 60μs / lệnh với tần số xung nhịp 0.1 - 0.8 MHz + Tập lệnh đơn giản phải cần nhiều vi mạch phụ trợ - Thế hệ (1974 - 1977): vi xử lý bit, đại diện 8080, 8085 (Intel) hay Z80 + Tập lệnh phong phú + Địa đến 64 KB Một số vi xử lý phân biệt 256 địa cho thiết bị ngoại vi + Sử dụng công nghệ NMOS hay CMOS + Tốc độ - μs / lệnh với tần số xung nhịp - MHz - Thế hệ (1978 - 1982): vi xử lý 16 bit, đại diện 68000/68010 (Motorola) hay 8086/ 80286/ 80386 (Intel) + Tập lệnh đa dạng với lệnh nhân, chia xử lý chuỗi + Địa nhớ từ - 16 MB phân biệt tới 64KB địa cho ngoại vi + Sử dụng công nghệ HMOS + Tốc độ 0.1 - μs / lệnh với tần số xung nhịp - 10 MHz - Thế hệ 4: vi xử lý 32 bit 68020/68030/68040/68060 (Motorola) hay 80386/80486 (Intel) vi xử lý 32 bit Pentium (Intel) + Bus địa 32 bit, phân biệt GB nhớ + Có thể dùng thêm đồng xử lý (coprocessor) + Có khả làm việc với nhớ ảo + Có chế pipeline, nhớ cache + Sử dụng công nghệ HCMOS - Thế hệ 5: vi xử lý 64 bit 1.3 Chức Khái niệm “vi xử lý” (microprocessor) Vi xử lý thuật ngữ chung dùng để đề cập đến kỹ thuật ứng dụng công nghệ vi điện tử, công nghệ tích hợp khả xử lý theo chương trình vào lĩnh vực khác Vào giai đoạn đầu trình phát triển công nghệ vi xử lý, chip (hay vi xử lý) chế tạo tích hợp phần cứng thiết yếu CPU mạch giao tiếp CPU phần cứng khác Trong giai đoạn này, phần cứng khác (kể nhớ) thường không tích hợp chip mà phải ghép nối thêm bên Các phần cứng gọi ngoại vi (Peripherals) Về sau, nhờ phát triển vượt bậc công nghệ tích hợp, ngoại vi tích hợp vào bên IC người ta gọi vi xử lý tích hợp thêm ngoại vi ―vi điều khiển‖ Vi xử lý có khối chức cần thiết để lấy liệu, xử lý liệu xuất liệu sau xử lý Và chức Vi xử lý xử lý liệu, chẳng hạn cộng, trừ, nhân, chia, so sánh.v.v Vi xử lý khả giao tiếp trực tiếp với thiết bị ngoại vi, có khả nhận xử lý liệu mà Để vi xử lý hoạt động cần có chương trình kèm theo, chương trình điều khiển mạch logic từ vi xử lý xử lý liệu cần thiết theo yêu cầu Chương trình tập hợp lệnh để xử lý liệu thực lệnh lưu trữ nhớ, công việc thực hành lệnh bao gồm: nhận lệnh từ nhớ, giải mã lệnh thực lệnh sau giải mã Để thực công việc với thiết bị cuối cùng, chẳng hạn điều khiển động cơ, hiển thị kí tự hình, đòi hỏi phải kết hợp vi xử lý với mạch điện giao tiếp với bên gọi thiết bị I/O (nhập/xuất) hay gọi thiết bị ngoại vi Bản thân vi xử lý đứng nhiều hiệu sử dụng, phần máy tính, hiệu ứng dụng Vi xử lý lớn Vi xử lý kết hợp với thiết bị khác sử hệ thống lớn, phức tạp đòi hỏi phải xử lý lượng lớn phép tính phức tạp, có tốc độ nhanh Chẳng hạn hệ thống sản xuất tự động công nghiệp, tổng đài điện thoại, robot có khả hoạt động phức tạp v.v Bộ Vi xử lý có khả vượt bậc so với hệ thống khác khả tính toán, xử lý, thay đổi chương trình linh hoạt theo mục đích người dùng, đặc biệt hiệu toán hệ thống lớn Tuy nhiên ứng dụng nhỏ, tầm tính toán không đòi hỏi khả tính toán lớn việc ứng dụng vi xử lý cần cân nhắc Bởi hệ thống dù lớn hay nhỏ, dùng vi xử lý đòi hỏi khối mạch điện giao tiếp phức tạp Các khối bao gồm nhớ để chứa liệu chương trình thực hiện, mạch điện giao tiếp ngoại vi để xuất nhập điều khiển trở lại, khối liên kết với vi xử lý thực công việc Để kết nối khối đòi hỏi người thiết kế phải hiểu biết tinh tường thành phần vi xử lý, nhớ, thiết bị ngoại vi Hệ thống tạo phức tạp, chiếm nhiều không gian, mạch in phức tạp vấn đề trình độ người thiết kế Kết giá thành sản phẩm cuối cao, không phù hợp để áp dụng cho hệ thống nhỏ 1.4 Ứng dụng Là xử lý trung tâm trong: máy tính (PC, Laptop, mini computer, super computer), thiết bị smartphone, thiết bị nhúng, đặc biệt công nghiệp ngành Điện - chuyên ngành Tự động hóa: điều khiển khả trình PLC Vi điều khiển để ứng dụng điều khiển dây chuyền, hệ thống tự động 1.5 Sơ đồ khối hệ vi xử lý Sơ đồ khối máy tính cổ điển Hình 2-1 Sơ đồ khối máy tính cổ điển - ALU (đơn vị logic số học): thực toán cho máy tính bao gồm: +, *, /,-, phép toán logic,… - Control (điều khiển): điều khiển, kiểm soát đường liệu thành phần máy tính - Memory (bộ nhớ): lưu trữ chương trình hay kết trung gian - Input (nhập), Output (Xuất): xuất nhập liệu (còn gọi thiết bị ngoại vi) 1.6 Các thành phần phần cứng hệ Vi xử lý Về kiến trúc hệ vi xử lý gồm phần cứng sau: - Đơn vị xử lý trung tâm CPU (Central Processing Unit) - Các nhớ (Memories) - Các cổng vào/ra (song song (Parallel I/O Ports), nối tiếp (Serial I/O Ports)) - Các đếm/bộ định thời (Timers) - Hệ thống BUS (Địa chỉ, liệu, điều khiển) Bộ não vi xử lý CPU, phần cứng khác quan chấp hành quyền CPU Mỗi quan có chế hoạt động định mà CPU phải tuân theo giao tiếp với chúng Hình 2-3 Sơ đồ khối hệ vi xử lý 1.6.1 Khối xử lý trung tâm (CPU) CPU có cấu tạo gồm có đơn vị xử lý số học lôgic (ALU), ghi, khối lôgic mạch giao tiếp Chức CPU tiến hành thao tác tính toán xử lý, đưa tín hiệu địa chỉ, liệu điều khiển nhằm thực nhiệm vụ người lập trình đưa thông qua lệnh (Instructions) Hình 2-4 Sơ đồ khối CPU 1.6.2 Hệ thống Bus Để giao tiếp điều khiển quan chấp hành (các ngoại vi), CPU sử dụng 03 loại tín hiệu tín hiệu địa (Address), tín hiệu liệu (Data) tín hiệu điều khiển (Control) Về mặt vật lý tín hiệu đường nhỏ dẫn điện nối từ CPU đến ngoại vi chí ngoại vi với Tập hợp đường tín hiệu có chức gọi bus Như ta có bus địa chỉ, bus liệu bus điều khiển Bus địa - Address bus Là đường tín hiệu song song chiều nối từ CPU đến nhớ Độ rộng bus: số đường tín hiệu, 8, 18, 20, 24, 32 hay 64 bits CPU gửi giá trị địa ô nhớ cần truy nhập (đọc/ghi) đường tín hiệu Một CPU với n đường địa địa hoá 2n ô nhớ Ví dụ, CPU có 16 đường địa địa hoá 216 hay 65,536 (64K) ô nhớ Bus liệu - Data bus Độ rộng Bus: 4, 8, 16, 32 hay 64 bits Là đường tín hiệu song song chiều, nhiều thiết bị khác nối với bus liệu; thời điểm, có thiết bị phép đưa liệu lên bus liệu Bất kỳ thiết bị kết nối đến bus liệu phải có đầu dạng trạng thái, cho trạng thái treo (trở kháng cao) không sử dụng Bus điều khiển - Control bus Bao gồm đến 10 đường tín hiệu song song CPU gửi tín hiệu bus điều khiển phép đầu ô nhớ hay cổng I/O địa hoá Các tín hiệu điều khiển thường là: đọc/ ghi nhớ (memory read, memory write), đọc/ ghi cổng vào/ra (I/O read, I/O write) Ví dụ, để đọc byte liệu từ ô nhớ cần đến hoạt động sau: - CPU đưa địa ô nhớ cần đọc lên bus địa - CPU đưa tín hiệu đọc nhớ bus điều khiển - Tín hiệu điều khiển cho phép thiết bị nhớ địa hoá đưa byte liệu lên bus liệu Byte liệu từ ô nhớ truyền tải qua bus liệu đến CPU Bài ĐỊNH DẠNG DỮ LIỆU VÀ BIỂU DIỄN THÔNG TIN TRONG HỆ VXL 2.1 Các hệ đếm - Hệ thập phân - Decimal - Hệ nhị phân - Binary - Hệ16 - Hexadecimal - Mã BCD (standard BCD, gray code): (Binary Coded Decimal) Trong thực tế, số ứng dụng đếm tần, đo điện áp, … ngõ dạng số thập phân, ta dùng mã BCD Mã BCD dùng bit nhị phân để mã hoá cho số thập phân Như vậy, số hex A F không tồn mã BCD Mã BCD gồm có loại: - Mã BCD không nén (unpacked): biểu diễn số BCD bit nhị phân - Mã BCD nén (packed): biểu diễn số BCD bit nhị phân VD: Số thập phân - Số BCD không nén 0000 0101b 0000 0010b 0000 1001b - Số BCD nén 0101b 0010b 1001b - Mã hiển thị đoạn (7-segment display code) Hình 1-6 LED cách mã hóa Các hệ đếm thông dụng: Hệ 10 Hệ Hệ Hệ 16 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 10 11 Binary-Coded Decimal 8421 EXCE Code BCD 0000 SS-3 0011 0001 0011 0011 0010 0100 0011 0011 0101 0011 0100 0110 0011 0101 0111 0011 0110 1000 0011 0111 1001 0011 1000 1010 0011 1001 1011 0011 1100 Gray 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 7-Segment a D bcdefg isplay 11111 11000 10110 11100 11001 1 01101 01111 11000 1 11111 11001 10 11 12 13 14 15 1010 1011 1100 1101 1110 1111 12 13 14 15 16 17 A 0001 0100 1111 B 0000 0001 0011 0100 1110 C 0001 0001 0100 0100 1010 D 0010 0001 0101 0100 1011 E 0011 0001 0110 0100 1001 F 0100 0001 0111 0100 1000 Bảng 1.1 0101Giá trị tương 1000ứng hệ số 11110 01111 00110 11110 10111 00011 A B C D E F 2.2 Mã ký tự Alphanumeric CODE (ASCII, EBCDIC) Hình 1.8 Bảng mã ASCII có ký tự phần mở rộng 2.3 Các phép toán số học hệ đếm nhị phân Phép cộng nhị phân A 0 0 1 1 Vào B BIN 0 1 1 0 1 1 Ra D BOUT 0 1 0 1 0 1 1 10 b) Chân vi điều khiển 8051 Hình 3-8 Sơ đồ chân VĐK AT89C51 Chip AT89C51 có tín hiệu điều khiển cần phải lưu ý sau: • Tín hiệu vào /EA chân 31 thường đặt lên mức cao ( +5V) mức thấp (GND) Nếu mức cao, 8951 thi hành chương trình từ ROM nội khoảng địa thấp (4K tối đa 8k 89C52) Nếu mức thấp, chương trình thi hành từ nhớ mở rộng (tối đa đến 64Kbyte) Ngoài người ta dùng /EA làm chân cấp điện áp 12V lập trình EEPROM 8051 ❖ Chân PSEN (Program store enable): PSEN chân tín hiệu chân 29 Nó tín hiệu điều khiển cho phép chương trình mở rộng, PSEN thường nối đến chân /OE (Output Enable) EPROM ROM phép đọc bytes mã lệnh Hãy nhớ : bình thường chân /PSEN thả trống ( No Connect).Chỉ cho /EA mức thấp lúc đó: /PSEN mức thấp thời gian lấy lệnh Các mã nhị phân chương trình lấy từ EPROM qua bus liệu chốt vào ghi lệnh 8951 để giải mã lệnh /PSEN mức thụ động (mức cao) thi hành chương trình ROM nội 8951 99 ❖ CÁC CHÂN NGUỒN: AT89C51 hoạt động nguồn đơn +5V Vcc nối vào chân 40, Vss (GND) nối vào chân 20 c) Cổng vào/ra Tất vi điều khiển 8051 có cổng vào/ra bit thiết lập cổng vào Như có tất 32 chân I/O cho phép vi điều khiển kết nối với thiết bị ngoại vi Hình 3-9 Cổng vào/ra Hình 3-10 Xuất mức 100 d) Chân vào/ra (I/O) Hình mô tả sơ đồ đơn giản mạch bên chân vi điều khiển trừ cổng P0 điện trở kéo lên (pull-up) Hình 3-11 Trở treo nội chân Chân Một mức logic đặt vào bit ghi P làm cho transistor mở, nối chân tương ứng với đất Hình 3-12 xuất mức Chân vào Một bit đặt vào bit ghi cổng, transistor đóng chân tương ứng nối với nguồn Vcc qua trở kéo lên ❖ Port Port port có chức chân 32 – 39 AT89C51: - Chức I/O (xuất/nhập): dùng cho thiết kế nhỏ Tuy nhiên, - dùng chức Port phải dùng thêm điện trở kéo lên (pull-up), giá trị điện trở phụ thuộc vào thành phần kết nối với Port Khi dùng làm ngõ vào, Port phải set mức logic trước Chức địa / liệu đa hợp: dùng thiết kế lớn, đòi hỏi phải sử dụng nhớ Port vừa bus liệu (8 bit) vừa bus địa (8 bit thấp) 101 Ngoài lập trình cho AT89C51, Port dùng để nhận mã lập trình xuất mã kiểm tra (quá trình kiểm tra đòi hỏi phải có điện trở kéo lên) ❖ Port 1: Port1 (chân – 8) có chức I/O, không dùng cho mục đích khác (chỉ 8032/8052/8952 dùng thêm P1.0 P1.1 cho định thời thứ 3) Tại Port có điện trở kéo lên nên không cần thêm điện trở Port có khả kéo ngõ TTL dùng làm bit địa thấp trình lập trình hay kiểm tra Khi dùng làm ngõ vào, Port phải set mức logic trước ❖ Port 2: Port (chân 21 – 28) port có chức năng: - Chức I/O (xuất / nhập) Chức địa chỉ: dùng làm bit địa cao cần nhớ có - địa 16 bit Khi đó, Port không dùng cho mục đích I/O Khi dùng làm ngõ vào, Port phải set mức logic trước Khi lập trình, Port dùng làm bit địa cao hay số tín hiệu điều khiển ❖ Port 3: Port (chân 10 – 17) port có chức năng: - Chức I/O Khi dùng làm ngõ vào, Port phải set mức logic trước Chức khác: mô tả sau: Bit P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 Tên Chức RxD Ngõ vào port nối tiếp TxD Ngõ port nối tiếp INT0 Ngắt INT1 Ngắt T0 Ngõ vào định thời T1 Ngõ vào định thời WR Tín hiệu điều khiển ghi liệu lên nhớ RD Tín hiệu điều khiển đọc từ nhớ liệu Bảng 3-1 Chức chân Port Các chân nguồn: Chân 40: VCC = 5V± 20% Chân 20: GND ❖ /PSEN (Program Store Enable): /PSEN (chân 29) cho phép đọc nhớ chương trình mở rộng ứng dụng sử dụng ROM ngoài, thường nối đến chân /OC (Output Control) 102 ROM để đọc byte mã lệnh /PSEN mức logic thời gian AT89C51 lấy lệnh Trong trình này, / PSEN tích cực lần chu kỳ máy Mã lệnh chương trình đọc từ ROM thông qua bus liệu (Port0) bus địa (Port0 + Port2) Khi 8051 thi hành chương trình ROM nội, PSEN mức logic ❖ ALE/ PROG (Address Latch Enable / Program): ALE/ PROG (chân 30) cho phép tách đường địa liệu Port truy xuất nhớ ALE thường nối với chân Clock IC chốt (74373, 74573) Các xung tín hiệu ALE có tốc độ 1/6 lần tần số dao động chip dùng làm tín hiệu clock cho phần khác hệ thống Xung cấm cách set bit SFR địa 8Eh lên Khi đó, ALE có tác dụng dùng lệnh MOVX hay MOVC Ngoài ra, chân dùng làm ngõ vào xung lập trình cho ROM nội ( /PROG ) ❖ EA /VPP (External Access) : EA (chân 31) dùng phép thực thi chương trình từ ROM Khi nối chân 31 với Vcc, AT89C51 thực thi chương trình từ ROM nội (tối đa 8KB), ngược lại thực thi từ ROM (tối đa 64KB) Ngoài ra, chân /EA lấy làm chân cấp nguồn 12V lập trình cho ROM ❖ RST (Reset): RST (chân 9) cho phép reset AT89C51 ngõ vào tín hiệu đưa lên mức chu kỳ máy ❖ X1, X2: Ngõ vào ngõ dao động, sử dụng cần kết nối thêm thạch anh tụ hình vẽ sơ đồ Tần số thạch anh thường sử dụng cho AT89C51 12Mhz Giá trị C1, C2 = 30 pF ± 10 pF Hình 3-13 – Sơ đồ kết nối thạch anh 103 d) Tổ chức nhớ 8051 Bộ nhớ ROM 4KB 0000h – 0FFFh RAM 128 byte 00h – 7Fh Bộ nhớ Bộ nhớ chương trình 64 0000h – Điều khiể Bộ nhớ liệu 64 0000h – SFR 80h – 0FFh Điều khiển RD Hình 3-14 Các vùng nhớ AT89C51 Bộ nhớ họ MCS-51 chia thành phần: nhớ nhớ Bộ nhớ bao gồm KB ROM 128 byte RAM (256 byte 8052) Các byte RAM có địa từ 00h – 7Fh ghi chức đặc biệt (SFR) có địa từ 80h – 0FFh truy xuất trực tiếp Đối với 8052, 128 byte RAM cao (địa từ 80h – 0FFh) truy xuất trực tiếp mà truy xuất gián tiếp (xem thêm phần tập lệnh) Bộ nhớ bao gồm nhớ chương trình (điều khiển đọc tín hiệu PSEN ) nhớ liệu (điều khiển tín hiệu RD hay WR phép đọc hay ghi liệu) Do số đường địa MCS-51 16 bit (Port chứa bit thấp Port chứa bit cao) nên nhớ giải mã tối đa 64KB e) Tổ chức nhớ Bộ nhớ MCS-51 gồm ROM RAM RAM bao gồm nhiều vùng có mục đích khác nhau: vùng RAM đa dụng (địa byte từ 30h – 7Fh có thêm vùng 80h – 0FFh ứng với 8052), vùng địa hóa bit (địa byte từ 20h – 2Fh, gồm 128 bit định địa bit từ 00h – 7Fh), bank ghi (từ 00h – 1Fh) ghi chức đặc biệt (từ 80h – 0FFh) ❖ Các ghi chức đặc biệt (SFR – Special Function Registers): Địa byte Có thể định địa bit Không định địa bit 104 F8h F0h B E8h E0h ACC D8h D0h PSW C8h (T2CON) (RCAP2L (RCAP2 ) H) C0h B8h IP SADE B0h P3 N A8h IE SADD A0h P2 R 98h SCON SBUF BRL 90h P1 88h TCON TMOD TL0 TH0 80h P0 SP DPH (TL2 (TH2 ) ) BDRCO N DPL TL1 TH1 AUX CKCO R N PCON Bảng 3-2 Các ghi chức đặc biệt Các ghi định địa bit có địa bit bắt đầu địa byte trùng Ví dụ như: ghi P0 có địa byte 80h có địa bit 80h (ứng với P0.0) đến 87h (ứng với P0.7) Chức ghi mô tả phần sau ❖ RAM nội: chia thành vùng phân biệt: vùng RAM đa dụng (30h – 7Fh), vùng RAM định địa bit (20h – 2Fh) bank ghi (00h – 1Fh) Địa byte7F 30 2F 2E 2D 2C 2B 2A 29 Địa bit Chức Vùng RAM đa dụng 7F 77 6F 67 5F 57 4F 7E 76 6E 66 5E 56 4E 7D 75 6D 65 5D 55 4D 7C 74 6C 64 5C 54 4C 7B 73 6B 63 5B 53 4B 7A 72 6A 62 5A 52 4A 79 71 69 61 59 51 49 78 70 68 60 58 50 48 105 28 27 26 25 24 23 22 21 20 1F 18 17 10 1F 08 07 00 47 3F 37 2F 27 1F 17 0F 07 46 3E 36 2E 26 1E 16 0E 06 45 3D 35 2D 25 1D 15 0D 05 44 43 42 41 40 3C 3B 3A 39 38 34 33 32 31 30 2C 2B 2A 29 28 24 23 22 21 20 1C 1B 1A 19 18 14 13 12 11 10 0C 0B 0A 09 08 04 03 02 01 00 Vùng định địa Bank bit Bank Các bank ghi Bank Bank ghi ( mặc định cho R0R7) Bảng 3-3 Địa RAM nội 8051 ❖ RAM đa dụng: RAM đa dụng có 80 byte từ địa 30h – 7Fh truy xuất lần bit cách dùng chế độ địa trực tiếp hay gián tiếp Các vùng địa thấp từ 00h – 2Fh sử dụng cho mục đich chức đề cập phần sau ❖ RAM định địa bit: Vùng địa từ 20h – 2Fh gồm 16 byte (= 128 bit) thực giống vùng RAM đa dụng (mỗi lần bit) hay thực truy xuất lần bit lệnh xử lý bit Vùng RAM có địa bit bắt đầu giá trị 00h kết thúc 7Fh Như vậy, địa bắt đầu 20h (gồm bit) có địa bit từ 00h – 07h; địa kết thúc 2Fh có địa bit từ 78h – Fh ❖ Các bank ghi: Vùng địa từ 00h – 1Fh chia thành bank ghi: bank từ 00h- 07h, bank từ 08h – 0Fh, bank từ 10h – 17h bank từ 18h – 1Fh Các bank ghi đại diện ghi từ R0 đến R7 Sau khởi động hệ thống bank ghi sử dụng bank Do có bank ghi nên thời điểm có bank ghi truy xuất ghi R0 đến R7 Việc thay đổi bank ghi thực thông qua ghi từ trạng thái chương trình (PSW) Các bank ghi truy xuất bình thường vùng RAM đa dụng nói f) Tổ chức nhớ MCS-51 có nhớ theo cấu trúc Harvard: phân biệt nhớ chương trình liệu Chương trình liệu chứa bên kết nối với 64KB chương trình 64KB liệu Bộ nhớ chương trình truy 106 xuất thông qua chân PSEN nhớ liệu đươc truy xuất thông qua chân WR hay RD Lưu ý việc truy xuất nhớ chương trình luôn sử dụng địa 16 bit nhớ liệu bit hay 16 bit tuỳ theo câu lệnh sử dụng Khi dùng nhớ liệu bit dùng Port Port I/O thông thường dùng chế độ 16 bit Port dùng làm bit địa cao Port dùng làm địa thấp/ liệu đa hợp Tín hiệu /ALE để tách byte địa đưa vào chốt Trong chu kỳ ghi, byte liệu tồn Port vừa trước /WR tích cực giữ /WR không tích cực.Trong chu kỳ đọc, byte nhận chấp nhận vừa trước /RD không tích cực Bộ nhớ chương trình xử lý điều kiện sau: - Tín hiệu /EA tích cực ( = 0) Giá trị đếm chương trình (PC – Program Counter) lớn kích thước nhớ PCH: Program Counter High – PCL: Program Counter Low DPH: Data Pointer High – DPL: Data Pointer Low Hình 3-15 Thực thi nhớ chương trình 107 ❖ Bộ nhớ chương trình ngoài: Quá trình thực thi lệnh dùng nhớ chương trình mô tả ―Hình 3-15 Thực thi nhớ chương trình ngoài‖ Trong trình này, Port Port không Port xuất nhập mà chứa địa liệu Sơ đồ kết nối với nhớ chương trình mô tả ―Hình 3-14 Các vùng nhớ AT89C51‖ Trong chu kỳ máy, tín hiệu ALE tích cực lần Lần thứ cho phép 74HC573 mở cổng chốt địa byte thấp, /ALE xuống byte thấp byte cao đếm chương trình có ROM chưa xuất PSEN chưa tích cực, tín hiệu ALE lên 1trở lại Port có liệu mã lệnh ALE tích cực lần thứ hai giải thích tương tự byte đọc từ nhớ chương trình Nếu lệnh thực thi lệnh byte CPU đọc Opcode, byte thứ hai bỏ qua ❖ Bộ nhớ liệu ngoài: Bộ nhớ liệu truy xuất lệnh MOVX thông qua ghi xác định địa DPTR (16 bit) hay R0, R1 (8 bit) Quá trình thực đọc hay ghi liệu cho phép tín hiệu RD hay WR (chân P3.7 P3.6) ❖ Bộ nhớ chương trình liệu dùng chung: Trong ứng dụng phát triển phần mềm xây dựng dựa AT89C51, ROM lập trình nhiều lần nên dễ làm hư hỏng ROM Một giải pháp đặt sử dụng RAM để chứa chương trình tạm thời Khi đó, RAM vừa nhớ chương trình vừa nhớ liệu Yêu cầu thực cách kết hợp chân RD chân PSEN thông qua cổng AND Khi thực đọc mà lệnh, chân /PSEN tích cực cho phép đọc từ RAM đọc liệu, chân RD tích cực ❖ Giải mã địa Trong ứng dụng dựa AT89C51, giao tiếp nhớ dỡ liệu, vi điều khiển thực giao tiếp với thiết bị khác bàn phím, led, động cơ, … Các thiết bị giao tiếp trực tiếp thông qua Port Tuy nhiên, số lượng thiết bị lớn, Port không đủ để thực điều khiển Giải pháp đưa xem thiết bị giống nhớ liệu Khi đó, cần phải thực trình giải mã địa để phân biệt thiết bị ngoại vi khác Quá trình giải mã địa thường thực thông qua IC giải mã 74139 (2 -> 4), 74138 ( -> 8), 74154 (4 -> 16) Ngõ IC giải mã đưa tới chân chọn chip RAM hay đệm điều khiển ngoại vi g) Các ghi chức đặc biệt (SFRs - Special Function Registers) ❖ Thanh ghi tích luỹ (Accumulator) Thanh ghi tích luỹ ghi sử dụng nhiều AT89C51, ký 108 hiệu câu lệnh A Ngoài ra, lệnh xử lý bit, ghi tích luỹ ký hiệu ACC Thanh ghi tích luỹ truy xuất trực tiếp thông qua địa E0h (byte) hay truy xuất bit thông qua địa bit từ E0h đến E7h VD: Câu lệnh: MOV A,#1 MOV 0E0h,#1 có kết Hay: SETB ACC.4 SETB 0E4h tương tự ❖ Thanh ghi B Thanh ghi B dùng cho phép toán nhân, chia dùng ghi tạm, chứa kết trung gian Thanh ghi B có địa byte F0h địa bit từ F0h – F7h truy xuất giống ghi A ❖ Thanh ghi từ trạng thái chương trình (PSW - Program Status Word) Thanh ghi từ trạng thái chương trình PSW nằm địa D0h có địa bit từ D0h – D7h, bao gồm bit (1 bit không sử dụng) có chức sau: Bit Chức CY AC F0 RS1 RS0 OV F1 P ▪ CY (Carry): cờ nhớ, thường dùng cho lệnh toán học không dấu (C = có nhớ phép cộng hay mượn phép trừ) ▪ AC (Auxiliary Carry): cờ nhớ phụ (thường dùng cho phép toán BCD) ▪ F0 (Flag 0): sử dụng tuỳ theo yêu cầu người sử dụng ▪ RS1, RS0: dùng để chọn bank ghi sử dụng Khi reset hệ thống, bank sử dụng RS1 RS0 Bank ghi 0 Bank 0 Bank 1 Bank 1 Bank ▪ OV (Overflow): cờ tràn Cờ OV = có tượng tràn số học xảy 109 (dùng cho số nguyên có dấu) ▪ F1 (Flag 1): sử dụng tuỳ theo yêu cầu người sử dụng ▪ P (Parity): kiểm tra parity (lẻ) Cờ P = tổng số bit ghi A số lẻ (nghĩa tổng số bit ghi A cộng thêm cờ P số chẵn) Ví dụ như: A = 10101010b có tổng cộng bit nên P = Cờ P thường dùng để kiểm tra lỗi truyền liệu ❖ Thanh ghi trỏ stack (SP – Stack Pointer) Con trỏ stack SP nằm địa 81h không cho phép định địa bit SP dùng để đến đỉnh stack Stack dạng nhớ lưu trữ dạng LIFO (Last In First Out) thường dùng lưu trữ địa trả gọi chương trình Ngoài ra, stack dùng nhớ tạm để lưu lại khôi phục giá trị cần thiết Đối với AT89C51, stack chứa RAM nội (128 byte 8031/8051 hay 256 byte 8032/8052) Mặc định khởi động, giá trị SP 07h, nghĩa stack địa 08h (do hoạt động lưu giá trị vào stack yêu cầu phải tăng nội dung ghi SP trước lưu) Như vậy, không gán giá trị cho ghi SP không sử dụng bank ghi 1, 2, làm sai liệu Đối với ứng dụng thông thường không cần dùng nhiều đến stack, có thểkhông cần khởi động SP mà dùng giá trị mặc định 07h Tuy nhiên, cần, ta xác định lại vùng stack cho MCS-51 ❖ Con trỏ liệu DPTR (Data Pointer) Con trỏ liệu DPTR ghi 16 bit bao gồm ghi bit: DPH (High) nằm địa 83h DPL (Low) nằm địa 82h Các ghi không cho phép định địa bit DPTR dùng truy xuất đến nhớ có địa 16 bit ❖ Các ghi port Các ghi P0 địa 80h, P1 địa 90h, P2, địa A0h, P3 địa B0h ghi chốt cho port xuất / nhập (Port 0, 1, 2, 3) Tất ghi cho phép định địa bit địa bit P0 từ 80h – 87h, P1 từ 90h – 97h, P2 từ A0h – A7h, P3 từ B0h – B7h Các địa bit thay toán tử địa Ví dụ như: lệnh sau tương đương: SETB P0.0 SETB 80h 110 ❖ Thanh ghi port nối tiếp (SBUF - Serial Data Buffer) Thanh ghi port nối tiếp địa 99h thực chất bao gồm ghi: ghi nhận ghi truyền Nếu liệu đưa tới SBUF ghi truyền, liệu đươc đọc từ SBUF ghi nhận Các ghi không cho phép định địa bit ❖ Các ghi định thời (Timer Register) Các cặp ghi (TH0, TL0), (TH1, TL1) (TH2, TL2) ghi dùng cho định thời 0, định thời có 8032/8052 Ngoài ra, họ 8032/8052 có thêm cặp ghi (RCAP2L, RCAP2H) sử dụng cho định thời (sẽ thảo luận phần hoạt động định thời) ❖ Các ghi điều khiển Bao gồm ghi IP (Interrupt Priority), IE (Interrupt Enable), TMOD (Timer Mode), TCON (Timer Control), T2CON (Timer Control), SCON (Serial port control) PCON (Power control) - Thanh ghi IP địa B8h cho phép chọn mức ưu tiên ngắt có ngắt xảy đông thời IP cho phép định địa bit từ B8h – BFh - Thanh ghi IE địa A8h cho phép hay cấm ngắt IE có địa bit từ A8h – AFh Thanh ghi TMOD địa 89h dùng để chọn chế độ hoạt động cho định thời (0, 1) không cho phép định địa bit - Thanh ghi TCON địa 88h điều khiển hoạt động định thời ngắt TCON có địa bit từ 88h – 8Fh - Thanh ghi T2CON địa C8h điều khiển hoạt động định thời T2CON có địa bit từ C8h – CFh - Thanh ghi SCON địa 98h điều khiển hoạt động port nối tiếp SCON có địa bit từ 98h – 9Fh Các ghi nói thảo luận thêm phần sau ❖ Thanh ghi điều khiển nguồn PCON Thanh ghi PCON địa 87h không cho phép định địa bit bao gồm bit sau: Bit Chức SMOD1 SMOD0 POF GF1 GF0 PD IDL SMOD1 (Serial Mode 1): = cho phép tăng gấp đôi tốc độ port nối tiếp chế độ 1, SMOD0 (Serial Mode 0): cho phép chọn bit SM0 hay FE ghi SCON ( = chọn bit FE) 111 POF (Power-off Flag): dùng để nhận dạng loại reset POF = mở nguồn Do đó, để xác định loại reset, cần phải xoá bit POF trước GF1, GF0 (General purpose Flag): bit cờ dành cho người sử dụng PD (Power Down): xoá phần cứng hoạt động reset xảy Khi bit PD = vi điều khiển chuyển sang chế độ nguồn giảm Trong chế độ này: - Chỉ thoát khỏi chế độ nguồn giảm cách reset - Nội dung RAM mức logic port trì - Mạch dao động bên chức khác ngừng hoạt động - Chân ALE PSEN mức thấp - Yêu cầu Vcc phải có điện áp 2V phục hồi Vcc = 5V 10 chu kỳ trước chân RESET xuống mức thấp lần IDL (Idle): xoá phần cứng hoạt động reset hay có ngắt xảy Khi bit IDL = vi điều khiển chuyển sang chế độ nghỉ Trong chế độ này: - Chỉ thoát khỏi chế độ nguồn giảm cách reset hay có ngắt xảy - - Trạng thái hành vi điều khiển trì nội dung ghi không đổi - Mạch dao động bên không gởi tín hiệu đến CPU Chân ALE PSEN mức cao Lưu ý bit điều khiển PD IDL có tác dụng tất IC họ MSC-51 thực phiên CMOS h) Bộ đếm định thời Định thời hoạt động để kiểm soát thời gian thực thi câu lệnh trình xử lý vi điều khiển 8051 có hai định thời/ đếm Chúng dùng định thời để tạo trễ thời gian đếm để đếm kiện xảy bên VĐK Các timer timer 16bit, giá trị đếm tính từ đến 216 (đếm từ đến 65535) Hai timer có nguyên lý hoạt động hoàn toàn giống độc lập Sau cho phép chạy, có thêm xung đầu vào đếm, giá trị timer tự động tăng lên đơn vị, giá trị tăng lên vượt giá trị 65535 mà ghi đếm biểu diễn giá trị đếm lại đưa trở giá trị Việc cho timer chạy/dừng thực bit TR ghi TCON (đánh địa đến bit) Các timer hoạt động theo nhiều chế độ, quy định bit 112 ghi TMOD i) Truyền thông không đồng (UART) 8051 có cổng UART làm việc chuẩn TTL, mặc định sau khởi động tất cổng 8051 dều làm việc chế độ vào số, để sử dụng UART cần phải cấu hình cho cổng làm việc thông qua ghi điều khiển ghép nối tương thích với chuẩn rs232 Hình 3-16 - Ghép nối RS232 với 8051 Cổng nối tiếp 8051 chủ yếu dùng ứng dụng có yêu cầu truyền thông với máy tính, với vi điều khiển khác Liên quan đến cổng nốitiếp chủ yếu có ghi: SCON SBUF Ngoài ra, ghi khác ghi PCON (không đánh địa bit) có bit tên SMOD quy định tốc độ truyền cổng nối tiếp có gấp đôi lên (SMOD = 1) hay không (SMOD = 0) Dữ liệu truyền nhận nối tiếp thông qua hai chân cổng P3.0(RxD) P3.1(TxD) j) Ngắt vi điều khiển 8051 8051 hỗ trợ loại ngắt, ngắt có vector ngắt riêng, địa cố định nằm nhớ chương trình Khi xảy ngắt CPU tự động nhảy đến thực lệnh thuộc địa Liên quan đến ngắt chủ yếu có hai ghi ghi IE ghi IP Thanh ghi IE ghi đánh địa bit, dùng lệnh tác động bit để tác động riêng rẽ lên bit mà không làm ảnh hưởng đến giá trị bit khác Để cho phép ngắt, bit tương ứng với ngắt bit EA phải đặt Bài 12 THẢO LUẬN VỀ CÁC HỆ VI XỬ LÝ TIÊN TIẾN VÀ HỌ VI ĐIỀU KHIỂN 113 ... thiết bị có chức gọi hệ vi xử lý Máy vi tính hệ thống vi xử lý Một thành phần quan trọng hệ thống máy vi tính, vi xử lý Trên thực tế, có nhiều hãng chế tạo vi xử lý cho máy vi tính như: IBM, Intel,... phần cứng gọi ngoại vi (Peripherals) Về sau, nhờ phát triển vượt bậc công nghệ tích hợp, ngoại vi tích hợp vào bên IC người ta gọi vi xử lý tích hợp thêm ngoại vi vi điều khiển‖ Vi xử lý có khối... khả làm vi c với nhớ ảo + Có chế pipeline, nhớ cache + Sử dụng công nghệ HCMOS - Thế hệ 5: vi xử lý 64 bit 1.3 Chức Khái niệm vi xử lý” (microprocessor) Vi xử lý thuật ngữ chung dùng để đề cập