Kiến trúc 8051 và giới thiệu về ngôn ngữ lập trình Assembly

Similar documents
Chương 3 Tập lệnh họ MSC-51

Các kiểu định địa chỉ họ MSC-51

Khoa KH & KTMT Bộ môn Kỹ Thuật Máy Tính

LẬP TRÌNH 8051 SỐ HỌC VÀ LÔ GIC

Tài liệu hướng dẫn: Stored Procedure

TÀI LIỆU THỰC HÀNH MÔN CƠ SỞ DỮ LIỆU NÂNG CAO

STACK và QUEUE. Lấy STACK

BÀI 1: VBA LÀ GÌ? TẠO MACRO, ỨNG DỤNG CÁC HÀM TỰ TẠO (UDF), CÀI ĐẶT ADD-INS VBA là gì?

Khối: Cao Đẳng nghề và Trung Cấp Năm 2009

Nội dung chính của chương. Các công nghệ đĩa cứng Cấu tạo vật lý của đĩa cứng Cấu tạo logic của đĩa cứng Cài đặt đĩa cứng như thế nào?

HƯỚNG DẪN SỬ DỤNG HỆ THỐNG CẬP NHẬT CHỨNG THƯ SỐ HOTLINE:

HƯỚNG DẪN CÀI ĐẶT PHẦN MỀM DIỆT VIRUS AVIRA

Cài đặt và cấu hình StarWind iscsi trên Windows. iscsi SAN là gì?

Internet Protocol. Bởi: Phạm Nguyễn Bảo Nguyên

TỔNG QUAN VỀ.NET VÀ C#

Giáo trình này được biên dịch theo sách hướng dẫn của Sun Light. Vì là hướng dẫn kỹ thuật, trong này những thuật ngữ kỹ thuật bằng tiếng Anh tôi chỉ

Chương 5. Network Layer 19/09/2016 1

Bộ môn HTMT&TT, Khoa Công Nghệ Thông Tin và TT, ĐH Cần Thơ

Bộ môn MMT&TT, Khoa Công Nghệ Thông Tin và TT, ĐH Cần Thơ

CẤU TRÚC DỮ LIỆU NÂNG CAO

Bài tập lớn số 1. Giả lập bộ định thời

GIẢI THUẬT ĐỊNH TUYẾN (ROUTING ALGORITHM)

ĐỌC, GHI XML VỚI C# TRONG ADO.NET --- SỬ DỤNG VISUAL STUDIO

SIEMENS INDUSTRIAL NETWORKS

BÀI TẬP THỰC HÀNH LẬP TRÌNH WINDOWS C#

Cụ thể những công việc mà AndroidManifest.xml thực hiện: - Đặt tên cho Java package của ứng dụng.

HƯỚNG DẪN SỬ DỤNG PLESK PANEL

GV: Phạm Đình Sắc or

Chương 5. Network Layer. Phần 1 - Địa chỉ IPv4. Tài liệu : Forouzan, Data Communication and Networking

Bài Thực hành Asp.Net - Buổi 1 - Trang: 1

LÂ P TRI NH WEB ASP.NET

Mô hình dữ liệu quan hệ (Relational data model)

Chương 6. Transport Layer. Tài liệu : Forouzan, Data Communication and Networking

SIMULATE AND CONTROL ROBOT

Entity Framework (EF)

Tạo Project với MPLAB

LẬP TRÌNH WINDOWS FORM VỚI CÁC CONTROL NÂNG CAO (Các control trình bày dữ liệu dưới dạng danh sách)

Bài 10. Cấu trúc liên nối. khác nhau được gọi là cấu trúc liên nối. nhu cầu trao đổi giữa các module.

Mạng máy tính - Computer Network: Hệ. Giao thức - Protocol:

Nhấn nút New để tạo 1 biến mới Trang 17

Chương 7. Application Layer. Tài liệu : Forouzan, Data Communication and Networking

NHÚNG. Vi ñiều khiển BM Kỹ Thuật ðiện Tử - ðh Bách Khoa TP.HCM 2

8051 Microcontroller

3.4 Tập lệnh

Hướng dẫn cài đặt FPT

Google Search Engine. 12/24/2014 Google Search Engine 1

PHÁT TRIỂN ỨNG DỤNG WEB

HƯỚNG DẪN CÁCH SỬ DỤNG WINDOWS MOVIE MAKER

Tình huống 1: PPPoE với Username và Password

HƢỚNG DẪN TRIỂN KHAI KASPERSKY - MOBILE DEVICE MANAGEMENT

BẢO MẬT TRONG SQL SERVER

Tạo repository mới. The working tree. The staging index. Lệnh git init tạo một repository loại git. tại thư mục hiện tại: $ git init

KIẾN TRÚC MÁY TÍNH. Giảng viên: ThS. Phan Thanh Toàn. v

HỢP ĐỒNG MUA BÁN HÀNG HÓA QUỐC TẾ GV: NGUYỄN THỊ BÍCH PHƯỢNG

Tìm hiểu Group Policy Object và các ví dụ

HƯỚNG DẪN SỬ DỤNG ĐẦU GHI H.264 DVR VISION VS (4CH - 8CH - 16CH)

Ôn tập Thiết bị mạng và truyền thông DH07TT - Lưu hành nội bộ (không sao chép dưới mọi hình thức)

Dọn "rác" Windows 7 vào dịp cuối năm

CHƯƠNG 2: CÁC ĐẶC ĐIỂM VỀ MÔI TRƯỜNG PHÁT TRIỂN (IDE)

BÀI GIẢNG CHƯƠNG 3 GIAO TIẾP KẾT NỐI SỐ LIỆU

Lecture 12. Trees (1/2) Nội dung bài học:

NHẬP MÔN LẬP TRÌNH KHOA HỌC DỮ LIỆU. Bài 10: Thư viện Pandas (2)

BÀI 6 LÀM VIỆC VỚI THÀNH PHẦN MỞ RỘNG CỦA CSS3

Bài 13: C++11. EE3490: Kỹ thuật lập trình HK1 2017/2018 TS. Đào Trung Kiên ĐH Bách khoa Hà Nội

I. Hướng Dẫn Đăng Nhập:

HƯỚNG DẪN SỬ DỤNG DỊCH VỤ CDN

BÀI LAB ĐỔI TÊN DOMAIN

Exceptions. Outline 7/31/2012. Exceptions. Exception handling is an important aspect of objectoriented. Chapter 10 focuses on:

BELGIUM ONLINE APPOINTMENT

Đa ngôn ngữ (Internationalization) trong Servlet

HƯỚNG DẪN SỬ DỤNG DỊCH VỤ CDN

dụng một chính sách, điều này giúp dễ dàng quản lý và cung cấp tính năng Load Balancing (cân bằng tải) phục vụ tốt hơn các yêu cầu của tổ chức.

Bài tập căn bản Visual Basic.Net Vòng lặp. txtn. txtketqua. btntinh. txtn. txtketqua. btntinh. Trang 1

Lab01: M V C Lưu ý: Để thực hành, các bạn phải cài Visual Studio 2013 trở lên mới hỗ trợ MVC5.

Online Appointment System will work better with below conditions/ Hệ thống đặt hẹn online sẽ hoạt động tốt hơn với điều kiện sau đây:

B5: Time to coding. Tới thư mục src/example.java và thay đổi nội dung file như sau: Mã: package at.exam;

Môn Học: Cơ Sở Dữ Liệu 2. Chương 3 LẤY DỮ LIỆU TỪ NHIỀU NGUỒN

LINQ TO SQL & ASP.NET

Qu n ả tr h ố g t p ậ tin

Bài 10: Cấu trúc dữ liệu

MA NG MA Y TI NH (Computer Networks)

Phần 2. SỬ DỤNG POWERPOINT ĐỂ CHUẨN BỊ NỘI DUNG TRÌNH BÀY

Bài 7: Các cấu trúc điều khiển

2.4. GIAO THỨC MQTT Các khái niệm cơ bản MQTT được phát triển bởi IBM và Eurotech, phiên bản mới nhất là MQTT 3.1 MQTT (Giao vận tầm xa) là

LAB IP SLA Bài 1. Bùi Quốc Kỳ ***

MỤC LỤC. Giáo trình Thiết kế web Trang 1

Cấu hình Router FTTH ---X---

NỘI DUNG ÔN TẬP MÔN HỆ CƠ SỞ DỮ LIỆU

Kỹ thuật thu nhỏ đối tượng trong Design (Layout)

Bài 6: Xuất nhập (input/output) EE3490: Kỹ thuật lập trình HK1 2017/2018 TS. Đào Trung Kiên ĐH Bách khoa Hà Nội

BÀI THỰC HÀNH SỐ 1. Quản trị tập tin: 1/ Tạo các thư mục sau: Bài tập thực hành linux Linuxlab. bt1 bt11 bt111. bt121. bt12. bh1 bh11 bh111.

Bài thực hành số 2 QUYỀN và ROLE

JAVASCRIPT. Giảng viên : Ths. PHẠM ĐÀO MINH VŨ

HTML DOM - Forms. MSc. nguyenhominhduc

BÀI 6a LẬP TRÌNH ĐA TUYẾN (MULTI THREAD)

Tröôøng Ñaïi Hoïc Baùch Khoa Tp.HCM LẬP TRÌNH MINICHAT. Bài giảng 3. Trang1. Khoa Khoa Học Và Kỹ Thuật Máy Tính

Microcontroller Intel [Instruction Set]

Cập nhật ResultSet trong JDBC

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG HOSTING PLESK PANEL

HƯỚNG DẪN QUẢN TRỊ HỆ THỐNG

Transcription:

Kiến trúc 8051 và giới thiệu về ngôn ngữ lập trình Assembly Microcontroller Chapter 2 Ngo Nhu Khoa Department of Computer Engineering ThaiNguyen University of Technology

Các vấn đề chính Kiến trúc bên trong của 8051 Tập các thanh ghi Tập lệnh Bản đồ bộ nhớ Giới thiệu về ngăn xếp, SFRs Ngôn ngữ lập trình Assembly 10/1/2005 2

1. Kiến trúccủa 8051 Quan niệm của người lậptrình Tập thanh ghi Tập lệnh Bản đồ bộ nhớ Quan niệm của người thiếtkế phầncứng Sơ đồchân ra Các đặc trưng về định thời Các yêu cầuvề dòng/áp 10/1/2005 3

2. Tập thanh ghi Các thanh ghi: A, B, R0 đến R7 là các thanh ghi 8 bit DPTR : [DPH:DPL] là thanh ghi 16 bit PC : Con đếm chương trình (con trỏ lệnh -Instruction Ptr) là thanh ghi 16bit 4 tập dãy thanh ghi R0-R7 Thanh ghi con trỏ ngăn xếp SP PSW : Thanh ghi từ trạng thái (các cờ) SFR : Các thanh ghi chức năng đặc biệt Điều khiển các thiết bị ngoại vi trên board 10/1/2005 4

2.1. Các khái niệm cơ bản Định dạng của 1 lệnh Assembly Operation destination source ; comment Các giá trị được đặt trước bởi 1 dấu # VD: #55, #32, Các giá trị hệ 16 được kýhiệu thêm chữ cái H vào cuối. VD: #55H, #32H Nếu kýtựđầutiên của giátrị 16 là 1 chữ cái, thì thêm vào trước nókýtự số 0. VD: #0FFH, #0C1H, #0D2H 10/1/2005 5

2.2. Accumulator A, ACC Thường được sử dụng cho việc dịch chuyển dữ liệu, thực hiện các phép toán số học và logic trên dữ liệu 8 bit. Ví dụ: mov A, R0 push ACC mov A, #10 ;A 10 mov B, A mov A, 10 mov A, 0xFF mov A, 0FFH ;như trên24 ;copy nội dung của R0 vào A ;Cất A vàongăn xếp ;B A ;A mem(10) ;A 0xFF 10/1/2005 6

2.3. B Register Thường được sử dụng như là 1 thanh ghi nháp, có thể xem như thanh ghi thứ 9 trong tập thanh ghi R Được sử dụng trong 2 mã lệnh: mul AB, div AB Thanh ghi B lưu toán hạng thứ 2 và sẽ lưu giữ 1 phần kết quả: 8bits cao của kết quả sau phép nhân Phần dư của phép chia 10/1/2005 7

2.4. R0 to R7 Tập 8 thanh ghi R0, R1, R7, mỗi thanh ghi có độ rộng 8 bit Được sử dụng rộng rãi như là các thanh ghi nháp Có mặt ở cả 4 dãy (effectively 4x8 registers) Mỗi dãy được chọn nhờ thiết lập các bit RS1:RS0 trong thanh ghi từ trangh thái PSW Dãy ngầm định (khi bật nguồn) là dãy 0 (bank0) Ví dụ: mov R0, A ;R0 A mov A, R0 ;A R0 mov R1, #45 ;R1 45 10/1/2005 8

2.5. DPTR Thanh ghi 16 bit, được gọi là con trỏ dữ liệu Được sử dụng bởi cáclệnh truy xuất đến bộ nhớ ngoài Có thể đượcsử dụng để lưu trữ các giá trị 16 bit mov DPTR, #data16 ; setup DPTR with 16bit ext address movx A, @DPTR ; copy mem[dptr] to A Thanh ghi DPTR rất hữu dụng đối với các thao tác trên chuỗi, trên các bảng tra 10/1/2005 9

2.6. PC PC là 1 con đếm chương trình Được xemnhư là con trỏ (IP) trong các bộ vi xử lý khác. PC luôn trỏ đếnlệnh kế tiếp trongchương trình. Sau khi lấy 1 lệnh (1 hoặc nhiều byte), PC tự động được tăng lên để trỏ đếnlệnh kế tiếp 10/1/2005 10

2.7. SP SP là con trỏ ngăn xếp, nó luôn trỏ đến đỉnh của ngăn xếp Lệnh push: làm tăng SP và sau đó copy dữ liệu vào ngăn xếp. Lệnh pop: copy dữ liệu từđỉnh ngăn xếp, sau đó giảm SP Trong 8051, ngăn xếp cóhướng phát triển lên trên (từ vùng thấp đến vùngcaocủa bộ nhớ) và chỉ có thể được đặt trong bộ nhớ RAM nội. Khi bật nguồn, SP có giá trị là 07H Các dãy thanh ghi 2,3 và 4 (08H to 1FH) là vùng ngăn xếp ngầm định. Ngăn xếp cóthểđượccấp phát lại bằng cách thiết lập SP trỏ đến vùng nhớ cao hơn (trong vùng từ 30H đến 7FH): mov SP, #32H 10/1/2005 11

2.8. PSW Thanh ghi từ trạng thái là 1 thanh ghi 8 bit, có thể địa chỉ hoá bit bit addressable, mà các bit của nólàcác cờ. CY - Cờ nhớ (Carry Flag) Được lập khicó1 số nhớ trong phép toán số học AC - Cờ nhớ phụ (Aux. Carry Flag): nhớ từ bit D3 sang bit D4; được sử dụng cho phép toán BCD. P - Cờ chẵn lẻ (Parity Flag): P=1 nếu A có số bit 1 là lẻ. OV - Cờ tràn (Overflow Flag): lập nếu bất kỳ phép toán số học nào gây ra 1 kết quả tràn. 10/1/2005 12

Flags - Illustration Ví dụ phép cộng: mov A, #38h add A, #2Fh 38h 0011 1000 + 2Fh 0010 1111 --------- --------------- 67 0110 0111 --------- --------------- CY = 0 AC = 1 P = 1 10/1/2005 13

2.9. SFRs Điều khiển sự vận hành của các thiết bị ngoại vi trên board Các thanh ghi chức năng đặc biệt ởđịa chỉ trực tiếp 80H đến FFH Các dòng 8051 có thể có thêm các thanh ghi chức năng đặc biệt khác. Tất cả các thanh ghi đều có1 địa chỉ 10/1/2005 14

3. Lược đồ bộ nhớ của 8051 Tách biệt bộ nhớ mã lệnh và dữ liệu Bộ nhớ mã lệnh Lên tới 64K (some maybe onboard) (0x0000 to 0xFFFF) PSEN là tín hiệu điều khiển Chỉ có thể dùng để lưu trữ chương trình (Read only) Bộ nhớ dữ liệu Lên tới 64K (0x0000 to 0xFFFF) RD/WR là các tín hiệu điều khiển Chỉ có thể dùng để lưu trữ dữ liệu (Read and Write) Bộ nhớ RAM nội 128 bytes 0x00 to 0x7F (includes register banks) SFRs 0x80 to 0xFF (not all available) 10/1/2005 15

3. Lược đồ bộ nhớ của 8051( ) 10/1/2005 16

3. Lược đồ bộ nhớ của 8051( ) Memory Type Start End Signal Instruction RAM 0x00 0x7F mov A, xxh mov A, @Ri Data 0x0000 0xFFFF RD, WR movx A, @DPTR Code 0x0000 0xFFFF PSEN movc A,@A+DPTR SFRs 0x80 0xFF mov A, xxh Internal ROM is vendor dependant On power-up PC starts at 0000H in ROM space Clones may have internal memory that may be used as both Code+Data 10/1/2005 17

4. Tập lệnh của 8051 Dịch chuyển dữ liệu - Move/Copy dữ liệu từ vùng này đến vùng khác mov, movc, movx, push, pop, xch, xchd Các lệnh logic thực hiện các phép toán logic trên dữ liệu anl, orl, xrl, clr, cpl, rl, rlc, rr, rrc, swap Các lệnh số học -thực hiện các phép toán số học trên dữ liệu add, addc, subb, inc, dec, mul, div Điều khiển chương trình - điều khiển luồng thực hiện của chương trình (jumps, subroutine calls) jmp, ajmp, ljmp, sjmp, jc, jnc, jb, jnb, jbc, jz, jnz, acall, lcall, cjne, djnz, ret, reti NOP 10/1/2005 18

4. Tập lệnh của 8051 ( ) Đọc qua toàn bộ tập lệnh Không phải nhớ tất cả các lệnh Không phải nhớ tất cả các trường hợp Nhớ các loại lệnh Khi viết chương trình Viết ra các thao tác cần thực hiện (bằng tiếng anh) Tìm kiếm trong tập lệnh để tìm lệnh tương ứng thực hiện các công việc đó 10/1/2005 19

Assembly Opcode Mỗi lệnh assembly dịch thành 1 mã lệnh nhị phân duy nhất Có thể dài 1, 2 hoặc 3 bytes Danh sách các lệnh thường có trong tài liệu hướng dẫn lập trình. Ví dụ 1: mov A, #data 2 bytes, 1 cycles 0111 0100 data8 mov A, 0xAA 0111 0100 1010 1010 74 AA Ví dụ 2: acall address11 a10 a9 a8 1 0001 a7 a6 a5 a4 a3 a2 a1 a0 acall 0x557 1011 0001 0101 0111 B1 57 10/1/2005 20

Những định hướng Assembler Cấu trúc lệnh Assembly: [Nhãn:] mã lệnh [các toán hạng] [; chú thích] [label:] opcode [operands] [;comment] Ví dụ: start: mov A, #D0H ;code starts here Những định hướng chương trình dịch chỉ thỉ cho assembler thực hiện 1 nhiệm vụ riêng biệt ORG xxxxh : origin, bắt đầu chương trình tại xxxxh EQU : định nghĩa 1 hằng Ví dụ: count EQU 25 DB : define byte, định nghĩa cấp phát cho việc lưu trữ DATA1: DB 28 DATA2: DB hello world END : end of assembly file 10/1/2005 21

Assembly Example #1 Target 8051 dev system Std 8051 device 2K on-chip ROM running a monitor program 32K external RAM at address 0x0000 to 0x7FFF This RAM is both code and data First 0x30 locations in external RAM is dedicated for the Interrupt Vector Table (IVT) ORG 0x30 ;skip the IVT area Start: mov R0, #10 mov R1, #0A5H mov R2, #1 mov R3, #0x20 cleara: mov A, #0 ;now A = 0 Addup: add A, R0 ;now A = A + R0 add A, R1 add A, R2 add A, R3 mov R4, A ;store sum in R4 mov DPTR, #7FFF movx @DPTR, A ;store in ext. mem Done: sjmp done ;loop here forever END 10/1/2005 22

Chương 2. Ôn tập What are the different views/models of a up? What are the registers available in the 8051? What are the functions of the 8051 registers? What is stack, PC, SFR, PSW/Flags? What is an instruction set? What is a memory map? Why is it needed? What is an assembly language program? How does it look? 10/1/2005 23