mọi người cho em hỏi với. bây h em muốn dùng bàn phím 6 nút ấn để điêu khiển 8 led đơn thì làm thế nào ạ. vd ấn phím 1 thì led 1 sáng,phím 2 thì led 2 sáng... đến phím 6 thì led 6 sáng, còn led 7,8 thì làm thế nào nữa ạ. mọi người giúp em với
Thông báo
Collapse
No announcement yet.
điều khiển led đơn bằng bàn phím
Collapse
X
-
[#include <REGX52.H>
sbit led1=P2^0;
sbit led2=P2^1;
sbit led3=P2^2;
sbit led4=P2^3;
sbit led5=P2^4;
sbit led6=P2^5;
sbit led7=P2^6;
sbit led8=P2^7;
sbit key1=P3^2;
sbit key2=P3^3;
sbit key3=P3^4;
sbit key4=P3^5;
sbit key5=P3^6;
sbit key6=P3^7;
void main(void)
{
while(1)
{
if(key1==0)
led1=0;
if(key2==0)
led2=0;
if(key3==0)
led3=0;
if(key4==0)
led4=0;
if(key5==0)
led5=0;
if(key6==0)
led6=0;
}
}
] chương trình của mình thế này dk dc 6 led. 2 led còn lại thì thế nào nhỉ. mình gà mờ lắm
Comment
-
Phang thử cái này vào đi bạn.
[#include <REGX52.H>
sbit led1=P2^0;
sbit led2=P2^1;
sbit led3=P2^2;
sbit led4=P2^3;
sbit led5=P2^4;
sbit led6=P2^5;
sbit led7=P2^6;
sbit led8=P2^7;
sbit key1=P3^2;
sbit key2=P3^3;
sbit key3=P3^4;
sbit key4=P3^5;
sbit key5=P3^6;
sbit key6=P3^7;
char dem;
char cong4;
void demled()
{
if (key1==0) {if (cong4==1) dem=5; else dem=1;cong4=0;While(key1==0);}
if (key2==0) {if (cong4==1) dem=6; else dem=2;cong4=0;While(key2==0);}
if (key3==0) {if (cong4==1) dem=7; else dem=3;cong4=0;While(key3==0);}
if (key4==0) {if (cong4==1) dem=8; else dem=4;cong4=0;While(key4==0);}
if (key5==0) {cong4=1;dem=0;While(key5==0);}
}
void dieukhienled()
{
if(key6==0)
{
if (demled==1) led1=!led1; // neu dem=1 thi dao trang thai cua led1
if (demled==2) led2=!led2; // neu dem=2 thi dao trang thai cua led2
if (demled==3) led3=!led3; // neu dem=3 thi dao trang thai cua led3
if (demled==4) led4=!led4; // neu dem=4 thi dao trang thai cua led4
if (demled==5) led5=!led5; // neu dem=5 thi dao trang thai cua led5
if (demled==6) led6=!led6; // neu dem=6 thi dao trang thai cua led6
if (demled==7) led7=!led7; // neu dem=7 thi dao trang thai cua led7
if (demled==8) led8=!led8; // neu dem=8 thi dao trang thai cua led8
dem=0;
cong4=0;
while(key6==0);
}
}
void main(void)
{
while(1)
{
demled();
dieukhienled();
}
}
Nếu chạy code này, giải sử bạn muốn điều khiển led8 thì phải bấm phím 4+ (tức là key5) trước, rồi mới bấm phím 4 (tức là Key4). Lúc này biếm đếm mới có giá trị 8, nếu bạn làm ngựoc lại thì biến đếm chỉ có có giá trị 4 thôi. Phím key6 của bạn để đảo trạng thái led.
Bạn thử đi, có gì lên hỏi tiếp.Last edited by NinoNguyen_; 12-12-2013, 16:48.
Comment
Bài viết mới nhất
Collapse
-
bởi ww88vipWW88, một trong những đơn vị tiên phong trong lĩnh vực cá cược trực tuyến, tự hào mang đến cho người chơi những trải nghiệm giải trí đỉnh cao với hệ sinh thái sản phẩm đa dạng. Từ cá cược thể thao đầy kịch tính đến casino trực...
-
Channel: Tâm tình dân kỹ thuật
hôm nay, 12:46 -
-
bởi tungdqEm cần tìm sơ đồ mạch một số Main máy tính đời cao như Asrock B560M-HDV, các cao nhân chỉ giúp với. Thank!
-
Channel: Các mạch điện ứng dụng
hôm nay, 08:27 -
-
Trả lời cho Kiểm tra biến ápbởi lamvu0677nhân tiện cho mình hỏi thêm về cái phần test hipot (cao áp),là để kiểm tra độ bền cách điện giưa các cuộn dây,mà thấy thông số test thường ở mức 4kvac,vậy nếu mấy con fail đó xài bình thường vẫn dduocj phải không ạ,vì điện mình làm gì lên tới mức đó
-
Channel: Điện tử dành cho người mới bắt đầu
10-11-2024, 08:52 -
-
Trả lời cho Kiểm tra biến ápbởi lamvu0677máy đo số vòng thì cty có ,mà nó to quá,tưởng có máy nào gọn gọn bỏ túi được thì tiện hơn,vì đi lại nhiều...
-
Channel: Điện tử dành cho người mới bắt đầu
10-11-2024, 08:47 -
-
bởi tmcodonMình thấy diễn đàn có chuyên mục quảng cáo rồi mà. Bạn đóng góp để mở luồng riêng
-
Channel: Hướng dẫn sử dụng diễn đàn
09-11-2024, 13:36 -
-
bởi Nicole08Xin chào mọi người, tôi đã sử dụng Flashforge Inventor 2 được gần 5 năm và rất hài lòng với nó, nhưng tuần trước đã xảy ra sự cố. Có vẻ như động cơ bước đưa sợi in vào đầu nóng đã bị hỏng. Mọi thứ khác có vẻ ổn trên máy...
-
Channel: Điện tử dành cho người mới bắt đầu
09-11-2024, 12:55 -
Comment