![]() |
cách tiết kiệm chân vdk(quái dị và độc đáo của bác BINH ANH)
1 Attachment(s)
với cách mắc này thì cách bắt phím như thế nào nhỉ các bác?( bắt các phím đơn và bắt nhiều phím một lúc)
cám ơn các bác! |
Trích:
khi thực hiện quét 4 led 7 thanh thì fai mất 4 chân để điều khiển Q1,Q2,Q3,Q4 . giả sử Q1,Q2,Q3,Q4 được điều khiển bởi RB1,RB2,RB3,RB4 . còn chỗ con trở R5(Keyboard out 1port) được nối với RB5 . để phát hiện phím đc nhấn thì thực hiện như sau : Cho RB1=1 đọc RB5 nếu RB5 = 1 -> phím S1 đc nhấn .Đồng thời xuất tín hiệu ra led Cho RB2=1 đọc RB5 nếu RB5 = 1 -> phím S2 đc nhấn .Đồng thời xuất tín hiệu ra led Cho RB3=1 đọc RB5 nếu RB5 = 1 -> phím S3 đc nhấn .Đồng thời xuất tín hiệu ra led Cho RB4=1 đọc RB5 nếu RB5 = 1 -> phím S4 đc nhấn .Đồng thời xuất tín hiệu ra led |
Trích:
giả sử(RB1=1,RB5=1=> phím s1 được bấm.nhưng khoảng mấy microgiay sau đó lại quét đến RB1=1,RB5=1=> s1 lại được bấm) do đó phím sẽ bị trôi rất nhiều,có bạn nào có cách chống trôi phím hay phuơng pháp nào khác để giải quyết vấn đề này ko? cám ơn nhiều! |
tốc độ quet càng cao thì phím càng nhậy, còn vấn đề trôi như bạn nói thì giải quyết = cách lập trình phát hiện theo sườn lên giống như bạn lập trình ngắt ngoài xảy ra khi có sườn lên(ring edge),nhưng khác 1 chút là ngắt ngoài đc phát hiện = phần cứng có sẵn trong pic còn ở đây bạn phải viết chương trình thay cho phần cứng đó
|
Trích:
cái này mình chưa làm bao giờ lên mình ko bít.(có thể port đoạn code quét phím thì càng tốt) cám ơn bạn nhiều! |
int1 bt1=0; // bien toan cuc
if( (RB5==1) && (RB1==1) ) { if( bt1 == 0 ) { bt1 = 1; // code thực hiện phím nhấn ở đây }; } else { bt1 = 0; } |
chao ban.ban cho minh hoi.
dung pic16f877 thiet ke plc co 16 dau vao so va 16 dau ra so mong ban giup do nhe |
Trích:
bạn xem co cách nào khác ko? cám ơn! |
Trích:
Nếu bạn sử dụng thì chỉnh sửa lại cho phù hợp (ở đây mình chỉ viết dưới dạng thuật toán) Code:
key[]=-1//xoa mang key[] ve -1 |
Trích:
bạn có thể để lại yahoo hoặc mail để có gì thì mình trao đổi được ko? p/s:theo mình hiểu thì mảng key[]={0,1,2,3} thế dòng lệnh này mình ko hiểu lém:key[]=-1//xoa mang key[] ve -1 giá trị của mảng =-1 khi nào? cám ơn! |
Trích:
Code:
for(i=0;i<4;i++) Bạn có thể khai báo mảng key[] theo kiểu: Code:
unsigned int8 key[4]; //mảng key với 4 phần tử YM/Email của mình là nhanh0112@yahoo.com |
Cảm ơn bạn nhiều nhé, mình đang rất cần
|
Múi giờ GMT. Hiện tại là 08:44 PM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam