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 theidiotcatKhi ráp một bộ máy tính cấu hình cao, việc cân đối ngân sách cho từng linh kiện là rất quan trọng. Sự kết hợp giữa vi xử lý AMD Ryzen thế hệ mới có công nghệ 3D V-Cache và card đồ họa Radeon RX 9070 XT đang là lựa chọn rất đáng tiền....
-
Channel: Đánh giá sản phẩm DTVN
11-06-2026, 10:43 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Giới thiệu bản nhạc đệm mới nhộn nhịp tươi vui, nghe là muốn... xuất gia đi tu liền!!!!😁...
-
Channel: Tâm tình dân kỹ thuật
11-06-2026, 09:51 -
-
Trả lời cho Máy đo khuôn mẫubởi vi van phamQuá dễ, Mua cái máy xq quét tòan thân, lấy bàn và khung di chuyển. Tháo đầu xquang ra bán ve chai, mua cái máy siêu âm gắn vào vị trí đầu đèn. Setup máy là chạy chính xác, còn file Setup thì chưa nghĩ ra....
-
Channel: Đo lường và điều khiển dùng máy tính
07-06-2026, 08:49 -
-
Trả lời cho Máy Phun sương tạo ầm Trung Quốc.bởi nguyendinhvanMạch tạo sương là tự dao động.
Mach 555 là đóng mở chu kỳ tần số thấp.
IC 555 giá rẻ, chỉ chạy lên tần số vài trăm ki lô hẹc thôi. Thăng cao hơn là méo dạng rồi tịt.
Mach sương thì dao động tần số tầm 2 mê ga hẹc cơ !...-
Channel: Tâm tình dân kỹ thuật
07-06-2026, 00:09 -
-
bởi nguyendinhvan
Cái máy đo này mắc tiền quá !
Anh em dtvn có giải pháp nào tự chế được không ?...-
Channel: Đo lường và điều khiển dùng máy tính
07-06-2026, 00:00 -
-
bởi nguyendinhvanOi giời.
Thơi buổi PLC rồi, cậu còn hỏi mấy thứ cổ lỗ sĩ này nữa.-
Channel: Tâm tình dân kỹ thuật
06-06-2026, 22:59 -
-
bởi nguyendinhvanChuyện này cũ rồi.
Họ trả lương cho CN, sau đó lại bán hàng thu tiền về. Họ còn cấp các dịch vụ như chỗ ăn ở, quán cafe , giải trí, phương tiện giao thông. Mục đích là thu tối đa số tiền đã chi trả.
Hàng hóa sx ra, chuyển...-
Channel: Tìm mua
06-06-2026, 22:56 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi vi van phambao nhiêu năm quên bẳng đi, là mình còn có 1 chút xíu nghệ thuật bài bản, đã dạy cho con cháu chơi đàn, dù bố mẹ và chúng không xem là quan trọng. Hôm qua ngày bế mạc lớp lá, bỗng dưng thằng cháu ngoại thấy con bé được sơ giới thiệu...
-
Channel: Tâm tình dân kỹ thuật
06-06-2026, 21:58 -
-
bởi ittcChào các anh em, tình hình là mình lo làm ăn không để ý sức khỏe, giờ có chút vấn đề rồi? không biết trên này có anh em nào độ tuổi U35 -> 40 đang có dùng các loại thuốc, thuốc bổ hay thực phẩm chức năng giúp bổ thận tráng dương,...
-
Channel: Tâm tình dân kỹ thuật
05-06-2026, 12:28 -
-
bởi theidiotcatTrong thế giới phần cứng năm 2026, AMD Ryzen 5 7500X3D không chỉ là một cái tên mới, nó là một tuyên ngôn về hiệu suất. Dựa trên các thử nghiệm khắt khe trong môi trường chơi game chuyên nghiệp, con chip này đã chứng minh rằng: bạn không cần...
-
Channel: Đánh giá sản phẩm DTVN
05-06-2026, 10:05 -
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