Red de conocimiento informático - Espacio del host - Dvc de programación en lenguaje c versión móvil

Dvc de programación en lenguaje c versión móvil

6.? ¿Generador de alarma?

1.? ¿Tarea experimental?

Utilice P1.0 para emitir señales de audio de 1 KHz y 500 Hz para activar el altavoz como señal de alarma. Se requiere que la señal de 1 KHz responda durante 100 ms y la señal de 500 Hz responda alternativamente durante 200 ms. P1.7 está controlado por un interruptor. La señal de alarma sonará cuando el interruptor esté cerrado y se detendrá cuando el interruptor esté abierto. ?

2.? ¿Esquema del circuito?

Figura 4.6.1?

3.? ¿Enrutamiento de hardware en la placa del sistema?

(1. Conecte el puerto P1.0 en el área "Sistema MCU" al SPK en el área "Módulo de amplificación de audio" con cables en el puerto de entrada;?

( 2. Conecte un altavoz de 8 ohmios o 16 ohmios al SPK en el área del módulo de amplificación de audio al puerto de salida

(3. Utilice un cable para conectar P1.7/ El puerto RD está conectado al; Puerto K1 en el área del "interruptor de palanca de cuatro vías";

4. ¿Contenido de programación?

(1. ¿Cómo generar la señal?

El El período de señal de 500 Hz es de 2 ms, el nivel de señal se invierte una vez cada 1 ms, el período de señal de 1 KHz es de 1 ms y el nivel de señal se invierte una vez cada 500 us;

5. p>

Figura 4.6.2?

6. ¿Bandera? 00H

ORG? p>

Inicio: ¿JB? >

JNB?Próximo

MOV?200º lugar

DV :?CPL?P1.0

LCALL?DELY500

CPL? p>

Siguiente:? MOV? R2, No. 200

DV1.0

R2, DV1

¿Marcar? /p>

DELY500:? R7, #250

no se proporciona de otra manera (para) A menos que se especifique lo contrario

R7, bucle

¿Remojado para suavizarlo?

Fin

7.? Programa fuente

#Contiene? ltAT89X51. H gt

#Contiene?

¿H gt

bits? Bandera;

¿No está firmado? ¿Ciel? Contar;

¿Nulo? 500 retraso(no válido)

{

¿Sin firmar? ¿Ciel? i;

for(I = 250; i gt0; i-)

{

_ nop _();

}

}

¿Anulado? principal(no válido)

{

mientras(1)

{

si(P1_7==0)

{

for(count = 200; count gt0; count-)

{

p 1 _ 0 = ~ p 1 _ 0 p>

retraso 500();

}

for(count = 200; count gt0; count-)

{

p 1 _ 0 = ~ p 1 _ 0;

retraso 500();

retraso 500()

}

}

}

}