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.
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.
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.
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 :
Đố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.
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.
Bản đồ các thanh ghi chức năng đặc
biệt của SRF
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 :
Sơ
đồ các PORT của 8051 :
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)
•
Cấp xung cho 8051 : 2 chân XTAL 18,19
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 :
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
Mọi thắc mắc vui lòng liên hệ qua:
Facebook: Rid HaUI
Gmail: dienturid@gmail.com
0 nhận xét:
Đăng nhận xét