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"
Mình cần đặt hàng thiết kế chế tạo mạch nghịch lưu 3 pha để cài đặt các thuật toán điều khiển động cơ FOC, DTC, ... Xin liên hệ trungaut@gmail.com để bàn chi tiết. Xin cảm ơn diễn dàn đăng tin!
Comment