El documento describe dos ejemplos de uso de módulos PWM y de captura de pulsos en un microcontrolador PIC16F873. El primer ejemplo genera una señal cuadrada PWM y mide la duración de pulsos usando el módulo CCP1. El segundo ejemplo cuenta pulsos externos usando el módulo TMR1 y el CCP1, cambiando un estado de salida cada vez que se alcanza el número de pulsos fijado.
Reporte del sensor hcsr 04 implementado con un pic 16f84a y monitoreado con Labview. Lo subi porque este sensor ya es común en MÉXICO y pueden ocupar esta información para proyectos escolares...
Un libro sin recetas, para la maestra y el maestro Fase 3.pdfsandradianelly
Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestra y el maestro Fase 3Un libro sin recetas, para la maestr
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Ejemplos De Ccp
1. ;Ejemplo nro 1 ;Captura: Medida de la duración de un pulso ;PWM: Generar una señal de onda cuadrada por la línea RCx/CCPx cuyo periodo puede ;ser modificado así como la anchura del pulso (Duty Cycle). ;Módulo CCP1 con salida de señal por la línea RC2/CCP1. La señal de ;salida tiene un periodo determinado pora la constante
Periodo
y una anchura
Duty
;Módulo CCP2 trabaja en modo Captura. En la RSI se realiza el cambio de flanco ;ascendente y descendente de manera alternada ListP=16F873 include
P16F873.INC
TONLequ0x22;Parte baja del valor del ancho de pulso TONHequ0x23;Parte alta del valor del ancho de pulso Contadorequ0x27;Variable de contaje Temporalequ0x28;Variable temporal Capturaequ0x29;Nº de capturas CapiniLequ0x2a CapiniHequ0x2b;Variables temporales para las capturas PeriodoequD'100';Periodo de 100 uS DutyequD'60';Anchura 25 uS org00H;Vector de Reset gotoInicio org04H gotoInter;Vector de interrupción ;Programa de tratamiento de la interrupción que provoca el módulo CCP1 cada vez que ;se detecta, primero un flanco ascendente y luego un descendente por la línea RC2/CCP1. InterbcfPIR2,CCP2IF;Repone el flag del módulo CCP1 btfscCaptura,0;Es la captura del flanco descendente gotoMedir;Si, medir el tiempo transcurrido entre ambas incfCaptura,F;No, ha sido la captura del flanco ascendente movfCCPR2L,W movwfCapiniL movfCCPR2H,W movwfCapiniH;Salvar, temporalmente, el 1er valor capturado bcfCCP2CON,0;Capturar al flanco descendente retfie MedirmovfCapiniL,W;Es la captura del flanco descendente subwfCCPR2L,W movwfTONL btfssSTATUS,C incfCapiniH,F movfCapiniH,W subwfCCPR2H,W movwfTONH;Restar el tiempo entre la 2ª captura y la 1ª incfCaptura,F;Capturar el 1er. flanco bsfCCP2CON,0;Captura al flanco ascendente retfie ;Programa principal InicioclrfPORTC;Borra salidas bcfSTATUS,RP1 bsfSTATUS,RP0;Selecciona banco 1 movlwb'11111011' movwfTRISC;Puerta C entrada movlwPeriodo-1 movwfPR2;Carga el registro de periodos bsfPIE2,CCP2IE;Habilita interrupción del módulo CCP1 bcfSTATUS,RP0;Selecciona banco 0 movlwDuty movwfCCPR1L;Carga la anchura del pulso ;El TMR1 actúa en el modo temporizador con reloj interno y un preescaler 1:1. ;Según esto, la duración máxima del pulso que se puede medir será en torno a los 65mS. ;La mínima estará en torno a los 20 uS. Para otros rangos se debe seleccionar un ;preescaler diferente. movlwb'00000001' movwfT1CON;TMR1 en On movlwb'11000000' movwfINTCON;Habilita interrupciones ;El módulo CCP2 actúa en modo de captura al flanco ascendente movlwb'00000101' movwfCCP2CON;Módulo CCP2 en On ;El módulo CCP1 actúa en el modo PWM con salida de señal por RC2/CCP1 movlwb'00001100' movwfCCP1CON ;El TMR2 trabaja con un preescaler 1:1 por lo que con una frecuencia de 4MHz se ;incrementa cada uS (4*Tosc) movlwb'00000100' movwfT2CON;T2 en On clrfCaptura;Inicia captura en el 1er. flaco ascendente Loopclrwdt;Refresca el WDT gotoLoop;Bucle infinito end ;Ejemplo nro. 2 ;El TMR1 cuenta tantos pulsos externos como se indique ;Mediante el valor cargado en CCP1CON por la constante Ncompar ;Cada vez que se alcanza el valor fijado, la salida RB0 ;cambia de estado. Listp=16F873 include
P16F873.INC
Ncomparequ0FH;Constante para modificar número de comparaciones bajas org00H;Vector de Reset gotoInicio org04H gotoInter;Vector de interrupción ;Programa de tratamiento de la interrupción que provoca el módulo CCP1 ;cada vez que el TMR1 cuenta tantos pulsos externos como los prefijados ;mediante Ncompar InterbcfT1CON,TMR1ON;TMR1 en Off bcfPIR1,CCP1IF;Repone el flag del módulo CCP1 clrfTMR1L clrfTMR1H;Puesta a 0 del TMR1 movlwb'00000001' xorwfPORTB,F;RB0 cambia de estado bsfT1CON,TMR1ON;TMR1 en On bcfPIR1,CCP1IF retfie ;Programa principal IniciobcfSTATUS,RP0 bcfSTATUS,RP1 bcfT1CON,TMR1ON;Timer1 desconectado clrfPORTB;Desconecta salidas bsfSTATUS,RP0;Selecciona banco 1 clrfTRISB;Puerta B se configura como salida movlwb'11001011' movwfTRISC;RC0 entrada bsfPIE1,CCP1IE;Habilita interrupción del módulo CCP1 bcfSTATUS,RP0;Selecciona banco 0 ;El TMR1 actúa en el modo contador de pulsos externos ;sensible al flanco ascendente y con un preescaler de 1:1. movlwb'00000010' movwfT1CON;TMR1 en Off ;El módulo CCP1 actúa en modo de comparación e interrupción al coincidir movlwb'00001010' movwfCCP1CON;Módulo CCP en modo comparación movlw00h movwfCCPR1H;Puesta a 0 de la parte alta del valor a comparar clrfTMR1L clrfTMR1H;Puesta a 0 del TMR1 movlwNcompar movwfCCPR1L;Ajusta la parte baja del valor a compara movlwb'11000000' movwfINTCON;Habilita interrupciones bsfT1CON,TMR1ON;TMR1 en On, comienza a contar Loopclrwdt;Refresca el WDT gotoLoop;Bucle infinito end