![]() |
|
Tài trợ cho PIC Vietnam |
PIC - Thiết kế và Ứng dụng Ý tưởng cho các sản phẩm sử dụng PIC/dsPIC và các sản phẩm của Microchip |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
|
![]() |
#1 |
Đệ tử 1 túi
Tham gia ngày: Mar 2009
Bài gửi: 20
: |
Em đã sửa lại chương trình như phần trên của bác, nhưng vẫn ko dc:
#include <16F877A.h> #device adc=8 #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, WRT_50% #use delay(clock=20000000) void main() { setup_timer_2(T2_DIV_BY_16,255,1); setup_ccp1(CCP_PWM); set_pwm1_duty(50); //gia tri thay doi tu 0-255 (nho hon hoac bang period) while(true); } Em mô phỏng bằng Proteus, nối trực tiếp 1 mô tơ (có 2 chân) vào chân RC2, chân kia nối đất. Nhưng nó ko chạy gì hết, mà Proteus thì lúc nào cũng báo chân RC2 màu xanh. Em đã thử thay đổi giá trị duty thành vài giá trị khác (150, 200) cũng ko thấy thay đổi gì. Các bác giúp em với, có thể dc thì gửi hộ em 1 chương trình đơn giản nhất (nếu kèm theo luôn file Proteus trong 1 thư mục để mô phỏng luôn thì càng tốt) để tạo ra tín hiệu PWM làm quay động cơ. Nếu gặp khó khăn khi tải file lên diễn đàn thì gửi trực tiếp file vào mail cho em với: chien2607@gmail.com Xin đa tạ các bác! |
![]() |
![]() |
![]() |
#2 |
Đệ tử 2 túi
Tham gia ngày: Jan 2009
Bài gửi: 34
: |
Bạn đang làm với trình Complier gi vậy?
Mà trình biên dịch gì theo mình cũng vậy thui.Trong khi viết trương trình nên ấn F1 để xem file Help của nó.Có như vậy viết sẽ ko bao giờ sai! ở chỗ set_pwm1_duty(50) .Nếu là như thế này thì áp ra rất bé.Có thể chưa đủ để làm động cơ quay dc đâu bạn ạ!Banthử set_pwm1_duty(200) trở lến Xem sao! Chúc thành công! |
![]() |
![]() |
![]() |
#3 | |
Đệ tử 1 túi
Tham gia ngày: Mar 2009
Bài gửi: 20
: |
Trích:
|
|
![]() |
![]() |
![]() |
#4 | |
Đệ tử 1 túi
Tham gia ngày: Mar 2009
Bài gửi: 20
: |
Trích:
|
|
![]() |
![]() |
![]() |
#5 |
Đệ tử 4 túi
Tham gia ngày: May 2007
Bài gửi: 81
: |
Dưới đây là nguyên văn đoạn code PWM để tạo ra xung 38kHz (đã là thử thực tế)
Code:
#include <16F88.h> #FUSES NOWDT //No Watch Dog Timer #FUSES INTRC_IO //Internal RC Osc, no CLKOUT #FUSES NOPUT //No Power Up Timer #FUSES NOMCLR //Master Clear pin used for I/O #FUSES NOBROWNOUT //No brownout reset #FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O #FUSES NOCPD //No EE protection #FUSES NOWRT //Program memory not write protected #FUSES NODEBUG //No Debug mode for ICD #FUSES NOPROTECT //Code not protected from reading #FUSES FCMEN //Fail-safe clock monitor enabled #FUSES IESO //Internal External Switch Over mode enable #FUSES CCPB3 //use pin B3 for CCP #use delay(clock=4000000) void main() { setup_ccp1(CCP_PWM); setup_timer_2(T2_DIV_BY_1,25,1); set_pwm1_duty(14); while(true); } |
![]() |
![]() |
![]() |
#6 | |
Đệ tử 1 túi
Tham gia ngày: Mar 2009
Bài gửi: 20
: |
Trích:
Em sẽ thử trên mạch thật xem sao. Thanks bác! PS: Đã thử trên mạch thật thấy chạy tốt ko có vd gì => ko nên tin tưởng trình mô phỏng :d thay đổi nội dung bởi: chiene, 30-01-2010 lúc 12:20 AM. |
|
![]() |
![]() |
![]() |
|
|