![]() |
|
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 |
|
Nhập môn đệ tử
Tham gia ngày: Mar 2007
Bài gửi: 3
: |
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?
|
|
|
|
|
|
#2 | |
|
Trưởng lão PIC bang
|
Trích:
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,
__________________
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 |
|
Nhập môn đệ tử
Tham gia ngày: Sep 2006
Bài gửi: 7
: |
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);
}
thay đổi nội dung bởi: namqn, 28-03-2007 lúc 12:30 AM. |
|
|
|
|
|
#4 |
|
Đệ tử 1 túi
Tham gia ngày: May 2008
Bài gửi: 18
: |
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);
}
|
|
|
|
![]() |
|
|
Similar Threads
|
||||
| Ðề tài | Người gửi | Chuyên mục | Trả lời | Bài mới |
| TUT về USART trong PIC16F877A | mafd_47a | MPASM | 16 | 19-02-2025 05:32 AM |
| TUT ve I2C ( pic16f877a ) | mafd_47a | MPASM | 28 | 28-01-2025 10:45 PM |
| Lập nhóm PIC16F877A | nhh | Cơ bản về vi điều khiển và PIC | 285 | 08-03-2017 11:08 PM |
| Pic16f877a TỪ DỄ TỚi KhÓ | ntc | Cơ bản về vi điều khiển và PIC | 373 | 23-05-2009 10:24 PM |
| CCS C for PIC16F877A | nhh | Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) | 405 | 24-04-2008 12:00 PM |