1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Kỹ thuật vi điều khiển

300 168 0

Đ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 300
Dung lượng 3,02 MB

Nội dung

BM kỹ thuật Vi điều Khiển  ĐH Kỹ thuật công NghiệpThái Nguyên Mục lục CHƯƠNG I: CÁC KHÁI NIỆM CƠ BẢN VÀ CẤU TRÚC CHUNG - 1.1 GIỚI THIỆU CHUNG VỀ VI XỬ LÝ - 1.1.1 TỔNG QUAN - 1.1.1.1 Khái niệm - 1.1.1.2 Lịch sử phát triển vi xử lý - 1.1.2 ĐẶC ĐIỂM CHUNG CỦA BỘ VI XỬ LÝ .- 1.2 CẤU TRÚC HỆ VI XỬ LÝ VÀ TỔ CHỨC BÊN TRONG CPU - 10 1.2.1 CẤU TRÚC CHUNG CỦA MỘT HỆ VI XỬ LÝ - 10 1.2.1.1 Khối xử lý trung tâm, CPU - 10 1.2.1.2 Bộ nhớ bán dẫn (Memory) - 10 1.2.1.3 Khối phối ghép vào/ra (I/O) - 11 1.2.1.4 Hệ thống Bus - 11 1.2.2 CẤU TRÚC CHUNG CỦA CPU - 12 1.2.2.1 Khối ALU .- 12 1.2.2.2 Các ghi bên vi xử lý - 14 1.2.2.3 Khối điều khiển logic khối giải mã lệnh - 14 1.2.2.4 Bus liệu bên vi xử lý (Internal data bus) .- 14 1.3 CẤU TRÚC DỮ LIỆU TRONG HỆ VI XỬ LÝ - 15 1.3.1 CÁC HỆ ĐẾM DÙNG TRONG HỆ VI XỬ LÝ - 15 1.3.1.1 Hệ số mười (Decimal – thập phân) - 15 1.3.1.2 Hệ số hai (Binary – nhị phân) - 15 1.3.1.3 Hệ số 16 (Hexa decimal – thập lục phân) .- 15 1.3.1.4 Hệ mười mã hoá hệ hai (Hệ BCD) - 16 1.3.2 BIỂU DIỄN CÁC SỐ VÀ KÝ TỰ THEO MÃ HỆ HAI - 16 1.3.2.1 Biểu diễn số nguyên .- 16 1.3.2.2 Biểu diễn số thực - 19 1.3.2.3 Biểu diễn ký tự theo mã ASCII - 19 1.3.3 CÁC PHÉP TOÁN SỐ HỌC VỚI MÃ HỆ HAI - 21 1.3.3.1 Phép cộng - 21 1.3.3.2 Phép trừ - 21 1.3.3.3 Phép nhân .- 22 1.3.3.4 Phép chia .- 23 CHƯƠNG II: HỌ VI XỬ LÝ INTEL 80x86 - 25 2.1 CẤU TRÚC CỦA BỘ VI XỬ LÝ 8086 .- 25 2.1.1 TỔNG QUAN - 25 2.1.2 CẤU TRÚC BÊN TRONG VÀ HOẠT ĐỘNG CỦA VI XỬ LÝ 8086 - 25 2.1.2.1 Các khối chức CPU .- 25 2.1.2.2 Các ghi CPU - 28 2.1.3 MÔ TẢ CHỨC NĂNG CÁC CHÂN CỦA VI XỬ LÝ 8086 - 32 2.1.4 TỔ CHỨC BỘ NHỚ CỦA VI XỬ LÝ 8086 - 36 2.2 CÁC CHẾ ĐỘ ĐỊNH ĐỊA CHỈ CỦA BỘ VI XƯ LÝ 8086 - 37 2.2.1 CHẾ ĐỘ ĐỊA CHỈ THANH GHI - 40 2.2.2 CHẾ ĐỘ ĐỊA CHỈ TỨC THÌ - 40 2.2.3 CHẾ ĐỘ ĐỊA CHỈ TRỰC TIẾP - 40 2.2.4 CHẾ ĐỘ ĐỊA CHỈ GIÁN TIẾP QUA THANH GHI - 40 2.2.5 CHẾ ĐỘ ĐỊA CHỈ TƯƠNG ĐỐI CƠ SỞ - 41 Giáo Trình Hệ vi điều khiển -1- Biên Soạn: Dương Quốc Hưng BM kỹ thuật Vi điều Khiển  ĐH Kỹ thuật công NghiệpThái Nguyên 2.2.6 CHẾ ĐỘ ĐỊA CHỈ TƯƠNG ĐỐI CHỈ SỐ - 41 2.2.7 CHẾ ĐỘ ĐỊA CHỈ TƯƠNG ĐỐI CHỈ SỐ CƠ SỞ - 41 2.2.8 CHẾ ĐỘ ĐỊA CHỈ CHUỖI (STRING) – MẢNG - 42 2.2.9 CHẾ ĐỘ ĐỊA CHỈ CỔNG (PORT) - 42 2.3 TẬP LỆNH CỦA VI XỬ LÝ 8086 .- 43 2.3.1 GIỚI THIỆU CHUNG - 43 2.3.2 TẬP LỆNH CỦA VI XỬ LÝ 8086 - 43 2.3.2.1 Nhóm lệnh vận chuyển (sao chép) liệu - 43 2.3.2.2 Nhóm lệnh tính toán số học - 48 2.3.2.3 Nhóm lệnh tính toán logic - 52 2.3.2.4 Nhóm lệnh dịch, quay toán hạng - 52 2.3.2.5 Nhóm lệnh so sánh - 57 2.3.2.6 Nhóm lệnh nhảy (rẽ nhánh) - 58 2.3.2.7 Nhóm lệnh lặp - 67 2.3.2.8 Nhóm lệnh điều khiển, đặc biệt khác - 69 2.4 CÁC MẠCH PHỤ TRỢ - 73 2.4.1 MẠCH TẠO XUNG NHỊP - 73 2.4.2 MẠCH CHỐT VÀ ĐỆM BUS .- 74 2.4.2.1 Mạch chốt (Latch) - 74 2.4.2.2 Bộ đệm bus .- 76 2.4.3 CÁC BỘ NHỚ - 78 2.4.3.1 Bộ nhớ cố định ROM (Read Only Memory) .- 78 2.4.3.2 Bộ nhớ bán cố định EPROM (Erasable Programable ROM) - 78 2.4.3.3 RAM (Random Access Memory – nhớ đọc/ghi) - 79 2.4.4 MẠCH GIẢI MÃ ĐỊA CHỈ - 82 2.4.4.1 Thực giải mã mạch NAND - 82 2.4.4.2 Thực giả mã mạch giải mã 74LS138 - 83 2.4.4.3 Thực giải mã dùng PROM - 85 2.5 BIỂU ĐỒ THỜI GIAN ĐỌC/GHI CỦA VI XỬ LÝ - 86 2.5.1 XUNG NHỊP VÀ CHU KỲ MÁY - 86 2.5.2 CHU KỲ ĐỌC/GHI CỦA VI XỬ LÝ 8086 - 87 2.6 CÁC CHẾ ĐỘ LÀM VIỆC CỦA VI XỬ LÝ .- 88 2.6.1 CHẾ ĐỘ KHỞI ĐỘNG - 88 2.6.2 CHẾ ĐỘ ĐỢI - 89 2.6.3 CHẾ ĐỘ TREO - 89 2.6.4 CHẾ ĐỘ NGẮT - 89 2.6.5 CHẾ ĐỘ DỪNG .- 90 2.7 MỘT SỐ VÍ DỤ - 90 2.8 LẬP TRÌNH HỢP NGỮ CHO VI XỬ LÝ 8086/8088 - 94 2.8.1 GIỚI THIỆU CHUNG VỀ HỢP NGỮ - 94 2.8.2 CÚ PHÁP CỦA CHƯƠNG TRÌNH HỢP NGỮ - 94 2.8.2.1 Các trường hợp ngữ .- 94 2.8.2.2 Khai báo biến, hằng, chương trình .- 95 2.8.3 KHUÔN DẠNG CỦA CHƯƠNG TRÌNH HỢP NGỮ - 98 2.8.3.1 Chương trình EXE .- 98 2.8.3.2 Chương trình COM - 101 2.8.4 CẤU TRÚC LẬP TRÌNH CƠ BẢN BẰNG HỢP NGỮ .- 102 2.8.4.1 Cấu trúc - 102 -2Giáo Trình Hệ vi điều khiển Biên Soạn: Dương Quốc Hưng BM kỹ thuật Vi điều Khiển  ĐH Kỹ thuật công NghiệpThái Nguyên 2.8.4.2 Cấu trúc rẽ nhánh - 102 2.8.4.3 Cấu trúc lặp - 104 CHƯƠNG III: HỆ VI ĐIỀU KHIỂN BIT HỌ 8051 - 107 3.1 CẤU TRÚC PHẦN CỨNG HỌ VI ĐIỀU KHIỂN 8051 - 107 3.1.1 GIỚI THIỆU CHUNG - 107 3.1.2 SƠ ĐỒ CẤU TRÚC CỦA HỌ VI ĐIỀU KHIỂN 8051 .- 109 3.1.3 MÔ TẢ CHỨC NĂNG CÁC CHÂN CỦA 8051 .- 110 3.1.3.1 Các Port - 110 3.1.3.2 Các ngõ tín hiệu điều khiển - 112 3.1.3.3 Các chân nguồn đồng hồ - 113 3.1.4 TỔ CHỨC BỘ NHỚ CỦA 8051 - 113 3.1.4.1 Các bank ghi có địa từ 00H – 1FH - 115 3.1.4.2 RAM địa hóa bit có địa từ 20H đến 2FH .- 116 3.1.4.3 RAM đa dụng có địa từ 30H – 7FH .- 116 3.1.4.4 Các ghi có chức đặc biệt - 116 3.1.5 HOẠT ĐỘNG RESET - 121 3.2 CÁC CHẾ ĐỘ ĐỊA CHỈ CỦA 8051 - 121 3.2.1 Kiểu định địa dùng ghi (Register Addressing) - 122 3.2.2 Kiểu định địa trực tiếp (Direct Addressing) - 122 3.2.3 Định địa gián tiếp (Indirect Addressing) .- 122 3.2.4 Định địa tức thời (Immediate Addressing) .- 122 3.2.5 Định địa tương đối - 123 3.2.6 Định địa tuyệt đối - 123 3.2.7 Định địa dài (Long Addressing) - 123 3.2.8 Định địa chỉ số (Index Addressing) - 123 3.3 TẬP LỆNH CỦA 8051 .- 124 3.3.1 NHÓM LỆNH SỐ HỌC .- 124 3.3.2 NHÓM LỆNH LOGIC - 127 3.3.3 NHÓM LỆNH DI CHUYỂN DỮ LIỆU .- 130 3.3.4 NHÓM LỆNH XỬ LÝ BIT - 132 3.3.5 NHÓM LỆNH RẼ NHÁNH - 133 3.4 LẬP TRÌNH HỢP NGỮ CHO VI ĐIỀU KHIỂN 8051 - 138 3.4.1 TRÌNH DỊCH HỢP NGỮ - 138 3.4.2 KHUÔN DẠNG CỦA CHƯƠNG TRÌNH HỢP NGỮ - 139 3.4.3 KIỂU DỮ LIỆU VÀ CHỈ DẪN - 139 3.4.3.1 Kiểu liệu - 139 3.4.3.2 Chỉ dẫn - 140 3.4.4 CỔNG VÀO/RA VÀ LẬP TRÌNH - 141 3.4.4.1 Giới thiệu cổng (port) 8051 - 141 3.4.4.2 Lập trình vào/ra, thao tác bit .- 143 3.4.5 BỘ ĐẾM/ĐỊNH THỜI CỦA 8051 VÀ LẬP TRÌNH - 147 3.4.5.1 Các ghi phục vụ cho Timer/counter - 148 3.4.5.2 Lập trình định thời gian 8051 - 150 3.4.5.3 Lập trình cho đếm - 155 3.4.6 LẬP TRÌNH TRUYỀN THÔNG NỐI TIẾP CHO 8051 .- 158 3.4.6.1 Cơ sở truyền thông nối tiếp - 158 3.4.6.2 Chuẩn RS232 - 160 3.4.6.3 Ghép nối 8051 với RS232 - 162 Giáo Trình Hệ vi điều khiển -3- Biên Soạn: Dương Quốc Hưng BM kỹ thuật Vi điều Khiển  ĐH Kỹ thuật công NghiệpThái Nguyên 3.4.6.4 Lập trình truyền thông nối tiếp 8051 .- 164 3.4.6.5 Nhân đôi tốc độ baud 8051 .- 169 3.4.7 LẬP TRÌNH NGẮT 8051 - 171 3.4.7.1 Tổng quan - 171 3.4.7.2 Trình tự thực ngắt .- 172 3.4.7.3 Sáu ngắt 8051 (bảng 5.3.3a) - 173 3.4.7.4 Cho phép ngắt cấm ngắt - 173 3.4.7.5 Điều kiện cho phép ngắt - 174 3.4.7.6 Lập trình ngắt định thời 8051 .- 175 3.4.7.7 Lập trình ngắt phần cứng .- 176 3.4.7.8 Lập trình ngắt truyền thông nối tiếp cho 8051 - 181 CHƯƠNG IV: GHÉP NỐI VÀ TRAO ĐỔI DỮ LIỆU TRONG HỆ VI XỬ LÝ - 187 4.1 GHÉP NỐI VI XỬ LÝ/VI ĐIỀU KHIỂN VỚI BỘ NHỚ NGOÀI - 187 4.1.1 MỘT SỐ CHÂN CỦA 8051 PHỤC VỤ CHO GHÉP NỐI VỚI BỘ NHỚ NGOÀI .- 187 4.1.1.1 Chân EA .- 187 4.1.1.2 Cổng P0 P2 - 187 4.1.1.3 Chân PSEN - 188 4.1.1.4 Chân RD WR - 188 4.1.2 GHÉP NỐI VI ĐIỀU KHIỂN 8051 VỚI BỘ NHỚ CHƯƠNG TRÌNH NGOÀI .- 188 4.1.3 GHÉP NỐI VI ĐIỀU KHIỂN 8051 VỚI BỘ NHỚ DỮ LIỆU NGOÀI - 189 4.2 GHÉP NỐI SONG SONG VÀ LẬP TRÌNH - 194 4.2.1 TỔNG QUAN .- 194 4.2.2 GHÉP NỐI 8051 VỚI 8255A .- 195 4.2.2.1 Chức chân 8255A - 195 4.2.2.2 Chọn chế độ 8255A .- 197 4.3 PHỐI GHÉP VI ĐIỀU KHIỂN VỚI THẾ GIỚI THỰC 1: PHỐI GHÉP 8051 VỚI MÀN HÌNH TINH THỂ LỎNG LCD, CHUYỂN ĐỔI TƯƠNG TỰ – SỐ ADC VÀ CẢM BIẾN NHIỆT - 204 4.3.1 PHỐI GHÉP VI XỬ LÝ VỚI MÀN HÌNH TINH THỂ LỎNG LCD - 204 4.3.1.1 Mô tả chân LCD - 205 4.3.1.2 Bảng lệnh LCD - 206 4.3.1.3 Lập trình gửi/nhận liệu đến/từ LCD - 209 4.3.2 GHÉP NỐI ADC VỚI 8051 VÀ LẬP TRÌNH - 216 4.3.2.1 Giới thiệu ADC0804 - 216 4.3.2.2 Nối ghép ADC0804 với 8051 lập trình - 219 4.3.3 NỐI GHÉP 8051 VỚI CẢM BIẾN NHIỆT - 223 4.3.3.1 Giới thiệu chung cảm biến nhiệt - 223 4.3.3.2 Phối hợp tín hiệu phối ghép LM35 với 8051 - 223 4.4 PHỐI GHÉP VI ĐIỀU KHIỂN VỚI THẾ GIỚI THỰC 2: PHỐI GHÉP 8051 VỚI ĐỘNG CƠ BƯỚC, BÀN PHÍM VÀ BỘ BIÉN ĐỔI SỐ – TƯƠNG TỰ DAC - 224 4.4.1 NỐI GHÉP 8051 VỚI ĐỘNG CƠ BƯỚC - 224 4.4.1.1 Phân loại động bước .- 225 4.4.1.2 Nguyên lý hoạt động động bước - 226 4.4.1.3 Một số thông số khái niệm .- 230 4.4.2 NỐI GHÉP 8051 VỚI BÀN PHÍM - 235 Giáo Trình Hệ vi điều khiển -4- Biên Soạn: Dương Quốc Hưng BM kỹ thuật Vi điều Khiển  ĐH Kỹ thuật công NghiệpThái Nguyên 4.4.2.1 Phối ghép bàn phím với 8051 .- 235 4.4.2.2 Quét xác định phím - 236 4.4.2.3 Nối đất hàng đọc cột - 236 4.4.3 PHỐI GHÉP MỘT DAC VỚI 8051 .- 241 4.4.3.1 Bộ biến đổi số - tương tự DAC - 241 4.4.3.2 Bộ biến đổi DAC MC1408 (hay DAC0808) .- 242 4.4.3.3 Chuyển Iout sang điện áp DAC0808 - 242 Phụ lục 1: Danh mục từ viết tắt .- 245 Phụ lục 2: Tập lệnh họ vi xử lý 80x86 - 246 Phụ lục 3: Tập lệnh vi điều khiển họ 8051 .- 293 Nhóm lệnh số học (Mathematical (Arithmetic) Instructions) .- 293 Nhóm lệnh Logic (Logic Instructions) - 294 Nhóm lệnh di chuyển liệu (Data Transfer Instructions) .- 295 Nhóm lệnh xử lý bit (Bit Oriented Instructions) - 297 Nhóm lệnh chuyển quyền điều khiển (rẽ nhánh) (Control Transfer Instructions) - 298 - Giáo Trình Hệ vi điều khiển -5- Biên Soạn: Dương Quốc Hưng BM kỹ thuật Vi điều Khiển  ĐH Kỹ thuật công NghiệpThái Nguyên CHƯƠNG I: CÁC KHÁI NIỆM CƠ BẢN VÀ CẤU TRÚC CHUNG 1.1 GIỚI THIỆU CHUNG VỀ VI XỬ LÝ 1.1.1 TỔNG QUAN 1.1.1.1 Khái niệm Vi xử lý gồm cổng logic giống cổng logic sử dụng đơn vị xử lý trung tâm (Central Procecessing Unit) máy tính số Do cấu trúc giống CPU xây dựng từ mạch vi điện tử nên có tên vi xử lý: microprocessor Giống CPU, microprocessor có mạch điện tử cho việc điều khiển liệu (data) tính toán liệu điều khiển chương trình Ngoài microprocessor đơn vị xử lý liệu Để xử lý liệu, vi xử lý phải điều khiển mạch logic, để vi xử lý điều khiển mạch logic cần phải có chương trình Chương trình tập hợp lệnh để xử lý liệu, lệnh lưu trữ nhớ Công việc thực lệnh bao gồm bước sau: đón lệnh từ nhớ, sau mạch logic điều khiển giải mã lệnh sau mạch logic điều khiển thực lệnh sau giải mã Do lệnh lưu trữ nhớ nên thay đổi lệnh cần Khi thay đổi lệnh vi xử lý tức thay đổi cách thức xử lý liệu Các lệnh lưu trữ nhớ định công việc mà vi xử lý làm Như vậy: Vi xử lý vi mạch cỡ lớn cực lớn với chức là: xử lý liệu Để làm điều vi xử lý phải có mạch logic cho việc xử lý điều khiển liệu Các mạch logic xử lý di chuyển liệu từ nơi sang nơi khác thực phép toán liệu, mạch logic điều khiển định mạch điện cho việc xử lý liệu vi xử lý thực lệnh với trình tự sau: đón lệnh từ nhớ, mạch logic điều khiển giải mã lệnh để xem lệnh yêu cầu vi xử lý thực công việc gì, sau vi xử lý thực công việc lệnh yêu cầu, trình gọi chu kỳ đón - - thực Ngoài chức đón thực lệnh, mạch logic điều khiển điều khiển mạch điện giao tiếp bên kết nối với vi xử lý vi xử lý cần phải có trợ giúp mạch điện bên Các mạch điện dùng để lưu trữ lệnh để vi xử lý xử lý gọi nhớ, mạch điện giao tiếp để di chuyển liệu từ bên vào bên vi xử lý xuất liệu từ bên vi xử lý gọi thiết bị ghé p nối vào I/O 1.1.1.2 Lịch sử phát triển vi xử lý Vi xử lý kết hợp kỹ thuật công nghệ quan trọng nhất: máy tính dùng kỹ thuật số (Digital Computer) mạch vi điện tử Hai công nghệ kết hợp lại với vào năm 1970, sau nhà nghiên cứu chế Giáo Trình Hệ vi điều khiển -6- Biên Soạn: Dương Quốc Hưng BM kỹ thuật Vi điều Khiển  ĐH Kỹ thuật công NghiệpThái Nguyên tạo vi xử lý (Microprocessor) Dựa vào lịch sử phát triển vi xử lý ta chia làm hệ sau: • Thế hệ thứ (1971 – 1973) Năm 1971 Intel cho đời vi xử lý 4004 (4 bit số liệu, 12 bit địa chỉ) sau Intel nhà sản xuất khác cho đời vi xử lý khác: 4040 (4 bit) 8008 (8 bit) Intel PPS – (4 bit) Rockwell International, IPM – 16 (bit) National Semiconductor Đặc điểm chung vi xử lý hệ là: - Thông thường bit liệu (cũng dài hơn) Công nghệ chế tạo PMOS với đặc điểm mật độ phần tử nhỏ, tốc độ chậm, giá rẻ có khả đưa dòng tải nhỏ - Tốc độ thực lệnh: 10 – 60 µs/ lệnh Với tần số đồng hồ fclk = 0, – - 0, MHz Tập lệnh đơn giản phải cần nhiều mạch phụ trợ tạo nên vi xử lý hoàn chỉnh • Thế hệ thứ hai (1974 – 1977) Các vi xử lý đại diện cho hệ vi xử lý bít 6502 MOS Technology, 6800 6809 Motorola, 8080 Intel đặc biệt vi xử lý Z80 Zilog Các vi xử lý có tập lệnh phong phú thường có khả phân biệt địa nhớ với dung lượng đến 64KB Có số vi xử lý có khả phân biệt 256 địa cho thiết bị ngoại vi (họ Intel Zilog) Chúng sử dụng rộng rãi công nghiệp để tạo máy tính bit tiếng thời Apple II Commodore 64 Tất vi xử lý thời kỳ chế tạo công nghệ NMOS (mật độ phân tử đơn vị diện tích cao so với công nghệ PMOS) CMOS (tiết kiệm điện tiêu thụ) cho phép đạt tốc độ từ – 8µs/ lệnh với tần ố động hồ – MHz • Thế hệ thứ ba (1978 – 1982) Đại diện vi xử lý 16 bit 8086/80186/0286 Intel 68000/68010 Motorola Các vi xử lý có độ dài 16 bit tập lệnh phong phú với lệnh nhân, chia thao tác với chuỗi ký tự Khả phân biệt địa cho nhớ cho thiết bị ngoại vi vi xử lý hệ lớn (từ – 16 MB cho nhớ tới 64KB cho địa thiết bị ngoại vi họ Intel) Phần lớn vi xử lý hệ đạt tốc độ từ 0, – 1µs/ lệnh với tần ố động hồ fclk = – 10 MHz • Thế hệ thứ tư (1983 - ?) Các vi xử lý đại diện cho hệ vi xử lý 32 bit 80386/80486 64 bit Pentium Intel, vi xử lý 32 bit 68020/68040/68060 -7Giáo Trình Hệ vi điều khiển Biên Soạn: Dương Quốc Hưng BM kỹ thuật Vi điều Khiển  ĐH Kỹ thuật công NghiệpThái Nguyên Motorola Đặc điểm vi xử lý hệ bus địa 32 bit (phân biệt 4GB nhớ) có khả làm việc với nhớ ảo Sau bảng thông số vi xử lý Intel Thông số 8086 8088 80286 Năm sản xuất 6/1978 1979 2/1982 fclkmax (xung nhịp đồng hồ) 10 MHz 10 MHz 20 MHz MIPS (triệu lệnh/s) 0, 33 0, 33 1, Số tranzitor 29.000 29.000 134.000 Bus số liệu 16 bit bit 16 bit Bus địa 20 bit 20 bit 24 bit Khả địa MB MB 16 MB Số chân 40 40 68 Chế độ nhớ ảo Không Không Có Có quản lý nhớ bên Không Không Có 1.1.2 ĐẶC ĐIỂM CHUNG CỦA BỘ VI XỬ LÝ Mỗi vi xử lý có đặc điểm chức riêng nhiên chúng có đăc điểm chung sau: Chiều dài bus liệu (độ lớn mạch vi xử lý): Được đánh giá số bit lớn mà vi xử lý xử lý song song đồng thời lần thao tác Ví dụ: Mạch vi xử lý 16 bit có nghĩa vi xử lý xử lý song song lần 16 bit Mỗi vi xử lý có chiều dài bus liệu khác có khả ứng dụng khác nhau, vi xử lý có chiều dài bus liệu lớn, tốc độ làm việc nhanh, khả truy xuất nhớ lớn dùng công việc xử lý liệu, điều khiển phức tạp Các vi xử lý 32 bit có khả làm việc nhanh lần lấy liệu từ nhớ vi xử lý lấy lần byte, vi xử lý bit phải làm lần, với vi xử lý 16 bit phải thực lần Vậy so với vi xử lý bit vi xử lý 32 bit có tốc độ tăng gấp 4, với vi xử lý 16 bit tốc độ vi xử lý 32 bit tăng gấp đôi Để tăng tốc độ làm việc vi xử lý mục tiêu hàng đầu nhà chế tạo vi xử lý Chiều dài bus địa (khả truy xuất nhớ): Dung lượng nhớ mà vi xử lý truy xuất, phần cấu trúc vi xử lý Các vi xử lý bị giới hạn khả truy xuất nhớ: Vi xử 4004 có 14 đường địa nên truy xuất 214 = 16.384 ô nhớ, vi xử lý bit có 16 đường địa nên truy xuất 216 = 65.536 ô nhớ, vi xử lý 16 bit có 20 đường địa nên truy xuất 220 = 1.048.576 = 1MB ô nhớ, vi xử lý 32 bit 386 hay 68020 truy xuất 4GB ô nhớ Vi xử lý có khả truy xuất nhớ lớn nên xử lý chương trình lớn Tùy theo ứng dụng cụ thể mà chọn vi xử lý thích hợp Giáo Trình Hệ vi điều khiển -8- Biên Soạn: Dương Quốc Hưng BM kỹ thuật Vi điều Khiển  ĐH Kỹ thuật công NghiệpThái Nguyên Số chân hình dạng vi xử lý: Các vi xử lý 8088/8086 đóng vỏ hàng chân Đó loại vỏ Plastic có chân hướng xuống theo hai hàng song song hai bên Các vi xử lý lớn có 64 chân hay nhiều có vỏ bọc với chân tạo thành mảng xắp xếp phía Thông thường vi xử lý có số chân nhiều hoàn hảo Tuy thực tế người ta dùng phương pháp dồn chân, nghĩa chân tín hiệu làm hai chức để phân biệt hai chức người sử dụng phải lập chương trình Xung nhịp hệ thống (System clock): Dùng để đồng thao tác bên bên vi xử lý cách phát xung nhịp thời gian theo khoảng cách cố định, xu hướng ngày dùng mạch xung nhịp khoảng cách hai xung đồng hồ hệ thống gọi chu kỳ xung nhịp Tần số xung clock cung cấp cho vi xử lý làm việc định đến tốc độ làm việc vi xử lý, vi xử lý có tốc độ làm việc lớn khả xử lý lệnh nhanh Tuy nhiên tần số xung nhịp yếu tố Tốc độ vi xử lý phụ thuộc vào cách thức xử lý thông tin cấu trúc vi xử lý Tần số xung clock làm việc vi xử lý cho nhà chế tạo Vi xử lý Tần số xung clock Chiều dài từ liệu 8051 12MHz 8-bit Z80A 4MHz 8-bit Z80B 6MHz 8-bit 286 16MHz 16-bit 486DX2-66 66Mhz 32-bit Pentium 66MHz 32-bit Điện áp hoạt động (nguồn nuôi): Với công nghệ PMOS vi xử lý cần nguồn nuôi với nhiều điện áp hoạt động khác nhau, ví dụ: ±5V, ±10V Còn với công nghệ NMOS cần nguồn nuôi +5V Đây mức điện áp đủ cao để bù lại sụt áp mạch số, đồng thời đủ nhỏ để tránh gây tạp âm Các vi xử lý ngày với công nghệ CMOS cho đời loại vi xử lý 3, 3V, đòi hỏi dòng tiêu thụ 60% so với chip 5V Các mạch phụ cận: Là mạch làm chức giải mã chuyển đổi số liệu, mạch ghép nối logic, mạch đếm định thời gian, mạch điều khiển bàn phím, hiển thị… Loại mạch chế tạo theo hãng thường tương ứng với mạch vi xử lý hãng Mạch phối ghép vào ra: Làm nhiệm vụ trao đổi số liệu vào cho CPU Mỗi hãng chế tạo mạch phối ghép kèm Loại vi xử lý nhiều mạch phối ghép dễ sử dụng Giáo Trình Hệ vi điều khiển -9- Biên Soạn: Dương Quốc Hưng BM kỹ thuật Vi điều Khiển  ĐH Kỹ thuật công NghiệpThái Nguyên Phần mềm (chương trình): Mỗi vi xử lý có phần mềm hãng trang bị hay gọi tập lệnh Người sử dụng vào tập lệnh để khai thác sử dụng tạo thành chương trình phục vụ cho mục đích cụ thể Tập lệnh vi xử lý yếu tố để đánh giá chức làm việc vi xử lý Nếu vi xử lý có nhiều mạch điện logic bên để thực số lệnh điều khiển vi xử lý nhiều, vi xử lý lớn độ phức tạp lớn Ví dụ so sánh tập lệnh vi xử lý bit 80C51 Z80 80C51 có 111 lệnh khác Z80 có 178 lệnh Tập lệnh vi xử lý nhiều có ích lập trình hay viết chương trình cho vi xử lý 1.2 CẤU TRÚC HỆ VI XỬ LÝ VÀ TỔ CHỨC BÊN TRONG CPU 1.2.1 CẤU TRÚC CHUNG CỦA MỘT HỆ VI XỬ LÝ Trên ta thấy vi xử lý thành phần thiếu để tạo nên máy vi tính Trong thực tế vi xử lý phải kết hợp thêm phận điện tử khác ví dụ như: nhớ, phối ghép vào/ra để tạo nên hệ vi xử lý hoàn chỉnh Hình 1.2.1 giới thiệu sơ đồ khối tổng quát của hệ vi xử lý Trong sơ đồ ta thấy rõ khối chức hệ vi xử lý bao gồm: - Khối xử lý trung tâm (Central Processing Unit, CPU) Bộ nhớ bán dẫn (Memory, M) Khối phối ghép với thiết bị ngoại vi (Input/Output, I/O) - Các bus truyền thông tin 1.2.1.1 Khối xử lý trung tâm, CPU Đóng vai trò chủ đạo hệ thống vi xử lý, mạch vi điện tử có độ tích hợp cao Khi hoạt động đọc ghi mã lệnh dạng bit từ nhớ Sau giải mã lệnh thành dãy xung điều khiển ứng với thao tác lệnh để điều khiển khối khác thực bước thao tác Để làm điều bên CPU có ghi dùng để chứa địa lệnh thực gọi ghi trỏ lệnh (Instruction Pointer, IP) đếm chương trình (Program Counter, PC), số ghi đa khác tính toán số học logic (ALU) để thao tác với liệu Ngoài có hệ thống mạch điện tử phức tạp để giải mã lệnh từ tạo xung điều khiển cho toàn hệ 1.2.1.2 Bộ nhớ bán dẫn (Memory) Hay gọi nhớ phận quan trọng hệ vi xử lý Tại (trong ROM) chứa chương trình điều khiển hoạt động toàn hệ để bật điện lên CPU lấy lệnh từ mà khởi động hệ thống Một phần chương trình điều khiển hệ thống, chương trình ứng dụng, liệu Giáo Trình Hệ vi điều khiển - 10 - Biên Soạn: Dương Quốc Hưng BM kỹ thuật Vi điều Khiển  ĐH Kỹ thuật công NghiệpThái Nguyên Sets the byte in the operand to if the Overflow Flag is set, otherwise sets the operand to Clocks Size Bytes Operands 808x 286 386 486 reg8 3 mem8 SETNO - Set if Not Overflow (386+) Usage: SETNO dest Modifies flags: None Sets the byte in the operand to if the Overflow Flag is clear, otherwise sets the operand to Clocks Size Bytes Operands 808x 286 386 486 reg8 3 mem8 SETP/SETPE - Set if Parity / Set if Parity Even (386+) Usage: SETP dest SETPE dest Modifies flags: None Sets the byte in the operand to if the Parity Flag is set, otherwise sets the operand to Clocks Size Bytes Operands 808x 286 386 486 reg8 3 mem8 SETNP/SETPO - Set if No Parity / Set if Parity Odd (386+) Usage: SETNP dest SETPO dest Modifies flags: None Sets the byte in the operand to if the Parity Flag is clear, otherwise sets the operand to Clocks Size Bytes Operands 808x 286 386 486 reg8 3 mem8 SGDT - Store Global Descriptor Table (286+ privileged) Usage: SGDT dest Modifies flags: None Stores the Global Descriptor Table (GDT) Register into the specified Giáo Trình Hệ vi điều khiển - 286 - Biên Soạn: Dương Quốc Hưng BM kỹ thuật Vi điều Khiển  ĐH Kỹ thuật công NghiệpThái Nguyên operand Clocks Operands mem64 808x - 286 11 386 486 10 Size Bytes SIDT - Store Interrupt Descriptor Table (286+ privileged) Usage: SIDT dest Modifies flags: None Stores the Interrupt Descriptor Table (IDT) Register into the specified operand Clocks Operands mem64 808x - 286 12 Size Bytes 386 486 10 SHL - Shift Logical Left See: SAL SHR - Shift Logical Right Usage: SHR dest, count Modifies flags: CF, OF, PF, SF, ZF (AF undefined) Shifts the destination right by "count" bits with zeroes shifted in on the left The Carry Flag contains the last bit shifted out Clocks Size Bytes Operands 808x 286 386 486 reg, 2 2-4 mem, 15+EA 7 (W88=23+EA) reg, CL 8+4n 5+n 2-4 20+EA+4 mem, CL 8+n (W88=28+EA+ n 4n) reg, immed8 5+n 3 mem, immed8 8+n 3-5 SHLD/SHRD - Double Precision Shift (386+) Usage: SHLD dest, src, count SHRD dest, src, count Modifies flags: CF, PF, SF, ZF (OF,AF undefined) SHLD shifts "dest" to the left "count" times and the bit positions opened are filled with the most significant bits of "src" SHRD shifts "dest" to the right "count" times and the bit positions opened are filled with the least significant bits of the second operand Only the lower bits of "count" are used Giáo Trình Hệ vi điều khiển - 287 - Biên Soạn: Dương Quốc Hưng BM kỹ thuật Vi điều Khiển  ĐH Kỹ thuật công NghiệpThái Nguyên Clocks Operands reg16, reg16, immed8 reg32, reg32, immed8 mem16, reg16, immed8 mem32, reg32, immed8 reg16, reg16, CL reg32, reg32, CL mem16, reg16, CL mem32, reg32, CL 808x 286 386 486 - - 3 7 3 7 2 3 3 4 Siz e Byt es 4 6 3 5 SLDT - Store Local Descriptor Table (286+ privileged) Usage: SLDT dest Modifies flags: None Stores the Local Descriptor Table (LDT) Register into the specified operand Operands reg16 mem16 808x - Clocks 286 386 2 2 486 Size Bytes SMSW - Store Machine Status Word (286+ privileged) Usage: SMSW dest Modifies flags: None Store Machine Status Word (MSW) into "dest" Clocks Operands 808x 286 386 486 reg16 10 mem16 3 Size Bytes STC - Set Carry Usage: STC Modifies flags: CF Sets the Carry Flag to Operands none 808x Clocks 286 386 2 486 Size Bytes STD - Set Direction Flag Usage: STD Modifies flags: DF Giáo Trình Hệ vi điều khiển - 288 - Biên Soạn: Dương Quốc Hưng BM kỹ thuật Vi điều Khiển  ĐH Kỹ thuật công NghiệpThái Nguyên Sets the Direction Flag to causing string instructions to auto-decrement SI and DI instead of auto-increment Clocks Size Bytes Operands 808x 286 386 486 none 2 2 STI - Set Interrupt Flag (Enable Interrupts) Usage: STI Modifies flags: IF Sets the Interrupt Flag to 1, which enables recognition of all hardware interrupts If an interrupt is generated by a hardware device, an End of Interrupt (EOI) must also be issued to enable other hardware interrupts of the same or lower priority Clocks Size Bytes Operands 808x 286 386 486 none 2 STOS - Store String (Byte, Word or Doubleword) Usage: STOS dest STOSB STOSW STOSD Modifies flags: None Stores value in accumulator to location at ES:(E)DI (even if operand is given) (E)DI is incremented/decremented based on the size of the operand (or instruction format) and the state of the Direction Flag Use with REP prefixes Clocks Size Bytes Operands 808x 286 386 486 dest 11 (W88=15) STR - Store Task Register (286+ privileged) Usage: STR dest Modifies flags: None Stores the current Task Register to the specified operand Clocks Operands 808x 286 386 486 reg16 2 mem16 3 Size Bytes SUB - Subtract Usage: SUB dest, src Modifies flags: AF, CF, OF, PF, SF, ZF The source is subtracted from the destination and the result is stored in the Giáo Trình Hệ vi điều khiển - 289 - Biên Soạn: Dương Quốc Hưng BM kỹ thuật Vi điều Khiển  ĐH Kỹ thuật công NghiệpThái Nguyên destination Operands reg, reg 808x Clocks 286 386 2 486 mem, reg 16+EA reg, mem 9+EA 7 17+EA 7 reg, immed mem, immed accum, immed Size Bytes 2-4 (W88=24+EA) 2-4 (W88=13+EA) 3-4 3-6 (W88=25+EA) 2-3 TEST - Test For Bit Pattern Usage: TEST dest, src Modifies flags: CF, OF, PF, SF, ZF (AF undefined) Performs a logical AND of the two operands updating the flags register without saving the result Clocks Size Bytes Operands 808x 286 386 486 reg, reg 1 2-4 reg, mem 9+EA (W88=13+EA) 2-4 mem, reg 9+EA (W88=13+EA) reg, immed 3-4 mem, immed 11+EA 3-6 accum, immed 2-3 VERR - Verify Read (286+ protected) Usage: VERR src Modifies flags: ZF Verifies the specified segment selector is valid and is readable at the current privilege level If the segment is readable, the Zero Flag is set, otherwise it is cleared Clocks Size Bytes Operands 808x 286 386 486 reg16 14 10 11 mem16 16 11 11 VERW - Verify Write (286+ protected) Usage: VERW src Modifies flags: ZF Giáo Trình Hệ vi điều khiển - 290 - Biên Soạn: Dương Quốc Hưng BM kỹ thuật Vi điều Khiển  ĐH Kỹ thuật công NghiệpThái Nguyên Verifies the specified segment selector is valid and is ratable at the current privilege level If the segment is writable, the Zero Flag is set, otherwise it is cleared Clocks Size Bytes Operands 808x 286 386 486 reg16 14 15 11 mem16 16 16 11 WAIT/FWAIT - Event Wait Usage: WAIT FWAIT Modifies flags: None CPU enters wait state until the coprocessor signals it has finished its operation This instruction is used to prevent the CPU from accessing memory that may be temporarily in use by the coprocessor WAIT and FWAIT are identical Clocks Size Bytes Operands 808x 286 386 486 none 6+ 1-3 WBINVD - Write-Back and Invalidate Cache (486+) Usage: WBINVD Modifies flags: None Flushes internal cache, then signals the external cache to write back current data followed by a signal to flush the external cache Clocks Size Bytes Operands 808x 286 386 486 none XCHG - Exchange Usage: XCHG dest, src Modifies flags: None Exchanges contents of source and destination Clocks Operands 808x 286 386 reg, reg 3 486 mem, reg 17+EA 5 reg, mem 17+EA 5 3 3 3 3 accum, reg reg, accum XLAT/XLATB - Translate Usage: XLAT XLATB Giáo Trình Hệ vi điều khiển Size Bytes 2-4 (W88=25+EA) 2-4 (W88=25+EA) 1 translation-table (masm 5.x) - 291 - Biên Soạn: Dương Quốc Hưng BM kỹ thuật Vi điều Khiển  ĐH Kỹ thuật công NghiệpThái Nguyên Modifies flags: None Replaces the byte in AL with byte from a user table addressed by BX The original value of AL is the index into the translate table The best way to describe this is MOV AL, [BX+AL] Clocks Size Bytes Operands 808x 286 386 486 Table offset 11 5 XOR - Exclusive OR Usage: XOR dest, src Modifies flags: CF, OF, PF, SF, ZF (AF undefined) Performs a bitwise exclusive OR of the operands and returns the result in the destination Clocks Size Bytes Operands 808x 286 386 486 reg, reg 2 2-4 mem, reg 16+EA (W88=24+EA) 2-4 reg, mem 9+EA 7 (W88=13+EA) reg, immed 3-4 mem, immed 17+EA 7 3-6 accum, immed 2-3 Giáo Trình Hệ vi điều khiển - 292 - Biên Soạn: Dương Quốc Hưng BM kỹ thuật Vi điều Khiển  ĐH Kỹ thuật công NghiệpThái Nguyên Phụ lục 3: Tập lệnh vi điều khiển họ 8051 Nhóm lệnh số học (Mathematical (Arithmetic) Instructions) Instruction code Mnemonic D7 D6 D5 D4 D3 D2 D1 D0 Hexa Decimal Explanation ADD A, Rn 0 1 n2 n1 n0 28 ÷ 2F (A) ← (A) + (Rn) ADD A, direct 0 0 1 a7 a6 a5 a4 a3 a2 a1 a0 25 Byte (A) ← (A) + (direct) ADD A, @Ri 0 0 1 I 26 ÷ 27 (A) ← (A) + ((Ri)) ADD A, #data 0 0 0 d7 d6 d5 d4 d3 d2 d1 d0 24 Byte (A) ← (A) + #data ADDC A, Rn 0 1 n2 n1 n0 38 ÷ 3F (A) ← (A) + (Rn) + (C) ADDC A, direct 0 1 1 a7 a6 a5 a4 a3 a2 a1 a0 35 Byte (A) ← (A) + (direct) + ADDC A, @Ri 0 1 1 I 36 ÷ 37 (A) ← (A) + ((Ri)) + (C) ADDC A, #data 0 1 0 d7 d6 d5 d4 d3 d2 d1 d0 34 Byte (A) ← (A) + #data +(C) SUBB A, Rn 0 1 n2 n1 n0 98 ÷ 9F (A) ← (A) - (Rn) - (C) SUBB A, direct 0 1 a7 a6 a5 a4 a3 a2 a1 a0 95 Byte (A) ← (A) - (direct) - SUBB A, @Ri 0 1 I 96 ÷ 97 (A) ← (A) - ((Ri)) - (C) SUBB A, #data 0 1 0 d7 d6 d5 d4 d3 d2 d1 d0 94 Byte (A) ← (A) - #data -(C) INC A 0 0 0 04 INC Rn 0 0 n2 n1 n0 08 ÷ 0F (Rn) ← (Rn) + INC direct 0 0 1 a7 a6 a5 a4 a3 a2 a1 a0 05 Byte (direct) ← (direct) + INC @Ri 0 0 1 I 06 ÷ 07 ((Ri)) ← ((Ri)) + INC dptr 1 0 1 A3 (dptr) ← (dptr) + DEC A 0 1 0 14 (A) ← (A) - DEC Rn 0 1 n2 n1 n0 18 ÷ 1F (Rn) ← (Rn) - DEC direct 0 1 a7 a6 a5 a4 a3 a2 a1 a0 15 Byte (direct) ← (direct) - DEC @Ri 0 1 I 16 ÷ 17 ((Ri)) ← ((Ri)) - Giáo Trình Hệ vi điều khiển - 293 - (C) (C) (A) ← (A) + Biên Soạn: Dương Quốc Hưng BM kỹ thuật Vi điều Khiển  ĐH Kỹ thuật công NghiệpThái Nguyên (B15-8), (A7-0) ← MUL AB 1 0 0 A4 DIV AB 0 0 0 84 (A15-8), (B7-0) ← (A)/(B) DA A 1 1 0 D4 Content of A laứ BCD (A)×(B) Nhóm lệnh Logic (Logic Instructions) Instruction code Mnemonic ANL A, Rn D7 D6 D5 D4 D3 D2 D1 D0 1 n2 n1 n0 Hexa Decima l 58 ÷ 5F (A) ← (A) AND (Rn) ANL A, direct 1 1 a7 a6 a5 a4 a3 a2 a1 a0 ANL A, @Ri 1 1 I ANL A, #data 1 0 d7 d6 d5 d4 d3 d2 d1 d0 54 Byte ANL direct, A 1 0 a7 a6 a5 a4 a3 a2 a1 a0 52 Byte ANL direct, #data 1 0 1 a7 a6 a5 a4 a3 a2 a1 a0 d7 d6 d5 d4 d3 d2 d1 d0 53 Byte Byte ORL A, Rn 0 n2 n1 n0 55 Byte ORL A, @Ri 0 1 I ORL A, #data 0 0 d7 d6 d5 d4 d3 d2 d1 d0 44 Byte ORL direct, A 0 0 a7 a6 a5 a4 a3 a2 a1 a0 42 Byte ORL direct, #data 0 0 1 a7 a6 a5 a4 a3 a2 a1 a0 d7 d6 d5 d4 d3 d2 d1 d0 43 Byte Byte XRL A, Rn 1 n2 n1 n0 XRL A, @Ri 1 0 1 I Giáo Trình Hệ vi điều khiển - 294 - (A) ← (A) AND #data (direct)←(direct) and (A) (direct)←(direct) and #data 48 ÷ 4F (A) ← (A) OR (Rn) 0 1 a7 a6 a5 a4 a3 a2 a1 a0 1 0 1 a7 a6 a5 a4 a3 a2 a1 a0 (A) ← (A) AND (direct) 56 ÷ 57 (A) ← (A) AND ((Ri)) ORL A, direct XRL A, direct Explanation 45 Byte (A) ← (A) OR (direct) 46 ÷ 47 (A) ← (A) OR ((Ri)) (A) ← (A) OR #data (direct)←(direct) OR (A) (direct)←(direct) OR #data 68 ÷ 6F (A) ← (A) XOR (Rn) 65 Byte (A) ← (A) XOR (direct) 66 ÷ 67 (A) ← (A) XOR ((Ri)) Biên Soạn: Dương Quốc Hưng BM kỹ thuật Vi điều Khiển  ĐH Kỹ thuật công NghiệpThái Nguyên XRL A, #data 1 0 0 d7 d6 d5 d4 d3 d2 d1 d0 64 Byte XRL direct, A 1 0 a7 a6 a5 a4 a3 a2 a1 a0 62 Byte XRL direct, #data 1 0 1 a7 a6 a5 a4 a3 a2 a1 a0 d7 d6 d5 d4 d3 d2 d1 d0 63 Byte Byte CLR A 1 0 0 E4 (A) ← CPL A 1 1 0 F4 (A) ← (A) RL A 0 0 1 23 Quay traựi noọi dung ghi A RLC A 0 1 0 1 33 Quay traựi noọi dung ghi A vaứ bit C RR A 0 0 0 1 03 Quay phaỷi noọi dung ghi A RRC A 0 0 1 13 Quay phaỷi noọi dung ghi A vaứ bit C SWAP A 1 0 0 C4 (A3-0) ↔ (A7-4) (A) ← (A) XOR #data (direct)←(direct) XOR (A) (direct)←(direct) XOR #data Nhóm lệnh di chuyển liệu (Data Transfer Instructions) Instruction code Mnemonic MOV A, Rn D7 D6 D5 D4 D3 D2 D1 D0 1 1 n2 n1 n0 Hexa decimal E8 ÷ EF (A) ← (Rn) MOV A, direct 1 0 1 a7 a6 a5 a4 a3 a2 a1 a0 MOV A, @Ri 1 0 1 I MOV A, #data 1 1 0 d7 d6 d5 d4 d3 d2 d1 d0 74 Byte (A) ← #data 1 1 n2 n1 n0 F8 ÷ FF (Rn) ← (A) MOV Rn, A MOV Rn, direct 1 n2 n1 n0 a7 a6 a5 a4 a3 a2 a1 a0 MOV Rn #data 1 1 n2 n1 n0 d7 d6 d5 d4 d3 d2 d1 d0 Giáo Trình Hệ vi điều khiển - 295 - E5 Byte Explanation (A) ← (direct) E6 ÷ E7 (A) ← ((Ri)) A8 ÷ AF Byte 78 ÷ 7F Byte (Rn) ← (direct) (Rn) ← #data Biên Soạn: Dương Quốc Hưng BM kỹ thuật Vi điều Khiển  ĐH Kỹ thuật công NghiệpThái Nguyên MOV direct, A 1 1 1 a7 a6 a5 a4 a3 a2 a1 a0 F5 Byte MOV direct, Rn 0 n2 n1 n0 a7 a6 a5 a4 a3 a2 a1 a0 88 ÷ 8F MOV direct, direct 0 0 1 a7 a6 a5 a4 a3 a2 a1 a0 a7 a6 a5 a4 a3 a2 a1 a0 85 Byte Byte MOV direct, @Ri 0 0 1 I a7 a6 a5 a4 a3 a2 a1 a0 86 ÷ 87 MOV direct, #data 1 1 a7 a6 a5 a4 a3 a2 a1 a0 d7 d6 d5 d4 d3 d2 d1 d0 75 Byte Byte (direct) ← #data MOV @Ri, A 1 1 1 I F6 ÷ F7 ((Ri)) ← (A) Byte Byte 1 0 1 I a7 a6 a5 a4 a3 a2 a1 a0 MOV @Ri, #data 1 1 i d7 d6 d5 d4 d3 d2 d1 d0 MOV dptr, #data16 0 0 0 d15 d14 d13 d12 d11 d10 d9 d8 d7 d6 d5 d4 d3 d2 d1 d0 90 Byte Byte MOVC A, @A + dptr 0 0 1 93 MOVC A, @A + PC 0 0 1 83 MOVX A, @Ri 1 0 i E2 ÷ E3 MOVX A, @dptr 1 0 0 E0 MOVX @Ri, A 1 1 0 i MOVX @ dptr, A 1 1 0 0 F0 1 0 0 0 a7 a6 a5 a4 a3 a2 a1 a0 C0 Byte Giáo Trình Hệ vi điều khiển - 296 - (direct) ← (Rn) (direct) ← (direct) (source) (destination) (direct) ← ((Ri)) A6 ÷ MOV @Ri, direct PUSH direct (direct) ← (A) A7 Byte 76 ÷ 77 Byte ((Ri)) ← (direct) ((Ri)) ← (data) (dptr) ← #data 15-0 (dpH) ← #data 15-8 (dpL) ← #data 7-0 (A) ← ((A) + (dptr)) External Ram (A) ← ((A) + (PC)) External Ram (A)←((Ri)) External Ram (A)←((dptr)) External Ram F2 ÷ F3 ((Ri)) ← (A) ((dptr)) ← (A) (SP) ← (SP) + ((SP)) ← (direct) Biên Soạn: Dương Quốc Hưng BM kỹ thuật Vi điều Khiển  POP direct 1 0 0 a7 a6 a5 a4 a3 a2 a1 a0 XCH A, Rn 1 0 n2 n1 n0 XCH A, direct 1 0 1 a7 a6 a5 a4 a3 a2 a1 a0 XCH A, @Ri 1 0 1 i XCHD A, @Ri 1 1 i ĐH Kỹ thuật công NghiệpThái Nguyên D0 Byte C8 ÷ CF C5 Byte C6 ÷ C7 D6 ÷ D7 (direct) ← ((SP)) (SP) ← (SP) - (A) ↔ (Rn) (A) ↔ (direct) (A) ↔ ((Ri)) (A3-0) ↔ ((Ri3-0)) Nhóm lệnh xử lý bit (Bit Oriented Instructions) Instruction code Mnemonic D7 D6 D5 D4 D3 D2 D1 D0 Hexa decimal Explanation CLR C 1 0 0 1 C3 (C) ← CLR bit 1 0 0 b7 b6 b5 b4 b3 b2 b1 b0 C2 Byte (bit) ← SETB C 1 0 1 D3 (C) ← SETB bit 1 0 b7 b6 b5 b4 b3 b2 b1 b0 D2 Byte (bit) ← CPL C 1 0 1 B3 (C) ← (C) CPL bit 1 0 b7 b6 b5 b4 b3 b2 b1 b0 B2 Byte (bit) ← (/bit) ANL C, bit 0 0 b7 b6 b5 b4 b3 b2 b1 b0 82 Byte ANL C, /bit 1 0 0 b7 b6 b5 b4 b3 b2 b1 b0 B0 Byte ORL C, bit 1 0 b7 b6 b5 b4 b3 b2 b1 b0 72 Byte ORL C, /bit 1 0 0 b7 b6 b5 b4 b3 b2 b1 b0 A0 Byte MOV C, bit 1 0 b7 b6 b5 b4 b3 b2 b1 b0 A2 Byte (C) ← (bit) MOV bit, C 0 0 b7 b6 b5 b4 b3 b2 b1 b0 92 Byte (bit) ← (C) Giáo Trình Hệ vi điều khiển - 297 - (C) ← (C) AND (bit) (C) ←(C) AND (/bit) (C) ← (C) OR (bit) (C) ←(C) OR (/bit) Biên Soạn: Dương Quốc Hưng BM kỹ thuật Vi điều Khiển  ĐH Kỹ thuật công NghiệpThái Nguyên Nhóm lệnh chuyển quyền điều khiển (rẽ nhánh) (Control Transfer Instructions) Instruction code Mnemonic D7 D6 D5 D4 D3 D2 D1 D0 Hexa decimal Explanation (PC) ← (PC) + (SP) ← (SP) + ACALL addr 11 A10 a9 a8 0 a7 a6 a5 a4 a3 a2 a1 a0 Byte Byte ((SP)) ← (PC7-0) (SP) ← (SP) + ((SP)) ← (PC15-8) (PC) ← page address (PC) ← (PC) + LCALL addr 16 0 0 a15 a14 a13 a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 12 Byte Byte (SP) ← (SP) + ((SP)) ← (PC7-0) (SP) ← (SP) + ((SP)) ← (PC15-8) (PC) ← addr15-0 (PC15-8) ← ((SP)) RET 0 0 22 (SP) ← (SP) - (PC7-0) ←((SP)) (SP) ← (SP) - (PC15-8) ← ((SP)) RETI 0 1 0 32 (SP) ← (SP) - (PC7-0) ←((SP)) (SP) ← (SP) - AJMP addr 11 a10 a9 a8 0 0 a7 a6 a5 a4 a3 a2 a1 a0 Byte Byte LJMP addr 16 0 0 0 a15 a14 a13 a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 02 Byte Byte 0 0 0 r7 r6 r5 r4 r3 r2 r1 r0 80 Byte 1 0 1 73 SJMP rel JMP @A + dptr Giáo Trình Hệ vi điều khiển - 298 - (PC) ← (PC) + (PC) ← page address (PC) ← addr15-0 (PC) ← (PC) + (PC) ← (PC) + rel (PC) ← (A) + (dptr) Biên Soạn: Dương Quốc Hưng BM kỹ thuật Vi điều Khiển JZ rel JNZ rel JC rel JNC rel JB bit, rel JNB bit, rel JBC bit, rel  ĐH Kỹ thuật công NghiệpThái Nguyên 1 0 0 r7 r6 r5 r4 r3 r2 r1 r0 60 Byte 1 0 0 r7 r6 r5 r4 r3 r2 r1 r0 70 Byte 0 0 0 r7 r6 r5 r4 r3 r2 r1 r0 40 Byte 1 0 0 r7 r6 r5 r4 r3 r2 r1 r0 50 Byte 0 0 0 b7 b6 b5 b4 b3 b2 b1 b0 r7 r6 r5 r4 r3 r2 r1 r0 20 Byte Byte 0 1 0 0 b7 b6 b5 b4 b3 b2 b1 b0 r7 r6 r5 r4 r3 r2 r1 r0 30 Byte Byte 0 0 0 b7 b6 b5 b4 b3 b2 b1 b0 r7 r6 r5 r4 r3 r2 r1 r0 10 Byte Byte (PC) ← (PC) + IF (A) = then (PC)←(PC) + rel (PC) ← (PC) + IF (A) ≠ then (PC)←(PC) + rel (PC) ← (PC) + IF (C) = then (PC)←(PC) + rel (PC) ← (PC) + IF (C) = then (PC)←(PC) + rel (PC) ← (PC) + IF (bit) =1 then (PC)←(PC) + rel (PC) ← (PC) + IF (bit) = then (PC)←(PC) + rel (PC) ← (PC) + IF (bit)= then (bit) ← (PC)←(PC) + rel (PC) ← (PC) + IF (direct) < (A) then CJNE A, direct, rel 1 1 a7 a6 a5 a4 a3 a2 a1 a0 r7 r6 r5 r4 r3 r2 r1 r0 B5 Byte Byte (C)←0 and (PC)←(PC) + rel IF (direct) > (A) then (C)←1 and (PC)←(PC) + rel Giáo Trình Hệ vi điều khiển - 299 - Biên Soạn: Dương Quốc Hưng BM kỹ thuật Vi điều Khiển  ĐH Kỹ thuật công NghiệpThái Nguyên (PC) ← (PC) + IF #data < (A) then CJNE A, #data, rel 1 1 0 d7 d6 d5 d4 d3 d2 d1 d0 r7 r6 r5 r4 r3 r2 r1 r0 B4 Byte Byte (C)←0 and (PC)←(PC) + rel IF #data > (A) then (C)←1 and (PC)←(PC) + rel (PC) ← (PC) + IF #data < (Rn) then CJNE Rn, #data, rel 1 n2 n1 n0 d7 d6 d5 d4 d3 d2 d1 d0 r7 r6 r5 r4 r3 r2 r1 r0 B8 ÷ BF Byte Byte (C)←0 and (PC)←(PC) + rel IF #data > (Rn) then (C)←1 and (PC)←(PC) + rel (PC) ← (PC) + IF #data ((Ri)) then (C)←1 and (PC)←(PC) + rel (PC) ← (PC) + DJNZ Rn, rel 1 1 n2 n1 n0 r7 r6 r5 r4 r3 r2 r1 r0 D8 ÷ DF (Rn) ← (Rn) – Byte IF ((Rn)) ≠ then (PC)←(PC) + rel DJNZ direct, rel NOP 1 1 a7 a6 a5 a4 a3 a2 a1 a0 r7 r6 r5 r4 r3 r2 r1 r0 D5 Byte Byte 0 0 0 0 00 Giáo Trình Hệ vi điều khiển - 300 - (PC) ← (PC) + (direct) ← (direct) – IF (direct) ≠ then (PC)←(PC) + rel (PC) ← (PC) + Biên Soạn: Dương Quốc Hưng [...]... CA CPU Vi mi vi x lý u cú mt s cu trỳc bờn trong v c cho trong cỏc s tay ca nh ch to S cu trỳc dng khi rt tin li v d trỡnh by nguyờn lý hot ng ca vi x lý Cu trỳc ca tt c cỏc vi x lý u cú cỏc khi c bn ging nhau nh ALU, cỏc thanh ghi, khi iu khin l cỏc mch logic nm rừ nguyờn lý lm vic ca vi x lý cn phi kho sỏt nguyờn lý kt hp cỏc khi vi nhau x lý mt chng trỡnh Hỡnh 1.2.2a trỡnh by s khi ca vi x lý... ni ra bus bờn ngoi khi vi x lý cn truy xut d liu t b nh bờn ngoi hay cỏc thit b I/O Giỏo Trỡnh H vi iu khin - 14 - Biờn Son: Dng Quc Hng BM k thut Vi iu Khin 1.3 H K thut cụng NghipThỏi Nguyờn CU TRC D LIU TRONG H VI X Lí Mt vn quan trng trong h vi x lý l vic lu tr v x lý cỏc d liu s Thụng thng chỳng ta ó quen thuc vi cỏc s trong h m c s 10, nhng trong thc t cũn cú nhiu h m vi cỏc c s khỏc nhau Trong... chia l: 1001 = 9 v d 010001 = 17 Giỏo Trỡnh H vi iu khin - 24 - Biờn Son: Dng Quc Hng BM k thut Vi iu Khin H K thut cụng NghipThỏi Nguyờn CHNG II: H VI X Lí INTEL 80x86 2.1 CU TRC CA B VI X Lí 8086 2.1.1 TNG QUAN Sau khi ó tỡm hiu qua v cu trỳc ca vi x lý, tip theo chỳng ta s i sõu tỡm hiu mt b vi x lý c th v rt in hỡnh: b vi x lý 80x86 ca Intel õy l b vi x lý ni ting mt thi ca hóng Intel v c s dng... thit b ngoi vi truyn thng v b nh ó cú sn trong 8086, vỡ vy vic phi ghộp vi cỏc thit b Giỏo Trỡnh H vi iu khin - 33 - Biờn Son: Dng Quc Hng BM k thut Vi iu Khin H K thut cụng NghipThỏi Nguyờn ú rt d dng v chớnh vỡ tn dng c cỏc phi ghộp ngoi vi cú sn nờn cú th gim giỏ thnh h thng - IO/M [O]: Tớn hiu ny phõn bit trong thi im ó nh phn t no trong cỏc thit b vo/ra (IO) hoc b nh (M) c chn lm vic vi CPU Trờn... hot ng Nu khụng cú tớn hiu clock thỡ vi x lý khụng lm vic Mch to xung clock l cỏc mch dao ng, tớn hiu c a n ngừ vo clock ca vi x lý Cú nhiu vi x lý cú tớch hp mch to dao ng bờn trong, khi ú ch cn thờm t thch anh bờn ngoi 1.2.2.4 Bus d liu bờn trong vi x lý (Internal data bus) Bus d liu dựng kt ni cỏc thanh ghi bờn trong v ALU vi nhau, tt c cỏc d liu di chuyn trong vi x lý u thụng qua bus d liu ny,... ASCII vi s BCD Trong khi lm toỏn vi cỏc s BCD ta thng kt hp hai s BCD thnh mt Byte, dng s BCD vit theo kiu ny c gi l dng BCD chun hay cũn gi l dng BCD gúi Khi lu tr , khi hin th hoc khi truyn gia cỏc thit b cỏc giỏ tr s 09 thc cht ta lm vic vi mó ASCII ca cỏc s ú tc l cỏc s 30H39H Nh vy ta thy trong 1 byte mó ASCII biu din cỏc s Giỏo Trỡnh H vi iu khin - 20 - Biờn Son: Dng Quc Hng BM k thut Vi iu Khin... thi gian thc hin lnh v ly lnh v thc hin lnh l trựng nhau Chớnh iu ny lm tng kh nng hot ng ca vi x lý thụng qua vic ci thin Bus Trong khi khi thc hin lnh ang bn rn vi lnh hin thi thỡ BIU ó cú th bt u vic ly cỏc lnh k tip t b nh v phn cui ca chỳng c t trong mt RAM ni b tc cao c gi l hng i di ca hng i ny vi vi x lý 8086 l 6byte K thut hng i lnh cho phộp BIU s dng b nh rt hiu qu BIU s ly mó lnh trong... cỏc yờu cu ngt c tỏc ng - D hoc DF (Direction Flag): C hng, DF = 1 khi CPU lm vic vi chui ký t theo ký t t phi sang trỏi (vỡ vy D chớnh l c lựi) Giỏo Trỡnh H vi iu khin - 31 - Biờn Son: Dng Quc Hng BM k thut Vi iu Khin H K thut cụng NghipThỏi Nguyờn 2.1.3 Mễ T CHC NNG CC CHN CA VI X Lí 8086 Hỡnh 2.1.3 l s b trớ chõn ca vi x lý 8086 Chế độ MIN GND 1 40 Vcc AD14 2 39 AD15 AD13 3 38 A16/S3 AD12 4 37... trng thỏi v vic truy nhp cỏc thanh ghi on Giỏo Trỡnh H vi iu khin - 32 - Biờn Son: Dng Quc Hng BM k thut Vi iu Khin H K thut cụng NghipThỏi Nguyờn Bit S6=0 liờn tc, bit S5 phn ỏnh giỏ tr bit IF ca thanh ghi c, hai bit S3, S4 phi hp vi nhau ch ra vic truy nhp cỏc thanh ghi on Tớn hiu ny chuyn sang trng thỏi tr khỏng cao khi Bus ni b ghi nhn tớn hiu treo - RD [O]: c Tớn hiu c cho bit b vi x lý ang... Hỡnh 1.2.1 S s khi tng quỏt h vi x lý 1.2.1.3 Khi phi ghộp vo/ra (I/O) To ra kh nng giao tip gia h vi x lý vi th gii bờn ngoi Cỏc thit b ngoi vi nh bn phớm, chut, mn hỡnh, mỏy in, chuyn i s tng t (D/A), chuyn i tng t s (A/D) u c liờn h vi vi x lớ thụng qua b phn ny B phn phi ghộp c th gia bus h thng vi th gii bờn ngoi thng c gi l cng Nh vy ta s cú cng vo ly thụng tin t ngoi vo v cng ra a thụng tin ... hin ln Vy nu so vi vi x lý bit thỡ vi x lý 32 bit cú tc tng gp 4, vi vi x lý 16 bit thỡ tc vi x lý 32 bit tng gp ụi tng tc lm vic ca vi x lý l mc tiờu hng u ca cỏc nh ch to vi x lý Chiu di... dựng cỏc cụng vic x lý d liu, iu khin phc Cỏc vi x lý 32 bit cú kh nng lm vic nhanh hn vỡ mi ln ly d liu t b nh vi x lý cú th ly mt ln byte, ú cỏc vi x lý bit thỡ phi lm ln, vi vi x lý 16 bit... lnh ca vi x lý tc l thay i cỏch thc x lý d liu Cỏc lnh lu tr b nh s quyt nh cụng vic m vi x lý s lm Nh vy: Vi x lý l mt vi mch c ln hoc cc ln vi chc nng chớnh l: l x lý d liu lm c iu ny vi x lý

Ngày đăng: 06/12/2015, 18:22

TỪ KHÓA LIÊN QUAN

w