Xây dựng các bài tập thực hành trên kit phát triển at89s52 cho môn hệ thống nhúng

pdf 6 trang Gia Huy 17/05/2022 2000
Bạn đang xem tài liệu "Xây dựng các bài tập thực hành trên kit phát triển at89s52 cho môn hệ thống nhúng", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfxay_dung_cac_bai_tap_thuc_hanh_tren_kit_phat_trien_at89s52_c.pdf

Nội dung text: Xây dựng các bài tập thực hành trên kit phát triển at89s52 cho môn hệ thống nhúng

  1. XÂY DỰNG CÁC BÀI TẬP THỰC HÀNH TRÊN KIT PHÁT TRIỂN AT89S52 CHO MÔN HỆ THỐNG NHÚNG Tạ Quang Hùng* * Khoa CNTT, Trường Đại học Hà Nội Tóm tắt: Việc đào tạo sinh viên phát triển ứng dụng trên hệ thống nhúng luôn là việc rất khó vì đụng chạm tới cả kiến thức về phần cứng và phần mềm. Đại đa số sinh viên ở đại học khó mà có thể làm chủ được hoàn toàn dự án mà cần phải có sự hỗ trợ tích cực từ giảng viên, các công cụ mô phỏng, và cả những kit phát triển thực tế. Tuy nhiên việc lựa chọn một kit phát triển phù hợp, không quá khó, cũng là một vấn đề quan trọng. Bài báo này giới thiệu về ứng dụng kit phát triển AT89S52 trong đào tạo lập trình hệ nhúng cho họ vi điều khiển 8051. Từ khóa: Hệ thống nhúng, vi điều khiển, 8051, AT89S52 I. GIỚI THIỆU CHUNG Vi điều khiển AT89S52 thuộc họ 8051 được Atmel sản xuất cũng khá lâu. Tuy nhiên, để đưa sinh viên tiếp cận từng bước với lập trình nhúng cho các họ vi điều khiển, thì họ 8051 là sự lựa chọn tuyệt vời. Do cấu trúc của 8051 không quá phức tạp, lại được hỗ trợ nhiều từ cộng đồng, nhiều công cụ miễn phí, nhiều video hướng dẫn trên Youtube, nên sinh viên có thể dễ dàng tham khảo từ nhiều nguồn tài liệu trong quá trình khó khăn ban đầu. Hình 1. Kit phát triển AT89S52 và sơ đồ nguyên lý Bộ kit AT89S52 được trang bị khá nhiều linh kiện điện tử: cảm biến nhiệt, bàn 57
  2. phím đơn, ma trận bàn phím, LED đơn, LED 7 thanh, LCD(16x2, 218x64), rơ-le, còi báo, EEPROM, bộ tạo xung dao động, bộ tạo thời thực (RTC), chuyển đổi tương tự-số (ADC), truyền thông nối tiếp UART, và hỗ trợ nạp trực tiếp ISP. Do vậy, sử dụng kit AT89S52 có thể triển khai rất nhiều dạng bài tập và đồ án cho sinh viên ngành công nghệ thông tin. Sau đây là một số ví dụ về các dạng bài tập cơ bản. II. CÁC BÀI THỰC HÀNH CƠ BẢN BẰNG NGÔN NGỮ LẬP TRÌNH C A. Thực hành với LED đơn và LED 7 thanh Trong bài thực hành này, sinh viên sẽ phải làm quen với việc sử dụng ngôn ngữ lập trình C để quét trạng thái, hiển thị đèn LED và bắt phím bấm trên mạch. Thông qua nhưng đoạn mã C điều khiển khối đơn giản như các vòng lặp WHILE, FOR kết hợp với các lệnh ghi dịch, các đèn LED đơn trên mạch sẽ được bật tắt tuần tự để kiểm tra trạng thái làm việc. Trong các bài tập kèm theo, sinh viên sẽ mở rộng ứng dụng những đoạn code kiểm tra mẫu này để điều khiển và cập nhật trạng thái của mạch. Hình 1 mô tả một đoạn code kiểm tra viết bằng C và kết quả hiển thị trên LCD và LED đơn. Hình 1. Code và kết quả điều khiển quét LED đơn Hình 2 mô tả chương trình kiểm tra LED 7 thanh. Quá trình quét và kiểm tra LED 7 thanh phải bật tắt từng thanh trong đèn LED, sau đó tạo một đoạn code đếm từ 0 tới F để kiểm tra việc hiển thị cho cơ số 10 và cơ số 16. Ứng dụng LED 7 thanh trong bài tập 58
  3. khá đa dạng, đặc biệt là các bài tập về hiển thị nhiệt độ, mạch đếm, hoặc thiết lập trạng thái cho mạch. Figure 2. Code và kết quả điều khiển LED 7 thanh Bài tập này giúp sinh viên ngoài việc điều khiển dữ liệu ra LED 7 thanh, còn phải xử lý mạch giải mã để bật tắt các đèn tương ứng do tất cả LED 7 thanh đều đấu chung một bus dữ liệu. Qua đó, sinh viên hình dung được những khái niệm trên lý thuyết về tranh chấp bus dữ liệu, các xử lý quét đèn LED 7 thanh đủ nhanh để mắt thường không nhận ra trạng thái chớp tắt của đèn. 59
  4. B. Thực hành với ma trận phím bấm Figure 3. Code và kết quả điều khiển ma trận phím bấm Trong các bài thực hành, có nhưng bài tập đòi hỏi phải nhập nhiều phím như lập trình tạo ra máy tính số (Calculator). Với những dạng bài này, phím nhập vào không đơn thuần chỉ là trạng thái bật tắt mà còn có mã phím như các số 0, 1, 2, và các phím chức năng tính toán +, -, x, : và dấu =. Do đó, ứng dụng ma trận phím để làm những bài tập kiểu này rất thú vị. Nó giúp cho sinh viên cảm nhận được việc tự làm ra một sản phẩm khá thông dụng trong thực tế phải qua các bước gì. C. Thực hành với LCD Sử dụng LCD trong các bài tập lập trình trên hệ nhúng là gần như bắt buộc. Đặc trưng của hệ nhúng là khó gỡ rối nếu gặp lỗi. Do vậy, việc phải viết kết quả và cập nhật trạng thái các biến ra LCD là cách đơn giản nhất mà sinh viên có thể tiếp cận. Tuy nhiên việc xử lý điều khiển LCD cũng không phải đơn giản. Để đơn giản hóa việc điều khiển LCD, sinh viên được làm việc trên ứng dụng mô phỏng LCD (Hình 4). Qua ứng dụng này, sinh viên có thể học được cách điều khiển từng chế độ làm việc, lệnh điều khiển, và hiển thị dữ liệu trên LCD qua từng bước đơn giản. 60
  5. Figure 4. Ứng dụng mô phỏng LCD Ứng dụng mô phỏng LCD này có thể bổ sung thêm mã JavaScript để mô phỏng những phần điều khiển phức tạp như nạp font mới, vẽ lại ký tự điều khiển đặc biệt, hay hiển thị tiếng việt cho các thông báo của mạch. Sau khi đã hình dung được cách làm việc với LCD, sinh viên sẽ được tiếp cận với code mẫu để kiểm tra LCD. Trong các bài tập về tính toán xử lý ngắt, điều khiển timer, hay điều khiển truyền thông nối tiếp, LCD sẽ đóng vai trò không thể thiếu cho việc hiển thị thông tin và giúp gỡ rối trạng thái. 61
  6. Figure 5. Code và kết quả bài thí nghiệm điều khiển LCD III. KẾT LUẬN Nội dung bài báo trình bày về ứng dụng kit AT89S52 để làm các bài thực hành tiêu chuẩn cho họ vi điều khiển 8051. Những bài thực hành này hiện đang được dùng trong đào tạo sinh viên các ngành công nghệ thông tin của khoa CNTT trường Đại học Hà nội. Qua những bài thực hành trên kit thực, sinh viên có thể thật sự hình dung về quy trình phát triển những ứng dụng nhúng trên thực tế cũng như hình dung được việc điều khiển ghép nối các linh kiện điện tử trên mạch điện. Do đó, khả năng tiếp thu bài giảng và kỹ năng thực hành sẽ được nâng cao hơn. TÀI LIỆU THAM KHẢO [1] M. A. Mazidi, J. G. Mazidi, and R. D. McKinlay, "The 8051 Microprocessor and Embedded Systems using Assembly and C", 2nd Ed., Pearson, 2006. [2] ARM Limitted, Keil uVision 5, 62