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

Giáo trình Kỹ thuật vi điều khiển - CĐ Công nghiệp Hải Phòng

84 16 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 84
Dung lượng 2,1 MB

Nội dung

Giáo trình Kỹ thuật vi điều khiển cung cấp cho người học những kiến thức như: giới thiệu tổng quát về hệ vi xử lý, bộ vi điều khiển 80C51/89C51, Tập lệnh của bộ Vi điều khiển 80C51/89C51,Lập trình ứng dụng. Mời các bạn cùng tham khảo!

UBND TỈNH HẢI PHỊNG TRƯỜNG CAO ĐẲNG CƠNG NGHIỆP HẢI PHỊNG GIÁO TRÌNH KỸ THUẬT VI ĐIỀU KHIỂN Chuyên ngành: Kỹ thuật lắp ráp, sửa chữa máy tính (Lưu hành nội bộ) HẢI PHÒNG CHƯƠNG I : GIỚI THIỆU TỔNG QUÁT VỀ HỆ VI XỬ LÝ 1.1 Kiến trúc hệ Vi xử lý Kiến trúc hệ Vi xử lý thuật ngữ dùng để rõ đặc trưng hệ vi xử lý bao gồm có cấu trúc phần cứng tổ chức phần mềm cài đặt hệ Một hệ thống vi xử lý hay gọi ngắn hệ vi xử lý thường bao gồm thành phần như: Bộ xử lý trung tâm CPU (Central Processing Unit ) trung tâm đầu não hệ Bộ nhớ tâm bao gồm thành phần ROM RAM Thiết bị vào/ra liệu Các kênh thông tin hay Bus hệ thống… Tất thiết bị có chức gọi hệ vi xử lý.Trong 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 thông dụng vi xử lý Intel Các vi xử lý Intel phát triển qua thời kỳ sau: Năm 1971, Intel đưa vi xử lý 4004 với bit liệu, 12 bit địa chỉ; 0,8MHz Năm 1972, vi xử lý Intel 8080 đời với 8bit liệu, 12 bit địa chỉ; Năm 1978, vi xử lý Intel 8086 đời với 16bit liệu, 20 bit địa chỉ; tốc độ 10MHz Năm 1979, vi xử lý Intel 8088 đời tương thích với hệ thống 8086 Năm 1982 vi xử lý 80286 đời với 16bit liệu, 20 bit địa chỉ, tốc độ 20MHz Năm 1985-1988, vi xử lý 80386 đời với 32 bit liệu 32 bit địa … Năm 1989, vi xử lý 80486 đời với 32 bit liệu 32 bit địa tốc độ đến 60M Năm 1993, vi xử lý Pentium đời với 64 bit liệu, tốc độ xử lý 100MHz sau vi xử lý Pentium Pro,Pentium II, Pentium III, Celeron, Pentium 4… 1.1.1 Sơ đồ khối tổng quát hệ Vi xử lý ❖ Sơ đồ khối : Data Control ROM CPU I/O RAM Adress Hình 1.1 Cấu trúc kênh thông tin hệ VXL ❖ Chức khối : Bộ xử lý trung tâm CPU (Central Processing Unit ) trung tâm đầu não hệ, có chức thu thập, xử lý thơng tin điều khiển hoạt động hệ vi xử lý Bộ nhớ trung tâm có nhiệm vụ lưu trữ thông tin liệu trước CPU xử lý Thiết bị I/O thực việc nhận liệu từ kênh thơng tin từ bên ngồi vào CPU xử lý xuất tín hiệu điều khiển hệ thống Các kênh thông tin hay Bus hệ thống cầu nối liên kết khối thực việc liên kết Bus địa chỉ, Bus điều khiển Bus liệu ❖ Tổ chức kênh thông tin hệ Vi xử lý Memory Address Bus CPU Program Memory Kiến trúc Von Neumann Data Bus Data Memory Memory Address Bus Program CPU Fetch Bus Address Bus Kiến trúc Harvard Data Data Bus Hình 1.2: Cấu trúc kênh thông tin hệ VXL Trên cách tổ chức nhớ theo kiểu Von Neumann Harvard Với kiểu tổ chức nhớ chương trình liệu tách biệt cho phép tốc độ truy xuất thông tin nhanh đáng kể Các kênh liệu kênh song song dùng chung cho tất nhớ, nhiên phải kiểm sốt thông qua cổng lôgic trạng thái Cổng có nhiệm vụ tạo trạng thái đặc biệt có thành phần khơng kích hoạt làm việc, trạng thái đặc biệt cách ly mặt tín hiệu kênh thơng tin với thành phần hệ chúng kết nối với mặt vật lý 1.1.2 Khối xử lý trung tâm (Central Processing Unit) Bộ vi xử lý hạt nhân hệ vi xử lý, thành phần quan trọng kiểm soát tất hoạt động hệ thực thao tác liệu Hầu hết CPU hình thành từ mạch lôgic nhằm thực liên tục thao tác tìm nạp lệnh từ nhớ để giải mã thực thi lệnh CPU có khả hiểu thực thi lệnh dựa tập mã nhị phân gọi mã máy mã nhằm thực thao tác đó.Tổ hợp lệnh cho loại CPU gọi tập lệnh thường chia thành nhóm lệnh như: - Nhóm lệnh chuyển liệu - Nhóm lệnh số học - Nhóm lệnh Lơgic - Nhóm lệnh rẽ nhánh chương trình - Nhóm lệnh xử lý bít Cấu trúc đơn giản loại CPU minh họa sau: CPU Registe PC Adress Bus Data Bus ALU CU Control Bus Hình 1.3 Cấu trúc chung CPU - PC (Program Couter): Bộ đếm trương trình có vai trị trỏ, trỏ đến nhớ chứa lệnh mà CPU cần truy nhập - IR (Instruction Register):Thanh ghi lệnh IR (Instruction Register) Thanh ghi lệnh thực chức chứa lệnh mà CPU thực - CU (Control Unit) Đơn vị điều khiển có chức giải mã lệnh - MAR ( Memory Address Register) Thanh ghi nhớ thực chức chứa địa ô nhớ thời mà CPU truy nhập - ALU (Arithmetic Logic Unit) đơn vị số học logic, thực phép tính số học, logic phép xử lý liệu khác - ACC (Accumulator) Thanh chứa , chứa tốn hạng phép tính kết phép tính - TMP (Temporary) Thanh ghi tạm, chứa tốn hạng thứ hai phép tính - FLAGS Thanh ghi cờ chứa thông tin trạng thái kết phép tính sau thực lệnh - Address Bus : Bus địa - Data Bus : Bus liệu - Control Bus : Bus điều khiển 1.1.3 Q trình truy xuất xử lý thơng tin Việc tìm nạp lệnh từ Ram hệ thống thao tác mà CPU phải thực Quá trình tìm nạp lệnh thực theo trình tự sau: Address Bus CPU PC IR opcode Data Bus RAM Clock Read Control Bus opcode n+2 n+1 n n-1 Hình1.4 : Hoạt động Bus cho chu kỳ tìm nạp lệnh Địa chứa PC gửi lên bus địa Tín hiệu cho phép đọc lệnh từ nhớ kích hoạt sang trạng thái tích cực Dữ liệu hay mã lệnh đọc từ nhớ gửi lên kênh liệu chuyển ghi lệnh IR Tiếp theo nội dung PC (tức địa chỉ) tăng lên1để trỏ tới địa nhớ Mã lệnh chuyển xuống giải mã theo mã lệnh CPU triển khai thực lệnh.Trường hợp tốn hạng nằm nhớ chương trình sau mã lệnh CPU tiếp tục đưa PC nên bus địa để trỏ tới toán hạng đưa ghi để thực lệnh VD: ADD A,#3EH Nếu toán hạng nằm ghi CPU, CPU thực lệnh VD : ADD A,R1 Toán hạng nằm nhớ mà địa ghi CPU CPU đưa địa cho ghi địa (MAR) để đọc liệu thực lệnh VD : ADD A,@R0 1.1.4 Bộ nhớ đọc (Read Only Memory - ROM): ❖ ROM bản: ROM dùng để lưu trữ chương trình điều hành (Monitor) hệ VXL Chương trình quy định hoạt động hệ VXL Bộ VXL vào lệnh chứa chương trình để điều khiển hệ VXL thực chức năng, nhiệm vụ ấn định lệnh Nói cách khác, hệ VXL thực cách trung thực thuật toán mà người thiết kế phần mềm xây dựng cài đặt vào ROM hệ Ngoài ra, ROM hệ VXL dùng để lưu trữ bảng biểu, tham số hệ thống mà trình hoạt động không thay đổi như: bảng địa cổng giao tiếp, bảng tra cứu số liệu, mã cần sử dụng hệ ROM quản lý theo phương thức ma trận điểm, có nhiều chủng loại khác nhau: ROM, PROM, EPROM, EEPROM,… ROM nhớ cố định có cấu trúc đơn giản Nội dung nhà sản xuất chế tạo, người sử dụng thay đổi nội dung ❖ PROM (Programmable ROM - ROM có khả lập trình được): Đặc điểm chung: Nội dung PROM nhà sản xuất người thiết kế hệ VXL nạp vào đựoc lần Sau nạp xong nội dung thay đổi ❖ EPROM (Eraseable PROM ROM nạp/xoá nhiều lần): EPROM nhớ cố định có cấu trúc đặc biệt Nội dung nhà sản xuất hay người thiết kế hệ VXL nạp vào nạp/xoá nhiều lần Người ta tạo bit thông tin EPROM dựa nguyên tắc làm việc Transistor trường có cực cửa cách ly kênh cảm ứng (MOSFET kênh cảm ứng) ❖ EEPROM (Electrical EPROM ROM có khả lập trình xố điện) 1.1.5 Bộ nhớ W/R gọi nhớ truy cập ngẫu nhiên (RAM) RAM nhớ ghi đọc được, thông tin RAM bị mất nguồn cung cấp Theo phương thức lưu trữ thông tin, RAM chia thành loại bản: RAM tĩnh RAM động RAM tĩnh: Có thể lưu trữ thông tin lâu tuỳ ý miễn cung cấp điện - tất loại phần tử nhớ Trigơ thuộc loại RAM động: Chỉ lưu thông tin khoảng thời gian định Muốn kéo dài thời gian cần có phương thức làm tươi lại thông tin phần tử nhớ RAM Phần tử nhớ RAM động đơn giản linh kiện điện dung - tụ diện Sử dụng RAM động có phức tạp cấu trúc nhớ lại đơn giản, tiêu tốn lượng, tăng mật độ nhớ đơi cịn làm tăng tốc độ làm việc nhớ Cấu trúc mạch điện nhớ RAM đa dạng công nghệ chế tạo chúng (TTL, MOS,… ) yêu cầu sử dụng chúng yêu cầu ghép nối, tốc độ làm việc, mật độ linh kiện dung lương cần thiết… 1.1.6 Các thiết bị xuất/nhập: Các thiết bị xuất/nhập hay thiết bị ngoại vi kết hợp với mạch giao tiếp (Interface) tạo đường truyền thông hệ VXL với giới bên Tuy nhiên để trao đổi thông tin hệ VXL với thiết bị ngoại vi, cần có phương pháp điều khiển thích hợp như: Điều khiển vào/ra chương trình, điều khiển vào/ra ngắt, điều khiển vào/ra phần cứng vv… 1.1.7 Cấu trúc kênh chung hệ VXL: Kênh (Bus) tập hợp đường thơng tin có mục đích Để CPU giao tiếp với phận khác hệ VXL theo yêu cầu, hệ VXL cần sử dụng kênh : - Kênh địa (Adress Bus) - Kênh liệu (Daten Bus) - Kênh điều khiển (Control Bus) Để thực thao tác đọc ghi, CPU xác định rõ vị trí (địa chỉ) liệu (hoặc lệnh) cách đặt địa lên kênh địa chỉ, sau kích hoạt tín hiệu Read Write kênh điều khiển để thao tác đọc hay ghi Nếu kích hoạt tín hiệu điều khiển Read, thao tác đọc lấy byte liệu từ nhớ vị trí xác định đặt byte lên kênh liệu CPU đọc liệu cất liệu vào ghi nội CPU Nếu kích hoạt tín hiệu điều khiển Write, CPU thực thao tác ghi cách xuất liệu lên kênh liệu Nhờ vào tín hiệu điều khiển, nhớ nhận biết thao tác ghi lưu liệu vào vị trí xác định Kênh liệu cho phép trao đổi thông tin CPU nhớ, CPU với thiết bị ngoại vi Thông thường hệ VXL dành hầu hết thời gian cho việc di chuyển liệu, đa số thao tác di chuyển liệu xảy ghi CPU với ROM RAM ngồi Do độ lớn kênh liệu ảnh hưởng lớn tới hiệu suất hệ VXL Nếu nhớ hệ thống lớn CPU có khả tính tốn cao, việc truy xuất liệu – di chuyển liệu nhớ CPU thông qua kênh liệu lại bị nghẽn tượng “nghẽn cổ chai” hậu độ rộng kênh liệu không đủ lớn Để khắc phục tượng này, cần tăng đường tín hiệu cho kênh liệu D A T E N B U S CPU Control Bus ROM A D R E S S RAM B U S I/O 16 Hình 1.5 :Cấu trúc kênh chung hệ thống VXL Như hình 1.3, kênh liệu kênh chiều, kênh địa kênh chiều Các thông tin địa cung cấp CPU, liệu di chuyển theo hướng tuỳ thuộc vào thao tác thực đọc hay ghi Thuật ngữ “dữ liệu” sử dụng theo nghĩa tổng quát: “thông tin” di chuyển kênh liệu lệnh chương trình, địa theo sau lệnh liệu sử dụng chương trình Kênh điều khiển tập hợp tín hiệu, tín hiệu có vai trị riêng việc điều khiển có trật tự hoạt động hệ thống Các tín hiệu điều khiển cung cấp CPU để đồng việc di chuyển thông tin kênh địa liệu Các VXL thường có tín hiệu điều khiển: Read, Write, Clock Tuy nhiên tuỳ vào yêu cầu cụ thể cấu trúc phần cứng hệ VXL mà số lượng tín hiệu điều khiển khác 1.2 Các hệ thống số liên quan VĐK ❖ Hệ đếm thập phân (Decimal): Hệ đếm thập phân cịn gọi hệ đếm số mười biểu diễn 10 số từ (0,1,2,3,4,5,6,7,8,9 ) số sử dụng nhiều khoa học kỹ thuật đời sống hàng ngày, biểu diễn số thập phân dứng sau dãy số thường có chữ D Ví dụ: Ba nghìn Chin trăm Bảy mươi Tám biểu diễn sau 3978 = 3x103 + 9x102 + 7x101 + 8x100 = 3000 + 900 + 70 + ❖ Hệ đếm thập lục phân (Hexadecimal): Hệ đếm thập phân gọi hệ đếm số mười sáu biểu diễn 16 ký số (0,1,2,3,4,5,6,7,8,9,B,C,D,E,F) số sử dụng nhiều khoa học kỹ thuật đặc biệt khoa học máy tính biểu diễn mã Hexa ngắn gọn, biểu diễn số thập lục phân sau dãy số phải có chữ H Ví dụ: 3978h , 12CCh, 1998h, ABCDh, 2008h … ❖ Hệ đếm nhị phân (Binary): Hệ đếm nhị phân cịn gọi hệ đếm số hai biểu diễn số 1, kỹ thuật điện tử số số gọi mức logic thấp ứng với điện áp thấp, số 1gọi mức logic cao tương ứng với điện áp cao Mỗi ký hiệu gọi Bit (Binary Digit), biểu diễn số nhị phân dứng sau dãy số phải có chữ B Ví dụ: 1100b ; gọi nibble 10011001b ; gọi Byte 1010101111001101b ; gọi Word Trong dãy số nhị phân biểu diễn số nhị phân sát phải gọi bít LSB cịn số nhị phân sát trái gọi bít MSB Ví dụ: 1010101010101010 MSB LSB Số nhị phân thường biểu diễn dạng số nhị phân có dấu số nhị phân không dấu, số nhị phân không dấu biểu diễn số không âm (0) cịn số nhị phân có dấu biểu diễn giá trị âm Ví dụ : (1101) = 1x23 + 1x22 + 0x21 + 1x20 = + + + = 13 Dải giá trị số có dấu bít [-128, +127 ] Dải giá trị số có dấu 16 bít [-32768, +32767 ] Trong biểu diễn dãy số nhị phân có dấu người ta sử dụng bít MSB để quy ước cho bít dấu, với bít cho dãy số nhị phân dương cịn bít cho dãy số nhị phân âm ❖ Hệ đếm BCD (Binary Coded Decimal): Số đếm BCD định nghĩa số thập phân biểu diễn dạng nhị phân bít, dãy số nhị phân bít quy sang hệ thập phân giá trị phải  Trong kỹ thuật điện tử nói chung mã BCD sử dụng để giải mã hiển thị LED bảy thanh… Ví dụ: (0011), (0100), (0101), (0110), …(1001) ; gọi số BCD không nén Ví dụ: (00110100), (01010110), … (01111000) ; gọi số BCD nén Dưới bảng mã BCD Thập phân Thập phân BCD 0000 1000 0001 1001 0010 10 1010 0011 11 1011 0100 12 1100 0101 13 1101 0110 14 1110 0111 15 1111 Ví dụ: Cho số thập phân 15 , biểu diễn dạng số BCD 00010101 ❖ Số bù 2: Trong kỹ thuật Vi xử lý để biểu diễn số dạng dãy số nhị phân ngồi việc biểu diễn số khơng dấu, số có dấu người ta cịn sử dụng cách biểu diễn số bù Vậy số bù biểu diễn nào? Ví dụ: Hãy biểu diễn dãy số A = 10011001 sang số bù nó: - b1: Tìm số bù A(bằng cách lấy bù tất bit A): 01100110 - b2: Tìm số bù A (bằng cách lấy số bù cộng cho 1) : 01100111 đến ta nhận thấy số bù số số đối tổng = ❖ Phép cộng nhị phân khơng dấu : Ví dụ : Cho số nhị phân sau A = 10010011 ; B = 00111001 tìm tổng Y số nhị phân cho A: 10010011b B: 00111001b Y = A+B = 11001100b 0 1 + + + + 1 = = = = 1 ; nhớ ❖ Phép trừ nhị phân: Ví dụ : Cho số nhị phân sau A = 10010011 ; B = 00111001 tìm hiệu Z số nhị phân cho (Lưu ý phép trừ thực cách biến thành phép cộng) A: 10010011b B: 00111001b Y = A - B = 01011010b 0 1 - 1 = = = = 1 ; mượn ❖ Phép nhân nhị phân : Ví dụ : Cho số nhị phân sau A = 00100101 ; B = 00000100 tìm tích F Khi nhân dãy số nhị phân với ta đặt phép tốn nhân giống nhân số thập phân, kết phép nhân dãy số nhị phân bít thu dãy số nhị phân 16 bít, ta có F = A*B = 0000000010010100b ĐỀ CƯƠNG MƠN HỌC KỸ THUẬT VI ĐIỀU KHIỂN 3.6.3 Lệnh nhảy vô điều kiện Cú pháp câu lệnh: JMP rel LJMP Addr16 Chức năng: Nhảy vô điều kiện đến dịa 3.6.4 Lệnh nhảy gián tiếp Cú pháp câu lệnh: JMP @ A+DPTR Chức năng: Cộng giá trị không dấu bit ghi A với trỏ liệu 16 bit nạp kết vào đếm chương trình, kết địa để nạp lệnh Việc cộng 16 bit thực hiện: Số nhớ từ bit thấp truyền đến tất bit cao Cả 2, ghi A DPTR không bị thay đổi Lệnh không ảnh hưởng tới trạng thái cờ Câu lệnh Số byte Số chu kỳ Mã lệnh Hoạt động JMP @A+DPTR 01110011 (PC)

Ngày đăng: 07/06/2021, 17:25

TỪ KHÓA LIÊN QUAN