Chào các bạn, mình đang nghiên cứu về mảng số đếm tiến lùi trong VĐK để làm một vài mạch đơn giản (đèn gt có cài đặt...). Những ví dụ đơn giản như gán biến trực tiếp để đếm tiến lùi mình đã làm ok, giờ mình muốn cài đặt giá trị của biến đếm bằng nút nhấn ngoài hiện tại đang gặp đôi chút mắc mớ. Cần các bác hướng dẫn 1 chút, ko biết nên gán thế nào?
Hỏi về thuật toán cài đặt biến đếm
Collapse
X
-
Tags: None
-
Biến đếm.
Cái này cũng đơn giản thôi.
Bạn đặt một biến bất kì. Biến num chẳng hạn.
Phần quét led bạn để tr0ng ngắt thì hay hơn nhá.
Tr0ng hàm main thì ta kiểm tra phím nhấn.
Nếu nhấn nút tăng thì num++,nút giảm thì num--.
Cũng ko khó lắm đâu.
-
có phải lee_nguyen ở Đồng Nai không ta.
ví dụ, 1 biến a đang tăng bình thường theo thời gian, bây h muốn tăng theo nút nhấn, đơn giản nhất là. C nhé:
nhớ cho code hiện thị vào trong để xem
if(nutnhan==0) //phat hien nut nhấn
{
delay_ms(10); //delay chống dội
while(nutnhan==0) //chờ đến khi nút thả mới quét lại
{
a++;
if(a>=60) //chặng trên
{a=0;}
while(nutnhan==0)
{
bientam++;
if(bientam>15) //ấn giữ 1,5s
{
bientam=0;
while(nutnhan==0) //sau khi an giữ se tăng 10 đơn vị sau 1s
{
a++;
if(a>=60)
{a=0;}
delay_ms(100);
}
}
delay_ms(100);
}
}
}TamPhieuLuuKy@yahoo.com
092 2838 712 --->>
Comment
-
Chào bạn, cám ơn bạn đã trả lời, mình không phải ở ĐN, mình ở Hải Dương. code bạn viết có chỗ mình không hiểu lắm. cụ thể phần :Nguyên văn bởi superhieu1 Xem bài viếtcó phải lee_nguyen ở Đồng Nai không ta.
ví dụ, 1 biến a đang tăng bình thường theo thời gian, bây h muốn tăng theo nút nhấn, đơn giản nhất là. C nhé:
nhớ cho code hiện thị vào trong để xem
if(nutnhan==0) //phat hien nut nhấn
{
delay_ms(10); //delay chống dội
while(nutnhan==0) //chờ đến khi nút thả mới quét lại
{
a++;
if(a>=60) //chặng trên
{a=0;}
while(nutnhan==0)
{
bientam++;
if(bientam>15) //ấn giữ 1,5s
{
bientam=0;
while(nutnhan==0) //sau khi an giữ se tăng 10 đơn vị sau 1s
{
a++;
if(a>=60)
{a=0;}
delay_ms(100);
}
}
delay_ms(100);
}
}
}nếu cho biến tạm ++ với điều kiện là nút nhấn ==0, thì tại sao lại đặt điều kiện là 15, hai nữa là chỗ chú thích tăng 10 đơn vị là thế nào?while(nutnhan==0)
{
bientam++;
if(bientam>15) //ấn giữ 1,5s
{
bientam=0;
while(nutnhan==0) //sau khi an giữ se tăng 10 đơn vị sau 1s
{
a++;
if(a>=60)
{a=0;}
delay_ms(100);
}
Comment
-
Phần gán giá trị cho 1 biến thì mình đã làm được, nhưng nếu mở rộng thêm 3 biến mình bị mắc ở chỗ làm sao để có thể hiện thị được giá trị tăng giảm khi cài đặt cho 3 biến?
ý mình là, vd nếu mình cài đặt một giá trị bất kỳ cho 1 chương trình đếm lùi thì thông thường mình hay viết hàm chỉnh biến đó, rồi trong phần quét led mình chỉ cần tách phần chục và phần đơn vị ứng với biến đó là có thể hiển thị ok. nhưng giờ 3 biến thì sao nhỉ?
Comment
-
Phần gán giá trị cho 1 biến thì mình đã làm được, nhưng nếu mở rộng thêm 3 biến mình bị mắc ở chỗ làm sao để có thể hiện thị được giá trị tăng giảm khi cài đặt cho 3 biến?
ý mình là, vd nếu mình cài đặt một giá trị bất kỳ cho 1 chương trình đếm lùi thì thông thường mình hay viết hàm chỉnh biến đó, rồi trong phần quét led mình chỉ cần tách phần chục và phần đơn vị ứng với biến đó là có thể hiển thị ok. nhưng giờ 3 biến thì sao nhỉ?
Comment
-
tức là code này sẽ làm tăng 1 giá trị biến khi bạn bấm để bạn gán vào biến mảng hiển thị cho 7 đoạn, gồm có chống rung, ấn giữ 1,5s thi no tự động tăng lên, delay_ms(100); quyết định số tăng trong 1s, nói chung code này tôi viết trực tiếp trên web nên chưa co debug rõ ràng, code thì lũng cũng chỉ gọi mở thôi, chứ thường thì ít ai dùng while để giữ phím lắm, nhưng nó sẽ đơn giản hơn quét toàn bộ chương trình, ngoài ra ngta còn dùng ngắt, counter...TamPhieuLuuKy@yahoo.com
092 2838 712 --->>
Comment
-
hehe, chào đồng hương nhé, theo mình thì bạn cứ làm như bạn ở trên là được rồi, ban đầu cứ cho biến dem==0; khi nào nhấn phím thì đẩy dem++;Nguyên văn bởi lee_nguyen Xem bài viếtChào bạn, cám ơn bạn đã trả lời, mình không phải ở ĐN, mình ở Hải Dương. code bạn viết có chỗ mình không hiểu lắm. cụ thể phần : nếu cho biến tạm ++ với điều kiện là nút nhấn ==0, thì tại sao lại đặt điều kiện là 15, hai nữa là chỗ chú thích tăng 10 đơn vị là thế nào?
lưu ý là thực hiện trong vòng lặp while(button==0) thôi nhé, và chống dội phím nữa. Không biết mình có hiểu đúng ý bạn k nhưng theo mình thì khá đơn giản
Comment
Bài viết mới nhất
Collapse
-
bởi bqvietNếu muốn tăng công suất cần tăng con chip và tăng biến áp lên lớn hơn. Thiết kế ban đầu dùng TNY25x và biến áp EE16 hoặc EE13. Tăng con chip lên TNY268 vẫn mạch nguyên lý đó và biến áp lên EE19 sẽ nâng công suất ra thêm nhiều. Tăng tối đa...-
Channel: Điện tử công suất
hôm nay, 02:14 -
-
bởi Nexus 6PMạch này chỉ chạy cho LED 10W trở xuống, còn muốn chạy Led công suất cao thì sao bác thớt ơi?-
Channel: Điện tử công suất
22-10-2026, 14:33 -
-
bởi Nexus 6PMạch này chỉ chạy cho LED 10W trở xuống, còn muốn chạy Led công suất cao thì sao bác thớt ơi?-
Channel: Điện tử công suất
22-10-2026, 10:49 -
-
Trả lời cho Tìm VR 5 chânbởi dinhthuong80Cảm ơn bác bqviet . Nhưng hình như các VR 5 chân của linhkienchatluong là loại có 2 chân là công tắc đóng mở. Thấy trên Shopee có chỗ bán linh kiện đàn Organ, mà không biết đúng loại không, với lại sao ... mắc dữ dội luôn ấy!!!
...-
Channel: Hướng dẫn tìm thông tin linh kiện
19-10-2026, 11:30 -
-
Trả lời cho Tìm VR 5 chânbởi bqvietTrang sản phẩm này có loại 5 chân và 8 chân
https://linhkienchatluong.vn/chiet-a...doi_s1595.aspx
Ngoài ra một trang cùng cấp với nó có loại 6 chân nữa, chắc đủ cho người muốn tìm....-
Channel: Hướng dẫn tìm thông tin linh kiện
17-10-2026, 17:19 -
-
bởi dinhthuong80Chào cả nhà, chúc cuối tuần vui vẻ!
Hôm nay mình lên đây nhờ ai biết chỉ dùm biến trở 5 chân này tên gọi là gì, có thể mua ở đâu vậy? Xin cám ơn nhiều! ...-
Channel: Hướng dẫn tìm thông tin linh kiện
-

Comment