1. Trang chủ
  2. » Giáo án - Bài giảng

GIÁO TRÌNH: VI XỬ LÝ

126 18 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

Nội dung

Bài giảng VI XỬ LÝ Chương 1: Giới thiệu vi xử lý CHƯƠNG 1: GIỚI THIỆU VI XỬ LÝ I TỔNG QUAN VỀ HỆ THỐNG VI XỬ LÝ Quá trình phát triển máy vi tính (tham khảo [LQĐ-p.7 ÷ 9]) - Máy vi tính bao gồm máy tính dùng vi xử lý (họ Intel, Motorola, AMD…) làm cốt lõi, vi điều khiển (microcontroller) hay máy vi tính vi mạch (one-chip microcomputer) Ứng dụng vi xử lý (tham khảo [LQĐ-p.9]) Sơ đồ khối hệ vi xử lý Sơ đồ khối tiêu biểu hệ vi xử lý: (hệ thống vi xử lý có kiến trúc 3-bus) [LQĐ-p.11] Address bus Data bus μP (CPU) Control bus RAM ROM Memory I/O Interface Input Devices Output Devices Peripheral Devices Hình 1.1 μP (Microprocessor): Vi xử lý CPU (Central Processing Unit): Đơn vị xử lý trung tâm Address bus: Bus địa Data bus: Bus liệu Control bus: Bus điều khiển RAM (Random Access Memory): Bộ nhớ truy xuất ngẫu nhiên ROM (Read-Only Memory): Bộ nhớ đọc I/O Interface: Khối giao tiếp nhập/xuất Peripheral Devices: Thiết bị ngoại vi Một hệ vi xử lý gồm có thành phần sau: - μP (microprocessor hay gọi CPU): đọc mã lệnh từ nhớ (được ghi dạng bit 1), sau giải mã thực thi lệnh - Bộ nhớ (Memory): chứa chương trình điều khiển hoạt động toàn hệ liệu, kết trung gian (Có hai loại nhớ: RAM (Random Access Memory) loại nhớ truy xuất ngẫu nhiên ROM (Read-Only Memory) loại nhớ đọc) http://www.ebook.edu.vn Bài giảng VI XỬ LÝ Chương 1: Giới thiệu vi xử lý - Khối giao tiếp nhập/xuất (Input/Output - I/O): tạo khả giao tiếp hệ vi xử lý với thiết bị ngoại vi bàn phím, chuột … (thiết bị nhập), hình, máy in, loa … (thiết bị xuất), ổ đóa… (thiết bị xuất/nhập) - Bus: ba khối chức liên hệ với thông qua tập đường dây để truyền thông tin gọi bus Trong hệ thống vi xử lý thường bao gồm loại bus: bus địa chỉ, bus liệu bus điều khiển Mọi nguồn thông tin vào CPU, không nhớ thiết bị đầu vào Mọi đích đến thơng tin từ CPU, khơng nhớ thiết bị đầu Tổng kết lại điểm quan trọng từ sơ đồ 1.1: Hệ vi xử lý có khối chính: ♦ Bộ nhớ ♦ CPU ♦ Phối ghép (giao tiếp) vào/ra (I/O) CPU đọc thông tin từ nhớ ghi thông tin vào nhớ Các thiết bị đầu vào đưa thông tin từ bên vào hệ vi xử lý Các thiết bị đầu đưa thông tin từ CPU đến đối tượng bên ngồi Thơng tin khơng chạy trực tiếp từ nhớ đến phối ghép vào/ra (I/O) ngược lại, trước tiên thông tin phải qua CPU Có thể thấy vi xử lý trao đổi thông tin với nhớ phối ghép vào/ra I/O Dù hệ thống sau có phức tạp chương trình có dài đến đâu vi xử lý làm việc sau: Đọc từ nhớ Ghi vào nhớ Đọc từ đầu vào Ghi vào đầu Thực lệnh nội lệnh cộng (ADD), lệnh trừ (SUB) … II CAÙC LOẠI BUS Bus địa - Có chức chuyển tải thông tin địa - Khi đọc/ghi nhớ hay thiết bị I/O, μP đưa bit địa bus địa để chọn xác ngăn nhớ (word) hay thiết bị I/O cụ thể giao tiếp với - Số lượng địa mà μP quản lý phụ thuộc vào số bit (số đường dây) bus địa (16, 20, 24, 32 … bit) Ví dụ: Một μP có số đường dây bus địa N = 16 N 16 10 10 → có khả quản lý: = = 2 = 64.2 = 64 K = 65356 địa - Bus địa loại bus chiều (xuất phát từ μP) ¾ Đệm bus địa [LQĐ – p.60+61] Do tất thiết bị ngoại vi nhớ nối với bus địa nên mặt điện vượt tính chịu tải (fan-out) vi xử lý Trong trường hợp mạch nối vào bus địa tiêu thụ dòng điện lớn khả chịu tải vi xử lý hệ thống không hoạt động hay hoạt động không ổn định Để giải vấn đề ta sử dụng đệm trung gian gọi đệm địa http://www.ebook.edu.vn Bài giảng VI XỬ LÝ Chương 1: Giới thiệu vi xử lý Ví dụ: Đệm địa cho CPU có bus địa 16-bit: Hình 1.2 Bus liệu - Có chức chuyển tải thông tin liệu đến/từ μP - Số lượng đường dây bus định số bit liệu mà μP có khả xử lý lúc (8, 16, 32, 64 … bit) - Bus liệu loại bus hai chiều Tuy nhiên thời điểm định liệu truyền theo hướng CPU Bus liệu Bộ nhớ phối ghép vào/ra (I/O) CPU Bus liệu Bộ nhớ phối ghép vào/ra (I/O) b) Ghi - Write a) Đọc - Read Hình 1.3 Dữ liệu di chuyển chiều bus liệu Lưu ý: Hoạt động bus địa bus liệu hoàn toàn độc lập với (hình 1.4) Hình 1.4 ¾ Đệm bus liệu [LQĐ – p.62] Tương tự bus địa chỉ, bus liệu cần đệm để tăng fan-out cần thiết Lưu ý cần dùng kỹ thuật đệm chiều (hình 1.5) (IC 74LS245) http://www.ebook.edu.vn Bài giảng VI XỬ LÝ Chương 1: Giới thiệu vi xử lý Điều khiển hướng A Hình 1.5 Kỹ thuật đệm chiều sử dụng thêm tín hiệu điều khiển, tín hiệu quy định chiều liệu đệm BD0 vào hệ thống D0 đến CPU B Bus điều khiển - Gồm nhiều đường dây tín hiệu khác ( WR , RD …), tín hiệu điều khiển có chiều định Khi hoạt động, μP đưa tín hiệu điều khiển đến khối khác hệ, đồng thời nhận tín hiệu từ khối khác để phối hợp hoạt động toàn hệ Lưu ý: Bus điều khiển khối I/O vẽ dạng chiều để tính chiều nhóm tín hiệu, tín hiệu - Có loại truyền thông tiêu biểu mà bus điều khiển phải xác đinh tín hiệu điện: [LQĐ – p.63] Đọc từ nhớ Ghi vào nhớ Đọc từ phối ghép đầu vào (Input) Ghi vào phối ghép đầu (Output) Nhận biết yêu cầu ngắt (Interrupt acknowledge) Nhận biết yêu cầu treo (Hold acknowledge, phục vụ DMA) Giải thích truyền thông cấu trúc 3-bus dựa vào sơ đồ khối hình 1.1: đọc ghi III VI XỬ LÝ (μP – MICROPROCESSOR) Sơ đồ khối μP cho hình 1.6 Có ba khối chức chính: khối thực thi (Execution Unit), khối điều khiển (Sequencer) khối giao tiếp bus (Bus Interface) - Bộ điều khiển (Sequencer): nhận lệnh từ nhớ, sau giải mã lệnh truyền lệnh giải mã đến khối thực thi + Bộ đếm chương trình: ghi lưu giữ địa lệnh thực thi Mỗi lệnh thực thi, đếm chương trình tăng lên để địa lệnh thực thi Nội dung đếm chương trình đặt lên bus địa để tìm nhận lệnh mong muốn Như vậy, μP thực lệnh chương trình cách tuần tự, trừ gặp lệnh chuyển điều khiển (lệnh nhảy, gọi chương trình …) làm thay đổi nội dung PC Trong số vi xử lý, đếm chương trình gọi trỏ lệnh IP (Instruction Pointer) + Bộ giải mã lệnh: thông dịch (diễn dịch) lệnh nhận vào μP http://www.ebook.edu.vn Bài giảng VI XỬ LÝ Chương 1: Giới thiệu vi xử lý Có thể xem giải mã lệnh từ điển lưu trữ nghóa lệnh bước mà μP cần thực lệnh nhận vào Giống từ điển có nhiều trang định nghóa nhiều từ hơn, μP hiểu nhiều lệnh có giải mã lệnh lớn - Thanh ghi lệnh IR: lưu giữ mã nhị phân lệnh thực thi Execution Unit Sequencer Instruction Register Control Unit Registers (data, address) Instruction Decoder ALU Program Counter Internal bus Data bus driver Control bus driver Address bus driver Data bus Control bus Address bus Bus Interface Hình 1.6 Execution Unit: Khối thực thi Control Unit: Khối điều khiển Registers: Các ghi ALU (Arithmetic & Logic Unit): Khối logic - số học Sequencer: Bộ điều khiển Instruction Register: Thanh ghi lệnh Instruction Decoder: Bộ giải mã lệnh Program Counter: Bộ đếm chương trình Internal bus: Bus nội Bus interface: Giao tiếp bus Data bus driver: Bộ điều khiển bus liệu Control bus driver: Bộ điều khiển bus điều khiển Address bus driver: Bộ điều khiển bus địa - Khối thực thi (Execution Unit): thực thi ghi kết câu lệnh Các toán hạng (operand) liên quan có mặt ghi (registers) có từ bus nội (internal bus) + ALU (Arithmetic Logic Unit): mạch điện tử có khả thực phép toán số học (+, -, *, / …) logic (AND, OR, NOT, XOR…) + Thanh ghi (Register): nhớ cực nhanh, có dung lượng hạn chế nằm bên μP Các ghi thường dùng để lưu trữ thông tin tạm thời Mỗi ghi có địa để truy xuất tới Các ghi nối với đến phần tử http://www.ebook.edu.vn Bài giảng VI XỬ LÝ Chương 1: Giới thiệu vi xử lý khác μP hay nối với bus nhờ bus nội Độ rộng ghi 8bit, 16-bit, 32-bit hay 64-bit tùy thuộc vào loại μP Thông tin giá trị cần xử lý hay địa chứa giá trị cần xử lý nhận từ nhớ (hay I/O) μP có nhiều ghi độ rộng lớn tốt lúc chương trình thực nhiều phép truyền thông tin μP nhớ truy xuất trực tiếp từ ghi, từ làm giảm thời gian truy xuất độ dài lệnh + Khối điều khiển: tạo tín hiệu điều khiển hoạt động phận bên bên μP (tùy theo mã lệnh) - Giao tiếp bus (Bus Interface): gồm ba điều khiển bus để giao tiếp với bus bên tương ứng: bus liệu, bus điều khiển bus địa Việc tìm nạp lệnh từ nhớ thao tác mà μP thực hiện, gồm bước sau: - Nội dung PC đặt lên bus địa - Tín hiệu điều khiển READ xác lập (chuyển sang trạng thái tích cực) - Mã lệnh đọc từ nhớ đưa lên bus liệu - Mã lệnh chốt vào ghi lệnh IR bên - PC tăng lên để chuẩn bị tìm nạp lệnh kế từ nhớ Hình 1.7 minh họa luồng thông tin cho việc tìm nạp lệnh Hình 1.7 IV BỘ NHỚ (MEMORY) ¾ Nhắc lại đơn vò bit, nibble, byte, word [HTM – p.29] − nibble = bit − byte = bit − Word nhóm gồm nhiều byte Theo qui ước word = byte word dài = byte (theo hệ vi xử lý 16-bit, 32-bit …) http://www.ebook.edu.vn Bài giảng VI XỬ LÝ Chương 1: Giới thiệu vi xử lý Phân loại Bộ nhớ thường chia làm hai loại: nhớ (hay nhớ – main memory) nhớ lưu trữ (storage memory) - Bộ nhớ chính: ROM RAM - Bộ nhớ lưu trữ: băng từ, đóa mềm, đóa cứng… Thông thường nhớ lưu trữ xem thiết bị I/O a Bộ nhớ đọc – ROM (Read-Only Memory) - Là nhớ đọc, sửa đổi thông tin hoạt động thông thường - Thông tin ghi ROM không bị mất nguồn cung cấp - ROM ghi thiết bị chuyên dụng - ROM thường dùng để chứa chương trình liệu cố định (chương trình khởi động, liệu tra bảng …) - Các loại ROM: + ROM: thông tin ghi lúc chế tạo + PROM (Programable ROM): ROM trắng, cho phép ghi thông tin lần + EPROM (Erasable ROM): ghi xóa thông tin nhiều lần Loại xóa cách rọi tia cực tím vào cửa sổ thủy tinh bề mặt + EEPROM (Electrically EPROM): gọi ROM điện, ghi xóa thông tin xung điện + Flash ROM: tương tự EEPROM b Bộ nhớ truy xuất ngẫu nhiên – RAM (Random Access Memory) - Cho phép đọc/ghi thông tin lúc trình làm việc mà không cần thiết bị đặc biệt - Thông tin RAM bị mất nguồn cung cấp - Có hai loại RAM chính: + RAM động – DRAM (Dynamic RAM): có cấu tạo từ transistor MOSFET tụ điện (1 phần tử nhớ), lưu trữ thông tin điện tích tụ nên thông tin (rò ró hết) biện pháp trì thích hợp Do cần có trình làm tươi (refresh) định kì để phục hồi nội dung ô nhớ trước (rò ró hết) DRAM tích hợp với dung lượng lớn + RAM tónh – SRAM (Static RAM): cấu tạo từ Flipflop (FF) (1 phần tử nhớ), FF lưu trữ bit thông tin nên SRAM không cần trình làm tươi để trì nội dung Tuy nhiên, khó tích hợp với dung lượng lớn Cấu trúc bên tiêu biểu nhớ - Bộ nhớ gồm phần tử nhớ hay ô nhớ (memory cell) tổ chức dạng ma trận Mỗi ô nhớ chứa bit thông tin - Mảng nhớ phân chia thành chuỗi ngăn nhớ hay từ nhớ (word) - Mỗi ngăn nhớ có địa - Một ngăn nhớ có 4-bit, 8-bit, 16-bit … - Ký hiệu: số ngăn nhớ x độ rộng ngăn nhớ Ví dụ: nhớ 1024 x bao gồm 210 ngăn nhớ, ngăn nhớ có 8-bit - Cấu trúc bên tiêu biểu nhớ: http://www.ebook.edu.vn Bài giảng VI XỬ LÝ Chương 1: Giới thiệu vi xử lý ( RD ) OE CS Write ( WR ) WE Data Output Data … Address Row address decoder Memory array EN Three State driver Data Input … Column address decoder Memory cell Hình 1.8 Memory array: Mảng ô nhớ Row address decoder: Bộ giải mã địa hàng Column address decoder: Bộ giải mã địa cột Memory cell: Ô nhớ Three state driver: Bộ điều khiển ngõ trạng thái Data Output: Dữ liệu Data Input: Dữ liệu vào Address: Địa Write: Ghi - Các tín hiệu tiêu biểu chip nhớ: + CS (Chip Select): tín hiệu chọn chip (cho phép chip) + OE (Output Enable): tín hiệu cho phép xuất liệu (nhận xung kích RD từ μP) + WE (Write Enable): tín hiệu cho phép ghi liệu (nhận xung kích WR từ μP) + Address: tín hiệu địa (từ bus địa chỉ) để chọn ngăn nhớ cần thao tác + Data: tín hiệu liệu đọc (data output) hay ghi vào (data input), nối với bus liệu Truy xuất nhớ * Các quy ước giản đồ thời gian: Hình 1.9 http://www.ebook.edu.vn Bài giảng VI XỬ LÝ http://www.ebook.edu.vn Chương 1: Giới thiệu vi xử lý Bài giảng VI XỬ LÝ Chương 1: Giới thiệu vi xử lý a Truy xuất ROM Giới thiệu EPROM 2764: Đây IC nhớ 28 chân 8K (8192 x 8) với 13 đường địa đường liệu Chú ý chân /PGM không điều khiển vi xử lý, dùng cho nạp liệu vào ROM Điện áp VPP sử dụng nạp ROM, điện áp VCC = 5V điện áp hoạt động cuûa ROM 10 25 24 21 23 20 22 27 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 CE OE PGM VPP 2764 D0 D1 D2 D3 D4 D5 D6 D7 11 12 13 15 16 17 18 19 A0 – A12 D0 – D7 /CE /OE /PGM Đường địa Đường liệu Chọn chip Cho phép xuất Lập trình Quy trình đọc ROM: Xác định địa ngăn nhớ cần truy xuất CPU đưa địa lên bus địa đến ROM Kích hoạt tín hiệu chọn chip cho phép liệu xuất bus liệu CPU đợi khoảng thời gian ngắn gọi thời gian truy cập để vi mạch nhớ giải mã địa xuất liệu đường liệu CPU xuất xung nhịp nạp liệu vào ghi bên Tín hiệu chọn chip đặt mức không tích cực xóa liệu từ ROM vào CPU Hình 1.10 b Truy xuất RAM Giới thiệu RAM 6264 Đây IC nhớ cho phép đọc ghi tùy ý, 28 chân 8K (8192 x 8) với 13 đường địa đường liệu Quy trình đọc RAM: tương tự đọc liệu từ ROM http://www.ebook.edu.vn 10 Bài giảng VI XỬ LÝ Chương 5: Giao tiếp Hình 5.37 Ví dụ 5.17: Cho ADC0804 kết nối với 8051 hình 5.37 Trong RD nối với P2.5, WR nối với P2.6, INTR nối với P2.7, CS nối mass, D0-D7 nối với P1.0-P1.7, Vref/2 = 1.28V Chương trình sau kiểm tra chân INTR đọc liệu tương tự vào ghi A Sau gọi chương trình chuyển đổi từ mã HEX sang mã ASCII hiển thị liệu RD BIT P2.5 ;/RD WR BIT P2.6 ;/WR (bắt đầu chuyển đổi) INTR BIT P2.7 ;kết thúc chuyển đổi http://www.ebook.edu.vn 33 Bài giảng VI XỬ LÝ BACK: Chương 5: Giao tiếp MYDATA MOV SETB CLR SETB JB CLR MOV ACALL ACALL SETB SJMP EQU P1 ;D0-D7 P1,#0FFH INTR WR ;tạo cạnh lên WR INTR,$ ;chờ kết thúc chuyển đổi RD ;kết thúc chuyển đổi, cho phép RD A, MYDATA ;đọc liệu CONVERSION DATA_DISPLAY RD ;chuẩn bị cho lần đọc BACK b ADC0809 - ADC0809 thiết bị chuyển đổi tín hiệu tương tự (analog) thành tín hiệu số (digital) mã hoá bit, multiplex kênh tương thích với vi xử lý ADC0809 dùng kỹ thuật chuyển đổi A/D xấp xỉ liên tiếp - Sơ đồ chân sơ đồ khối: 26 27 28 12 16 10 25 24 23 22 11 IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7 D0 D1 D2 D3 D4 D5 D6 D7 REF+ REF- EOC CLK A0 A1 A2 ALE OE START VCC ADC0809 Hình 5.38 Hình 5.39 http://www.ebook.edu.vn 34 17 14 15 18 19 20 21 Bài giảng VI XỬ LÝ Chương 5: Giao tiếp - Khả năng: + Giao tiếp dễ dàng với tất vi xử lý + Hoạt động với thang đo tỷ lệ với 5VDC điện áp chuẩn điều chỉnh + Không cần chỉnh không hay toàn thang (full-scale) + Multiplex kênh với địa logic + Tầm điện áp vào 0-5V với nguồn cung cấp đơn 5V + Ngõ phù hợp với mức điện áp TTL + Độ phân giải: bit + Sai số không điều chỉnh tổng cộng: ±1 LSB + Nguồn cung cấp đơn: 5VDC + Công suất thấp: 15mW + Thời gian chuyển đổi: khoảng 100μs - Đặc tính kỹ thuật: Ký hiệu Thông số Điều kiện Tối thiểu Điển hình Tối đa Đơn vị VREF+ Điện áp cao VCC VCC +0.1 V thang đo VREFĐiện áp thấp -0.1 V thang đo IIN Dòng vào fCLK = 640Khz -2 ±0.5 μA VIN(1) Điện áp vào logic VCC –1.5 V VIN(0) Điện áp vào logic 1.5 V VOUT(1) Điện áp logic IOUT = -360μA VCC –0.4 V VOUT(0) Điện áp logic IOUT = 1.6mA 0.45 V fCLK Tần số xung clock 10 640 1280 Khz tEOC Thời gian delay (Xem giản đồ + 2μs Chu kỳ EOC xung) clock tC Thời gian biến đổi fCLK = 640Khz 90 100 116 μs tWS Độ rộng xung Start (Xem giản đồ 100 200 ns tối thiểu thời gian) tALE Độ rộng xung ALE (Xem giản đồ 100 200 ns tối thiểu thời gian) - Mô tả chức năng: + Mạch chọn kênh (multiplexer) + Mỗi kênh ngõ vào riêng biệt chọn cách giải mã địa theo bảng sau: Địa Kênh analog chọn A1 A0 A2 IN0 0 IN1 0 … IN7 1 + Địa chốt vào giải mã bên cạnh lên xung chốt địa (ALE) - Đặc tính chuyển đổi: http://www.ebook.edu.vn 35 Bài giảng VI XỬ LÝ Chương 5: Giao tiếp Thanh ghi xấp xỉ liên tiếp (SAR – Successive Approximation Register) biến đổi A/D reset cạnh lên xung Start Việc chuyển đổi bắt đầu cạnh xuống xung Start Quá trình chuyển đổi bị ngắt nhận xung Start Sự chuyển đổi liên tiếp thực cách nối ngõ EOC (End Of Convert – Kết thúc chuyển đổi) vào ngõ Start Nếu sử dụng chế độ này, xung Start bên phải cung cấp sau bật nguồn Xung EOC xuống mức thấp sau cạnh lên xung Start từ đến xung clock lên mức cao việc chuyển đổi xong - Giản đồ thời gian: Hình 5.40 - Biểu thức chuyển đổi: Dữ liệu ngõ ADC số nguyên N nằm tầm: V − VREF − × 256 ± Độ xác tuyệt đối N = IN VREF + + VREF − Ví dụ 5.18: (kết nối hình vẽ 5.41) Xác định địa kênh analog Giải Một tập địa kênh: IN0 8000H IN1 8001H IN2 8002H IN3 8003H IN4 8004H IN5 8005H IN6 8006H IN7 8007H http://www.ebook.edu.vn 36 Bài giảng VI XỬ LÝ Chương 5: Giao tieáp 26 27 28 12 16 10 /CS: 8000H-9FFFH A0 A1 A2 25 24 23 22 P1.0 11 /CS /RD D0 D1 D2 D3 D4 D5 D6 D7 IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7 REF+ REF- EOC CLK A0 A1 A2 ALE OE START VCC ADC0809 Hình 5.41 Giải thuật điều khiển đọc ADC BEGIN Chọn kênh Analog ngõ vào Tạo xung ALE cho phép chốt địa Tạo xung START cho phép bắt đầu biến đổi Chờ biến đổi xong Đọc liệu ngõ EXIT Giao tiếp với DAC0808 - Biến đổi giá trị số thành giá trị tương tự (áp dòng) Hình 5.42 http://www.ebook.edu.vn 37 17 14 15 18 19 20 21 Bài giảng VI XỬ LÝ Chương 5: Giao tiếp - Trong DAC0808 (hay MC1408) ngõ vào số chuyển đổi thành dòng (Iout) cách nối điện trở đến chân Iout, ta đổi thành điện áp Dòng tổng cung cấp cho chân Iout hàm số nhị phân ngõ vào A0 đến A7 dòng tham chiếu (Iref) sau: ⎛ A7 A6 A5 A A3 A A1 A0 ⎞ I out = I ref ⎜ + + + + + + + ⎟ 16 32 64 128 256 ⎠ ⎝ với Iref dòng vào chân 14 Iref thường cài đặt 2mA - Chuyển đổi Iout thành điện áp: trường hợp lý tưởng ta kết nối ngõ chân Iout với điện trở để chuyển đổi thành điện áp Tuy nhiên, thực tế điện trở ngõ vào tải ảnh hưởng đến điện áp ngõ khiến điện áp ngõ trở nên không xác Vì vậy, dòng ngõ cách ly cách kết nối chân dòng ngõ với OP-AMP với điện trở hồi tiếp Rf = 5KΩ (hình 5.43), tạo thành mạch chuyển đổi từ dòng sang áp Hình 5.43 Ví dụ 5.19: Viết đoạn chương trình gởi liệu đến DAC (được kết nối với P1) để tạo điện áp ngõ dạng hình bậc thang CLR A AGAIN: MOV P1,A ;gởi liệu đến DAC INC A ;đếm từ đến FFH ACALL DELAY ;chờ DAC chuyển đổi SJMP AGAIN Ví dụ 5.20: Viết chương trình tạo sóng sine thông qua DAC (được kết nối với P1) Để tạo sóng sine, ta lập bảng biểu diễn giá trị sóng sine theo góc quay θ khoảng từ đến 360 độ Giá hàm sine thay đổi từ –1.0 đến 1.0 góc θ thay đổi từ đến 360 độ Giả sử điện áp toàn thang cho ngõ DAC 10V, ta có ngõ Vout tính theo công thức: Vout = 5V + (5V × sin θ) Và giá trị nhị phân tương ứng cần đưa đến DAC : Vout V N= × 256 = out × 256 = Vout × 25.6 10 Vtoàn thang Bảng sau cho giá trị Vout N theo góc θ, với góc θ thay đổi lần 30 độ http://www.ebook.edu.vn 38 Bài giảng VI XỬ LÝ Chương 5: Giao tiếp Góc θ (độ) 30 60 90 120 150 180 210 240 270 300 330 360 Sinθ 0.5 0.866 1.0 0.866 0.5 -0.5 -0.866 -1.0 -0.866 -0.5 Vout 7.5 9.33 10 9.33 7.5 2.5 0.669 0.669 2.5 N 128 192 238 255 238 192 128 64 17 17 64 128 COUNT EQU 12 AGAIN: MOV DPTR,#TABLE MOV R2,#COUNT BACK: CLR A MOVC A,@A+DPTR MOV P1,A INC DPTR DJNZ R2,BACK SJMP AGAIN ORG 300 TABLE: DB: 128,192,238,255,238,192,128,64,17,0,17,64,128 Muốn tạo sóng sine nhuyễn ta giảm bước nhảy góc θ, từ ta có bảng chuyển đổi Thông thường, ngõ OP-AMP ta gắn thêm mạch lọc thông thấp để lọc phẳng http://www.ebook.edu.vn 39 TÓM TẮT TẬP LỆNH GHI CHÚ: Ký hiệu Giải thích Rn định địa ghi sử dụng R0 – R7 bank ghi chọn direct địa bit RAM nội (00H - FFH) @Ri định địa gián tiếp sử dụng ghi R0 R1 #data số bit chứa lệnh #data16 số 16 bit chứa lệnh bit địa trực tiếp (8 bit) bit rel offset bit có dấu addr11 địa 11 bit trang hành addr16 địa 16 bit source toán hạng nguồn destination toán hạng đích ← thay … (…) nội dung … ((…)) liệu trỏ … i định địa gián tiếp sử dụng R0 (i=0) hay R1 (i=1) n2n1n0 mã chọn ghi R0 – R7 (000=R0, 001=R1, …) d7d6…d1d0 bit liệu a15a14…a1a0 bit địa b7b6…b1b0 địa bit r7r6…r1r0 địa tương đối bit http://www.ebook.edu.vn Trang 1/8 NHÓM LỆNH SỐ HỌC Mã gợi nhớ d7 d6 DEC @Ri MUL AB 0 a7 0 d7 0 a7 0 d7 1 a7 1 d7 0 a7 0 a7 0 a6 0 d6 0 a6 0 d6 0 a6 0 d6 0 a6 0 0 a6 0 1 a5 1 d5 1 a5 1 d5 0 a5 0 d5 0 a5 0 a5 0 a4 0 d4 1 a4 1 d4 1 a4 1 d4 0 a4 0 1 a4 1 a3 0 d3 a3 0 d3 a3 0 d3 a3 0 a3 0 n2 a2 1 d2 n2 a2 1 d2 n2 a2 1 d2 n2 a2 1 n2 a2 1 n1 a1 d1 n1 a1 d1 n1 a1 d1 n1 a1 1 n1 a1 n0 a0 i d0 n0 a0 i d0 n0 a0 i d0 n0 a0 I n0 a0 I 28-2F 25 Byte2 26-27 24 Byte2 38-3F 35 Byte2 36-37 34 Byte2 98-9F 95 Byte2 96-97 94 Byte2 04 08-0F 05 Byte2 06-07 A3 14 18-1F 15 Byte2 16-17 A4 DIV AB 0 0 0 84 DA A 1 1 0 D4 d1 d0 Maõ Hex n1 n0 58-5F ADD A, Rn ADD A, direct ADD A, @Ri ADD A, #data ADDC A, Rn ADDC A, direct ADDC A, @Ri ADDC A, #data SUBB A, Rn SUBB A, direct SUBB A, @Ri SUBB A, #data INC A INC Rn INC direct INC @Ri INC DPTR DEC A DEC Rn DEC direct d1 d0 Maõ Hex Số chu kỳ máy 1 Mã lệnh d5 d4 d3 d2 Giải thích (A) ← (A) + (Rn) (A) ← (A) + (direct) 1 (A) ← (A) + ((Ri)) (A) ← (A) + #data 1 (A) ← (A) + (C) + (Rn) (A) ← (A) + (C) + (direct) 1 (A) ← (A) + (C) + ((Ri)) (A) ← (A) + (C) + #data 1 (A) ← (A) − (C) − (Rn) (A) ← (A) − (C) − (direct) 1 (A) ← (A) − (C) − ((Ri)) (A) ← (A) − (C) − #data 1 (A) ← (A) + (Rn) ← (Rn) + (direct) ← (direct) + 1 1 ((Ri)) ← ((Ri)) + (DPTR) ← (DPTR) + (A) ← (A) − (Rn) ← (Rn) − (direct) ← (direct) − 1 ((Ri)) ← ((Ri)) − (A) ← byte thấp (A) x (B) (B) ← byte cao cuûa (A) x (B) (A) ← phần nguyên (A)/(B) (B) ← phần dư (A)/(B) Nội dung ghi A số BCD Neáu [(A3 - 0) > 9] OR [(AC) = 1] (A3 - 0) ← (A3 - 0) + Neáu [(A7 - 4) > 9] OR [(C) = 1] (A7 - 4) ← (A7 - 0) + NHÓM LỆNH LOGIC Mã gợi nhớ ANL A, Rn d7 d6 d5 http://www.ebook.edu.vn Mã lệnh d4 d3 d2 1 n2 Trang 2/8 Số chu kỳ máy Giải thích (A) ← (A) AND (Rn) ANL A, direct a6 1 d6 a6 a6 d6 1 a6 1 d6 a6 a6 d6 1 a6 1 d6 a6 a6 d6 1 a5 0 d5 a5 a5 d5 0 a5 0 d5 a5 a5 d5 1 a5 1 d5 a5 a5 d5 1 a4 1 d4 a4 a4 d4 0 a4 0 d4 a4 a4 d4 0 a4 0 d4 a4 a4 d4 a3 0 d3 a3 a3 d3 a3 0 d3 a3 a3 d3 a3 0 d3 a3 a3 d3 0 a2 1 d2 a2 a2 d2 n2 a2 1 d2 a2 a2 d2 n2 a2 1 d2 a2 a2 d2 1 a1 d1 a1 a1 d1 n1 a1 d1 a1 a1 d1 n1 a1 d1 a1 a1 d1 0 a0 i 0d CLR A CPL A a7 0 d7 a7 a7 d7 0 a7 0 d7 a7 a7 d7 0 a7 0 d7 a7 a7 d7 1 RL A 0 0 ANL A, @Ri ANL A, #data ANL direct, A ANL direct, #data ORL A, Rn ORL A, direct ORL A, @Ri ORL A, #data ORL direct, A ORL direct, #data XRL A, Rn XRL A, direct XRL A, @Ri XRL A, #data XRL direct, A XRL direct, #data a0 a0 d0 0 55 Byte2 56-57 54 Byte2 52 Byte2 53 Byte2 Byte3 48-4F 45 Byte2 46-47 44 Byte2 42 Byte2 43 Byte2 Byte3 68-6F 65 Byte2 66-67 64 Byte2 62 Byte2 63 Byte2 Byte3 E4 F4 23 0 a0 a0 d0 n0 a0 i 0d 0 a0 a0 d0 n0 a0 i 0d (A) ← (A) AND (direct) 1 (A) ← (A) AND ((Ri)) (A) ← (A) AND #data (direct) ← (direct) AND (A) (direct) ← (direct) AND #data 1 (A) ← (A) OR (Rn) (A) ← (A) OR (direct) 1 (A) ← (A) OR ((Ri)) (A) ← (A) OR #data (direct) ← (direct) OR (A) (direct) ← (direct) OR #data 1 (A) ← (A) XOR (Rn) (A) ← (A) XOR (direct) 1 (A) ← (A) XOR ((Ri)) (A) ← (A) XOR #data (direct) ← (direct) XOR (A) (direct) ← (direct) XOR #data 1 (A) ← (A) ← ( A ) Nội dung ghi A quay trái bit A7 A6 A5 A4 A3 A2 A1 A0 RLC A 0 1 0 1 33 Nội dung ghi A cờ C quay trái bit C RR A 0 0 0 1 03 A7 A6 A5 A4 A3 A2 A1 A0 Nội dung ghi A quay phải moät bit A7 A6 A5 A4 A3 A2 A1 A0 RRC A 0 0 1 13 Nội dung ghi A cờ C quay phải bit C SWAP A 1 http://www.ebook.edu.vn 0 0 Trang 3/8 C4 A7 A6 A5 A4 A3 A2 A1 A0 (A3 - 0) ↔ (A7 - 4) NHÓM LỆNH CHUYỂN DỮ LIỆU Mã gợi nhớ MOV A, Rn MOV A, direct MOV A, @Ri MOV A, #data MOV Rn, A MOV Rn, direct MOV Rn, #data MOV direct, A MOV direct, Rn MOV direct, direct MOV direct, @Ri MOV direct, #data MOV @Ri, A MOV @Ri, direct MOV @Ri, #data MOV DPTR, #data16 XCH A, Rn XCH A, direct XCH A, @Ri XCHD A, @Ri PUSH direct POP direct MOVX A,@Ri MOVX A,@DPTR MOVX @Ri, A MOVX @DPTR, A MOVC A,@A+DPTR MOVC A,@A+PC d7 d6 Mã lệnh d5 d4 d3 d2 1 a7 d7 1 a7 d7 a7 a7 a7 a7 a7 a7 d7 1 a7 d7 d7 d7 1 a7 1 a7 a7 1 1 1 1 a6 1 d6 a6 d6 a6 a6 a6 a6 a6 a6 d6 a6 d6 d6 d6 1 a6 1 a6 a6 1 1 0 1 a5 1 d5 1 a5 d5 a5 a5 a5 a5 a5 a5 d5 1 a5 d5 d5 d5 0 a5 0 a5 a5 1 1 0 http://www.ebook.edu.vn 0 a4 d4 a4 d4 a4 a4 a4 a4 a4 a4 d4 a4 d4 d4 d4 0 a4 a4 a4 0 1 1 a3 0 d3 1 a3 d3 a3 a3 a3 a3 a3 a3 d3 0 a3 d3 d3 d3 a3 0 a3 a3 0 0 0 n2 a2 1 d2 n2 n2 a2 n2 d2 a2 n2 a2 a2 a2 a2 a2 d2 1 a2 d2 d2 d2 n2 a2 1 a2 a2 0 0 0 d1 d0 Maõ Hex n1 a1 d1 n1 n1 a1 n1 d1 a1 n1 a1 a1 a1 a1 a1 d1 1 a1 d1 d1 d1 n1 a1 1 a1 a1 1 1 n0 a0 i d0 n0 n0 a0 n0 d0 a0 n0 a0 a0 a0 i a0 a0 d0 i i a0 i d0 d0 d0 n0 a0 i i a0 a0 i i 1 E8-EF E5 Byte2 E6-E7 74 Byte2 F8-FF A8-AF Byte2 78-7F Byte2 F5 Byte2 88-8F Byte2 85 Byte2 Byte3 86-87 Byte2 75 Byte2 Byte3 F6-F7 A6-A7 Byte2 76-77 Byte2 90 Byte2 Byte3 C8-CF C5 Byte2 C6-C7 D6-D7 C0 Byte2 D0 Byte2 E2-E3 E0 F2-F3 F0 93 83 Trang 4/8 Số chu kỳ máy 1 Giải thích (A) ← (Rn) (A) ← (direct) 1 (A) ← ((Ri)) (A) ← #data (Rn) ← (A) (Rn) ← (direct) (Rn) ← #data (direct) ← (A) (direct) ← (Rn) 2 (direct) ← (direct) (source) (destination) (direct) ← ((Ri)) (direct) ← #data ((Ri)) ← (A) ((Ri)) ← (direct) ((Ri)) ← #data (DPTR) ← #data15 – (DPH) ← #data15 – (DPL) ← #data7 – (A) ↔ (Rn) (A) ↔ (direct) 1 1 2 2 2 2 (A) ↔ ((Ri)) (A3 – ) ↔ ((Ri3 – )) (SP) ← (SP) + ((SP)) ← (direct) (direct) ← ((SP)) (SP) ← (SP) – (A) ← ((Ri)) RAM ngoaøi (A) ← ((DPTR)) RAM ngoaøi ((Ri)) ← (A) RAM ngoaøi ((DPTR)) ← (A) RAM (A) ← ((A)+(DPTR)) (A) ← ((A)+(PC)) NHÓM LỆNH CHUYỂN ĐIỀU KHIỂN Mã gợi nhớ Số chu kỳ máy d7 d6 d5 Mã lệnh d4 d3 ACALL addr11 a10 a7 a9 a6 a8 a5 a4 a3 a2 a1 a0 Byte1 Byte2 LCALL addr16 a15 a7 a14 a6 a13 a5 a12 a4 a11 a3 a10 a2 a9 a1 a8 a0 12 Byte2 Byte3 RET 0 0 22 RETI 0 1 0 32 a10 a7 a15 a7 r7 0 r7 a9 a6 a14 a6 r6 1 r6 a8 a5 a13 a5 r5 1 r5 a4 a12 a4 r4 r4 a3 a11 a3 r3 0 r3 a2 a10 a2 r2 0 r2 a1 a9 a1 r1 r1 a0 a8 a0 r0 r0 Byte1 Byte2 02 Byte2 Byte3 80 Byte2 73 60 Byte2 JNZ rel r7 r6 r5 r4 r3 r2 r1 r0 70 Byte2 JC rel r7 r6 r5 r4 r3 r2 r1 r0 40 Byte2 JNC rel r7 r6 r5 r4 r3 r2 r1 r0 50 Byte2 JB bit, rel b7 r7 b7 r7 b6 r6 b6 r6 b5 r5 b5 r5 b4 r4 b4 r4 b3 r3 b3 r3 b2 r2 b2 r2 b1 r1 b1 r1 b0 r0 b0 r0 20 Byte2 Byte3 30 Byte2 Byte3 AJMP addr11 LJMP addr16 SJMP rel JMP @A+DPTR JZ rel JNB bit, rel http://www.ebook.edu.vn d2 d1 d0 Mã Hex Trang 5/8 2 2 Giải thích (PC) ← (PC) + (SP) ← (SP) +1 ((SP)) ← (PC7 - 0) (SP) ← (SP) +1 ((SP)) ← (PC15 - 8) (PC) ← địa trang (PC) ← (PC) + (SP) ← (SP) +1 ((SP)) ← (PC7 - 0) (SP) ← (SP) +1 ((SP)) ← (PC15 - 8) (PC) ← addr15 - (PC15 - 8) ← ((SP)) (SP) ← (SP) − (PC7 - 0) ← ((SP)) (SP) ← (SP) − (PC15 - 8) ← ((SP)) (SP) ← (SP) − (PC7 - 0) ← ((SP)) (SP) ← (SP) − (PC) ← (PC) + (PC10 - 0) ← địa trang (PC) ← addr15 - (PC) ← (PC) + (PC) ← (PC) + rel (PC) ← (A) + (DPTR) (PC) ← (PC) + Nếu (A) = (PC) ← (PC) + rel (PC) ← (PC) + Neáu (A) ≠ (PC) ← (PC) + rel (PC) ← (PC) + Nếu (C) = (PC) ← (PC) + rel (PC) ← (PC) + Neáu (C) = (PC) ← (PC) + rel (PC) ← (PC) + Nếu (bit) = (PC) ← (PC) + rel (PC) ← (PC) + Neáu (bit) = (PC) ← (PC) + rel b7 r7 a7 r7 b6 r6 a6 r6 b5 r5 a5 r5 b4 r4 a4 r4 b3 r3 a3 r3 b2 r2 a2 r2 b1 r1 a1 r1 b0 r0 a0 r0 10 Byte2 Byte3 B5 Byte2 Byte3 CJNE A, #data, rel d7 r7 d6 r6 d5 r5 d4 r4 d3 r3 d2 r2 d1 r1 d0 r0 B4 Byte2 Byte3 CJNE Rn, #data, rel d7 r7 d6 r6 d5 r5 d4 r4 d3 r3 n2 d2 r2 n1 d1 r1 n0 d0 r0 B8-BF Byte2 Byte3 CJNE @Ri, #data, rel d7 r7 d6 r6 d5 r5 d4 r4 d3 r3 d2 r2 d1 r1 i d0 r0 B6-B7 Byte2 Byte3 DJNZ Rn, rel r7 r6 r5 r4 r3 n2 r2 n1 r1 n0 r0 D8-DF Byte2 DJNZ direct, rel a7 r7 a6 r6 a5 r5 a4 r4 a3 r3 a2 r2 a1 r1 a0 r0 D5 Byte2 Byte3 NOP 0 0 0 0 00 JBC bit, rel CJNE A, direct, rel (PC) ← (PC) + Neáu (bit) = (bit) ← 0, (PC) ← (PC) + rel (PC) ← (PC) + Nếu (A) > (direct) (PC) ← (PC) + rel vaø (C) ← OR Nếu (A) < (direct) (PC) ← (PC) + rel (C) ← (PC) ← (PC) + Nếu (A) > #data (PC) ← (PC) + rel (C) ← OR Nếu (A) < #data (PC) ← (PC) + rel vaø (C) ← (PC) ← (PC) + Nếu (Rn) > #data (PC) ← (PC) + rel (C) ← OR Nếu (Rn) < #data (PC) ← (PC) + rel (C) ← (PC) ← (PC) + Neáu ((Ri)) > #data (PC) ← (PC) + rel (C) ← OR Nếu ((Ri)) < #data (PC) ← (PC) + rel vaø (C) ← (PC) ← (PC) + (Rn) ← (Rn) − Neáu (Rn) ≠ (PC) ← (PC) + rel (PC) ← (PC) + (direct) ← (direct) − Neáu (direct) ≠ (PC) ← (PC) + rel (PC) ← (PC) + NHÓM LỆNH XỬ LÝ BIT Mã gợi nhớ CLR C CLR bit SETB C SETB bit CPL C CPL bit d7 d6 d5 Mã lệnh d4 d3 1 b7 1 b7 1 b6 1 b6 0 b5 0 b5 0 b4 1 b4 0 b3 0 b3 0 b2 0 b2 1 b1 1 b1 1 b0 b0 C3 C2 Byte2 D3 D2 Byte2 B3 b7 b6 b5 b4 b3 b2 b1 b0 B2 Byte2 http://www.ebook.edu.vn d2 d1 d0 Mã Hex Trang 6/8 Số chu kỳ maùy 1 (C) ← (bit) ← 1 (C) ← (bit) ← 1 (C) ← ( C ) (bit) ← ( bit ) Giaûi thích ANL C, bit ANL C, /bit ORL C, bit ORL C, /bit MOV C, bit MOV bit, C b7 b7 b7 b7 b7 b7 b6 b6 b6 b6 b6 b6 b5 b5 b5 b5 b5 b5 b4 b4 b4 b4 b4 b4 b3 b3 b3 b3 b3 b3 b2 b2 b2 b2 b2 b2 b1 b1 b1 b1 b1 b1 b0 b0 b0 b0 b0 b0 82 Byte2 B0 Byte2 72 Byte2 A0 Byte2 A2 Byte2 92 Byte2 (C) ← (C) AND (bit) (C) ← (C) AND ( bit ) (C) ← (C) OR (bit) (C) ← (C) OR ( bit ) (C) ← (bit) (bit) ← (C) TÓM TẮT MỘT SỐ THANH GHI CHỨC NĂNG ĐẶC BIỆT Thanh ghi chế độ định thời TMOD (không định địa bit) MSB Gate C/T M1 M0 Gate C/T M1 LSB M0 Timer Timer Thanh ghi điều khiển định thời TCON (được định địa chæ bit) MSB TF1 TR1 TF0 TR0 IE1 IT1 IE0 LSB IT0 Timer Interrupt Thanh ghi điều khiển port nối tiếp SCON (được định địa bit) MSB SM0 SM1 SM2 REN TB8 Thanh ghi cho phép ngắt IE (được định địa bit) MSB EA (ET2) ES Thanh ghi ưu tiên ngắt IP (được định địa bit) ET1 RB8 EX1 MSB (PT2) PS PT1 PX1 Thanh ghi traïng thái chương trình PSW (được định địa bit) MSB CY AC F0 RS1 RS0 OV Thanh ghi điều khiển nguồn PCON (không định địa bit) MSB SMOD http://www.ebook.edu.vn - - - GF1 Trang 7/8 GF0 TI LSB RI ET0 LSB EX0 PT0 LSB PX0 - LSB P PD LSB IDL TÓM TẮT CÁC LỆNH TÁC ĐỘNG LÊN CỜ ADD ADDC SUBB MUL AB CY x x x Cờ OV x x x x AC x x x - DIV AB x - - - Leänh DA A x RLC x RRC x CJNE x SETB C CLR C CPL C x ANL C, bit x ANL C, /bit x ORL C, bit x ORL C, /bit x MOV C, bit x x : tùy thuộc vào kết - : không bị tác động lệnh BẢNG CÁC VECTOR NGẮT Nguyên nhân ngắt Reset hệ thống Ngắt Ngắt timer Ngắt Ngắt timer Ngắt port nối tiếp BẢNG CÁC TỐC ĐỘ BAUD Tốc độ baud 9600 2400 1200 19200 9600 2400 1200 Tần số thạch anh 12,000MHz 12,000MHz 12,000MHz 11,059MHz 11,059MHz 11,059MHz 11,059MHz http://www.ebook.edu.vn Ghi chuù (OV) = kết > 0FFH, ngược lại (OV) = (OV) = ban đầu (B) = 0, ngược lại (OV) = Cờ RST IE0 TF0 IE1 TF1 RI hoaëc TI SMOD 0 0 0 Giá trị nạp cho TH1 -7 (F9H) -13 (F3H) -26 (E6H) -3 (FDH) -3 (FDH) -12 (F4H) -24 (E8H) Trang 8/8 Địa vector ngắt 0000H 0003H 000BH 0013H 001BH 0023H Tốc độ baud thực tế 8923 2404 1202 19200 9600 2400 1200 Sai soá 7% 0,16% 0,16% 0 0 ... http://www.ebook.edu.vn 19 Bài giảng VI XỬ LÝ Chương 1: Giới thiệu vi xử lý CÂU HỎI VÀ BÀI TẬP CHƯƠNG 1.1 Hãy nêu thành phần hệ vi xử lý? Chức thành phần? 1.2 Vi xử lý gì? Các thành phần chip vi xử lý? 1.3 Phân biệt... 1.24 http://www.ebook.edu.vn 16 Bài giảng VI XỬ LÝ Chương 1: Giới thiệu vi xử lý b Interrupt (Ngắt) Ngắt q trình xử lý thơng tin vi xử lý tương tự người xử lý thơng tin Ví dụ bạn nói chuyện với người... Hình 1.9 http://www.ebook.edu.vn Bài giảng VI XỬ LÝ http://www.ebook.edu.vn Chương 1: Giới thiệu vi xử lý Bài giảng VI XỬ LÝ Chương 1: Giới thiệu vi xử lý a Truy xuất ROM Giới thiệu EPROM 2764:

Ngày đăng: 22/08/2020, 20:03

TỪ KHÓA LIÊN QUAN