![]() |
|
Tài trợ cho PIC Vietnam |
Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#1 |
Nhập môn đệ tử
Tham gia ngày: Oct 2007
Bài gửi: 5
: |
Giúp mình một chút về LCD (chế độ 8Bit,dùng Pic18F4)
Mình dùng PIC8F4XXX kết nối với LCD 16x2.
Sơ đồ kết nối như sau : 8bit PORTC -> D0 - D7 của LCD RD0 -> RS GND -> RW RD2 -> E Khi mình nối chân A và K vào nguồn thì LCD có sáng đèn BackGround, nhưng mà mình không thể khởi tạo được LCD. Mình dùng chương trình như sau: Code:
LIST P=18F4523 ;directive to define processor #include <P18F4523.INC> ;processor specific variable definitions ORG 0x0020 COUNT_L RES 1 COUNT_H RES 1 #define RS PORTD,0 #define EN PORTD,2 #define LCD PORTC ORG 0x0000 GOTO MAIN ORG 0x0020 ;==================================== MAIN CLRF TRISC CLRF TRISD CLRF PORTC ;Đặt portC, portC là output CLRF PORTD CALL DELAY MOVLW H'38' ;Khởi tạo chế độ 8bit MOVWF LCD CALL WRITECMD MOVLW H'0F' ;Bật hiển thị, Cursor ON MOVWF LCD CALL WRITECMD MOVLW H'85' ;Di chuyển con trỏ MOVWF LCD CALL WRITECMD MOVLW 'F' ;Ghi dữ liệu MOVWF PORTC CALL WRITEDATA GOTO $ ;Dừng c.trình ;========================================= DELAY MOVLW D'255' MOVWF COUNT_L DL1 CALL DELAY2 DECFSZ COUNT_L,1 GOTO DL1 RETURN ;========================================= DELAY2 MOVLW D'255' MOVWF COUNT_H DL2 DECFSZ COUNT_H,1 GOTO DL2 RETURN ;========================================= WRITECMD BCF RS ; RS = 0 BSF EN ; EN = 1 NOP NOP BCF EN ; EN = 0 CALL DELAY RETURN ;========================================= WRITEDATA BSF RS ; RS = 1 CALL DELAY2 BSF EN ; EN = 1 NOP NOP BCF EN ; EN = 0 CALL DELAY RETURN ;========================================= END Vì nếu khởi tạo thành công thì sau khi send 2 lệnh 0x38 và 0x0F thì LCD phải có con trỏ nhấp nháy. Không biết có phải mình sai sót gì khi ra lệnh cho LCD ( có thể do xung chốt EN không?, hay có khi nào LCD hỏng không? - vì mình thấy đèn background của LCD vẫn sáng?) Mong các bạn giúp mình với ! thay đổi nội dung bởi: anhemFSA, 22-04-2008 lúc 09:17 PM. |
![]() |
![]() |
|
|