51 microcomputadora de un solo chip reloj despertador musical cronómetro cuenta regresiva timbre por hora reloj electrónico multifunción calendario perpetuo pantalla de tubo digital (simulación proteus + programa + esquema + informe + video explicativo)
51 microcomputadora de un solo chip reloj despertador musical cronómetro cuenta regresiva timbre por hora reloj electrónico multifunción calendario perpetuo pantalla de tubo digital (simulación proteus + programa + esquema + 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: S0053
Vídeo explicativo
51 microcomputadora de un solo chip reloj despertador musical cronómetro cuenta regresiva timbre por hora reloj electrónico multifunción calendario perpetuo pantalla de tubo digital (simulación proteus + programa + esquema + informe + video explicativo)
1. Funciones principales:
Diseño de simulación de fecha y hora despertador cronómetro cuenta regresiva reloj electrónico multifuncional y calendario perpetuo basado en 51 microcontroladores
1. El tubo digital muestra la fecha y hora actuales, y la fecha y hora se pueden modificar presionando los botones;
2. Configure la hora de la alarma y reproduzca música cuando se acabe el tiempo;
3. Con función de cronómetro;
4. Con función de cuenta regresiva;
5. Tiene función de informe horario cada hora y el timbre sonará tantas veces como sea posible;
6. Tiene la función de evaluación de año bisiesto y sigue las reglas normales de mes y mes al configurar la fecha.
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. En el mismo diagrama esquemático, ya sea 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. Al iniciar la simulación, ingresa al modo de visualización de la hora de forma predeterminada y muestra la hora actual de la computadora.
Cuando se muestre la hora, presione la tecla de configuración para ingresar al modo de configuración y la luz indicadora de hora se iluminará. Habrá un timbre a la hora, que sonará tantas veces como la hora.
Presione el botón de configuración para configurar el reloj, minutos y segundos respectivamente, las variables correspondientes en el modo de configuración parpadearán para facilitar la configuración del usuario. Configure en segundos y presione el botón de configuración para salir del modo de configuración. Utilice los botones más y menos para ajustar las horas, minutos y segundos establecidos.
Cambie al modo de fecha real presionando el botón de fecha, el tubo digital muestra el año, mes y día, y la luz indicadora de fecha se enciende.
Presione el botón de configuración para ingresar al modo de configuración. Configure el año primero. El año parpadeará. Complete la configuración del año presionando los botones más y menos. Después de configurar el año, configure el mes. La operación es la misma que el ajuste del año. Luego presione el botón de configuración para configurar el día. Después de configurar la fecha, presione el botón de configuración para salir de la configuración.
Ingrese al modo de visualización de alarma presionando el botón de alarma y la luz indicadora de alarma se encenderá. Muestra la hora de alarma predeterminada 16.30. Si necesita modificar la hora de la alarma, presione el botón de configuración. La hora parpadea para indicar que está configurando el reloj. Al presionarla nuevamente indica que está configurando los minutos. Después de configurar los minutos, presione el botón de configuración para salir del modo de configuración de la alarma. Cuando llegue la hora de la alarma, el tono de alarma se reproducirá a través del timbre. Si desea detener la alarma durante este período, puede presionar el botón de detener la alarma.
Ingrese al modo de visualización de alarma presionando el botón de alarma y la luz indicadora del cronómetro se enciende. Presione el botón de inicio para iniciar el cronómetro y presione el botón de pausa para pausar el cronómetro actual y mostrar la hora. Presione el botón de reinicio para restablecer el temporizador a 0.
Ingrese al modo de cuenta regresiva presionando el botón de cuenta regresiva y la luz indicadora de cuenta regresiva se encenderá. Presione el botón de inicio para iniciar la cuenta regresiva y presione el botón de pausa para pausar el tiempo de cuenta regresiva actual y mostrarlo en el tubo digital. Presione el botón de reinicio para restablecer el temporizador a 0.
Los resultados de la simulación anteriores están en línea con los requisitos de diseño.
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.
//主函数
void main()
{
uchar i=0;
TMOD=0X11;//定时器0,工作方式1。
TH0=0XFC; //定时1ms
TL0=0X18;
TH1=(65536-10000)/256;
TL1=(65536-10000)%256;
ET1=1;
TR1=1;
ET0=1;//打开定时器0中断允许
EA=1;//打开总中断
// Ds1302Init(); //解注释 显示初始时间 2023年9月3日星期天12点00分00秒 可到ds1302.c修改
while(1)
{
disp();//显示
switch(mode)//LED
{
case 0:led1=0;led2=1;led3=1;led4=1;led5=1;break;
case 1:led1=1;led2=0;led3=1;led4=1;led5=1;break;
case 2:led1=1;led2=1;led3=0;led4=1;led5=1;break;
case 3:led1=1;led2=1;led3=1;led4=0;led5=1;break;
case 4:led1=1;led2=1;led3=1;led4=1;led5=0;
}
i=key_scan();//按键检测
if(i==1)//日期
{
mode=0;flag=0;
}
if(i==2)//时间
{
mode=1;flag=0;
}
if(i==3)//闹钟
{
mode=2;flag=0;
}
if(i==4)//秒表
{
mode=3;flag=0;
}
if(i==5)//倒计时
{
mode=4;flag=0;
}
if(i==9)//停止响铃
{
TR0=0;num=0;
}
if(i==6)//设置
{
if(mode<2)
{
if(flag<3)
flag++;
else
flag=0;
}
if(mode==2)
{
if(flag<2)
flag++;
else
flag=0;
}
if(mode==4)
{
if(flag<3)
flag++;
else
flag=0;
}
}
if(i==7)//加
{
if(mode==0)//日期设置// ds1302_time[7] = {秒, 分, 时, 日, 月, 星期, 年};
{
if(flag==1) //年
{
if(ds1302_time[6]<99)
ds1302_time[6]++;
Ds1302Init();
}
if(flag==2) //月
{
if(ds1302_time[4]<12){
ds1302_time[4]++;
}else{
ds1302_time[4] = 1;
}
Ds1302Init();
}
if(flag==3) //日
{
if(ds1302_time[3]<MonthDays(ds1302_time[6],ds1302_time[4])){
ds1302_time[3]++;//如果日期小于于当前月份最后一天
}else{
ds1302_time[3] = 1;
}
Ds1302Init();
}
}
if(mode==1)//时间设置
{
if(flag==1) //时
{
if(ds1302_time[2]<99)
ds1302_time[2]++;
Ds1302Init();
}
if(flag==2) //分
{
if(ds1302_time[1]<59)
ds1302_time[1]++;
Ds1302Init();
}
if(flag==3) //秒
{
if(ds1302_time[0]<59)
ds1302_time[0]++;
Ds1302Init();
}
}
if(mode==2)//闹钟设置
{
if(flag==1) //时
{
if(shi<23)
shi++;
// At24c02Write(0,shi);
}
if(flag==2) //分
{
if(fen<59)
fen++;
// At24c02Write(1,fen);
}
}
if(mode==4)//倒计时设置
{
if(flag==1) //时
{
if(shi1<23)
shi1++;
}
if(flag==2) //分
{
if(fen1<59)
fen1++;
}
if(flag==3) //秒
{
if(miao1<59)
miao1++;
}
}
}
if(i==8)//减
{
if(mode==0)//日期设置
{
if(flag==1) //年
{
if(ds1302_time[6]>0)
ds1302_time[6]--;
Ds1302Init();
}
if(flag==2) //月
{
if(ds1302_time[4]>1){
ds1302_time[4]--;
}else{
ds1302_time[4] = 12;
}
Ds1302Init();
}
if(flag==3) //日
{
if(ds1302_time[3]>1){
ds1302_time[3]--;
}else{
ds1302_time[3] =MonthDays(ds1302_time[6],ds1302_time[4]);//日期从1变为当前月份最后一天
}
Ds1302Init();
}
}
if(mode==1)//时间设置
{
if(flag==1) //时
{
if(ds1302_time[2]>0)
ds1302_time[2]--;
Ds1302Init();
}
if(flag==2) //分
{
if(ds1302_time[1]>0)
ds1302_time[1]--;
Ds1302Init();
}
if(flag==3) //秒
{
if(ds1302_time[0]>0)
ds1302_time[0]--;
Ds1302Init();
}
}
if(mode==2)//闹钟设置
{
if(flag==1) //时
{
if(shi>0)
shi--;
// At24c02Write(0,shi);
}
if(flag==2) //分
{
if(fen>0)
fen--;
// At24c02Write(1,fen);
}
}
if((mode==4)&&(start==0))//倒计时设置
{
if(flag==1) //时
{
if(shi1>0)
shi1--;
}
if(flag==2) //分
{
if(fen1>0)
fen1--;
}
if(flag==3) //秒
{
if(miao1>0)
miao1--;
}
}
}
//倒计时,秒表控制
if(mode>2)
{
if(i==10)//开始
{
start=1;
flag=0;
}
if(i==11)//暂停
start=!start;
if(i==12)//复位
{
start=0;
fen2=0;miao2=0;haomiao=0;
shi1=0;fen1=0;miao1=0;
}
}
}
}
4. Diagrama esquemático
El diagrama esquemático se dibuja usando AD y puede usarse como referencia física.
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 piezas de referencia
elemento | modelo | cantidad |
---|---|---|
Microcontrolador | AT89C51 | 1 |
capacidad | 10uf | 1 |
capacidad | 30pf | 2 |
Oscilador de cristal | 12MHZ | 1 |
resistencia | 10k | 1 |
botón | 17 | |
descifrador | 74LS138 | 1 |
memoria | 24C02 | 1 |
Reloj en tiempo real | DS1302 | 1 |
CONDUJO | verde | 2 |
CONDUJO | amarillo | 2 |
CONDUJO | rojo | 3 |
resistencia | 100 euros | 5 |
resistencia | 1k | 1 |
triodo | PNP | 1 |
zumbador | Pasivo | 1 |
tubo digital | cátodo común de 8 bits | 1 |
exclusión | 10k | 1 |
Oscilador de cristal | 32,768 kHz | 1 |
5. Informe de diseño
Informe de diseño de 7027 palabras, que incluye introducción, diseño de hardware, diseño de software, diagrama de bloques de software y hardware, depuración, resumen y perspectivas, etc.
6. Lista de contenidos de información de diseño.
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
3. 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
nombre de archivo.bat
Información del software KEIL
Información del software Proteo
Materiales de aprendizaje sobre microcontroladores.
listado de directorio.txt
Habilidades de defensa
Descripciones comunes para informes de diseño
74HC138(información china).pdf
Haga doble clic con el mouse para abrir y encontrar más Proyecto de graduación del curso de microcontrolador 51 STM32.url
Enlace de descarga de datos (en el que se puede hacer clic):
https://docs.qq.com/doc/DS0NsTWlHRFRSWmNM
Para obtener más recursos, haga clic en el siguiente enlace:
https://docs.qq.com/sheet/DS0xIa0llTmtNakRW
Cuenta pública de WeChat: Jiasheng MCU
(se puede hacer clic):
https://docs.qq.com/doc/DS0NsTWlHRFRSWmNM
Para obtener más recursos, haga clic en el siguiente enlace:
https://docs.qq.com/sheet/DS0xIa0llTmtNakRW
Cuenta pública de WeChat: Jiasheng MCU
[Las imágenes del enlace externo se están transfiriendo...(img-KgN9htrx-1695978329675)]