● Adaptado de la rutina oficial del libro azul de la Copa National Nobunaga Sky Blue Bridge Cup, complementado y modificado según mis propios hábitos.
La 7a Competencia Provincial de Lanqiao Cup Sistema de control de ventilador analógico por microordenador de un solo chip
-
- Notes1: Dar un cierto tiempo de búfer en algunos casos después de presionar el botón
- Notes2: Utilice el temporizador para simular la onda PWM de onda rectangular de salida en el puerto IO
- Notes3: Procesamiento de partes decimales DS18B20
- Notas 4: Procesamiento de conflictos de interrupción de temporizador y temporización estricta de un solo cable DS18B20 de bus único
- Notes5: Función de salida del temporizador 1 del pin P34
2021.3.16
La rutina de la séptima competencia provincial también está disponible en el libro azul oficial Dado que la plantilla es oficial, no es necesario pegar un gran fragmento de código. Solo registre los sentimientos en el proceso de cepillar las preguntas y compare la insuficiencia del código escrito por usted mismo después del séptimo código dado por el funcionario.
Notes1: Dar un cierto tiempo de búfer en algunos casos después de presionar el botón
En la séptima sesión, hay una solicitud para cambiar el valor que está disminuyendo en segundos después de presionar S5. En este momento, si presiona para modificar directamente el valor de la variable relevante, el valor de esta variable disminuirá inmediatamente, por lo que el fenómeno que verá es: asumiendo que está configurado en 60, el tubo digital cambia inmediatamente a 60, y luego es un decremento muy rápido, y el tubo digital muestra 59 El tiempo es menos de 1s, lo que afecta la experiencia. Además, presionar S5 cambia el tiempo de cuenta regresiva a 60, y presionarlo nuevamente cambia a 120, por lo que el tiempo de búfer es necesario.
El método utilizado en la rutina es establecer una variable de búfer de retardo ui_S5_Dly
, luego de presionar S5, luego de procesar la tarea correspondiente, asignar la variable ui_S5_Dly
a 2. Disminuya primero cuando 60 o 120 comience a disminuir ui_S5_Dly
para obtener un tiempo de retardo de 2 s.
case 5: //按键5
{
………………
………………
ui_S5_Dly = 2;
}break;
if(ui_S5_Dly) ui_S5_Dly--;
else if(uc_Work_Mode_1_Less_time) uc_Work_Mode_1_Less_time--;
Notes2: Utilice el temporizador para simular la onda PWM de onda rectangular de salida en el puerto IO
Notes3: Procesamiento de partes decimales DS18B20
En la séptima rutina, se desplaza directamente cuatro lugares hacia la derecha y se ignora la parte decimal.
O puede usar el control de formato sprintf para controlar el número de lugares decimales %02.0f
.
onewire