Dvc de programación en lenguaje c versión móvil
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> p>
retraso 500();
}
for(count = 200; count gt0; count-)
{
p 1 _ 0 = ~ p 1 _ 0;
retraso 500();
retraso 500()
}
}
}
}