Ðề tài: Lcd
View Single Post
Old 16-05-2007, 06:19 PM   #2
friends
Đệ tử 1 túi
 
Tham gia ngày: Jul 2006
Bài gửi: 19
:
Thumbs up 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.
friends vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn