Nếu đây là lần đầu tiên đến với Điện Tử Việt Nam, bạn có thể đọc phần Hỏi đáp bằng cách nhấn vào liên kết. Có thể bạn cần đăng kí trước khi có thể gửi bài . Để bắt đầu xem bài viết, chọn diễn đàn bạn muốn thăm dưới đây.
Thông báo
Collapse
No announcement yet.
Hỏi code đếm số lần bấm phím hiển thị trên LED 7 thanh
Hỏi code đếm số lần bấm phím hiển thị trên LED 7 thanh
Mình đang có bài tập đếm số lần bấm phím hiển thị trên LED 7 thanh. Nhưng ko biết code viết thế nào.. Bạn nào biết chỉ mình với. Mình cần gấp lắm
Thx các bạn
Sơ đồ của bạn post lên có nhiều điều đáng nói:
+ Thứ nhất : Chân EA\ phải treo lên nguồn để vi điều khiển đọc bộ nhớ nội.
+ Thứ hai : Bạn nên mắc thêm con 74HC245 để đệm dòng cho P0.
+ Thứ ba : Dùng transistor A1015 để điều khiển cột.
+ Thứ tư : mạch reset không cần mắc diode gì cả.
Nếu bạn làm đúng như thế thì độ sáng của led mới được đảm bảo. Tuổi thọ của mạch mới cao.
Việc dịch qua File.Hex không được là do trình biên dịch chứ không phải do phần cứng.
Đây là chương trình tham khảo dùng 8501 lập trình C.
với nút ấn đcj gắn vào P1.0 và LED đc găn vào P2
unsigned char i=0;// Khai bao them bien toan cuc de dem so lan an nut
unsigned char Doccongtac(void)// Ham tra lai gia tri unsigned char
{
if( P1_0 ==0)// Neu nut duoc bam
{
delay(300);// Tre 1 khoang thoi gian qua xung nhieu
while(P1_0 ==0) // Cho toi khi nha tay khoi nut bam
{
;//Khong lam gi
}
i++;// Nha ty thi tang i
if( i ==10) i=0;// Quay vong gia tri cua i
}
return i;
}
void hienthisolannhanphim(unsigned char solan)
{
switch(solan)// Tuy vao so lan
{
case 0: { so0(); break; }// Neu so lan =0 hien so 0 thoat khoi switch
case 1: { so1(); break; }// Neu so lan =1 hien so 1 thoat khoi switch
case 2: { so2(); break; }// ....
case 3: { so3(); break; }
case 4: { so4(); break; }
case 5: { so5(); break; }
case 6: { so6(); break; }
case 7: { so7(); break; }
case 8: { so8(); break; }
case 9: { so9(); break; }// Neu so lan =9 hien so 9 thoat khoi switch
}
}
void main(void)
{
while(1)
{
Doccongtac(); // Goi ham doc so lan nhan phim
hienthisolannhanphim(i);// Hien thi so lan nhan phim, bien i la bien toan cuc
}
}
Đây là chương trình tham khảo dùng 8501 lập trình C.
với nút ấn đcj gắn vào P1.0 và LED đc găn vào P2
unsigned char i=0;// Khai bao them bien toan cuc de dem so lan an nut
unsigned char Doccongtac(void)// Ham tra lai gia tri unsigned char
{
if( P1_0 ==0)// Neu nut duoc bam
{
delay(300);// Tre 1 khoang thoi gian qua xung nhieu
while(P1_0 ==0) // Cho toi khi nha tay khoi nut bam
{
;//Khong lam gi
}
i++;// Nha ty thi tang i
if( i ==10) i=0;// Quay vong gia tri cua i
}
return i;
}
void hienthisolannhanphim(unsigned char solan)
{
switch(solan)// Tuy vao so lan
{
case 0: { so0(); break; }// Neu so lan =0 hien so 0 thoat khoi switch
case 1: { so1(); break; }// Neu so lan =1 hien so 1 thoat khoi switch
case 2: { so2(); break; }// ....
case 3: { so3(); break; }
case 4: { so4(); break; }
case 5: { so5(); break; }
case 6: { so6(); break; }
case 7: { so7(); break; }
case 8: { so8(); break; }
case 9: { so9(); break; }// Neu so lan =9 hien so 9 thoat khoi switch
}
}
void main(void)
{
while(1)
{
Doccongtac(); // Goi ham doc so lan nhan phim
hienthisolannhanphim(i);// Hien thi so lan nhan phim, bien i la bien toan cuc
}
}
mình dùng keil c dịch ra hex thì bão lỗi ở phần 04 " if(p1_0==0)// Neu nut duoc bam"
Vẫn thiếu dữ kiện
Gọi công suất của trở là P(R), điện áp 2 đầu trở là U, dòng điện qua trở là I thì trở an toàn khi P(R) < U x I hoặc P(R) < I x I x R...
em chưa biết chọn loại điện trở bao nhiêu W để khi cấp 1 W đầu vào,4 con trở dán ko bị hỏng .
trên web em tìm thì có nhiêu loại trở dán ví dụ 0805 1w ,1206 0.25 w, 1210 0.5w ..vv ....
(theo e biết là đầu vào 1 w mà chia làm 2, thì đầu...
Comment