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 18-05-2009, 02:22 AM   #1
phandinh
Đệ tử 6 túi
 
Tham gia ngày: Nov 2008
Nơi Cư Ngụ: Di Linh
Bài gửi: 131
:
Lại hỏi về bộ dao động nội trong PIC

Thưa các bác, Em tự học PIC vài tháng nay, đã đạt được 1 số kết quả để khích lệ bản thân.
Do khả năng Anh Văn còn hạn chế nên việc đọc datasheet khá khó khăn.
Em có thắc mắc này từ lâu, đã tìm hiểu, nhưng chưa được sự thuyết phục rõ rệt.

Đó là Bộ Dao Động Nội ( internal oscillator ) trong PIC.
Các bác, các bạn xin chỉ bảo giúp em:

1. Bộ Dao Động Nội ( internal oscillator ) trong Data sheet 16F87X ở trang nào.

2. Các thanh ghi nào liên quan trực tiếp đến việc thiết lập Bộ Dao Động Nội ( internal oscillator ).

3. internal A/D module RC oscillator mục 11.2 trang 115 Data sheet 16F87X
và internal oscillator khác nhau như thế nào.

Nói tóm lại em đang mù mờ về vụ này, mong mọi người
chỉ bảo cho za nhẽ.
Thanks !
phandinh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-05-2009, 09:07 AM   #2
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 phandinh View Post
Thưa các bác, Em tự học PIC vài tháng nay, đã đạt được 1 số kết quả để khích lệ bản thân.
Do khả năng Anh Văn còn hạn chế nên việc đọc datasheet khá khó khăn.
Em có thắc mắc này từ lâu, đã tìm hiểu, nhưng chưa được sự thuyết phục rõ rệt.

Đó là Bộ Dao Động Nội ( internal oscillator ) trong PIC.
Các bác, các bạn xin chỉ bảo giúp em:

1. Bộ Dao Động Nội ( internal oscillator ) trong Data sheet 16F87X ở trang nào.

2. Các thanh ghi nào liên quan trực tiếp đến việc thiết lập Bộ Dao Động Nội ( internal oscillator ).

3. internal A/D module RC oscillator mục 11.2 trang 115 Data sheet 16F87X
và internal oscillator khác nhau như thế nào.

Nói tóm lại em đang mù mờ về vụ này, mong mọi người
chỉ bảo cho za nhẽ.
Thanks !
1. Bộ dao động nội không có trong PIC16F87x, do đó bạn sẽ không tìm thấy phần mô tả về nó trong datasheet của chip.

2. Thông thường, bạn thiết lập sử dụng bộ dao động nội thông qua việc cấu hình chip, và điều chỉnh hoạt động của bộ dao động nội thông qua thanh ghi OSCCON.

3. Internal A/D module RC oscillator là một mạch dao động RC chỉ dùng để cấp xung clock cho module A/D, còn internal oscillator cũng là một mạch dao động RC dùng để cấp xung clock cho hệ thống (lõi xử lý của PIC cũng như đa số các module ngoại vi). Ngoài ra, WDT (nếu có) cũng sẽ sử dụng một mạch dao động RC khác, độc lập hoàn toàn với các mạch đã nêu trê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 18-05-2009, 10:04 AM   #3
the_duyet
Đệ tử 1 túi
 
Tham gia ngày: Mar 2008
Nơi Cư Ngụ: Hạ Long City
Bài gửi: 18
:
Send a message via Yahoo to the_duyet
Post

Tiện đây anh namqn cho e hỏi. E mới học Pic được 2 tuần và tự học nên không có nhiều kinh nghiệm. E lắp mạch dao cho PIC như hình vẽ mà đèn LED cứ chạy loạn hết cả lên.Đổ chương trình nào vào cũng thế(Trước e có chạy chương trình test thì đôi lúc lại được). E ko nghĩ là do lỗi code.Chạy trong Proteus rất đẹp.Có khả năng ở dao động thạch anh ko? e dùng winpic800 và PG2C để nạp. verify ok.
đây là đoạn code của e.

#include <16F877A.h>
#fuses NOWDT,PUT,HS,NOPROTECT
#use delay(clock=20000000)
#use fast_io(b)
#use fast_io(d)
#byte portb=0x06
#byte portd=0x08
int16 b;
#INT_EXT
void ngat_rb0()
{
b++;
}
int16 a;
int8 nghin, tram, chuc, dvi;

void hex_bcd()
{
nghin=a/1000;
a=a%1000;
tram=a/100;
a=a%100;
chuc=a/10;
dvi=a%10;
}
void hienthi()
{

output_d(dvi|0xE0);
delay_ms(2);
output_d(chuc|0xD0);
delay_ms(2);
output_d(tram|0xB0);
delay_ms(2);
output_d(nghin|0x70);
delay_ms(2);
}

void main()
{
set_tris_b(0b0000001);
set_tris_d(0x00);
enable_interrupts(global);
enable_interrupts(int_ext);
ext_int_edge(H_to_L);

while(1)
{

a=b;
if(a==10000)
{
a=0;
}
hex_bcd();
hienthi();
}

}

E chưa biết làm code ở trong khung.a hướng dẫn e được ko.
Hình Kèm Theo
File Type: jpg led.JPG (109.7 KB, 10 lần tải)
the_duyet vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-05-2009, 01:33 PM   #4
phandinh
Đệ tử 6 túi
 
Tham gia ngày: Nov 2008
Nơi Cư Ngụ: Di Linh
Bài gửi: 131
:
Như vậy là 16F877A khi mình sử dụng 16F877A thì phải dùng dao động ngoài phải không bác ?
Nhân tiện nhờ bác Bác liệt kê số loại PIC thông dụng có / không có bộ dao động nội.
Thanks
phandinh 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à 02:35 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