Giới thiệu về IC 8051

IC 8051 là một trong những vi điều khiển 8-bit phổ biến nhất, được phát triển bởi Intel vào năm 1980. Với thiết kế linh hoạt và dễ sử dụng, IC 8051 được ứng dụng rộng rãi trong các hệ thống nhúng và điều khiển tự động.

Vi điều khiển 8051 có nhiều tính năng nổi bật như bộ nhớ tích hợp, các cổng I/O đa dụng, và khả năng xử lý mạnh mẽ. Dưới đây là các đặc điểm chính của IC 8051:

Thành phần Mô tả
Bộ xử lý (CPU) Bộ vi xử lý 8-bit, hỗ trợ thực thi các lệnh cơ bản và xử lý dữ liệu.
Bộ nhớ
  • Bộ nhớ chương trình (ROM): Tích hợp 4KB để lưu trữ mã lệnh.
  • Bộ nhớ dữ liệu (RAM): 128 byte dùng để lưu trữ dữ liệu tạm thời.
Cổng I/O 4 cổng I/O (P0, P1, P2, P3), mỗi cổng có 8 chân, có thể lập trình để nhập hoặc xuất dữ liệu.
Bộ định thời (Timer) 2 bộ định thời/counter (Timer 0 và Timer 1) dùng để đo thời gian hoặc đếm xung.
Cổng nối tiếp (UART) Giao tiếp nối tiếp tích hợp, hỗ trợ truyền và nhận dữ liệu.
Khả năng xử lý ngắt 5 nguồn ngắt với độ ưu tiên lập trình được, cho phép xử lý các sự kiện quan trọng.

Với những tính năng đa dạng và dễ sử dụng, IC 8051 trở thành một lựa chọn lý tưởng cho các ứng dụng như:

  • Điều khiển động cơ.
  • Thiết kế hệ thống nhúng trong tự động hóa.
  • Ứng dụng IoT (Internet of Things).

IC 8051 là một nền tảng tuyệt vời để học tập và phát triển trong lĩnh vực vi điều khiển, đặc biệt cho những người mới bắt đầu hoặc các ứng dụng nhúng nhỏ gọn.

1. Điện áp và dòng điện cấp cho IC 8051

Để IC 8051 hoạt động ổn định và đạt hiệu suất tối ưu, việc cung cấp nguồn điện đúng thông số là điều cực kỳ quan trọng. Điện áp và dòng điện cấp cho vi điều khiển này cần tuân thủ theo các tiêu chuẩn được quy định.

Thông tin chi tiết về yêu cầu điện áp và dòng điện của IC 8051 được trình bày trong bảng dưới đây:

Thông số Giá trị Chú thích
Điện áp hoạt động (Vcc) 4.0V - 5.5V Điện áp cấp chính cho IC. Điện áp lý tưởng là 5V.
Dòng tiêu thụ 10mA - 30mA Phụ thuộc vào ứng dụng và tần số xung clock.
Điện áp ngõ vào thấp (VIL) 0V - 0.8V Ngưỡng để xác định mức tín hiệu "0".
Điện áp ngõ vào cao (VIH) 2.0V - Vcc Ngưỡng để xác định mức tín hiệu "1".
Dòng điện tối đa qua các chân I/O 15mA/chân Không được vượt quá giới hạn này để tránh hư hỏng IC.

Một số lưu ý quan trọng khi cấp nguồn cho IC 8051:

  • Nguồn điện cấp cần ổn định và ít nhiễu để tránh ảnh hưởng đến hiệu suất hoạt động.
  • Sử dụng tụ điện decoupling (thường là 0.1µF) gần chân cấp nguồn để giảm nhiễu điện từ.
  • Đảm bảo dòng điện cung cấp đủ cho tất cả các thành phần sử dụng trong hệ thống.

Cung cấp điện áp và dòng điện đúng tiêu chuẩn không chỉ giúp IC 8051 hoạt động ổn định mà còn kéo dài tuổi thọ của hệ thống.

2. Tần số xuất ra từng chân IC 8051 tối đa và dòng điện xuất ra mỗi chân

IC 8051 là vi điều khiển 8-bit với nhiều chân I/O có thể lập trình. Mỗi chân có các đặc điểm riêng biệt về tần số và dòng điện mà chúng có thể xuất ra. Để đảm bảo hoạt động ổn định và lâu dài của IC, việc hiểu rõ các thông số này là rất quan trọng.

Thông tin chi tiết về tần số xuất ra từng chân IC 8051 và dòng điện xuất ra mỗi chân được trình bày trong bảng dưới đây:

Thông số Giá trị Chú thích
Tần số tối đa từng chân 30 MHz Tần số tối đa mà mỗi chân có thể xử lý khi IC hoạt động ở chế độ full-speed. Điều này phụ thuộc vào xung clock của vi điều khiển.
Dòng điện tối đa mỗi chân 15mA Dòng điện tối đa mà mỗi chân có thể cung cấp hoặc hút. Không được vượt quá giá trị này để tránh làm hỏng IC.
Dòng điện tối đa mỗi port 80mA Dòng điện tối đa mà mỗi port (P0, P1, P2, P3) có thể xuất ra tổng cộng. Khi tất cả các chân trong port cùng hoạt động, dòng điện tổng cộng không được vượt quá giá trị này.

Một số lưu ý quan trọng khi làm việc với các chân I/O của IC 8051:

  • Không nên tải quá mức các chân I/O để tránh quá nhiệt và làm hỏng vi điều khiển.
  • Để giảm thiểu các tác động tiêu cực, nên sử dụng các điện trở hạn dòng khi kết nối các thiết bị ngoại vi với IC 8051.
  • Kiểm tra tần số và dòng điện khi kết nối với các thiết bị có yêu cầu dòng điện lớn hơn để đảm bảo tính tương thích.

Việc tuân thủ các thông số kỹ thuật của IC 8051 giúp bảo vệ IC và tối ưu hóa hiệu suất hoạt động của các hệ thống nhúng.

3. Cách reset IC 8051

Việc reset IC 8051 là bước quan trọng trong quá trình khởi động vi điều khiển. Việc thực hiện reset đúng cách giúp IC hoạt động ổn định và đảm bảo các thanh ghi và bộ nhớ bên trong được đưa về trạng thái ban đầu. Có nhiều phương pháp reset IC 8051 khác nhau, bao gồm việc sử dụng chân reset và các mạch hỗ trợ reset tự động.

Reset IC 8051 chủ yếu được thực hiện qua chân Reset (RST). Tùy vào cấu hình và yêu cầu của hệ thống, việc reset có thể được thực hiện thông qua tín hiệu mức cao (active-high) hoặc mức thấp (active-low). Dưới đây là các cách reset IC 8051 phổ biến:

Phương pháp Reset Mức Reset Chân Reset Chú thích
Reset bằng mức cao (Active-high) Active-high Chân RST Khi mức tín hiệu trên chân RST được kéo lên mức cao (5V), IC sẽ reset, đưa các thanh ghi và bộ nhớ về trạng thái ban đầu.
Reset bằng mức thấp (Active-low) Active-low Chân RST Khi mức tín hiệu trên chân RST được kéo xuống mức thấp (0V), IC sẽ thực hiện thao tác reset. Đây là phương pháp phổ biến trong nhiều ứng dụng.
Reset tự động (Sử dụng mạch RC) Active-high Chân RST Để thực hiện reset tự động khi nguồn được cấp, người ta có thể sử dụng mạch RC (điện trở và tụ điện) để tạo tín hiệu reset. Phương pháp này giúp IC tự động reset mỗi khi nguồn được cấp.

Các lưu ý quan trọng khi thực hiện reset IC 8051:

  • Phương pháp reset phải đảm bảo thời gian reset đủ lâu để IC có thể khởi động lại hoàn toàn.
  • Cần sử dụng tụ điện (thường là 10µF) để lọc nhiễu và đảm bảo tín hiệu reset ổn định.
  • Đảm bảo tín hiệu reset không bị nhiễu và phải duy trì trong khoảng thời gian cần thiết (thường từ 2ms đến 10ms) để IC có thể reset đúng cách.

Việc sử dụng mạch hỗ trợ reset và tuân thủ các yêu cầu về tín hiệu giúp đảm bảo IC 8051 hoạt động một cách chính xác ngay từ khi khởi động hệ thống.



4. Nhiệt độ và Tần số hoạt động của MCU 8051 để chạy ổn định không bị treo

MCU 8051 là một vi điều khiển được thiết kế để hoạt động trong các điều kiện khác nhau. Để đảm bảo MCU hoạt động ổn định và không bị treo, cần chú ý đến các thông số quan trọng như nhiệt độ môi trường và tần số xung nhịp. Nếu vượt quá các giới hạn này, MCU có thể gặp lỗi hoặc ngừng hoạt động.

MCU 8051 được thiết kế để hoạt động trong một dải nhiệt độ và tần số cụ thể. Dưới đây là các thông số cần thiết để đảm bảo hoạt động ổn định:

Thông số Giá trị tối thiểu Giá trị tối đa Chú thích
Nhiệt độ hoạt động -40°C 85°C Nhiệt độ này phù hợp cho các ứng dụng công nghiệp và dân dụng.
Tần số xung nhịp 1 MHz 24 MHz Tần số hoạt động của MCU phải nằm trong khoảng này để đảm bảo xử lý chính xác và ổn định.

Những lưu ý để MCU 8051 hoạt động ổn định:

  • Đảm bảo môi trường hoạt động có nhiệt độ nằm trong giới hạn cho phép. Tránh nhiệt độ quá thấp hoặc quá cao, vì chúng có thể làm giảm hiệu suất hoặc gây lỗi hoạt động.
  • Sử dụng nguồn xung nhịp ổn định và phù hợp với tần số yêu cầu. Tránh sử dụng các bộ dao động không chính xác hoặc bị nhiễu.
  • Nếu sử dụng trong các môi trường khắc nghiệt, cần thiết kế thêm các cơ chế làm mát hoặc sưởi ấm để giữ nhiệt độ trong khoảng ổn định.

Việc kiểm soát tốt nhiệt độ và tần số hoạt động của MCU 8051 không chỉ giúp thiết bị hoạt động ổn định mà còn kéo dài tuổi thọ và hiệu suất của hệ thống.



5. Tổng dòng điện xuất ra từ 4 cổng I/O (P0, P1, P2, P3) và dòng điện tiêu thụ của MCU 8051

Vi điều khiển MCU 8051 cần được vận hành trong giới hạn dòng điện cho phép để đảm bảo hoạt động ổn định và tránh hiện tượng treo hệ thống. Một yếu tố quan trọng là sự cân đối giữa tổng dòng điện xuất ra từ các cổng I/O và dòng điện tiêu thụ của chính MCU.

Dưới đây là thông số chi tiết về dòng điện xuất ra từ các cổng I/O và dòng điện tiêu thụ của MCU:

Thông số Giá trị tối đa Chú thích
Dòng điện tối đa trên mỗi chân I/O 15 mA Áp dụng cho tất cả các chân trên cổng P0, P1, P2 và P3.
Tổng dòng điện tối đa từ một cổng 120 mA Mỗi cổng có 8 chân, tổng dòng điện của cả cổng không vượt quá giá trị này.
Tổng dòng điện xuất ra từ 4 cổng 480 mA Tổng dòng điện từ tất cả các cổng I/O khi hoạt động đồng thời.
Dòng điện tiêu thụ của MCU 20-25 mA Phụ thuộc vào cấu hình và tần số xung nhịp hoạt động.

Để đảm bảo MCU 8051 hoạt động ổn định, cần lưu ý:

  • Tổng dòng điện xuất ra từ các cổng I/O không nên vượt quá 480 mA để tránh gây quá tải.
  • Dòng điện tiêu thụ của MCU (20-25 mA) phải được đảm bảo bởi nguồn cấp ổn định.
  • Nên thiết kế mạch ngoài sử dụng transistor hoặc mạch đệm để giảm tải trực tiếp lên các cổng I/O.
  • Kiểm tra và giới hạn dòng điện trên từng chân I/O để không vượt quá giá trị 15 mA.

Việc duy trì cân bằng giữa dòng điện tiêu thụ của MCU và dòng điện xuất ra từ các cổng I/O không chỉ giúp MCU hoạt động ổn định mà còn kéo dài tuổi thọ của hệ thống.



Danh sách các tập lệnh ASM cơ bản cho 8051


1. Nhóm lệnh truyền dữ liệu (Data Transfer Instructions)

Nhóm lệnh này cho phép truyền dữ liệu giữa các thanh ghi, bộ nhớ và các địa chỉ chỉ định. Dưới đây là bảng mô tả chi tiết các lệnh trong nhóm này.

Lệnh Ý nghĩa
MOV A, #data Di chuyển hằng số vào thanh ghi A.
MOV A, Rn Di chuyển dữ liệu từ thanh ghi Rn vào A.
MOV Rn, #data Di chuyển hằng số vào thanh ghi Rn.
MOV A, @Ri Di chuyển dữ liệu từ bộ nhớ nội gián tiếp qua Ri vào A.
MOV @Ri, A Di chuyển dữ liệu từ A vào bộ nhớ nội qua địa chỉ Ri.
MOV DPTR, #data16 Nạp giá trị 16-bit vào DPTR (Data Pointer Register).
MOVX A, @DPTR Đọc dữ liệu từ bộ nhớ ngoài vào A.
MOVX @DPTR, A Ghi dữ liệu từ A ra bộ nhớ ngoài qua DPTR.
PUSH direct Lưu trữ byte từ địa chỉ cụ thể vào ngăn xếp (stack).
POP direct Lấy byte từ ngăn xếp về địa chỉ cụ thể.
XCH A, Rn Trao đổi nội dung giữa A và thanh ghi Rn.
XCHD A, @Ri Trao đổi nibble thấp của A với byte tại địa chỉ Ri.

2. Nhóm lệnh số học (Arithmetic Instructions)

Nhóm lệnh này bao gồm các phép toán số học như cộng, trừ, nhân, chia và các thao tác tăng giảm giá trị. Các lệnh này thường được sử dụng để xử lý dữ liệu số trong vi điều khiển 8051.

Lệnh Ý nghĩa
ADD A, Rn Cộng giá trị của thanh ghi Rn vào A.
ADD A, #data Cộng hằng số vào A.
ADD A, @Ri Cộng giá trị tại địa chỉ chỉ định bởi Ri vào A.
SUBB A, Rn Trừ giá trị Rn với dữ liệu trong A (có xét bit nhớ).
SUBB A, #data Trừ hằng số với dữ liệu trong A (có xét bit nhớ).
INC A Tăng giá trị trong A lên 1.
INC DPTR Tăng giá trị của con trỏ dữ liệu DPTR lên 1.
DEC A Giảm giá trị trong A xuống 1.
MUL AB Nhân giá trị trong A và B, lưu kết quả vào A (phần thấp) và B (phần cao).
DIV AB Chia giá trị trong A cho B, lưu thương vào A và dư vào B.

3. Nhóm lệnh logic (Logical Instructions)

Nhóm lệnh logic thực hiện các phép toán logic như AND, OR, XOR, và các thao tác xử lý bit trong thanh ghi A hoặc các thanh ghi khác. Đây là nhóm lệnh quan trọng trong việc kiểm tra và điều khiển trạng thái của hệ thống.

Lệnh Ý nghĩa
ANL A, Rn Thực hiện phép AND giữa A và Rn.
ANL A, #data Thực hiện phép AND giữa A và một hằng số.
ORL A, Rn Thực hiện phép OR giữa A và Rn.
ORL A, #data Thực hiện phép OR giữa A và một hằng số.
XRL A, Rn Thực hiện phép XOR giữa A và Rn.
XRL A, #data Thực hiện phép XOR giữa A và một hằng số.
CPL A Đảo tất cả các bit trong A.
SWAP A Đổi nibble cao và thấp trong A.

4. Nhóm lệnh xử lý bit (Bit Manipulation Instructions)

Nhóm lệnh xử lý bit được sử dụng để thao tác với từng bit trong thanh ghi hoặc bộ nhớ. Các lệnh này giúp điều khiển trạng thái của các thiết bị hoặc cờ trạng thái một cách chi tiết.

Lệnh Ý nghĩa
SETB bit Đặt giá trị của bit được chỉ định lên 1.
CLR bit Xóa giá trị của bit được chỉ định (đặt về 0).
CPL bit Đảo giá trị của bit được chỉ định.
ANL C, bit Thực hiện phép AND giữa bit C và một bit cụ thể.
ORL C, bit Thực hiện phép OR giữa bit C và một bit cụ thể.
CLR C Xóa giá trị của bit cờ C (đặt về 0).
SETB C Đặt giá trị của bit cờ C lên 1.
CPL C Đảo giá trị của bit cờ C.

5. Nhóm lệnh nhảy (Jump Instructions)

Nhóm lệnh nhảy được sử dụng để điều khiển luồng thực thi của chương trình. Các lệnh này cho phép chuyển đến một địa chỉ cụ thể, thực hiện nhảy có điều kiện hoặc không điều kiện, và gọi các chương trình con.

