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!
LCD và PIC
Collapse
X
-
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
-
"Chân nguồn Vdd mình điều khiển bằng cách nối với chân RE2"
"...Chuyển lệnh này ra sau hàm lcd_init()..."
Dân điện tử mà hỏi cái lỗi này ak. Đúng là chọc cười thiên hạ
Comment
Bài viết mới nhất
Collapse
-
bởi domar123Giải pháp toàn diện cho người dùng đa nhiệm
Nếu bạn đang cần một bộ máy vừa phục vụ công việc chuyên môn nặng vừa đáp ứng nhu cầu giải trí cao cấp, sự kết hợp giữa Ryzen 9 9950X TRAY và Radeon RX 9070 XT 16GB là lựa chọn...-
Channel: Đánh giá sản phẩm DTVN
hôm nay, 17:12 -
-
bởi lvhnKhác nhau là đi lái thuê hoặc chạy dịch vụ được
...
-
Channel: Tâm tình dân kỹ thuật
hôm nay, 15:50 -
-
bởi ittcHic, sao nhiều anh em khuyên là đàn ông đã học thì học luôn số sàn chứ đừng học số tự động anh....-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 17:46 -
-
bởi mèomướp1. Tìm hiểu đc thì càng tốt, bận thì thôi. Ko cần quá quan trọng
2. Số tự động cho đơn giản, kiểu như đi xe ga ấy ạ
3. Học lý thuyết tử tế ok
4.ok
5.có. đủ số km, tgian cầm lái là đc
6.đi ăn tập thể,...-
Channel: Tâm tình dân kỹ thuật
14-08-2026, 16:34 -
. Đúng là gà quá.

Comment