![]() |
|
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 |
![]() |
#1 |
Đệ tử 5 túi
Tham gia ngày: Aug 2010
Bài gửi: 116
: |
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 |
![]() |
![]() |
![]() |
#2 |
Đệ tử 5 túi
Tham gia ngày: Aug 2010
Bài gửi: 116
: |
up cái mong có cao nhân đi qua
|
![]() |
![]() |
![]() |
#3 |
Đệ tử 5 túi
Tham gia ngày: Aug 2010
Bài gửi: 116
: |
up cái mong có cao nhân đi qua
|
![]() |
![]() |
![]() |
#4 |
Đệ tử 6 túi
|
![]() -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. |
![]() |
![]() |
![]() |
#5 | |
Đệ tử 7 túi
Tham gia ngày: May 2005
Bài gửi: 258
: |
Trích:
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) { } }
__________________
viết chương trình cho vdk chạy ổn định là cả một vấn đề. |
|
![]() |
![]() |
![]() |
#6 | |
Đệ tử 5 túi
Tham gia ngày: Aug 2010
Bài gửi: 116
: |
Trích:
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! thay đổi nội dung bởi: pucapuca123, 10-07-2011 lúc 08:56 AM. |
|
![]() |
![]() |
![]() |
#7 |
Đệ tử 5 túi
Tham gia ngày: Aug 2010
Bài gửi: 116
: |
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! |
![]() |
![]() |
![]() |
#8 | |
Đệ tử 1 túi
Tham gia ngày: Aug 2006
Bài gửi: 13
: |
Trích:
|
|
![]() |
![]() |
![]() |
#9 | |
Đệ tử 5 túi
Tham gia ngày: Aug 2010
Bài gửi: 116
: |
Trích:
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!!!!!!! |
|
![]() |
![]() |
![]() |
#10 |
Đệ tử 5 túi
Tham gia ngày: Aug 2010
Bài gửi: 116
: |
up cái bác nào giúp em với
|
![]() |
![]() |
![]() |
#11 |
Đệ tử 1 túi
Tham gia ngày: Aug 2006
Bài gửi: 13
: |
Để 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 ![]() |
![]() |
![]() |
![]() |
|
|