Trang 1 Giới thiệu chungSách tham khảo:Tống Văn On, Họ vi điều khiển 8051.. Trang 16 2.1.8 Các thanh ghi khácThanh ghi địa chỉ bộ nhớ MAR: chứa địa chỉ mà vi xử lý cầnđến trong việc đọc
Hệ vi xử lý Cấu trúc hoạt động Vi điều khiển bit Lập trình vi điều khiển Giới thiệu chung Sách tham khảo: Tống Văn On, Họ vi điều khiển 8051 NXB: Lao Động - 2001 Phạm Quang Huy & Nguyễn Trọng Hiếu, Vi điều khiển Ứng dụng Ardunio dành cho người tự học NXB: Bách khoa Hà Nội -2015 Bài giảng Kĩ thuật Vi xử lý, Lê Trung Dũng Đường link giới thiệu: https://sites.google.com/site/dung80/Home/introduction https://sites.google.com/site/machdientu/ https://www.facebook.com/electricalengineeringTLU TS Lê Trung Dũng Bài giảng Kĩ thuật Vi xử lý / 76 Hệ vi xử lý Cấu trúc hoạt động Vi điều khiển bit Lập trình vi điều khiển Outline Hệ vi xử lý Cấu trúc hoạt động Vi điều khiển bit Lập trình vi điều khiển TS Lê Trung Dũng Bài giảng Kĩ thuật Vi xử lý / 76 Hệ vi xử lý Cấu trúc hoạt động Vi điều khiển bit Lập trình vi điều khiển Outline Hệ vi xử lý 1.1 Khái niệm vi xử lý 1.2 Những đặc điểm cấu trúc Cấu trúc hoạt động Vi điều khiển bit Lập trình vi điều khiển TS Lê Trung Dũng Bài giảng Kĩ thuật Vi xử lý / 76 Hệ vi xử lý Cấu trúc hoạt động Vi điều khiển bit Lập trình vi điều khiển 1.1 Khái niệm vi xử lý 1.1 Khái niệm vi xử lý Vi xử lý vi mạch tích hợp lớn (VLSI- Very Large Scale Integrated circuit) Vi xử lý đa (general-pupose microprocessors): thành phần chủ yếu cho tính tốn Vi điều khiển (microcontrollers): chứa phần tính tốn, nhớ cổng vào TS Lê Trung Dũng Bài giảng Kĩ thuật Vi xử lý / 76 Hệ vi xử lý Cấu trúc hoạt động Vi điều khiển bit Lập trình vi điều khiển 1.2 Những đặc điểm cấu trúc 1.2 Những đặc điểm cấu trúc Công suất vi xử lý : Độ dài từ : 4-bit, 8-bit, 16-bit, 32-bit, 64-bit Khả đánh địa : thông thường phụ thuộc vào ghi địa (address register) Với xử lý 8-bit, ghi địa 16-bit : 216 “ 26 x210 “ 64kbyte hay 65.536 từ 8-bit Tốc độ thực lệnh MFLOPS (Millions of Floatingecond Point Operations Per Second) fxN MIPS (Millions of Instructions Per Second) = M`T f: tần số xử lý; N: số lượng đơn vị xử lý số học logic (ALU); M: số lượng vi lệnh trung bình lệnh T: hệ số thời gian truy cập nhớ TS Lê Trung Dũng Bài giảng Kĩ thuật Vi xử lý / 76 Hệ vi xử lý Cấu trúc hoạt động Vi điều khiển bit Lập trình vi điều khiển 1.2 Những đặc điểm cấu trúc 1.2 Những đặc điểm cấu trúc Đặc tính nâng cao tốc độ xử lý : Xử lý song song; Đồng xử lý; Bộ nhớ trung gian; Bus rộng; TS Lê Trung Dũng Bài giảng Kĩ thuật Vi xử lý / 76 Hệ vi xử lý Cấu trúc hoạt động Vi điều khiển bit Lập trình vi điều khiển Outline Hệ vi xử lý Cấu trúc hoạt động 2.1 2.2 2.3 2.4 2.5 Sơ đồ cấu trúc Tổ chức bus Tổ chức vào Bộ nhớ Thiết kế nhớ Vi điều khiển bit Lập trình vi điều khiển TS Lê Trung Dũng Bài giảng Kĩ thuật Vi xử lý / 76 Hệ vi xử lý Cấu trúc hoạt động Vi điều khiển bit Lập trình vi điều khiển 2.1 Sơ đồ cấu trúc 2.1 Sơ đồ cấu trúc Hình: Sơ đồ cấu trúc đơn vị xử lý trung tâm theo kiến trúc Von Neumann TS Lê Trung Dũng Bài giảng Kĩ thuật Vi xử lý / 76 Hệ vi xử lý Cấu trúc hoạt động Vi điều khiển bit Lập trình vi điều khiển 2.1 Sơ đồ cấu trúc 2.1.1 Đơn vị điều khiển CU Đưa ngồi CPU tín hiệu điều khiển để tác động đến việc trao đổi liệu; Đưa tín hiệu điều khiển bên CPU, tác động đến ALU thực nhiệm vụ cụ thể TS Lê Trung Dũng Bài giảng Kĩ thuật Vi xử lý / 76 Hệ vi xử lý Cấu trúc hoạt động Vi điều khiển bit Lập trình vi điều khiển 2.1 Sơ đồ cấu trúc 2.1.2 ALU Có thể thực chức năng: ADD: cộng, SUB: Trừ; AND, OR, XOR; Shift Right, Shift Left; 2s Complement: Bù nhị phân; Increment, Decrement TS Lê Trung Dũng Bài giảng Kĩ thuật Vi xử lý 10 / 76 Hệ vi xử lý Cấu trúc hoạt động Vi điều khiển bit Lập trình vi điều khiển 4.1 Các kiểu định địa 4.1.5 Định địa tương đối Được dùng cho lệnh nhảy ngắn với bước nhảy giá trị bit có dấu (-127 ˜ +127) Ví dụ SJMP, #1040H; Chương trình nhảy tới ô nhớ cách ô nhớ 1040 byte SJMP, Nhan; Chương trình nhảy tới nhãn Nhan TS Lê Trung Dũng Bài giảng Kĩ thuật Vi xử lý 62 / 76 Hệ vi xử lý Cấu trúc hoạt động Vi điều khiển bit Lập trình vi điều khiển 4.1 Các kiểu định địa 4.1.6 Định địa tuyệt đối Dùng cho lệnh ACALL ẠJMP tới vị trí thể byte, chia thành bit + 11 bit, tương đương 64K nhớ bit vị trí trang giới hạn trang 11 bit thể vị trí xác trang 2K Ví dụ: THERE đặt trước địa 0F46H AJMP THERE; Lệnh nhảy có địa 0900H 0901H Khi lệnh nhảy đích nhảy nằm trang 2K (11 bit) TS Lê Trung Dũng Bài giảng Kĩ thuật Vi xử lý 63 / 76 Hệ vi xử lý Cấu trúc hoạt động Vi điều khiển bit Lập trình vi điều khiển 4.1 Các kiểu định địa 4.1.7 Định địa dài Dùng cho lệnh LCALL LJMP tới vị trí thể byte, địa đích byte cao lệnh Sử dụng tồn khơng gian nhớ 64K Lệnh dài byte TS Lê Trung Dũng Bài giảng Kĩ thuật Vi xử lý 64 / 76 Hệ vi xử lý Cấu trúc hoạt động Vi điều khiển bit Lập trình vi điều khiển 4.1 Các kiểu định địa 4.1.8 Định địa chỉ số Sử dụng ghi (hoặc đếm chương trình trỏ liệu) offset (thanh chứa A) Ví dụ MOVC A, @A + PC JMP @A+DPTR TS Lê Trung Dũng Bài giảng Kĩ thuật Vi xử lý 65 / 76 Hệ vi xử lý Cấu trúc hoạt động Vi điều khiển bit Lập trình vi điều khiển 4.2 Tập lệnh 4.2.1 Lệnh số học ADD DIV SUB MUL Ví dụ ADD A, @R0 DIV AB TS Lê Trung Dũng Bài giảng Kĩ thuật Vi xử lý 66 / 76 Hệ vi xử lý Cấu trúc hoạt động Vi điều khiển bit Lập trình vi điều khiển 4.2 Tập lệnh 4.2.2 Lệnh logic AND OR XOR NOT Ví dụ AND A, #01010011B AND A, #55H TS Lê Trung Dũng Bài giảng Kĩ thuật Vi xử lý 67 / 76 Hệ vi xử lý Cấu trúc hoạt động Vi điều khiển bit Lập trình vi điều khiển 4.2 Tập lệnh 4.2.3 Lệnh di chuyển liệu MOV XCH, hoán đổi liệu XCHD, hoán đổi nửa thấp byte MOVC, di chuyển liệu nhớ chương trình Ví dụ MOV R5,#25H; nạp số 25H vào ghi R5 XCH A, @R0; hoán đổi nội dung A byte có địa R0 XCHD A, R2; hốn đổi bit thấp A R2 MOVC A, @A+DPTR; nạp nội dung byte có địa A+ DPTR TS Lê Trung Dũng Bài giảng Kĩ thuật Vi xử lý 68 / 76 Hệ vi xử lý Cấu trúc hoạt động Vi điều khiển bit Lập trình vi điều khiển 4.2 Tập lệnh 4.2.4 Lệnh xử lý bit SETB CLR Ví dụ SETB P1.0; CLR P2.0; TS Lê Trung Dũng Bài giảng Kĩ thuật Vi xử lý 69 / 76 Hệ vi xử lý Cấu trúc hoạt động Vi điều khiển bit Lập trình vi điều khiển 4.2 Tập lệnh 4.2.5 Lệnh rẽ nhánh SJMP, LJMP, AJMP, nhảy tới nhãn vô điều kiện ACALL, LCALL, gọi chương trình DJNZ, CJNE, JNC, nhảy tới nhãn có điều kiện Ví dụ DJNZ R7, LOOP; Nếu R7 #0 nhảy LOOP CJNE A, #03H, LOOP; Nếu A #03H nhảy LOOP JNC LOOP; Nếu cờ nhớ = 0, nhảy tới LOOP TS Lê Trung Dũng Bài giảng Kĩ thuật Vi xử lý 70 / 76 Hệ vi xử lý Cấu trúc hoạt động Vi điều khiển bit Lập trình vi điều khiển 4.3 Ngơn ngữ lập trình hợp ngữ 4.3.1 Ngơn ngữ Assembly Hợp ngữ ngơn ngữ lập trình cấp thấp Mỗi dòng lệnh biên dịch thành thị dạng nhị phân để vi xử lý thực thi Chương trình dịch từ mã nguồn hợp ngữ chiếm dung lượng nhớ nhỏ Thực thi nhanh so với chương trình sử dụng ngơn ngữ bậc cao C, Phải hiểu biết vi xử lý tập lệnh Khó tối ưu Khó viết giao diện giao tiếp người máy quản lý sở liệu TS Lê Trung Dũng Bài giảng Kĩ thuật Vi xử lý 71 / 76 Hệ vi xử lý Cấu trúc hoạt động Vi điều khiển bit Lập trình vi điều khiển 4.3 Ngơn ngữ lập trình hợp ngữ 4.3.2 Cấu trúc chung chương trình hợp ngữ Các thành phần ngôn ngữ Assembly Labels: đánh dấu cho đoạn lệnh Instructions: Lệnh Directives: Định hướng chương trình dịch Comments: Lời thích TS Lê Trung Dũng Bài giảng Kĩ thuật Vi xử lý 72 / 76 Hệ vi xử lý Cấu trúc hoạt động Vi điều khiển bit Lập trình vi điều khiển 4.3 Ngơn ngữ lập trình hợp ngữ 4.3.2 Cấu trúc chung chương trình hợp ngữ ORG 00H ;(con trỏ chương trình 00h) LJMP MAIN ; nhảy tới vị trí có nhãn MAIN) ; (vị trí bắt đầu chương trình MAIN): ORG 0030H MAIN: MOV R7,#10 ;(nạp cho R1 giá trị 10) LOOP: DJNZ R7,LOOP; Giảm R7 so sánh R7 với 0, nhảy tới LOOP R7 # END; (Kết thúc chương trình.) TS Lê Trung Dũng Bài giảng Kĩ thuật Vi xử lý 73 / 76 Hệ vi xử lý Cấu trúc hoạt động Vi điều khiển bit Lập trình vi điều khiển 4.3 Ngơn ngữ lập trình hợp ngữ 4.3.3 Các bước lập trình cho vi điều khiển Dùng chương trình soạn thảo để tạo file "ten_bat_ki.asm" Dùng phần mềm biên dịch hỗ trợ ngôn ngữ Assembly để tạo dự án Phần mềm tự động tạo "ten_du_an.lst" "ten_du_an.obj" Dự án mở rộng cách mở kết nối nhiều file ".asm" Biên dịch dự án sang file mã máy "ten_bat_ki.hex" Dùng công cụ đặc biệt để nạp file mã máy vào ROM vi điều khiển TS Lê Trung Dũng Bài giảng Kĩ thuật Vi xử lý 74 / 76 Hệ vi xử lý Cấu trúc hoạt động Vi điều khiển bit Lập trình vi điều khiển 4.3 Ngơn ngữ lập trình hợp ngữ 4.3.4 Ví dụ Từng bước thực phần mềm MCU 8051 IDE TS Lê Trung Dũng Bài giảng Kĩ thuật Vi xử lý 75 / 76 Hệ vi xử lý Cấu trúc hoạt động Vi điều khiển bit Lập trình vi điều khiển 4.4 Ngơn ngữ lập trình C Cấu trúc chương trình To be continued TS Lê Trung Dũng Bài giảng Kĩ thuật Vi xử lý 76 / 76