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)
-   -   khai báo cấu hình cho PIC 16f88 để sử dụng chân MCRL là chân I/O (http://www.picvietnam.com/forum/showthread.php?t=9983)

pucapuca123 07-07-2011 05:58 PM

khai báo cấu hình cho PIC 16f88 để sử dụng chân MCRL là chân I/O
 
các bác ơi giúp em với.
em đã chót làm mạch với PIC 16F88.với chân số 4 tức là chân( RA5/MCLR/VPP) làm chân I/O.
nhưng khi cấu hình:
__CONFIG(FOSC_HS & PWRTE_ON & BOREN_ON & WDTE_OFF & MCLRE_OFF & LVP_OFF)

và làm bình thường thì PIC toàn treo và đơ thui.

void main()
{
ANNEL=0x00;
TRISA=0x00;
TRISB=0x00;
while(1)
{
RA5=1;/// vậy mà đo ở RA5 lại=0

//VÀ THỬ CÁC CHÂN KHÁC ĐỀU KHÔNG CHẠY=>PIC ko chạy
}
}
nếu nối chân RA5 với 10k và với nguồn 5v thì
thì mạch lại chạy bình thường.
em đoán là tại cái chân số 4 tức là chân( RA5/MCLR/VPP).nó ko cấu hình đúng để làm chân I/O.
CÁC BÁC CHỈ EM CÁCH CẤU HÌNH ĐỂ EM DÙNG ĐƯỢC CHÂN SỐ 4 TỨC LÀ CHÂN(RA5/MCRL/VPP) CỦA PIC 16F88 LÀM CHÂN I/O VỚI!
EM VIẾT BẰNG HI TECH PIC

pucapuca123 08-07-2011 12:20 AM

up cái mong có cao nhân đi qua

pucapuca123 08-07-2011 12:35 AM

up cái mong có cao nhân đi qua

stupid11 08-07-2011 09:24 AM

http://i1090.photobucket.com/albums/...gdt08b/RA5.jpg

-Theo mình biết con PIC16F88 thì chân RA5 mặc định là chân Reset,nên bạn phải dùng điện trở kéo lên nguồn.vì Reset active-low mà.,
-Muốn khai báo RA5 là I/0 thì bạn phải tác động vào bit MCLRE,nằm trong thanh ghi nào thì mình cũng không nhớ nữa.cụ thể MCLRE = 0 thì cho phép RA5 là chân I/O,còn muốn là I hay O thì tác động vào thanh ghi TRIS cái này chắc bạn cũng biết rồi..còn MCLRE = 1 (bit này mặc định là 1) thì RA5 là chân Reset.

tdm 08-07-2011 11:10 AM

1 Attachment(s)
Trích:

Nguyên văn bởi pucapuca123 (Post 46686)
các bác ơi giúp em với.
em đã chót làm mạch với PIC 16F88.với chân số 4 tức là chân( RA5/MCLR/VPP) làm chân I/O.
nhưng khi cấu hình:
__CONFIG(FOSC_HS & PWRTE_ON & BOREN_ON & WDTE_OFF & MCLRE_OFF & LVP_OFF)

và làm bình thường thì PIC toàn treo và đơ thui.

void main()
{
ANNEL=0x00;
TRISA=0x00;
TRISB=0x00;
while(1)
{
RA5=1;/// vậy mà đo ở RA5 lại=0

//VÀ THỬ CÁC CHÂN KHÁC ĐỀU KHÔNG CHẠY=>PIC ko chạy
}
}
nếu nối chân RA5 với 10k và với nguồn 5v thì
thì mạch lại chạy bình thường.
em đoán là tại cái chân số 4 tức là chân( RA5/MCLR/VPP).nó ko cấu hình đúng để làm chân I/O.
CÁC BÁC CHỈ EM CÁCH CẤU HÌNH ĐỂ EM DÙNG ĐƯỢC CHÂN SỐ 4 TỨC LÀ CHÂN(RA5/MCRL/VPP) CỦA PIC 16F88 LÀM CHÂN I/O VỚI!
EM VIẾT BẰNG HI TECH PIC

theo như cấu hình thì nó phải chạy chứ nhỉ.
tôi viết trên ccs c:
Code:

#include <16F88.h>
#fuses NOWDT,PUT,RC,NOPROTECT,NOMCLR,INTRC_IO
#use delay(clock=4000000)
int8 bien;
int8 quay;
MAIN()
{
SETUP_ADC(ADC_OFF);
SETUP_ADC_PORTS(NO_ANALOGS );
set_tris_a(0x00);
while(1){
bien=0x01;
for(quay=0;quay<=7;quay++)
{
output_a(bien);
delay_ms(1000);
bien<<=1;
output_a(bien);
}
}
while(1)
{
}
}

bạn thử lạp file hex này xem nó có chạy không.

pucapuca123 10-07-2011 08:35 AM

Trích:

Nguyên văn bởi stupid11 (Post 46707)
http://i1090.photobucket.com/albums/...gdt08b/RA5.jpg

-Theo mình biết con PIC16F88 thì chân RA5 mặc định là chân Reset,nên bạn phải dùng điện trở kéo lên nguồn.vì Reset active-low mà.,
-Muốn khai báo RA5 là I/0 thì bạn phải tác động vào bit MCLRE,nằm trong thanh ghi nào thì mình cũng không nhớ nữa.cụ thể MCLRE = 0 thì cho phép RA5 là chân I/O,còn muốn là I hay O thì tác động vào thanh ghi TRIS cái này chắc bạn cũng biết rồi..còn MCLRE = 1 (bit này mặc định là 1) thì RA5 là chân Reset.

bạn ơi.
bít MCLRE là bít trong cấu hình confix 1

REGISTER 15-1: CONFIG1: CONFIGURATION WORD 1 REGISTER (ADDRESS 2007h)
R/P-1 R/P-1 R/P-1 R/P-1 R/P-1 R/P-1 R/P-1 R/P-1 R/P-1 R/P-1 R/P-1 R/P-1 R/P-1 R/P-1
CP CCPMX DEBUG WRT1 WRT0 CPD LVP BOREN MCLRE FOSC2 PWRTENWDTEN FOSC1 FOSC0

MCLRE: RA5/MCLR/VPP Pin Function Select bit
1 = RA5/MCLR/VPP pin function is MCLR
0 = RA5/MCLR/VPP pin function is digital I/O, MCLR internally tied to VDD

mình đã khai báo MCLR=0.rùi nhưng sao chip cứ RESET liên tục là sao?

các bạn vào giúp dùm mình với.
các ơn các bạn!

pucapuca123 10-07-2011 08:55 AM

các bác cho em hỏi thêm ở cấu hình confix 1:

CCPMX: CCP1 Pin Selection bit
1 = CCP1 function on RB0
0 = CCP1 function on RB3

bít CCPMX để chọn chức năng CCP1 hoặc CCP2 trên chân RB3 và RB0.
nếu mình ko muốn dùng chức năng CCP1 mà mình muốn dùng RB0 và RB3 vào chức năng I/O thì có cách nào để DIS chức năng CCP1 trên RB0 và RB3 ko?
hay phải bắt buộc chọn 1 trong hai PIn RB0 hoặc RB3 làm chức năng CCP1.ko thể chọn cả 2 pin đó cùng 1 lúc vào chức năng I/O được à?
cám ơn các bạn!

Auto_engine 10-07-2011 10:25 AM

Trích:

Nguyên văn bởi pucapuca123 (Post 46754)
các bác cho em hỏi thêm ở cấu hình confix 1:

CCPMX: CCP1 Pin Selection bit
1 = CCP1 function on RB0
0 = CCP1 function on RB3

bít CCPMX để chọn chức năng CCP1 hoặc CCP2 trên chân RB3 và RB0.
nếu mình ko muốn dùng chức năng CCP1 mà mình muốn dùng RB0 và RB3 vào chức năng I/O thì có cách nào để DIS chức năng CCP1 trên RB0 và RB3 ko?
hay phải bắt buộc chọn 1 trong hai PIn RB0 hoặc RB3 làm chức năng CCP1.ko thể chọn cả 2 pin đó cùng 1 lúc vào chức năng I/O được à?
cám ơn các bạn!

Nếu muốn CCP sử dụng bạn phải cấu hình để enable CCP cụ thể là CCPxM<0:3>, nếu chọn là 0000 thì nó disable CCP, khi đó bạn dùng chân có chức năng I/O bình thường.

pucapuca123 10-07-2011 11:00 AM

Trích:

Nguyên văn bởi Auto_engine (Post 46758)
Nếu muốn CCP sử dụng bạn phải cấu hình để enable CCP cụ thể là CCPxM<0:3>, nếu chọn là 0000 thì nó disable CCP, khi đó bạn dùng chân có chức năng I/O bình thường.

ok mình đã hiểu về CCPxM.
cám ơn bạn nhiều!
thế còn làm thế nào đế sử dung chân RA5 tức là chân số 4 của PIC 16F88 làm chân INPUT digtal.
mình bạn nào biết giúp mình với!!!!!!!

pucapuca123 10-07-2011 02:30 PM

up cái bác nào giúp em với

Auto_engine 12-07-2011 11:55 PM

Trích:

Nguyên văn bởi pucapuca123 (Post 46768)
up cái bác nào giúp em với

Để chọn Digital hay Analog, bạn tác động tới thanh ghi ANSEL, tùy từng PORT mà chọn cho đúng, với PORTA thì là ANSEL còn PORTB là ANSELH bạn check lại xem là bit nào của ANSEL nhé.
Sau đó để thiết lập là Input thì set bit trong TRISA tương ứng = 1
Hitech cho phép tác động riêng rẽ: TRISA5 = 1; hoặc có thể làm như sau: TRISA |= (1 << 5);

Bạn nên đọc qua các hướng dẫn trên diễn đàn + datasheet có đủ thông tin cho người mới học PIC. (Mình mới chuyển qua PIC thôi, trc toàn dùng AVR :D)


Múi giờ GMT. Hiện tại là 01:48 AM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam