PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

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

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 05-12-2010, 01:49 PM   #1
TheHouse
Đệ tử 1 túi
 
Tham gia ngày: Feb 2010
Bài gửi: 13
:
PWM trong PIC, 10bit & 8bit khác nhau chỗ nào ?

Trong con PIC 16F877a. Mình đang cố tìm hiểu về con PWM nhưng không hiểu bộ PWM 10bit & 8bit khác nhau chỗ nào. Mình biết là còn phụ thuộc vào tải của mình thì điều xung ở tần số bao nhiêu là vừa. Nhưng mình có đặt câu hỏi về ảnh hưởng của tần số điều xung đối với tải bên DTVN mà không thấy ai trả lời. Không biết là tần số đó phụ thuộc vào vật liệu đóng ngắt tải hay miễn sao trong dải cho phép thì mình chọn tần số nào cũng được.

Bộ PWM của PIC có phụ thuộc vào Timer 2 hay không, thấy trong các example có dùng đến timer 2. Mà chưa hiểu lắm, tiếng anh bình thường dịch thì tạm, tiếng anh chuyên ngành dịch hơi gà nên chưa hiểu. Mình dùng CCS.
TheHouse vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-12-2010, 02:25 PM   #2
TheHouse
Đệ tử 1 túi
 
Tham gia ngày: Feb 2010
Bài gửi: 13
:
Độan code này mình viết y chang trong ebook, nhưng ngõ ra CCP1 không có tín hiệu.

Code:
#include <16f877a.h>
#use delay(clock=20000000)
#fuses HS, NOWDT


int duty_cycle, control_bits, hold_value;

void main()
{
   port_b_pullups(TRUE);
   setup_timer_2(T2_DIV_BY_1, 99, 1);
   setup_ccp1(CCP_PWM);
   
   while(true)
   {
   hold_value = (~(input_b()) & 0x7);
   while ((control_bits = (~(input_b()) & 0x7)) == hold_value);
   
      switch (control_bits)
      {
         case 0x1: duty_cycle = 35;
               break;
         case 0x2: duty_cycle = 59;
               break;
         case 0x4: duty_cycle = 94;
               break;
         default: duty_cycle = 0;
         
         
      }
   }

}
TheHouse vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-12-2010, 09:36 AM   #3
trungduc
Đệ tử 2 túi
 
Tham gia ngày: Oct 2008
Bài gửi: 44
:
Mình có viết 1 chương trình con về pwm 8 bit nếu coi dùng được không!


PWM_SUBROUTINE

MOVWF CCPR1L
MOVWF CCPR2L

BANKSEL TRISC
MOVLW D'0' ;set PORTC as all outputs
MOVWF TRISC
BANKSEL PORTC
MOVLW 0x0C
MOVWF CCP1CON
MOVLW 0x0C
MOVWF CCP2CON

MOVLW D'63' ;set highest PWM value
BANKSEL PR2 ;over this (63) is permanently on
MOVWF PR2
BANKSEL TMR2

MOVLW 0x00
MOVWF T2CON

BSF T2CON, TMR2ON ;and start the timer running

RETURN
trungduc vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


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


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam