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âu hỏi không ai trả lời! (http://www.picvietnam.com/forum/showthread.php?t=5014)

vtt 02-10-2009 01:19 PM

Câu hỏi không ai trả lời!
 
Xin chào mọi người!
Tôi có một câu hỏi mãi mà không thấy ai chỉ bảo giùm.
Tôi có một thí nghiệm với 16LF628A với nguồn áp thấp 3.3V, nhưng viết chương trình thì không chạy được. Cũng với chương trình ấy mà nguồn cấp là 5V thì OK. Tôi không rõ là tại làm sao. 16LF628A tôi chạy với bộ dao động nội 4 MHz
#include <16f628.h>

#fuses intRC,NOWDT,NOPROTECT
#use delay(clock=4000000)
#use rs232(baud=9600,parity=N,xmit=PIN_B2,rcv=PIN_B1)


void main()
{

SET_TRIS_B(0xCA);
SET_TRIS_A(0x00);
output_low(PIN_B0);
//--------------------
while(true)
{
output_low(PIN_B0);
delay_ms(2000);
output_high(PIN_B0);
delay_ms(2000);
}
}

namqn 02-10-2009 08:38 PM

Trích:

Nguyên văn bởi vtt (Post 29946)
Xin chào mọi người!
Tôi có một câu hỏi mãi mà không thấy ai chỉ bảo giùm.
Tôi có một thí nghiệm với 16LF628A với nguồn áp thấp 3.3V, nhưng viết chương trình thì không chạy được. Cũng với chương trình ấy mà nguồn cấp là 5V thì OK. Tôi không rõ là tại làm sao. 16LF628A tôi chạy với bộ dao động nội 4 MHz
#include <16f628.h>

#fuses intRC,NOWDT,NOPROTECT
#use delay(clock=4000000)
#use rs232(baud=9600,parity=N,xmit=PIN_B2,rcv=PIN_B1)


void main()
{

SET_TRIS_B(0xCA);
SET_TRIS_A(0x00);
output_low(PIN_B0);
//--------------------
while(true)
{
output_low(PIN_B0);
delay_ms(2000);
output_high(PIN_B0);
delay_ms(2000);
}
}

Chương trình của bạn quá đơn giản để có sai sót. Có thể vấn đề nằm ở mạch thử nghiệm của bạn. Bạn hãy post sơ đồ mạch thử nghiệm của bạn, với nguồn 3.3 V.

Hơn nữa, đừng cho rằng bạn đặt câu hỏi thì phải có câu trả lời trong 1, 2 ngày. Vào thời điểm này, ai cũng bận rộn cả.

Thân,

vtt 04-10-2009 05:13 PM

1 Attachment(s)
Trước hết xin cảm ơn sự quan tâm của bác namqn!
Nhưng bác Namqn ah, trên cùng một phần cứng mà với nguồn 5V thì chạy mà nguồn 3V6 thì không chạy.
Em gửi kèm thêm bản sơ đồ nguyên lý để bác tham khảo.
Thanks

namqn 04-10-2009 05:20 PM

Trích:

Nguyên văn bởi vtt (Post 29969)
Trước hết xin cảm ơn sự quan tâm của bác namqn!
Nhưng bác Namqn ah, trên cùng một phần cứng mà với nguồn 5V thì chạy mà nguồn 3V6 thì không chạy.
Em gửi kèm thêm bản sơ đồ nguyên lý để bác tham khảo.
Thanks

Nguồn 5 V thì bạn lấy từ đâu? Theo sơ đồ mạch của bạn thì có vẻ bạn dùng pin để cấp nguồn 3.6 V? Bạn có các tụ 100 nF (tụ 104), loại ceramic giữa các chân cấp nguồn của PIC và của MAX232 hay không?

Thân,

PIC_APP 04-10-2009 06:01 PM

#fuses NOLVP

vtt 06-10-2009 09:56 AM

Xin chào hai bác Namqn và PIC_App!
Hai hôm rồi mạng bị lối, lên không trả lời hai bác được.
Bác Namqn ah, nguồn 5 V em dùng nguồn ngoài (IC 7805) được ổn áp từ 2 cục pin 3v6
Còn nguồn 3V6 thì em đưa trực tiếp từ 1 quả Pin vào. Còn ở chân nguồn của PIC và Max232 thì em không lắp tụ 104.
- Bác PIC_APP ah, em cũng thử như bác rồi (#fuse NOLVP hay LVP) cũng không được.
Mong các bác sớm giúp đỡ!
Thân!

nmhai 06-10-2009 10:13 AM

Có thể bạn thiếu lệnh chọn chế độ BROWNOUT.
Bạn dùng cái này thử xem:
#fuses INTRC_IO,NOWDT,NOBROWNOUT

vtt 07-10-2009 10:00 AM

Cam on tat ca cac bac, nhat la bac nmhai. Em da thu va chuong trinh chay duoc roi.


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