các cao thủ làm ơn viêt giúp mình hàm chức năng thực hiện giải mã bàn fím với, bàn fim 4x4,4 cột tương ứng P1.0-P1.3,còn 4 hàng là P1.4-P1.7, cảm ơn nhiều
Thông báo
Collapse
No announcement yet.
giải mã bàn fím,help me!!!!!!!!
Collapse
X
-
Đang hỏi trong box 8051 thì chắc chắn là dùng 8051 rồi! Bạn vào đây down về mà xem, phần giao tiếp với ngoại vi nhé!
http://www.esnips.com/web/Sach-VDK-8051
Comment
-
****************************************Nguyên văn bởi natra2k2 Xem bài viếtĐang hỏi trong box 8051 thì chắc chắn là dùng 8051 rồi! Bạn vào đây down về mà xem, phần giao tiếp với ngoại vi nhé!
http://www.esnips.com/web/Sach-VDK-8051
cám ơn các bạn nhiều nhé,nhưng mà trong tài liệu chỉ nói về thuật toán chứ ko có chương trình mẫu, mình cũng không thạo về vdk lắm, mọi người giúp mình viết bằng c nhé,
mình có một hàm thế này mọi người xem và chỉ giùm nhé
Biến giatridat là biến toàn cục được khai báo ở đầu và nội dung của nó được hiển thị ra 4 led 7 thanh, nhưng ko hiểu sao nó không hiện được gì cà.Code://///////////////////////////////////////////////////////// void quetfim() { unsigned char cot,hang,k,k1,t; t=1; trefim++; if(trefim==1) { P1=0xf0; //dua cac cot ve 0 //P1=0xf0; trefim = 0; if(flagfim==0) { k=(P1&0xf0); if(k!=0xf0)//kiem tra xen co fim an ko? { if(flagfim1==0)flagfim=1; } else flagfim1=0; } else { flagfim1=1; if((P1&0xf0)!=0xf0) { P1=0xff; k=1; for(cot=0;cot<4;cot++) { P1=0xff-k; //P1=0xff-k; k=k*2; if(k==1){}; k1=((P1&0xf0)>>4)^0xf; for(hang=0;hang<4;hang++) { if(k1==1) { fim=cot*4+hang; if(fim==11) {IN1=0; IN2=1;} if(fim==12) {IN1=1; IN2=0;} if(fim==13) {IN1=0; IN2=0;} if(fim>=0&fim<=9) { giatridat=giatridat*t+fim; t=t*10; } flagfim=0; } k1=k1>>1; } } } else flagfim=0; } } } ///////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// void main(void) { TMOD=0x1; // che do 8 bit tu nap lai IE = 0x82; TH0=0xFC; TL0=0x18; //tran 100us ET0=1; P0=0xff; //P1=0xfe; P2=0x00; TR0 = 1; EA=1; //cho phep su dung ngat IN1=0; IN2=0; PWM=0; flagfim=0; flagfim1=0; fim=0; trefim=0; giatridat=fim; while(1) { quetfim(); hienthi(); } } ////////////////////////////////////////////////
còn hàm hienthi() của mình chạy rất tốt nếu gán cho giatridat = một con số nào đó
0915914693
Comment
-
[QUOTE=thanhcom;51056]****************************************Nguyên văn bởi natra2k2 Xem bài viếtĐang hỏi trong box 8051 thì chắc chắn là dùng 8051 rồi! Bạn vào đây down về mà xem, phần giao tiếp với ngoại vi nhé!
http://www.esnips.com/web/Sach-VDK-8051
đây là sơ đồ nối ghép của mình.
Lần đầu làm quen với VDK mong các bạn chỉ giáo.
0915914693
Comment
-
Link thì vẫn ok nhưng sao mình không down được file .pdf của nó mà toàn chỉ là cho down trang đó về thôi. Bạn xem lại link cụ thể được?Nguyên văn bởi natra2k2 Xem bài viếtĐang hỏi trong box 8051 thì chắc chắn là dùng 8051 rồi! Bạn vào đây down về mà xem, phần giao tiếp với ngoại vi nhé!
http://www.esnips.com/web/Sach-VDK-8051
Comment
-
hic , dùng chi nhìu phím ghê z ? bàn phím máy tính 104 phím mà cùng có 6 chân . nếu dùng nhìu thì lấy lun keyboard , viết code giao tiếp PS2 thui . Còn ko thì cùng ma trận 4x4 là phế oyNguyên văn bởi cncPunch Xem bài viếtBạn nào thích dùng thêm IC phụ để quét phím không? Tớ dùng 74138 và 74148 kết hợp, có thể quét bàn phím 8 x 8 = 64 phím.
Comment
-
các bước quét phím :Nguyên văn bởi rongconn2t Xem bài viếtsau 1 hồi thì các bác cho em hỏi để có thể quét được bàn phím thì phải làm gì?giá trị đọc được sẽ được nhận về = cách nào?
B1 : xuất tất cả các cột mức 0, xét . ( nếu cột là port xuất)
B2 : cho hàng 1 mức 0 , xét 4 phím trong hàng 1. phím nào có mức 0 thì đc nhấn , ko thì bỏ qua hàng 1
B2 : cho hàng 2 mức 0 , xét 4 phím trong hàng 2.....
Tiếp tục vậy đến hàng 4
Đó là nguyên tắc quét phím
Sợ các u ko tin , thử lun cho mấy u tin


Code:void quetphim_hienthi() { P1_0=0;P1_1=P1_2=P1_3=1; if (P0_0==0) { delay_ms(50); while(P0_0==0) continue ; delay_ms(20); LCD_PutChar('0');a = '0'; } ; if (P0_1==0) { delay_ms(50); while(P0_1==0) continue ; delay_ms(20); LCD_PutChar('4');a = '4'; } ; if (P0_2==0) { delay_ms(50); while(P0_2==0) continue ; delay_ms(20); LCD_PutChar('8');a = '8'; } ; if (P0_3==0) { delay_ms(50); while(P0_3==0) continue ; delay_ms(20); LCD_PutChar('C') ; a = 'C'; } ; P1_0=P1_2=P1_3=1;P1_1=0; if (P0_0==0) { delay_ms(50); while(P0_0==0) continue ; delay_ms(20); LCD_PutChar('1');a = '1'; } ; if (P0_1==0) { delay_ms(50); while(P0_1==0) continue ; delay_ms(20); LCD_PutChar('5'); a = '5'; } ; if (P0_2==0) { delay_ms(50); while(P0_2==0) continue ; delay_ms(20); LCD_PutChar('9');a = '9'; } ; if (P0_3==0) { delay_ms(50); while(P0_3==0) continue ; delay_ms(20); LCD_PutChar('D') ;a = 'D'; } ; P1_0=P1_1=P1_3;P1_2=0; if (P0_0==0) { delay_ms(50); while(P0_0==0) continue ; delay_ms(20); LCD_PutChar('2'); a = '2'; } ; if (P0_1==0) { delay_ms(50); while(P0_1==0) continue ; delay_ms(20); LCD_PutChar('6');a = '6'; } ; if (P0_2==0) { delay_ms(50); while(P0_2==0) continue ; delay_ms(20); LCD_PutChar('A');a = 'A'; } ; if (P0_3==0) { delay_ms(50); while(P0_3==0) continue ; delay_ms(20); LCD_PutChar('E');a = 'E'; } ; P1_0=P1_1=P1_2=1;P1_3=0;; if (P0_0==0) { delay_ms(50); while(P0_0==0) continue ; delay_ms(20); LCD_PutChar('3');a = '3'; } ; if (P0_1==0) { delay_ms(50); while(P0_1==0) continue ; delay_ms(20); LCD_PutChar('7');a = '7'; } ; if (P0_2==0) { delay_ms(50); while(P0_2==0) continue ; delay_ms(20); LCD_PutChar('B');a = 'B'; } ; if (P0_3==0) { delay_ms(50); while(P0_3==0) continue ; delay_ms(20); LCD_PutCmd(0x01) ; // clearscreen LCD_PutCmd(0x80) ; a = 0; } ; }
Comment
-
hình như nó ko giải giao tiếp kiểu quét phím kia mà thông wa truyền thông uart thì phảiNguyên văn bởi digital Xem bài viếtai có ct cho bàn phím ps2 cho mình xem với! Viết bằng asem cho 8051 ấy. Thanks!Kit thí nghiệm 8051 + mạch nạp + cable + LCD16x2 + CD hướng dẫn, giá chỉ
Comment
-
Theo mình nếu làm bàn phím đơn giản khoảng 16 phím trở lại thì lập trình cũng không phức tạp lắm.
Ví dụ bàn phím 4 phím hiển thị led 7 đoạn các số tương ứng từ 1-->4:
;phím 1-->4 :1 đầu nối đất,1 đầu nối các chân P1.0-->P1.3
main:
jnb P1.0,sw1
jnb P1.1,sw2
jnb P1.2,sw3
jnb P1.3,sw4
sjmp main
...
Đây là một cách mà mình lập trình với bàn phím,với bàn phím có nhiều hàng và cột bạn cũng có thể làm theo phương pháp trên cộng với việc quét cột,hàng.
Hoặc bạn cũng có thể dùng ngắt bàn phím,nếu nhiều hàng và cột thì có thể dùng mạch mã hóa,tổ hợp ...để tiết kiệm chân VĐK.
Chúc vui!
Comment
Bài viết mới nhất
Collapse
-
bởi lvhnHãng nào tùy thích thôi bác! bây giờ các hãng đều hỗ trợ xem qua máy tính hay điện thoại đều được. Gắn Trước tiên mua về cắm nguồn set ip hết xong hãy lắp lên, cam poe chỉ cần 4 lõi là hoạt động bình thường nên 1 dây kéo cho 2 cam vẫn ok
-
Channel: Tâm tình dân kỹ thuật
hôm nay, 15:49 -
-
Trả lời cho Tìm bạn thân quen cũ.bởi lvhnNhớ không nhầm thì lúc còn đi học có gặp chú 1 lần cf bãi xe Nguyễn Kim, giờ quán cf đó nghỉ bán rồi
-
Channel: Tâm tình dân kỹ thuật
hôm nay, 15:44 -
-
Trả lời cho Thắc mắc pin 21v ?bởi lvhnCon số đấy biểu thị gần đúng thôi, cái đồng hồ đó có đảm bảo chính xác hay không? pin có cục lên 4v4 vẫn bình thường. Cái gì cũng có sai số trong phạm vi không quá lớn thì không ảnh hưởng gì đâu, bàn ngay ngón ngắn ngón dài mà
-
Channel: Điện tử dành cho người mới bắt đầu
hôm nay, 15:32 -
-
Trả lời cho Amply bị rò DC 22 voltbởi lvhnThay mấy con transisto nhỏ đầu vào, thường vi sai lỗi hay bị. Khám tổng quát chân các linh kiện xem có bị rỉ sét nhiều không?
-
Channel: Điện thanh
hôm nay, 15:24 -
-
bởi dinhthuong92Mạch này hiệu suất ra led đạt khoảng 90.7% tại 12V in, 40W out.
-
Channel: Nguồn!
27-07-2026, 10:15 -
-
bởi dinhthuong92Có lẽ nguồn viết bài này chỉ mang tính định tính để nói rằng cần thay đổi tổng trở tải để có Pmax chứ trình bày chưa chi tiết và thấu đáo một cách định lượng. Công thức tổng quát phải có mặt L mới được, và nói là "tổng...
-
Channel: Nguồn!
27-07-2026, 10:09 -
-
Trả lời cho [Chia sẻ] Tổng hợp các công ty AI Việt Nam đang làm gì thật sự — Từ voicebot, computer vision đến AI agentsbởi nguyendinhvanCàng ngày, CNTT càng trở nên lôi thôi , rách việc.
Cái AI và Ge... trên trình duyệt chỉ tổ làm vướng mắt, mất thì gian.
Tôi toàm phải mất cộng tắt nó đi.-
Channel: Xu hướng, nhu cầu và thị trường
25-07-2026, 14:59 -
-
bởi trung30000Em có con amply 12 sò D 718 và e688 , biến áp 15A, 30v 0 30 v, một kênh thì hoạt động bình thường, kênh còn lại nổ bụp bụp, sột sột, đèn tín hiệu nhảy lên vạch max, khoảng 4 đến 5 giây, sau đó đèn tín hiệu trả về mức không, Em thấy như...
-
Channel: Điện thanh
24-07-2026, 13:50 -
-
Trả lời cho Tìm hiểu máy hàn lăn (Rolling Welding)bởi hoang_3ibác cần thì liên hệ Em: mayhanhaivuong.com (0903238399)...
-
Channel: Điện tử công nghiệp
24-07-2026, 10:58 -
-
Trả lời cho Công thức tính định luật kirchhoffbởi abcnewmemberGiải bằng hệ phương trình bật nhất 3 ẩn.
...
-
Channel: Hỗ trợ học tập
23-07-2026, 14:52 -
ban có thể tham khảo chương trình viết bằng asm đây cũng là ứng dụng quét phím đấy

Comment