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

Bài giảng vi xử lý chương 2 phần cứng 8051

91 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 đề Phần Cứng 8051
Người hướng dẫn TS. Nguyễn Hữu Chân Thành
Trường học Đại Học Giao Thông Vận Tải Tp.HCM
Chuyên ngành Điện – Điện Tử Viễn Thông
Thể loại bài giảng
Thành phố Tp.HCM
Định dạng
Số trang 91
Dung lượng 1,12 MB

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

Nội dung

Khác với các loại vi xử lý sử dụng để xử lý thông tin các máy tính PC xử lý văn bản, cơ sở dữ liệu, tính toán khoa học kỹ thuật, các vi điều khiển microcontroller được thiết kế để lắp đặ

Trang 1

Đại Học Giao Thông Vận Tải Tp.HCM

Chương 2: Phần cứng 8051

Khoa Điện – Điện Tử Viễn Thông

Học phần: Vi Xử Lý

Trang 2

Chương 2 bao gồm 9 nội dung:

1 Giới thiệu chung về VĐK

2 Cấu trúc của VĐK 8051.

3 Sơ lược các chân của 8051.

4 Cấu trúc của port I/O.

Trang 3

I Giới thiệu chung về VĐK

Trang 4

1 Giới thiệu chung về VĐK

Quá trình phát triển nhanh của các loại vi xử lý cho phép ứng dụng

chúng trong các quá trình sản xuất như các bộ điều khiển Khác với các loại vi xử lý sử dụng để xử lý thông tin (các máy tính PC xử lý văn bản, cơ sở dữ liệu, tính toán khoa học kỹ thuật), các vi điều khiển

(microcontroller) được thiết kế để lắp đặt trực tiếp vào ứng dụng cụ thể Trong đó suốt quá trình vận hành của mình vi điều khiển chỉ thực hiện duy nhất một chức năng Việc ứng dụng rộng rãi các bộ vi điều khiển dẫn đến yêu cầu sản xuất tất cả các vi mạch trong một vỏ Việc tích hợp nhiều vi mạch trên một vỏ làm giảm giá thành và làm tăng

tính tin cậy của vi điều khiển

Trang 5

1 Giới thiệu chung về VĐK

Yêu cầu tăng cao tốc độ xử lý dẫn đến các cấu trúc của vi điều khiển khác với các cấu trúc của các bộ vi xử lý như Z80, 8086 và các vi xử

lý dùng cho máy tính PC Cấu trúc của vi điều khiển cho phép truy cập nhanh bộ nhớ dữ liệu, truy cập và xử lý nhanh các dữ liệu, truy cập

nhanh các thiết bị (phép nhân và chia dấu phẩy động, các phép toán đại số Boole với 1 bit … )

Trang 6

1 Giới thiệu chung về VĐK

Tổng quát ta có thể nói rằng vi điều khiển là một máy tính trong một chip (monolithic microcomputer) Trong đó đã bao gồm CPU, bộ nhớ, các thiết vị vào/ra phổ biến Cấu trúc của vi điều khiển được thiết kế

để phục vụ một mục đích cụ thể mà chỉ cần tối thiểu các mạch phụ trợ Chức năng của vi điều khiển được xác định bởi chương trình lưu trong

bộ nhớ ROM hoặc EPROM Chương trình được nạp một lần và không thay đổi trong suốt quá trình hoạt động

Trang 7

1 Giới thiệu chung về VĐK

Bộ nhớ của các vi điều khiển có cấu trúc khác với bộ nhớ của vi xử lý Z80 cùng loại Tại các họ vi xử lý ta dùng cấu trúc bộ nhớ Neuman, trong đó bản đồ bộ nhớ dùng chung cho cả chương trình (thường trong ROM- Read only memory) và dữ liệu (RWM – read write memory) Các bộ vi điều khiển sử dụng cấu trúc Harvard Tại đây bộ nhớ được chia làm hai loại: bộ nhớ chương trình (ROM) và bộ nhớ dữ liệu

(RWM)

Trang 8

1 Giới thiệu chung về VĐK

Trang 9

1 Giới thiệu chung về VĐK

Việc phân biệt này được suy ra từ thực tế rằng bộ nhớ ROM dùng để lưu chương trình không thể ghi vào được, và bộ nhớ này thường có độ dài vài kB (yêu cầu 10 đến 16 bit địa chỉ) CPU truy cập bộ nhớ này chủ yếu để đọc lệnh Bộ nhớ dữ liệu để lưu các kết quả tạm thời thông thường bé hơn, chỉ cần 8 bit địa chỉ hoặc thậm chí 4 bit địa chỉ Với địa chỉ bộ nhớ dữ liệu nhỏ, toán hạng sẽ có địa chỉ ngắn và nhiều khi

có thể lọt vào vào mã lệnh (object code) có độ dài 8 bit Cấu trúc bộ

nhớ Harvard là cơ sở cho việc xử lý nhanh thông tin trong các ứng dụng điều khiển.

Trang 10

1 Giới thiệu chung về VĐK

Cấu trúc không đổi của các loại vi điều khiển lại là giới hạn đối với việc áp dụng trong thực tế Tuy vậy trên thị trường có rất nhiều loại vi điều khiển cho các loại ứng dụng cụ thể khác nhau, mỗi loại tự phân biệt bằng lượng tối thiểu thiết bị được tích hợp bên trong

Trang 11

2 Họ VĐK x51

Vi điều khiển 8051 ra đời vào năm 1980 và đã là loại vi điều khiển tương đối “lớn tuổi” Tuy vậy 8051 đã nhận được sự mến chuộng đặc biệt của các nhà thiết kế hệ thống đến nỗi hiện nay tồn tại rất nhiều nhà sản xuất tập trung phát triển các sản phẩm trên cơ sở 8051 và phát triển thêm các thiết bị ngoại vi khác

Trang 12

2 Họ VĐK x51

Ví dụ chỉ riêng Philips đã sản xuất 24 loại vi điều khiển trên cơ sở

8051 Các vi điều khiển này khác nhau như sau: bộ nhớ chương trình

từ 2kB đến 32 kB, bộ nhớ này có loại có thể nạp một lần hoặc nhiều lần (EPROM), bộ nhớ EEPROM để nhớ các hằng số, bộ nhớ dữ liệu

mở rộng đến 256 kB, bộ ADC 8 hoặc 10 bit với bộ chọn 8 kênh, các cổng vào/ra mở rộng, bộ so sánh hoặc lưu dữ liệu, bus 2 dây I2C Các nhà sản xuất cung cấp các vi điều khiển có tần số từ 12MHz đến 33 MHz với loại vỏ DIL, PLCC đến loại nhỏ PQFP Một số nhà sản xuất tập trung vào các vi điều khiển với các phép tính số học (Siemens

80C537) hoặc việc định thời khác nhau (Dallas DS80C320)

Trang 13

2 Họ VĐK x51

Tổng kết các hướng phát triển cụ thể của vi điều khiển trên cơ sở 8051 được tổng kết như hình

Trang 14

2 Họ VĐK x51

Trên thị trường Việt nam hiện tại loại vi điều khiển AT89C51,

AT89S51, AT89C52, AT89S52 của hãng Atmel rất được phổ biến Vi điều khiển này có thể mua được với giá rẽ Kèm theo với vi điều khiển này là rất nhiều các thiết bị phụ trợ như bộ lập trình, các board mạch

cơ bản, các phần mềm phụ trợ… Vi điều khiển AT89C51 và các loại cùng họ của hãng Atmael có bộ nhớ chương trình bên trong là

EEPROM là bộ nhớ có thể xoá là nạp được bằng tín hiệu điện Điều này cho phép người lập trình có thể thử nghiệm, nạp chương trình vào

vi điều khiển nhiều lần Thiết bị nạp chương trình (programmer) cho

vi điều khiển này là tương đối đơn giản và có thể tự làm được Có thể

tham khảo tại trang chủ của hãng Atmel tại địa chỉ www.atmel.com.

Trang 15

II Cấu trúc của VĐK 8051

Trang 16

1 Cấu trúc VĐK 8051

Các vi mạch của họ MCS-51 gồm: 8031/8032, 8051/8052, 8751/8752, 8951/8952,

892051 …

Vi mạch tiêu biểu của họ MCS-51 là 8031/8051 có các đặc điểm sau:

- 4 KB ROM nội (0 KB đối với 8031)

- 128 byte RAM nội.

- 4 port nhập/xuất 8 bit (I/O port).

- 2 bộ định thời 16 bit (timer).

- Mạch giao tiếp nối tiếp (serial port) 2 chiều.

- Bộ điều khiển ngắt xử lý 5 nguồn yêu cầu ngắt trong đó có 2 nguồn ngắt ngoài, 2 nguồn ngắt bên trong từ hai timer và 1 nguồn ngắt từ kênh nối tiếp Mức độ ưu tiên của các ngắt được quy định cụ thể.

- 64 KB không gian bộ nhớ chương trình ngoài.

- 64 KB không gian bộ nhớ dữ liệu ngoài.

- 210 bit được địa chỉ hoá.

Trang 17

1 Cấu trúc VĐK 8051

Trang 18

III Sơ lược các chân của 8051

Trang 19

1 Sơ đồ chân 8051

Trang 20

2 Sơ đồ khối của 8051

Trang 21

3 PORT 0

Port 0 (P0.0 P0.7) là port hai chức năng trên các chân từ

32 đến 39 Trong các thiết kế cỡ nhỏ (không dùng bộ nhớ

ngoài) nó có chức năng như các đường I/O Đối với các thiết

kế lớn với bộ nhớ ngoài, port 0 được dồn kênh giữa bus dữ liệu (D0 D7) và byte thấp của bus địa chỉ (A0 A7)

Không có R pull up bên trong.

Trang 22

4 PORT 1

Port 1 (P1.0 P1.7) là một port I/O trên các chân từ 1 đến

8 Port 1 không có chức năng khác, nó chỉ được dùng cho giao tiếp với thiết bị ngoài.

Trang 23

5 PORT 2

Port 2 (P2.0 P2.7) là port có công dụng kép trên các chân

từ 21 đến 28 Nó được dùng như các đường I/O hoặc là byte cao của bus địa chỉ (A8 A15) đối với các thiết kế dùng bộ nhớ ngoài.

Trang 25

7 /PSEN (Program Store Enable)

- /PSEN là tín hiệu ra trên chân 29 Nó là tín hiệu điều

khiển để cho phép đọc bộ nhớ chương trình ngoài và thường được nối đến chân (Output Enable) của bộ nhớ này

- /PSEN sẽ ở mức 0 (mức tích cực) trong thời gian lấy lệnh Các mã nhị phân của chương trình được đọc từ bộ nhớ qua bus dữ liệu và được chốt vào thanh ghi lệnh của 8051 để giải

mã Khi thực thi chương trình trong ROM nội, /PSEN được duy trì ở mức 1 (mức không tích cực).

Trang 26

8 ALE (Address Latch Enable)

- ALE là tín hiệu ra trên chân 30 Nó là tín hiệu ra cho phép chốt địa chỉ để phân kênh cho bus dữ liệu (D0 D7) và byte thấp của bus địa chỉ (A0 A7) trên port 0: trong nửa đầu của chu kỳ bộ nhớ, xung

ALE cho phép chốt địa chỉ vào một thanh ghi bên ngoài, trong nửa sau của chu kỳ bộ nhớ, các đường port 0 như là các đường xuất/nhập dữ liệu

- Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số của mạch dao động trên chip và có thể được dùng làm nguồn xung nhịp cho các

thành phần khác của hệ thống Ví dụ, nếu xung nhịp mạch dao động trên 8051 là 12 MHz thì ALE có tần số là 2 MHz Chỉ trừ khi thi hành lệnh MOVX, một xung ALE sẽ bị mất đi Chân này cũng được làm

ngõ vào của xung lập trình cho EPROM trong 8051

Trang 27

9 /EA (External Access)

/EA là tín hiệu vào trên chân 31 Nó thường được nối với +5V (mức 1) hay GND (mức 0) Nếu ở mức 1, 8051 thực thi chương trình từ ROM nội trong khoảng địa chỉ thấp (4 KB) Nếu ở mức 0, 8051 chỉ thực thi chương trình từ bộ nhớ

chương trình ngoài Trong 8031, chân này luôn được nối

GND vì không có bộ nhớ chương trình trên chip.

Trang 28

10 /RST và Vcc Vss

- RST là ngõ vào trên chân 9 Khi tín hiệu này được đưa lên mức cao (trong ít nhất là 2 chu kỳ máy), hệ thống sẽ khởi động lại.

- Các chân nguồn trên chân 40 và20 VCC = +5V, VSS nối đất.

Trang 29

11 XTAL1 và XTAL2

XTAL1 và XTAL2 là ngõ vào và ngõ ra của mạch dao động trên chip

ở chân 18 và 19 Chúng thường được nối với một thạch anh ngoài và các tụ như hình để tạo xung clock Tần số thạch anh thông thường là

12 MHz

Chu kì máy (T M ) = 1 / (f OSC /12) = 12 / f OSC

Nếu tần số thạch anh là 12 MHz thì chu kì máy bằng 1 s

Trang 30

IV Cấu trúc của port I/O

Trang 31

1 Cấu trúc của port I/O

Sơ đồ mạch bên trong của các chân port I/O được vẽ đơn giản như sau:

Trang 32

1 Cấu trúc của port I/O

Việc ghi ra một chân port sẽ nạp dữ liệu từ bus nội vào chốt port Ngõ

ra của chốt được nối qua một cổng đảo đến cực G của FET và ngõ ra

của FET nối đến chân port Khi ghi mức 1 đến chốt port, ngõ ra cổng đảo sẽ là mức 0 làm FET tắt, ngõ ra chân port sẽ là mức 1 Ngược lại, khi ghi mức 0 đến chốt port sẽ làm FET dẫn nên ngõ ra chân port sẽ là mức 0 Các câu lệnh yêu cầu hoạt động đọc-sửa-ghi (ví dụ lệnh CPL P1.5), sẽ đọc ở chân chốt port để tránh hiểu nhầm mức điện áp ở chân

port do ảnh hưởng tải Các câu lệnh nhập một bit từ port (ví dụ MOV

C,P1.5) sẽ đọc chân port Trong trường hợp này, chốt port phải ở mức

1, nếu không thì FET sẽ dẫn và kéo ngõ ra xuống mức 0

Trang 33

1 Cấu trúc của port I/O

Khi reset hệ thống, tất cả các chốt port được cài bằng 1, vì

thế các chân port có thể được dùng như là các ngõ nhập ngay

mà không cần phải cài các chốt port nữa Tuy nhiên nếu một chốt port bị xoá (ví dụ lệnh CLR P1.5), và sau đó muốn nhập vào từ chân port thì bộ chốt phải được thiết lập lên mức 1

trước (ví dụ phải dùng lệnh SETB P1.5 trước).

Chú ý: điện trở kéo lên (pull up) không có ở port 0 (trừ khi port

này làm nhiệm vụ dồn kênh bus địa chỉ/dữ liệu) Do đó khi port

Trang 34

V Tổ chức bộ nhớ

Trang 35

1 Tổ chức bộ nhớ

- 8051 có không gian bộ nhớ riêng bên trong cho chương

trình (ROM) và dữ liệu (RAM).

- Có thể mở rộng đến 64K bộ nhớ chương trình ngoài và

64K bộ nhớ dữ liệu ngoài (tương ứng với 16 bit địa chỉ).

- Có 256 byte RAM nội ( địa chỉ 00H FFH):

+ 128 byte RAM nội địa chỉ 00H 7FH: là các bank (dãy) thanh ghi, vùng RAM định vị bit và vùng RAM đa

dụng.

+ 128 byte RAM nội địa chỉ 80H FFH: là các thanh

Trang 36

2 Các bank thanh ghi

- Địa chỉ từ 00H 1FH.

- Có 4 bank thanh ghi: 0, 1, 2, 3.

- Mỗi bank có 8 thanh ghi: từ R0 R7.

- Tại mỗi thời điểm, chỉ có một bank thanh ghi tích cực

(thông qua việc cài các bit chọn bank trong thanh ghi PSW) Bank thanh ghi tích cực mặc nhiên sau khi reset hệ thống là bank 0.

Trang 37

2 Các bank thanh ghi

Trang 38

3 Vùng RAM định vị bit

- Địa chỉ từ 20H 2FH.

- Gồm 128 bit được định địa chỉ từ 00H đến 7FH trong các byte địa chỉ từ 20H 2FH.

- Có thể truy xuất từng byte hay từng bit.

Ý tưởng truy xuất từng bit riêng rẽ bằng phần mềm là một đặc tính mạnh của các vi điều khiển, đặc biệt đối với các

ứng dụng điều khiển Các bit có thể được đặt, xóa, AND, OR… với một lệnh đơn

Trang 39

3 Vùng RAM định vị bit

Trang 40

4 Vùng RAM đa dụng

- Địa chỉ từ 30 7FH.

- Gồm 80 byte được định địa chỉ từ 30H 7FH, được sử dụng tùy mục đích của người dùng.

Trang 41

4 Vùng RAM đa dụng

Trang 42

VI Các thanh ghi chức năng đặc biệt (SFRs: Special Function Registers)

Trang 43

1 Thanh ghi tích lũy A (Accumulator)

- Còn kí hiệu là ACC (tương ứng với địa chỉ E0H), được định địa chỉ từng bit

-Thường là toán hạng đích trong các lệnh số học và logic, kết quả của

lệnh chứa trong thanh ghi A

A + Toán hạng nguồn = Kết quả

Ví dụ:

Trang 44

2 Thanh ghi trạng thái chương trình PSW (Program Status Word)

Địa chỉ là D0H, chứa các bit trạng thái như sau:

- Cờ nhớ CY (C) Có hai công dụng:

+ Được đặt bằng 1 nếu có một số nhớ sinh ra bởi phép cộng hoặc có một

số mượn bởi phép trừ Ví dụ, nếu thanh ghi tích luỹ chứa FFH, thì lệnh sau:

C = 1.

+ Là “thanh ghi tích lũy” 1 bit trong các lệnh logic thao tác trên bit Ví

dụ, lệnh sau sẽ AND bit 25H với cờ nhớ và đặt kết quả trở vào cờ nhớ:

ANL C, 25H

Trang 45

2 Thanh ghi trạng thái chương trình PSW (Program Status Word)

Trang 46

2 Thanh ghi trạng thái chương trình PSW (Program Status Word)

- Cờ F0 : là một bit cờ đa dụng, được dùng tùy mục đích của người sử dụng

- RS1 và RS0: Là các bit dùng để chọn bank thanh ghi tích cực Chúng được xóa sau khi reset hệ thống và được thay đổi bằng phần mềm nếu cần

Trang 47

2 Thanh ghi trạng thái chương trình PSW (Program Status Word)

Cờ tràn OV (Overflow): Được đặt bằng 1 sau một lệnh cộng hoặc lệnh trừ nếu có một phép toán bị tràn số học Khi các số có dấu được cộng hoặc trừ với nhau, phần mềm có thể kiểm tra bit này để xác định xem kết quả có nằm trong tầm xác định không Khi các số không dấu được cộng, bit OV có thể được bỏ qua Các kết quả lớn hơn +127 hoặc lớn hơn –128 sẽ đặt bit OV Ví dụ, phép cộng sau bị tràn và bit OV được đặt:

Kết quả là một số có dấu 8EH được xem như –114, không phải là kết

Trang 48

2 Thanh ghi trạng thái chương trình PSW (Program Status Word)

- Cờ kiểm tra chẵn lẻ P (Parity)

Được tự động tạo ra theo phương pháp kiểm tra chẵn đối với

dữ liệu trong thanh ghi A.

+ Kiểm tra chẵn (even parity): tổng số các bit 1 trong thanh ghi A và cờ P là chẵn.

+ Kiểm tra lẻ (odd parity): tổng số các bit 1 trong thanh ghi

A và cờ P là lẻ.

Trang 49

3 Thanh ghi B

- Địa chỉ là F0H, được định địa chỉ từng bit.

- Được dùng kèm với thanh ghi A trong các phép toán nhân, chia hay dùng như một thanh ghi đa dụng.

Trang 50

4 Thanh ghi B

- Địa chỉ là F0H, được định địa chỉ từng bit.

- Được dùng kèm với thanh ghi A trong các phép toán nhân, chia hay dùng như một thanh ghi đa dụng.

Trang 51

5 Con trỏ stack SP (Stack Pointer)

- Stack (ngăn xếp) là vùng nhớ trên RAM mà P dùng để lưu thông tin tạm thời

- Con trỏ stack SP có địa chỉ là 81H, là thanh ghi chứa địa chỉ của byte

dữ liệu hiện hành trên đỉnh của stack

- Các lệnh trên stack bao gồm các thao tác cất dữ liệu vào stack và lấy

dữ liệu ra khỏi vùng stack Lệnh cất dữ liệu vào stack (PUSH) sẽ làm tăng nội dung SP trước khi ghi dữ liệu và lệnh lấy dữ liệu ra khỏi vùng stack (POP) sẽ đọc dữ liệu và giảm nội dung SP Việc cất và lấy dữ

Trang 52

5 Con trỏ stack SP (Stack Pointer)

- Vùng stack của 8051 được giữ trong RAM nội Khi khởi động, nội dung mặc định của SP là 07H Do đó vùng stack là 08H 7FH Trong trường hợp này, bank thanh ghi 1 (có thể cả 2 và 3) sẽ không dùng được vì vùng RAM này đã được dùng làm stack Vì vậy, cần khởi động lại giá trị cho SP, thường lấy vùng nhớ phía trên từ 60H 7FH.

- Trước khi thực hiện một chương trình con hoặc chương trình phục vụ ngắt, địa chỉ của lệnh kế tiếp của lệnh hiện hành sẽ được tự động lưu vào vùng stack Sau khi thực thi xong và thoát khỏi chương trình con hoặc chương trình phục vụ

ngắt, địa chỉ của lệnh kế tiếp được lưu trong vùng stack sẽ được đưa vào PC và chương trình sẽ tiếp tục thực thi tại điểm mà nó đã ngưng trước đó Trong

trường hợp có nhiều chương trình con lồng nhau hoặc ngắt trong ngắt, quy tắc FILO sẽ đảm bảo cho việc thực thi chương trình theo đúng trình tự.

Trang 53

6 Thanh ghi con trỏ dữ liệu DPTR (Data Pointer)

- Là thanh ghi 16 bit, gồm hai thanh ghi 8 bit là DPL (byte thấp) và DPH (byte cao).

- Được dùng để xác định địa chỉ bộ nhớ ngoài (bộ nhớ

chương trình ngoài hay bộ nhớ dữ liệu ngoài).

Ngày đăng: 15/11/2023, 12:55

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