Chat
Danh mục
Giới thiệu vi điều khiển AT89S51

Giới thiệu vi điều khiển AT89S51

Số lượng:
Thêm vào giỏ
Giới thiệu vi điều khiển AT89S51 đã được thêm vào giỏ hàng



Một bộ vi điều khiển (microcontroller) được xem như là “một máy tính trong một chip” – nó là một mạch điện tích hợp trên một chip, có thể lập trình được, dùng để điều khiển hoạt động của một hệ thống.



1. Tổng quan về vi điều khiển
Nó bao gồm bộ xử lý trung tâm CPU, các bộ bán dẫn (ROM cho bộ nhớ chương trình, RAM cho bộ nhớ dữ liệu), khối vào ra I/O, bộ phát xung nhịp đồng hồ clock và các phần ngoại vi khác.
Người sử dụng tiến hành lập trình, viết một chương trình cụ thể riêng để giúp bộ vi điều khiển hoạt động điều khiển tối ưu một hệ thống cụ thể, một quá trình cụ thể. Như vậy, một loại vi điều khiển có thể dùng với các ứng dụng khác nhau nhờ các chương trình điều khiển khác nhau.
Bộ vi điều khiển là một thiết bị điện tử có thể lập trình được, được sử dụng rộng rãi vì giá thành rẽ. Một cách đơn giản, có thể xem bộ vi điều khiển gồm:
- Bộ đệm (Buffer) và bộ chuyển đổi vào ra I/O để biến đổi mức tín hiệu cần thiết cho mục đích điều khiển.
- Để truyền tín hiệu vào ta dùng các đường “bus”. Có thể xem bus như những xa lộ trong đó các tín hiệu khác nhau di chuyển. CPU sử dụng 3 loại bus: bus dữ liệu, bus địa chỉ và bus điều khiển.
- Mạch đồng hồ clock phát tín hiệu tần số cố định để cung cấp thông tin thời gian cho toàn bộ hệ thống.
- Các bộ nhớ và ngoại vi khác: bộ nhớ để lưu trữ dữ liệu hoặc chương trình. Đây là bộ nhớ bổ sung cho bộ nhớ chính chứa trong MCU (Microcontroller Unit) đơn vị điều khiển trung tâm.


Hình 1. Sơ đồ khối của bộ vi điều khiển
2. Họ vi điều khiển AT89Sxx
Họ vi điều khiển AT89Sxx là bộ vi điều khiển của hãng Atmel, được phát triển từ họ vi điều khiển AT89Cxx, với nhiều cải tiến và đặc biệt là có thêm khả năng nạp chương trình theo chế độ nối tiếp rất đơn giản và tiện lợi cho người sử dụng.


Bảng 1: Thông số dung lượng RAM/ROM của họ 89Sxx
Bộ vi điều khiển AT89S51 có các thông số sau:
- 4Kbyte ROM

- 128byte RAM

- 4 cổng vào ra I/O

- 2 bộ định thời

Sơ đồ chân của bộ vi điều khiển AT89S51 được thể hiện trên hình 3.12.
1) Chân VCC:Chân số 40 là VCC cấp điện áp nguồn cho vi điều khiển. Nguồn điện cấp là +5V±0.5.
2) Chân GND: Chân số 20 nối GND (hay nối Mass).
3) Port 0 (P0): Port 0 gồm 8 chân (từ chân 32 đến 39) có hai chức năng:

- Chức năng xuất/nhập: các chân này được dùng để nhận tín hiệu từ bên ngoài vào để xử lí, hoặc dùng để xuất tín hiệu ra bên ngoài, chẳng hạn xuất tín hiệu để điều khiển led đơn sáng tắt.

- Chức năng là bus dữ liệu và bus địa chỉ (AD7-AD0) : 8 chân này (hoặc Port 0) còn làm nhiệm vụ lấy dữ liệu từ ROM hoặc RAM ngoại (nếu có kết nối với bộ nhớ ngoài), đồng thời Port 0 còn được dùng để định địa chỉ của bộ nhớ ngoài.

4) Port 1 (P1): Port P1 gồm 8 chân (từ chân 1 đến chân 8), chỉ có chức năng làm các đường xuất/nhập, không có chức năng khác.

5) Port 2(P2): Port 2 gồm 8 chân (từ chân 21 đến chân 28) có hai chức năng:
- Chức năng xuất/nhập.

- Chức năng là bus địa chỉ cao (A8-A15): khi kết nối với bộ nhớ ngoài có dung lượng lớn, cần 2 byte để định địa chỉ của bộ nhớ, byte thấp do P0 đảm nhận, byte cao do P2 này đảm nhận.

6) Port 3 (P3): Port 3 gồm 8 chân (từ chân 10 đến 17)

- Chức năng xuất/nhập.

- Với mỗi chân có một chức năng riêng thứ hai như trong bảng sau:


Bảng 2. Chức năng các chân của port 3
7) Chân RESET (RST): Ngõ vào RST ở chân 9 là ngõ vào Reset dùng để thiết lập trạng thái ban đầu cho vi điều khiển. Hệ thống sẽ được thiết lập lại các giá trị ban đầu nếu ngõ này ở mức 1 tối thiểu 2 chu kì máy.

8) Chân XTAL1 và XTAL2: Hai chân này có vị trí chân là 18 và 19 được sử dụng để nhận nguồn xung clock từ bên ngoài để hoạt động, thường được ghép nối với thạch anh và các tụ để tạo nguồn xung clock ổn định.

9) Chân cho phép bộ nhớ chương trình PSEN:
- PSEN ( program store enable) tín hiệu được xuất ra ở chân 29 dùng để truy xuất bộ nhớ chương trình ngoài. Chân này thường được nối với chân OE (output enable) của ROM ngoài.

- Khi vi điều khiển làm việc với bộ nhớ chương trình ngoài, chân này phát ra tín hiệu kích hoạt ở mức thấp và được kích hoạt 2 lần trong một chu kì máy.

- Khi thực thi một chương trình ở ROM nội, chân này được duy trì ở mức logic không tích cực (logic 1).

- Không cần kết nối chân này khi không sử dụng đến.

10) Chân ALE (chân cho phép chốt địa chỉ-chân 30)
- Khi Vi điều khiển truy xuất bộ nhớ từ bên ngoài, port 0 vừa có chức năng là bus địa chỉ, vừa có chức năng là bus dữ liệu do đó phải tách các đường dữ liệu và địa chỉ. Tín hiệu ở chân ALE dùng làm tín hiệu điều khiển để giải đa hợp các đường địa chỉ và các đường dữ liệu khi kết nối chúng với IC chốt.

- Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động đưa vào Vi điều khiển, như vậy có thể dùng tín hiệu ở ngõ ra ALE làm xung clock cung cấp cho các phần khác của hệ thống.

- Khi không sử dụng có thể bỏ trống chân này.
11) Chân EA: Dùng để xác định chương trình thực hiện được lấy từ ROM nội hay ROM ngoại.

- Khi EA nối với logic 1(+5V) thì Vi điều khiển thực hiện chương trình lấy từ bộ nhớ nội.

- Khi EA nối với logic 0(0V) thì Vi điều khiển thực hiện chương trình lấy từ bộ nhớ ngoại.


Hình 2. Sơ đồ chân vi điều khiển AT89S51
3. Một số đặc điểm cấu trúc và chức năng đặc biệt
1) Watch dog
Bộ vi điều khiển trên ôtô được đặt trong môi trường có nhiễu điện thế rất mạnh (do bộ đánh lửa), có thể làm thay đổi dữ liệu hệ thống bộ vi điều khiển, lám chương trình phần mềm chạy sai. Khi chương trình phần mềm mất điều khiển nõ có thể in đè lên các dữ liệu quan trọng trong bộ nhớ.

Do đó, cần phải khởi động lại chương trình hoạt động của máy tính (khi CPU “bị treo” trong một khoảng thời gian, do đó nó sẽ không thực hiện một số đoạn mã làm ảnh hưởng hệ thống điều khiển.

Lúc này CPU sẽ cảm nhận các hạn chế và yêu cầu tự động reset lại chương trình hoạt động máy tính). Bộ vi điều khiển có đồng hồ Watch dog cảm nhận biết sai lệch về thời gian, sự lỗi nhịp nó sẽ yêu cầu khởi động lại chương trình hoạt động máy tính và kết quả là quá trình hoạt động của hệ thống sẽ không bao giờ mất điều khiển.
2) Cấu trúc ngắt
Những bộ vi điều khiển phục vụ các đơn vị ngoại vi theo nguyên tắc hỏi vòng, thường bị hạn chế về hiệu suất do phải bỏ ra một phần thời gian đáng kể để hỏi lần lượt theo một trật tự nhất định trạng thái của từng đơn vị vào-ra.

Để tăng hiệu suất và để giảm mức độ phức tạp của chương trình, người ta tạo thêm tính năng ngắt cho các bộ vi điều khiển. Ngắt giúp loại trừ hoàn toàn công việc hỏi vòng, đơn vị ngoại vi chỉ gửi yêu cầu phục vụ (tức là yêu cầu ngắt) khi cần thiết.
Cấu trúc ngắt là một trong những cấu trúc quan trọng của vi điều khiển trên ôtô, các ứng dụng như điều khiển ABS (hệ thống phanh chống bó cứng), điều khiển động cơ được xem như là những điều khiển theo sự kiện động.

Các hệ thống điều khiển theo sự kiện động yêu cầu việc thực thi lệnh bình thường ngưng lại để nhường chỗ cho các tác vụ có mức ưu tiên cao hơn. Những tác vụ có tính ưu tiên cao này gọi là ngắt và sẽ kích hoạt một chương trình đặc biệt gọi là chương trình xử lý ngắt.
Sau khi xử lý ngắt được thực thi xong và kết thúc bằng lệnh trở về từ ngắt, chương trình chính tiếp tục được thực hiện từ chỗ nó tạm dừng. Khi ngắt xảy ra và được CPU chấp thuận chương trình chính tạm dừng và các hoạt động sau đây sẽ xảy ra:
1. Hoàn tất việc thực thi lệnh đang thực hiện.
2. Lưu lại vị trí các hoạt động đang thực hiện.
3. Lưu lại trạng thái bộ vi xử lý.
4. Bộ vi xử lý ghi nhận yêu cầu của đơn vị có mức ưu tiên cao nhất.
5. Thực hiện chương trình con ứng với đơn vị vào-ra yêu cầu ngắt.
6. Hồi phục trạng thái của vi xử lý cất giữ khi nhận ngắt.
7. Chuyển điều khiển trử lại lệnh kế tiếp ngay sau khi lệnh ở vị trí bị ngắt để tiếp tục thực hiện chương trình chính.
3) Điều chế độ rộng xung: Làm thay đổi hệ số đầy xung để áp dụng trong điều khiển các van, kim phun hay môtơ bước.
4) Tự chuẩn đoán: Bộ vi điều khiển có hệ thống tự chuẩn đoán, trong đó bộ nhớ ghi lại toán bộ các sự cố ở các bộ phận quan trong và báo cho người lái biết hệ thống có sự cố.
5) Fail – Safe: Khi có các sự cố kỹ thuật, khi xe đang hoạt động (mất tín hiệu cảm biến) việc điều khiển ổn định xe trở nên khó khăn hơn. Chức năng này cho phép máy tính lấy các dữ liệu chuẩn trong bộ nhớ để tiếp tục điều khiển động cơ hoặc ngừng động cơ nếu nhận biết các sự cố nguy hiểm