![]() |
Lcd
1 Attachment(s)
Cac huynh de cho minh hoi chut xiu :
Chuong trinh ben duoi minh viet de hien thi ki tu A len LCD ,nhung khi mo phong no thi khong chay ,minh khong biet sai o cho nao ,cac huynh de kiem tra dum va sua dum cho minh nha ,minh dang lam de tai nen dang can gap .Cam on nhieu! Code:
TITLE "HIEN THI LEN LCD" hinh mo_phong_LCD duoi day: |
Module LCD của bạn nhìn lạ lắm, không có vẻ là một module của Proteus. Bạn chọn module LM016L (trong Optoelectronics, Alphanumeric LCDs) thử xem.
Lần sau bạn chú ý chuyển thành tập tin dạng .gif hay .jpg trước rồi hãy gửi kèm, như vậy sẽ tiết kiệm được không gian lưu trữ và băng thông cho diễn đàn. Thân, |
lcd_tiep
Trích:
|
Bạn đã xem thử ví dụ của Proteus chưa? (Ví dụ nằm trong thư mục 'Samples\PIC 4 bit LCD Driver', trong thư mục cài đặt Proteus).
Tôi hỏi một câu hơi thừa: Bạn biết cách nạp chương trình đã dịch vào PIC trong Proteus chứ? Bạn có mạch thật chứ? Nên thử trên mạch thật. Thân, |
lcd
Trích:
|
Bạn thử hình dung tình huống module LCD của bạn được khởi tạo mặc định là giao tiếp ở chế độ 4-bit sau khi bật nguồn. Khi đó phần mã thiết lập chế độ 8-bit của bạn ở trên có ổn không? Ngay cả giao tiếp mặc định là 8-bit sau khi bật nguồn thì phần code của bạn vẫn không ổn.
Các trình biên dịch ngôn ngữ cấp cao thường thực hiện thiết lập một cách tổng quát, không phụ thuộc vào chế độ giao tiếp mặc định khi bật nguồn của module LCD. Bạn có thể xem thử code hợp ngữ được sinh ra cho chương trình C của bạn để biết họ khởi tạo module ra sao. Bạn nên tìm đọc datasheet của HD44780 (đa số chip điều khiển LCD ký tự là tương thích với HD44780), trong đó bạn sẽ thấy quy trình khởi tạo LCD, và sẽ thấy chỗ không ổn trong phần code của bạn. Thân, |
ôi quả thực là nhìn vào chương trình LCD của bạn chả ổn tí nào.Thực ra viết cho LCD đơn giản hơn ,mà bạn viết hơi rối nên khó đọc . Có lẽ bạn nên sắp xếp lại cho gọn hơn thì dễ tra lỗi hơn nhiều
|
anh namdinhno1 có thể post lên code phần khởi tạo cho LCD được không?em chưa hiểu rõ lắm về lập trình hiển thị trên LCD, muốn tìm hiểu mà khó quá!
|
Bắt đầu tìm hiểu LCD
1 Attachment(s)
Theo như bác namqn chỉ dẫn, em đã load datasheet HD44780 về, có đoạn viết trong ảnh em gửi kèm.
Cho em hỏi, Khi viết code thì chỉ cần làm theo các bước như trên hay còn phải khai báo thêm thủ tục gì nữa? Mong mọi người giúp đỡ |
lcd_gui anh namqn
1 Attachment(s)
Trích:
chương trình ở đây Code:
#include <p16f877a.inc> |
Trình tự khởi tạo LCD ở chế độ giao tiếp 8-bit (theo datasheet của HD44780):
- Bật nguồn, chờ 15 ms sau khi nguồn đạt 4.5 V - Ghi lệnh 0x3x ra LCD (chưa dùng BF được) - Chờ 4.1 ms - Ghi lệnh 0x3x ra LCD (chưa dùng BF được) - Chờ 100 us - Ghi lệnh 0x3x ra LCD (chưa dùng BF được) - Ghi lệnh b'0011NFxx' ra LCD (chưa dùng BF được) - Ghi lệnh tắt màn hình (chưa dùng BF được) - Ghi lệnh xóa màn hình (chưa dùng BF được) - Ghi lệnh thiết lập cách nhập dữ liệu (chưa dùng BF được) - Kết thúc quá trình khởi tạo Từ đây trở đi có thể dùng BF. Code của bạn chưa thực hiện quá trình khởi tạo này cho LCD. Nếu bạn thực hiện đầy đủ những thao tác này mà LCD vẫn không làm việc thì bạn có thể: - Yêu cầu tôi gửi file .hex để bạn thử module - Tìm xem chip điều khiển của module thực sự là chip gì, và tìm datasheet của nó. Thân, |
lcd
Trích:
|
lcd
anh namqn oi,em đã khởi tạo thêm các lệnh như anh đã nói và không kiểm tra cờ bận mà chỉ dùng delay thôi nhưng nó vẫn không chạy ,à ghi lệnh b'0011NF00' ra lcd không dùng được vì nó không phải là số nhị phân.
|
Trích:
Bạn định nghĩa 'không chạy' như thế nào? Nếu bạn chưa thực hiện đặt font và số dòng thì liệu LCD có hiển thị đúng những gì bạn muốn không? Tôi thấy bạn hỏi lung tung mọi chỗ, nhưng không biết bạn đã thử tutorial về LCD của Nigel Goodwin chưa? Thân, |
Về mạch thử nghiệm thực tế của bạn:
- Bạn đang dùng thạch anh tần số bao nhiêu? - Bạn đã xác định là mạch chạy tốt bằng một ví dụ nháy LED chứ? Thân, |
Múi giờ GMT. Hiện tại là 06:38 AM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam