|
Tài trợ cho PIC Vietnam |
MPASM Lập trình bằng hợp ngữ là một việc làm vô cùng vất vả, tuy nhiên, để hiểu và làm việc với vi điều khiển, hợp ngữ trở thành một công cụ khá đắc lực ... |
|
Ðiều Chỉnh | Xếp Bài |
14-05-2007, 09:21 PM | #16 | |
Đệ tử 1 túi
Tham gia ngày: Jul 2006
Bài gửi: 19
: |
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. thay đổi nội dung bởi: namqn, 15-05-2007 lúc 01:18 AM. |
|
14-05-2007, 09:40 PM | #17 |
Đệ tử 1 túi
Tham gia ngày: Jul 2006
Bài gửi: 19
: |
rồi em đã thử mạch với led và chạy tốt,thạch anh em dùng là 4meg
|
15-05-2007, 01:37 AM | #18 |
Trưởng lão PIC bang
|
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,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 thay đổi nội dung bởi: namqn, 15-05-2007 lúc 08:19 PM. |
16-05-2007, 04:33 PM | #19 | |
Đệ tử 1 túi
Tham gia ngày: Jul 2006
Bài gửi: 19
: |
lcd
Trích:
|
|
16-05-2007, 06:19 PM | #20 |
Đệ tử 1 túi
Tham gia ngày: Jul 2006
Bài gửi: 19
: |
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 __CONFIG 3F71H ERRORLEVEL -302 ;su duing thach anh 4mhz,led nhap nhay tren chan RB0 cblock delay x_delay endc org 00h goto START START clrf PORTB bcf STATUS,RP1 bsf STATUS,RP0 ;chon bank1 movlw D'0' movwf TRISB bcf STATUS,RP0 SS bsf PORTB,0 call dl100ms bcf PORTB,0 call dl100ms goto SS ;******************************************delay 0.5ms = 500uS dl05ms movlw D'165' ; +1 1 cycle movwf delay ; +2 1 cycle delay500_loop decfsz delay, F ; step1 1 cycle goto delay500_loop ; step2 2 cycles delay500_end return ; +3 2 cycles ;*********************************** delay 100ms dl100ms movlw D'200' ; +1 1 cycle movwf x_delay ; +1 1 cycle x_delay500_loop call dl05ms ; step1 wait 500uSec decfsz x_delay, F ; step2 1 cycle goto x_delay500_loop ; step3 2 cycles x_delay500_end return ; +2 2 cycles end thay đổi nội dung bởi: namqn, 16-05-2007 lúc 07:22 PM. |
16-05-2007, 07:49 PM | #21 |
Trưởng lão PIC bang
|
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 cnt1 cnt2 tmp endc 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,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
17-05-2007, 09:32 AM | #22 |
Đệ tử 4 túi
|
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) |
17-05-2007, 11:30 AM | #23 |
Đệ tử 4 túi
|
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 RS 1 DB &H4 '4Bit cao E 0 Pause E 1 RS 1 DB &H1 '4Bit thap E 0 Pause Code:
Function Init_LCD() RS 0 E 1 DB &H0 E 0 Pause E 1 DB &HF E 0 Pause E 1 DB &H2 E 0 Pause E 1 DB &HC E 0 Pause Clrscr End Function Rất mong mọi người cho ý kiến thay đổi nội dung bởi: zero, 17-05-2007 lúc 11:34 AM. Lý do: Sửa lại cho dễ nhìn |
17-05-2007, 02:43 PM | #24 | |
Đệ tử 1 túi
Tham gia ngày: Jul 2006
Bài gửi: 19
: |
lcd
Trích:
cho em cám ơn an nhiều nha. |
|
06-08-2007, 09:26 AM | #25 | |
Đệ tử 5 túi
Tham gia ngày: Sep 2006
Bài gửi: 100
: |
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. |
|
06-08-2007, 06:01 PM | #26 | |
Trưởng lão PIC bang
|
Trích:
http://home.iae.nl/users/pouweha/lcd/lcd0.shtml Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
|
07-08-2007, 10:04 AM | #27 |
Đệ tử 5 túi
Tham gia ngày: Sep 2006
Bài gửi: 100
: |
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.
|
17-11-2008, 02:49 PM | #28 |
Đệ tử 2 túi
Tham gia ngày: Oct 2008
Bài gửi: 44
: |
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!!! |
23-11-2008, 11:12 PM | #29 | |
Đệ tử 3 túi
Tham gia ngày: Aug 2008
Bài gửi: 53
: |
Trích:
|
|
24-11-2008, 08:35 AM | #30 |
Đệ tử 2 túi
Tham gia ngày: Oct 2008
Bài gửi: 44
: |
Cảm ơn bạn rất nhiều!
Tài liệu này giúp tôi rất nhiều đây |
|
|