|
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 |
19-03-2010, 10:35 AM | #1 |
Nhập môn đệ tử
Tham gia ngày: Jul 2009
Bài gửi: 8
: |
pwm asm pic6f877a
các anh em ơi, mình đang có vấn đề với pwm pic6f877a mong anh em giup đỡ chỉ bảo.
Ý tưởng của mình chỉ đơn giản là tạo xung pwm với duty có thể thay đổi được. Nhưng khi thực hiện với duty không đổi dã gặp rắc rối rồi. Mình đưa code viết bằng ccs và mplap anh em xem giúp mình nha ccs //chuong trinh test pwm //mcu pic 16f877a //thuc hien : Vu Xuan Sy #include<16f877a.h> #include<def_16f877a.h> #device *=16,adc=8 #fuses nowdt,noprotect,nolvp,hs,nodebug #use delay(clock=20000000) void main() { set_tris_c(0x00); setup_ccp1(CCP_PWM); // Configure CCP1 as a PWM setup_timer_2(T2_DIV_BY_16, 123, 1); set_pwm1_duty(62); } và bằng mplab TITLE "CHUONG TRINH SU DUNG MODUN PWM" PROCESSOR 16F877A #INCLUDE <P16F877A.INC> __CONFIG _CP_OFF & _WDT_OFF & _HS_OSC ORG 0X000 GOTO START START BCF STATUS,RP1 ;CHON BANK 1 BSF STATUS,RP0 MOVLW 0X00 ;CAU HINH PORTC LA PORT RA MOVWF TRISC MOVLW D'124' ;NAP GIA TRI 124 CHO PR2 QUYET DINH PERIOD MOVWF PR2 BCF STATUS,RP0 ;CHON BANK O MOVLW 0X00 ;PORTC=0 MOVWF PORTC MOVLW D'62' ;THIET LAP DO RONG XUNG MOVWF CCPR1L BCF CCP1CON,4 BCF CCP1CON,5 MOVLW B'00000111' MOVWF T2CON BSF CCP1CON,2 BSF CCP1CON,3 LOOP GOTO LOOP END với period =10 khz duty =0.5 mình dùng proteus để mô phỏng dạng xung pwm |
|
|