![]() |
|
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ử 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 ! |
![]() |
![]() |
![]() |
#2 | |
Trưởng lão PIC bang
|
Trích:
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 |
|
![]() |
![]() |
![]() |
#3 |
Đệ tử 1 túi
|
![]() 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. |
![]() |
![]() |
![]() |
#4 |
Đệ 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 |
![]() |
![]() |
![]() |
|
|