Programación pwm del microcontrolador
#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 p>
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);
}