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é
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
-
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
-
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
-
Nguyê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
-
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
-
Nguyê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
-
Trả lời cho Hỏi về cách hàn linh kiện ( giúp tớ với )bởi vi van phamUống rượu 1 mình, thấy trang này nhớ lại cách đây vài chục năm hàn thiếc với inox cực kỳ khó, phải dùng acid Hcl tác dụng lên kẻm Zn để có Zncl2 làm thuốc trợ hàn, lúc đó làm gì có acid Hcl và thuốc trợ hàn?
Cái khó bó cái...Hôm qua, 23:05 -
Trả lời cho Tiếng Anh cho người Việtbởi nhathung1101Nếu chú tâm thì học tiếng Việt cũng đủ rồi, thừa sức làm việc rồi.
Học tiếng Anh cũng chỉ phụ trợ để đọc thêm tài liệu, hướng dẫn.
Nhưng có hiểu điều đó không mới là vấn đề. Khi mà học ngoại ngữ để đi đạp xích lô đón khách???...-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 21:27 -
-
bởi xenopus123Cần hỗ trợ mạch đồng hồ vạn niên 89c52 ds1302 ds18b20 dùng 16 led 7 đoạn
-
Channel: Hỗ trợ học tập
Hôm qua, 21:24 -
-
Trả lời cho tìm mua đồng hồ vạn năngbởi nhathung1101Nhìn kỹ hàng đi cu. Chứ ra đường cứ thấy đàn bà rồi bảo:
- Tôi cũng có vợ như thế....
Đảm bảo cu nát người luôn....-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 21:04 -
-
Trả lời cho tìm mua đồng hồ vạn năngbởi matnetgia99Ồ, cái này mình cũng có nè, có ai mua không, đồ cũ dùng từ năm 2008, hư 1 2 giai gì đấy bỏ xó hơn năm nay...
-
Channel: Điện tử dành cho người mới bắt đầu
17-02-2025, 14:40 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi dinhthuong80À, sản phẩm họ thiết kế ra, họ yêu cầu mình chứng minh là sau chỉnh sửa thì 1 là gỡ jump cắm lại không hư mạch, 2 là gỡ jump thì 220Vdc vẫn dùng được led áp thấp 20V mà không hư led như mình báo, nên họ hiểu rõ mà....
-
Channel: Điện tử công suất
17-02-2025, 06:08 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi nhathung1101Tôi biết và tôi biết.
Sẽ bắt đầu với cái Sồn La, rồi mấy mạch nguồn vớ vỉn.... Rồi sẽ đèn led...
Cuộc đời là những chuyến xe, nên sẽ có:
Xe đạp điện, xe máy điện, xe ô tô điện, xe cấp cứu điện, xe tang điện.
Rồi xem.-
Channel: Điện tử công suất
17-02-2025, 01:38 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi nhathung1101Vấn đề là thu ánh sáng rồi phát ra ánh sáng cơ. Hồi mẫu giáo cô bảo đừng làm, lão không nhớ à?
Tốt nhất im mồm....-
Channel: Điện tử công suất
17-02-2025, 01:26 -
-
Trả lời cho Tiếng Anh cho người Việtbởi bqvietBài học kiểu trực tuyến dù là loại đơn giản bậc nhất cũng vẫn cần chú tâm. Chỉ bật tai nghe lên thì không có loại nào thấm nổi đâu. Cách hay hơn, dễ hơn là kiếm phim tiếng Anh nào đó xem, ban đầu bật phụ đề tiếng Việt, nghe và...
-
Channel: Tâm tình dân kỹ thuật
14-02-2025, 16:15 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi nguyendinhvanỞ đtvn này mới biết đến 2 loại mạch
1 step down
2 step up
Bây giờ anh lưu vong làm thuê bên nước lạ còn làm ra cái mach vừa up vùa dow luôn.
Tính chất là:
1 Đầu vào bằn ra cho nối thẳng
2 Đầu vào cao hơn...-
Channel: Điện tử công suất
14-02-2025, 00:51 -
Comment