![]() |
![]() |
#11 |
Đệ tử 7 túi
|
![]() Hix hix nghe hai bạn trao đổi với nhau mà đâu óc mình lùng bùng quá giờ mình hết hiểu gì hết luôn rồi
![]() ![]() ![]() Còn về phần lý do tại sao cái LCD của bạn không hiển thị là do cà hai lỗi thiết kế phần cứng và phần mềm luôn ![]() ![]() ![]() 1. Set Port của bạn bị ngược, đây là cái sai cơ bản nhé ![]() 2. Giải thuật quét phím này về cơ bản sai hoàn toàn bởi lẽ : khi bạn đã set chân là ngõ ra thì làm sao mà bạn có thể đọc đuợc giá trị từ nó về ![]() Ở đây vì để cho bạn tự học, tự phát huy khả năng của mình là chính cho nên mình chỉ đưa ra cho bạn giải thuật để giải quyết vấn đề thui, tuyệt không thể trực tiếp viết code giùm bạn đuợc ![]() - Cách quét phím : bạn thực hiện set Port có 4 ngõ ra và 4 ngõ vào : bây giờ ví dụ các chân ra là từ 1-->4, các chân vào là từ 5-->8 nhé, quy trình quét như sau : Xuất áp ra chân 1 -> test áp ở chân 5 (gán giá trị cố định vào đó và kết hợp hiển thị LCD),6(...),7(...),8(...), đưa áp chân này về mức cũ ; Xuất áp ra chân 2 -> test áp ở 5(...),6(...),7(...),8(...) ; ..... như vậy bạn sẽ đuợc một ma trận phím quét và hiển thị ra LCD, => mấu chốt cách quét này là gì ?: đó là lợi dụng khả năng chủ động của mình khi cố ý xuất áp ra một chân và kiểm tra mức áp ở 4 chân còn lại => đây là cách quét phím cơ bản nhất ![]() Trong đó có một phím xoá cả màn hình bạn dùng lệnh : LCD=0x01;comnwrt() ![]() Còn về phép tính bạn có thể viết cho nó một hàm tính toán riêng : khai báo 4 biến là a,b,pheptinh,ketqua --> sau mỗi lần đọc đuợc giá trị từ phím về thì gửi giá trị vào hàm này và lựa chọn nhét vào biến a hay b (nhét vào a khi chưa ấn các phím phép tính +,-,… Và vào b sau khi đã ấn), công việc là phải sắp xếp các giá trị nhét vào này thành hai con số a và b hẳn hòi (như vậy a và b cũng cần có hàm con để thực hiện sắp xếp, gợi ý như sau :bạn dùng biến count trong này sau mỗi lần value đuợc đưa vào thì biến này sẽ thay đổi do đó dữ liệu căn theo đó mà sắp xếp), xong lúc này chỉ việc chờ phím "=" là ta sẽ đem a (+,-... căn cứ vào biến pheptinh) cho b để ra c sau đó đem c hiển thị lên LCD là xong ![]() Thú thật mình chưa làm cái này bao giờ nên chỉ thực hiện sơsài để có thể hướng dẫn đuợc cho bạn thui, có gì thiếu sót thì bỏ quá cho vậy, dưới đây là hình ảnh về phần cứng để bạn hiểu hơn ![]() Bạn sẽ thành công nếu như bạn cố gắng hơn nữa, phát huy tối đa khả năng của mình ![]() ![]() Thân.
__________________
_____________________________Tri nhân tri tự bất tri tâm_____________________________ _ _ _ _ _ _ _ _ ![]() ![]() . . . . . . . . . . . . . . . . Để post đuợc một câu hỏi rõ ràng xin tham khảo link sau : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . http://www.picvietnam.com/forum/showthread.php?t=1263. . . . . . . . . . . . . . . . |
![]() |
Ðiều Chỉnh | |
Xếp Bài | |
|
|
![]() |
||||
Ðề tài | Người gửi | Chuyên mục | Trả lời | Bài mới |
TUT về USART trong PIC16F877A | mafd_47a | MPASM | 16 | 19-02-2025 05:32 AM |
TUT ve I2C ( pic16f877a ) | mafd_47a | MPASM | 28 | 28-01-2025 10:45 PM |
Lập nhóm PIC16F877A | nhh | Cơ bản về vi điều khiển và PIC | 285 | 08-03-2017 11:08 PM |
Bộ so sánh và PWM cho PIC16F877A | anhquangngai | Cơ bản về vi điều khiển và PIC | 24 | 08-09-2012 09:00 AM |
Pic16f877a TỪ DỄ TỚi KhÓ | ntc | Cơ bản về vi điều khiển và PIC | 373 | 23-05-2009 10:24 PM |