Buenas tarde amigo logre generar la señasl aqui les paso el codigo gra cias al amigo uZYNQ por el consejo la señal sale bien limpia y estable le puse un pin con que pueden sacactivar la generacion de la señal pienso hacer otras mejoras, pense en otra opcion de usar el modo comparador del CCP1 que es mucho mas flexible, para explorar mas funcionalidades les envio imagen de la simulacion gracias por la ayuda
List p=16F877A ;Tipo de procesador
include "P16F877A.INC" ;Definiciones de registros internos
__config _CP_OFF&_CPD_OFF&_LVP_OFF&_WDT_OFF&_XT_OSC
CBLOCK 0x20
Ciclo,Reg_H,Reg_L
ENDC
Periodo org .65
Tope org .156
org 0x00
goto Inicio
org 0x04
goto Int
Int
movfw Reg_H
movwf CCPR1L
movfw Reg_L
movwf CCP1CON
movlw Tope
xorwf Ciclo,W
btfsc STATUS,Z
clrf Ciclo
MOVLW 0x06 ; Memoria de programa p gina 0 subpagina 6
MOVWF PCLATH ; Carga el PCLATH para el salto en memoria
movfw Ciclo ; Carga el offset en W
call PWM_H ; Busca la correci¢n del ngulo
movwf Reg_H ; µngulo corregido a usar
MOVLW 0x07 ; Memoria de programa p gina 0 subpagina 6
MOVWF PCLATH ; Carga el PCLATH para el salto en memoria
movfw Ciclo ; Carga el offset en W
call PWM_L ; Busca la correci¢n del ngulo
movwf Reg_L
incf Ciclo,F
clrf PCLATH
bcf PIR1,TMR2IF
retfie
Inicio
clrf PORTC ; Borra salidas
bsf STATUS,RP0 ; Selecciona banco 1
movlw b'10000001'
movwf TRISC ; RC2 salida
movlw Periodo
movwf PR2 ; Carga el registro de periodos
movlw b'11000000'
movwf INTCON
movlw b'00000010'
movwf PIE1
bcf STATUS,RP0 ; Selecciona banco 0
movlw b'00111100'
movwf CCP1CON
movlw b'0001101'
movwf T2CON ; T2 en On
movlw .1
movwf CCPR1L ; Carga la anchura del pulso
clrf Ciclo
Loop
nop
btfsc PORTC,7
goto Uno
clrf CCP1CON
goto Loop ; Bucle infinito
Uno
movlw b'00111100'
movwf CCP1CON
goto Loop
ORG 600h ; i nicio de la tabla en 0600h= P gina 0, subpagina 6
PWM_H
addwf PCL,F
DT 0x13,0x14,0x15,0x15,0x16,0x17,0x18,0x18,0x19,0x1a,0x1b,0x1b,0x1c,0x1d,0x1d,0x1e,0x1f,0x1f,0x20,0x20,0x21,0x22,0x22,0x23
DT 0x23,0x23,0x24,0x24,0x25,0x25,0x25,0x25,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x25
DT 0x25,0x25,0x24,0x24,0x24,0x23,0x23,0x22,0x22,0x21,0x21,0x29,0x20,0x1f,0x1e,0x1e,0x1d,0x1c,0x1c,0x1b,0x1a,0x1a,0x19,0x18
DT 0x17,0x17,0x16,0x15,0x14,0x13,0x13,0x12,0x11,0x10,0x0f,0x0f,0x0e,0x0d,0x0c,0x0c,0x0b,0x0a,0x0a,0x09,0x08,0x08,0x07,0x06
DT 0x06,0x05,0x05,0x04,0x04,0x03,0x03,0x02,0x02,0x02,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
DT 0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x02,0x02,0x03,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x07,0x08,0x09,0x09,0x0a
DT 0x0b,0x0b,0x0c,0x0d,0x0e,0x0e,0x0f,0x10,0x11,0x11,0x12,0x13,0x13
ORG 700h ; i nicio de la tabla en 0600h= P gina 0, subpagina 6
PWM_L
addwf PCL,F
DT 0x2c,0x1c,0x0c,0x3c,0x2c,0x1c,0x0c,0x3c,0x2c,0x1c,0x0c,0x3c,0x2c,0x0c,0x3c,0x2c,0x0c,0x3c,0x1c,0x3c,0x2c,0x0c,0x2c,0x0c
DT 0x2c,0x3c,0x1c,0x2c,0x0c,0x1c,0x2c,0x3c,0x0c,0x1c,0x2c,0x2c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x2c,0x2c,0x1c,0x1c,0x0c,0x3c
DT 0x2c,0x0c,0x3c,0x2c,0x0c,0x2c,0x1c,0x3c,0x1c,0x3c,0x1c,0x2c,0x0c,0x2c,0x3c,0x0c,0x2c,0x3c,0x0c,0x1c,0x3c,0c0c,0x1c,0x2c
DT 0x3c,0x0c,0x0c,0x1c,0x2c,0X3c,0X0c,0X1c,0X2c,0X3c,0X3c,0X0c,0X1c,0X2c,0X3c,0X0c,0X2c,0X3c,0X0c,0X1c,0X3c,0X0c,0X1c,0X3c
DT 0X1c,0X2c,0X0c,0X2c,0X0c,0X2c,0X1c,0X3c,0X1c,0X0c,0X3c,0X1c,0X0c,0X3c,0X2c,0X2c,0X1c,0X1c,0X0c,0X0c,0X0c,0X0c,0X0c,0X0c
DT 0X1c,0X1c,0X2c,0X3c,0X0c,0X1c,0X2c,0X3c,0X1c,0X2c,0X0c,0X1c,0X3c,0X1c,0X3c,0X1c,0X0c,0X2c,0X0c,0X3c,0X1c,0X0c,0X3c,0X1c
DT 0X0c,0X3c,0X2c,0X1c,0X0c,0X3c,0X2c,0X1c,0X0c,0X3c,0X2c,0X2c,0x0c
end ; Fin del programa fuente
PWM.jpg(120.15 kB, 640x360 - visto 108 veces)