Led nối từ chân vđk xuống đất vậy nếu chân vi điều khiển 5V thì led sẽ sáng, nếu chân vi điều khiển 0V thì led sẽ tối. Ðiện áp 5V vì sao led không cháy mà lại còn sáng yếu? Vì vi điều khiển 8051 chỉ có thể cung cấp dòng nhỏ không đủ 10mA ở 1 chân nên led sáng yếu. Còn nếu muốn led sáng đẹp thì lắp như sau từ dưong 5V chân dài của led - chân ngắn của led chân vi điều khiển.
3.3.2 Lập trình :
Trước hết điều khiển 1 led từng Led một. Ðể điều khiển 1 led thì chỉ việc gán chân nối với led dó bằng 0 hoặc 1, thì điện áp ở chân đó sẽ là 0V hoặc 5V, tùy vào điện áp đèn sẽ sáng hoặc tối.
/*==================================================== Mo ta: Đieu khien led don.
Phan cung: 8 led noi tu +5V qua dien tro han dong vao 8 chan cong 1. Thach anh: 12 Mhz
=====================================================*/ /***********************************************************/ #include <AT89X51.H>
/************************************************************/ /*******************Khai bao bien toan cuc**********************/ sbit Led1=P1^0; //Khai bao bien Led1 kieu bit chan P1.0
sbit Led2=P1^1; // ... sbit Led3=P1^2; sbit Led4=P1^3; sbit Led5=P1^4; sbit Led6=P1^5; sbit Led7=P1^6;
sbit Led8=P1^7;//Khai bao bien Led8 kieu bit chan P1.7
/***********************************************************/ /********************Khai bao ham****************************/ /*---Delay ––Ham tao thoi gian tre--- Dau vao: 1 bien thoi gian.
Dau ra: khong
---*/ void Delay(unsigned int time) {
unsigned int 1;// Khai bao bien cuc bo for(i=0; i<time; i++)//Lap tao thoi gian tre {
; // Khong lam gi }
}
/***********************************************************/ /*******************Chuong trinh chinh**************************/ void main(void){
while(1)// Vong lap vo han { Led1= 1;// Cho led 1 sang tre(1000);// Tre 1 khoang thoi gian Led1= 0;// Tat led 1
tre(1000);// Tre 1 khoang thoi gian }
50 }
/************************************************************/ Ðiều khiển 8 led, chương trình chính được sửa lại như sau:
void main(void) { while(1)// Lap vo han {
Led1= 1;// Cho led 1 sang
Delay(500);// Goi ham tao thoi gian tre Led1= 0;// Tat led 1
Delay(500);// Goi ham tao thoi gian tre Led2= 1;// Cho led 2 sang
Delay(500);// Goi ham tao thoi gian tre Led2= 0;// Tat led 2
Delay(500);// Goi ham tao thoi gian tre Led3= 1;// Cho led 3 sang
Delay(500);// Goi ham tao thoi gian tre Led3= 0;// Tat led 3
Delay(500);// Goi ham tao thoi gian tre Led4= 1;// Cho led 4 sang
Delay(500);// Goi ham tao thoi gian tre Led4= 0;// Tat led 4
Delay(500);// Goi ham tao thoi gian tre Led5= 1;// Cho led 5 sang
Delay(500);// Goi ham tao thoi gian tre Led5= 0;// Tat led 5
Delay(500);// Goi ham tao thoi gian tre Led6= 1;// Cho led 6 sang
Delay(500);// Goi ham tao thoi gian tre Led6= 0;// Tat led 6
Delay(500);// Goi ham tao thoi gian tre Led7= 1;// Cho led 7 sang
Led7= 0;// Tat led 7
Delay(500);// Goi ham tao thoi gian tre Led8= 1;// Cho led 8 sang
Delay(500);// Goi ham tao thoi gian tre Led8= 0;// Tat led 8
Delay(500);// Goi ham tao thoi gian tre }
}
Với chưong trình này chúng ta có thể cho thứ tự các led tắt bật khác nhau để có các kiểu nháy khác nhau.