Red de conocimientos turísticos - Información de alquiler - Programación pwm del microcontrolador

Programación pwm del microcontrolador

#include "reg51.h" // Rutina del sitio web oficial, puede consultarla.

#Contiene "intrins.h"

#Definir FOSC 11059200L

byte de carácter sin signo typedef

palabra int sin signo typedef;

sfr p 1m 1 = 0x 91;

sfr p 1m 0 = 0x 92;

sfr p3m 1 = 0xb 1;

sfr P3M0 = 0xb2

sfr p5m 1 = 0xc 9;

sfr P5M0 = 0xCA

sfr P _ SW 1 = 0x a2; registro 1

#Definir CCP_S0 0x 10//P_SW 1.4

#Definir CCP_s 1 0x 20//P_SW 1.5

sfr CCON = 0x D8; //registro de control PCA

sbit CCF 0 = ccon^0; //indicador de interrupción del módulo PCA 0

sbit CCF 1 = ccon^ 1; Indicador de interrupción del módulo PCA 1

sbit Cr = ccon^6; //bit de control de operación del temporizador PCA

sbit cf = ccon^7 //indicador de desbordamiento del temporizador PCA

sfr CMOD = 0x d9; //registro del modo PCA

sfr CL = 0xE9 //byte bajo del temporizador PCA

sfr CH = 0xF9 //byte alto del temporizador PCA

sfr CCAPM0 = 0xDA//Registro de modo módulo 0 PCA

sfr CCAP0L = 0xEA//Registro de captura módulo 0 PCA nivel bajo

sfr CCAP0H = 0xFA//PCA módulo 0 registro de captura nivel alto

sfr ccapm 1 = 0x db; //registro de modo módulo PCA 1

sfr ccap 1L = 0x EB //registro de captura módulo PCA 1 nivel bajo;

sfr ccap 1H = 0x FB; //Registro de captura del módulo 1 PCA alto

sfr CCAPM2 = 0xDC//Registro de modo del módulo 2 PCA

sfr CCAP2L = 0xEC//Registro de captura del módulo 2 PCA nivel bajo

sfr CCAP2H = 0xFC//Registro de captura del módulo 2 PCA nivel alto

sfr PCA_PWM0 = 0xf2 //Registro PWM del módulo PCA 0

sfr PCA _ PWM 1 = 0x F3; //registro PWM del módulo PCA 1

sfr PCA _ PWM2 = 0xf4//registro PWM del módulo PCA 2

void main()

{

p 1m 0 = 0x 00;

p 1m 1 = 0x 00;

P3M0 = 0x00

p3m 1 = 0x 00;

P5M0 = 0x00

p5m 1 = 0x 00;

ACC = P _ SW 1;

ACC & amp= ~(CCP _ S0 | CCP _ s 1); //CCP_S0=0 CCP_S1=0

p _ SW 1 = ACC; (P1.2/ECI, P1.1/CCP0, P1.0/CCP1, P3.7/CCP2)

CCON = 0 //Inicializa el registro de control PCA

//Detener el temporizador PCA

//Borrar el indicador CF

//Borrar el indicador de interrupción del módulo

C

L = 0; //Restablecer registro PCA

CH = 0;

CMOD = 0x 02; //Establecer fuente de reloj PCA

//Deshabilitar sincronización PCA Interrupción por desbordamiento del dispositivo

PCA _ PWM0 = 0x00//El módulo PCA 0 funciona en PWM de 8 bits.

CCAP0H = CCAP0L = 0x20//El ciclo de trabajo de PWM0 es 87,5% ((100h-20h)/100h).

CCAPM0 = 0x42//El módulo PCA 0 está en modo PWM de 8 bits.

PCA_PWM 1 = 0x 40; //El módulo PCA 1 funciona en PWM de 7 bits.

ccap 1H = ccap 1L = 0x 20; //El ciclo de trabajo de PWM 1 es 75% ((80H-20H)/80H).

ccapm 1 = 0x 42; //El módulo PCA 1 está en modo PWM de 7 bits.

PCA_PWM2 = 0x80 //El módulo PCA 2 funciona en PWM de 6 bits.

CCAP2H = CCAP2L = 0x20El ciclo de trabajo de PWM 2 es 50% ((40H-20H)/40H).

CCAPM2 = 0x42//El módulo PCA 2 está en modo PWM de 6 bits.

CR = 1; //El temporizador PCA comienza a funcionar.

mientras(1);

}