|
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 |
30-03-2010, 12:58 PM | #1 |
Nhập môn đệ tử
Tham gia ngày: Aug 2007
Bài gửi: 2
: |
nhờ mọi người giúp đỡ chút về thay đổi Duty Cycle trong Proteus
Tôi đã sử dụng chức năng PWM của dsPic làm mạch thực tế và chạy rần rần. Tuy nhiên khi hướng dẫn người khác học Pic, tôi chọn con 16F887 (đọc diễn đàn thấy khuyên vậy nên bắt chước ^_^), và dùng Proteus thì bị tình trạng sau :
_ Khi viết PWM sử dụng xung có DC cố định thì Proteus mô phỏng bình thường. _ Khi thêm phần thay đổi DC để động cơ thay đổi tốc độ quay thì động cơ đứng luôn do bị mất tín hiệu ra ở chân phát xung. Tôi đã mất khá nhiều thời gian để thử nhiều cách mà không được. Tôi đoán có thể là do mô phỏng nhưng lại không có mạch thực tế để kiểm chứng, nên mong bạn nào có mạch thì kiểm tra giùm. Tôi gửi kèm đây 2 file mô phỏng và source code viết bằng MPLAB. Mong được mọi người giúp đỡ. Cảm ơn nhiều. Chưa gửi được file, đưa tạm code #include <p16f887.inc> #define LED PORTD #define LED_TRIS TRISD SPEED EQU 0X23 __CONFIG _CONFIG1,_LVP_OFF&_FCMEN_OFF&_IESO_OFF &_BOR_OFF&_CPD_ON &_WDT_OFF&_XT_OSC org 0x0000 goto main org 0x0004 goto NGAT org 0x0005 main BANKSEL ANSEL CLRF ANSELH BANKSEL LED_TRIS CLRF LED_TRIS ;cai dat int BCF INTCON,INTF BSF INTCON,INTE ;cai dat pwm BANKSEL PR2 MOVLW .20 MOVWF PR2 BANKSEL TMR2 CLRF TMR2 MOVLW .10 MOVWF CCPR1L MOVLW B'00001100' MOVWF CCP1CON BCF PIR1,TMR2IF MOVLW B'00000110'; T2 on, Prescale = 1 MOVWF T2CON BTFSS PIR1,TMR2IF GOTO $-1 ;BAT DAU CHAY BANKSEL TRISC BCF TRISC,2 BSF INTCON,GIE BANKSEL LED LAP ; MOVF SPEED,W ; MOVF CCPR1L,0 ; MOVWF LED GOTO LAP GOTO $ NGAT ; INCF SPEED,F MOVLW .10 ADDWF CCPR1L,F MOVF CCPR1L,W MOVWF LED BCF INTCON,INTF RETFIE END http://www.4shared.com/dir/35251554/1d84837c/pic.html thay đổi nội dung bởi: none, 30-03-2010 lúc 01:05 PM. Lý do: gửi đỡ file bên 4shared do ko biết up trực tiếp |
|
|