PDA

View Full Version : Gặp trục trặc khi thiết kế mạch


danh_lecong1502
31-10-2010, 10:42 PM
Sau khi đã đọc một ít về lập trình cho vi điều khiển P16F84A mình bắt tay vào thực hiện mạch với mục đích là chớp tắt đèn Led . Tuy nhiên do còn non kém về thao tác thực hành nên kết quả thu được vẫn chưa được như mong đợi. Mô tả qua về mạch của mình như sau : Pic6F84A hai chân VDD và MCLR được nối với nguồn nuôi 5V , riên chân MCLR thì có qua một điện trở 4 KOm . Chân VSS được nối đất chân RB0 được nối với đèn led và một điện trở 330 Om . Hai chân OSC1 và OSC2 nối với thạch anh 4 Mhz và hai tụ 33pF mắc song song sau đấy được nối về đất. Đây là chương trình mình đã viết :

processor 16f84A
include <p16f84a.inc>
__config _XT_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF
j equ 0X0c
k equ 0X0d
org 0
goto main
org 0X04

main:
movlw B'00000000'
tris PORTB

Ledonoff:
movlw B'00000000'
movwf PORTB
call delay
movlw B'00000001'
movwf PORTB
call delay
goto Ledonoff

delay:
movlw d'255'
movwf j
jloop:
movwf k
kloop:
decfsz k,f
goto kloop
decfsz j,f
goto jloop
return
end

Kết quả thu được như sau :
1 Led không sáng cũng không chớp tắt và Pic có hiện tượng bị nóng lên. Đem vào máy nạp chương trình kiểm tra thì vẫn nhận ra được Pic ( có vẻ vẫn chưa hỏng pic) .
2 Sau khi tháo chân nối đất của VSS thì led có sáng nhưng vẫn không chớp tắt. Dùng thiết bị đo thì thấy tất cả các chân của pic ( kể cả VSS ) đều xuất ra giá trị 5 V .
Mong những ai đã có kinh nghiệm trong lĩnh vực này tận tình giúp đỡ vì mặc dù đây là bài tập khá đơn giản ( về mặt lý thuyết ) nhưng cái quan trọng là thực hành và ảnh hưởng khá lớn đến nhiều bài sau . Chúc diễn đàn ngày càng lớn mạnh và là nơi giao lưu học hỏi các kinh nghiệm thực tế . Chào thân ái.

hcmut.khoamaisi
31-10-2010, 11:48 PM
Theo ý kiến của mình bạn nên mô phỏng proteus trước chay ngon lành rồi hãy thi công trở lại.Không khéo là đi luôn em pic

DCP
01-11-2010, 12:04 AM
cho mình góp ý chút nhé.
theo mình thi ct không làm cho con pic của bạn nóng nên được đâu,mà có
thể mạch của bạn có vấn đề.bạn hãy kiểm tra lại mạch điện, đặc biệt là hai chân
cấp nguồn.
còn về ct của bạn thì mình nghĩ rằng nó không chạy được,mình thấy bạn chưa
thiết lập truy suất cho portb đâu.
bạn thử sửa lại một chút xem sao:
list p=16f84a
include p16f84a.inc
cblock 0x0c
delay_l
delay_m
delay_h
endc
org 0x00
main
set_port
bsf status,5 ;chọn bank thanh ghi
movlw 0x00; xóa w
movwf trisb ; thiết lập port suất
bcf status,5
clrw
movwf portb ;xóa portb
start
movlw b'00000001'
movwf portb
call delay
movlw b'00000000'
movwf portb
call delay
goto start
delay
clrf delay_l
clrf delay_m
movlw d'3'
movwf delay_h
loop decfsz delay_l
goto loop
decfsz delay_m
goto loop
decfsz delay_h
goto loop
return
end

DCP
01-11-2010, 12:07 AM
nếu ct vẫn không chạy được thì bạn xem lại con pic của bạn có bị hỏng không.