![]() |
|
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 |
![]() |
#16 | |
Đệ tử 1 túi
Tham gia ngày: Jul 2008
Bài gửi: 11
: |
Trích:
Mình thấy pic16f877a chỉ có 2 chân băm xung thôi nhưng mình muốn sử dụng 8 chân thì làm như thế nào mong được chỉ giáo! Trân trọng cảm ơn! |
|
![]() |
![]() |
![]() |
#17 | |
Đệ tử 4 túi
Tham gia ngày: May 2007
Bài gửi: 81
: |
Trích:
Code:
#include <12F683.h> #FUSES NOWDT //No Watch Dog Timer #FUSES INTRC_IO //Internal RC Osc, no CLKOUT #FUSES NOCPD //No EE protection #FUSES NOPROTECT //Code not protected from reading #FUSES NOMCLR //Master Clear pin used for I/O #FUSES NOPUT //No Power Up Timer #FUSES BROWNOUT //Reset when brownout detected #FUSES IESO //Internal External Switch Over mode enabled #FUSES FCMEN //Fail-safe clock monitor enabled #use delay(clock=4000000) int i; void main() { setup_ccp1(CCP_PWM); setup_timer_2(T2_DIV_BY_1,25,1); set_pwm1_duty(0); while(true) { for(i=0;i<25;i++) { set_pwm1_duty(i); delay_ms(200); } } } |
|
![]() |
![]() |
![]() |
#18 |
Đệ tử 1 túi
Tham gia ngày: Jul 2008
Bài gửi: 11
: |
Chào bạn Nhanh0112!
Mình đã thử mô phỏng lại với PIC2f683, led nhấp nháy rồi! Nếu mạch thực thì nó sáng dần phải không bạn? Mình đã thử lại với PiC6f877a nhưng vẫn không được. Bạn thử mô phỏng xem sao? Còn giả sữ mình muốn điều khiển 8 led đơn cho nó sáng dần từ con 1 đến con thứ 8 thì không sử dụng chân CCPx được rồi! Vậy mình lập trình ra sao? Mong được anh em post lên cho y kiến với! Trân trọng cảm ơn! |
![]() |
![]() |
![]() |
#19 |
Đệ tử 1 túi
Tham gia ngày: Jul 2008
Bài gửi: 11
: |
Các bạn xem thử sự lợi hại của PWM để điều khiển led nhé!
Xem xong cho ý kiến để làm nhé các bạn! http://www.youtube.com/watch?v=SKe67xZG8Sg Thân! |
![]() |
![]() |
![]() |
#20 | |
Đệ tử 4 túi
Tham gia ngày: May 2007
Bài gửi: 81
: |
Trích:
Ở đây viết là xung mẫu là 500us, và chiều dài của 1 xung đc băm ra là 100 khoảng (là độ phân giải của nó ấy). Thời gian của 1 xung là T=500x100=50ms Đoạn code đc viết cho 4 chân (bạn có thể mở rộng tùy thích) Các giá trị độ rộng xung đc nạp 1 lần vào mảng Pulse[] từ phần tử 0 đến phần tử 3 tương ứng từ kênh 1 đến kênh 4, với giá trị:0-100 ví dụ pulse[0]=20;//0=min,100=max pulse[1]=45; ..... Code:
#int_timer0 //overflow every 500us void decode() { set_timer0(0); xung++; if(xung<pulse[0])//1 {output_high(PIN_D0);} else {output_low(PIN_D0);} if(xung<pulse[1])//2 {output_high(PIN_D1);} else {output_low(PIN_D1);} if(xung<pulse[2])//3 {output_high(PIN_D2);} else {output_low(PIN_D2);} if(xung<pulse[3])//4 {output_high(PIN_D3);} else {output_low(PIN_D3);} if(xung>100){xung=0;}//end of pulse } |
|
![]() |
![]() |
![]() |
#21 |
Đệ tử 1 túi
Tham gia ngày: Nov 2009
Bài gửi: 21
: |
trang web hay thật.
__________________
Cùng nhau chia sẻ tri thức |
![]() |
![]() |
![]() |
#22 |
Nhập môn đệ tử
Tham gia ngày: Dec 2009
Bài gửi: 1
: |
Mình đang học PIC và có 1 bài tập như thế này.Ai giúp mình..tham khảo với
![]() 1.Cho LED sáng lần lượt từ Rb7-RD0 mà vẫn giữ cho các LED trước sáng và ngược lạo 2.Sử Dụng chức năng ngắt ngoài cho LED sáng lần lượt như câu 1 3.Tương tự câu 2 nhưng sử dụng ngắt Timer1 |
![]() |
![]() |
![]() |
#23 |
Nhập môn đệ tử
Tham gia ngày: Nov 2010
Bài gửi: 1
: |
có bạn nào có kit mô phỏng led chasing trên protues k? share cho mình với! mình đang cần! thanks mọi người nhiều!!
|
![]() |
![]() |
![]() |
#24 |
Nhập môn đệ tử
Tham gia ngày: Dec 2011
Bài gửi: 2
: |
cho mình hỏi: mình muốn post B chạy riêng 5 kiểu có 8 con led đơn, đồng thời post C cũng chạy 3 kiểu có 8 con led đơn. 2 dãy chạy đồng thời. mình viết chương trình bằng CCS, mình viết cách: outputb,outputc,delay rất phúc tạp khi viết nhiều kiểu led chạy. bạn nào biết dùng lệnh gì để tách ra chạy riêng biệt 2 post ko
|
![]() |
![]() |
![]() |
|
|