Chương5 TỔNG QUAN VỀ HỌ VI ĐIỀU KHIỂN MCS-51 Họ vi điều khiển Mcs – 51 ra đời từ năm 1980 bởi hãng Intel, với sản phẩm đầu tiên là 8051. Các IC này gọi là vi điều khiển vì chúng bao gồm cả ROM, RAM, timer, các cổng nối tiếp và song song. Đây là đặc điểm chính để ta phân biệt giữa vi điều khiển và vi xử lý. 8051 không được sử dụng trong máy tính nhưng được sử dụng rộng rãi trong công nghiệp và trong sản phẩm máy móc tiêu dùng. Cùng họ với 8051 có một số vi điều khiển khác. Về cơ bản chúng đều giống nhau, chúng chỉ khác nhau ở vùng nhớ nội bao gồm vùng nhớ mã lệnh, vùng nhớ dữ liệu và số timer. Sự khác nhau đó được mô tả bằng bảng dưới đây. Vi điều khiển Vùng mã lệnh nội Vùng dữ liệu nội Số timer 8051 8031 8751 8052 8032 8732 4K ROM 0K 4K EPROM 8K ROM 0K 4K EPROM 128 bytes 128 bytes 128 bytes 256 bytes 256 bytes 256 bytes 2 2 2 3 3 3 Bảng 4.1 So sánh các IC của họ Msc-51 TM I – CẤU TRÚC CỦA 8051: Trung tâm của 8051 vẫn là vi xử lý trung tâm (CPU). Để kích thích cho toàn bộ hệ thống hoạt động, 8051 có bộ tạo dao động nội với thạch anh được ghép bên ngoài với tần số khoảng từ vài Mhz đến 12 Mhz. Liên kết các phần tử với nhau là hệ thống BUS nội, gồm có BUS dữ liệu, BUS đòa chỉ và BUS điều khiển. 8051 có 4K ROM, 128 bytes RAM và một số thanh ghi bộ nhớ … Nó giao tiếp với bên ngoài qua 3 cổng song song và một cổng nối tiếp có thể thu, phát dữ liệu nối tiếp với tốc độ lập trình được. Hai bộ đònh thời 16 bit của 8051 còn có 2 ngắt ngoài cho phép nó đáp ứng và xử lý điều kiện bên ngoài theo cách ngắt quãng, rất hiệu quả trong các ứng dụng điều khiển. Thông qua các chân điều khiển và các cổng song song 8051 có thể mở rộng bộ nhớ ngoài lên đến 64Kbs dữ liệu. II – SƠ LƯC VỀ CÁC CHÂN CỦA 8051 Mục này giới thiệu cấu trúc phần cứng của 8051 từ những chân được nhìn thấy bên ngoài. Dưới đây chỉ mô tả ngắn gọn chức năng của từng chân. Trong 40 chân có đến 32 chân có chức năng như cổng xuất nhập, 24 trong số chúng được dùng cho hai mục đích khác nhau. Mỗi chân có thể là đường xuất nhập, đường điều khiển hoặc là một phần của đòa chỉ hay dữ liệu. Thiết kế thường có bộ nhớ ngoài hay các thiết bò ngoại vi sử dụng những port để xuất nhập dữ liệu. Tám đường trong mỗi port được dùng như một đơn vò giao tiếp song song như máy in, bộ biến đổi tương tự số, v.v… Hoặc mỗi đường cũng có thể hoạt động một cách độc lập trong giao tiếp với các thiết bò đơn bit như: transitor, LED, switch, solenoids … Port 0 Port 0 là cổng song song dùng cho hai mục đích, nó là các chân từ 32 đến 39. Trong những thiết kế nhỏ nó được dùng trong cổng xuất nhập bình thường. Ở những thiết kế có sử dụng bộ nhớ ngoài, nó vừa là bus dữ liệu vừa là byte thấp của bus đòc chỉ. Nó còn dùng chứa bytes mã khi nạp ROM nội. Port 1 Port 1 dành cho cổng xuất nhập và chỉ dành cho mục đích này mà thôi. Nó dùng để giao tiếp với các thiết bò ngoại vi theo từng bit hoặc byte. Port 1 chiếm các chân từ 1 đến 8. Port 2 Port 2 (chân 21 28) là port có hai chức năng. Ngoài mục đích dành cho xuất nhập thông thường nó còn dùng làm byte cao cho bus đòa chỉ bộ nhớ ngoài. Port 3 Port 3 (chân 10 17) là port hai chức năng. Bên cạnh chức năng xuất nhập, các bit của port 3 còn có chức năng điều khiển. Chức năng các bit của port 3 và port 1 được mô tả trong bảng 4.2 PSEN (cho phép nạp chương trình) 8051 có 4 chân tín hiệu điều khiển. PSEN là tín hiệu điều khiển được xuất ra ở chân 29. Tín hiệu điều khiển này cho phép lập trình ở bộ nhớ ngoài và thường được nối với các chân OE của EPROM để đọc mã lệnh từ bộ nhớ ngoài vào thanh ghi lệnh của 8051. Nó xuống mức thấp trong khi đọc lệnh. Mã lệnh đọc từ EPROM, qua bus dữ liệu, được chốt vào thanh ghi của 8051. Khi thi hành chương trình từ ROM nội PSEN được giữ ở mức cao (trạng thái không tác động). EA (truy xuất vùng nhớ ngoài) EA là một tín hiệu vào có thể ở mức cao hay thấp. Nếu ở mức cao 8051 thi hành chương trình ở ROM nội, 4K/8K chương trình. Nếu ở mức thấp, chương trình chỉ được thi hành từ bộ nhớ ngoài. Đối với 8031/8231 EA phải được giữ ở mức thấp vì chúng không có ROM nội. EA cũng chính là chân nhận điện áp mức cao để nạp EPROM nội. ALE (cho phép chốt đòa chỉ) ALE là tín hiệu được xuất ra ở chân 20, rất quen thuộc với những ai đã từng làm việc với vi xử lý 8085, 8086 của Intel. 8051 dùng ALE để phân kênh cho bus đòa chỉ và bus dữ liệu. Khi port 0 được dùng làm bus dữ liệu và byte thấp của bus đòa chỉ – ALE là tín hiệu dùng để chốt đòa chỉ vào thanh ghi chốt bên ngoài trong nữa đầu của một chu kỳ máy. Sau đó Port 0 sẵn sàng để truy xuất dữ liệu trong nữa chu kỳ còn lại. Xung ALE có tần số bằng 1 / 6 lần tần số bộ dao động nội và có thể dùng như một xung clock cho mục đích nào đó khi hệ thống không làm việc. Nếu tốc độ 8051 là 12 MHz thì tần số xung ALE là 2 MHz. Một xung ALE bò mất khi có một lệnh MOVX được thi hành. Ngõ vào dao động nội Bit Tên Chức năng P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 P1.0 P1.1 RXD TXD INT0 INT1 T0 T1 WR RD T2 T2EX Nhận dữ liệu Phát dữ liệu Ngắt ngoài 0 Ngắt ngoài 1 Ngõ vào của Timer / couter 0 Ngõ vào của Timer / couter 1 Đọc dữ liệu từ bộ nhớ ngoài Đọc dữ liệu vào bộ nhớ ngoài Ngõ vào của Timer / couter 2 Bảng 4.2 Chức năng của các chân điều khiển Ngõ vào dao động nội được mô tả như hình dưới đây, có một thạch anh được nối với chân 19 (XTAL1) và 18 (XTAL2). Có thể mắc thêm tụ để ổn đònh dao động. Thạch anh 12 MHz thường dùng cho họ MCs-51, trừ IC 80C31BH có thể dùng thạch anh lên đến 16 MHz. Tuy nhiên, không nhất thiết phải dùng thạch anh mà ta có thể dùng mạch dao động TTL tạo xung Clock đưa vào chân XTAL1 và lấy đảo của nó đưa vào XTAL2. RST (Reset) Ngõ vào RST (chân 19) là chân master reset của 8051. Khi nó ở mức cao (trong khoảng ít nhất 2 chu kỳ máy) các thanh ghi nội được nạp với giá trò tương ứng theo thứ tự khởi động hệ thống. Nguồn cung cấp 8051 sử dụng nguồn đơn 5V. . bytes 128 bytes 256 bytes 256 bytes 256 bytes 2 2 2 3 3 3 Bảng 4.1 So sánh các IC của họ Msc -51 TM I – CẤU TRÚC CỦA 8 051 : Trung tâm của 8 051 vẫn là vi xử. song song 8 051 có thể mở rộng bộ nhớ ngoài lên đến 64Kbs dữ liệu. II – SƠ LƯC VỀ CÁC CHÂN CỦA 8 051 Mục này giới thiệu cấu trúc phần cứng của 8 051 từ những