Em muốn lập trình để đếm số lần nhấn nút(nút nhấn được nối với 1 chân bất kỳ) thì phải viết thế nào ạ, nhờ các bàc chỉ giùm
Thông báo
Collapse
No announcement yet.
Hỏi về cách đếm số lần nhấn nút
Collapse
X
-
Có 2 cách: có thể dùng ngắt ngoài or dùng cách quét phím.Attached Files
-
nút nối với chân bất kí thì ai sài ngắt ngoài đc
. Viết như thế này này::
//Doan nay dung ngat dinh thoi la ok
if(PORTB.0==0)//Noi chan nao thi tuy ban
{
a=1;//Gan bien a=1
}
if(PORTB.0==1 && a==1)
{
dem++;//Tăng số lần bấm nút lên 1 đơn vị
a=0;
}
Phần cứng cho con tụ 104 // với nút bấm là ok/ Cách trên nhẹ nhàng nhất_ko phụ thuộc vào CT chính.
Add: 97 Quán Nam - Lê Chân - Hải Phòng.
Tel: 031 518648 Phone: 0904 283 505
Comment
-
Em viết chương trình đếm số lần nhấn nút rồi xuất ra led 7 đoạn như sau nhưng nó lại không chạy, các bác chỉ giùm em với
#include <REGX52.H>
unsigned char z[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x9 8};
bit a;
unsigned char x;
void main()
{
x=0;
P2=z[x];
while(1)
{
if(P1_0==1)
{
a=1;
}
if(P1_0==0 && a==1)
{
x++;
}
P2=z[x];
}
}
Comment
-
k chạy là đúng . Nguyên nhân vì để đếm nhấn nút , thì động tác nhấn - nhả mới gọi là kết thúc quá trình nhấn nút
Đừng nói với tui là bạn mô phỏng nhá , code này chạy trên mạch thực tế chứ mô phỏng thì tui k chắcCode:#include <REGX52.H> unsigned char z[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x9 8}; unsigned char x; // chân P1.0 là nút , cổng P2 xuất giá trị . nhớ dùng con trở 10k nối chân P1.0 lên 5v void main() { P1.0=1; // khởi tạo chân P1.0 là chân nhập while(1) { if(!P1.0) { delay_ms(50);while(!P1.0);delay_ms(10); // chống nảy cho phím x++; if(x==10) x=0; P2= z[x]; } } }
Hàm delay_ms(unsigned char k) tự tạo . vào luồng "hứong dẫn lập trình 8051 trên Keil C" mà tìm hiểu kỹ hơn
Comment
-
Bây giờ em thêm phím ở P1_1 để giảm thì nó lại không chạy, các bác góp ý giùm xem em sai chỗ nào\
#include <REGX52.H>
unsigned char z[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x9 8};
unsigned char x;
void delay_ms(unsigned int ms)
{
unsigned int m;
unsigned char n;
for(m=0;m<ms;m++)
for(n=0;n<121;n++)
{}
}
void main()
{ P1_0=1;P1_1=1;
while(1)
{
if(!P1_0)
{ delay_ms(50);while(!P1_0);delay_ms(10);
x++;
if(x==10) x=0;
}
if(!P1_1)
{ delay_ms(50);while(!P1_0);delay_ms(10);
x--;
if(x==10) x=0;
}
P2=z[x];
}
}
Comment
-
bạn học vẹt cũng phải vừa vừa thôi chứ , dân lập trình phải hiểu ng ta đang viết j thì mới dám viết code . Pó tayNguyên văn bởi phuong197 Xem bài viếtBây giờ em thêm phím ở P1_1 để giảm thì nó lại không chạy, các bác góp ý giùm xem em sai chỗ nào\
Code:#include <REGX52.H> unsigned char z[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x98}; unsigned char x; void delay_ms(unsigned int ms) { unsigned int m; unsigned char n; for(m=0;m<ms;m++) for(n=0;n<121;n++) {} } void main() { P1_0=1;P1_1=1; while(1) { if(!P1_0) { delay_ms(50);while(!P1_0);delay_ms(10); x++; if(x==10) x=0; } if(!P1_1) { delay_ms(50);while(!P1_0);delay_ms(10); x--; if(x==10) x=0; } P2=z[x]; } }
sai chỗ này nè
phải chữa lại làCode:if(!P1_1) { delay_ms(50);while(!P1_0);delay_ms(10); x--; if(x==10) x=0; }
Code:......... while(!P1_1); delay_ms(10); x--;if(x==0) x=10;
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho cách làm led Hao Quang.có pro nào biết k nhỉ ???bởi StatusHello! I'm from Kazakhstan. Can anyone share the HEX file with me? The download link in post 50 doesn't work.
-
Channel: Vi điều khiển họ 8051
Hôm qua, 00:05 -
-
bởi mylinhattChào anh em cơ khí,
Trong quá trình tư vấn đầu tư thiết bị cho xưởng, mình gặp rất nhiều câu hỏi kiểu: “Nên mua máy phay CNC cũ để tiết kiệm, chọn máy mới phổ thông cho yên tâm, hay cố gắng lên máy chất lượng cao để làm hàng khó?”. Thực tế, đây không phải câu hỏi chỉ về...-
Channel: Máy công cụ
17-12-2025, 13:38 -
-
Trả lời cho Vấn đề về tốc độ quaybởi nguyendinhvanSử dụng động cơ servor, hoặc lắp thêm một cái encoder vào động cơ bước. Encoder sẽ kiểm soát động cơ có quay hoặc đứng im.
-
Channel: Điện tử truyền hình
14-12-2025, 19:50 -
-
bởi Andrea14Chào mọi người,
Tôi muốn mô phỏng sự thay đổi các mùa bằng cách từ từ nghiêng một quả địa cầu 16 inch bằng một động cơ bước nhỏ. Một động cơ bước khác sẽ quay quả địa cầu theo thời gian thực. Hệ thống truyền động...-
Channel: Điện tử truyền hình
12-12-2025, 12:42 -

Comment