1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài giảng Kỹ thuật vi xử lý

76 2 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

Tiêu đề Bài giảng Kỹ thuật vi xử lý
Tác giả Lê Trung Dũng
Người hướng dẫn TS. Lê Trung Dũng
Trường học Thủy Lợi University
Chuyên ngành Kỹ thuật vi xử lý
Thể loại bài giảng
Năm xuất bản 2015
Thành phố Hà Nội
Định dạng
Số trang 76
Dung lượng 1,39 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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

Trang 1

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 và Ứ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

Trang 4

1.1 Khái niệm vi xử lý

Vi xử lý là một vi mạch tích hợp rất lớn (VLSI- Very Large

Scale Integrated circuit)

Vi xử lý đa năng (general-pupose microprocessors): các thànhphần chủ yếu cho tính toán

Vi điều khiển (microcontrollers): chứa cả phần tính toán, bộnhớ và các cổng vào ra

Trang 5

1.2 Những đặc điểm cấu trúc

Công suất của bộ vi xử lý :

Độ dài từ : 4-bit, 8-bit, 16-bit, 32-bit, 64-bit

Khả năng đánh địa chỉ : thông thường phụ thuộc vào thanhghi địa chỉ (address register) Với bộ xử lý 8-bit, thanh ghi địa

Trang 8

2.1 Sơ đồ cấu trúc

Hình: Sơ đồ cấu trúc của đơn vị xử lý trung tâm theo kiến trúc Von

Neumann

Trang 9

2.1.1 Đơn vị điều khiển CU

Đưa ra ngoài CPU các tín hiệu điều khiển để tác động đến

việc trao đổi dữ liệu;

Đưa ra các tín hiệu điều khiển bên trong CPU, tác động đếnALU thực hiện các nhiệm vụ cụ thể

Trang 10

2.1.2 ALU

Có thể thực hiện cá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

Trang 11

2.1.3 Thanh ghi tích lũy A: Accumulator

Tham gia vào phần lớn các phép tính;

Cất trữ toán hạng hoặc kết quả phép tính của ALU;

Ví dụ X = 25 + 30

25 Ñ A

30 nằm ở một ô nhớ nào đó;

X = 25 + 30 Ñ A (X thay thế cho 25)

Trang 13

2.1.5 Thanh ghi trạng thái

Trang 14

2.1.6 Con trỏ ngăn xếp SP

Bộ nhớ có cơ chế truy nhập kiểu LIFO

CALL: gọi chương trình con

PUSH: đẩy vào ngăn xếp

RET: trở về từ chương trình con

POP: phục hồi từ ngăn xếp

Trang 15

2.1.7 Thanh ghi đa năng

Chứa các toán hạng để thực hiện các phép tính số học, logic,dịch bit

Có thể kết hợp thành các cặp thanh ghi để thao tác như là

các thanh ghi có độ dài lớn hơn

Trang 17

Tổ chức bus bên trong vi xử lý 8 bit

Trang 18

Phân loại

Tổ chức vào ra có thể phân loại như sau:

Đầu vào/ra lập trình (Programmed I/O),

Đầu vào/ra theo ngắt (Interrupt I/O),

Truy cập bộ nhớ trực tiếp (Direct Memory Access)

Trang 19

2.3.1 Vào/ra lập trình

Vi xử lý giao tiếp với thiết bị ngoài thông qua thanh ghi đượcgọi là cổng vào/ra

Từng bit riêng lẻ có thể lập trình là đầu vào hay đầu ra,

Toàn bộ bit trên một cổng có thể lập trình là vào hay ra

Trang 20

2.3.1 Vào/ra lập trình không/có điều kiện

Không điều kiện : vi xử lý có thể trao đổi dữ liệu với thiết bịngoài bất kì lúc nào

Có điều kiện : Vi xử lý trao đổi dữ liệu với thiết bị ngoài

thông qua cơ chế bắt tay (handshaking)

Bit 7

Bit 0

Bit 0 Bit 2

Output Enable Conversion complete Start

Trang 21

2.3.2 Vào/ra ngắt

Thiết bị ngoại vi kết nối và trao đổi dữ liệu với vi xử lý

Để cập nhật kịp thời, thiết bị kết nối chủ động với vi xử lý

qua hệ thống ngắt (INT)

Trang 22

Module IO đưa ra tín hiệu ngắt đến CPU,

CPU yêu cầu đọc dữ liệu,

Module IO chuyển dữ liệu tới CPU

Trang 23

Phức tạp nếu viết chương trình bằng ngôn ngữ cấp thấp,

Khó để phối hợp tốt với nhau,

Thường được hệ điều hành hay các các nhà sản xuất phần

cứng hỗ trợ

Trang 24

2.3.2 Vào/ra ngắt

IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7

Device 00 Device 01

Device 07

Slave Interrupt Controller 1

IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7

Device 08 Device 09

Device 15

Salve Interrupt Controller 2

IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7

Master Interrupt Controller

INT INTR

Microprocessor

Trang 25

2.3.2 Vào/ra ngắt

Cách thức xử lý ngắt:

Polled technique: Vi xử lý trả lời một ngắt bằng cách xử lý

một quy trình dịch vụ chung cho tất cả các thiết bị

Daisy chain technique: Bộ vi xử lý tạo ra tín hiệu xác nhận

ngắt (INTA) ở mức ưu tiên cao nhất

Trang 27

2.3.2 Vào/ra ngắt

Daisy Chain Interrupts

Vi xử lý tạo một tín hiệu ngắt INTA có mức ưu tiên cao nhất,Nếu thiết bị có ngắt thì nó sẽ chấp nhận INTA,

Nếu thiết bị không có ngắt thì tín hiệu INTA sẽ được chuyểnqua thiết bị tiếp theo

Nếu được chấp nhận, dữ liệu sẽ được chuyển tới phần cứngtạo vecto địa chỉ ngắt và chuyển tới vi xử lý

Device 1 Device 2 Device N INTA

INT

Vi xử lý

Trang 28

2.3.3 Truy nhập bộ nhớ trực tiếp DMA

Là kỹ thuật truyền dữ liệu giữa bộ nhớ máy tính và thiết bị vào/rakhông cần sự can thiệp của vi xử lý

Kỹ thuật DMA sử dụng chip điều khiển DMA,

Bộ điều khiển DMA có ít nhất ba thanh ghi:

Thanh ghi địa chỉ: chứa địa chỉ bắt đầu của dữ liệu,

Thanh ghi đếm đầu cuối, chứa khối dữ liệu cần trao đổi,

Thanh ghi trạng thái, chứa thông in như quá trình trao đổi dữ liệu đã hoàn thành.

Trang 29

2.3.3 Truy nhập bộ nhớ trực tiếp DMA

Thiết bị vào/ra yêu cầu hoạt động DMA thông qua DMA request.

DMA Controller chip kích hoạt chân HOLD yêu cầu vi xử lý giải phóng Bus,

Vi xử lý gửi tín hiệu qua HLDA (HOLD Acknowledge) trở lại DMA Controller thông báo Bus đã bị khóa, DMA Controller thay thế giá trị hiện tại của thanh ghi nội, trên Bus hệ thống và gửi DMA ACK tới thiết bị.

RAM

Address lines Address lines Address lines

Data lines Data lines Data lines

Data lines HOLD

HOLD

HLDA

HLDA CS

Decoding logic

CS

RS INT

INT HLDA HOLD Data Bus Address Bus

I/O Device

DMA Request

DMA Controller Chip

Vi xử lý INT

Trang 30

Bộ nhớ

Bộ nhớ là nơi chứa những chỉ dẫn và dữ liệu để vi xử lý hoạt động.Phân loại theo phân tầng

Bộ nhớ cấp vi xử lý: thanh ghi lưu trữ kết quả tạm thời;

Bộ nhớ chính: nơi lưu trữ chương trình thực thi: ROM, RAM;

Bộ nhớ thứ cấp hay được gọi là bộ nhớ ảo: ổ cứng

Trang 31

Phân loại bộ nhớ

Phân loại theo kiểu truy cập

Bộ nhớ truy cập ngẫu nhiên RAM (Random Access Memory);

Bộ nhớ truy cập tuần tự SAM (Seqential Access Memory);

Bộ nhớ chỉ đọc ROM (Read Only Memory)

Trang 32

Phân loại bộ nhớ

Phân loại theo khả năng duy trì dữ liệu

Bộ nhớ không ổn định (Volatile memory);

Bộ nhớ ổn định (Nonvoltatile memory)

Trang 34

Phân loại bộ nhớ

Trang 35

Dải địa chỉ

“ 65.536hay 64K bytes bộ nhớ

ra

bộ nhớ

Trang 36

Giao tiếp với RAM chip

Trang 37

Thiết kế bộ nhớ chính

Kỹ thuật chính để kết nối vi xử lý với ROM/RAM chip

Giải mã tuyến tính (Linear decoding)

Giải mã đầy đủ (Full decoding)

Trang 38

Linear Decoding

Giả thiết cần thiết kế 4k SRAM bằng các chip 1K SRAM

Dùng A9-A0 để truy xuất 1K SRAM

Dùng A13-A10 để lựa chọn chip

3800-3BFF3400-37FF2C00-2FFF1C00-1FFF

IIIIIIIV

Trang 39

Linear Decoding

Thiết kế 4k SRAM bằng các chip 1K SRAM

CS2 Chip RAM I

CS2 Chip RAM I

CS2 Chip RAM I

Chip RAM I 10

10 10

10 10

Dải địa chỉ (Hex) Chip SRAM 3800-3BFF 2C00-2FFF

I II III IV

Trang 41

Full Decoding

Sử dụng chip giải mã 3x8 để giải mã địa chỉ

CS2 Chip RAM I

CS2 Chip RAM I

CS2 Chip RAM I

Chip RAM I 10

10 10

10 10

Chip SRAM 0 0

I II III IV

0 1 0 0

A B C 0 1 2 3 4 5 6 7

Trang 43

Giới thiệu chung

Intel công bố vi điều khiển 8 bit 8051 năm 1980

4k ROM, 128 byte RAM, 32 I/O,

1 port truyền thông nối tiếp,

2 bộ timer,

Interrupts Control 4k bytes FlashROM 128 bytesRAM

Counter Input T0 (P3.4) T1 (P3.5) INT0

(P3.2) INT1 (P3.3)

ALE EA T0 Serial port

Trang 44

3.2.1 Chức năng các chân

8051

P0.7 P0.5 P0.3 P0.1

32 34 36 38

AD7 AD5 AD3 AD1

P1.7 P1.5 P1.3 P1.1

8 6 4 2

P2.7 P2.5 P2.3 P2.1

28 26 24 22

A15 A13 A11 A9

RD WR T1 INT1 TXD

17 15 13 11

P3.7 P3.5 P3.3 P3.1 VSS 20

9 31 ALE 29 30 PSEN

EA RST

VCC XTAL1

XTAL2 40

8051

1 P1.0 2 P1.1 3 P1.2 4 P1.3 P1.5 P1.7 5 7 9 RST 10 (RXD) P3.0 12 (TXD) P3.1 (INT0) P3.2 (T0) P3.4 13 15 (WR) P3.6 (RD) P3.7 XTAL1 17 19 XTAL2 20 GND

VCC 40 P0.0 (AD0) 39 P0.1 (AD1) 38 P0.2 (AD2) 37 35 33 P0.3 (AD3) P0.5 (AD5) P0.7 (AD7) 32 EA/VPP ALE/PROG 31 PSEN 30 28 26 P2.7 (A15) P2.5 (A13) 25 23 P2.3 (A11) P2.1 (A9) 22 P2.0 (A8) 21

Trang 46

3.2.1 Chức năng các chân

Port 1

Xuất nhập dữ liệu

Trang 48

3.2.1 Chức năng các chân

Port 3

Xuất nhập dữ liệu

RxD Nhận dữ liệu của cổng truyền thông nối tiếp

TxD Truyền dữ liệu của cổng truyền thông nối tiếp

Ę

INT0 Cổng vào của ngắt ngoài 0

Ę

INT1 Cổng vào của ngắt ngoài 1

T0 Cổng vào của bộ định thời/đếm 0

T1 Cổng vào của bộ định thời/đếm 1

Trang 49

