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)
-   -   Bộ so sánh và PWM cho PIC16F877A (http://www.picvietnam.com/forum/showthread.php?t=949)

anhquangngai 02-03-2007 04:57 PM

Bộ so sánh và PWM cho PIC16F877A
 
ai biết thì chỉ cho em về bộ so sánh và PWM hai kênh cùng một lúc.
và cho em biết bắt đầu từ đâu và làm như thế nào?
Xin chân thành cảm ơn!

falleaf 02-03-2007 05:36 PM

Đây là vấn đề về thiết kế phần cứng, có nghĩa là khi bạn dùng thiết bị cùng một chân, thì bạn không thể dùng chung được. Chỉ đơn giản là bạn tìm cách thiết kế phần cứng, cho nó giống cái switch và dùng một tín hiệu để bật tắt cái switch này để chuyển chân. Sau đó, tại cùng một thời điểm bạn không thể dùng nó cùng lúc.

Ngoại trừ trường hợp bạn thay một con PIC có nhiều chân CCP hơn.

Chúc vui.

anhquangngai 08-03-2007 09:01 PM

ý cùa em là ko dùng hai cái cùng một lúc mà hoặc là dùng bộ so sánh hoặc là dùng PWM hai kênh CCP1 và CCP2 cùng một lúc. Hai cái này riêng biệt không dùng chung so sánh và PWM cùng lúc!

falleaf 08-03-2007 10:09 PM

Hai chức năng này, sẽ dùng chung timer trên hai chân (nếu 2 chân được setup cùng chức năng). Do đó, bạn chỉ cần bật chức năng này, setup timer 1 lần, và chạy nó.

Có nghĩa là, bạn chỉ phải setup cho chân CCP1 là PWM, chân CCP2 là PWM, rồi chỉnh timer theo ý bạn, rồi chạy. Tương tự, CCP1 là comparator, CCP2 là comparator, rồi setup timer, rồi chạy.

Chúc vui

anhquangngai 13-03-2007 08:05 PM

vậy anh falleaf có chương trinh demo nào cho hai phần này thì up len cho em dc ko?
Xin cảm ơn!

PICC 24-03-2007 02:19 PM

16f877a khong PWM duoc
 
toi dang dung 16f877a de lam pwm nhung la 1 cho la luc dau van pwm duoc, nap chuong trinh vai lan la no khong pwm duoc nua, chang biet chuyen gi xay ra. Neu mua 1 con nua bo vao thi lai bi y nhu con dau, co ai biet chuyen gi da xay ra khong?

namqn 24-03-2007 06:37 PM

Trích:

Nguyên văn bởi PICC (Post 7932)
toi dang dung 16f877a de lam pwm nhung la 1 cho la luc dau van pwm duoc, nap chuong trinh vai lan la no khong pwm duoc nua, chang biet chuyen gi xay ra. Neu mua 1 con nua bo vao thi lai bi y nhu con dau, co ai biet chuyen gi da xay ra khong?

Bạn mô tả quá chung chung. Chưa thấy có ai phản ánh về PWM của PIC16F877A như bạn, mà số người dùng PWM của PIC16F877A đâu phải chỉ có một vài.

Bạn đã cấu hình chip như thế nào, đã nạp chương trình vào chip như thế nào, đoạn code set up PWM của bạn như thế nào, và những nơi nào trong chương trình của bạn cập nhật giá trị cho PWM (post những đoạn code đó luôn).

Thân,

phamvanthang 27-03-2007 10:27 PM

dung CCP1 de tao song vuong voi PIC877a
 
Toi dang tim cach su dung che do CCP1 cua PIC877a tao ra song vuong, chuong trinh viet bang CCS C. Nhung chay mo phong bang Proteous thi lai thu duoc song co chu ki khong phai la 2 ms. Xin moi nguoi sua giup. Cam on!
Code:

#include <16F877.h>
#INCLUDE<def_877a.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)

int16 pulse;

#int_ccp1
void isr()
{
     
  if (!bit_test(PORTB,0)){
  output_high(PIN_b0);
  }
  else{
  output_low(PIN_B0);}
  CCP_1+=1000; 
}



void main()
{
  CHAR VALUE;
  setup_timer_1(T1_INTERNAL|T1_DIV_BY_1); 
  setup_ccp1(CCP_COMPARE_INT);
  enable_interrupts(INT_CCP1);
  enable_interrupts(GLOBAL);


  pulse = 1000;
  TRISB = 0;
  PORTB = 0;
  CCP_1 = PULSE;
 
  set_timer1(0);
     
  while(true);                     
}


phamvanthang 28-03-2007 12:58 AM

Khong hieu sao chuong trinh tren lai chay dung roi! Nhung ma khi toi thay CCP1 bang CCP2 thi chuong trinh lai chay sai.

namqn: Bạn chú ý viết tiếng Việt có dấu, diễn đàn có sẵn bộ gõ tiếng Việt rồi, bạn không cần cài thêm gì vào máy của bạn đâu.

0509592 13-07-2008 12:23 AM

các bác co tai liệu tiếng Việt về pic 16F877A thi load lên cho em với.
email: truongtv0510@gmail.com
thanks!

tallht 28-07-2008 02:06 PM

bạn search trên mạng thì có đó mà.

tmtm 28-07-2008 07:23 PM

Trích:

Nguyên văn bởi 0509592 (Post 17394)
các bác co tai liệu tiếng Việt về pic 16F877A thi load lên cho em với.
email: truongtv0510@gmail.com
thanks!

Bạn có thể vào đây http://dientuvietnam.net/forums/showthread.php?t=12053 hoặc vào đây http://park.geocities.jp/hitechcontr...en-tu-dong.htm (cái này tải hơi khó, hình như là mục báo cáo ngay trên đầu thì phải).

tmtm 28-07-2008 07:28 PM

Trích:

Nguyên văn bởi tallht (Post 17814)
bạn search trên mạng thì có đó mà.

có thì nói là có, ko có thì nói là ko có, ''search trên mạng'', tất nhiên rồi, nhưng nói thế sao nghe khó quá!

minhdt10 14-08-2008 05:46 PM

Code:

#include <16F877a.h>
#INCLUDE<def_877a.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)

int16 pulse;

//#int_ccp1
#int_ccp2
void isr() 
{
  if (!bit_test(PORTB,0))
  {
      output_high(PIN_B0);
  }
  else
  {
      output_low(PIN_B0);
  }
//  CCP_1+=1000;
  CCP_2+=5000;
}

void main()
{
//  CHAR VALUE;
 
  setup_timer_1(T1_INTERNAL|T1_DIV_BY_1); 
  setup_ccp2(CCP_COMPARE_INT);

  enable_interrupts(INT_CCP2);  //-> Cho phep ngat
  enable_interrupts(GLOBAL);

  pulse = 5000;
  TRISB = 0; 
  PORTB = 0; 
//  CCP_1 = PULSE;
  CCP_2 = PULSE;
 
//  set_timer1(0);
  set_timer1(0);
     
  while(true);                     
}

Bạn thử cái này xem thế nào

window 29-09-2008 11:55 AM

Các bạn có thể gom lại thành một tài liệu chi tiết , cơ bản và đầy đủ cho anh em mới được học hỏi.


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

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