6.1.1. Giới thiệu về vi điều khiển:
- Phân biệt giữa vi điều khiển và hệ vi xử lý:
Ta quan sát sơ đồ khối như hình bên dưới:
Hình 6.1 Sơ đồ khối ( a: hệ vi xử lý, b: vi diều khiển)
+ Với các công việc vừa và nhỏ, cần một kích thước nhỏ, giá thành thấp mà ta đưa cả
một máy tính vào điều khiển thì sẽ gây ra lãng phí và người sử dụng khó chấp nhận...
+ Nhưng với vi điều khiển nó là sự gói gọn của một hệ vi xử lý chính vì thế nó rất thích hợp cho các ứng dụng vừa và nhỏ như:
Thiết bị nội thất gia đình Văn phòng ô tô
Đồ điện trong nhà Máy đàm thoại Máy điện thoại Các hệ thống an toàn Các bộ mở cửa ga-ra xe Máy trả lời
Máy Fax
Máy tính gia đình Tivi
Truyền hình cáp Máy quy camera
§iÒu khiÓn tõ xa Trò chơi điện tử
Điện thoại tổ ong Các nhạc cụ điện tử Máy khâu
Điện thoại Máy tính
Các hệ thống an toàn Máy Fax
Lò vi sóng Máy sao chụp Máy in lazer Máy in màu Máy nhắn tin
Máy tính hành trình
Điều khiển động cơ
Túi đệm khí Thiết bị ABS
Đo lường
Hệ thống bảo mật
§iÒu khiÓn truyÒn tin Giải trí
Điều hoà nhiệt độ
Điện thoại tổ ong
Mở cửa không cần chìa khoá
General- CPU Purpose Micro- processor
ROM RAM
Timer Serial
COM Port Port I/O
CPU RAM ROM
I/O Timer
Serial COM Port Data bus
Address bus
(b) Microcontroller
Thiết bị nội thất gia đình Văn phòng ô tô
Điều khiển ánh sáng Máy nhắn tin
Máy chơi Game
Đồ chơi
Các dụng cụ tập thể hình
Bảng 6.1 Các ứng dụng vi điều khiển
- Hiện nay trên thế giới có nhiều hãng chế tạo ra vi điều khiển như: ATMEL, Phiplip, Intel... Các họ vi điều khiển phổ biến như: Vi điều khiển họ 8051, Vi điều khiÓn AVR, Vi ®iÒu khiÓn PIC...
- Trong nội dung này chúng ta sẽ được học về vi điều khiển họ 8051 với một số lý do chÝnh nh:
+ Đây là họ vi điều khiển phổ biến và đã có lịch sử phát triển từ năm 1981, cho
đến nay nó vẫn đang được sử dụng rộng rãi và có giá thành thấp.
+ Vi điều khiển họ 8051 có cấu trúc đơn giản, rất dễ trong việc lập trình, dễ dàng tìm kiếm tài liệu.
+ Học được vi điều khiển 8051 rất thuận lợi để ta học tiếp lên các vi điều khiển khác.
- Lịch sử ra đời của vi điều khiển họ 8051:
Vào năm 1981. Hãng Intel giới thiệu một số bộ vi điều khiển được gọi là 8051.
Bộ vi điều khiển này có 128 byte RAM, 4K byte ROM trên chíp, hai bộ định thời, một cổng nối tiếp và 4 cổng (đều rộng 8 bit) vào ra tất cả được đặt trên một chíp. Lúc ấy nó
được coi là một “hệ thống trên chíp”. 8051 là một bộ xử lý 8 bit có nghĩa là CPU chỉ có thể làm việc với 8 bit dữ liệu tại một thời điểm. Dữ liệu lớn hơn 8 bit được chia ra thành các dữ liệu 8 bit để cho xử lý. 8051 có tất cả 4 cổng vào - ra I/O mỗi cổng rộng 8 bit. Mặc dù 8051 có thể có một ROM trên chíp cực đại là 64 K byte, nhưng các nhà sản xuất lúc đó đã cho xuất xưởng chỉ với 4K byte ROM trên chíp. Điều này sẽ được bàn chi tiết hơn sau này.
Vi điều khiển họ 8051 đã trở nên phổ biến sau khi Intel cho phép các nhà sản xuất khác sản xuất và bán bất kỳ dạng biến thế nào của 8051 mà họ thích với điều kiện họ phải để mã lại tương thích với 8051. Điều này dẫn đến sự ra đời nhiều phiên bản của 8051 với các tốc độ khác nhau và dung lượng ROM trên chíp khác nhau được bán bởi hơn nửa các nhà sản xuất. Điều này quan trọng là mặc dù có nhiều biến thể khác nhau của 8051 về tốc độ và dung lương nhớ ROM trên chíp, nhưng tất cả chúng đều tương thích với 8051 ban đầu về các lệnh. Điều này có nghĩa là nếu ta viết chương trình của mình cho một phiên bản nào đó thì nó cũng sẽ chạy với mọi phiên bản bất kỳ khác mà không phân biệt nó từ hãng sản xuất nào.
6.1.2. Sơ đồ cấu trúc
- Sơ đồ cấu trúc tổng quát của họ vi điều khiển 8051:
Hình 6.2 Sơ đồ cấu trúc của họ vi điều khiển 8051:
- Vai trò các khối:
+ CPU: Đơn vị xử lý trung tâm của vi điều khiển. Có thể ví đây như là bộ não, CPU của VĐK 8051 là bộ vi xử lý 8 bit có tốc độ xử lý lên tới vài MHz, có 16 bít địa chỉ.
+ INTERRUPT Control: Là khối điều khiển ngắt, khối này nhận các tín hiệu ngắt từ bên ngoài ( ngắt ngoài 0, ngắt ngoài 1) hoặc từ bên trong ( ngắt timer...) rồi đưa tới tác động lên CPU.
+ ROM: Đây là bộ nhớ chỉ đọc của VĐK hay còn gọi đây là bộ nhớ chương trình.
Bộ nhớ này có vai trò lưu trữ chương trình do người lập trình nạp vào VĐK.
+ RAM: Đây là bộ nhớ truy cập ngẫu nhiên của VĐK. Bộ nhớ này bao gồm các thanh ghi, ngăn xếp, RAM bít, RAM nháp, các thanh ghi có chức năng đặc biệt (SFR)...
+ Timer: Đây là các bộ định thời 16 bít của VĐK. Các bộ định thời này với rất nhiều ứng dụng trong đó có hai ứng dụng cơ bản đó là: Bộ đếm và định thời.
+ OSC: Đây là khối tạo dao động cấp xung nhịp cho CPU của VĐK hoạt động. Khối này thực hiện việc áp điện vào tinh thể thạch anh để tạo ra dao động sau đó chia tần dao động này cho 12 để ra được xung nhịp cấp cho CPU và một số chức năng khác...
+ BUS Control: Đây là khối điều khiển BUS, khối này có nhiệm vụ giúp cho VĐK trao đổi dữ liệu với bộ nhớ ngoài hoặc các thiết bị ngoại vi.
+ I/O Port: Đây là các cổng vào ra song song của VĐK. VĐK 8051 gồm có 4 port 8 bit: P0, P1, P2, P3. Các cổng này cho phép ta trao đổi dữ liệu song song 8 bit.
+ Serial Port: Đây là cổng nối tiếp, cổng này giúp co VĐK trao đổi dữ liệu nối tiếp không đồng bộ với nhau hoặc với máy tính hoặc thiết bị ngoại vi.
6.1.3. Các thông số cơ bản
- Các thông số cơ bản một vi điều khiển.
+ Tốc độ + Số bít dữ liệu
+ Số cổng vào ra song song + Số cổng nối tiếp
+ Dung lượng bộ nhớ ROM, RAM + Số nguồn ngắt
+ Sè bé timer + Kiểu đóng gói + Nguồn cấp...
- XÐt vi ®iÒu khiÓn 8051. ( 89C51, 89S51....)
+ Tốc độ: Tần số thạch anh lắp cho vi điều khiển có thể từ vài Mhz đến vài chục Mhz ( tuỳ vào từng thành viên)
+ Số bít dữ liệu: 8 bit
+ Số cổng vào ra song song: 4 cổng 8 bit ( từ Port0 đến Port3) + Số cổng nối tiếp: 1 cổng UART
+ Dung lượng bộ nhớ ROM, RAM ROM chương trình: 4Kbyte RAM: 128 byte
+ Số nguồn ngắt: 5 nguồn ngắt; 2 ngắt ngoài, 2 ngắt timer, 1 ngắt nối tiếp.
+ Sè bé timer: 2 bé timer 16 bÝt
+ Kiểu đóng gói: phổ biến là DIP40 ( kiểu hai hàng chân và có 40 chân ) + Nguồn cấp: 3VDC đến 5VDC, max 5,5VDC.
Lưu ý: Với các thành viên khác thì các thông số như: ROM, RAM, Ngắt,Timer .. có thể khác đi.