Vi điều khiển MCS-51: mô hình phần mềm, cấu trúc, lệnh. Bộ vi điều khiển MCS - 51. Sơ đồ khối, ALU, bộ nhớ dữ liệu Vi điều khiển MCS 51 có kiến ​​trúc kiểu

  • 06.11.2021

UDC 681,5, 681.325,5 (075,8)

BBK 32.973.202-018.2 i 73

A. N. ShcherbinaMáy tính, hệ thống và mạng. Bộ vi điều khiển và bộ vi xử lý trong hệ thống điều khiển: cheb. trợ cấp / A.N. Shcherbina, P.A. Nechaev- SPb .: Từ Bách khoa. Đại học, 2012.-226 tr.

Tương ứng với nội dung của tiêu chuẩn giáo dục nhà nước đối với các lĩnh vực đào tạo và các chuyên ngành trong lĩnh vực quản lý hệ thống kỹ thuật, điện và kỹ thuật điện và nội dung của chương trình giảng dạy mẫu mực cho môn học "Máy tính, hệ thống và mạng".

Các vấn đề cơ bản của tổ chức hợp lý của hệ thống vi xử lý được xem xét trên ví dụ về kiến ​​trúc cơ bản của họ vi điều khiển MCS-51 của Intel. Mô tả công nghệ lập trình vi điều khiển bằng ngôn ngữ Assembler và SI.

Nó có thể hữu ích cho sinh viên và giáo viên của các cơ sở kỹ thuật cao hơn, các chuyên gia về tự động hóa các quy trình công nghệ và thiết bị sản xuất, cũng như cho các kỹ sư thiết kế hệ thống vi xử lý.

Nó cũng phù hợp với nội dung của tiêu chuẩn giáo dục nhà nước về các ngành "Vi điều khiển và bộ vi xử lý trong hệ thống điều khiển" và "Thiết bị điện tử tự động hóa" đào tạo cử nhân, kỹ sư và thạc sĩ theo hướng 140400 "Kỹ thuật điện và kỹ thuật điện".

Tái bản theo quyết định của Hội đồng Biên tập và Xuất bản

Đại học Bách khoa Bang St.

© Shcherbina A. N., Nechaev P. A., 2012

© Bang Saint Petersburg

Đại học Bách khoa, 2012

ISBN 978-5-7422-3553-8


Giới thiệu .. 7

Chương 1. Kiến trúc của họ MCS51. mười

1.1 Đặc điểm chung 10

1.2 Sơ đồ khối 11



1.3 Mục đích của các kết luận của vi điều khiển 8051 15

1.4 Tổ chức bộ nhớ 17

1.4.1 Bộ nhớ chương trình (ROM) 18

1.4.2 Bộ nhớ dữ liệu (RAM) 19

1.4.3 Các thanh ghi của các chức năng đặc biệt. hai mươi

1.4.4 Thanh ghi cờ (PSW) 23

1.5 Thiết bị điều khiển và đồng bộ hóa 26

1.6 Bố trí các cổng I / O 27

1.6.1 Thông tin chung. 27

1.6.2 Các chức năng thay thế. 27

1.7. Bộ định thời / Bộ đếm cho vi điều khiển 8051. 28

1.7.1. Cấu trúc bộ đếm thời gian. 28

1.7.2 Các phương thức hoạt động của bộ đếm thời gian. ba mươi

1.8. Cổng nối tiếp 32

1.8.1. Cấu trúc cổng nối tiếp. 32

1.8.2. Điều khiển thu phát / thanh ghi trạng thái SCON .. 34

1.8.3. Thanh ghi điều khiển công suất PCON .. 36

1.9. Hệ thống ngắt 37

1.9.1. Cấu trúc hệ thống ngắt. 37

1.9.2 Thực hiện các thường trình ngắt. 40

Chương 2. Các tính năng của vi điều khiển 80C51GB .. 42

2.1 Tính năng 42

2.2 Cổng I / O P0-P5 43

2.2.1 Chức năng của các cổng đầu vào - đầu ra. 43

2.2.2 Ghi vào cổng .. 46

2.3 Các tính năng của hệ thống ngắt 8XC51GB .. 49

Bật / tắt ngắt. 50

Quản lý mức độ ưu tiên ngắt. 51

Ngắt bên ngoài. 54

2.3. Nút ADC 56

2.4. Cơ quan giám sát phần cứng 61

2.5. Đồng hồ phát hiện lỗi 63

2.6. Ma trận bộ đếm lập trình RSA 64

2.6.1. Cấu trúc PCA .. 64

2.6.2. Thanh ghi chế độ bộ đếm PCA (CMOD) 66

2.6.3. Thanh ghi điều khiển bộ đếm PCA (CON) 67

2.6.4. So sánh / cam kết các mô-đun. 68

2.7. Cổng nối tiếp mở rộng 76

2.8. Bộ hẹn giờ / Bộ đếm 79

Sơ đồ chân của nhóm vi điều khiển 8XC51GB .. 86

Chương 3. Lập trình MK 8051GB .. 89

3.1. Mô hình lập trình 89

3.2 Các kiểu dữ liệu 93

3.3 Các phương pháp xử lý dữ liệu 93

3.4 Hệ thống lệnh 95

3.4.1 Đặc điểm chung. 95

3.4.2 Các loại lệnh. 96

3.4.3 Các loại toán hạng. 97

3.4.4 Các lệnh truyền dữ liệu vi điều khiển. 98

3.4.5 Các lệnh cho các phép toán số học 8051.101

3.4.6 Các lệnh hoạt động logic của vi điều khiển 8051.104

3.4.7 Các lệnh cho hoạt động với các bit của vi điều khiển 8051.106

3.5 Chương trình gỡ lỗi 111

Chương 4. Ngôn ngữ lập trình ASM-51. 112

4.2 Viết chương trình văn bản 113

4.3 Bảng chữ cái của ngôn ngữ. 114

4.4 Định danh. 115

4,5 Các số 117

4.6 Chỉ thị 118

4.7 Thực hiện các chương trình con bằng ngôn ngữ ASM51 122

4.7.1 Cấu trúc của một thủ tục chương trình con trong ngôn ngữ ASM51. 122

4.7.2 Truyền tham số biến cho chương trình con. 123

4.7.3 Thực hiện các chức năng của chương trình con trong ngôn ngữ ASM51. 123

4.7.4 Thực hiện các quy trình xử lý ngắt trong ngôn ngữ ASM51. 124

4.8 Lập trình có cấu trúc trong hợp ngữ. 125

4.9 Các tính năng của việc phát các chương trình đa mô-đun. 126

4.10 Sử dụng các phân đoạn 128

4.10.1 Tách bộ nhớ MK thành các phân đoạn .. 128

4.10.2 Các phân đoạn bộ nhớ tuyệt đối. 129

4.10.2 Các phân đoạn bộ nhớ có thể định vị lại. 131

Chương 5. Ngôn ngữ lập trình С-51. 134

5.1 Đặc điểm chung của ngôn ngữ 134

5.3 Cấu trúc chương trình С-51 136

5.3. Các yếu tố của ngôn ngữ lập trình C-51 138

5.3.1. Ký hiệu .. 138

5.3.2. Đơn vị từ vựng, dấu phân cách và việc sử dụng dấu cách. 141

5.3.3 Định danh .. 142

5.3.4 Từ khóa. 143

5.3.5 Hằng số .. 143

5.4. Biểu thức trong toán tử ngôn ngữ 146

lập trình C-51 146

5.5. Ưu tiên cho Hoạt động 148

5.6. Các toán tử của ngôn ngữ lập trình C-51 149

5.6.1. Các toán tử khai báo. 150

5.6.2 Các toán tử thực thi .. 150

5.6.3 Toán tử gán. 151

5.6.4 Toán tử điều kiện. 151

5.6.5 Toán tử có cấu trúc (). 152

5.6.6 Toán tử vòng lặp cho. 152

5.6.7 Toán tử của vòng lặp với việc kiểm tra điều kiện cho đến phần thân của vòng lặp while. 153

5.6.8 Toán tử của vòng lặp với việc kiểm tra điều kiện sau phần thân của vòng lặp do while. 154

5.6.9 Ngắt người vận hành. 155

5.6.10 Người vận hành tiếp tục. 155

5.6.11 Người điều khiển công tắc lựa chọn. 155

5.6.12 Toán tử của goto nhánh không điều kiện. 157

5.6.13 Biểu thức toán tử. 158

5.6.14 Toán tử trả về từ chương trình con trả về. 158

5.6.15 Câu lệnh rỗng. 158

5,7. Khai báo biến trong ngôn ngữ lập trình C-51. 159

5.7.1. Sự định nghĩa biến. 159

5.7.3 Các kiểu dữ liệu số nguyên. 161

5.7.4 Số dấu chấm động. 162

5.7.5 Các biến của kiểu liệt kê. 162

5.7.6. Khai báo mảng trong ngôn ngữ lập trình C-51. 164

5.7.7. Cấu trúc .. 165

5.7.8. Kết hợp (hỗn hợp) 166

5,8. Sử dụng con trỏ trong C-51 167

5.8.1. Khai báo con trỏ. 167

5.8.2. Con trỏ không định kiểu. 168

5.8.3. Con trỏ phụ thuộc bộ nhớ. 169

5,9. Khai báo các loại biến mới 169

5.10. Khởi tạo dữ liệu 170

5.11. Sử dụng chương trình con trong ngôn ngữ lập trình C-51. 170

5.11.1. Định nghĩa các chương trình con. 171

5.11.2. Các tham số của chương trình con. 173

5.11.3. Khai báo trước các chương trình con. 174

5.11.4 Gọi các chương trình con .. 176

5.11.5 Lệnh gọi đệ quy của các chương trình con. 176

5.11.6 Các quy trình xử lý ngắt. 177

5.11.7 Phạm vi của các biến và chương trình con.178

5.12. Các chương trình đa phương thức 179

Chương 6. Chuẩn bị các chương trình trong môi trường phát triển tích hợp Keil μVision2. 182

6.1 Tạo dự án bằng ngôn ngữ ASM-51 182

6.2 Ví dụ về việc tạo một dự án trong C cho bộ điều khiển đào tạo trong môi trường phát triển tích hợp Keil μVision2 188

Chương 7. Mô tả bộ điều khiển đào tạo .. 199

7.1. Cấu trúc bộ điều khiển 199

7.2. Không gian địa chỉ 200

7.2.1. Cấp phát bộ nhớ. 200

7.2.2 Bộ nhớ ngoài. 201

7.2.3. Bộ nhớ dữ liệu trong. 202

7.3. Ánh xạ cổng I / O 202

7.4. Cổng nối tiếp ……………………………… ... 203

7,5. Làm việc với LCD 205

7.6. Bảng điều khiển ………………………………………………… 213

PHỤ LỤC P2 CẤU TRÚC CỦA BÁO CÁO LAO ĐỘNG …… ..217

Phụ lục A3 Các mã hướng dẫn máy. 217

Tài liệu tham khảo ... 224


Giới thiệu

Trong sự phát triển của các chuyên ngành liên quan đến tự động hóa các quy trình công nghệ và các ngành công nghiệp, việc nghiên cứu vi điều khiển là một trong những phần quan trọng.

Trên thế giới không ngừng phát triển và xuất hiện ngày càng nhiều vi điều khiển và vi xử lý 16 và 32-bit, nhưng thị phần lớn nhất của thị trường vi xử lý thế giới cho đến ngày nay vẫn thuộc về các thiết bị 8-bit. Theo tất cả các dự báo của các công ty phân tích trong tương lai gần, vị trí hàng đầu của vi điều khiển 8-bit trên thị trường thế giới sẽ vẫn được duy trì.

Hiện tại, trong số tất cả các bộ vi điều khiển 8-bit, họ MCS-51 chắc chắn dẫn đầu về số lượng chủng loại và số lượng các công ty sản xuất các sửa đổi của nó. Nó được đặt tên từ đại diện đầu tiên của họ này - vi điều khiển 8051. Một bộ thiết bị ngoại vi thành công, sự lựa chọn linh hoạt của bộ nhớ chương trình bên ngoài hoặc bên trong và giá cả hợp lý đã đảm bảo thành công của bộ vi điều khiển này trên thị trường.

Ưu điểm của dòng MCS-51:

· Kiến trúc, là tiêu chuẩn trên thực tế;

· Bề rộng phi thường của gia đình và sự đa dạng của các khả năng;

· Có sẵn các phiên bản bộ vi xử lý hiệu suất cao và mở rộng;

· Một số lượng đáng kể các phát triển phần mềm và phần cứng có sẵn miễn phí;

· Dễ dàng lập trình phần cứng, bao gồm cả lập trình trong mạch;

· Chi phí thấp và sẵn có của các chip cơ bản;

Sẵn có các phiên bản chuyên biệt của bộ điều khiển cho các điều kiện sử dụng đặc biệt

· Có sẵn các phiên bản bộ điều khiển với mức độ nhiễu điện từ thấp hơn;

· Được biết đến rộng rãi trong số các nhà phát triển thế hệ cũ, cả trên thế giới và các nước SNG;

· Hỗ trợ về kiến ​​trúc bởi các tổ chức giáo dục hàng đầu thế giới.

Và cuối cùng, ưu điểm chính: đã thành thạo con chip cơ bản của gia đình, bạn có thể dễ dàng bắt tay vào làm việc với những “quái vật” điện toán như vi điều khiển Cygnal, Dallas Semiconductor, Analog Devices, Texas Instruments.

Họ MCS-51 bao gồm nhiều loại vi mạch từ vi điều khiển đơn giản nhất đến phức tạp nhất. Cho đến nay, có hơn 200 sửa đổi của họ vi điều khiển 8051, được sản xuất bởi gần 20 công ty. Mỗi năm, ngày càng có nhiều biến thể của các đại diện của họ này xuất hiện.

Các hướng phát triển chính là:

· Tăng hiệu suất (tăng tần số xung nhịp và thiết kế lại kiến ​​trúc);

· Giảm điện áp cung cấp và tiêu thụ điện năng;

· Tăng dung lượng RAM và bộ nhớ FLASH trên chip với khả năng lập trình trong mạch;

· Đưa các thiết bị phức tạp như hệ thống điều khiển ổ đĩa, giao diện CAN và USB, v.v. vào ngoại vi vi điều khiển.

Các bộ vi điều khiển thuộc họ MCS-51 cho phép bạn thực hiện cả nhiệm vụ điều khiển cho các thiết bị khác nhau và thực hiện các nút riêng lẻ của một mạch tương tự. Tất cả các vi mạch của họ này hoạt động với cùng một tập lệnh. Hầu hết chúng đều được làm trong các trường hợp giống nhau với cùng một sơ đồ chân (đánh số các chân cho vỏ máy). Điều này cho phép sử dụng vi mạch từ các nhà sản xuất khác nhau cho thiết bị đã phát triển mà không làm thay đổi sơ đồ mạch của thiết bị và chương trình.

Các nhà sản xuất chính của các giống cây thuộc họ thứ 51 trên thế giới là Philips, Siemens, Intel, Atmel, Dallas, Temic, Oki, AMD, MHS, Gold Star, Winbond, Silicon Systems và một số hãng khác.

Đặc điểm của các bộ vi điều khiển tương tự thuộc họ MCS-51 (Intel 8XC51FA, 8XC51GB, 80C152) với khả năng mở rộng được trình bày trong Bảng. TRONG 1.

Bảng B.1

RAM ROM PCA ADC WDT T / C Sau khi sanh. Kênh truyền hình Đặc thù
Atmel: AT89C2051
- - - - UART Flash 2 Kb
AT89C4051 - - - - UART Flash 4Kb
AT89S4D12 128 nghìn - - - UART, SPI Flash 4Kb
Chất bán dẫn DALLAS: DS5000FP
- - - + UART Bộ tải Bootstrap
DS5001FP - - - + UART Bộ tải Bootstrap
DS8xC520 16 nghìn - - + 2xUART 2 DPTR
SIEMENS: C505C
16 nghìn - + + UART, CÓ THỂ 8 DPTR
C515C 64 nghìn - + + UART + SSC + CÓ THỂ 4 PWM, 8 DPTR
Philips: * 89C51RA +
- + - + UART 2 DPTR, 4 lv. ngắt, hết giờ, Flash 8K
P51XAG1x 8 nghìn - - + 2 UART
Intel: 8xC51RA
8 nghìn - + + UART 4 cấp độ IRQ, hết giờ
8XC196KC 64 nghìn 16 nghìn - + - UART 3 PWM
80C196KB 64 nghìn 8 nghìn - + - UART PWM

Chương 1. Kiến trúc của họ MCS51

Bộ vi điều khiển 8-bit MCS-51 8-bit đã trở nên rất phổ biến trong giới thiết kế hệ thống điều khiển vi xử lý do kiến ​​trúc được thiết kế tốt. Kiến trúc vi điều khiển là một tập hợp các tài nguyên phần cứng bên trong và bên ngoài có thể truy cập được và các hệ thống hướng dẫn. Kiến trúc của dòng MCS-51 phần lớn được xác định trước bởi mục đích của nó - việc xây dựng các thiết bị kỹ thuật số nhỏ gọn và giá rẻ. Các bộ vi điều khiển thực hiện tất cả các chức năng của một máy vi tính sử dụng một vi mạch duy nhất được gọi là máy tính một chip (OEVM).

Intel đã phát hành khoảng 50 mẫu dựa trên lõi hoạt động của vi điều khiển Intel 8051. Đồng thời, nhiều hãng khác như Atmel, Philips đã bắt đầu sản xuất vi điều khiển của riêng họ phát triển theo tiêu chuẩn MCS-51.

Đặc điểm chung

Các đặc điểm chính của gia đình:

· Khối xử lý trung tâm (CPU) 8-bit, tập trung vào việc điều khiển các thiết bị điều hành;

· CPU có một mạch tích hợp để nhân và chia số phần cứng 8-bit;

· Sự hiện diện trong tập lệnh của một số lượng lớn các hoạt động để làm việc với các bit có thể địa chỉ trực tiếp làm cho chúng ta có thể nói về một bộ xử lý để làm việc với dữ liệu bit (bộ xử lý boolean);

· Bộ nhớ chương trình bên trong (nằm trên chip) thuộc loại được che giấu hoặc được lập trình lại, đối với các tinh thể khác nhau có thể tích từ 4 đến 32 Kb, trong một số phiên bản, nó không có;

· Không ít hơn 128 byte RAM dữ liệu thường trú, được sử dụng để tổ chức, đăng ký ngân hàng, ngăn xếp và lưu trữ dữ liệu người dùng;

· Ít nhất 32 đường giao diện hai chiều (cổng), được cấu hình riêng cho đầu vào hoặc đầu ra của thông tin;

· Hai bộ đếm / bộ định thời đa chế độ 16 bit được sử dụng để đếm các sự kiện bên ngoài, sắp xếp thời gian trễ và đồng hồ cho cổng giao tiếp;

· Bộ thu phát không đồng bộ song công hai chiều (UART), được thiết kế để tổ chức các kênh liên lạc giữa vi điều khiển và các thiết bị bên ngoài với một loạt các tốc độ truyền dữ liệu. Có các công cụ để tích hợp phần cứng và phần mềm của vi điều khiển vào một hệ thống được kết nối;

· Hệ thống ngắt ưu tiên hai mức hỗ trợ ít nhất 5 vectơ ngắt từ 4 nguồn sự kiện bên trong và 2 nguồn bên ngoài;

· Tích hợp bộ tạo xung nhịp.

Sơ đồ cấu trúc

Sơ đồ khối của bộ điều khiển được thể hiện trong hình 1.1 và bao gồm các đơn vị chức năng chính sau: khối điều khiển, thiết bị logic số học, bộ đếm thời gian / bộ đếm, giao diện nối tiếp và bộ ngắt, bộ đếm chương trình, bộ nhớ dữ liệu và bộ nhớ chương trình. Trao đổi hai chiều được thực hiện bằng cách sử dụng đường cao tốc dữ liệu 8 bit nội bộ. Hầu hết tất cả các đại diện của họ MCS-51 được xây dựng theo sơ đồ này. Các vi mạch khác nhau thuộc họ này chỉ khác nhau ở các thanh ghi mục đích đặc biệt (bao gồm cả số lượng cổng).

Bộ điều khiển và định thời- được thiết kế để tạo ra các tín hiệu đồng bộ hóa và điều khiển đảm bảo sự phối hợp hoạt động chung của các đơn vị OEVM trong tất cả các chế độ hoạt động được phép của nó. Bộ phận điều khiển bao gồm:

một thiết bị để hình thành các khoảng thời gian;

I / O logic;

đăng ký các lệnh;

sổ đăng ký kiểm soát tiêu thụ điện;

bộ giải mã các lệnh, logic điều khiển máy tính.

Lúa gạo. 1.1. Sơ đồ khối của bộ điều khiển I8051.

Thiết bị định hình khe thời gian nhằm mục đích hình thành và phát hành các tín hiệu đồng bộ nội bộ của các pha, đồng hồ và chu kỳ. Số chu kỳ máy xác định khoảng thời gian thực hiện lệnh. Hầu hết tất cả các lệnh OEVM được thực hiện trong một hoặc hai chu kỳ máy, ngoại trừ các lệnh nhân và chia, thời lượng của chúng là bốn chu kỳ máy. Chúng ta hãy chỉ định tần số của bộ dao động chính bằng F g. Khoảng thời gian của chu kỳ máy là 12 / F g hoặc 12 chu kỳ của tín hiệu của bộ dao động chính. Logic đầu vào - đầu ra được thiết kế để nhận và phát tín hiệu cung cấp trao đổi thông tin với các thiết bị bên ngoài thông qua các cổng đầu vào / đầu ra P0-P3.

Đăng ký lệnh nhằm mục đích ghi và lưu trữ mã hoạt động 8 bit của lệnh đang được thực thi. Mã hoạt động, với sự trợ giúp của bộ giải mã lệnh và logic điều khiển máy tính, được chuyển đổi thành một chương trình vi mô để thực hiện lệnh.

Đăng ký kiểm soát tiêu thụ (PCON) cho phép bạn dừng vi điều khiển để giảm tiêu thụ điện năng và giảm mức độ nhiễu từ vi điều khiển. Có thể giảm thêm mức tiêu thụ điện năng và giảm tiếng ồn bằng cách dừng bộ dao động chính của bộ vi điều khiển. Điều này có thể đạt được bằng cách lật một chút trong PCON của Thanh ghi Kiểm soát Tiêu thụ. Đối với n-MOS (sê-ri 1816 hoặc vi mạch nước ngoài không có chữ "c" ở giữa), Thanh ghi điều khiển tiêu thụ PCON chỉ chứa một bit điều khiển tốc độ truyền cổng nối tiếp SMOD và không có bit điều khiển công suất.

Đơn vị logic số học (ALU) là một thiết bị tám bit song song thực hiện các phép toán số học và logic. ALU bao gồm:

thanh ghi tích lũy, thanh ghi giữ TMP1 và TMP2;

ROM của hằng số;

bộ cộng;

thanh ghi bổ sung (thanh ghi B);

pin (ACC);

thanh ghi trạng thái chương trình (PSW).

Đăng ký bộ tích lũy và thanh ghi giữ- các thanh ghi tám bit dùng để nhận và lưu trữ các toán hạng trong suốt thời gian hoạt động trên chúng. Các thanh ghi này không thể truy cập theo chương trình.

Hằng số ROM cung cấp việc tạo mã hiệu chỉnh để biểu diễn dữ liệu thập phân-nhị phân, mã mặt nạ cho các phép toán bit và mã hằng số.

Bộ cộng tám bit song song là một mạch kiểu tổ hợp với mang tuần tự, được thiết kế để thực hiện các phép tính số học cộng, trừ và các phép tính logic của phép cộng, nhân, bất bình đẳng và trùng.

Đăng ký B- một thanh ghi tám bit được sử dụng trong các phép toán nhân và chia. Đối với các hướng dẫn khác, nó có thể được xem như một sổ đăng ký siêu hoạt động bổ sung.

Ắc quy- một thanh ghi tám bit được thiết kế để nhận và lưu trữ kết quả thu được khi thực hiện các phép toán số học-lôgic hoặc các phép toán dịch chuyển

Giao diện nối tiếp và đơn vị ngắt (PIP) nhằm mục đích tổ chức đầu vào - đầu ra của các luồng thông tin tuần tự và tổ chức hệ thống ngắt chương trình. Khối bao gồm:

Bộ đệm PIP;

kiểm soát logic;

sổ đăng ký kiểm soát;

bộ đệm máy phát;

bộ đệm máy thu;

bộ thu phát cổng nối tiếp;

thanh ghi ưu tiên ngắt;

thanh ghi cho phép ngắt;

logic xử lý cờ ngắt và mạch tạo véc tơ.

Bộ đếm chương trìnhđược thiết kế để tạo thành địa chỉ 16 bit hiện tại của bộ nhớ chương trình trong và địa chỉ 8/16 bit của bộ nhớ chương trình ngoài. Bộ đếm lệnh bao gồm bộ đệm PC 16 bit, thanh ghi PC và mạch tăng (tăng nội dung lên 1).

Bộ nhớ dữ liệu (RAM) nhằm mục đích lưu trữ tạm thời thông tin được sử dụng trong quá trình thực hiện chương trình.

Cổng P0, P1, P2, P3 là các cổng đầu vào - đầu ra bán hai chiều và được thiết kế để đảm bảo trao đổi thông tin giữa máy tính và các thiết bị bên ngoài, tạo thành 32 đường đầu vào - đầu ra.

Đăng ký trạng thái chương trình (PSW) nhằm mục đích lưu trữ thông tin về trạng thái của ALU trong quá trình thực thi chương trình.

Bộ nhớ chương trình (EPROM)được dùng để lưu trữ các chương trình và là bộ nhớ chỉ đọc (ROM). Các microcircuits khác nhau sử dụng mặt nạ, có thể xóa được tia cực tím hoặc ROM FLASH.

Thanh ghi con trỏ dữ liệu (DPTR)được thiết kế để lưu trữ địa chỉ 16 bit của bộ nhớ dữ liệu ngoài.

Con trỏ ngăn xếp (SP) là một thanh ghi tám bit được thiết kế để tổ chức một vùng đặc biệt của bộ nhớ dữ liệu (ngăn xếp), trong đó bất kỳ ô nhớ nào cũng có thể được lưu trữ tạm thời.

1.3 Mục đích của các kết luận của vi điều khiển 8051(hình 1.2)

· U ss - điện thế của dây chung ("đất");

· U cc - điện áp nguồn chính +5 V;

· X1, X2 - dây dẫn để kết nối bộ cộng hưởng thạch anh;

RST - đầu vào thiết lập lại chung của vi điều khiển;

PSEN - quyền của bộ nhớ chương trình bên ngoài, chỉ được cấp khi truy cập ROM bên ngoài;

· ALE - nhấp nháy của địa chỉ bộ nhớ ngoài;

· ЕА - vô hiệu hóa bộ nhớ chương trình bên trong; mức 0 tại đầu vào này buộc vi điều khiển chỉ thực thi chương trình từ ROM bên ngoài; bỏ qua nội bộ (nếu sau này có sẵn);

Lúa gạo. 1.2. Gán chân 8051.

· P1 - cổng vào / ra tám chiều bán hướng tám bit, mỗi bit của cổng có thể được lập trình cho cả đầu vào và đầu ra của thông tin, bất kể trạng thái của các bit khác;

· P2 - một cổng bán hai chiều tám bit, tương tự như P1, các chân của cổng này được sử dụng để cấp thông tin địa chỉ khi truy cập chương trình bên ngoài hoặc bộ nhớ dữ liệu (nếu cổng này là định địa chỉ 16 bit). Ngoài ra, các chân của cổng được sử dụng trong quá trình lập trình để nhập các bit bậc cao của địa chỉ vào vi điều khiển;

РЗ - một cổng tám chiều bán chiều tám bit, tương tự như P1, các chân của cổng này có thể thực hiện một số chức năng thay thế được sử dụng khi vận hành bộ hẹn giờ, cổng đầu vào-đầu ra nối tiếp, bộ điều khiển ngắt, chương trình và dữ liệu bên ngoài kỉ niệm;

· P0 - cổng vào ra thông tin hai chiều tám bit được ghép kênh, thông qua cổng này tại các thời điểm khác nhau, byte thấp của địa chỉ và dữ liệu được xuất ra.

Tổ chức bộ nhớ

Toàn bộ dòng MCS-51 có kiến ​​trúc Harvard, nghĩa là, các không gian địa chỉ riêng biệt cho bộ nhớ chương trình và dữ liệu. Cấu trúc bộ nhớ được thể hiện trong Hình. 1.3.

Dung lượng bộ nhớ chương trình bên trong (thường trú) (ROM, EPROM hoặc OTP ROM) nằm trên chip, tùy thuộc vào loại vi mạch, có thể là 0 (không ROM), 4K (tinh thể cơ bản), 8K, 16K hoặc 32K. Nếu cần, người dùng có thể mở rộng bộ nhớ chương trình bằng cách cài đặt ROM bên ngoài. Quyền truy cập vào ROM bên trong hoặc bên ngoài được xác định bởi giá trị của tín hiệu tại chân EA (Truy cập bên ngoài):

EA = V cc (điện áp cung cấp) - quyền truy cập vào ROM bên trong;

EA = V ss (điện thế mặt đất) - truy cập vào ROM bên ngoài.

Đối với các tinh thể không có ROM (ROMless), chân EA phải được kết nối vĩnh viễn với V ss.

Lúa gạo. 1.3. Tổ chức bộ nhớ của họ MCS-51

Nhấp nháy đọc ROM bên ngoài - (Program Store Enable) được tạo ra khi truy cập bộ nhớ chương trình bên ngoài và không hoạt động trong quá trình truy cập ROM nằm trên chip. Khu vực của các địa chỉ thấp hơn của bộ nhớ chương trình được sử dụng bởi hệ thống ngắt. Kiến trúc của chip 8051 cơ sở cung cấp hỗ trợ cho năm nguồn ngắt:

· Hai ngắt bên ngoài;

· Hai ngắt từ bộ định thời;

· Ngắt từ cổng nối tiếp.

Trong bộ lễ phục. 1.4 hiển thị bản đồ của vùng dưới của bộ nhớ chương trình.

Lúa gạo. 1.4. Bản đồ bộ nhớ chương trình thấp hơn

Bộ nhớ chương trình (ROM)

Trong các vi điều khiển thuộc họ 8051, bộ nhớ chương trình và bộ nhớ dữ liệu là độc lập và không phụ thuộc vào các thiết bị khác nhau, được đánh địa chỉ bằng các lệnh và tín hiệu điều khiển khác nhau.

Bộ nhớ chương trình tích hợp nằm trên chip của vi điều khiển 8051 là 4 KB (trong họ lên đến 32). Khi truy cập bộ nhớ chương trình bên ngoài, tất cả các bộ vi điều khiển thuộc họ 8051 luôn sử dụng địa chỉ 16-bit, địa chỉ này cung cấp cho chúng quyền truy cập vào 64 KB ROM. Bộ vi điều khiển truy cập bộ nhớ chương trình khi đọc opcode và toán hạng (sử dụng bộ đếm lệnh PC), cũng như khi thực hiện các lệnh sao chép một byte từ bộ nhớ chương trình vào pin. Khi các lệnh sao chép dữ liệu được thực hiện, việc định địa chỉ của ô nhớ chương trình mà từ đó dữ liệu sẽ được đọc có thể được thực hiện bằng cách sử dụng cả bộ đếm PC và thanh ghi con trỏ dữ liệu DPTR hai byte đặc biệt.

Bộ nhớ dữ liệu (RAM)

Dung lượng bộ nhớ dữ liệu trên chip là 128 byte. Bộ nhớ dữ liệu ngoài có thể lên đến 64KB. 32 byte đầu tiên được tổ chức thành bốn ngân hàng thanh ghi đa năng, được chỉ định tương ứng là ngân hàng 0 - ngân hàng 3. Mỗi byte bao gồm tám thanh ghi R0 - R7. Bất cứ lúc nào, chương trình cũng có sẵn, với việc định địa chỉ thanh ghi, chỉ có một ngân hàng thanh ghi, số lượng thanh ghi này được chứa trong bit thứ ba và thứ tư của từ trạng thái của chương trình PSW.

Địa chỉ vùng bit bộ nhớ vi điều khiển 8051

Bảng 1.1

Byte địa chỉ (Hex) Địa chỉ từng bit
D7 D6 D5 D4 D3 D2 D1 D0
2F 7F 7E 7D 7C 7B 7A
2E
2D 6F 6E 6D 6C 6B 6A
2C
2B 5F 5E 5D 5C 5B 5A
2A
4F 4E 4D 4C 4B 4A
3F 3E 3D 3C 3B 3A
2F 2E 2D 2C 2B 2A
1F 1E 1D 1C 1B 1A
0F 0E 0D 0C 0B 0A
20h

Không gian địa chỉ còn lại có thể được nhà phát triển định cấu hình theo ý mình: nó có thể chứa các vùng dữ liệu người dùng, hệ thống và ngăn xếp. Các ô nhớ dữ liệu có thể được truy cập theo hai cách. Cách đầu tiên là định địa chỉ trực tiếp cho một ô nhớ. Trong trường hợp này, địa chỉ ô là toán hạng của lệnh tương ứng. Phương pháp thứ hai là định địa chỉ gián tiếp bằng cách sử dụng các thanh ghi con trỏ R0 hoặc R1: trước khi thực hiện lệnh tương ứng, địa chỉ của ô cần định địa chỉ phải được nhập vào một trong số chúng.

Để truy cập bộ nhớ dữ liệu ngoài, chỉ sử dụng địa chỉ gián tiếp bằng cách sử dụng thanh ghi R0 và R1 hoặc sử dụng thanh ghi con trỏ DPTR 16-bit.

Một phần của bộ nhớ dữ liệu là một vùng bit, trong đó, với sự trợ giúp của các lệnh bit đặc biệt, có thể giải quyết từng bit của ô nhớ. Địa chỉ của các bit có thể định địa chỉ trực tiếp cũng có thể được viết là (ByteAddress). (Bit). Sự tương ứng của hai phương pháp địa chỉ này có thể được xác định từ bảng. 1.1.

Hiện tại, các hãng khác nhau sản xuất nhiều sửa đổi và các thiết bị tương tự của họ này, của cả Intel và các nhà sản xuất khác, tần số xung nhịp và dung lượng bộ nhớ đã tăng gấp 10 lần và tiếp tục tăng. Tập hợp các mô-đun được tích hợp trong LSI cũng đang được bổ sung; một số lượng lớn các mô hình hiện đại được trang bị ADC tốc độ cao thường trú, có tới 12 và bây giờ có thể có nhiều chữ số hơn. Nhưng trung tâm của họ MCS51 là BIS 8051, 80C51, 8751, 87C51, 8031, 80C31 của Intel, các mẫu đầu tiên được phát hành vào năm 1980.

Các bộ vi điều khiển thuộc họ MCS51 được sản xuất theo công nghệ n-MOS chất lượng cao (series 8XXX, analogue - series 1816 ở Nga và Belarus) và công nghệ k-MOS (series 8ХСХХ, analogue - series 1830). Ký tự thứ hai theo sau số 8 có nghĩa là: 0 - không có EPROM trên chip, 7 - 4K EPROM có tính năng xóa bằng tia cực tím. Biểu tượng thứ ba: 3 - ROM sẽ được kết tinh, 5 - nếu không có EPROM, thì mặt nạ sẽ nằm trên chip.

Và vì vậy 80S51 - LSI theo công nghệ k-MOS với ROM được che trên chip, 8031 ​​- LSI n-MOS không có bộ nhớ chương trình (ROM, EPROM) trên chip, 8751 - LSI n-MOS với bộ nhớ thường trú (nằm trên một chip) EPROM có khả năng tẩy xóa bằng tia cực tím. Chúng tôi sẽ xem xét thêm LSI 8751, nếu cần thiết, bảo lưu về sự khác biệt trong các mạch khác, đưa ra các thông số đã được công bố cho LSI nối tiếp đầu tiên. Nếu cần, bạn có thể tìm thêm thông tin về tất cả các sửa đổi hiện đại trong sổ tay hướng dẫn và tài liệu kỹ thuật của công ty.

A. Đặc điểm chung và phân công pin

Họ MCS51 dựa trên năm sửa đổi của MK (có các đặc điểm cơ bản giống hệt nhau), sự khác biệt chính giữa chúng là việc triển khai bộ nhớ chương trình và mức tiêu thụ điện năng (xem Bảng 3.1). Microcontoller là tám bit, tức là có các lệnh xử lý các từ tám bit, có kiến ​​trúc Harvard, xung nhịp của các mẫu cơ bản thuộc họ này là 12 MHz.

Bảng 3.1.

Microcircuits

Bộ nhớ chương trình bên trong, byte

Loại bộ nhớ chương trình

Bộ nhớ dữ liệu trong, byte

Tần số đồng hồ, MHz

Dòng tiêu thụ, mA

MK 8051 và 80C51 chứa bộ nhớ chương trình ROM có khả năng lập trình mặt nạ với dung lượng 4096 byte trong quá trình sản xuất tinh thể và được thiết kế để sử dụng trong sản xuất hàng loạt. MK 8751 chứa EPROM có dung lượng 4096 byte với khả năng xóa bằng tia cực tím và thuận tiện ở giai đoạn phát triển hệ thống khi gỡ lỗi chương trình, cũng như khi sản xuất hàng loạt nhỏ hoặc khi tạo hệ thống yêu cầu tái tạo

điều chỉnh định kỳ.

MK 8031 ​​và 80C31 không chứa bộ nhớ chương trình tích hợp. Giống như các sửa đổi được mô tả trước đây, chúng có thể sử dụng lên đến 64 Kbyte bộ nhớ chương trình bên ngoài và có thể được sử dụng hiệu quả trong các hệ thống yêu cầu dung lượng lớn hơn nhiều (hơn 4 Kbyte trên một chip) bộ nhớ chương trình.

Mỗi MC của họ chứa bộ nhớ dữ liệu thường trú với dung lượng 128 byte với khả năng mở rộng tổng dung lượng dữ liệu RAM lên đến 64 Kbyte thông qua việc sử dụng IC RAM bên ngoài.

    bộ xử lý tám-bit trung tâm;

    Bộ nhớ chương trình 4 KB (chỉ 8751 và 87C51);

    bộ nhớ dữ liệu 128 byte;

    bốn cổng I / O lập trình tám bit;

    hai bộ định thời / bộ đếm đa chế độ 16 bit;

    hệ thống ngắt vector tự động với năm vector và hai mức ưu tiên do phần mềm điều khiển;

    một giao diện nối tiếp bao gồm một bộ thu phát song công đa năng có khả năng hoạt động ở bốn chế độ;

    bộ tạo xung nhịp.

Hệ thống lệnh MK chứa 111 lệnh cơ bản với định dạng 1, 2 hoặc 3 byte. Bộ vi điều khiển có:

    32 thanh ghi đa năng RON, được tổ chức thành bốn ngân hàng, mỗi thanh ghi tám thanh ghi có tên R0 ... R7, việc lựa chọn một hoặc một ngân hàng khác được xác định bởi chương trình bằng cách đặt các bit tương ứng trong thanh ghi trạng thái chương trình PSW;

    128 cờ điều khiển bằng phần mềm (bộ xử lý bit, xem bên dưới);

    một tập hợp các thanh ghi chức năng đặc biệt điều khiển các phần tử MK. Có các chế độ hoạt động sau của bộ vi điều khiển:

1). Đặt lại chung. 2). Hoạt động bình thường. 3). Chế độ năng lượng thấp và chế độ nhàn rỗi. 4). Chế độ lập trình EPROM thường trú, nếu có.

Ở đây chúng tôi sẽ tập trung vào hai chế độ hoạt động đầu tiên, mô tả chi tiết về thành phần và hoạt động của MC trong tất cả các chế độ được đưa ra trong Phụ lục A1.

