View Single Post
Old 23-08-2006, 02:54 PM   #1
spirit
Đệ tử 2 túi
 
Tham gia ngày: Aug 2006
Bài gửi: 42
:
Question Tutorial LCD cua Nigel???????

Chào các anh trong diễn đàn PIC VIET NAm.Em có 1 số vấn đề chưa thông trong tut cua Nigel về LCD (Chuong 3_bài 3) mong các anh có ai đã từng đọc hay đã làm qua giúp em với.
Thứ nhất là hàm LCD_busy:_giao tiếp LCD ở mode 4 bit
;------------------------------------------------------
LCD_Busy
bsf STATUS, RP0 ;set bank 1
movlw 0x0f ;set Port for input
movwf LCD_TRIS
bcf STATUS, RP0 ;set bank 0
bcf LCD_PORT, LCD_RS ;set LCD for command mode
bsf LCD_PORT, LCD_RW ;setup to read busy flag
bsf LCD_PORT, LCD_E
swapf LCD_PORT, w ;read upper nibble (busy flag)
bcf LCD_PORT, LCD_E
movwf templcd2
bsf LCD_PORT, LCD_E ;dummy read of lower nibble **********
bcf LCD_PORT, LCD_E
btfsc templcd2, 7 ;check busy flag, high = busy
goto LCD_Busy ;if busy check again
bcf LCD_PORT, LCD_RW
bsf STATUS, RP0 ;set bank 1
movlw 0x00 ;set Port for output
movwf LCD_TRIS
bcf STATUS, RP0 ;set bank 0
return

;end of LCD routines
;------------------------------------------------------
Neu gọi hàm này thì chương trình của Nigel không chạy được bởi vì khi em thay hàm này bằng hàm gọi delay_5ms thì chạy được
Các anh có thể chỉ cho em biết chỗ sai trong hàm này được không a.
À,còn dòng lệnh ở hàng em đánh dấu * nữa,em nghĩ dòng lệnh này là không cần thiết bởi vì ta chỉ quan tam đến bit DB7 mà thôi,
Cám ơn các anh nhiều lắm.
spirit vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn