Ngày 29/06/2011 23:05:39 / Lượt xem: 82206 / Người đăng:
biendt
/ Tác giả: vanviet_haui.dt2k4
/ Nguồn: Whyou
Làm LED trái tim với 8501
Trái tim là bộ phận quan trọng của con người đồng thời trái tim tượng trưng cho tình yêu đẹp của đôi trai gái. Các bạn trai đọc điện - điện tử muốn trinh phục được chị em phụ nữ thì phải có gì tặng chị em thì chị em mới cảm động được. Bỏ tiên ra mua món quà thì không hay lắm nhưng chúng ta bỏ tiền ra để làm một cái gì đó tặng thì món quà đó thật là ý nghĩa. Khi đó chúng ta vừa học được và lại có quà tặng bạn gái đồng thời chiếm được tình cảm của bạn gái. Chính vì đó bài viết này sẽ hướng dẫn mọi người làm mạch trái tim đơn giản dùng 8501. Mạch rất đơn giản và chương trình cũng không khó.
I - Sơ lược về họ vi điều khiển 8501
Khi nhắc đến vi điều khiển, không ai là không biết họ vi điều khiển của 8051 do ATMEL cung cấp và phát triển. Thông dụng nhất là các sản phẩm của dòng 89Cxxx và 89sxxx. Ưu điểm lớn nhất của họ vi điều khiển 8051 là:
+Giá chip rẻ. Chỉ từ 20 nghìn là bạn có thể có trong tay chip 89C52
+Cấu tạo đơn giản với 35 câu lệnh ASM
+Với 89c52 có 8kb bộ nhớ dữ liệu, 128bye ram, 32 chân I/O, 3 timer, 8 ngẳt, hoạt động ở điện áp 5V, đóng gói với kiểu chân dip40 chân và kiểu PLCC
+Tần số tối đa: 33Mhz
89c52 với 4 PORT có khả năng nhập,xuất. Gồm PORT0 (P0), PORT1 (P1), PORT2 (P2), PORT3 (P3)
Mỗi PORT gồm 8 PIN( hay chân) và có thể được đinh địa chỉ từng bit. ví dụ:
P1^0, P1^1... P1^8 tương tự với các PORT 0,2,3
Các PIN của PORT chỉ có 2 trạng thái là: mức cao(1) có giá trị xấp xỉ giá trị VCC. Mức thấp(0) có giá trị xấp xỉ 0V(GND)
II - Tổng quan và tính toán cho LED phát quang
1) Hoạt động và phân cực cho LED
LED phát quang được phát sáng khi chúng ta cấp nguồn cho nó thì nó sẽ phát sáng. Có rất nhiều LED phát quang với mầu sắc, kích thước chủng loại khác nhau. Và được ứng dụng trong thắp sáng, trang trí...
Bản chất của LED chính là một diode có khả năng phát sáng khi phân cực thuận. Khi Led sáng thi điện áp rơi trên LED có giá trị nhỏ nhất là 0.7V và lớn nhất gần 2V tùy từng loại LED. Tùy vào từng loại LED mà có giá trị dòng qua LED khác nhau để LED sáng bình thường. Thông thường thì nguồn cấp cho LED 3V thì chúng ta không cần điện trở hạn dòng nhưng đối với nhiều mạch người ta không thể dùng thêm một nguồn nữa nên người ta dùng nguồn cho LED chung với nguồn điều khiển (5V) và lắp thêm con điện trở nối tiếp cho LED. Mục đích là để hạn dòng cho LED không cho dòng qua LED lớn hơn giá trị định mức. Nếu mà quá dòng thì LED sẽ cháy. Tính toán điện trở đó như thế nào?
2) Cách tính toán điện trở hạn dòng cho LED
Nếu chúng ta sử dụng nguồn 3V thì không cần phải điện trở mà có thể lắp trực tiếp được nhưng nếu mà cho nguồn lớn hơn 3V thì cần phải có thêm một con điện trở hạn dòng cho LED
Chúng ta áp dụng lý thuyết mạch điện vào tính toán điện trở này như sau:
R = (Vcc - Uled)/Iled
với Uled là điện áp rơi trên LED phát quang. Nằm trong 0.7 ~ 2V tùy từng loại LED
Iled là dòng điện định mức qua LED.
Dựa vào công thức đó chúng ta sẽ tính được giá trị điện trở cho vào cho từng loại LED.
Lấy ví dụ : Mua LED có Uled = 1V, Iled = 10mA với điện áp nguồn là 5V. Áp dụng công thức trên ta sẽ tính được R = 400 ôm.
3) Điều khiển LED với 8501
LED phát quang chúng ta chỉ cần phân cực thuận là nó sẽ sáng.Trong 8501 chỉ điều khiển được mức 1 (5V) và mức 0 (0V) nên do đó LED khi mắc vào chân của 8501 sẽ được điều khiển tắt hoặc mở tùy thuộc vào trạng thái của chân 8501 được điều khiển như thế nào? Có hai cách mắc LED và chân 8501
+ Mắc ở chế độ xả dòng
Với mắc ở chế độ này thì LED sẽ sáng rất tối vì công suất của chân 8501 rất yếu. Không đủ cấp dòng cho LED sáng với chế độ định mức. Nên phương pháp này sẽ làm LED sáng tối nên không hiểu quả. Chân 8501 ở mức 1 thì LED sáng và mức 0 thì tắt
+ Mắc ở chế độ hút dòng
Mắc kiểu này thì LED sáng hết công suất. Đây là phương pháp ghép trực tiếp nhưng vi xử lý nó chỉ chịu được một giá trị dòng nhất định qua nó. Nếu mà quá nhiều LED ghép nối thế này thì tất cả dòng sẽ qua vi xử lý gây ra quá dòng trên vi xử lý gây nên cháy chíp và chíp nóng không hoạt động được lâu. Phương pháp này chỉ mang tính lắp ít LED và điều khiển không đồng thời. Giải pháp là gắn thêm một transitor đệm. Đối với mắc kiểu này thì mức 1 thì LED tắt và mức 0 thì LED tắt.
Điều khiển LED đơn này cũng rất là đơn giản. Nó dựa vào cách ghép nối với vi xử lý và đưa mức cần thiết ra chân vi xử lý thì LED sẽ sáng và tắt theo ý muốn của chúng ta.
III - Mạch trái tim với 32 LED ghép nối với 8501
1) Mạch nguyên lý
Mỗi PORT của 89C52 có độ dài 8 bit, do vậy không thể truy xuất lên từng PORT một lúc được. Ta chỉ có thể làm lần lượt với từng Port của 89C52. Nhưng với điều khiển LED, Thời gian thực hiên rất nhanh, và coi như thực hiện gần như cùng một lúc. Sau đây mình sẽ điều khiển 32 LED được xếp thành một hình trái tim.
Mạch nguyên lý trên là ghép trực tiếp không dùng đệm. Theo nguyên tắc vẫn chạy được nhưng không đảm bảo cho con 8501 hoạt động tốt và không bị quá dòng. Nhưng với bài toán này chúng ta có thể ghép trực tiếp với LED thường và điều khiển không đồng thời. Mạch vẫn chạy ổn định.
2) Thuật toán điều khiển
Việc điều khiển 32 LED đơn này cũng không khó. Ta cứ cho LED này bật rồi LED kia tắt theo hiệu ứng của chúng ta. Các thời điểm được tính là rất nhanh. Việc chuyển từ thời điểm này sang thời điểm kia được qua một thời gian trễ nếu cần thiết. Ta chỉ cần xuất mức 0 ra chân 8501 là LED sáng và mức 1 ra chân của 8501 là LED tắt. Dựa vào điểm này chúng ta có thể điều khiển 32 LED theo ý thíc. Một ví dụ đơn giản là chạy LED từ trên xuống
#include"reg52.h"
unsigned char ma[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
void delay(unsigned int tre)
{
unsigned int tg;
for(tg=0;tg<tre;tg++);
}
void main()
{
unsigned int i,x;
while(1)
{
P0=P1=P2=P3=0xff;
for(i=0;i<8;i++)
{
P0=P1=ma;
delay(42000);
}
P0=P1=0xff;
for(i=0;i<8;i++)
{
P3=ma;
P2=ma[7-i];
delay(42000);
}
}
}
Đó là các ví dụ đơn giản nhất mà các bạn dễ dàng thực hiện. Từ đó các bạn phát triển thêm nhiều kiểu nháy LED phong phú hơn
IV - Sản phẩm, Code&mô phỏng, PCB
1) Sản phẩm
Dưới đây là sản phẩm của mạch hình LED trái tim mà tôi làm được. Nhìn trông giao diện cũng khá đẹp. Tặng người yêu thì quá tốt
Linh kiện được gắn theo kiểu SMD để tăng thêm tính thẩm mỹ của sản phẩm
2) Code và Mô phỏng, PCB
+ Chương trình được viết cho dòng vi xử lý 8501, môi trường biên dịch Kei C
+ Mô phỏng bằng phần mền Protues để minh họa thêm sản phẩm
+ Mạch in PCB bằng Protues để mọi người có thể làm luôn
Ngoài chương trình tham khảo này các bạn có thể phát triển thêm nhiều hiệu ứng đẹp để cho mạch đèn LED trái tim phong phú và đẹp hơn
Tải code, mô phỏng, PCB (File đính kèm)
Video sản phẩm.