Giáo trình Vi xử lý-Vi điều khiển (Nghề: Điện tử công nghiệp - Trung cấp) - Trường CĐ nghề Việt Nam - Hàn Quốc thành phố Hà Nội

174 8 0
Giáo trình Vi xử lý-Vi điều khiển (Nghề: Điện tử công nghiệp - Trung cấp) - Trường CĐ nghề Việt Nam - Hàn Quốc thành phố Hà Nội

Đ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

Giáo trình Vi xử lý-Vi điều khiển với mục tiêu giúp các bạn có thể trình bày được về hệ đếm và mã hóa trong máy tính, tương tác giữa máy tính và vi xử lý, các bộ vi xử lý intel đang được ứng dụng; Giải thích được nguyên lý làm việc các hệ điều khiển ứng dụng vi xử lý; Vận hành được các thiết bị và dây chuyền sản xuất dùng vi điều khiển.

ỦY BAN NHÂN DÂN THÀNH PHỐ HÀ NỘI TRƯỜNG CAO ĐẲNG NGHỀ VIỆT NAM - HÀN QUỐC THÀNH PHỐ HÀ NỘI TRỊNH THỊ HẠNH (Chủ biên) NGUYỄN THANH HÀ – TRƯƠNG VĂN HỢI GIÁO TRÌNH VI XỬ LÝ – VI ĐIỀU KHIỂN Nghề: Điện tử cơng nghiệp Trình độ: Trung cấp (Lưu hành nội bộ) Hà Nội - Năm 2019 LỜI NÓI ĐẦU Để cung cấp tài liệu học tập cho học sinh - sinh viên tài liệu cho giáo viên giảng dạy, Khoa Điện tử Trường CĐN Việt Nam - Hàn Quốc thành phố Hà Nội chỉnh sửa, biên soạn giáo trình “VI XỬ LÝ – VI ĐIỀU KHIỂN” dành riêng cho học sinh - sinh viên nghề Điện tử công nghiệp Đây mơn học kỹ thuật sở chương trình đào tạo nghề Điện tử cơng nghiệp trình độ Trung cấp Nhóm biên soạn tham khảo tài liệu: Giáo trình “Vi xử lý” dùng cho học sinh trung cấp kỹ thuật tác giả Trần Văn Trọng,Trường ĐHSPKT TP HCM Giáo trình “Họ vi điều khiển” Tống văn On, Đại học Bách khoa TP.HCM 2005và nhiều tài liệu khác Mặc dù nhóm biên soạn có nhiều cố gắng khơng tránh thiếu sót Rất mong đồng nghiệp độc giả góp ý kiến để giáo trình hoàn thiện Xin chân thành cảm ơn! Hà Nội, tháng 09 năm 2019 Chủ biên: Trịnh Thị Hạnh MỤC LỤC LỜI NÓI ĐẦU MỤC LỤC GIÁO TRÌNH MƠ ĐUN Phần I: VI XỬ LÝ Bài 1Tổng quan hệ vi xử lý 1.1 Lịch sử phát triển trung tâm vi xử lý: 1.2 Cấu trúc hệ vi xử lý Bài 2Các đơn vi vi xử lý trung tâm 11 2.1 Trung tâm vi xử lý P 8085 11 2.2 Khái niệm chất vật lý bus hệ vi xử lý 15 2.3 Mạch trạng thái 16 2.4 Ngắt (lnterrupt) 17 2.5 Các tập lệnh 8085 18 Bài 3Bộ nhớ hệ vi xử lý 37 3.1 Bộ nhớ hệ vi xử lý 37 3.2 Tổ chức nhớ cho hệ vi xử lý 44 Bài 4Thiết bị vào hệ vi xử lý 49 4.1 Bàn phím HEX (keyboard) 49 4.2 Màn hình (Monitor) 55 Phần II: VI ĐIỀU KHIỂN 60 Bài 5Sơ lược lịch sử hướng phát triển vi điều khiển 60 5.1 Lịch sử xuất vi điều khiển 8051 60 5.2 Lĩnh vực ứng dụng 62 Bài 6Cấu trúc họ vi điều khiển 8051 64 6.1 Tổng quan 64 6.2 Sơ đồ chân vi điều khiển 8051 65 6.3 Cấu trúc Port I/O 71 Bài 7Tập lệnh 8051 75 7.1 Mở đầu 75 7.2 Các phương pháp định địa 77 7.3 Các nhóm lệnh 82 Bài 8Bộ định thời 116 8.1.Mở đầu 116 8.2.Thanh ghi SFR timer 118 8.3.Các chế độ làm việc 120 8.4 Nguồn cung cấp xung cho Timer 122 8.5.Khởi động, dừng điều khiển Timer 123 8.6 Khởi tạo truy xuất ghi Timer 123 Bài 9Cổng nối tiếp (serial port) 129 9.1 Mở đầu 129 9.2 Thanh ghi điều khiển 131 9.3 Chế độ làm việc 131 9.4 Chế độ 3: UART bit với tốc độ Baud thay đổi 136 9.4 Khởi tạo truy xuất ghi PORT nối tiếp 136 9.5 Truyền thông đa xử lý (Multiprocessor Communications) 138 9.6 Tốc độ baud 140 Bài 10Ngắt 146 10.1 Mở đầu 146 10.2.Tổ chức ngắt 8051 (hình 6.2) 147 10.3 Xử lý ngắt 153 10.4 Thiết kế chương trình sử dụng ngắt 156 10.5 Ngắt cổng nối tiếp 160 10.6 Các cổng ngắt 160 10.7 Đồ thị thời gian ngắt 160 Bài 11Phần mềm hợp ngữ 165 11.1 Mở đầu 165 11.2 Hoạt động trình biên dịch Assembler 166 11.3 Cấu trúc chung chương trình hợp ngữ cho 8051 167 11.4 Tính biểu thức hợp dịch 169 TÀI LIỆU THAM KHẢO 174 GIÁO TRÌNH MƠ ĐUN Tên mơ đun: Vi xử lý – Vi điều khiển Mã số mô đun: MĐ 23 Thời gian mô đun: 90 (LT: 30 giờ; BT: 55 giờ; KT: giờ) I Vị trí, tính chất, ý nghĩa vai trị mơ đun Vị trí mơ đun: Mơ đun bố trí dạy cuối chương trình sau học xong môn học linh kiện điện tử, đo lường điện tử, kỹ thuật xung - số, điện tử cơng suất Tính chất mơ đun: Là mô đun bắt buộc Ý nghĩa mô đun: sau học xong mô đun Vi xử lý, người học phải biết lập trình số ứng dụng từ đơn giản đến phức tạp xử lý kết nối máy tính với thiết bị ngoại vi Vai trị mơ đun: Giáo trình mơ đun “Vi xử lý – Vi điều khiển” nhằm cung cấp cho người học kiến thức lập trình giao tiếp với máy tính vi xử lý – vi điều khiển II Mục tiêu mô đun Về kiến thức: - Trình bày hệ đếm mã hóa máy tính, tương tác máy tính vi xử lý, vi xử lý intel ứng dụng - Giải thích nguyên lý làm việc hệ điều khiển ứng dụng vi xử lý - Vận hành thiết bị dây chuyền sản xuất dùng vi điều khiển - Xác định nguyên nhân gây hư hỏng xảy thực tế - Kiểm tra viết chương trình điều kiển Về kỹ năng: - Lập trình hợp ngữ số tập cách thành thạo - Xử lý số dạng kết nối máy tính với vi xử lý thiết bị ngoại vi - Phát triển hệ điều khiển sở khối trung tâm vi xử lý - Vận hành thiết bị dây chuyền sản xuất dùng vi điều khiển - Xác định nguyên nhân gây hư hỏng xảy thực tế Về thái độ: - Rèn luyện tính tỷ mỉ, xác an tồn vệ sinh cơng nghiệp III Nội dung mô đun Số TT Thời gian Tên mô đun Tổng số Lý thuyết Thực hành A Phần Vi xử lý 30 11 Tổng quan hệ vi xử lý 3 Các đơn vị vi xử lý trung tâm Bộ nhớ hệ vi xử lý Thiết bị vào hệ vi xử lý 11 B Phần Vi điều khiển 60 19 37 Sơ lược lịch sử hướng phát triển vi điều khiển 2 Cấu trúc họ vi điều khiển 8051 3 Tập lệnh 8051 10 Bộ định thời 14 Cổng nối tiếp 10 Ngắt 10 7 Phần mềm hợp ngữ Cộng 90 30 55 18 Kiểm tra* Phần I: VI XỬ LÝ Bài Tổng quan hệ vi xử lý Mục tiêu - Trình bày số hệ đếm, mã thường dùng hệ vi xử lý - Tính toán, chuyển đổi phép toán nhị phân - Trình bày cách biểu diễn thơng tin hệ vi xử lý - Rèn luyện tính tư duy, tác phong công nghiệp 1.1 Lịch sử phát triển trung tâm vi xử lý: Bộ vi xử lý thành phần thiếu để tạo nên máy vi tính hệ vi xử lý Trước tìm hiểu cấu trúc hệ vi xử lý ta lướt qua lịch sử phát triển vi xử lý Vi xử lý chế tạo từ tranzito tích hợp vi mạch tích hợp đơn Xuất lần vào năm đầu thập kỷ 70 kỷ 20 Sử dụng mã BCD bit Các vi xử lý bit bit sử dụng thiết bị đầu cuối, máy in, hệ thống tự động Đến năm 1970 lần vi xử lý bit với 16 bit địa sử dụng máy tính đa mục đích Các hãng sản xuất vi xử lý thời điểm Intel, Texas Instruments Garrett AiResearch với ba dịng chip tương ứng: Intel 4004, TMS 1000 Central Air Data Computer Đây vi xử lý bit Sau đời vi xử lý bit hãng cho đời dịng bit, 12 bit, 16 bit, 32 bit, 64 bit 1.1.1 Thế hệ (1971 - 1973) Năm 1971, hãng Intel cho đời vi xử lý 4004 (4 bit số liệu, 12 bit địa chỉ) Sau Intel hãng khác cho đời vi xử lý khác: 4040 (4 bit) 8008 (8 bit) Intel,PPS-4 (4 bit) Rockwell International,IPM-16 (16 bit) NationalSemiconductor Đặc điểm chung vi xử lý hệ là: Độ dài từ thường bit (có thể dài hơn) Cơng nghệ chế tạo PMOS có mật độ tích hợp nhỏ Tốc độ thực lệnh: 10 - 60 μs/lệnh với tần số đồng hồ fclk = 0,1 - 0,8 MHz Tập lệnh đơn giản phải cần nhiều vi mạnh phụ trợ tạo nên hệ vi mạch hoàn chỉnh 1.1.2 Thế hệ (1974 – 1977) Các vi xử lý đại diện cho hệ vi xử lý bit 8080 8085 Intel, 6800 6809 Motorola Z80 Zilog Đặc điểm: Độ dài từ bit, đồng thời tập lệnh phong phú hệ trước Công nghệ chế tạo: NMOS (có mật độ tích hợp cao PMOS) CMOS Tốc độ thực lệnh: 1-8 μs/lệnh với tần số đồng hồ fclk = 1-5 MHz 1.1.3 Thế hệ (1978 - 1982) Các vi xử lý đại diện cho hệ vi xử lý 16 bit 8086, 80186, 80286 Intel, 68000 68010 Motorola Đặc điểm: Độ dài từ 16 bit Cơng nghệ chế tạo: HMOS (có mật độ tích hợp cao PMOS) CMOS Tốc độ thực lệnh: 0,1-1 μs/lệnh với tần số đồng hồ fclk =5-10 MHz Tập lệnh đa dạng với lệnh nhân, lệnh chia lệnh thao tác với chuỗi ký tự 1.1.4 Thế hệ (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, 68030, 68040, 68060 Motorola Đặc điểm vi xử lý hệ bus địa 32 bit (có khả đánh địa cho nhớ tới GB) có khả làm việc với nhớ ảo Người ta áp dụng chế cấu trúc sử dụng máy tính lớn vào vi xử lý: chế xử lý xen kẽ liên tục dạng mã lệnh (pipeline), nhớ cache (bộ nhớ ẩn), nhớ ảo Các vi xử lý hệ có quản lý nhớ (MMU) nhiều đồng xử lý toán học bên Phần lớn vi xử lý hệ sản xuất công nghệ HCMOS Bên cạnh vi xử lý vạn truyền thống thường sử dụng để xây dựng máy tính với tập lệnh đầy đủ (Complex Instruction Set Computer, CISC) mà nói trên, thời gian xuất vi xử lý cải tiến dùng để xây dựng máy tính với tập lệnh rút gọn (Reduced Instruction Set Computer, RISC) với nhiều tính so sánh với máy tính lớn hệ trước Đó vi xử lý Alpha hãng Digital, PowerPC ba hãng Apple-Motorola-IBM 1.2 Cấu trúc hệ vi xử lý Một vi xử lý gồm có khối chức năng: đơn vị thực thi (Execution), điều khiển (Sequencer) bus giao tiếp - Đơn vị thực thi: Xử lý lệnh số học logic Các toán hạng liên quan có mặt ghi liệu địa từ bus nội - Bộ điều khiển tuần tự: Bao gồm giải mã lệnh (Intrustruction Decoder) đếm chương trình (Program Counter) Bộ đếm chương trình gọi lệnh chương trình Bộ giải mã lệnh khởi động bước cần thiết để thực lệnh Bộ điều khiển tạo thành hệ thống logic mà cách thức hoạt động chứa ROM Nội dung chứa ROM gọi vi chương trình Các lệnh bên trường hợp xác định địa vào vi chương trình Khi chương trình bắt đầu thực đếm chương trình PC đặt địa bắt đầu, thường địa 0000H (với xi xử lý bit) Địa chuyển đến nhớ thông qua bus địa (Address Bus) Khi tín hiệu Read đưa vào bus địa nội dung nhớ liên quan xuất bus liệu (data bus) chứa giải mã lệnh (Instruction Decoder) Sau khởi động số bước cần thiết để thực thi lệnh nhờ số chu kỳ máy lệnh thực thi, giải mã lệnh làm cho đếm chương trình đến địa lệnh kế Hình 1.14 Sơ đồ khối máy tính cổ điển Để tạo thành hệ vi xử lý hoàn chỉnh, vi xử lý cần phải kết hợp với phận điện tử khác nhớ phối ghép vào/ra Cần lưu ý máy vi tính ứng dụng cụ thể hệ vi xử lý Dưới sơ đồ khối tổng quát hệ vi xử lý Trong sơ đồ ta thấy khối chức hệ vi xử lý gồm có: + Khối xử lý trung tâm (Central Processing Unit, CPU) + Bộ nhớ RAM-ROM (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 khối 10 10.5 Ngắt cổng nới tiếp MCS-51 có nguồn ngắt cổng nối tiếp: ngắt phát ngắt thu Hai nguồn ngắt xác định bit RI, TI dùng chung địa ISR nên chuyển đến ISR, cờ ngắt khơng tự động xóa phần cứng mà phải thực phần mềm: kiểm tra nguyên nhân ngắt (RI hay TI) xóa bit cờ tương ứng 10.6 Các cổng ngắt Ngắt xảy có mức thấp có cạnh âm chân /INT0 /INT1 Việc chọn ngắt thuộc tác động cạnh hay ngắt loại tác động mức lập trình thơng qua bit IT0 IT1 ghi TCON Vì chân ngắt ngồi lấy mẫu lần chu kỳ máy ngõ vào phải trì tối thiểu 12 chu kỳ dao động để đảm bảo việc lấy mẫu Nếu ngắt thuộc tác động cạnh ngun nhân ngắt ngồi phải trì chân yêu cầu mức cao tối thiểu chu kỳ sau mức thấp tối thiểu chu kỳ để đảm bảo việc chuyển trạng thái phát IE0 IE1 tự động xóa CPU trỏ tới trình phục vụ ngắt tương ứng Nếu ngắt thuộc loại tác động mức nguyên nhân ngắt ngồi phải trì trạng thái tích cực ngắt theo yêu cầu thực tạo Sau nguyên nhân ngắt phải trạng thái thụ động trước trình phục vụ ngắt thực thi xong trước có ngắt khác tạo Thông thường, công việc thực thi bên trình phục vụ ngắt làm cho nguyên nhân ngắt trả tín hiệu yêu cầu ngắt trở trạng thái khơng tích cực 10.7 Đồ thị thời gian ngắt Thực tế có ngắt dành cho người dùng 8051 nhiều nhà sản xuất đưa bảng liệu nói có sáu ngắt họ tính lệnh tái thiết lập lại RESET Sáu ngắt 8051 phân bố sau: RESET: Khi chân RESET kích hoạt từ 8051 nhảy địa 0000 Đây địa bật lại nguồn Gồm ngắt dành cho điịnh thời: cho timer0 cho Timer1 Địa ngắt 000B4 001B4 bảng vector ngắt dành cho Timer0 Timer1 tương ứng Hai ngắt dành cho ngắt phần cứng bên chân 12 (P3.2) 13 (P3.3) cổng P3 ngắt phần cứng bên INT0 INT1 tương 160 ứng Các ngắt ngồi cịn coi EX1 EX2 vị trí nhớ bảng vector ngắt ngắt ngồi 0003H 0013H gán cho INT0 INT1 tương ứng Truyền thơng nối tiếp có ngắt thuộc thu phát Địa ngắt bảng vector ngắt 0023H Đồ thị thời gian ngắt Các chân P3.2 P3.3 bình thường dùng cho vào-ra bít INT0 INT1 ghi IE khơng kích hoạt Sau ngắt phần cứng ghi IE kích hoạt vi điều khiển trì trích mẫu chân INTn tín hiệu mức thấp lần chu kỳ máy Theo bảng liệu nhà sản xuất vi điều khiển “chân ngắt phải giữ mức thấp bắt đầu thực trình phục vụ ngắt ISR Nếu chân INTn đưa trở lại mức cao trước bắt đầu thực ISR chẳng có ngắt xảy ra” Tuy nhiên q trình kích hoạt ngắt theo mức thấp nên lại phải đưa lên mức cao trước thực lệnh RETI lại theo bảng liệu nhà sản xuất “nếu chân INTn mức thấp sau lệnh RETI trình phục vụ ngắt ngắt khác lại kích hoạt sau lệnh RETI thực Do vậy, để bảo đảm việc kích hoạt ngắt phần cứng chân INTn phải khẳng định thời gian tồn tín hiệu mức thấp khoảng chu trình máy khơng Hình 10.5 Thời gian tối thiểu ngắt theo mức thấp (XTAL = 11,0592MHz) Trong ngắt sườn,nguồn phải giữ mức cao tối thiểu chu trình máy để đảm bảo vi điều khiển nhìn thấy chuyển dịch từ cao xuống thấp sườn xung 161 Các mức ưu tiên ngắt cấp lại nguồn Một số ví dụ tập: Ví dụ 1: Hãy lệnh để a) cho phép ngắt nối tiếp ngắt Timer0 ngắt phần cứng (EX1) b) cấm (che) ngắt Timer0 sau c) trình bày cách cấm tất ngắt lệnh Lời giải: a) MOV IE, #10010110B ; Cho phép ngắt nối tiếp, cho phép ngắt Timer0 cho phép ngắt phần cứng ngồi Vì IE ghi đánh địa theo bít nên ta sử dụng lệnh sau để truy cập đến bít riêng rẽ ghi: SETB IE.7 ; EA = 1, Cho phép tất ngắt SETB IE.4 ; Cho phép ngắt nối tiếp SETB IE.1 ; Cho phép ngắt Timer1 SETB IE.2 ; Cho phép ngắt phần cứng (tất lệnh tương đương với lệnh “MOV IE, #10010110B” đây) b) CLR IE.1 ; Xóa (che) ngắt Timer0 c) CLR IE.7 ; Cấm tất ngắt Ví dụ 2: Hãy viết chương trình nhân liên tục liệu bít cổng P0 gửi đến cổng P1 lúc tạo sóng vng chu kỳ 200us chân P2.1 Hãy sử dụng Timer0 để tạo sóng vng, tần số 8051 XTAL = 11.0592MHz Lời giải: Ta sử dụng Timer0 chế độ (tự động nạp lại) giá trị nạp cho TH0 100/1.085us = 92 162 ; - - Khi khởi tạo vào chương trình main tránh dùng không gian ; Địa dành cho bảng véc tơ ngắt ORG 0000H CPL P2.1 ; Nhảy đến bảng véc tơ ngắt ; - - Trình ISR dành cho Timer0 để tạo sóng vng ORG 0030H MAIN: ; Ngay sau địa bảng véc-tơ ngắt TMOD, #02H; Chọn Timer0, chế độ tự nạp lại MOV P0, #0FFH ; Lấy P0 làm cổng vào nhận liệu MOV TH0, # - 92 ; Đặt TH0 = A4H cho – 92 MOV IE, #82H SETB TR0 BACK: ; IE = 1000 0010 cho phép Timer0 ; Khởi động Timer0 MOV A, P0 ; Nhận liệu vào từ cổng P0 MOV P1, A ;Chuyển liệu đến cổng P1 SJMP BACK ;Tiếp tục nhận chuyển liệu, chừng bị ngắt TF0 END Câu hỏi tập 10 Bài 1: Chương trình điều khiển sóng vng tuần hồn có tần số 10Hz (sử dụng ngắt Timer) chân P0.0 hiển thị mức logic chân lên LED0 (LED0 nối với P0.0) Bài (thực hành lớp): Chương trình điều khiển đếm số xung chân INT0 (sử dụng ngắt ngoài) hiển thi số xung (tối đa 225 lần) lên ba LED đoạn (LED7 – LED4 nối với Port1, PULSE nối với chân INT0) 1.Viết đoạn chương trình theo yêu cầu: Khởi động cổng nối tiếp chế độ UART bit với tốc độ truyền 4800 bps Định thời 1s đọc liệu từ P1, lưu vào ô nhớ 30h xuất liệu vừađọc cổng nối tiếp Viết đoạn chương trình theo yêu cầu: Khởi động cổng nối tiếp chế độ UART bit với tốc độ truyền 9600 bps.Khi có ngắt xảy ngắt ngồi xuất liệu nhớ 30h cổng nối tiếp bit truyền thứ bit parity 163 Bài 3: Viết chương trình điều khiển ma trận 8x8? Bài 4: Viết chương trình điều khiển đèn giao thông ngã tư? Bài 5: Viết chương trình điều khiển đồng hồ số dùng timer tạo thời gian trễ? 164 Bài11 Phần mềm hợp ngữ Mục tiêu Trình bày cần thiết chế hoạt động trình dịch hợp ngữ theo nội dung học Trình bày cấu trúc chung chương trình hợp ngữ theo nội dung học Thực viết chương trình tổ chức lớn cách phân chia thành mơ đun chương trình qui trình kỹ thuật Viết chương trình điều khiển theo yêu cầu 11.1 Mở đầu 11.1.1 Khái niệm - Vì lệnh Vi điều khiển ( VĐK) có dạng số nhị phân dài khó nhớ, việc gỡ lỗi chương trình phát sinh lỗi phức tạp khó khăn Khó khăn giải với hỗ trợ máy vi tính, người viết chương trình viết chương trình cho vi điều khiển ngơn ngữ lập trình cấp cao, sau việc viết chương trình hồn tất, trình biên dịch chuyển câu lệnh cấp cao thành mã máy cách tự động Các mã máy sau đưa (nạp) vào nhớ ROM VĐK, Vi điều khiển tìm đến đọc lệnh từ ROM để thực chương trình Bản thân máy tính khơng thể thực mã máy chúng khơng phù hợp với phần cứng máy tính, muốn thực phải có chương trình mơ dành riêng Hợp ngữ (assembly language) thay mã nhị phân từ gợi nhớ để lập trình dễ dàng Máy tính khơng hiểu hợp ngữ trình biên dịch hợp ngữ Assembler trình liên kết Linker có chức dịch chương trình viết hợp ngữ thành ngôn ngữ máy 11.1.2 Một số khái niệm Chương trình hợp ngữ (Assembly Language Program): Là chương trình viết cách dùng nhãn, từ gợi nhớ,…, phát biểu tương ứng với lệnh ngơn ngữ máy Chương trình viết hợp ngữ gọi mã nguồn chương trình khơng thể thực thi mà nhằm giúp người lập trình đọc hiểu vi điều khiển thực gỡ rối cách dễ dàng Assembly ngôn ngữ lập trình cấp thấp gần với ngơn ngữ máy, chương trình sau viết assembly cần chuyển đổi qua mã lệnh (hay còngọi mã máy) vi điều khiển, trình chuyển đổi thực chương trình dịch Assembler Các mã lệnh sau nạp vào Rom vi điều khiển 165 để thực chương trình Chương trình dịch Assembler dùng phổ biến chương trình Macro Assembler sử dụng Dos Chương trình ngơn ngữ máy (Machine Language Program): Là chương trình gồm mã nhị phân tương ứng với lệnh vi xử lý Các chương trình viết ngôn ngữ máy thường gọi mã đối tượng (object code) thực thi Chương trình Assembler: Là chương trình dịch chương trình viết hợp ngữ sang chương trình ngơn ngữ máy Chương trình ngơn ngữ máy dạng tuyệt đối dạng tái định vị Chương trình Linker: Là chương trình kết hợp chương trình đối tượng tái định vị để tạo chương trình đối tượng tuyệt đối để thực thi Segment: Là đơn vị nhớ chứa mã lệnh chứa liệu Một segment dạng tuyệt đối tái định vị Segment tái định vị có tên, kiểu thuộc tính cho phép chương trình linker kết hợp với phần đoạn khác cần để định vị đoạn Segment dạng tuyệt đối khơng có tên khơng thể kết hợp với đoạn khác Module: Chứa1 hay nhiều segment phần segment Một module có tên người sử dụng đặt Những định nghĩa module xác định tầm ký hiệu cục Một tập tin đối tượng chứa hay nhiều module Một module xem tập tin nhiều tình - Chương trình: Gồm nhiều module tuyệt đối, trộn tất đoạn tuyệt đối tái định vị từ tất module nhập Một chương trình chứa mã nhị phân cho thị mà máy tính hiểu Vi điều khiển MSC-51 có chung tập lệnh, Vi điều khiển cải tiến sau thường thay đổi mở rộng tập lệnh mà trọng phát triển phần cứng Để soạn thảo chương trình sử dụng Notepal chương trình soạn thảo có sử dụng kí tự chuẩn ASCII lưu tên đuơi sau: "tên.asm" Ngoài sử dụng phần mềm hỗ trợ soạn thảo dành riêng cho vi điều khiển tích hợp sẵn chương trình dịch Assembler 11.2 Hoạt động trình biên dịch Assembler ASM51 assembler chạy máy tính Intel cung cấp để biên dịch cho họ MCS51 Cách dùng ASM51 để biên dịch chương trình viết hợp ngữ sau: từ dấu nháy DOS hay Win commander ta thực theo cú pháp: ASM51 source_file[assembler_control] Trong source_file tên tập tin nguồn viết hợp ngữ, assembler_control điều khiển assembler 166 Assembler nhận tập tin nguồn (ví dụ “example.asm”) sẽø tạo tập tin đối tượng (“example.Obj”) tập tin kiểu liệt kê (“example.lst”) hình 7.1 Hình 11.1 Biên dịch chương trình nguồn Tất chương trình biên dịch quét chương trình nguồn lần để thực dịch ngôn ngữ máy nên gọi Assembler hai bước Assembler sử dụng đếm vị trí làm địa lệnh giá trị cho nhãn Hoạt động từng bước mô tả sau: Bước 1: nhận diện nhãn kí hiệu chương trình nguồn, tính tốn địa tương đối chúng cất vào bảng kí hiệu Bảng kí hiệu chứa vị trí nhãn, kí hiệu giá trị tương ứng chúng Bộ đếm vị trí: lưu giữ địa lệnh giá trị nhãn chương trình Bước 2: tạo tập tin đối tượng tập tin liệt kê: Các từ gợi nhớ Các toán hạng định vị đặt sau mã lệnh Các giá trị kí hiệu truy cập để tính liệu địa Cho phép tham chiếu tới Tập tin tái định vị chứa thông tin cần cho linker định vị Tập tin liệt kê chứa chương trình nguồn mã lệnh 11.3 Cấu trúc chung chương trình hợp ngữ cho 8051 11.3.1 Các thành phần ngôn ngữ Assembly Lables: Nhãn – đánh dấu cho đoạn lệnh Orders: Lệnh Directives: Định hướng chương trình dịch Comments: Các lời thích Một dịng lệnh chương trình hợp ngữ gồm có trường sau: Tên Lệnh A: Mov Tốn hạng AH, 10h Chú thích ; Đưa giá trị 10h vào ghi AH 167 Để dịch thành file mã máy dạng HEX-Code trước download vào Chip chương trình assembly phải tuân thủ nguyên tắc sau: Mỗi dòng lệnh khơng vượt q 255 ký tự Mỗi dịng lệnh phải bắt đầu ký tự, nhãn, lệnh thị định hướng chương trình dịch Mọi thứ sau dấu “;” xem lời giải thích chương trình dịch bỏ qua Các thành phần dòng lệnh cách biệt dấu cách 11.3.2 Cấu trúc chương trình dữ liệu • Những lệnh vi xử lý • Những dẫn assembler (Assembler Directive) • Những điều khiển Assembler • Các thích Cú pháp lệnh vi xử lý sau: [label:] mnemonic [operand] [,operand] […] [;comment] Trong label nhãn – theo sau dấu hai chấm “:”, mnemonic từ gợi nhớ lệnh, operand toán hạng tuỳ thuộc vào lệnh có nhiều tốn hạng khơng có tốn hạng, cuối thích cho lệnh – sau dấu chấm phẩy “;” Kí hiệu tên định nghĩa để biểu diễn giá trị, khối văn bản, địa tên ghi biểu diễn số biểu thức Các tên kí hiệu cho phép tối đa 31 kí tự với kí tự đầu phải chữ dấu “?” “-”, theo sau phải chữ, số, “?” “-” Các kí hiệu sử dụng kí tự in hoa hay thường không phân biệt Chú ý từ kí hiệu từ sử dụng nên người lập trình khơng dùng chúng làm kí hiệu cho mục đích khác Ví dụ 1: Bdn EQU R2 Nhãn loại kí hiệu dùng để định nghĩa vị trí chương trình: • Tên nhãn tượng trưng cho địa • Vùng văn thứ dịng hợp ngữ • Theo sau nhãn dấu hai chấm “:” • Trên hàng định nghĩa nhãn • Khơng đặt tên nhãn trùng 168 Ví dụ 2: Label1: MOV R2,#35h Mnemonic tất từ gợi nhớ cho tất lệnh dẫn assembler: • Mnemonic cho lệnh: ADD, SUB, MUL, DIV, MOV,… • Mnemonic cho dẫn assembler: org, equ, db, bit,… Toán hạng operand đối số biểu thức đặt tả với lệnh dẫn assembler, tốn hạng địa liệu 11.4 Tính biểu thức hợp dịch Bảng 11.2 Các toán tử Ký hiệu Thực Ví dụ Kết + Cộng 10+5 15 - Trừ 28-17 * Nhân 7*4 28 / Chia nguyên 7/4 MOD Chia lấy dư MOD SHR Dịch phải 1000B SHR 0010B SHL Dịch trái 1010B SHL 101000B NOT Đảo NOT 1111111111111110B AND And bit 1101B AND 0101B 0101B OR Or bit 1101B OR 0101B XOR Xor 1101B XOR 0101B 1000B LOW Lấy byte thấp LOW(0AADDH) 0DDH HIGH Lấy byte cao HIGH(0AADDH) 0AAH EQ, = So sánh EQ or 7=4 (false) NE, SS Không NE or 74 0FFFFH (true) GT, > SS lớn GT or 7>4 0FFFFH (true) GE, >= SS nhỏ hoặc7 GE or 7>=4 0FFFFH (true) LT, < SS nhỏ (false) LE,

Ngày đăng: 15/03/2022, 09:33

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan