¡Urgente! ! ! ! ! Quiero implementar una salida de onda cuadrada con frecuencia y ciclo de trabajo ajustables usando el microcontrolador C51. Necesito un diagrama de circuito y un código fuente para la simulación. I
/?P2^0 y P2^1; conecta 2 botones,
//P2^0 controla la frecuencia de 10 HZ a 50 HZ, ?presiona para cambiar
/P2^1 controla el ciclo de trabajo de 10% a 90%, presione para cambiar
/Supongamos que el oscilador de cristal es de 12MHz.
#include
#define?uint?unsigned?int
#define?uchar?unsigned?char
uint?t=0,f=100,w=50;
sbit?P10=P1^0;?//?Salida
sbit?KF=P2^0; ?//?Botón cambiar frecuencia
sbit?KW=P2^1 ?//?Botón cambiar ciclo de trabajo
void?init()
{ TMOD=0x21; TH0=(65536-1000)/256; TL0=(65536-1000)%256; ET0=1; EA=1;
}
tiempo nulo? ()?interrumpir?
{
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
p>t++;//t es 1ms
if(t> ;=f)?t=0;
}
void?main ( )
{ init(); while(1) { if(KF==0)?//Cambiar frecuencia {f=f-10; if(f<=10)?f=100; while (KF==0);
w=f/10;
} if(KW==0)?//Cambiar el ciclo de trabajo {w=w+f/ 10 ; si(w>=f)?w=f/10; mientras(KW==0); } si(t Si no puede ver la imagen claramente, primero "Ver más grande", luego guárdela en su computadora y luego vea la imagen más grande. ****************************** Después de agregar: Según tu "pregunta Agregue ", debe agregar un convertidor AD, puerto paralelo comúnmente utilizado ADC0809, puerto serie ADC0834. El microcontrolador escanea la salida del convertidor AD y envía los datos a la frecuencia f y la frecuencia g. El microcontrolador escanea los datos de salida del convertidor AD y envía los datos a las dos variables frecuencia f y ciclo de trabajo w mencionadas anteriormente. Puede cambiar. El cambio de amplitud es muy simple, simplemente use un divisor de potenciómetro para emitir directamente. Para escribirlo por completo, se necesita una cierta cantidad de espacio. Lo anterior le proporciona ideas. Espero que pueda operar más la computadora y obtener resultados satisfactorios.