8051 - Part 1
![]() |
ridketnoi.blogspot.com |
8051
Chào các bạn! Sau đây
nhóm “ Điện Tử RID” sẽ giới thiệu đến các bạn dòng vi điều khiển khá thông dụng
hiện nay đang đó là dòng vi điều khiển 8051. Chúng ta hãy cùng tìm hiểu
nhé J
Hình 1 : Một số loại
chíp 8051 phổ biến trên thị trường hiện nay 89C51/52/55
1. Cấu trúc tổng quát bộ nhớ và vi xử lí (CPU) :
a. Cấu trúc AT89 ở dạng tổng quát.
![]() |
ridketnoi.blogspot.com |
a. Một số định nghĩa cho đặc điểm cấu tạo bên
trong
Cấu trúc bus: Bus địa chỉ của họ vi điều khiển 8051 gồm 16 đường tín hiệu
(thường gọi là bus địa chỉ 16 bit). Với số lượng bít địa chỉ như trên, không
gian nhớ của chíp được mở rộng tối đa 216 =65536
địa chỉ tương đương 64K.
Bus dữ liệu của họ vi điều khiển 8051 gồm 8 đường tín hiệu
(thường gọi là bus dữ liệu 8 bít), đó là lí do tại sao ta thường hay gọi 8051
là họ vi điều khiển 8 bít. Với độ rộng của bus dữ liệu. Như vậy các chíp họ
8051 có thể xử lí các toán hạng 8 bít trong một chu kì lệnh.
CPU: CPU là đơn vị xử lí trung tâm, đó là bộ não của toàn bộ hệ thống vi dđiện tử được tích hợp trên chíp vi điều khiển. CPU có cấu tạo chính gồm một đơn vị xử lý số học và logic
CPU: CPU là đơn vị xử lí trung tâm, đó là bộ não của toàn bộ hệ thống vi dđiện tử được tích hợp trên chíp vi điều khiển. CPU có cấu tạo chính gồm một đơn vị xử lý số học và logic
ALU(Arithmethic Logic Unit )Nơi thực hiện tất cả các phép toán số học và phép toán logic cho quá trình xử lí.
Bộ nhớ chương trình ( Program Memory )
Không gian bộ nhớ chương trình của AT89 là 64K byte, tuy nhiên
hầu hết các vi điều khiển
AT89 trên thị trường chỉ tích hợp sẵn trên chíp một lượng bộ nhớ chương trình nhất định và chiếm dải địa chỉ từ 000h trở đi trong không gian bộ nhớ chương trình.
AT89 trên thị trường chỉ tích hợp sẵn trên chíp một lượng bộ nhớ chương trình nhất định và chiếm dải địa chỉ từ 000h trở đi trong không gian bộ nhớ chương trình.
Với các dòng cụ thể AT89C51/ AT89S51 có 4K byte bộ nhớ chương
trình loại Flash tích hợp sẵn bên trong chíp. Đây là bộ nhớ cho phép ghi/xóa
nhiều lần bằng điện, chính vì thế cho phép người sử dụng thay đổi chương
trình nhiều lần. Số lần ghi/xóa được thường lên tới hàng vạn lần.
AT89C52/AT89S52 có 8K byte bộ nhớ chương trình cùng loại
Bộ nhớ chương trình của các chíp họ 8051 có thể thuộc một trong
các loại: ROM, EPROM, FLASH, hoặc không có bộ nhớ chương trình bên trong chíp.
Tên của từng chíp thể hiện chính loại bộ nhớ chương trình mà nó mang bên trong,
cụ thể là vài ví dụ sau:
Từ đó ta có thể thấy được bộ nhớ chương trình dùng để chứa mã
của chương trình nạp vào chíp. Mỗi lệnh được mã hóa bởi 1 hay vài byte,
dung lượng của bộ nhớ chương trình phản ánh số lượng lệnh mà bộ nhớ của
thể chứa được. Địa chỉ đầu tiên của bộ nhớ chương trình (0x0000) chính là
địa chỉ Reset của 8051. Ngay sau khi reset (do tắt bật nguồn) do mức điện
áp tại chân Reset bị kéo lên 5V…), CPU sẽ nhảy đến thực hiện lệnh đặt tại
địa chỉ này trước tiên. Nếu muốn mở rộng bộ nhớ chương trình, ta phải dùng
bộ nhớ chương trình bên ngoài có dung lượng như ý muốn. Tuy nhiên khi dùng
bộ nhớ chương trình ngoài, bộ nhớ chương trình trên chíp không dùng được
nữa, bộ nhớ chương trình ngoài sẽ chiếm dải địa chỉ ngay từ địa chỉ
0x0000.
![]() |
ridketnoi.blogspot.com |
Bộ nhớ dữ liệu (DATA Memory) Nôm na đây là bộ
nhớ cấp phát tạm thời cho chương trình khi chíp hoạt động. Bộ nhớ dữ liệu của
các chíp họ 8051 có thể thuộc một hay hai loại : SRAM hoặc EEPROM. Bộ nhớ dữ
liệu SRAM được tích hợp bên trong mọi chíp thuộc họ vi điều khiển này, có dung
lượng khác nhau tùy loại chíp, nhưng thường chỉ khoảng vài trăm byte. Đây chính
là nơi chưa các biến trung gian trong quá trình hoạt động của chíp. Khi mất
điện, do bản chất của SRAM mà giá trị của các biến này cũng bị mất theo. Khi có
điện trở lại, nội dung của các ô nhớ chưa các biến này cũng là bất kỳ, không
thể định trước. Bên cạnh đó một số chíp thuộc họ 8051 còn có thêm bộ nhớ dữ
liệu EEPROM với dung lượng tối đa vài Kbyte, tùy từng loại chíp cụ thể. Ta có
bảng dưới đây.
Sơ đồ bộ nhớ bên trong chip :
![]() |
ridketnoi.blogspot.com |
Đối với các chíp có bộ nhớ SRAM thì SRAM 128 byte có địa chỉ từ
00h đến 7FH, SRAM 256 byte thì địa chỉ của các byte SRAM đánh số từ 00h đến
FFh. SRAM nếu có địa chỉ từ 00h đến 7Fh được gọi là vùng RAM thấp, Phần có địa
chỉ từ 80h đến FFh được gọi là vùng RAM cao.
Lưu ý : Bên cạnh các bộ nhớ, bên trong mỗi chíp 8051 còn có một tập hớp các thanh ghi chức năng đặc biệt (SFR – Special Function Register). Các thanh ghi này liên quan đến hoạt động của các ngoại vi trên chíp (Cổng vào ra, timer, ngắt…). Địa chỉ của chúng trùng với dải đại chỉ của vùn SRAM cao, tức là cũng có địa chỉ từ 80h đến FFH.
![]() |
ridketnoi.blogspot.com |
Do đó việc truy cập vào một địa chỉ thuộc dải từ 00h đến 7Fh thì
sẽ truy cập đến ô nhớ thuộc vùng RAM thấp. Tuy nhiên khi truy cập đến một
địa chỉ x thuộc dải từ 80h đến FFh thì xảy ra vấn đề cần giải quyết: Sẽ truy
cập đến thanh ghi SFR ở địa chỉ x hay truy cập đến ô nhớ ở địa chỉ x của vùng
RAM cao? Nhà sản xuất đã quy định, trong trường này : Nếu truy cập sử dụng chế
độ địa chỉ trực tiếp thì sẽ truy cập vào vùng SFR, ngược lại nếu kiểu truy cập
sử dụng chế độ địa chỉ gián tiếp thì sẽ truy cập vào vùng RAM cao.
![]() |
ridketnoi.blogspot.com |
Bản đồ các thanh ghi chức năng đặc biệt của SRF
ridketnoi.blogspot.com |
1. Tóm tắt cơ bản cấu tạo và chức năng các chân
trên Chip (89C51/52 - 89S51/52)
• 8051 có 4 cổng vào ra song song 2 chiều 8 bít
có tên lần lượt là : P0, P1, P2, P3. Do đó mỗi cổng sẽ có 8 chân trên chíp.
• Ngoài chức năng I/O thông thương một số cổng
còn được tích hợp thêm một số chức năng ngoại vi khác :
![]() |
ridketnoi.blogspot.com |
Sơ đồ các PORT của 8051 :
![]() |
ridketnoi.blogspot.com |
Cổng P0 không có điện trở treo cao (Pullup resistor) bên trong,
mạch .Nên nếu muốn sử đụng P0 làm cổng vào/ra thông thường ta phải thêm điện
trở kéo bên ngoài, giá trị điện trở bên ngoài thường 4K7 đến 10K.
+ Chú ý các cổng P1, P2, P3 cũng có điện trở kéo bên trong, do
đó nó có thể dùng với chức năng cổng vào ra thông thường. Nhưng điều đặc biệt
nằm ở các điện trở bên trong đó là các FET, không phải điện trở tuyến tính
thông thường, tuy vậy nhưng khả năng phun dòng ra của các cổng là rất nhỏ chỉ
cỡ 100 Micro Ampe. Nếu ta cung cấp cho tải đầu ra mức cao với dòng lớn thì điện
áp đầu ra tại các chân sẽ bị sụt xuống không thể cao sát 5V như lí thuyết.
Trong khi đó khả năng nuốt dòng của các PORT khi đầu ra ở mức
thấp lại cao hơn rất nhiều đạt đến hàng chục mili Ampe.
Do đó khi thiết kế với các phần tử bên ngoài, ta nên để ý đến
đặc tính vào ra của các chân cổng, ví dụ ghép nối LED đơn hoặc LED 7 thanh, ta
thiết kế chân cổng nuốt dòng từ LED để làm LED sáng (Cổng nối với Cathode của
LED), Không nên thiết kế chân cổng phun dòng cho Led để làm LED sáng (Cổng nối
với Anode của LED).
• Reset (Chân 9) : Chân reset có tác dụng reset
chip 8051, mức tích cực của chân này là mức 1, để Reset ta phải đưa mức 1 (5V)
đến chân này trong thời gian tối thiểu là 2 chu kì máy (2us – đối với thạch anh
12Mhz)
![]() |
ridketnoi.blogspot.com |
• Cấp xung cho 8051 : 2 chân XTAL 18,19
![]() |
ridketnoi.blogspot.com |
Tụ gốm có trị số từ 27pF – 33pF để ổn định làm việc cho thạch
anh, thường dùng 33pF
• Chân cấp nguồn 20 – GND ; 40 –VCC : cung cấp
nguồn nuôi cho chíp : 5V
• Chân PSEN 29 : Điều khiển đọc chương trình ở
bộ nhớ ngoài, nó được nối với chân OE để cho phép đọc các byte mã lệnh trên ROM
ngoài. PSEN sẽ ở mức thấp trong thời gian đọc mã lệnh. Mã lệnh được đọc từ bộ
nhớ ngoài qua bus dữ liệu (PORT 0) thanh ghi lệnh để được giải mã.
Khi thực hiện chương trình trong Rom nội thì PSEN ở mức cao
• Chân ALE 30 : ALE là tín hiệu điều khiển chốt
địa chỉ có tần số bằng 1/6 tần số dao động của vi điều khiển. Tín hiệu ALE được
dùng để cho phép vi mạch chốt bên ngoài như 74373, 74573 chốt byte địa chỉ thấp
ra khỏi bus đa hợp địa chỉ / dữ liệu (Port 0).
• Chân EA 31 : Cho phép chọn bộ nhớ chương trình
là bộ nhớ trong hay ngoài vi điều khiển. Nếu EA ở mức cao (nối với Vcc), thì vi
điều khiển thi hành chương trình trong ROM nội. Nếu EA ở mức thấp (nối GND) thì
vi điều khiển thi hành chương trình từ bộ nhớ ngoài.
II. Sơ đồ mạch cơ bản khi thiết kế với 8051
Để IC hoạt động cụ thể ở đây tôi dùng 89C51, ta sẽ
cần có mạch nguồn nuôi cấp 5V – DC cho IC. Tôi xin giới thiệu đến
các bạn mạch sử dụng 7805 đơn giản :
![]() |
ridketnoi.blogspot.com |
Với bộ dao động của IC ta thường sử dụng thạch anh 12Mhz, trong
giao tiếp truyền thông để tốc độ baud chẵn thường người ta hay sử dụng thạch
anh có tần số 11,0592Mhz, tụ chúng ta sẽ dùng tụ gốm giá trị : 33pF.
Các bạn mắc mạch Reset và nguồn theo sơ đồ sau :
Như vậy ở phần đầu tôi đã khái quát những đặc điểm cấu tạo bên
trong chíp cũng như chức năng cơ bản các chân giao tiếp bên ngoài. Cách thức
mắc mạch, Trong phần tiếp theo, tôi sẽ giới thiệu đến các bạn lần các chức năng
cơ bản của VĐK 8051 : Có 3 chức năng quan trọng đó là : Timer/couter ;
Ngắt; Cổng vào ra nối tiếp.
Các bạn hãy đón đọc tiếp phần 2 nhé. J
0 nhận xét:
Đăng nhận xét