Nếu mình dùng 1 PORT để đk LCD thì ok, nhưng nếu mình ko dành PORT đó để đk mà dùng PORT khác làm chức năng RS, RW, EN thì LCD ko chạy đc, mình cũng đã định nghĩa lại nhưng ko thành công. Bác nào có cách thì chỉ dùm mình nhé. ThankS!
Thông báo
Collapse
No announcement yet.
LCD và PIC
Collapse
X
-
Trường hợp này giống của cậu :
http://www.ccsinfo.com/forum/viewtop...er=asc&start=0
Với HTPIC :
http://www.lcdinterfacing.info/Inter...PIC16F877A.php
Comment
-
Sau một thời gian vật lộn với LCD (không lỗi này thì lỗi kia) mình cũng hiển thị được. Tuy nhiên còn một vướng mắc sau:
- Mình dùng PIC16F877A điều khiển LCD. Chân dữ liệu D4-D7 của LCD nối vào chân RD4 - RD7 của PIC. Chân điều khiển R/W nối GND, RS nối RD2, E nối RD0. Chân nguồn Vdd mình điều khiển bằng cách nối với chân RE2 (do khi không dùng LCD thì mình dùng port d làm việc khác).
- Vấn đề là: trong hàm main nếu đặt RE2 = 1 trước khi gọi hàm lcd_init() thì hiển thị bình thường. Nếu chuyển lệnh này ra sau hàm lcd_init() thì LCD hiển thị 1 hàng giống như trường hợp chỉ cấp nguồn, ko gửi dữ liệu, trong khi thử các chân dữ liệu của LCD bằng led thì vẫn thấy nháy (cả 4 chân).
Có bác nào biết được vấn đề này là sao ko?
(Một triệu chứng nữa là: mình có 1 hàm hiển thị LCD, 1 hàm sử dụng port d để hiển thị led đơn. Nếu gọi hàm hiển thị LCD sau hàm hiển thị led đơn thì cũng gặp hiện tượng như trên.)
Comment
-
Nguyên văn bởi whalebeat Xem bài viếtSau một thời gian vật lộn với LCD (không lỗi này thì lỗi kia) mình cũng hiển thị được. Tuy nhiên còn một vướng mắc sau:
- Mình dùng PIC16F877A điều khiển LCD. Chân dữ liệu D4-D7 của LCD nối vào chân RD4 - RD7 của PIC. Chân điều khiển R/W nối GND, RS nối RD2, E nối RD0. Chân nguồn Vdd mình điều khiển bằng cách nối với chân RE2 (do khi không dùng LCD thì mình dùng port d làm việc khác).
- Vấn đề là: trong hàm main nếu đặt RE2 = 1 trước khi gọi hàm lcd_init() thì hiển thị bình thường. Nếu chuyển lệnh này ra sau hàm lcd_init() thì LCD hiển thị 1 hàng giống như trường hợp chỉ cấp nguồn, ko gửi dữ liệu, trong khi thử các chân dữ liệu của LCD bằng led thì vẫn thấy nháy (cả 4 chân).
Có bác nào biết được vấn đề này là sao ko?
(Một triệu chứng nữa là: mình có 1 hàm hiển thị LCD, 1 hàm sử dụng port d để hiển thị led đơn. Nếu gọi hàm hiển thị LCD sau hàm hiển thị led đơn thì cũng gặp hiện tượng như trên.)
Vấn đề của bạn là bạn tham lam quá , tích hợp nhiều thứ trên 1 port ... nên trong phần mềm phải xử lý khéo ( có nhiều trường hợp không thể xử lý được do các trường hợp xung đột nhau ) ... Tuy vậy tôi đoán là của bạn chỉ hiển thị các chức năng tuần tự ... và bạn " yếu " và chưa có nhiều kinh nghiệm về lập trình nên bị tắc.
--- Bạn dùng chân để điều khiển nguồn cho LCD ( có phải khi bạn không dùng LCD bạn sẽ điều khiển chân chân này tắt LCD đi ??? để cho chữ hay LCD không bị loạn ? ).
Nếu có dùng cái này khi bạn dùng LCD bạn phải :
Kích hoạt nguồn trước
RE2 =1 ;
Trễ 1 thời gian ( delay chẳng hạn ... cho chắc ăn )
Rồi mới Init_LCD ();
Cách này làm là đúng ... vì LCD đã cấp điện, khởi động đầy đủ và sẵ sàng Init ( giao tiếp)
--- Còn cách này : Init_LCD(); rồi mới RE2=1 ; .... là sai ( LCD cần cấp điện, các IC cần hoạt động trước khi ... dữ liệu giao tiếp, khởi tạo hoạt động .
/// Còn trường hợp về hàm sau LED ... khi đã tắt điện LCD đi ( bằng chân RE2 ) để thực hiện hàm led trên Port D ... muốn dùng LCD lại thì ... lại phải kích hoạt RE2 ... init LCD ... rồi mới đến cái hàm hiển thịModule RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Mua anten ở đâu?bởi tmcodonAnten bạn thu nguồn sóng nào vậy? Nếu xem truyền hình thì giờ k làm đc anten nữa rồi
-
Channel: Ăng ten và truyền sóng
16-11-2024, 15:34 -
-
Trả lời cho Mạch nguồn đôi dùng 7812 và 7912bởi tmcodonThank bác nhá. Tìm mãi mới thấy. Giờ vọc đã xem sao...
-
Channel: Hỗ trợ học tập
16-11-2024, 10:39 -
-
bởi tungdqEm cần tìm sơ đồ mạch một số Main máy tính đời cao như Asrock B560M-HDV, các cao nhân chỉ giúp với. Thank!
-
Channel: Các mạch điện ứng dụng
15-11-2024, 08:27 -
-
Trả lời cho Kiểm tra biến ápbởi lamvu0677nhân tiện cho mình hỏi thêm về cái phần test hipot (cao áp),là để kiểm tra độ bền cách điện giưa các cuộn dây,mà thấy thông số test thường ở mức 4kvac,vậy nếu mấy con fail đó xài bình thường vẫn dduocj phải không ạ,vì điện mình làm gì lên tới mức đó
-
Channel: Điện tử dành cho người mới bắt đầu
10-11-2024, 08:52 -
-
Trả lời cho Kiểm tra biến ápbởi lamvu0677máy đo số vòng thì cty có ,mà nó to quá,tưởng có máy nào gọn gọn bỏ túi được thì tiện hơn,vì đi lại nhiều...
-
Channel: Điện tử dành cho người mới bắt đầu
10-11-2024, 08:47 -
-
bởi tmcodonMình thấy diễn đàn có chuyên mục quảng cáo rồi mà. Bạn đóng góp để mở luồng riêng
-
Channel: Hướng dẫn sử dụng diễn đàn
09-11-2024, 13:36 -
-
bởi Nicole08Xin chào mọi người, tôi đã sử dụng Flashforge Inventor 2 được gần 5 năm và rất hài lòng với nó, nhưng tuần trước đã xảy ra sự cố. Có vẻ như động cơ bước đưa sợi in vào đầu nóng đã bị hỏng. Mọi thứ khác có vẻ ổn trên máy...
-
Channel: Điện tử dành cho người mới bắt đầu
09-11-2024, 12:55 -
Comment