1. Mục tiêu
Hướng dẫn các bạn sử dụng con trỏ hàm và mảng con trỏ hàm trong KeilC. Mình nghĩ đây là tính năng rất hay mà các bạn ít biết tới.
Tặng cho các bạn đang yêu sơ đồ nguyên lý+mạch in+source code của trái tim 32 LEDs. Các bạn có thể down ở phần cuối bài viết.
Nếu các bạn đọc hiểu tut này, bạn có thể tùy biến nó để biến nó thành sản phẩm của mình. Nếu không thì cứ giữ nguyên như vậy cũng được.
Làm thì dễ nhưng viết bài hướng dẫn thì khó, nên các bạn cho mình một ít thời gian để hoàn thành bài viết nha.
Bắt đầu viết: 13/04/2012
Hoàn thành dự kiến: 20/04/2012
2. Ý tưởng
-Mình sẽ Demo bằng cách viết các hiệu ứng LED đơn giản.
-Mỗi hiệu ứng sẽ nằm gọn trong một hàm.
-Tạo một mảng hàm, trong đó mỗi phần tử là một hiệu ứng LED.
-Thực thi tuần tự các hàm trong mảng.
3. Nhận xét một xíu về phương pháp này
Ưu điểm
- Chương trình rất dễ quản lý, việc cập nhật, thêm, bớt một hiệu ứng hết sức dễ dàng. Sắp xếp thứ tự thực hiện của các hàm chỉ đơn giản là sắp xếp các phần tử mảng.
Khuyết điểm:
- Hơi khó cho các bạn mới nhập môn. Nhưng mình nghĩ cũng không khó lắm các bạn àh.
4. Thực hiện
a. Khai báo con trỏ hàm
b. Khai báo mảng con trỏ hàm
5. Kết quả
Các bạn down sơ đồ nguyên lý, mạch in và chương trình tại đây:
Heart_32_LED.rar
Dùng AT89C52 hoặc AT89S52.
Đệm LED bằng 74HC245 cho cả 4 PORT.
Các bạn phải cấp nguồn ngoài (lấy cục sạc điện thoại 5V)
Gồm 53 hiệu ứng. Thực hiện lần lượt từng hiệu ứng từ đầu tới cuối, mỗi hiệu ứng 2 lần. Sau đó thực hiện ngẫu nhiên. Và lặp lại từ đầu.
Trong thư mục chứa chương trình có lun file mô phỏng Proteus
Mình dùng thạch anh 12MHz, nếu các bạn muốn LED chạy nhanh hơn thì thay đổi delay hoặc đổi thạch anh giá trị nhỏ hơn.
Đẹp nhất khi gắn LED 7 màu (tự đổi màu, khoảng 1.000 VNĐ/LED).
Hình ảnh sản phẩm
Hic làm ra cái nào bị chôm hết cái đó. Khi nào làm cái khác sẽ up hình cho các bạn
6. Gợi ý phát triển
Bạn thử sửa Code chương trình để thực hiện theo các yêu cầu sau:
* Các hiệu ứng lần lượt thực hiện từ cuối đến đầu tiên và lặp lại. Mỗi hiệu ứng thực hiện 3 lần.
* Chọn hiệu ứng thực hiện ngẫu nhiên. Mỗi hiệu ứng thực hiện 3 lần.
* Mỗi hiệu ứng chỉ thực hiện trong khoảng 20s. Sau đó chuyển sang hiệu ứng khác (chỉ chuyển hiệu ứng khi hiệu ứng hiện tại đã kết thúc, nếu không phải chờ hiệu ứng hiện tại kết thúc).
Hướng dẫn các bạn sử dụng con trỏ hàm và mảng con trỏ hàm trong KeilC. Mình nghĩ đây là tính năng rất hay mà các bạn ít biết tới.
Tặng cho các bạn đang yêu sơ đồ nguyên lý+mạch in+source code của trái tim 32 LEDs. Các bạn có thể down ở phần cuối bài viết.
Nếu các bạn đọc hiểu tut này, bạn có thể tùy biến nó để biến nó thành sản phẩm của mình. Nếu không thì cứ giữ nguyên như vậy cũng được.
Làm thì dễ nhưng viết bài hướng dẫn thì khó, nên các bạn cho mình một ít thời gian để hoàn thành bài viết nha.
Bắt đầu viết: 13/04/2012
Hoàn thành dự kiến: 20/04/2012
2. Ý tưởng
-Mình sẽ Demo bằng cách viết các hiệu ứng LED đơn giản.
-Mỗi hiệu ứng sẽ nằm gọn trong một hàm.
-Tạo một mảng hàm, trong đó mỗi phần tử là một hiệu ứng LED.
-Thực thi tuần tự các hàm trong mảng.
3. Nhận xét một xíu về phương pháp này
Ưu điểm
- Chương trình rất dễ quản lý, việc cập nhật, thêm, bớt một hiệu ứng hết sức dễ dàng. Sắp xếp thứ tự thực hiện của các hàm chỉ đơn giản là sắp xếp các phần tử mảng.
Khuyết điểm:
- Hơi khó cho các bạn mới nhập môn. Nhưng mình nghĩ cũng không khó lắm các bạn àh.
4. Thực hiện
a. Khai báo con trỏ hàm
b. Khai báo mảng con trỏ hàm
5. Kết quả
Các bạn down sơ đồ nguyên lý, mạch in và chương trình tại đây:
Heart_32_LED.rar
Dùng AT89C52 hoặc AT89S52.
Đệm LED bằng 74HC245 cho cả 4 PORT.
Các bạn phải cấp nguồn ngoài (lấy cục sạc điện thoại 5V)
Gồm 53 hiệu ứng. Thực hiện lần lượt từng hiệu ứng từ đầu tới cuối, mỗi hiệu ứng 2 lần. Sau đó thực hiện ngẫu nhiên. Và lặp lại từ đầu.
Trong thư mục chứa chương trình có lun file mô phỏng Proteus
Mình dùng thạch anh 12MHz, nếu các bạn muốn LED chạy nhanh hơn thì thay đổi delay hoặc đổi thạch anh giá trị nhỏ hơn.
Đẹp nhất khi gắn LED 7 màu (tự đổi màu, khoảng 1.000 VNĐ/LED).
Hình ảnh sản phẩm
Hic làm ra cái nào bị chôm hết cái đó. Khi nào làm cái khác sẽ up hình cho các bạn
6. Gợi ý phát triển
Bạn thử sửa Code chương trình để thực hiện theo các yêu cầu sau:
* Các hiệu ứng lần lượt thực hiện từ cuối đến đầu tiên và lặp lại. Mỗi hiệu ứng thực hiện 3 lần.
* Chọn hiệu ứng thực hiện ngẫu nhiên. Mỗi hiệu ứng thực hiện 3 lần.
* Mỗi hiệu ứng chỉ thực hiện trong khoảng 20s. Sau đó chuyển sang hiệu ứng khác (chỉ chuyển hiệu ứng khi hiệu ứng hiện tại đã kết thúc, nếu không phải chờ hiệu ứng hiện tại kết thúc).
Comment