51 microcomputadora de un solo chip reloj simple alarma simulación de pantalla de tubo digital de ocho dígitos (simulación de proteus + programa + diagrama esquemático + informe + video explicativo)

51 microcomputadora de un solo chip reloj simple alarma simulación de pantalla de tubo digital de ocho dígitos (simulación de proteus + programa + diagrama esquemático + informe + video explicativo)


51 microcomputadora de un solo chip reloj simple alarma simulación de pantalla de tubo digital de ocho dígitos (simulación de proteus + programa + diagrama esquemático + informe + video explicativo)

Diagrama de simulación proteus7.8 y superior

Compilador de programas: keil 4/keil 5

Lenguaje de programación: lenguaje C

Número de diseño: S0046

1. Funciones principales:

Este diseño tiene como objetivo diseñar un diseño de simulación proteus de reloj despertador digital multifuncional basado en 51 microcontroladores, que puede mostrar horas, minutos y segundos, y puede configurar la hora y el despertador.

1. Utilice el temporizador interno del microcontrolador para realizar la sincronización;

2. Utilice un tubo digital de ocho dígitos para mostrar horas, minutos y segundos;

3. Las horas, minutos y segundos se pueden sumar y restar respectivamente, y el tubo digital correspondiente parpadea durante la configuración;

4. Se puede configurar el despertador y, una vez transcurrido el tiempo, el timbre sonará cada 1 segundo durante 6 segundos;

5. Cuando suene el despertador, puede cancelarlo manualmente.

Cabe señalar que el chip del microcontrolador 51 en la simulación es universal, AT89C51 y AT89C52 son modelos específicos del microcontrolador 51 y los núcleos son compatibles. Independientemente de stc o at, las funciones del pin son las mismas y el programa es el mismo. El chip se puede reemplazar con 51 chips de microcontrolador como STC89C52/STC89C51/AT89C52/AT89C51.

El siguiente es un diagrama de visualización de esta información de diseño:

2. Simulación

Iniciar simulación

Abra el proyecto de simulación, haga doble clic en el microcontrolador en proteus, seleccione la ruta del archivo hexadecimal y luego inicie la simulación. Después de iniciar la simulación, el tubo digital muestra la hora 00:00:00. El tiempo aumenta en segundos.

imagen

Cuando se muestra la hora, presione el botón de configuración para ingresar al modo de configuración. El reloj parpadea para indicar que el reloj se está configurando actualmente. Presione el botón de configuración nuevamente para ingresar al modo de configuración de minutos, y los minutos parpadean. Presione el botón de configuración nuevamente para ingresar al modo de configuración de segundos y los segundos parpadearán. Después de configurar los segundos, presione Set nuevamente para salir del modo de configuración y el tubo digital se mostrará normalmente.

Presione el botón de cambio de función para mostrar la hora de la alarma. Cuando se muestra la hora de la alarma, presione el botón de configuración para ingresar al modo de configuración de la alarma. El reloj parpadea para indicar que la alarma se está configurando actualmente. Presione el botón de configuración nuevamente para ingresar al modo de configuración de los minutos de la alarma. Los minutos de la alarma parpadean. Presione el botón de configuración nuevamente para ingresar al modo de configuración de segundos de alarma. El despertador Los segundos parpadean. Después de configurar los segundos, presione Set nuevamente para salir del modo de configuración y el tubo digital mostrará la hora de la alarma normalmente.

Cuando se acabe el tiempo de la alarma, sonará el timbre. El timbre sonará cada 1 segundo durante 6 segundos. La alarma se puede apagar presionando el botón.

imagen

3. Código de programa

Utilice keil4 o keil5 para compilar, el código tiene comentarios y puede comprender el significado del código junto con el informe.

imagen

/*******************************************************************************
* 函 数 名       : main
* 函数功能		 : 主函数
* 输    入       : 无
* 输    出    	 : 无
*******************************************************************************/
void main()
{
    
    	
	Timer0Init();  //定时器0初始化
		xian1[0]=shi/10;//计算到显存   时钟的十位
		xian1[1]=shi%10;// 时钟的个位
		xian1[3]=fen/10;// 分钟的十位
		xian1[4]=fen%10;// 分钟的个位
		xian1[6]=miao/10;  // 秒钟的十位
		xian1[7]=miao%10;  // 秒钟的个位
		xian2[0]=shi0/10;
		xian2[1]=shi0%10;
		xian2[3]=fen0/10;
		xian2[4]=fen0%10;
		xian2[6]=miao0/10;
		xian2[7]=miao0%10;
	while(1)
	{
    
    
	  if(mode)
	  	display2();//显示闹钟
	  else
		display1();//显示时间
	  if(!key1 &&(cixu==0))	//功能切换
	  {
    
    
	  	mode=!mode;
		while(!key1);
	  }
	  if(!key2)//选择
	  {
    
    
	  	if(cixu<3)
			cixu++;
		else
			cixu=0;
	  	while(!key2);
	  }
	  if(!key3)		//加
	  {
    
    
	  	if(mode==0)
		{
    
    
		  switch(cixu)
		  {
    
    
		  case 1:
		  	if(shi<23)
				shi++; //时钟+
				break;
		  case 2:
		  	if(fen<59)
				fen++;  //分钟+
				break;
		  case 3:
		  	if(miao<59)
				miao++;	    //秒钟+
		  }
		}
		else
		{
    
    
		  switch(cixu)
		  {
    
    
		  case 1:
		  	if(shi0<23)
				shi0++;	   //闹钟时钟+
				break;
		  case 2:
		  	if(fen<59)
				fen0++;		//闹钟分钟+
				break;
		  case 3:
		  	if(miao0<59)
				miao0++;	  //秒钟分钟+
		  }
		}
		xian1[0]=shi/10;//计算到显存
		xian1[1]=shi%10;
		xian1[3]=fen/10;
		xian1[4]=fen%10;
		xian1[6]=miao/10;
		xian1[7]=miao%10;
		xian2[0]=shi0/10;
		xian2[1]=shi0%10;
		xian2[3]=fen0/10;
		xian2[4]=fen0%10;
		xian2[6]=miao0/10;
		xian2[7]=miao0%10;
	  	while(!key3);
	  }
	  if(!key4)		//减
	  {
    
    
	  	if(mode==0)
		{
    
    
		  switch(cixu)
		  {
    
    
		  case 1:
		  	if(shi>0)
				shi--;
				break;
		  case 2:
		  	if(fen>0)
				fen--;
				break;
		  case 3:
		  	if(miao>0)
				miao--;
		  }
		}
		else
		{
    
    
		  switch(cixu)
		  {
    
    
		  case 1:
		  	if(shi0>0)
				shi0--;
				break;
		  case 2:
		  	if(fen0>0)
				fen0--;
				break;
		  case 3:
		  	if(miao0>0)
				miao0--;
		  }
		}
		xian1[0]=shi/10;//计算到显存
		xian1[1]=shi%10;
		xian1[3]=fen/10;
		xian1[4]=fen%10;
		xian1[6]=miao/10;
		xian1[7]=miao%10;
		xian2[0]=shi0/10;
		xian2[1]=shi0%10;
		xian2[3]=fen0/10;
		xian2[4]=fen0%10;
		xian2[6]=miao0/10;
		xian2[7]=miao0%10;
	  	while(!key4);
	  }
	  if(!key5)	//停止响铃
	   {
    
    
		beep_flag=0;
		beep=1;
	   while(!key5);
	   }

	  if((shi==shi0)&&(fen==fen0)&&(miao==miao0))//判断响铃
	  {
    
    
	  	 beep_flag=1;
		 beep=0;
	  }
	}		
}

4. Diagrama esquemático

El diagrama esquemático está dibujado con AD, que puede usarse como referencia para lo real. La simulación es diferente de lo real. Si no tiene experiencia, no se lo ponga fácil.

imagen

La diferencia entre la simulación Proteus y los trabajos físicos:

1. Entorno de ejecución: la simulación de Proteus se ejecuta en la computadora, mientras que la simulación real se ejecuta en la placa de circuito del hardware.

2. Método de depuración: en la simulación de Proteus, puede realizar fácilmente una depuración en un solo paso y observar cambios en los valores de las variables, mientras que en objetos reales, debe depurar a través de un depurador o una salida de puerto serie.

Método de conexión del circuito: en la simulación de Proteus, la conexión del circuito se puede modificar mediante la configuración del software, pero en la realidad, debe modificarse a través de la placa de circuito del hardware y los cables de conexión.

3. Velocidad de ejecución: la simulación de Proteus generalmente se ejecuta más rápido que la real, porque la simulación se basa en la operación de la computadora, mientras que la real debe considerar factores como las limitaciones físicas de la placa de circuito y el tiempo de respuesta del dispositivo.

4. Realización de funciones: en la simulación de Proteus, se pueden realizar diferentes funciones a través de la configuración del software, pero en objetos reales, deben realizarse de acuerdo con el diseño del circuito y el rendimiento del dispositivo.

Lista de partes

Número de modelos de componentes Microcontrolador
AT89C51 1
condensador 10uf 1
condensador 30pf 2
oscilador de cristal 12MHZ 1
resistencia 10k 1
botón 6
tubo digital cátodo común de 8 bits 1
resistencia 1k 1
transistor PNP 1
zumbador activo 1
resistencia 10k 1

Pieza de fuente de alimentación
Conector de pines 2P 1
Condensador 0,1 uf 2
Condensador 100 uf 2
Regulador de voltaje 7805 1

5. Informe de diseño

Informe de diseño de más de 6600 palabras, que incluye diagrama de bloques de diseño, introducción, introducción al diseño de hardware, introducción al diseño de software, depuración de simulación, resumen y referencias.

imagen

6. Lista de contenido de información de diseño y enlace de descarga

Los materiales de diseño de materiales incluyen simulación, código de programa, videos explicativos, requisitos funcionales, informes de diseño, diagramas de bloques de diseño de software y hardware, etc.

0. Problemas de uso comunes y soluciones: ¡una lectura obligada! ! ! !

1. Diagrama de simulación

2. Código fuente del programa

3. Informe de propuesta

4. Diagrama esquemático

5. Requisitos funcionales

6. Lista de componentes

7. Informe de diseño

8. Diagrama de flujo de software y hardware

9. Vídeo explicativo

Información del software de diseño Altium

Información del software KEIL

Información del software Proteo

Materiales de aprendizaje sobre microcontroladores.

Habilidades de defensa

Descripciones comunes para informes de diseño

Haga doble clic con el mouse para abrir y encontrar más Proyecto de graduación del curso de microcontrolador 51 STM32.url

imagen

Enlace de descarga de datos (en el que se puede hacer clic):

Supongo que te gusta

Origin blog.csdn.net/weixin_52733843/article/details/132699492
Recomendado
Clasificación