PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Cơ bản về vi điều khiển và PIC (http://www.picvietnam.com/forum/forumdisplay.php?f=8)
-   -   các bác giúp em với (http://www.picvietnam.com/forum/showthread.php?t=1302)

vatit 18-07-2007 08:40 AM

các bác giúp em với
 
em là tân binh, rất thích về tự động, em có tìm hiểu về PIC và hiện đang dùng PIC16F84A, lập trình và biên dịch ổn, chỉ có mỗi khi đưa vào mạch in thì lại không chạy mà có lúc chạy lúc không chạy, chán quá , có bác nào có một chương trình hoàn chỉnh ( cả code và mạch ) chỉ cho em với. xin chân thành cảm ơn

thaithienanh 18-07-2007 06:38 PM

Hi hi sự cố này trông quen quen
 
http://www.picvietnam.com/forum/show...=7488#post7488

Bạn xem coi có giống giống sự cố này không nhá nếu giống thì cách khắc phục đã có luôn rùi đó :)

vatit 19-07-2007 01:33 AM

đúng rồi, cảu mình cũng tỏng tình trạng chạmm tay vào mới chạy, và còn một lỗi nữa là mình lập trình cho 2 leg nhấp nháy luân phiên nhau thì chỉ nhấp nháy có một led, lep kia không có hiện gì, do nguyên nhân vì sao nhỉ

namqn 19-07-2007 02:58 AM

Trích:

Nguyên văn bởi vatit (Post 10169)
đúng rồi, cảu mình cũng tỏng tình trạng chạmm tay vào mới chạy, và còn một lỗi nữa là mình lập trình cho 2 leg nhấp nháy luân phiên nhau thì chỉ nhấp nháy có một led, lep kia không có hiện gì, do nguyên nhân vì sao nhỉ

Bạn post code của bạn lên đi, tôi cho rằng bạn đang gặp tình huống bị ảnh hưởng bởi hoạt động read-modify-write của các lệnh mà bạn đang dùng.

Thân,

vatit 19-07-2007 10:46 PM

đaay là code cảu mình :
Code:

LIST P=16F84A
        INCLUDE P16F84A.INC
REG_L EQU 0x0C
REG_M EQU 0x0B
REG_H EQU 0x0D
        ORG H'00'

MAIN BSF STATUS,5
        MOVLW 0x00
        MOVWF TRISB
        BCF STATUS,5
BATDAU MOVLW B'00000001'
        MOVWF PORTB       
        CALL DELAY05S
        CALL DELAY05S
        CALL DELAY05S
        MOVLW B'00000010'
        MOVWF PORTB       
        CALL DELAY05S
        CALL DELAY05S
        CALL DELAY05S
        GOTO BATDAU

DELAY05S CLRF REG_L
        CLRF REG_M
        MOVLW H'02'
        MOVWF REG_H
LOOP NOP
        DECFSZ REG_L
        GOTO LOOP
        NOP
        DECFSZ REG_M
        GOTO LOOP
        NOP
        DECFSZ REG_H
        GOTO LOOP
        RETURN
        END


huybo02 19-07-2007 11:49 PM

Trích:

Nguyên văn bởi vatit (Post 10190)
đaay là code cảu mình :
Code:

LIST P=16F84A
        INCLUDE P16F84A.INC
REG_L EQU 0x0C
REG_M EQU 0x0B
REG_H EQU 0x0D
        ORG H'00'

MAIN BSF STATUS,5
        MOVLW 0x00
        MOVWF TRISB
        BCF STATUS,5
BATDAU MOVLW B'00000001'
        MOVWF PORTB       
        CALL DELAY05S
        CALL DELAY05S
        CALL DELAY05S
        MOVLW B'00000010'
        MOVWF PORTB       
        CALL DELAY05S
        CALL DELAY05S
        CALL DELAY05S
        GOTO BATDAU

DELAY05S CLRF REG_L
        CLRF REG_M
        MOVLW H'02'
        MOVWF REG_H
LOOP NOP
        DECFSZ REG_L
        GOTO LOOP
        NOP
        DECFSZ REG_M
        GOTO LOOP
        NOP
        DECFSZ REG_H
        GOTO LOOP
        RETURN
        END


Trong 16F84 thanh ghi ở địa chỉ 0x0B là thanh ghi INTCON dùng để thiết lập chức năng ngắt cho PIC. Bạn dùng nó như một thanh ghi dữ liệu sẽ có nhiều rắc rối. Và ở đây khi thay địa chỉ 0x0B (REG_M EQU 0x0B) thành 0x0E thì mạch nháy 2 LED.
Bạn nên đọc thêm datasheet để biết thêm về các thanh ghi đặt biệt và các cách sử dụng nó.
Có gì mọi người bổ xung thêm.

bien_van_khat 20-07-2007 10:34 AM

Mình ko thấy bạn cấu hình cho chip ở đâu cả.

Nếu bạn để mặc định, bộ dao động sẽ là RC bạn mắc thạch anh sẽ ko bao giờ chạy.

Vùng ram đa mục đích của con 84A bắt đầu từ 0x0C (datasheet, data memory organization), thanh ghi 0x0B là SFR bạn sử dụng nó làm biến sẽ làm chương trình chạy sai trong nhiều trường hợp.

Nhưng theo mình lý do chính khiến ct của bạn chỉ chớp 1 led là Watchdog, bạn ko cấu hình, mặc định watchdog on, chạy 1 thời gian nó reset chip, nên phần chương trình phía con led trên chân RB1 sẽ ko bao giờ được thực thi.

Bạn có thể cấu hình như sau:
__config _wdt_off & _xt_osc & _pwrte_on


Múi giờ GMT. Hiện tại là 06:10 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