Nhận làm đồ án VĐK các loại ( 8051, AVR, PIC) Tư vấn - Hướng dẫn - lập trình

Thứ Hai, 5 tháng 1, 2015

8051 basic

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.
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 

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.
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

Next previous home

0 nhận xét:

Đăng nhận xét