![]() |
Gặp trục trặc khi thiết kế mạch
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. |
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
|
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 |
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.
|
Múi giờ GMT. Hiện tại là 04:16 PM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam