Ngày 04/10/2011 22:50:41 / Lượt xem: 19309 / Người đăng:
biendt
/ Tác giả: biendt
/ Nguồn: Sưu tầm và Biên soạn
Giao tiếp LED đơn với AT89C51
Giao tiếp giữa LED đơn với vi xử lý là một bài toán bắt đầu cho người mới học vi xử lý. Đây là một bài toán cơ bản để tìm hiểu nguyên lý hoạt động của vi xử lý. Bài toán giao tiếp giữa LED đơn với vi xử lý AT89C51 là một bài toán tìm hiểu nguyên lý điều khiển của vi xử lý AT89C51. Đối với bài toán điều khiển LED đơn này thì AT89C51 làm nhiệm vụ điều khiển tắt mở các LED đơn, tạo ra các hiệu ứng khác nhau.
AT89C51 là họ trong gia đình của 8501. Một loại vi xử lý được sử dụng nhiều trong thiết kế mạch điều khiển. Bởi vì tính đơn giản và dễ học của nó nên được nhiều các kỹ sư dùng nó cho bài toán của mình và các sinh viên trong các trường lấy 8501 là nền tảng cho môn vi xử lý và vi điều khiển. Đây là dòng vi xử lý khá là rẻ và kinh tế với đầy đủ công cụ đi theo.
LED là loại diode phát quang được sử dụng rất rộng rãi trong thiết kế quảng cáo, chiếu sáng....LED có rất nhiều loại từ loại công suất nhỏ đến công suất lớn, có đa dạng mầu sắc. Một dạng phổ biến của LED[separator]
Nguyên tắc hoạt động của LED rất đơn giản vì nó là diode phát quang nên nó phải cần điện áp thuận nên ta phải phân cực thuận nó mới sáng được. Điện áp thuận của LED thường lớn hơn diode. Điện áp thuận của LED là từ 1V ~ 2V tùy từng loại LED. LED sáng hay không còn phụ thuộc vào dòng qua nó. Mỗi LED cho một dòng điện qua nó cố định để LED sáng nhất trong phạm vi cho phép. Mạch kết nối và phân cực để sáng LED như sau:
Nếu LED được phân cực như trên thì LED sẽ sáng và ngược lại thì LED sẽ tắt. Giá trị điện trở R trên chúng ta có thể tính được như sau :
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.
* Ghép nối LED với 89C51
AT89C51 là dòng vi xử lý khá thông dụng và rẻ tiền ở việt nam. Sở hữu với 4 Port điều khiển (P0, P1, P2,P3) và bộ nhớ chương trình 4K và dao động xung sử dụng thạch anh 12MHZ. Kết nối giữa LED và AT89C51 có 2 kiểu kết nối như sau :
+ Kết nối trực tiếp
LED được kết nối trực tiếp với AT89C51 theo hai chế độ là hút dòng và xả dòng. Nguyên lý kết nối như sau :
Ở chế độ xả dòng thì LED sẽ không sáng được hết công suất vì đầu ra dòng của chân vi xử lý thường thấp
Ở chế độ hút dòng thì LED sẽ sáng được hết công suất nhưng sẽ làm hại vi xử lý nếu LED có công suất lớn vì dòng qua vi xử lý quá mức cho phép. Trong các mạch ghép nối với LED có dòng tiêu thụ thấp thì người ta sẽ dùng kiểu ghép hút dòng này.
+ Kết nối thông qua IC đệm
Đối với kiểu này thì LED được kết nối thông qua các IC đệm như transitor, các IC đệm dòng chuyên dụng như ULN2803...Đối với kiểu này thì LED được mắc như sau :
Đối với kiểu ghép này đảm bảo cho vi xử lý không bị quá tải và cho LED sáng nhất. Với kiểu ghép này thì có thể chạy được LED công suất lớn. Ngoài transitor còn có các loại IC đệm dòng tương đối như ULN2803 (500mA)....
* Mạch nguyên lý điều khiển 15 LED như sau :
Do mạch điều khiển 15 LED mà trung bình mỗi LED dòng tiêu tốn là 10mA. Do đó theo thiết kế của biendt dùng thêm IC đệm. IC đệm ở đây dùng là IC ULN2803 vì gọn nhẹ hơn transitor.
* Thuật toán và điều khiển
Đây là bài giao tiếp với LED nên thuật toán rất đơn giản là chúng ta chỉ kiểm tra chức năng điều khiển của vi xử lý như thế nào? Việc bật tắt các LED tương ứng với việc đưa ra chân vi xử lý mức 0 (0V) hay mức 1 (5V). Do vậy với mức 0 thì LED sáng và mức 1 thì LED tắt. Ta xét tường thời điểm khác nhau, muốn cho LED 1 sáng sau đó đến LED 2 thì giữa LED 1 và LED 2 phải có một khoảng thời gian trễ...
Điều khiển ở đây rất đơn giản. Do qua IC đệm ULN2803 nên tại chân chip mức 1 thì đầu ra của ULN 2803 sẽ là mức 0 đồng thời LED sáng và ngược lại. Quá trình điều khiển các LED khác cũng tương tự như vậy.
* Hướng phát triển
Tuy đây cũng là một ví dụ để mô phỏng quá trình điều khiển LED bằng vi xử lý. Nhưng mạch thiết kế đúng theo nguyên lý và có thể dựa vào đây làm mạch thực tế chạy được. Các hiệu ứng của LED các bạn có thể tự sáng tạo được và khai triển chúng thành một bài LED đẹp.
* Code chương trình và mô phỏng
+ Viết trên vi xử lý : AT89C51
+ Trình biên dịch : Keil C
+ Ngôn ngữ : C
+ Tải chương trình và mô phỏng trên Protues
(File đính kèm)