PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Cơ bản về vi điều khiển và PIC (http://www.picvietnam.com/forum/forumdisplay.php?f=8)
-   -   Các bác cho em hỏi về PWM (http://www.picvietnam.com/forum/showthread.php?t=5349)

pk178 20-11-2009 09:41 PM

Các bác cho em hỏi về PWM
 
Chào các bác !!!

Các bác cho em hỏi 1 chút về PWM. Em sử dụng con PIC16f877A, em dùng CCS để lập trình. Em muốn sử dụng chân RC2 để điều xung, nhưng không hiểu sao sau khi nạp file .hexvào proteus để mô phỏng, nó lại không chạy.

Đây là code của em :

Code:

#include <16F877A.h>
#fuses HS, XT, NOWDT, NOPROTECT, BROWNOUT, PUT, NOLVP
#use delay(clock = 4000000)

void main()

  setup_ccp1(CCP_PWM);  // Configure CCP1 as a PWM   
 
  setup_timer_2(T2_DIV_BY_16, 124, 1);  // 500 Hz     
  set_pwm1_duty(31);                   
  while(1);  // Prevent PIC from going to sleep  (Important !)
}

Cám ơn các bác nhiều !!!

phamquang_hung 20-11-2009 10:51 PM

Trích:

Nguyên văn bởi pk178 (Post 31444)
Chào các bác !!!

Các bác cho em hỏi 1 chút về PWM. Em sử dụng con PIC16f877A, em dùng CCS để lập trình. Em muốn sử dụng chân RC2 để điều xung, nhưng không hiểu sao sau khi nạp file .hexvào proteus để mô phỏng, nó lại không chạy.

Đây là code của em :

Code:

#include <16F877A.h>
#fuses HS, XT, NOWDT, NOPROTECT, BROWNOUT, PUT, NOLVP
#use delay(clock = 4000000)

void main()

  setup_ccp1(CCP_PWM);  // Configure CCP1 as a PWM   
 
  setup_timer_2(T2_DIV_BY_16, 124, 1);  // 500 Hz     
  set_pwm1_duty(31);                   
  while(1);  // Prevent PIC from going to sleep  (Important !)
}

Cám ơn các bác nhiều !!!

dòng fuse của bạn chọn 1 trong 2 HS hoặc XT
HS dao động ngoài > 4MHz
XT dao động nội <= 4MHz

phamquang_hung 20-11-2009 11:00 PM

Trích:

Nguyên văn bởi pk178 (Post 31444)
Chào các bác !!!

Các bác cho em hỏi 1 chút về PWM. Em sử dụng con PIC16f877A, em dùng CCS để lập trình. Em muốn sử dụng chân RC2 để điều xung, nhưng không hiểu sao sau khi nạp file .hexvào proteus để mô phỏng, nó lại không chạy.

Đây là code của em :

Code:

#include <16F877A.h>
#fuses HS, XT, NOWDT, NOPROTECT, BROWNOUT, PUT, NOLVP
#use delay(clock = 4000000)

void main()

  setup_ccp1(CCP_PWM);  // Configure CCP1 as a PWM   
 
  setup_timer_2(T2_DIV_BY_16, 124, 1);  // 500 Hz     
  set_pwm1_duty(31);                   
  while(1);  // Prevent PIC from going to sleep  (Important !)
}

Cám ơn các bác nhiều !!!

dòng fuse của bạn chọn 1 trong 2 HS hoặc XT
HS dao động ngoài > 4MHz
XT dao động nội <= 4MHz

bien_van_khat 20-11-2009 11:16 PM

Trích:

Nguyên văn bởi phamquang_hung (Post 31450)
dòng fuse của bạn chọn 1 trong 2 HS hoặc XT
HS dao động ngoài > 4MHz
XT dao động nội <= 4MHz

XT là dao động ngoài, nội là RC

pk178 21-11-2009 12:39 PM

Vâng, em đã sửa lại rồi, cám ơn các bác !

Em đã thử trực tiếp trên mạch thật,nó hoạt động tốt (em cho con led vào, thấy con led sáng tối khác nhau ở các mức xung khác nhau).

Cái proteus hình như không mô phỏng được hay sao ấy các bác ạ !

vinasheva 21-11-2009 08:08 PM

Trong proteus bạn có thể mô phỏng bằng cách xem xung bằng máy đo

dovandoan06011 22-11-2009 01:00 PM

bác có thể cho em sơ đồ nguyên lí bằng proteus đó được không? sao em mô phỏng mà nó không chạy.
thanks

dovandoan06011 22-11-2009 01:01 PM

em muốn điều khiển động cơ ấy


Múi giờ GMT. Hiện tại là 05:25 PM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam