![]() |
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, |
lcd
Trích:
tutorial đó em chưa thử (những bài viết đó chỉ giao tiếp 4 đường),em có thử một số file.hex dịch từ c nhưng nó vẫn không chạy (mà các chương trình này mô phỏng thì chạy). nó không chạy vì em thấy khi cấp nguồn chỉ xuất hiện ở các địa chỉ ở hàng dưới những ma trận điểm 5x8.còn hàng trên trắng xóa không có hiển thị gì hết. |
rồi em đã thử mạch với led và chạy tốt,thạch anh em dùng là 4meg
|
1 Attachment(s)
Chuỗi 3 lệnh 0x3x là dùng để thực hiện reset bộ điều khiển của LCD. Khi bật nguồn lên mà LCD không tự thực hiện reset thì cần dùng chuỗi lệnh đó để kích hoạt quá trình reset của LCD.
Dựa vào mô tả cấu hình phần cứng của bạn trong các mã nguồn đã post lên, tôi đã dịch một chương trình nhỏ để bạn thử module LCD của bạn. PortB dùng cho D0..D7, các chân RE0..RE2 dùng cho RS, RW, và E như bạn đã mô tả. PIC dùng cấu hình XT với thạch anh 4 MHz. Mã .hex được gửi kèm (chương trình đã được thử nghiệm với cấu hình phần cứng trên). Thân, |
lcd
Trích:
|
lcd
anh nampn oi ,em đã về thử module lcd rồi ,nó vẩn thế không có chạy .em đã cắm vào board khác thạch anh mới ,tụ mới 33pf và nạp cho 2 con pic file.hex của anh đưa để thay đổi kiểm tra mà vẩn không chạy .em có thử kiểm tra chương trình chớp tắt ở chân RB0 100ms hay 800ms cho 2 con pic của em thì cũng không thấy nó chớp tắt mà cứ sáng liên tục.
những nguyên nhân đó là do đâu gây ra anh nhỉ ,mà con LCD của em mới mua được 1 tuần nên không thể cháy được (nguồn cấp 5v1) em có mượn lcd của đứa bạn loại gì đó cũng có mã số 1602 và có 16 chân để thử mà vẩn không thấy chạy ,hay là do mạch nạp nạp sai giá trị ,hay do 2 con pic16f877a bị hỏng ở bộ dao động (mà bị hỏng sao lại vẫn nạp chương trình được). dưới đây là chương trình đơn giản chớp tắt 100ms hay 800ms (thạch anh 4 mhz ,em có thay đổi cấu hình bit ở các tần số dao động RS,_XT_OSC,_HS_OSC để kiểm tra )và kết quả thu được như em đã nói ở trên. anh xem và có thể kết luận được nguyên nhân do đâu không. Code:
#include<p16f877a.inc> ;chen thu vien lien ket cho chuong trinh |
Phía sau cblock phải có một hằng số, đó là hằng số đầu tiên được gán cho chuỗi hằng số nằm giữa cblock ... endc. Một ví dụ cho việc dùng cblock:
Code:
cblock 0x20 Tôi cũng có dùng một module LCD mã hiệu TC1602A, và nó dùng bộ điều khiển tương thích với HD44780. Bạn kiểm tra lại mạch ứng dụng của bạn đi, nếu bạn không rõ mạch ứng dụng có yêu cầu tối thiểu ra sao thì cứ vẽ mạch nguyên lý mà bạn đang dùng, và post lên đây để được góp ý. Thân, |
có ai đã thử điều khiển LCD ở chế độ 4BIT chưa?
Nếu ai đã thử rồi thì có thể cho tôi thuật toán được ko? VD: Cách out DATA,Contro Nếu có Soucre thì càng tốt (C nhé vì tôi rất ghét Assembly) |
LCD 4Bit
Hiện tôi đã có thể điều khiển được LCD ở chế độ 4BIT
Tôi sẽ hoàn thành CODE hoàn chỉnh và gửi lên sau Nói nôm na là: thay vì Out 8Bit ra ta Out lần lượt 4Bit cao trước sau đó là 4Bit thấp VD: để out chữ A ra ta làm như sau Vì A=&H41 Code:
E 1 Code:
Function Init_LCD() Rất mong mọi người cho ý kiến |
lcd
Trích:
cho em cám ơn an nhiều nha. |
Trích:
Như bạn nói ở trên thì N=1: hiển thị 2 dòng, N=0: hiển thị 1 dòng, F=1: dùng font 5x10, F=0: dùng font 5x8). Vậy tôi muốn hỏi nếu hiển thị 4 dòng thì N = bao nhiêu? Tôi đọc trong tài liệu chỉ thấy nói đến hiển thị 1 dòng và 2 dòng thôi, còn số dòng lớn hơn thì không thấy đề cập đến. Tôi đang viết chương trình điều khiển LCD 4 dòng, 16 ký tự, font 5x8, điều khiển 4 bit. Vậy con số cụ thể để khởi tạo cho LCD sẽ là bao nhiêu? Rất mong bạn trả lời sớm. |
Trích:
http://home.iae.nl/users/pouweha/lcd/lcd0.shtml Thân, |
Mình đã tìm datasheet và đọc rất kỹ. Tiếc là trong datasheet thường không đề cập rõ đến các vấn đề về trình tự điều khiển mà chỉ nói chung chung về chân cẳng và các thông số kỹ thuật. Tuy nhiên mình cũng đã tìm ra con số khởi tạo LCD loại 4 hàng 16 ký tự, điều khiển 4bit là 0x28, giống y như loại 2 hàng 16 ký tự. Và có 1 tài liệu giải thích là loại 4 hàng được hiểu là 2 hàng nhưng số ký tự nhiều hơn (gấp đôi), cho nên byte để khởi tạo cho 2 loại này là giống nhau.
|
HELP ME! HELP ME! HELP ME!
Xin chào các anh chị em PICVN. Em đang loai hoai voi con PIC16f877A và LCD16*2 (TC1602A-01T). Lượm lặt tài liệu và code trên mạng, đến giờ đã hiểu láng máng nhưng vẫn không làm sao hiển thị được tí gì. Anh chị em nào có code đơn giản đã chạy rồi cho mình TEST thử nhé. Thanks!!! |
1 Attachment(s)
Trích:
|
Cảm ơn bạn rất nhiều!
Tài liệu này giúp tôi rất nhiều đây |
Múi giờ GMT. Hiện tại là 04:19 PM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam