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 07-07-2011, 05:58 PM   #1
pucapuca123
Đệ 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
pucapuca123 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-07-2011, 12:20 AM   #2
pucapuca123
Đệ 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
pucapuca123 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-07-2011, 12:35 AM   #3
pucapuca123
Đệ 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
pucapuca123 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-07-2011, 09:24 AM   #4
stupid11
Đệ tử 6 túi
 
stupid11's Avatar
 
Tham gia ngày: Dec 2009
Nơi Cư Ngụ: TP.Hồ Chí Minh
Bài gửi: 133
:
Send a message via Yahoo to stupid11


-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.
stupid11 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-07-2011, 11:10 AM   #5
tdm
Đệ tử 7 túi
 
Tham gia ngày: May 2005
Bài gửi: 258
:
Trích:
Nguyên văn bởi pucapuca123 View Post
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.
File Kèm Theo
File Type: zip 16f88.zip (11.8 KB, 9 lần tải)
__________________
viết chương trình cho vdk chạy ổn định là cả một vấn đề.
tdm vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 10-07-2011, 08:35 AM   #6
pucapuca123
Đệ tử 5 túi
 
Tham gia ngày: Aug 2010
Bài gửi: 116
:
Trích:
Nguyên văn bởi stupid11 View Post


-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!

thay đổi nội dung bởi: pucapuca123, 10-07-2011 lúc 08:56 AM.
pucapuca123 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 10-07-2011, 08:55 AM   #7
pucapuca123
Đệ 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!
pucapuca123 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 10-07-2011, 10:25 AM   #8
Auto_engine
Đệ tử 1 túi
 
Tham gia ngày: Aug 2006
Bài gửi: 13
:
Trích:
Nguyên văn bởi pucapuca123 View Post
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.
Auto_engine vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 10-07-2011, 11:00 AM   #9
pucapuca123
Đệ tử 5 túi
 
Tham gia ngày: Aug 2010
Bài gửi: 116
:
Trích:
Nguyên văn bởi Auto_engine View Post
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 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 10-07-2011, 02:30 PM   #10
pucapuca123
Đệ 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
pucapuca123 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 12-07-2011, 11:55 PM   #11
Auto_engine
Đệ tử 1 túi
 
Tham gia ngày: Aug 2006
Bài gửi: 13
:
Trích:
Nguyên văn bởi pucapuca123 View Post
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 )
Auto_engine 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à 09:02 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