Giáo Trình Vi Điều Khiển 8051: Tổng Quan và Hướng Dẫn Lập Trình

Khám phá giáo trình vi điều khiển 8051, cung cấp kiến thức cơ bản và nâng cao về lập trình và ứng dụng vi điều khiển trong thực tế.

Trường đại học

Trường Đại Học Kỹ Thuật

Người đăng

Ẩn danh

Thể loại

Tài Liệu Hướng Dẫn

2023

58
19
0

Phí lưu trữ

30 Point

Mục lục chi tiết

1. Chương 1: Tổng quan về bộ vi xử lý và hệ vi xử lý

1.1. TỔNG QUAN VỀ BỘ VXL VÀ HỆ VXL

1.1.1. Bộ vi xử lý

1.1.1.1. Khái niệm và quá trình phát triển VXL
1.1.1.2. Phân loại bộ VXL
1.1.1.3. Cấu trúc chung của bộ VXL

1.1.2. Hệ vi xử lý

1.1.2.1. Cấu trúc phần cứng
1.1.2.2. Hoạt động chung

2. Chương 2: Vi điều khiển 8051

2.1. Tổng quan về 8051

2.2. Sơ đồ chân tín hiệu của 8051

2.3. Tập lệnh của 8051

2.4. Khung chương trình hợp ngữ cho 8051

3. Chương 3: Bộ đếm/ định thời và truyền thông nối tiếp trong 8051

4. Chương 4: Lập trình ngắt trong 8051

5. Chương 5: Bộ vi xử lý ARM

Tóm tắt

I. Tổng Quan Về Vi Điều Khiển 8051 Khám Phá Nền Tảng

Vi điều khiển 8051 là một trong những vi điều khiển phổ biến nhất trong lĩnh vực điện tử và lập trình nhúng. Được phát triển vào những năm 1980, 8051 đã trở thành nền tảng cho nhiều ứng dụng nhúng hiện đại. Với cấu trúc đơn giản và dễ lập trình, 8051 cho phép người dùng thực hiện các tác vụ phức tạp một cách hiệu quả. Việc hiểu rõ về cấu trúc và chức năng của 8051 là rất quan trọng cho những ai muốn phát triển ứng dụng nhúng.

1.1. 8051 Cấu Trúc Và Chức Năng Cơ Bản

Vi điều khiển 8051 có cấu trúc 8 bit với 4KB ROM và 128 byte RAM. Nó bao gồm nhiều cổng vào/ra, bộ định thời và các ngắt, cho phép thực hiện nhiều tác vụ đồng thời. Cấu trúc này giúp 8051 trở thành lựa chọn lý tưởng cho các ứng dụng nhúng.

1.2. Lịch Sử Phát Triển Của Vi Điều Khiển 8051

Vi điều khiển 8051 được phát triển bởi Intel vào năm 1980. Kể từ đó, nó đã trải qua nhiều cải tiến và trở thành một trong những vi điều khiển được sử dụng rộng rãi nhất trong ngành công nghiệp điện tử. Sự phổ biến của 8051 đến từ tính linh hoạt và khả năng lập trình dễ dàng.

II. Vấn Đề Thách Thức Khi Lập Trình Vi Điều Khiển 8051

Mặc dù vi điều khiển 8051 rất phổ biến, nhưng việc lập trình và sử dụng nó cũng gặp phải nhiều thách thức. Các lập trình viên thường phải đối mặt với các vấn đề như quản lý bộ nhớ, tối ưu hóa mã lệnh và xử lý ngắt. Những thách thức này có thể ảnh hưởng đến hiệu suất của ứng dụng nhúng.

2.1. Quản Lý Bộ Nhớ Trong 8051

Vi điều khiển 8051 có không gian bộ nhớ hạn chế, điều này yêu cầu lập trình viên phải tối ưu hóa mã lệnh để sử dụng hiệu quả bộ nhớ. Việc quản lý bộ nhớ không chỉ ảnh hưởng đến hiệu suất mà còn đến khả năng mở rộng của ứng dụng.

2.2. Xử Lý Ngắt Trong 8051

Xử lý ngắt là một trong những thách thức lớn khi lập trình vi điều khiển 8051. Việc thiết lập và quản lý các ngắt đúng cách là rất quan trọng để đảm bảo ứng dụng hoạt động mượt mà và hiệu quả.

III. Phương Pháp Lập Trình Vi Điều Khiển 8051 Hiệu Quả

Để lập trình vi điều khiển 8051 một cách hiệu quả, cần áp dụng một số phương pháp và kỹ thuật nhất định. Những phương pháp này không chỉ giúp tối ưu hóa mã lệnh mà còn cải thiện hiệu suất của ứng dụng nhúng.

3.1. Sử Dụng Ngôn Ngữ Lập Trình Assembly Cho 8051

Ngôn ngữ lập trình Assembly cho 8051 cho phép lập trình viên kiểm soát tốt hơn các tài nguyên của vi điều khiển. Việc sử dụng Assembly giúp tối ưu hóa mã lệnh và giảm thiểu kích thước chương trình.

3.2. Tối Ưu Hóa Mã Lệnh Trong 8051

Tối ưu hóa mã lệnh là một trong những yếu tố quan trọng để cải thiện hiệu suất của ứng dụng. Việc sử dụng các lệnh hiệu quả và giảm thiểu số lượng lệnh cần thiết sẽ giúp tiết kiệm bộ nhớ và thời gian xử lý.

IV. Ứng Dụng Thực Tiễn Của Vi Điều Khiển 8051 Trong Ngành Công Nghiệp

Vi điều khiển 8051 được ứng dụng rộng rãi trong nhiều lĩnh vực khác nhau, từ tự động hóa công nghiệp đến thiết bị tiêu dùng. Những ứng dụng này không chỉ giúp cải thiện hiệu suất mà còn nâng cao tính năng của sản phẩm.

4.1. Ứng Dụng Trong Tự Động Hóa Công Nghiệp

Vi điều khiển 8051 được sử dụng trong các hệ thống tự động hóa công nghiệp để điều khiển máy móc và thiết bị. Sự linh hoạt và khả năng lập trình của 8051 giúp tối ưu hóa quy trình sản xuất.

4.2. Ứng Dụng Trong Thiết Bị Tiêu Dùng

Nhiều thiết bị tiêu dùng như điều khiển từ xa, máy giặt và thiết bị gia dụng khác sử dụng vi điều khiển 8051. Điều này cho thấy tính ứng dụng cao và khả năng tích hợp của 8051 trong các sản phẩm hàng ngày.

V. Kết Luận Tương Lai Của Vi Điều Khiển 8051

Vi điều khiển 8051 vẫn giữ vị trí quan trọng trong ngành công nghiệp điện tử và lập trình nhúng. Với sự phát triển không ngừng của công nghệ, 8051 sẽ tiếp tục được cải tiến và ứng dụng trong nhiều lĩnh vực mới.

5.1. Xu Hướng Phát Triển Vi Điều Khiển 8051

Sự phát triển của công nghệ vi điều khiển sẽ dẫn đến những cải tiến trong thiết kế và tính năng của 8051. Các phiên bản mới sẽ tích hợp nhiều tính năng hơn, đáp ứng nhu cầu ngày càng cao của thị trường.

5.2. Tương Lai Của Lập Trình Vi Điều Khiển

Lập trình vi điều khiển sẽ tiếp tục phát triển với sự xuất hiện của các ngôn ngữ lập trình mới và công cụ hỗ trợ. Điều này sẽ giúp lập trình viên dễ dàng hơn trong việc phát triển ứng dụng cho vi điều khiển 8051.

27/07/2025

Trích đoạn nội dung tài liệu

Chương 1. TỔNG QUAN VỀ BỘ VXL VÀ HỆ VXL 1. Bộ vi xử lý 1. Khái niệm và quá trình phát triển VXL 1.

Phân loại bộ VXL 1. Cấu trúc chung của bộ VXL 1. Hệ vi xử lý 1. Cấu trúc phần cứng 1.

Hoạt động chung 1. BỘ VI XỬ LÝ 1. Khái niệm và quá trình phát triển. ❖ Khái niệm – Là một vi mạch logic chế tạo theo công nghệ LSI (Large scale integrated) cho đến VLSI (very large scale integrated) – Hoạt động dưới sự điều khiển của chương trình đặt trong bộ nhớ.

– Bộ VXL là hạt nhân của hệ VXL, nắm quyền kiểm soát toàn bộ các thành phần có trong hệ thống. – Thực hiện các phép toán số học, logic, đưa ra các quyết định và thông tin với thế giới bên ngoài qua các cổng vào/ra dưới sự điều khiển của chương trình cài đặt trong bộ nhớ. ❖ Lịch sử và quá trình phát triển 1. BỘ VI XỬ LÝ 1.

Phân loại bộ vi xử lý – VXLđanăng: bao gồm tất cả các phần tử tính toán trên một chip (trừ bộ nhớ và các cổng vào ra – 8086/8088, 6800) – Vi điều khiển: bao gồm cả bộ nhớ và các cổng vào ra 1. BỘ VI XỬ LÝ 1. Cấu trúc chung của bộ vi xử lý Giaỉ mã lệnh Khối điều khiển Mạch phối với Bus 1. HỆ VI XỬ LÝ 1.

Cấu trúc phần cứng 1. HỆ VI XỬ LÝ 1. Phần mềm ❖ Phần mềm là chương trình do người lập trình tạo ra để giải quyết nhiệm vụ bài toán đặt ra khi thiết kế hệ thống. Các chương trình này được đặt trong bộ nhớ ROM và RAM khi hệ thống hoạt động.

❖ Trong máy tính, phần mềm được phân lớp. ▪ Các lớp trong là các chương trình quản lý, điều khiển, các dữ liệu cố định. làm nhiệm vụ trung gian giữ người và máy được gọi là hệ điều hành (HĐH). Các chương trình của HĐH thường khá lớn và được nạp một phần trong ROM, phần còn lại được chứa trong bộ nhớ ngoài và được nạp vào RAM mỗi khi khởi động máy.

▪ Các chương trình do người lập trình viết ở lớp ngoài để giải quyết một bài toán nào đó, khi thực hiện sẽ được HĐH nạp vào trong RAM ở vị trí theo sự phân bố của HĐH. Khi phần cứng thực hiện xong chương trình đó thì bài toán được giải. HỆ VI XỬ LÝ 1. Hoạt động của hệ vi xử lý ❖ Quá trình nhận lệnh: CPU nhận lệnh từ bộ nhớ trung tâm.

Để nhận 1 byte lệnh, từ giá trị của thanh ghi địa chỉ lệnh, CPU tạo ra các bit địa chỉ đưa ra Bus địa chỉ xác định byte lệnh cần lấy vào. Sau đó CPU đưa các tín hiệu điều khiển đọc byte lệnh về CPU. Khi đó nội dung của các thanh ghi địa chỉ lệnh tự động tăng 1 đơn vị để chuẩn bị cho việc nhận byte lệnh tiếp theo. ❖ Quá trình giải mã lệnh: Byte đầu tiên của lệnh là byte mã lệnh.

CPU giải mã byte mã lệnh này để xác định chức năng của lệnh. Nếu lệnh không cần toán hạng chuyển sang chu kỳ thực hiện lệnh. Nếu lệnh cần toán hạng, CPU xác định toán hạng cho lệnh. ❖ Quá trình thực hiện lệnh.

– Nếu là lệnh dừng, thì CPU dừng quá trình làm việc cho tới khi Reset – Nếu không phải thì CPU thực hiện lệnh và gửi kết quả. Trong quá trình thực hiện lệnh, nếu là lệnh thao tác ngay trong bộ VXL thì CPU sẽ thực hiện lệnh, còn nếu là lệnh cần thao tác với bên ngoài thì CPU gửi tín hiệu địa chỉ và điều khiển để thực hiện. – Sau đó quá trình lại quay lại lệnh tiếp theo. Các quá trình nhận lệnh, giải mã lệnh và thực hiện lệnh có thể tiến hành tuần tự hay song song tuỳ theo cấu trúc từng bộ VXL 1.

HỆ VI XỬ LÝ 1. Các bước thiết kế một hệ vi xử lý • Phân tích chức năng nhiệm vụ của hệ vi xử lý cần thiết kế. • Tổ chức phần cứng cho hệ vi xử lý cần thiết kế. • Xây dựng phần mềm cho hệ vi xử lý cần thiết kế.

• Nạp chương trình cho hệ vi xử lý là hiệu chỉnh hệ thống. Tổng quan về 8051 2. Sơ đồ chân tín hiệu của 8051 2. Tập lệnh của 8051 2.

Khung chương trình hợp ngữ cho 8051 2. Tổng quan về 8051 ▪ Đóng trong hộp 40 chân ▪ 4KB ROM ▪ 128 byte RAM ▪ 4 cổng xuất nhập dữ liệu 8 bit ▪ 1 cổng nối tiếp ▪ 2 bộ Timer 16 bit ▪ 6 nguồn ngắt (2 ngắt ngoài) ▪ Không gian nhớ chương trình ngoài 64KB ▪ Không gian nhớ dữ liệu ngoài 64KB ▪ 210 vị trí được định địa chỉ bit ▪ Tần số xung nhịp (11.0592 MHz, 12 MHz, 24 MHz) 2. Sơ đồ, chức năng chân tín hiệu 8051 Hình 2. Sơ đồ, chức năng chân tín hiệu 8051 • Port 0 (từ chân 32 đến 39), có 02 chức năng: – Trong các thiết kế tối thiểu, các chân này có chức năng xuất/nhập dữ liệu; – Là byte địa chỉ thấp cho các thiết kế có bộ nhớ ngoài.

Các chân của cổng P0 có dạng cực máng hở, nên phải được nối với một điện trở kéo 10KΩ bên ngoài, Hình 2. Mắc điện trở kéo cổng P0 2. Sơ đồ, chức năng chân tín hiệu 8051 • Port 1 (từ chân 1 đến 8), có 01 chức năng duy nhất là trao đổi dữ liệu với thiết bị bên ngoài khi có yêu cầu • Port 2 (từ chân 21 đến 28), có 02 chức năng: – Trao đổi dữ liệu với thiết bị bên ngoài – Là byte cao địa chỉ cho các thiết kế có bộ nhớ ngoài • Port 3 (từ chân 10 đến 17), có 02 chức năng: – Trao đổi dữ liệu với thiết bị bên ngoài – Khi không hoạt động trao đổi dữ liệu, mỗi chân của Port 3 thực hiện chức năng riêng (Bảng 2. Sơ đồ, chức năng chân tín hiệu 8051 • Bảng 2.1 Chức năng của các chân Port 3 Bit Tên Địa chỉ bit Chức năng P3.0 RxD B0H Chân nhận dl nối tiếp P3.1 TxD B1H Chân phát dl nối tiếp P3.2 INT0 B2H Ngõ vào ngắt ngoài 0 P3.3 INT1 B3H Ngõ vào ngắt ngoài 1 P3.4 T0 B4H Ngõ vào của bộ định thời/đếm 0 P3.5 T1 B5H Ngõ vào của bộ định thời/đếm 1 RD P3.6 WR B6H Điều khiển ghi bộ nhớ dl ngoài P3.7 B7H Điều khiển đọc bộ nhớ dữ liệu ngoài 2.

Sơ đồ, chức năng chân tín hiệu 8051 • PSEN (program store enable)- chân 29: tín hiệu điềuOEkhiển cho phép truy xuất bộ nhớ chương trình ngoài. Thường nối với chân của ROM để cho phép đọc các byte lệnh. Trong suốt thời gian tìm – nạp lệnh chân này ở mức logic 0. Khi thực thi chương trình trong ROM nội, chân này không tích cực (logic 1) • EA-chân 31: nếu ở mức logic 1, 8051 thực thi chương trình trong ROM • ALE (address latch enable): khi Port 0 được sử dụng làm bus địa chỉ.

Nếu ở mức logic 0, thực thi chương trình từ bộ nhớ ngoài. • RST (Reset): bình thương ở mức logic thấp. Khi có mức logic cao vi điều khiển khởi động lại, khi đó mọi giá trị trên các thanh ghi bị xóa, bộ đếm chương trình PC=0 (tức là CPU nhận lệnh đầu tiên tại địa chỉ 0000h – địa chỉ khởi động của 8051) • Chân XTAL1, XTAL2: mạch tạo dao động ngoài cho 8051. Sơ đồ, chức năng chân tín hiệu 8051 Hình 2.

Mạch tạo dao đông, Reset cho 8051 2. Tổ chức bộ nhớ 8051 2. Tổ chức bộ nhớ trong Hình 2. trình bày vùng nhớ RAM trong có 128 byte được gán địa chỉ từ 00H đến 7FH.

-Từ 00H đến 1FH (32 byte) là các băng thanh ghi và ngăn xếp. -Từ 20H đến 2FH (16 byte) được định địa chỉ bit. Vùng nhớ này có thể truy nhập theo byte, hoặt bit tùy theo lệnh. Ví dụ: MOV A, 2Ch ; đọccả byte ORLA, #10000000B; set bit cao nhất MOV 2CH, A; ghi lại cả byte Ba lệnh trên tương đương lệnh “SETB 67H” -Từ 30H đến 7FH (80 byte) được sử dụng để lưu thông tin khi đọc và ghi, hay được gọi là bảng nháp.

80 byte này thường được sử dụng để lưu và tham dữ liệu số. Tổ chức bộ nhớ RAM trong 2. Tổ chức bộ nhớ 8051 • Băng thanh ghi - Băng 0 được mặc định khi sử dụng, để chuyển sang các băng thanh ghi khác bằng cách sử dụng bit D3, D4 (PSW.4) của thanh ghi PSW, Bảng 2. Các bit này có thể được lập, xóa theo lệnh SETB, CLR.

Ví dụ, “SETB PSW.3” - Lưu ý: mặc định các bit này = 0. Chọnbăng thanh ghi PSW.1: Băng 0 0 0 SETB PSW.3=1 Băng 1 0 1 ;SETB PSW.4=1 Băng 2 1 0 MOV R0, #99 ; nạp giá trị 99H vào R0 Băng 3 1 1 2. Tổ chức bộ nhớ 8051 • Ngăn xếp (stack) Ngăng xếp là một vùng nhớ RAM được sử dụng để lưu thông tin (có thể là dữ liệu hoặc địa chỉ) tạm thời. SP (stack pointer) độ dài 8 bit, được sử dụng để trỏ tới đỉnh ngăn xếp.

Khi cất dữ liệu vào stack SP được tăng thêm 1. ➢ Khi bật nguồn, hoặc reset SP=07H, nghĩa là ngăn nhớ có địa chỉ 07H là ngăn nhớ đầu tiên được dụng làm ngăn xếp. Khi đó dung lượng tối đa của ngăng xếp là 24 byte (từ 08H đến 1FH). Nếu chương trình cần nhiều hơn 24 byte cho vùng ngăn xếp thì có thể đổi SP trỏ tới vùng từ 30H đến 7Fh bằng lệnh “MOV SP, #XX”.

➢ Cần lưu ý rằng các vùng nhớ được định địa chỉ bit không được sử dụng cho vùng ngăn xếp. Tổ chức bộ nhớ ngoài 8051 có không gian bộ nhớ riêng cho chương trình và dữ liệu. Bộ nhớ chương trình và dữ liệu đặt bên trong chip, tuy nhiên có thể mở rộng bộ nhớ chương trình và dữ liệu bằng các chip nhớ bên ngoài với dung lượng tối đa 64K cho mỗi bộ nhớ. • Không gian bộ nhớ ROM, Hình 2.

Không gian bộ nhớ ROM 2. Tổ chức bộ nhớ 8051 • Truy xuất bộ nhớ ROM ngoài, Hình 2. Truy xuất bộ nhớ ROM ngoài 2. Tổ chức bộ nhớ 8051 • Không gian bộ nhớ RAM, Hình 2.

Không gian bộ nhớ RAM 2. Tổ chức bộ nhớ 8051 • Truy xuất bộ nhớ RAM ngoài, Hình 2. Truy xuất bộ nhớ RAM ngoài 2. Tổchứcbộnhớ 8051 • Cấu trúc chung của IC nhớ Address Hình 2.

Cấu trúc chung của 1 IC nhớ 2. Tổchứcbộnhớ 8051 • Một số IC nhớ ROM Bảng 2. Họ EPROM 27x Số hiệu Chip Dung lượng 2708 1K*8 2716 2K*8 2732 4K*8 2764 8K*8 27128 16K*8 27256 32K*8 27512 64K*8 Hình 2.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