RON và vùng xử lý bit nằm trong không gian địa chỉ của RAM thường trú có địa chỉ từ 0 đến 80h.

Trong vùng địa chỉ phía trên của bộ nhớ truy cập ngẫu nhiên thường trú có các thanh ghi của các chức năng đặc biệt (SFR, Thanh ghi chức năng đặc biệt). Mục đích của chúng được đưa ra trong bảng. 3.2.

Bảng 3.2.

Chỉ định

Tên

Ắc quy

Đăng ký B

Đăng ký trạng thái chương trình

Con trỏ ngăn xếp

Con trỏ dữ liệu. 2 byte:

Byte quan trọng ít nhất

Byte cao

Đăng ký ưu tiên ngắt

Đăng ký cho phép ngắt

Đăng ký chế độ hẹn giờ / bộ đếm

Thanh ghi điều khiển bộ định thời / bộ đếm

Bộ hẹn giờ / Bộ đếm 0. Byte cao

Hẹn giờ / Bộ đếm 0. Byte thấp

Bộ hẹn giờ / Bộ đếm 1. Byte cao

Hẹn giờ / Bộ đếm 1. Byte thấp

Kiểm soát cổng nối tiếp

Bộ đệm cổng nối tiếp

Quản lý tiêu dùng

* - đăng ký, thừa nhận bitwise xưng hô

Chúng ta hãy xem nhanh các chức năng của các thanh ghi SFR được trình bày trong Bảng 3.2.

Ắc quy NS - pin đăng ký. Các lệnh được thiết kế để hoạt động

bạn có pin, hãy sử dụng ký hiệu "A", ví dụ: MOV MỘT, P2 ... Ví dụ: ký hiệu "ACC" được sử dụng để định địa chỉ pin theo bit. Vì vậy, tên tượng trưng của bit thứ năm của bộ tích lũy khi sử dụng trình hợp dịch A5M51 sẽ như sau: ACC. 5..

Đăng ký V ... Được sử dụng trong các phép toán nhân và chia. Đối với các hướng dẫn khác, thanh ghi B có thể được coi là một thanh ghi siêu tác dụng bổ sung.

Đăng ký vận may chương trình PSW chứa thông tin về trạng thái của chương trình và được cài đặt tự động một phần dựa trên kết quả của hoạt động được thực hiện bởi người dùng. Việc chỉ định và mục đích của các bit thanh ghi lần lượt được đưa ra trong bảng 3.3 và 3.4.

Bảng 3.3.

Chỉ định

Bảng 3.4.

Chỉ định

Gán bit

Truy cập vào bit

Cờ mang. Các thay đổi trong quá trình thực hiện một loạt các lệnh số học và logic.

Phần cứng hoặc phần mềm

Cờ mang bổ sung. Phần cứng được thiết lập / xóa trong khi thực hiện các lệnh cộng hoặc trừ để biểu thị mang hoặc mượn ở bit 3 khi phần nhỏ nhất có ý nghĩa nhất trong kết quả (D0-D3) được tạo ra.

Phần cứng hoặc phần mềm

Cờ 0. Cờ do người dùng xác định.

Có lập trình

Có lập trình

Con trỏ ngân hàng sổ đăng ký công việc

Có lập trình

Ngân hàng 0 có địa chỉ (00Н - 07Н) Ngân hàng 1 có địa chỉ (08Н - 0FН) Ngân hàng 2 có địa chỉ (10Н - 17Н) Ngân hàng 3 có địa chỉ (18Н - 1FН)

Cờ tràn. Phần cứng được thiết lập hoặc xóa trong khi thực hiện các lệnh số học để chỉ ra điều kiện tràn

Phần cứng hoặc phần mềm

Dự phòng. Chứa trình kích hoạt đọc / ghi có thể được sử dụng

Bit chẵn lẻ. Phần cứng được xóa hoặc đặt trong mỗi chu kỳ lệnh để chỉ ra số bit pin chẵn hoặc lẻ ở trạng thái "1".

Phần cứng hoặc phần mềm

Con trỏ cây rơm SP - Thanh ghi 8-bit, nội dung của chúng được tăng lên trước khi ghi dữ liệu vào ngăn xếp khi thực hiện các lệnh PUSH và CALL. Khi đặt lại ban đầu, con trỏ ngăn xếp được đặt thành 07H và vùng ngăn xếp trong RAM dữ liệu bắt đầu từ 08H. Nếu cần, bằng cách xác định lại con trỏ ngăn xếp, vùng ngăn xếp có thể được đặt ở bất kỳ đâu trong RAM dữ liệu bên trong của bộ vi điều khiển.

Con trỏ dữ liệu DPTR bao gồm byte cao (DPH) và byte thấp

(DPL). Chứa địa chỉ 16 bit khi truy cập bộ nhớ ngoài. Có thể được sử dụng

được viết dưới dạng một thanh ghi 16 bit hoặc hai thanh ghi tám bit độc lập.

Port0 - PortZ. Các bit riêng biệt của các thanh ghi chức năng đặc biệt P0, P1, P2, P3 là các bit - “chốt” của các đầu ra của các cổng P0, P1, P2, P3.

Đệm thích hợp Hải cảng SBUF gồm hai thanh ghi riêng biệt: bộ đệm phát và bộ đệm thu. Khi dữ liệu được ghi vào SBUF, nó sẽ đi vào bộ đệm máy phát và việc ghi một byte vào SBUF sẽ tự động bắt đầu quá trình truyền của nó qua cổng nối tiếp. Khi dữ liệu được đọc từ SBUF, nó sẽ được lấy từ bộ đệm máy thu.

Đăng ký bộ đếm thời gian. Các cặp thanh ghi (TH0, TL0) và (TH1, TL1) dạng 16-

các thanh ghi đếm bit cho bộ đếm thời gian / bộ đếm 0 và bộ đếm thời gian / bộ đếm 1, tương ứng.

Đăng ký ban quản lý. Thanh ghi các chức năng đặc biệt IP, IE, TMOD, TCON, SCON và PCON chứa các bit điều khiển và các bit trạng thái của hệ thống ngắt,

mét / bộ đếm và cổng nối tiếp. Chúng sẽ được thảo luận chi tiết dưới đây.

RxD TxD INT0 INT1 T0 T1 WR

P1.2 P1.3 P1.4 P1.5 P1.6 P1.7

RST BQ2 BQ 1 EA

P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7

P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7

P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7

Khi hoạt động, MK cung cấp:

    thời gian tối thiểu để thực hiện các lệnh cộng là 1 μs;

    nhân và chia phần cứng với thời gian thực hiện tối thiểu là 4 μs.

MK cung cấp khả năng thiết lập tần số của bộ dao động bên trong bằng cách sử dụng thạch anh, chuỗi LC hoặc bộ dao động bên ngoài.

Hệ thống lệnh mở rộng cung cấp địa chỉ byte và bit, số học nhị phân và nhị phân-thập phân, chỉ báo tràn và chẵn lẻ / chẵn lẻ và khả năng triển khai bộ xử lý logic.

Tính năng đặc biệt và quan trọng nhất trong kiến ​​trúc của họ MCS51 là ALU có thể thao tác dữ liệu đơn bit ngoài việc thực hiện các thao tác trên kiểu dữ liệu 8 bit. Các bit có thể truy cập phần mềm riêng lẻ có thể được đặt, xóa hoặc thay thế bằng phần bổ sung của chúng, có thể được gửi, kiểm tra và

Hình 3.2. Kết luận bên ngoài

vi điều khiển

được sử dụng trong tính toán logic. Trong khi hỗ trợ các kiểu dữ liệu đơn giản (nếu có

xu hướng tăng độ dài từ) thoạt nhìn có vẻ như là một bước lùi, chất lượng này làm cho bộ vi điều khiển MCS51 đặc biệt thích hợp cho các ứng dụng sử dụng bộ điều khiển. Các thuật toán sau này, theo cách riêng của chúng, giả định sự hiện diện của các biến Boolean đầu vào và đầu ra, rất khó thực hiện bằng cách sử dụng bộ vi xử lý tiêu chuẩn. Tất cả các thuộc tính này được gọi chung là họ bộ xử lý Boolean MCS51. ALU mạnh mẽ này làm cho họ vi điều khiển MCS51 trở thành một tập lệnh phù hợp như nhau cho các ứng dụng điều khiển thời gian thực cũng như các thuật toán sử dụng nhiều dữ liệu.

Sơ đồ nguyên lý của bộ vi điều khiển được thể hiện trong Hình. 3.2. Trong phiên bản cơ bản, nó được đóng gói trong gói DIP 40 chân. Hãy xem xét mục đích của các kết luận.

Hãy bắt đầu với các chân nguồn «0 V " "5 V " , mà anh ta nhận được thức ăn chính. Dòng tiêu thụ được cho trong bảng. 3.1.

Đầu ra "RST" - thiết lập lại bộ vi điều khiển. Khi một mức cao đang hoạt động được áp dụng cho chân này, chế độ chung bán phá giá và MK thực hiện các hành động sau:

Đặt bộ đếm lệnh PC và tất cả các thanh ghi chức năng đặc biệt, ngoại trừ các chốt cổng P0-P3, con trỏ ngăn xếp SP và thanh ghi SBUF, thành 0;

    con trỏ ngăn xếp được đặt thành 07H;

    vô hiệu hóa tất cả các nguồn ngắt, bộ đếm thời gian và nối tiếp

    chọn RAM BANK 0, chuẩn bị các cổng P0-P3 để nhận dữ liệu và xác định

tách các chân ALE và PME làm đầu vào cho đồng bộ hóa bên ngoài;

      trong các thanh ghi chức năng đặc biệt PCON, IP và IE, các bit dự phòng được đặt thành giá trị ngẫu nhiên, và tất cả các bit khác được đặt thành 0;

      thanh ghi SBUF được đặt thành các giá trị ngẫu nhiên.

      đặt chốt-chốt của cổng P0-P3 thành "1".

Trạng thái của các thanh ghi vi điều khiển sau khi đặt lại được thể hiện trong Bảng 3.5.

Bảng 3.5.

Thông tin

Vô thời hạn

0ХХХ0000В cho k-MOS 0XXXXXXXB cho n-MOS

Chân RST cũng có một chức năng thay thế. Thông qua đó, nguồn dự phòng được cung cấp để giữ cho nội dung trong RAM của vi điều khiển không thay đổi khi tháo main ra.

kết luận BQ1, BQ2 được thiết kế để kết nối bộ cộng hưởng thạch anh, bộ cộng hưởng xác định tần số đồng hồ của MK.

Đầu ra EA` (E xternal MỘT đầm bên ngoài Địa chỉ) - được thiết kế để kích hoạt chế độ đọc mã điều khiển từ bộ nhớ chương trình bên ngoài, khi mức thấp hoạt động được áp dụng cho đầu ra này. Ghim có một mục đích thay thế (chức năng). Nó được cung cấp điện áp lập trình EPROM trong chế độ lập trình.

Đầu ra PME (P rogram NS emory E nable sự cho phép kỉ niệm chương trình) - được thiết kế để điều khiển chu kỳ đọc từ bộ nhớ chương trình và được MC tự động kích hoạt trong mỗi chu kỳ máy.

Đầu ra Ale (MỘT đầm L sức mạnh E nable sự cho phép nhỏ địa chỉ) nhấp nháy đầu ra của phần dưới của địa chỉ trên cổng P0. Đầu ra cũng được sử dụng khi lập trình EPROM, trong khi một xung nhấp nháy được cung cấp cho nó.

MK chứa bốn nhóm cổng: P0, P1, P2 và P3. Đây là phần còn lại của 40 chân của vi điều khiển. Các cổng này có thể phục vụ thông tin I / O theo từng bit, nhưng ngoài điều này, mỗi cổng đều có chuyên môn riêng. Sơ đồ chức năng tổng quát của cổng được thể hiện trong Hình. 3.3. Cổng chứa các công tắc FET đầu ra được kết nối với chân cắm, công tắc chức năng, chốt trên D-flip-flop và logic điều khiển. Chốt trên xe buýt nội bộ MK có thể được viết bằng một hoặc không. Thông tin này đi qua công tắc chức năng đến các phím đầu ra và chân MK. Ở trạng thái của một, cả hai bóng bán dẫn N và N1 đều tắt, nhưng N2 đang bật. Ở trạng thái 0, N mở

Xia, và N2 đóng. Tại thời điểm khi cổng thực hiện chức năng thay thế mà nó được chuyên dụng, trạng thái chân sẽ được giải phóng. Bộ vi điều khiển có thể đọc riêng trạng thái của chốt cổng và trạng thái đầu ra của nó, được thiết lập bởi một tín hiệu bên ngoài. Đối với điều này trong trình lắp ráp MK có các lệnh đặc biệt kích hoạt các dòng tương ứng. Để đọc trạng thái chân, chốt cổng tương ứng phải

được ghi lại trước

Từ nội bộ

Kiểm soát chốt

Bộ chọn chức năng

Vcc

Nhưng ngay cuối tuần

đơn vị. Khi dòng "chốt đọc" được kích hoạt ở đầu ra của ô "VÀ" mà dòng này được kết nối với

nó lốp MK D Q

Chốt ghi C Q

Đọc chốt

Chân cổng

trạng thái của chốt, được cung cấp cho bus MC bên trong, khi được kích hoạt

"Đọc đầu ra" - trạng thái của đầu ra bên ngoài của cổng.

Hải cảng P0 - cổng hai chiều đa năng

đầu ra đầu vào. Ngoài cổng này

chức năng tổ chức các bus địa chỉ bên ngoài và

Lúa gạo. 3.3. Sơ đồ chức năng của cổng vi điều khiển

dữ liệu để mở rộng bộ nhớ chương trình và bộ nhớ dữ liệu

vi điều khiển. Khi có quyền truy cập vào bộ nhớ chương trình bên ngoài hoặc lệnh truy cập bộ nhớ dữ liệu bên ngoài được thực thi, phần thứ tự thấp của địa chỉ (A0 ... A7) được đặt trên các chân cổng, phần này được định vị cao trên chân ALE . Sau đó, khi ghi vào bộ nhớ dữ liệu, thông tin được ghi từ bus bên trong của MK đến các chân của cổng P0. Ngược lại, trong các hoạt động đọc, thông tin từ các chân cổng đi đến bus nội bộ. Một đặc điểm của cổng P0 là không có bóng bán dẫn "pull-up" N2, cung cấp năng lượng cho đầu ra. Việc ghi vào chốt của cổng đơn vị chỉ đơn giản là đặt nó ở trạng thái trở kháng cao, điều này cần thiết cho hoạt động của bus dữ liệu bình thường. Nếu cần cấp nguồn cho bất kỳ thiết bị bên ngoài nào thông qua đầu ra, bạn nên cung cấp điện trở bên ngoài từ các mạch cấp nguồn cho đầu ra cổng.

Hải cảng Р1 - Cổng I / O hai chiều phổ biến không có chức năng thay thế.

Hải cảng P2 - một cổng I / O hai chiều đa năng, như một chức năng thay thế, thực hiện việc cấp phần cao cấp của địa chỉ (A8 ... A15) khi truy cập bộ nhớ ngoài.

Hải cảng P3 - cổng đầu vào-đầu ra hai chiều phổ quát, mỗi bit trong số đó cung cấp cho việc thực hiện các chức năng thay thế khác nhau. Trong trường hợp này, các chức năng thay thế chỉ được thực hiện nếu chúng được ghi vào chốt của cổng, nếu không, việc thực thi các chức năng thay thế sẽ bị chặn. Hãy liệt kê chúng riêng biệt cho từng bit:

P3.0 RxD (NS ead e NS ternal NS ate, đọc dữ liệu bên ngoài) - đầu vào của bộ thu phát nối tiếp tích hợp sẵn.

P3.1 TxD (NS ype e NS ternal NS ate, truyền dữ liệu bên ngoài) - đầu ra của bộ thu phát nối tiếp tích hợp sẵn.

P3.2 INT0 ' (NS lỗi, ngắt) - đầu vào ngắt bên ngoài 0.

P3.3 INT1 ' - đầu vào ngắt bên ngoài 1.

P3.4 C / T0 - đầu vào của bộ đếm thời gian / bộ đếm tích hợp bằng 0.

P3.5 C / T1 - đầu vào của bộ đếm thời gian / bộ đếm tích hợp sẵn đầu tiên.

P3.6 WR` (W nghi thức, ghi) - điều khiển đầu ra của chu trình ghi trong bộ nhớ dữ liệu.

P3.7 RD` (NS ead, read) - điều khiển đầu ra của chu kỳ đọc từ bộ nhớ dữ liệu.

Các chân của cổng P1, P2 và P3 có khả năng cung cấp dòng điện khoảng 0,2 mA trong một đơn vị và nhận dòng điện 3 mA ở mức 0, các chân của cổng P0 mạnh hơn và có khả năng cung cấp dòng điện khoảng 0,8 mA trên mỗi đơn vị và nhận dòng điện 5 mA ở mức không. Thông tin ngắn gọn về mục đích của các chân vi điều khiển được cho trong bảng 3.6.

Bảng 3.6.

Chỉ định

Gim lại công việc được giao

Cổng hai chiều 8 bit P1. Đầu vào địa chỉ A0-A7 khi kiểm tra ROM bên trong (EPROM)

vào lối ra

Tín hiệu thiết lập lại chung. Đầu ra của nguồn RAM dự phòng từ nguồn bên ngoài (cho 1816)

Cổng P3 8 bit hai chiều với các chức năng bổ sung

vào lối ra

Dữ liệu nối tiếp của máy thu - RxD

Dữ liệu nối tiếp máy phát - TxD

Ngõ vào ngắt bên ngoài 0- INT0`

Ngõ vào ngắt bên ngoài 1-INT1 '

Ngõ vào Timer / Counter 0: - T0

Ngõ vào Timer / Counter 1: - T1

Đầu ra tín hiệu nhấp nháy khi ghi vào bộ nhớ dữ liệu ngoài: - WR`

Đầu ra tín hiệu nhấp nháy khi đọc từ bộ nhớ dữ liệu bên ngoài - RD`

Dây dẫn để kết nối một bộ cộng hưởng thạch anh.

lối ra vào

Kết luận chung

Cổng P2 hai chiều 8 bit. Đầu ra địa chỉ A8-A15 ở chế độ hoạt động với bộ nhớ ngoài. Trong chế độ kiểm tra ROM nội bộ, các chân P2.0 - P2.6 được sử dụng như một đầu vào của địa chỉ A8-A14. Kết luận P2.7 - quyền đọc ROM.

vào lối ra

Độ phân giải bộ nhớ chương trình

Tín hiệu đầu ra của kích hoạt chốt địa chỉ. Khi lập trình tín hiệu EPROM: PROG

vào lối ra

Chặn công việc với bộ nhớ trong. Khi lập trình EPROM, tín hiệu UPR được đưa ra

vào lối ra

Cổng P0 hai chiều 8 bit. Bus địa chỉ / dữ liệu r hoạt động với bộ nhớ ngoài. Xuất dữ liệu D7-D0 ở chế độ kiểm tra ROM bên trong (EPROM).

vào lối ra

Công suất đầu ra từ nguồn điện áp + 5V

Cơ sở của bộ vi điều khiển (xem Hình 1) là Đơn vị số học-lôgic 8 bit (ALU). Bộ nhớ MK có kiến ​​trúc Harvard, tức là được phân chia hợp lý: thành bộ nhớ chương trình - PP (bên trong hoặc bên ngoài), được đánh địa chỉ bởi bộ đếm lệnh 16 bit (SC) và bộ nhớ dữ liệu - bên trong (Bộ nhớ dữ liệu thường trú - RPD) 128 (hoặc 256) byte, cũng như bên ngoài (Bên ngoài bộ nhớ dữ liệu - VPD) lên đến 64 KB. Về mặt vật lý, bộ nhớ chương trình được thực hiện trên ROM (chỉ đọc) và bộ nhớ dữ liệu - trên RAM (dữ liệu có thể được ghi và đọc).

Việc tiếp nhận và phân phối tín hiệu bên ngoài được thực hiện thông qua 4 cổng tám-bit P0..P3. Khi truy cập bộ nhớ chương trình bên ngoài (EPM) hoặc bộ nhớ dữ liệu (EPM), các cổng P0 và P2 được sử dụng như một bus dữ liệu / địa chỉ bên ngoài được ghép kênh. Các dòng cổng P3 cũng có thể thực hiện các chức năng thay thế (xem Bảng 1).

Thanh ghi DPTR 16-bit tạo thành địa chỉ VFD hoặc địa chỉ cơ sở của Bộ nhớ chương trình trong lệnh chuyển đổi Bộ tích lũy. Thanh ghi DPTR cũng có thể được sử dụng như hai thanh ghi 8 bit độc lập (DPL và DPH) để lưu trữ các toán hạng.

Thanh ghi lệnh nội bộ 8-bit (RK) nhận mã của lệnh đang được thực hiện; mã này được giải mã bởi mạch điều khiển, tạo ra các tín hiệu điều khiển (xem Hình 1).

Đề cập đến thanh ghi của các chức năng đặc biệt - RSF (SFR - trong Hình 1, chúng được khoanh tròn bằng một đường chấm) chỉ có thể thực hiện được với việc sử dụng định địa chỉ byte trực tiếp trong dải địa chỉ từ 128 (80h) trở lên.


Bộ nhớ dữ liệu thường trú (RPM) trong các mẫu đầu tiên của bộ vi điều khiển MCS-51 có dung lượng 128 byte. 32 byte thấp nhất của RPD cũng là thanh ghi có mục đích chung - RON (4 ngân hàng 8 RON). Chương trình có thể giải quyết một trong 8 RON của ngân hàng đang hoạt động. Việc lựa chọn ngân hàng RON hoạt động được thực hiện bằng cách lập trình hai bit trong thanh ghi trạng thái bộ xử lý - PSW.


Bảng 1 - Mục đích của các chân MCS-51

Ghim không. Chỉ định Cuộc hẹn
1..8 Р1 Cổng vào / ra 8-bit bán hướng hai chiều
9 RST

Đặt lại tín hiệu (mức hoạt động - cao);

Tín hiệu RST rõ ràng: PC và hầu hết các Thanh ghi Chức năng Đặc biệt (SFR), vô hiệu hóa tất cả các ngắt và hoạt động của bộ hẹn giờ; chọn Ngân hàng RONs 0; ghi "tất cả những cái" vào các cổng P0_P3, chuẩn bị chúng cho đầu vào; ghi mã 07H vào con trỏ ngăn xếp (SP);

10..17

Cổng vào / ra 8-bit bán định hướng; sau khi ghi vào danh mục tương ứng "1" - thực hiện các chức năng bổ sung (thay thế):

Đầu vào cổng nối tiếp - RxD;

Đầu ra cổng nối tiếp - TxD;

Ngõ vào ngắt ngoài 0 - ~ INT0;

Ngõ vào ngắt ngoài 1 - ~ INT1;

Ngõ vào bộ định thời / bộ đếm 0 - T0;

Ngõ vào bộ định thời / bộ đếm 1 - T1;

Đầu ra nhấp nháy. tín hiệu khi ghi vào VPD - ~ WR;

Đầu ra nhấp nháy. tín hiệu khi đọc từ VPD - ~ RD;

18, 19 X1, X2 Dây dẫn để kết nối bộ cộng hưởng thạch anh hoặc mạch LC;
20 GND Kết luận chung;
21..28 P2 Cổng vào / ra 8-bit bán định hướng; hoặc đầu ra của địa chỉ A trong chế độ hoạt động với bộ nhớ ngoài (VFP hoặc VFD);
29 PME Tốc độ đọc Bộ nhớ Chương trình Bên ngoài, chỉ được cấp khi truy cập ROM bên ngoài;
30 Ale Nhấp nháy địa chỉ bộ nhớ ngoài (VPP hoặc VPD);
31 EA Tắt RPP, mức "0" ở đầu vào này chuyển MC sang một lựa chọn lệnh chỉ từ đường băng ;
39..32 P0 Cổng vào / ra hai chiều 8 bit; khi truy cập Bộ nhớ ngoài, nó đưa ra địa chỉ A (được ghi vào thanh ghi bên ngoài bởi tín hiệu ALE), sau đó trao đổi đồng bộ một byte với tín hiệu ~ PME (đối với lệnh) hoặc ~ WR, ~ RD (đối với dữ liệu trong VFD ), khi truy cập Bộ nhớ ngoài, tất cả các đơn vị được ghi vào thanh ghi cổng P0, hủy thông tin được lưu trữ ở đó;
40 Ucc Cung cấp đầu ra điện áp

Chuyển đổi ngân hàng RON đơn giản hóa việc thực thi các chương trình con và xử lý ngắt, vì không cần phải đẩy nội dung của RON của chương trình chính lên ngăn xếp khi gọi một chương trình con (nó đủ để di chuyển đến một ngân hàng RON đang hoạt động khác trong chương trình con).

Có thể truy cập vào RPD bằng cách sử dụng địa chỉ byte gián tiếp hoặc trực tiếp (địa chỉ byte trực tiếp chỉ cho phép truy cập 128 byte đầu tiên của RPD).

Vùng RPD mở rộng (đối với vi điều khiển thuộc họ MCS-52 và các họ tiếp theo) từ địa chỉ 128 (80h) đến 255 (FFh) chỉ có thể được xác định bằng cách sử dụng phương pháp định địa chỉ gián tiếp.

Bảng 2 - Khối thanh ghi của các chức năng đặc biệt (s f r)

Mã mnemo Tên
0E0h * NS Ắc quy
0F0h * NS Thanh ghi bộ mở rộng pin
0D0h * PSW Từ trạng thái bộ xử lý
0B0h * P3 Cổng 3
0A0h * P2 Cổng 2
90 giờ * P1 Cổng 1
80 giờ * P0 Cổng 0
0B8h * IP Đăng ký ưu tiên ngắt
0A8h * I E Thanh ghi mặt nạ ngắt
99 giờ SBUF Bộ đệm thu phát nối tiếp
98 giờ * LỪA ĐẢO Kiểm soát cổng nối tiếp / Đăng ký trạng thái
89 giờ TMOD Đăng ký chế độ hẹn giờ / bộ đếm
88 giờ * TCON Bộ đếm thời gian / điều khiển bộ đếm / đăng ký trạng thái
8 giờ TH1 Bộ hẹn giờ 1 (byte cao)
8Bh TL1 Hẹn giờ 1 (Byte thấp)
8Ch TH0 Bộ hẹn giờ 0 (byte cao)
8Ah TL0 Bộ hẹn giờ 0 (byte thấp)
83 giờ DPH Thanh ghi con trỏ dữ liệu (DPTR) (Byte cao)
82 giờ DPL Thanh ghi con trỏ dữ liệu (DPTR) (Byte thấp)
81 giờ SP Thanh ghi con trỏ ngăn xếp
87 giờ PCON Đăng ký kiểm soát tiêu thụ điện năng

2. MÔ HÌNH PHẦN MỀM MCS - 51


CÁC LOẠI THÔNG DỤNG MCS - 51

Gần một nửa số lệnh được thực hiện trong 1 chu kỳ máy (MC). Với tần số dao động tinh thể là 12 MHz, thời gian thực hiện một lệnh như vậy là 1 μs. Phần còn lại của các lệnh được thực hiện trong 2 chu kỳ máy, tức là cho 2μs. Chỉ các lệnh nhân (MUL) và chia (DIV) được thực hiện trong 4 chu kỳ máy.

Trong một chu kỳ máy, có hai lệnh gọi đến Bộ nhớ chương trình (bên trong hoặc bên ngoài) để đọc hai byte lệnh hoặc một lần truy cập vào Bộ nhớ dữ liệu ngoài (EPM).

3. PHƯƠNG PHÁP (PHƯƠNG PHÁP) ĐỊA CHỈ MCS-51

1. ĐỊA CHỈ ĐĂNG KÝ - toán hạng 8 bit nằm trong RON của ngân hàng thanh ghi (hoạt động) đã chọn;

2 ĐỊA CHỈ TRỰC TIẾP (ký hiệu là - #) - toán hạng ở byte thứ hai (và đối với toán hạng 16 bit và ở byte thứ ba) của lệnh;

3 ĐỊA CHỈ ĐÚNG (ký hiệu là - @) - toán hạng nằm trong Bộ nhớ dữ liệu (RPD hoặc VPD), và địa chỉ của ô nhớ được chứa trong một trong các RON của định địa chỉ gián tiếp (R0 hoặc R1); trong các lệnh PUSH và POP, địa chỉ được chứa trong con trỏ ngăn xếp SP; thanh ghi DPTR có thể chứa địa chỉ IPT lên đến 64K;

4 ĐỊA CHỈ BYTE TRỰC TIẾP - (dir) - được sử dụng để truy cập các ô của RPD (địa chỉ 00h… 7Fh) và đến các thanh ghi của các chức năng đặc biệt SFR (địa chỉ 80h… 0FFh);

5 ĐỊA CHỈ BIT TRỰC TIẾP - (bit) - được sử dụng để chỉ 128 bit có thể định địa chỉ riêng biệt nằm trong các ô RPD tại địa chỉ 20H ... 2FH và tới các bit có thể định địa chỉ riêng biệt của các thanh ghi chức năng đặc biệt (xem Bảng 3 và mô hình chương trình);

6 ĐỊA CHỈ CHỈ SỐ ĐÚNG (ký hiệu là - @) - đơn giản hóa việc xem các bảng trong Bộ nhớ chương trình, địa chỉ PP được xác định bằng tổng của thanh ghi cơ sở (PC hoặc DPTR) và thanh ghi chỉ mục (Bộ tích lũy);

7 ĐỊA CHỈ TÁC ĐỘNG (LẮP VÀO) - mã lệnh chứa tham chiếu ngầm định (theo mặc định) đến một trong các toán hạng (thường xuyên nhất đối với Pin).

4. ĐỊNH DẠNG CÔNG TÁC CỦA NHÀ XỬ LÝ (PSW)

C - Cờ mang (CARY) hoặc mượn, cũng được dùng như một "Bộ tích lũy Boolean" trong các lệnh hoạt động trên các bit;

AC - cờ mang bổ trợ (bổ sung) - được đặt thành "1" nếu trong lệnh bổ sung (ADD, ADDC) có sự chuyển từ ngòi thấp hơn sang ngòi cao hơn (nghĩa là từ bit thứ 3 sang bit thứ 4);

F0 - cờ người dùng - đặt, xóa và kiểm tra theo chương trình;

RS1 RS0 ngân hàng Địa chỉ (dir)
0 0 0 00 giờ..07 giờ
0 1 1 08h..0Fh
1 0 2 10h..17h
1 1 3 18h..1Fh

RS1, RS0 - Chọn ngân hàng đăng ký:

OV - Cờ tràn số học; giá trị của nó được xác định bởi hoạt động "OR riêng biệt" của các tín hiệu của đầu vào và đầu ra mang bit quan trọng nhất của ALU; một giá trị duy nhất của cờ này chỉ ra rằng kết quả của một phép toán số học trong mã phần bù của hai số nằm ngoài phạm vi: –128 ... + 127; khi thực hiện phép chia, cờ OV bị xóa, và trong trường hợp phép chia cho 0, nó được đặt; khi nhân, cờ OV được đặt nếu kết quả lớn hơn 255 (0FFH);

Bit PSW - Dành riêng, chứa một flip-flop, có sẵn để viết hoặc đọc;

P - cờ chẵn lẻ - là phần bù của số bit đơn trong bộ tích lũy thành chẵn; được tạo thành bởi một mạch tổ hợp (phần mềm chỉ có sẵn bằng cách đọc).

Không có cờ "Z" trong vi điều khiển MCS-51. Nhưng trong hướng dẫn nhảy có điều kiện (JZ, JNZ), nội dung hiện tại (bằng không hoặc khác không) của Bộ tích lũy được kiểm tra bằng mạch tổ hợp.

Tất cả các lệnh chuyển và trao đổi toán hạng có thể được thực hiện thông qua Pin (xem Hình 3). Hơn nữa, việc truyền từ / sang Bộ nhớ ngoài (Bộ nhớ chương trình hoặc Bộ nhớ dữ liệu) chỉ có thể được thực hiện thông qua Pin.

Hầu hết các chuyển giao cũng có thể được thực hiện thông qua một byte địa chỉ trực tiếp (dir). Thậm chí còn có các chuyển tiếp dir-dir (xem Hình 3).

Việc chuyển thiếu từ RON sang RON có thể được thực hiện dưới dạng chuyển từ RON sang một dir byte có thể địa chỉ trực tiếp (có tính đến việc các RON nằm trong vùng ban đầu của Bộ nhớ Dữ liệu Thường trú, các ô trong đó có thể được đánh địa chỉ là dir).

Các lệnh trao đổi XCH cho phép chuyển các byte mà không phá hủy cả hai toán hạng.

Các lệnh số học chỉ được thực hiện trong Bộ tích lũy. Do đó, toán hạng đầu tiên trước tiên phải được đặt trong Bộ tích lũy và sau đó cộng hoặc trừ toán hạng thứ hai. Kết quả được đặt trong Pin.


Lệnh trừ SUBB chỉ được thực hiện với một lệnh mượn (tức là cờ Сary cũng được trừ khỏi kết quả). Do đó, để thực hiện lệnh trừ mà không cần vay mượn, trước tiên bạn phải thực hiện lệnh xóa cờ C (CLRC).

Hướng dẫn nhân toán hạng byte đơn - MULAB - đặt kết quả hai byte (16 bit): byte thấp - trong Pin, byte cao - trong thanh ghi B.

Kết quả của việc thực hiện lệnh chia các toán hạng byte đơn - DIVAB - được đặt: thương số - một Tích lũy, phần còn lại - vào thanh ghi B.

Lệnh số học INC thêm một vào toán hạng đã chọn. Lệnh số học DEC trừ một từ toán hạng đã chọn. Lệnh Decimal Accumulator Correction (DAA) giúp bạn thêm các số thập phân-nhị phân (số BCD) mà không cần chuyển đổi chúng sang định dạng thập lục phân (hex format). Các toán hạng ban đầu phải ở định dạng BCD, tức là mỗi tứ phân của một byte chỉ chứa các số từ 0 đến 9 (không được chứa các số thập lục phân: A, B, C, D, E, F). Do đó, một byte có thể chứa các số từ 00 đến 99 cho các số BCD được đóng gói hoặc các số từ 0 đến 9 cho các số BCD không được đóng gói.

DA A - lệnh sửa số thập phân thực hiện các hành động trên nội dung của Bộ tích lũy sau khi thêm số BCD trong bộ xử lý (các số được thêm vào theo luật số học thập lục phân) như sau (xem ví dụ):

· Nếu nội dung của ngòi thấp nhất của Bộ tích lũy lớn hơn 9 hoặc cờ mang phụ được đặt (AC = 1), thì 6 được thêm vào nội dung của Bộ tích lũy (tức là sáu chữ số còn thiếu ở định dạng hex);

· Nếu sau đó nội dung của ngòi cao của Bộ tích lũy lớn hơn 9 hoặc cờ C được thiết lập, thì số 6 được thêm vào ngòi cao của Bộ tích lũy.

Lệnh sửa số thập phân DA A không được áp dụng sau lệnh tăng (INC) vì lệnh tăng không ảnh hưởng (thay đổi) cờ C và AC.

Các lệnh logic:

Logic "VÀ" - ANL,

Lôgic "HOẶC" - ORL,

Lệnh logic "EXCLUSIVE OR" - XRL– được thực thi trong Accumulator (cũng như số học), nhưng có thể thực hiện các lệnh logic cũng trong byte địa chỉ trực tiếp (dir). Trong trường hợp này, toán hạng thứ hai có thể là:

Trong pin hoặc

Toán hạng ngay lập tức trong lệnh.

Các lệnh xoay (RR A, RL A) và lệnh xoay qua cờ CARY (RRC A, RLC A) dịch chuyển theo chu kỳ nội dung của Bộ tích lũy 1 bit. Các tham chiếu vùng nhớ bit chỉ được thực hiện thông qua cờ C.

Bộ Giáo dục Đại cương và Chuyên nghiệp của Liên bang Nga Đại học Kỹ thuật Nhà nước Novosibirsk V.N. Veprik, V.A. Afanasyev, A.I. Druzhinin, A.A. Zemskov, A.R. Isaev, O. V. Malyavko BỘ VI XỬ LÝ CỦA GIA ĐÌNH MCS-51 Giáo trình cho các môn học "Hệ thống vi xử lý" và "Thiết kế hệ thống vi xử lý" dành cho sinh viên năm cuối của Khoa Tự động hóa và Kỹ thuật Máy tính thuộc mọi hình thức giáo dục Novosibirsk 1997 V.N. Veprik, V.A. Afanasyev, A.I. Druzhinin, A.A. Zemskov, A.R. Isaev, O. V. Malyavko. Bộ vi điều khiển Họ MCS-51: Hướng dẫn. - Novosibirsk. Hướng dẫn này bao gồm mô tả chung về kiến ​​trúc, chức năng và tập lệnh của dòng vi điều khiển đơn chip MCS-51 (Bộ điều khiển nhúng) do INTEL sản xuất. Phần thứ hai của sách hướng dẫn cung cấp mô tả về bộ điều khiển vi xử lý giáo dục UMPK-51, được cung cấp cho sinh viên như một đối tượng nghiên cứu khi thực hiện một chu trình làm việc trong phòng thí nghiệm. Tài liệu của sổ tay hướng dẫn này có thể được sử dụng trong thiết kế các môn học và văn bằng, đồng thời cũng có thể hữu ích cho các kỹ sư mạch liên quan đến việc phát triển và vận hành thiết bị điện tử. Các tác giả bày tỏ lòng biết ơn sâu sắc tới AOZT "New Technologies" - nhà phân phối chính thức của INTEL đã cung cấp các tài liệu trên cơ sở thực hiện tác phẩm này. Bảng 15, hình 25, danh sách các chữ cái. 12 đầu sách Người phản biện: E.D. Baran, G.G. Matushkin. Công việc được chuẩn bị tại Khoa Khoa học Máy tính, Bang Novosibirsk © Đại học Kỹ thuật 2 GIỚI THIỆU. Họ MCS-51 gồm các bộ vi điều khiển 8 bit đơn chip xuất hiện trên thị trường thế giới vào đầu những năm 80. Các sửa đổi đầu tiên của tinh thể (khoảng 7) được thực hiện bằng công nghệ n-MOS (HMOS) chất lượng cao và là máy tính vi mạch đơn chip hoàn chỉnh về mặt chức năng của kiến ​​trúc Harvard, một trong những nguyên tắc chính của nó là sự phân tách hợp lý của địa chỉ. không gian của bộ nhớ chương trình và dữ liệu. Với sự phát triển của công nghệ bán dẫn, các phiên bản tiếp theo của vi mạch MCS-51 bắt đầu được sản xuất bằng công nghệ CMOS (CHMOS) tiên tiến hơn và công suất thấp hơn (ở chế độ hoạt động, mức tiêu thụ tinh thể được đưa đến 10-50 mA). Hệ thống lệnh MCS-51, tập trung vào việc thực hiện các thuật toán điều khiển kỹ thuật số khác nhau, trong khi vẫn duy trì một số điểm tương đồng bên ngoài với hệ thống lệnh của họ MCS-48 trước đó, đã được mở rộng về mặt chất lượng, những đổi mới cơ bản đã xuất hiện trong đó: hoạt động hướng bit và các trường bit có thể định địa chỉ trong bộ nhớ dữ liệu, giúp nói về việc triển khai bộ xử lý bit trên chip; Thực hiện được các lệnh nhân, chia, trừ; cải thiện công việc với ngăn xếp; nhóm lệnh chuyển điều khiển đã được mở rộng; Hệ thống lệnh bắt đầu trông đối xứng hơn, tức là ít phụ thuộc hơn vào việc truyền dữ liệu qua pin. Chức năng của các thiết bị ngoại vi trên bo mạch cũng đã được mở rộng với sự ra đời của: hai bộ định thời / bộ đếm 16 bit; cổng song công nối tiếp phần cứng; hệ thống ngắt hai cấp; bốn cổng I / O 8 bit. Những thay đổi cơ bản trong cấu trúc chu kỳ thời gian của bộ xử lý đã dẫn đến việc tăng tốc công việc với bộ nhớ ngoài của các chương trình và dữ liệu, cũng như phản ứng với các ngắt bên ngoài và bên trong. Tổng kích thước của không gian địa chỉ của chương trình bên ngoài và bộ nhớ dữ liệu đã tăng lên 128 KB. Các thanh ghi Bộ đếm chương trình và Con trỏ dữ liệu 16 bit cho phép truy cập trực tiếp vào toàn bộ dải địa chỉ, giúp các nhà phát triển có khả năng triển khai các thuật toán để xử lý nhanh các mảng dữ liệu lớn. Tất cả các nút có thể truy cập phần mềm của vi điều khiển được tập hợp lại với nhau trong một vùng đặc biệt của bộ nhớ dữ liệu (Thanh ghi chức năng đặc biệt), giúp bạn có thể truy cập chúng theo cách gần giống như các ô thông thường của RAM thường trú. Trong các sửa đổi sau này của các tinh thể, sự cải tiến này đã đi theo con đường tăng cường chức năng bổ sung trong khi vẫn duy trì khả năng tương thích phần mềm đầy đủ với các phiên bản trước đó. Các tính năng của các sửa đổi mới nhất của vi điều khiển MCS-51 là: thiết kế hoàn toàn tĩnh; Phiên bản pha lê 3 và 5 vôn; nhiều loại thiết bị ngoại vi tích hợp sẵn; tần số đồng hồ tối đa - 24 MHz; cho các nhóm tinh thể riêng lẻ - 33 MHz. Hiện tại, MCS-51 bao gồm khoảng 60 phiên bản tinh thể, ngoài ra, còn có và có sẵn tài liệu độc quyền chi tiết (tiếc là cho đến nay ít được dịch sang tiếng Nga). Để chuẩn bị phần mềm cho bộ vi điều khiển MCS-51, các ngôn ngữ "ASM-51", "C" được sử dụng chủ yếu, trong đó có một số trình biên dịch đã được chứng minh tốt, thư viện chương trình con tiêu chuẩn và trình giả lập phần mềm do nhiều nước ngoài sản xuất. và các doanh nghiệp trong nước. 3 Mặc dù đã có đủ "cổ xưa" của dòng họ (hơn 15 năm) và sự xuất hiện trên thị trường thế giới trong những năm gần đây của bộ vi điều khiển một chip có hiệu suất cao hơn và kiến ​​trúc cải tiến - MCS-51, MCS-251, MCS-96, Bộ điều khiển MCS-51 sẽ được sử dụng rộng rãi trong các hệ thống điều khiển nhúng tương đối đơn giản. 4 1. THIẾT KẾ HỆ THỐNG LINH KIỆN BẰNG INTEL VÀ THÀNH PHẦN CHỨC NĂNG CỦA GIA ĐÌNH MCS-51 Để đánh dấu vi mạch bằng INTEL, một hệ thống chỉ định của một số trường được sử dụng: 1 2 3 4 ХХ ХХХХХХХХХХХХХХХХ ХХХХХХ Trường đầu tiên chứa tiền tố nhiệt độ một chữ cái Ô tô:, phiên bản ô tô cho dải nhiệt độ mở rộng (-40 / + 125 C) M (Quân sự), phiên bản theo tiêu chuẩn quân sự (-55 / + 125 C) Q hoặc C (Thương mại), dải nhiệt độ "thương mại" (0 / + 70 C)) s (160 8) - một giờ đào tạo nhiệt động lực học; L hoặc E (Mở rộng), phạm vi nhiệt độ "mở rộng" (-40 / + 85 C) với (160 8) giờ đào tạo nhiệt năng động; Т (Mở rộng), phạm vi nhiệt độ "mở rộng" (-40 / + 85 С) mà không cần đào tạo nhiệt; I (Công nghiệp), thực hiện theo tiêu chuẩn công nghiệp. Trường thứ hai chứa tiền tố một hoặc hai chữ cái cho biết loại gói của vi mạch (Loại gói). Ngày nay có vài chục loại gói vi mạch khác nhau, do đó, để làm ví dụ, chúng tôi sẽ chỉ đưa ra một số ký hiệu: Mảng lưới pin gốm, (PGA); Gói nội tuyến kép gốm C, (CDIP); Gói K bằng gốm Quad Flatpack, (QFP); Gói KD Plastic Quad Flatpack, Pitch Fine, Die Down, (PQFP); Gói Quad Flatpack bằng nhựa KU, Pitch Fine, Die Up, (PQFP); N Nhà cung cấp chip có chì bằng nhựa, (PLCC); Gói nội tuyến kép bằng nhựa P, (PDIP); Mô-đun bộ nhớ không dây đơn trong dòng SM, (SIMM); Gói nội tuyến kép bằng nhựa U, Nhúng co, (PDIPS); Z Gói nội tuyến Zigzag, (ZIP). Trường thứ ba có thể chứa tối đa 15 ký tự số và chữ cái cho biết loại thiết bị cụ thể nằm trên chip. Trường thứ tư có thể bao gồm tối đa sáu ký tự số và chữ cái, phản ánh các tính năng và phiên bản khác nhau của vi mạch. Thông tin bổ sung về các loại gói và thiết kế của chúng có thể được tìm thấy trong sách: Số Đơn đặt hàng Đóng gói 240800. Đối với các bộ vi điều khiển được mô tả thuộc họ MCS-51, ký tự đầu tiên của trường thứ ba theo truyền thống (đối với Intel) bằng "số 8". Ký tự thứ hai của trường thứ ba thường chỉ ra loại ROM cài sẵn: ROM có mặt nạ của chương trình; pha lê không có ROM (cho các phiên bản sau của tinh thể); 1 ROM mặt nạ của các chương trình (Mã ROM tiêu chuẩn, Firmware); 3 mặt nạ ROM (cho các phiên bản pha lê sau này), (Mã ROM có thể tùy chỉnh); 7 UVROM hoặc ROM lập trình một lần (EPROM hoặc OTP ROM); 8 EEPROM (Flash - bộ nhớ trên chip) Ngoài ra, có thể có một chữ cái theo sau, cho biết các tính năng công nghệ sản xuất: không có chữ cái công nghệ HMOS, nguồn điện 5V; Với công nghệ CHMOS, nguồn cấp 5V; Công nghệ L CHMOS, nguồn điện 3V; 5 Các ký tự tiếp theo của trường thứ ba đối với vi điều khiển MCS-51 là các số (ví dụ: 31,32,51,54,58,152) và từ một đến bốn chữ cái, phản ánh các tính năng chức năng của tinh thể (ví dụ, kích thước ROM , chi tiết cụ thể của một nhóm tinh thể, bảo vệ tính khả dụng của hệ thống đối với bộ nhớ chương trình khỏi bị truy cập trái phép, khả năng sử dụng thuật toán lập trình nâng cao hơn "Quick Pulse" và những thứ tương tự). Trong tài liệu kỹ thuật gốc của Intel, tất cả vi điều khiển MCS-51 được sắp xếp theo nhóm ("Dòng sản phẩm"), mỗi nhóm hợp nhất các phiên bản tinh thể gần nhất về chức năng và thông số điện của chúng. Vì tên của các vi mạch của một nhóm hơi khác nhau, để chỉ định từng nhóm riêng lẻ, một biểu tượng tổng quát được sử dụng, được hình thành từ việc đánh dấu các vi mạch cụ thể, bằng cách thay thế các ký tự khác nhau bằng "X". Như vậy, có thể phân biệt các nhóm vi điều khiển sau đây. 1. Nhóm 8Х5Х (Dòng sản phẩm 8051 và Dòng sản phẩm 8052): 8031АН, 8051АН, 8751Н, 8051АНР, 8751Н-8, 8751ВН, 8032АН, 8052АН, 8752ВН. 2. Nhóm 8ХС51 (Dòng sản phẩm 80С51): 80С31ВН, 80С51ВН, 87С51. 3. Nhóm 8ХС5Х (Dòng sản phẩm 8ХС52 / 54/58): 80С32, 80С52, 87С52, 80С54, 87С54, 80С58, 87С58. 4. Nhóm 8XC51FX (Dòng sản phẩm 8XC51FA / FB / FC): 80C51FA, 83C51FA, 87C51FA, 83C51FB, 87C51FB, 83C51FC, 87C51FC. 5. Nhóm 8ХL5X (Dòng sản phẩm 8XL52 / 54/58): 80L52, 87L52, 80L54, 87L54, 80L58, 87L58. 6. Nhóm 8XL51FX (Dòng sản phẩm 8XL51FA / FB / FC): 80L51FA, 83L51FA, 87L51FA, 83L51FB, 87L51FB, 83L51FC, 87L51FC. 7. Nhóm 8XC51RX (Dòng sản phẩm 8XC51RA / RB / RC): 80C51RA, 83C51RA, 87C51RA, 83C51RB, 87C51RB, 83C51RC, 87C51RC. 8. Nhóm 8XC51GB (Dòng sản phẩm 8XC51GX): 80C51GB, 83C51GB, 87C51GB. 9. Nhóm 8XC152JX (Dòng sản phẩm 8XC152): 80C152JA, 83C152JA, 80C152JB, 80C152JC, 83C152JC, 80C152JD. 10. Nhóm 8XC51SL (Dòng sản phẩm 8XC51SL): 80C51SL-BG, 81C51SL-BG, 83C51SL-BG, 80C51-AH, 81C51SL-AH, 83C51SL-AH, 87C51SL-AH, 80C51SL-AL, 81C51SL-AL, 83C51 87C51SL-AL . Nhóm vi điều khiển đầu tiên bao gồm các mô hình cơ sở của họ, được sản xuất bằng công nghệ n-MOS và không được khuyến khích sử dụng trong các thiết kế mới, tất cả các nhóm khác được sản xuất bằng công nghệ CMOS hiện đại. Các vi mạch của nhóm thứ hai, thứ ba và thứ tư ngày nay là những đại diện cổ điển của họ MCS-51. Nhóm thứ năm và thứ sáu bao gồm các phiên bản tinh thể 3 volt (Điện áp thấp). Crystals thuộc nhóm thứ bảy được trang bị RAM mở rộng (Expanded RAM), dung lượng của nó là 512 byte. Vi mạch thuộc nhóm thứ tám, thứ chín và thứ mười là vi điều khiển dành riêng cho ứng dụng (Ứng dụng cụ thể). Nhiều ứng dụng hiện đại yêu cầu MCU hiệu suất cao sử dụng khả năng định địa chỉ nâng cao, cấu trúc thanh ghi, lượng lớn RAM bên trong và ngăn xếp, đồng thời hỗ trợ hiệu quả lập trình cấp cao. Các bộ vi điều khiển này bao gồm các bộ vi điều khiển Kiến trúc Mới MCS-5 và MCS-251, được Intel bắt đầu sản xuất vào năm 1995. Thành phần chức năng và các tính năng chính của vi điều khiển MCS-51 / MCS-251 được đưa ra trong phần phụ lục. 6 2. CÁC ĐẶC TRƯNG CƠ BẢN CỦA MÔ HÌNH CƠ BẢN CỦA GIA ĐÌNH CỦA VI MÔ MCS-51. Mô hình cơ sở của họ vi điều khiển MCS-51 và là cơ sở cho tất cả các sửa đổi tiếp theo là vi điều khiển I-8051. Các tính năng chính của nó như sau: CPU tám bit được tối ưu hóa cho các chức năng điều khiển; tích hợp bộ tạo xung nhịp; không gian địa chỉ của bộ nhớ chương trình - 64 K; không gian địa chỉ bộ nhớ dữ liệu - 64 K; bộ nhớ chương trình bên trong - 4K; bộ nhớ dữ liệu bên trong - 128 byte; các khả năng bổ sung để thực hiện các phép toán đại số Boolean (phép toán bit); 32 đường I / O hai chiều và địa chỉ riêng lẻ; 2 bộ định thời / bộ đếm đa chức năng 16 bit; bộ thu phát không đồng bộ song công; hệ thống ngắt vector với hai mức ưu tiên và sáu nguồn sự kiện. Sơ đồ khối của I-8051 được hiển thị trong Hình 1, việc phân bổ chân của vi mạch được hiển thị trong Hình 2. Ngắt ngoài Ngắt 128 byte T / C 0 Bộ đếm 4K Điều khiển ROM RAM T / C 1 đầu vào CPU BUS 4 I / O Nối tiếp Điều khiển OSC Cổng Cổng P0 P1 P2 P3 T D R D Địa chỉ / Dữ liệu Hình 1. Sơ đồ khối I-8051 Toàn bộ dòng MCS-51 có kiến ​​trúc Harvard, nghĩa là, các không gian địa chỉ riêng biệt cho bộ nhớ chương trình và dữ liệu. Tổ chức bộ nhớ được thể hiện trong Hình 3. Dung lượng bộ nhớ chương trình bên trong (thường trú) (ROM, EPROM hoặc OTP ROM) nằm trên chip, tùy thuộc vào loại vi mạch, có thể là 0 (không ROM), 4K (tinh thể cơ bản), 8K, 16K hoặc 32K. Nếu cần, người dùng có thể mở rộng bộ nhớ chương trình bằng cách cài đặt ROM bên ngoài. Quyền truy cập vào ROM bên trong hoặc bên ngoài được xác định bởi giá trị của tín hiệu tại chân EA (Truy cập bên ngoài): EA = Vcc (điện áp cung cấp) - quyền truy cập vào ROM bên trong; EA = Vss (điện thế mặt đất) - truy cập vào ROM bên ngoài. Đối với các tinh thể không có ROM (ROMless), chân EA phải được kết nối vĩnh viễn với Vss. Nhấp nháy đọc ROM bên ngoài - PS EN (Program Store Enable) được tạo ra khi truy cập bộ nhớ chương trình bên ngoài và không hoạt động khi truy cập ROM nằm trên chip. 7 Khu vực của các địa chỉ dưới của bộ nhớ chương trình được sử dụng bởi hệ thống ngắt, kiến ​​trúc của vi mạch 8051 cung cấp hỗ trợ cho năm nguồn ngắt: hai ngắt bên ngoài; hai ngắt từ bộ định thời; ngắt từ cổng nối tiếp. P1.0 1 40 Vcc P1.1 2 39 P0. 0 (AD0) P1.2 3 38 P0.1 (AD1) P1.3 4 37 P0.2 (AD2) P1.4 5 36 P0.3 (AD3) P1.5 6 35 P0.4 (AD4) P1. 6 7 34 P0.5 (AD5) P1.7 8 33 P0.6 (AD6) ĐẶT LẠI 9 32 P0.7 (AD7) (RD) P3.0 10 31 EA / Vpp (TD) P3.1 11 30 ALE / PROG (INT0) P3.2 12 29 PSEN (INT1) P3.3 13 28 P2.7 (A15) (T0) P3.4 14 27 P2.6 (A14) (T1) P3.5 15 26 P2.5 ( A13) (WR) P3.6 16 25 P2.4 (A12) (RD) P3.7 17 24 P2.3 (A11) XTAL2 18 23 P2.2 (A10) XTAL1 19 22 P2.1 (A9) Vss 20 21 P2.0 (A8) Hình 2. Gán chân của I-8051 Bộ nhớ chương trình (Đọc) Bộ nhớ dữ liệu (Đọc / Ghi) FFFFH ROM ngoài FFFFH Bộ nhớ ngoài @DPTR RD Bộ nhớ PSEN WR dữ liệu @PC MOVC EA = 0 Bộ nhớ trong @DPTR data @PC Ngoài FFH bên trong phía trên 128 SFR MOVX ROM ROM 80H EA = 0 0000H EA = 1 thấp hơn 128 00H 0000H PSEN Hình 3. Tổ chức bộ nhớ gia đình MCS-51 8 Hình 4 cho thấy bản đồ của vùng bộ nhớ chương trình thấp hơn. ROM Bộ nhớ chương trình 0033H 002BH Cổng nối tiếp 0023H Bộ định thời vectơ1 001BH ngắt EINT1 0013H Bộ định thời0 000BH EINT0 0003H Địa chỉ bắt đầu 0000H (Đặt lại) Hình 4. Bộ nhớ chương trình Địa chỉ của các vectơ ngắt được đặt cách nhau 8 byte: - 0003H ngắt ngoài 0 (Ngắt ngoài 0) - chân IN T 0; - 000BH ngắt từ bộ định thời 0 (bởi cờ báo tràn bộ định thời - T F 0); - 0013H ngắt ngoài 1 - chân IN T 1; - 001BH ngắt từ bộ định thời 1 (bởi cờ báo tràn bộ định thời - T F 1); - Ngắt 0023H từ cổng nối tiếp (Ngắt nối tiếp = Ngắt nhận hoặc Ngắt truyền); Vân vân. Bộ nhớ dữ liệu tách biệt với bộ nhớ chương trình. Có thể định địa chỉ RAM ngoài 64K trong khu vực này. Khi truy cập bộ nhớ dữ liệu ngoài, CPU của vi điều khiển tạo ra các tín hiệu đọc (R D) hoặc ghi (W R) tương ứng, tương tác với bộ nhớ dữ liệu bên trong được thực hiện ở cấp lệnh, trong khi các tín hiệu R D và W R không được tạo ra. Bộ nhớ chương trình bên ngoài và bộ nhớ dữ liệu ngoài có thể được kết hợp bằng cách AND các tín hiệu R D và PS EN để tạo ra một nhấp nháy bộ nhớ ngoài (chương trình / dữ liệu). Bộ nhớ dữ liệu bên trong 128 byte thấp hơn (128 byte thấp hơn) hiện diện trên tất cả các khuôn MCS-51 và được thể hiện trong Hình 5. 32 byte đầu tiên đại diện cho 4 ngân hàng (Register Bank) với 8 thanh ghi (R7 ... R0). Thanh ghi R0 và R1 trong bất kỳ ngân hàng nào có thể được sử dụng như thanh ghi địa chỉ gián tiếp. 16 byte theo sau các ngân hàng thanh ghi tạo thành một khối không gian định địa chỉ bit. Tập lệnh MCS-51 chứa nhiều phép toán bit khác nhau và 128 bit trong khối này có thể định địa chỉ trực tiếp và các địa chỉ nằm trong khoảng từ 00H đến 7FH. Tất cả các byte trong một nửa 128 byte phía dưới của bộ nhớ có thể được định địa chỉ trực tiếp hoặc gián tiếp. Một nửa 128 byte trên của bộ nhớ RAM (128 trên) không có trong chip I-8051, nhưng nó có sẵn trong các phiên bản tinh thể với 256 byte RAM. Trong trường hợp này, khu vực "Thượng 128" chỉ có sẵn để định địa chỉ gián tiếp. Khu vực SFR (Thanh ghi chức năng đặc biệt) chỉ có sẵn với địa chỉ trực tiếp. Sự sắp xếp của các thanh ghi chức năng đặc biệt trong không gian SFR được thể hiện trong Hình 6. Chúng bao gồm thanh ghi cổng, bộ định thời, điều khiển ngoại vi, v.v. 9 7FH Vùng RAM có thể định địa chỉ theo byte 30H (trực tiếp, gián tiếp) 2FH 7FH 7EH 7DH 7CH 7BH 7AH 79H 78H 2EH 77H 76H 75H 74H 73H 72H 71H 70H Vùng RAM định địa chỉ theo byte (trực tiếp) 21H 0FH 0EH 0DH 0CH 0BH 20AH 09H 08H 06H 04H 03H 02H 01H 00H 1FH RB3 18H 17H RB2 10H 0FH RB1 08H 07H SP sau khi ĐẶT LẠI 00H RB0 (R7 + R0) Hình 5. 128 byte RAM bên trong dưới cùng. định địa chỉ bitwise 8 byte F8H FFH F0H B F7H E8H EFH E0H ACC E7H D8H DFH D0H PSW D7H C8H CFH C0H C7H B8H IP BFH B0H P3 B7H A8H IE AFH A0H P2 A7 N 98H SCONH SBUF P 9F TH1 80H SCONH SBUF P 9F TH1 80 8 1/9 2 / A 3 / B 4 / C 5 / D 6 / E 7 / F Hình 6. Vị trí của các thanh ghi chức năng đặc biệt trong không gian SFR. Đối với 16 địa chỉ trong không gian SFR, cả địa chỉ byte và bit đều có thể thực hiện được. Đối với thanh ghi định địa chỉ bit, địa chỉ thập lục phân kết thúc bằng "0H" hoặc "8H". Địa chỉ bit trong vùng này nằm trong khoảng từ 80H đến FFH. Toàn bộ chuỗi tinh thể thuộc họ MCS-51 có một bộ SFR cơ bản, như trong vi mạch I-8051, nằm ở cùng các địa chỉ. Tuy nhiên, trong các tinh thể, là sự phát triển thêm của họ trong vùng SFR, các thanh ghi mới được thêm vào để mở rộng 10

Hệ thống lệnh OMEVM cung cấp khả năng xử lý dữ liệu tuyệt vời, cung cấp khả năng thực hiện các phép toán logic, số học, cũng như điều khiển thời gian thực. Xử lý dữ liệu theo chiều bit, tetrad (4 bit), byte (8 bit) và 16 bit được thực hiện.

Họ LSI MCS-51 - 8-bit ОМЭВМ: ROM, RAM, thanh ghi mục đích đặc biệt, ALU và các bus bên ngoài có tổ chức byte. Dữ liệu byte kép chỉ được sử dụng bởi Thanh ghi con trỏ (DPTR) và Bộ đếm lệnh (PC). Cần lưu ý rằng thanh ghi con trỏ dữ liệu có thể được sử dụng như một thanh ghi DPTR hai byte hoặc hai thanh ghi mục đích đặc biệt một byte DPH và DPL. Bộ đếm lệnh luôn được sử dụng như một thanh ghi hai byte.

Bộ lệnh OMEVM có 42 ký hiệu lệnh dễ nhớ để cụ thể hóa 33 chức năng của hệ thống này.

Cú pháp cho hầu hết các lệnh hợp ngữ bao gồm một hàm ghi nhớ, theo sau là các toán hạng chỉ ra các phương thức đánh địa chỉ và kiểu dữ liệu. Các kiểu dữ liệu hoặc chế độ địa chỉ khác nhau được xác định bởi các toán hạng đã đặt, không phải bởi những thay đổi trong ký hiệu ghi nhớ.

Hệ thống lệnh có thể được chia theo điều kiện thành năm nhóm:

Tồn tại các kiểu địa chỉ sau của toán hạng nguồn:

  • Định địa chỉ thanh ghi gián tiếp bằng tổng của thanh ghi cơ sở và chỉ mục

Bảng ký hiệu và ký hiệu được sử dụng trong hệ thống lệnh

Ký hiệu, ký hiệu Cuộc hẹn
MỘT Ắc quy
Rn Sổ đăng ký của ngân hàng đăng ký hiện được chọn
NS Số lượng thanh ghi đã tải được chỉ định trong lệnh
trực tiếp Địa chỉ ô dữ liệu nội bộ 8 bit có thể định địa chỉ trực tiếp, có thể là ô RAM dữ liệu nội bộ (0-127) hoặc SFR (128-255)
@Rr Ô 8 bit dữ liệu nội bộ có thể định địa chỉ gián tiếp
dữ liệu8 Dữ liệu trực tiếp 8 bit được bao gồm trong CPC
dữ liệuH Các bit quan trọng nhất (15-8) của dữ liệu 16 bit trực tiếp
dataL Ít bit quan trọng nhất (7-0) của dữ liệu 16 bit trực tiếp
addr11 Địa chỉ đích 11 bit
addrL Các bit ít quan trọng nhất của địa chỉ đích
disp8 Byte offset có dấu 8 bit
chút Bit có thể định địa chỉ trực tiếp có địa chỉ chứa CPC nằm trong dữ liệu nội bộ RAM hoặc SFR
a15, a14 ... a0 Các bit địa chỉ đích
(NS) Nội dung của nguyên tố X
((NS)) Nội dung tại địa chỉ được lưu trữ trong phần tử X
(X) [M] Khử M của nguyên tố X

+
-
*

HOẶC
XOR
/ NS
Hoạt động:
bổ sung
phép trừ
phép nhân
phân công
phép nhân logic (phép toán AND)
phép cộng logic (phép toán HOẶC)
bổ sung mod 2 (độc quyền HOẶC)
nghịch đảo của phần tử X

Các kỹ năng ghi nhớ hàm được kết hợp duy nhất với sự kết hợp cụ thể của các phương pháp đánh địa chỉ và kiểu dữ liệu. Tổng cộng có 111 sự kết hợp như vậy trong hệ thống chỉ huy. Bảng cung cấp danh sách các lệnh, được sắp xếp theo thứ tự bảng chữ cái.

Kỹ thuật ghi nhớ Hàm số Cờ
Lệnh ACALL Lời gọi chương trình con tuyệt đối
Thêm vào AC, C, OV
Mang gấp AC, C, OV
Nhóm AJMP Sự chuyển đổi tuyệt đối
Logic "VÀ"
Logic "AND" cho các bit biến đổi NS
So sánh và nhảy nếu không bằng NS
CLR Một lệnh Đặt lại pin
Lệnh CLR Giải tỏa một chút C, bit
CPL Đội A Đảo ngược pin
Nhóm CPL Đảo ngược bit C, bit
Đội DA A Chỉnh sửa số thập phân tích lũy để bổ sung NS
Nhóm DEC<байт> Giảm dần
DIV AB Đội Phân công C, OV
Đội DJNZ<байт>, <смещение> Giảm dần và chuyển đổi nếu không phải là 0
Đội INC<байт> Tăng
Nhóm INC DPTR Tăng trưởng con trỏ dữ liệu
Nhóm JB , Nhảy nếu bit được đặt
Nhóm JBC , Nhảy nếu một bit được thiết lập và xóa bit đó
Nhóm JC Nhảy nếu mang được đặt
Lệnh JMP @ A + DPTR Chuyển tiếp gián tiếp
Nhóm JNB , Nhảy nếu bit không được đặt
Nhóm JNC Nhảy nếu mang chưa được đặt
Đội JNZ Nhảy nếu nội dung pin khác 0
Đội JZ Nhảy nếu nội dung của bộ tích lũy là 0
Lệnh LCALL Cuộc gọi dài
Đội LJMP Vượt qua dài
Gửi byte biến
Gửi dữ liệu bit NS
Lệnh MOV DPTR, # data16 Tải con trỏ dữ liệu với 16 bit không đổi
Lệnh MOVC A, @ A + ( ) Gửi byte từ bộ nhớ chương trình
Gửi dữ liệu đến bộ nhớ ngoài (từ bộ nhớ ngoài)