ALE Cho phép chốt địa chỉ khi làm việc với bộ nhớ ngoài.

Ď

EA Logic 1, thực thi chương trình trong ROM nội Logic 0,thực thi chương trình ở ROM ngoài

RST Đưa vi xử lý về trạng thái ban đầu,

XTAL1 và XTAL2 thường được nối với thạch anh tạo xung

dao động cho hệ thống vi xử lý

Trang 50

(P3.2) (P3.3)INT1

ALE PSEN EA RST T0 Serial port

Trang 51

Program Memory (Read Only) FFFFh

0FFFh

0003h 000Bh 0013h 001Bh 0023h

Reset INT0 TF0 INT1 TF1

RI and TI

Địa chỉ ngắt trên ROM

Trang 52

00FFh Truy cập bằng định địa tiếp

Truy cập bằng định địa chỉ trực tiếp

Cấu trúc bộ nhớ dữ liệu Cấu trúc bộ nhớ trong

0080h

Cấu trúc 128 byte thấp của

bộ nhớ trong

00h 00h 0Fh

18h 10h 1Fh

2Fh 20h 30h 7Fh

4 bộ thanh

00 01 10 11

PSW

Định địa chỉ từng bit

RAM đa mục đích

Trang 53

RAM đa mục đích

80 byte

32 bytes

Định địa từng bit

10 18 20 22

2F 2E 2C 2A

23 25 27 29 30

7F

Địa chỉ byte Địa chỉ bit

DPH PCON 8F 8E 8D 8C 8B 8A 89 88 TCON

TMOD TL0 TH0

97 96 95 94 93 92 91 90 P1 9F 9E 9D 9C 9B 9A 99 98 SCON

SBUF A7 A6 A5 A4 A3 A2 A1 A0 P2

AF - - ACABAA A9 A8 IE B7 B6 B5 B4 B3 B2 B1 B0 P3

- - - BCBBBA B9 B8 IP D7 D6 D5 D4 D3 D2 - D0 PSW E7 E6 E5 E4 E3 E2 E1 E0 ACC F7 F6 F5 F4 F3 F2 F1 F0 B Địa chỉ bit Địa chỉ byte FF F0 E0 D0 B8 B0 A8 A0 99

90 8D 8B 89 87 83

Trang 54

3.2.3 Ghép nối với bộ nhớ chương trình ngoài

Kết nối bộ nhớ EPROM 4k với vi điều khiển 8051

8051

P0.7 P0.5 P0.3 P0.1

32 34 36 38

P1.7 P1.5 P1.3 P1.1

8 6 4 2

P2.7 P2.5 P2.3 P2.1

28 26 24 22

A15 A13 RD

T1 INT1 TXD

17 15 13 11

P3.7 P3.5 P3.3 P3.1 VSS 20

9 31 ALE 29 30 PSEN

EA RST

VCC XTAL1

XTAL2 40

8282

EPROM 2732 4K

D7 D5 D3 D1

D7 D5 D3 D1

DO7 DO5 DO3 DO1

A7 A5 A3 A1

A11 A9

OE CE STB OE

VCC

GND GND

VCC

Trang 55

3.2.3 Ghép nối với bộ nhớ dữ liệu ngoài

Kết nối bộ nhớ dữ liệu 64k với vi điều khiển 8051

8051

P0.7 P0.5 P0.3 P0.1

32 34 36 38

P1.7 P1.5 P1.3 P1.1

8 6 4 2

P2.7 P2.5 P2.3 P2.1

28 26 24 22

WR T1 INT1 TXD

17 15 13 11

P3.7 P3.5 P3.3 P3.1 VSS

9 31 ALE 29 30 PSEN

EA RST

VCC XTAL1

XTAL2 40

D7 D5 D3 D1

D7 D5 D3 D1

Q7 Q5 Q3 Q1

A7 A5 A3 A1

A11 A9 OE LE

VCC

GND GND

VCC

A15 A13 A15 A13 A15

A13

WR RD

Trang 56

3.2.3 Ghép nối với bộ nhớ dữ liệu ngoài

Ghép nối vi điều khiển 8051 với ROM 64k và RAM 64k

8051

P0.7 P0.5 P0.3 P0.1

P3.5 P3.3 P3.1

P2.7 P2.5 P2.3 P2.1

WR

P1.7 P1.5 P1.3 P1.1

9 31 ALE 29 30 PSEN

EA RST

XTAL1

XTAL2 74HCT573

RAM 64K

D7 D5 D3 D1

D7 D5 D3 D1

Q7 Q5 Q3 Q1

A7 A5 A3 A1

RD

ROM 64K

D7 D5 D3 D1

A7 A5 A3 A1 A11 A9

A15 A13 A11

A9

A15 A13

OE LE

OE WR

Trang 58

4.1.1 Định địa chỉ thanh ghi

Dùng thanh ghi như là các toán hạng chưa dữ liệu

Ví dụ

MOV A, R0; A:=R0

ADD A, R0; A:=A + R0

Trang 60

4.1.3 Định địa chỉ gián tiếp

Dùng để truy xuất các ô nhớ có địa chỉ thay đổi khi chươngtrình đang chạy

Ví dụ

MOV R0, #60H; R0:=60H

LOOP: MOV @R0, #0; Xóa ô nhớ

INC R0; R0:=R0+1; tăng địa chỉ

CJNE R0, #80H, LOOP; Nếu R0 = #80H thì tiếp tục.

Trang 62

4.1.5 Định địa chỉ tương đối

Được dùng cho các lệnh nhảy ngắn với bước nhảy là một giátrị 8 bit có dấu (-127 ˜ +127)

Trang 63

4.1.6 Định địa chỉ tuyệt đối

Dùng cho các lệnh ACALL và ẠJMP tới vị trí được thể hiệnbằng 2 byte, được chia thành 5 bit + 11 bit, tương đương

64K bộ nhớ

5 bit là vị trí của trang trong giới hạn trang

11 bit thể hiện vị trí chính xác trong trang 2K

Ví dụ: THERE đặt trước địa chỉ 0F46H

AJMP THERE; Lệnh nhảy có địa chỉ 0900H và 0901H

Khi này lệnh nhảy và đích nhảy nằm trong cùng 1 trang 2K(11 bit)

Trang 68

4.2.3 Lệnh di chuyển dữ liệu

MOV

XCH, hoán đổi dữ liệu

XCHD, hoán đổi nửa thấp của byte

MOVC, di chuyển dữ liệu trong bộ nhớ chương trình

Ví dụ

MOV R5,#25H; nạp số 25H vào thanh ghi R5

XCH A, @R0; hoán đổi nội dung A và byte có địa chỉ tại R0 XCHD A, R2; hoán đổi 4 bit thấp của A và R2

MOVC A, @A+DPTR; nạp nội dung byte có địa chỉ A+ DPTR

Trang 70

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 con

DJNZ, CJNE, JNC, nhảy tới nhãn có điều kiện

Ví dụ

DJNZ R7, LOOP; Nếu R7 #0 thì nhảy về LOOP

CJNE A, #03H, LOOP; Nếu A #03H thì nhảy về LOOP

JNC LOOP; Nếu cờ nhớ = 0, nhảy tới LOOP.

Trang 72

4.3.2 Cấu trúc chung chương trình hợp ngữ

Các thành phần cơ bản của ngôn ngữ Assembly

Labels: đánh dấu cho một đoạn lệnh

Instructions: Lệnh

Directives: Định hướng chương trình dịch

Comments: Lời chú thích

Trang 73

4.3.2 Cấu trúc chung chương trình hợp ngữ

ORG 00H ;(con trỏ chương trình bắt đầu từ 00h)

LJMP MAIN ; nhảy tới vị trí có nhãn là MAIN)

; (vị trí bắt đầu chương trình chính MAIN): ORG 0030H

Trang 74

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" và

"ten_du_an.obj"

Dự án có thể mở rộng bằng cách mở và 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 của viđiều khiển

Trang 75

4.3.4 Ví dụ

Từng bước thực hiện trên phần mềm MCU 8051 IDE

Trang 76

Cấu trúc chương trình

To be continued

Ngày đăng: 03/01/2024, 13:18

🧩 Sản phẩm bạn có thể quan tâm