![]() |
|
Tài trợ cho PIC Vietnam |
Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#7 |
Nhập môn đệ tử
Tham gia ngày: Jul 2008
Bài gửi: 2
: |
Em cũng gặp vấn đề gần giống thế, kèm thêm vấn đề với nạp icsp. Em đã trình bày bên clb thức trắng cùng dientuvietnam, tuy nhiên chưa có lời giải. Bây giờ em xin trình bày lại cho các anh giúp đỡ, em đã loay hoay mấy ngày nay chưa được.
1.Em nạp pic 16f877a theo kiểu icsp bằng mạch nạp p2g của pnlab thì vấn đề như sau: - Em dùng dây nối vào chân nạp ở demo board của anh Bình Anh cho thì ok, vì vậy mà nạp được chip 16f690. - Em cũng cắm như thế, dùng dây nối câu ra board trắng để nạp 16f877a, chân nguồn và đất thì xác định đúng rồi, chân gần chân đất nối với chân 40, chân tiếp nối chân 39, chân đầu tiên phía kia là MCLR thì nối vào chân 1, ở đó có dùng trở 10k nối lên nguồn 5v lấy luôn ở chân nguồn kia dùng chung. Lúc đầu thì em thêm con tụ 33p nối đất nhưng không thấy nhận chip, loay hoay mãi em bỏ chân nối đất ở tụ ra thì bất ngờ nó nhận chip, em nạp được 1 lần sau đó tháo bớt dây ra, chỉ dùng dây nguồn và đất cho tiện, nhưng bây giờ lại không nạp được nữa! Em mắc giống ở ICSP guide rồi, cũng đảo qua chân 39,40 nhưng chưa được. Em đã đo thử thì nguồn đủ (5,2V luôn), chân 1 thì lại là -0,15 --->các bác xem hộ em sao vậy nhỉ? 2. Em làm cái mạch led chạy như trong tutorial của pvn, nạp bình thường (không nạp icsp nữa), cắm vào board, kiểm tra tiếp xúc tốt, cắm thạch anh ghi là 20.000, 2 con tụ ghi 33 (chắc là tụ 33p và thạch anh 20Mhz)-->không hiện tượng! Em dùng que đo kiểm tra, điện áp ra ở các chân portB chỉ có 0,6V là cùng, chẳng led nào sáng. Em đo thử ở thạch anh thì kì lạ thay, led sáng!! Cứ mỗi lần em dí que đỏ vào chân thạch anh hay tụ thì nó lại sáng và chạy, nói chung thành ra mình điều khiển nó chạy chứ không phải do lập trình luôn! (Hôm nay em nối thạch anh và tụ chắc chắn hơn nên ban đầu nó sáng ngay led đầu tiên sau đó tịt! Hơ tay trên con pic thôi là nó chạy đúng luôn! ) Các bác xem hộ em. Nói chung lập trình là form chuẩn (em copy ở tut của anh chính, có chỉnh sửa chút) nên chắc không có vấn đề ;Su dung vi dieu khien microchip: PIC16F877A title “delay_ms.asm” processor 16f877a include <p16f877a.inc> __CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF ;Mo ta chuong trinh: chuong trình rotate led, dich phai ;Mo ta phan cung: 8 LED duoc gan vao PORTB thong qua cac dien tro, cac ; thanh phan di kem bao gom thach anh, mach reset va nguon ;================================================= ============================ ;Khoi tao cac bien cblock 0x20count1 ;cac bien dung cho chuong trinh delay counta countb endc ;================================================= ============== ;Bat dau chuong trinh chinh org 0 main ;Khoi tao PORTB bsf STATUS,RP0 ;chon bank 1 clrf TRISB ;toan bo PORTB la output bcf STATUS,RP0 ;chon bank 0 de lam viec movlw 0x80 movwf PORTB ;bat led dau tien o portB loop ;vong lap chinh call delay100ms rrf PORTB,1 ;dich phai thanh ghi PORTB, ket qua ghi vao thanh ghi PORTB goto loop ;==================== ;chuong trinh con delay100ms movlw 0xC8 movwf count1 d1 movlw 0xC7 movwf counta movlw 0x01 movwf countb delay decfsz counta,1 goto $+2 decfsz countb,1 goto delay decfsz count1,1 goto d1 return END ; ket thúc chuong trình |
![]() |
![]() |
|
|