Xem mẫu

  1. Cấu trúc bộ VĐK 8051 Giới thiệu về lập trình hợp ngữ Bài 2 Bộ môn TĐ Khoa KTĐK
  2. Bài 2: Mục đích • Cấu trúc bên trong 8051 • Tập thanh ghi • Tập lệnh • Bản đồ bộ nhớ • Giới thiệu về ngăn xếp SFR xếp, • Lập trình hợp ngữ
  3. Cấu trúc 8051 • Tổng quan cho người lập trình – Tập thanh ghi – Tập lệnh – Bản đồ bộ nhớ • Tổng quan cho người thiết kế phần cứng – Sơ đồ chân – Các thông số về thời gian – Các yêu cầu về dòng điện và điện áp
  4. Tổng quan cho người thiết kế phần cứng ứ Tạo nguồn điện áp 5V từ nguồn 220V 50Hz XSC1 G XMM2 T XMM1 A B XMM3 V1 2 D2 U3 T2 L M 7 8 2 4 CT 220 V 4 1 LINE VREG 6 0 Hz VOLTAGE 0 De g C1 C2 COMMON C3 NL T_ PQ _ 4 _ 1 2 3 1B4B42 1 0 u F- PO L 100nF XMM4 1 0 0 0 u F- PO L U2 L M 7 8 1 2 CT LINE VREG VOLTAGE COMMON C4 1 0 u F- PO L XMM5 U1 L M 7 8 0 5 CT LINE VREG VOLTAGE COMMON C5 1 0 u F- PO L
  5. Tổng quan cho người thiết kế phần cứng ứ Tạo nguồn điện áp 5V từ nguồn 12V XMM1 U1 LM7805CT LINE VREG VOLTAGE V1 COMMON 12 V C1 C2 C3 C4 100pF 1000uF-POL 10uF-POL 100pF R1 4.70KΩ LED1
  6. Tổng quan cho người thiết kế phần cứng ứ Mạch tạo dao động và Reset cho 8051 18(XTAL1) 19(XTAL2) 20(GND) V CC 5V X1 C3 R1 10kΩ 330pF HC-49/U_11MHz J1 C1 C2 Key = Spac e y p p 330pF p 330pF Toi chan Reset (9)
  7. Tổng Tổ quan cho người lậ t ì h h ời lập trình- Tập thanh ghi • Các thanh ghi – A, B, A B từ R0 đến R7: là các thanh ghi 8 bit – DPTR: [DPH:DPL] thanh ghi 16 bit – PC: Bộ đếm chương trình (16 bit) – 4 bộ thanh ghi từ R0 đến R7 – Con trỏ ngăn xếp SP – PSW: thanh ghi từ trạng thái chương trình – SFR: Thanh ghi chức năng đặc biệt • Điều khiển các thiết bị ngoại vi trên board ề ể ế
  8. Tập thanh ghi-Thanh ghi tích luỹ A, ACC • Được sử dụng phổ biến cho lệnh mov và phép tính số học • ACC có địa chỉ SFR là 0E0H • Ví dụ có chỉ dẫn đầy đủ – Lệnh: mov A, R0 ;copy nội dung của R0 vào A A – Mã lệnh: E8 – Thanh ghi tích luỹ được giải mã hoàn toàn trong mã lệnh • Chỉ dẫn đầ đủ về thanh ghi tích l ỹ đầy ề luỹ – Lệnh: Push ACC – Mã lệnh C0 E0
  9. Tập thanh ghi-Thanh ghi B • Thường được sử dụng như là thanh ghi tạm thời giống như thanh ghi thứ 9 thời, • Được sử dụng bởi 2 mã lệnh – mul AB div AB AB, • Thanh ghi giữ toán hạng thứ 2 và sẽ giữ một phần của kết quả – 8 bit cao của kết quả phép tính nhân – Số dư trong phép tính chia
  10. Các thanh ghi - PC • PC là bộ đếm chương trình • Được xem như con trỏ lệnh trong các bộ VXL khác • PC luôn trỏ tới lệnh kế tiếp của chương trình • S khi nạp một lệnh (1 h ặ nhiều b t ) PC Sau ột lệ h hoặc hiề byte), được tự động tăng để trỏ tới lệnh kế tiếp • Không thể thao tác trực tiếp tới PC (ngoại trừ câu lệnh JMP) • Không thể đọc trực tiếp nội dung của PC (trừ một số thủ thuật)
  11. Tập thanh ghi – R0 tới R7 • Một bộ 8 thanh ghi R0, R1, … R7, mỗi thanh ghi 8 bit • Phần lớn được sử dụng như các thanh ghi tạm • Có sẵn trong 4 băng ( g g (bank) ( ự tế như là các ) (Thực thanh ghi 4x8) • Băng được lựa chọn bằng cách thiết lập các bit RS1:RS0 t RS1 RS0 trong thanh ghi từ t th h hi trạng thái chương h trình PSW. • Băng mặc định (lúc bật nguồn) là bank 0
  12. Các thanh ghi - PSW • Từ trạng thái chương trình là thanh ghi 8 bit có thể địa chỉ hoá theo bit, thanh ghi này có các cờ: • CY- cờ nhớ – Thiết lập khi có nhớ ở trong phép tính số học • AC - Cờ nhớ phụ – Có nhớ từ D3 sang D4. Sử dụng cho các phép toán với số BCD • P - Cờ chẵn lẻ – P 1 Nế A có tổ các số 1 là số lẻ P=1 Nếu ó tổng á ố ố – P=0 Nếu A có tổng các số 1 là số chẵn • OV - cờ tràn – Thiết lập nếu bất cứ một phép tính số học nào gây tràn
  13. Thanh ghi từ trạng thái chương trình- PSW ì h
  14. Minh hoạ về các cờ • Ví dụ về phép cộng
  15. Các thanh ghi - DPTR • Thanh ghi 16 bit, được gọi là con trỏ dữ liệu • Được sử dụng bởi các lệnh truy cập bộ nhớ ngoài • Cũng được sử dụng để lưu các giá trị 16 bit mov DPTR, #data16; Đặt DPTR với địa chỉ ngoài 16 bit movx A @DPTR ; copy mem[DPTR] tới A A, [DPTR] • DPTR được sử dụng cho các thao tác với chuỗi, LUT (look up table)
  16. Các thanh ghi - SP • SP là con trỏ ngăn xếp • SP trỏ tới vị trí cuối cùng đã sử dụng của ngăn xếp – Thao tác nạp trước tiên sẽ tăng SP và sau đó copy dữ liệu – Thao tác lấy trước tiên sẽ copy dữ liệu sau đó giảm SP • Ở 8051, ngăn xếp được phát triển theo chiều tăng (từ vùng nhớ thấ tới vùng nhớ cao) và có thể chỉ là RAM ù hớ thấp ù hớ ) à ó hỉ trong • Khi bật nguồn, SP có vị trí 07H • Các băng thanh ghi 2,3,4 (08H tới 1FH) là vùng ngăn xếp ế mặc định • Ngăn xếp có thể định vị trí lại bằng cách đặt SP tới vùng bộ nhớ cao từ 30H tới 7Fh hớ – Mov SP, #32H
  17. Các thanh ghi - SFR • Điều khiển hoạt động của các thiết bị ngoại vi t ê i i trên board • Các thanh ghi chức năng đặc bịêt ở địa chỉ trực tiếp từ 80H tới FFH • Các bản sao của 8051 có thể có các SFR bổ sung g
  18. Bản đồ bộ nhớ của 8051 • ROM bên trong phụ thuộc vào nhà cung cấp • Khi bật nguồn PC bắt đầu từ địa chỉ 0000H trong không i khô gian ROM
  19. Tập lệnh của 8051 • Chuyển dữ liệu – Chuyển/copy dữ liệu tà vị trí này tới vị trí khác – mov movc movx push pop mov, movc, movx, push, pop… • Lệnh lôgic – Thực hiện các phép tính lôgic trên dữ liệu – anl, orl, xrl, clr, cpl, rl, rlc, rr, rrc, swap • Lệnh số học – Thực hiện các phép tính 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 chương trình – jmp, ajmp, ljmp, sjmp, jc, jnc, jb, jnb, jbc, jz, jnz, acall, lcall, – cjne, djnz, ret, reti j j • NOP
  20. Giới thiệu hợp ngữ của 8051 • Cấu trúc lệnh hợp ngữ [Nhãn:] Mã lệnh [toán hạng] [;giải thích] • Ví dụ start: mov A, #D0H; mã bắt đầu từ đây • Chỉ dẫn hợp ngữ ợp g – ORG xxxxH : origin, bắt đầu hợp dich từ địa chỉ xxxxH – EQU : địng nghĩa hằng số • Count EQU 25 – DB : chỉ dẫn định nghĩa dữ liệu 8 bit ỉ ẫ • DATA1: DB 28 • DATA2: DB “hello word” – END : báo cho trình hợp dich biết kết thúc tệp nguồn
nguon tai.lieu . vn