Red de conocimiento informático - Problemas con los teléfonos móviles - Programación de archivos Vpk

Programación de archivos Vpk

* Con respecto a la determinación de la frecuencia y el ciclo de trabajo, para un oscilador de cristal de 6M, suponga que la frecuencia de salida PWM es de 1 khz, de esta manera, el ciclo de trabajo se puede configurar para que cambie de (1-100), es decir, 0,01 ms; * 100 = 1 ms. Este ciclo es cronometrado por T1 y el nivel alto de salida es cronometrado por T1. *

# incluye ltREGX51.

H gt

#Definir carácter sin firmar uchar

#definir V_TH1 0XFE

#Definir V_TL1 0X0C

#Definir V_TMOD 0X11

void init _ sys(void); /*Función de inicialización del sistema*/

Carbón sin firmar ZH ZL;

Administrador no válido (no válido)

{

init _ sys();

while(1)

{

Temporal int sin signo

int 16 zkb = 50;

temporal=2^16-5*zkb;

ZH = temp/256;

ZL = temp 256 ;

k();

}

}

Void init_sys(void) /*Función de inicialización del sistema*/

{

TMOD = TMOD; /*Inicialización del temporizador*/

TH0 = ZH

TL0 = ZL

th 1; = V_th 1;

TL 1 = V_TL 1;

tr 1 = 1;

et 1 = 1;

ET0 = 1; /*Permitir interrupción T0

EA = 1; /*Interrupción de CPU

}

Nulo k(int16 vk , ik)

{ static int 16 prek;

pk = vk * ik

prek = 0

vk = 0;

if(prvpk==pk)

{

Devolver

}

Otros

{

if(PK gt;preparatorio)

{ prek = pk

if(vk gt;prevk)

{

ZK b;

prevk = vk

prepk = pk

}

Otros

p>

{

ZK B-;

prevk = vk

prepk = pk

}

}

Otros

{

if(vk gt; prevk)

{

ZK b ;

prevk = vk

prepk = pk

}

Otros

{

ZK B-;

prevk = vk

prepk = pk

}

}

}

/*Función de interrupción*/

Temporizador no válido 0 (no válido) interrupción 1

{

P2_2=! P2_2;

TR0 = 0;

}

Temporizador 1 no válido (no válido) interrupción 2

{

th 1 = V _ th 1; /*Restaurar el valor inicial del temporizador T0*/

TL 1 = V _ TL 1;

P2_2=! P2 _ 2;

TH0 = ZH; /*Restaurar el valor inicial del temporizador T0*/

TL0 =

T;

R0 = 1;

}