Lệnh Ý nghĩa
AJMP addr11 Nhảy không điều kiện đến địa chỉ 11-bit trong cùng trang bộ nhớ.
LJMP addr16 Nhảy không điều kiện đến địa chỉ 16-bit.
SJMP rel Nhảy không điều kiện đến địa chỉ tương đối trong phạm vi -128 đến +127 byte.
JZ rel Nhảy đến địa chỉ tương đối nếu giá trị trong A bằng 0.
JNZ rel Nhảy đến địa chỉ tương đối nếu giá trị trong A khác 0.
JC rel Nhảy đến địa chỉ tương đối nếu cờ Carry (C) được đặt.
JNC rel Nhảy đến địa chỉ tương đối nếu cờ Carry (C) không được đặt.
DJNZ Rn, rel Giảm thanh ghi Rn và nhảy đến địa chỉ tương đối nếu giá trị sau khi giảm khác 0.
ACALL addr11 Gọi chương trình con tại địa chỉ 11-bit trong cùng trang bộ nhớ.
LCALL addr16 Gọi chương trình con tại địa chỉ 16-bit.
RET Quay về từ chương trình con.
RETI Quay về từ chương trình con phục vụ ngắt.

6. Nhóm lệnh gọi chương trình con (Subroutine Call)

Nhóm lệnh này được sử dụng để gọi các chương trình con nhằm tái sử dụng mã và tổ chức chương trình một cách hiệu quả. Sau khi thực thi, vi điều khiển có thể quay lại vị trí ban đầu nhờ các lệnh quay về.

Lệnh Ý nghĩa
ACALL addr11 Gọi chương trình con tại địa chỉ 11-bit trong cùng trang bộ nhớ.
LCALL addr16 Gọi chương trình con tại địa chỉ 16-bit.
RET Quay về từ chương trình con.
RETI Quay về từ chương trình con phục vụ ngắt.

7. Nhóm lệnh xử lý ngắt (Interrupt Handling Instructions)

Nhóm lệnh xử lý ngắt được sử dụng để quản lý các sự kiện ngắt trong hệ thống. Ngắt cho phép vi điều khiển tạm dừng chương trình chính để xử lý các sự kiện quan trọng, sau đó quay lại hoạt động bình thường.

Lệnh Ý nghĩa
RETI Quay về từ chương trình con xử lý ngắt. Cờ ngắt tương ứng được tự động xóa.
SETB EA Kích hoạt toàn bộ các ngắt (Enable All Interrupts).
CLR EA Vô hiệu hóa toàn bộ các ngắt (Disable All Interrupts).
SETB EX0 Kích hoạt ngắt ngoài 0 (External Interrupt 0).
CLR EX0 Vô hiệu hóa ngắt ngoài 0 (External Interrupt 0).
SETB EX1 Kích hoạt ngắt ngoài 1 (External Interrupt 1).
CLR EX1 Vô hiệu hóa ngắt ngoài 1 (External Interrupt 1).
SETB ET0 Kích hoạt ngắt bộ định thời 0 (Timer 0 Interrupt).
CLR ET0 Vô hiệu hóa ngắt bộ định thời 0 (Timer 0 Interrupt).
SETB ET1 Kích hoạt ngắt bộ định thời 1 (Timer 1 Interrupt).
CLR ET1 Vô hiệu hóa ngắt bộ định thời 1 (Timer 1 Interrupt).

8. Nhóm lệnh điều khiển (Control Instructions)

Nhóm lệnh điều khiển được sử dụng để điều chỉnh hoạt động của vi điều khiển, bao gồm các lệnh dừng, bật/tắt ngắt và thao tác với các trạng thái đặc biệt trong vi điều khiển.

Lệnh Ý nghĩa
NOP Không thực hiện bất kỳ thao tác nào. Dùng để tạo độ trễ hoặc đồng bộ.
AJMP addr11 Nhảy đến địa chỉ 11-bit trong cùng trang bộ nhớ (điều khiển luồng chương trình).
LJMP addr16 Nhảy đến địa chỉ 16-bit trong bộ nhớ chương trình (điều khiển luồng chương trình).
RET Quay về từ chương trình con.
RETI Quay về từ chương trình con xử lý ngắt.
SETB bit Đặt giá trị của bit cụ thể lên 1.
CLR bit Xóa giá trị của bit cụ thể (đặt về 0).
CPL bit Đảo giá trị của bit cụ thể.



Video giới thiệu sản phẩm

Tính đến thời điểm này đã có nhiều khách hàng tin tưởng và sử dụng những sản của chúng tôi. Xin chân thành cảm ơn.  


Chúng tôi Chân thành cảm ơn quý khách hàng gần xa đã tin tưởng hr. Khách hàng có nhu cầu mua những sản phẩm của chúng tôi thì hãy Bấm nút liên hệ Xem Sản Phẩm ở bên dưới.

SẢN PHẨM MỚI CÔNG NGHIỆP TỰ ĐỘNG