PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

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

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 26-12-2009, 07:07 PM   #1
dl988
Nhập môn đệ tử
 
Tham gia ngày: Aug 2008
Bài gửi: 10
:
Nạp Pic chạy không chính xác,vout ko đủ 5V

E mới học Pic nên gặp khá nhiều rắc rối, nhờ mọi người chỉ dùm...
- Phần cứng : cấp nguồn cho pic, TA=4Mhz nối trực tiếp vào pin 13,14(vì chưa có tụ 30pF,có thể thay được bằng tụ nào vậy???)
- Lập trình: ban đầu viết nút nhấn không chạy nên viết tạm cái này test thử, có chạy nhưng không chính xác...hic.Đo thử pin RB6 thì vout có 3V à, Led chỉ đỏ không nhấp nháy như trong code...ko hiểu tại sao (Biên dịch bằng CCS C, Dùng IC-Prog để nạp, dùng mạch nạp JDM ở Nhật Tảo).Mô phỏng Protues thì chạy OK
Code:
#include<16f877.h>
#fuses nowdt,noprotect,nolvp,hs,noput,nodebug
#use delay(clock=4000000)
#use fast_io(b)
#byte portb=0x6
#bit b6=portb.6
void main()
{
set_tris_b(0b00000001);
output_b(0);
while(true)
{
b6=1;
delay_ms(1000);
b6=0;
delay_ms(1000);
}
}
dl988 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-12-2009, 07:30 PM   #2
dl988
Nhập môn đệ tử
 
Tham gia ngày: Aug 2008
Bài gửi: 10
:
kiếm được 2 con 12pF mắc theo datasheet nhưng ko thay đổi được gì...hic
dl988 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-12-2009, 07:38 PM   #3
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Bạn nên post thêm sơ đồ nguyên lý của mạch thử nghiệm nữa. Có khả năng mạch reset, hay mạch dao động, hoặc các chân cấp nguồn của bạn chưa ổn.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-12-2009, 07:50 PM   #4
dl988
Nhập môn đệ tử
 
Tham gia ngày: Aug 2008
Bài gửi: 10
:
Trích:
Nguyên văn bởi namqn View Post
Bạn nên post thêm sơ đồ nguyên lý của mạch thử nghiệm nữa. Có khả năng mạch reset, hay mạch dao động, hoặc các chân cấp nguồn của bạn chưa ổn.

Thân,
E chỉ làm đơn giản như sau thôi ^^:
Ban đầu phần cứng thử nghiệm : cấp nguồn 5V cho pic(11,12,31,32), TA=4Mhz nối trực tiếp vào pin 13,14 nhưng gặp vấn đề như đã nêu.
Sau này có mắc thêm 2 con 12pF giống DSheet cho Thạch Anh nhưng ko thay đổi được gì .e ko làm mạch reset, giúp e với
dl988 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-12-2009, 09:06 PM   #5
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi dl988 View Post
E chỉ làm đơn giản như sau thôi ^^:
Ban đầu phần cứng thử nghiệm : cấp nguồn 5V cho pic(11,12,31,32), TA=4Mhz nối trực tiếp vào pin 13,14 nhưng gặp vấn đề như đã nêu.
Sau này có mắc thêm 2 con 12pF giống DSheet cho Thạch Anh nhưng ko thay đổi được gì .e ko làm mạch reset, giúp e với
Mạch của bạn đơn giản quá, đến mức nó không thể chạy được.

Quan trọng nhất là chân MCLR phải được đặt logic '1' (tôi thường nối chân MCLR vào VDD, thông qua một điện trở từ 10 k đến 33 k). Khuyên bạn nên dùng giá trị lớn hơn cho hai tụ nối vào thạch anh (22 - 33 pF), giá trị 15 pF trong datasheet chỉ là giá trị khuyến cáo cho thạch anh cụ thể mà họ đã dùng để thử nghiệm.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-12-2009, 01:01 AM   #6
dl988
Nhập môn đệ tử
 
Tham gia ngày: Aug 2008
Bài gửi: 10
:
Trích:
Nguyên văn bởi namqn View Post
Mạch của bạn đơn giản quá, đến mức nó không thể chạy được.

Quan trọng nhất là chân MCLR phải được đặt logic '1' (tôi thường nối chân MCLR vào VDD, thông qua một điện trở từ 10 k đến 33 k). Khuyên bạn nên dùng giá trị lớn hơn cho hai tụ nối vào thạch anh (22 - 33 pF), giá trị 15 pF trong datasheet chỉ là giá trị khuyến cáo cho thạch anh cụ thể mà họ đã dùng để thử nghiệm.

Thân,
cám ơn a, e đã mắc thêm R10k kéo MCLR lên VDD,nhưng vẫn vậy, để mai e mua tụ 30pF test lại xem sao.
dl988 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-12-2009, 01:02 AM   #7
dl988
Nhập môn đệ tử
 
Tham gia ngày: Aug 2008
Bài gửi: 10
:
đi dạo 4Rum 1 vòng, thấy có vấn đề với Breakboard...hì. E đang test trên BB đó, không biết đó có phải là nguyên nhân ko??? Hì
dl988 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-12-2009, 05:00 PM   #8
Mr.Bi
Đệ tử 7 túi
 
Tham gia ngày: Jul 2007
Nơi Cư Ngụ: Đà Nẵng
Bài gửi: 188
:
Trích:
Nguyên văn bởi dl988 View Post
E mới học Pic nên gặp khá nhiều rắc rối, nhờ mọi người chỉ dùm...
- Phần cứng : cấp nguồn cho pic, TA=4Mhz nối trực tiếp vào pin 13,14(vì chưa có tụ 30pF,có thể thay được bằng tụ nào vậy???)
- Lập trình: ban đầu viết nút nhấn không chạy nên viết tạm cái này test thử, có chạy nhưng không chính xác...hic.Đo thử pin RB6 thì vout có 3V à, Led chỉ đỏ không nhấp nháy như trong code...ko hiểu tại sao (Biên dịch bằng CCS C, Dùng IC-Prog để nạp, dùng mạch nạp JDM ở Nhật Tảo).Mô phỏng Protues thì chạy OK
Code:
#include<16f877.h>
#fuses nowdt,noprotect,nolvp,hs,noput,nodebug
#use delay(clock=4000000)
#use fast_io(b)
#byte portb=0x6
#bit b6=portb.6
void main()
{
set_tris_b(0b00000001);
output_b(0);
while(true)
{
b6=1;
delay_ms(1000);
b6=0;
delay_ms(1000);
}
}
TA=4M thì khai báo là XT chứ k phải HS , dùng tụ 22p gắn vào chỗ thạch anh đi u ,chân RST kéo trở 10k lên 5v, để ổn định thì mắc thêm tụ 220u ngay sát chân 11 và 12 hoặc 31 và 32
Code:
#include<16f877.h>
#fuses nowdt,noprotect,nolvp,XT,noput,nodebug
#use delay(clock=4000000)

#byte TRISB=0x86;
#bit rb6   =0x06.6
void main()
{
   TRISB=0x01;
   while(1) {rb6=0;delay_ms(1000);rb6=1;delay_ms(1000);}
}
đơn giản , nhẹ nhàng

thay đổi nội dung bởi: Mr.Bi, 27-12-2009 lúc 05:06 PM.
Mr.Bi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-01-2010, 10:21 AM   #9
xalachxoan
Đệ tử 1 túi
 
Tham gia ngày: Jul 2008
Bài gửi: 11
:
Các bạn thân mến! sẵn đây cho mình hỏi về vấn đề của mình nhé!
Mình có đoạn code viết bằng ccs như sau:

#include <16F887.h>
#device adc=8

#FUSES NOWDT //No Watch Dog Timer
#FUSES HS //High speed Osc (> 4mhz)
#FUSES NOPUT //No Power Up Timer
#FUSES NOMCLR //Master Clear pin used for I/O
#FUSES NOPROTECT //Code not protected from reading
#FUSES NOCPD //No EE protection
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOIESO //Internal External Switch Over mode disabled
#FUSES NOFCMEN //Fail-safe clock monitor disabled
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOWRT //Program memory not write protected
#FUSES BORV40 //Brownout reset at 4.0V

#use delay(clock=20000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bi ts=8)


void main()
{

setup_adc_ports(NO_ANALOGS|VSS_VDD);
setup_adc(ADC_OFF);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard
//Setup_Oscillator parameter not selected from Intr Oscillotar Config tab
set_tris_e(0x00);

output_e(0b111);

}

Phần cứng: Thạch anh 20MHz nối với tụ 33pF, nguồn,mass, chân reset mắc theo hướng dẫn của các bạn. Mình nghĩ phần này không có vấn đề.
Nhưng điện thế chân RE2 chỉ có 2V thôi, trong khi RE1,RE0 thì được 4V.
Lúc đầu 3 chân này hoạt động bình thường, mình sử dụng 3 chân này để cấp dữ liệu cho IC ghi dịch 74595. Sau một thời gian sử dụng tốt thì tình trạng chạy loạn đã xãy ra.
Mình test lại 3 chân RE2,RE1,RE0 thì gặp phải hiện tượng trên.
Chân RE2, khi out mức 1 thì V=2V,mức 0 thì V=0V, để lững thì V=2V.
Các bạn giúp mình nhé!
xalachxoan vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-01-2010, 02:55 PM   #10
huynhhai
Nhập môn đệ tử
 
Tham gia ngày: Jun 2007
Bài gửi: 2
:
Ban dl988, Thật sự khi bạn dùng proteus mô phỏng PIC không chính xác bằng thực tế đâu. Tôi đã gặp nhiều trường hợp như vậy. Không biết là bạn có khai báo cho phép và không cho phép nhiệm vụ của từng port chưa, tại vì ở một port có rất nhiều chức năng khác nhau dùng chung , PIC xuất 3V ( tín hiệu có đúng với bạn lập trình không? )
huynhhai vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 08:20 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam