![]() |
|
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 |
![]() |
#12 |
Đệ tử 1 túi
Tham gia ngày: Jul 2006
Bài gửi: 19
: |
![]() 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. |
![]() |
![]() |
|
|