电子万年历实验报告

合集下载

数字万年历实训报告电气

数字万年历实训报告电气

一、实训目的随着科技的不断发展,电子产品的应用越来越广泛。

数字万年历作为一种常见的电子设备,具有显示日期、星期、农历、节假日等多种功能,给人们的生活带来了极大的便利。

为了更好地掌握电子产品的设计原理和制作方法,提高自身的实践能力,本次实训旨在通过设计和制作数字万年历,使学生对电子技术、电路设计、编程等方面有一个全面的认识和掌握。

二、实训内容1. 数字万年历的设计(1)功能需求分析根据用户需求,数字万年历应具备以下功能:1)显示日期、星期、农历、节假日等信息;2)具有闹钟功能,可设定闹钟时间、闹钟音量等;3)具有定时关机功能,可根据用户需求设定关机时间;4)具备背光功能,便于夜间使用;5)具有定时更新功能,可自动更新农历、节假日等信息。

(2)硬件设计1)主控芯片:选用STM32F103系列单片机,具有丰富的片上资源,易于编程和控制。

2)显示模块:采用TFT LCD显示屏,显示效果清晰,支持触摸操作。

3)按键模块:采用独立按键,实现功能选择、闹钟设置、关机等操作。

4)时钟模块:采用DS3231实时时钟模块,提供高精度的时间测量和闹钟功能。

5)背光模块:采用LED背光,可调节亮度,满足不同环境需求。

6)电源模块:采用DC-DC转换器,将5V输入电压转换为3.3V输出电压,为电路提供稳定电源。

(3)软件设计1)系统初始化:初始化各个模块,包括显示模块、按键模块、时钟模块等。

2)主循环:根据用户操作,实现功能切换、闹钟设置、关机等功能。

3)闹钟功能:实现闹钟时间设置、闹钟音量调节、闹钟提醒等功能。

4)定时关机功能:根据用户设置,实现定时关机功能。

5)背光功能:实现背光亮度调节,满足不同环境需求。

6)定时更新功能:自动更新农历、节假日等信息。

2. 数字万年历的制作(1)焊接电路板:按照电路图,焊接各个模块,确保电路连接正确。

(2)编程:使用Keil uVision5开发环境,编写STM32F103单片机程序,实现数字万年历的功能。

多功能电子万年历实训报告

多功能电子万年历实训报告

一、引言随着科技的发展,电子产品在我们的日常生活中扮演着越来越重要的角色。

作为电子信息专业的一名学生,我深知理论与实践相结合的重要性。

为了提高自己的动手能力和解决实际问题的能力,我参加了本次多功能电子万年历的实训项目。

通过本次实训,我不仅掌握了单片机的基本原理和编程方法,还学会了如何将理论知识应用于实际项目中。

二、实训目的1. 熟悉单片机的硬件结构和编程方法。

2. 掌握电子万年历的设计原理和实现方法。

3. 提高动手能力和解决实际问题的能力。

4. 培养团队协作和沟通能力。

三、实训内容本次实训主要围绕多功能电子万年历的设计与实现展开,主要包括以下几个方面:1. 硬件设计:选择合适的单片机作为核心控制单元,设计电路图,并焊接电路板。

2. 软件设计:编写程序,实现万年历的基本功能,如显示日期、时间、星期、闰年判断、闹钟等。

3. 温度采集:使用DS18B20温度传感器采集环境温度,并在LCD1602显示屏上显示。

4. 按键控制:设计按键电路,实现时间校准、闹钟设置、温度显示等功能。

四、实训过程1. 硬件设计:- 选择AT89C52单片机作为核心控制单元,因为它具有低功耗、高性能的特点。

- 设计电路图,包括晶振电路、复位电路、时钟电路、按键电路、LCD1602显示电路、温度传感器电路等。

- 焊接电路板,确保电路连接正确。

2. 软件设计:- 使用Keil软件编写程序,实现万年历的基本功能。

- 编写时间显示、闹钟、温度显示等模块的程序。

- 编写按键扫描程序,实现时间校准、闹钟设置、温度显示等功能。

3. 温度采集:- 使用DS18B20温度传感器采集环境温度。

- 将温度数据转换为数字信号,并在LCD1602显示屏上显示。

4. 按键控制:- 设计按键电路,实现时间校准、闹钟设置、温度显示等功能。

- 编写按键扫描程序,检测按键状态,并执行相应的操作。

五、实训结果经过努力,我成功完成了多功能电子万年历的设计与实现。

该万年历具有以下功能:1. 显示年、月、日、星期、时、分、秒。

电子万年历组装实训报告

电子万年历组装实训报告

一、实训目的本次实训旨在通过实际操作,让学生掌握电子万年历的组装流程,熟悉电子元器件的识别与使用,了解电路原理图的阅读与理解,以及电子产品的调试与故障排除。

通过本次实训,提高学生的动手能力、实践能力和团队协作精神,为后续相关课程的学习打下坚实基础。

二、实训内容1. 实训时间:2023年X月X日至2023年X月X日2. 实训地点:XX职业学院电子实验室3. 指导老师:XXX老师4. 实训目的:(1)掌握电子万年历的组装流程。

(2)熟悉电子元器件的识别与使用。

(3)了解电路原理图的阅读与理解。

(4)学会电子产品的调试与故障排除。

(5)培养团队协作精神。

5. 实训内容:(1)电子万年历的组装1)准备所需材料:STC89C52RC单片机、DS1302时钟芯片、LCD1602液晶显示屏、电阻、电容、晶体振荡器、按键、电源模块等。

2)根据电路原理图,连接各个电子元器件,确保连接正确。

3)调试电路,检查电路是否正常工作。

(2)电子万年历的程序编写1)了解STC89C52RC单片机的编程环境,如Keil uVision。

2)学习C语言编程,编写电子万年历的程序。

3)将程序烧录到单片机中,调试程序,确保程序正常运行。

(3)电子万年历的调试与故障排除1)观察电子万年历的显示效果,确保显示日期、星期、时间等无误。

2)检查电路连接是否牢固,排除虚焊、短路等故障。

3)优化程序,提高电子万年历的稳定性和可靠性。

三、实训过程1. 组装电子万年历(1)按照电路原理图,将各个电子元器件连接到单片机上。

(2)检查电路连接是否正确,确保没有短路、虚焊等故障。

(3)通电测试电路,确认电路正常工作。

2. 编写程序(1)学习C语言编程,了解电子万年历的程序结构。

(2)编写程序,实现日期、星期、时间的显示。

(3)调试程序,确保程序正常运行。

3. 调试与故障排除(1)观察电子万年历的显示效果,确保显示日期、星期、时间等无误。

(2)检查电路连接是否牢固,排除虚焊、短路等故障。

数字万年历实习报告

数字万年历实习报告

实习报告一、实习背景及目的随着科技的不断发展,数字电子技术在人们的生活中扮演着越来越重要的角色。

数字万年历作为一种实用性强的电子产品,不仅能够提供准确的日期信息,还能具备一些扩展功能,如节日提醒、闹钟等。

为了提高自己的实践能力和对数字万年历的了解,我选择了数字万年历设计制作作为实习项目。

本次实习的主要目的是通过实际操作,掌握数字万年历的设计原理和制作过程,提高自己的电子技术应用能力。

二、实习内容1. 数字万年历的设计在实习过程中,我首先学习了数字万年历的设计原理,了解了其核心组成部分,包括微控制器、显示模块、按键输入模块等。

在此基础上,我根据实习指导书提供的电路图和程序代码,设计了数字万年历的硬件电路和软件程序。

2. 数字万年历的组装在设计完成后,我开始进行数字万年历的组装工作。

首先将微控制器、显示模块、按键输入模块等元器件焊接在电路板上,然后连接电源模块和时钟模块。

在组装过程中,我学习了如何使用电烙铁、焊锡等工具,提高了自己的动手能力。

3. 数字万年历的调试与优化完成组装后,我开始对数字万年历进行调试。

通过反复测试,发现并解决了一些问题,如显示模块显示异常、按键响应不良等。

在解决问题过程中,我深入分析了电路原理和程序代码,掌握了数字万年历的运行机制。

最后,我对程序代码进行了优化,提高了数字万年历的运行效率。

三、实习收获1. 提高了自己的电子技术应用能力。

通过本次实习,我掌握了数字万年历的设计原理、组装方法和调试技巧,提高了自己在电子技术方面的实际操作能力。

2. 培养了动手能力和团队协作精神。

在实习过程中,我学会了如何使用各种电子工具,培养了动手能力。

同时,与同学们一起讨论问题、分享经验,提高了团队协作精神。

3. 增强了自己的问题解决能力。

在数字万年历的调试过程中,我遇到了各种问题,通过查阅资料、请教同学和老师,逐步解决问题,增强了自己的问题解决能力。

4. 加深了对数字电子技术的理解。

通过实习,我对数字电子技术的基本原理和应用有了更深入的了解,为今后学习相关课程和从事相关工作奠定了基础。

数字万年历组装实训报告

数字万年历组装实训报告

一、实训背景随着科技的发展,电子产品在我们的日常生活中扮演着越来越重要的角色。

为了提高学生的动手能力和实际操作技能,同时也为了加深对数字电路知识的理解,我们选择了数字万年历的组装作为实训项目。

数字万年历是一种具有日历、星期、日期、农历、节假日等多种功能的电子设备,它集成了数字电路、微控制器、液晶显示屏等元件,能够直观地显示日期和时间信息。

二、实训目的1. 通过组装数字万年历,使学生掌握数字电路的基本原理和实际应用。

2. 培养学生的动手能力、团队协作能力和创新意识。

3. 加深对微控制器、液晶显示屏等电子元件的理解和认识。

4. 学会使用电子工具和仪器,提高实际操作技能。

三、实训内容1. 硬件准备:数字万年历的硬件主要包括微控制器、液晶显示屏、时钟模块、按键、电源模块等。

2. 元件识别:学习各种电子元件的外观、符号、规格等,了解它们在电路中的作用。

3. 电路设计:根据数字万年历的功能要求,设计电路图,包括电路元件的连接方式和电路参数。

4. 电路焊接:按照电路图,将各个电子元件焊接在一起,确保电路的连通性。

5. 软件编程:编写微控制器的程序,实现万年历的各项功能,如时间显示、日期设置、农历查询等。

6. 系统调试:检查万年历的各项功能是否正常,对出现的问题进行调试和修复。

四、实训过程1. 硬件准备:首先,我们准备了一套数字万年历的组装套件,包括微控制器、液晶显示屏、时钟模块、按键、电源模块等。

2. 元件识别:在指导老师的讲解下,我们学习了各种电子元件的外观、符号、规格等,了解了它们在电路中的作用。

3. 电路设计:根据数字万年历的功能要求,我们设计了电路图,包括电路元件的连接方式和电路参数。

电路图设计完成后,我们将其打印出来,作为焊接的依据。

4. 电路焊接:按照电路图,我们将各个电子元件焊接在一起。

在焊接过程中,我们注意以下几点:a. 焊接前,检查元件的规格和引脚是否正确;b. 焊接时,控制好焊接时间,避免过热损坏元件;c. 焊接完成后,检查焊接点是否牢固,是否有虚焊现象。

万年历实验报告

万年历实验报告

篇一:电子万年历实验报告重庆电力高等专科学校计算机科学系实训报告课程名称实验名称班级信息0911 姓名廖林单片机应用技术电子万年历学号 200903020243 教师任照富日期 2010-12-28 地点一教七机房一、实训任务:1、看实训要求,计划出自己实训所要用元件,在网上查找资料。

2、思考仿真原理图,然后画出来(具体i/o口暂时不确定)。

3、在网上找一些程序,然后自己改一些,进行编译。

4、编译无误之后,跟原理图相联系,完成最终的仿真图。

5、进行最后的改写,把程序和仿真原理图确定下来。

6、根据仿真图形,制作出实物图。

7、在实物制作过程中,进行电路检查和最后的调试。

二、实训要求:要求:能显示阳历的年、月、日、星期、时、分、秒;能显示阴历的年、月、日;能进行日期、时间的调整。

扩展:能显示当前温度;有闹钟功能(至少2个)选择ds1302时钟芯片,温度传感器采用ds18b20数字温度传感器。

三、实训环境(软件、硬件):软件:keil protues7.5硬件:计算机2单片机的应用四、实训意义:在这快速发展的年代,时间对人们来说是越来越宝贵,在快节奏的生活时,人们往往忘记了时间,一旦遇到重要的事情而忘记了时间,这将会带来很大的损失。

因此我们需要一个定时系统来提醒这些忙碌的人,而数字化的钟表给人们带来了极大的方便。

由于单片机具有灵活性强、成本低、功耗低、保密性好等特点,所以电子日历时钟一般都以单片机为核心,外加一些外围设备来实现。

电子万年历作为电子类小设计不仅是市场上的宠儿,也是是单片机实验中一个很常用的题目。

因为它的有很好的开放性和可发挥性,因此对作者的要求比较高,不仅考察了对单片机的掌握能力更加强调了对单片机扩展的应用。

而且在操作的设计上要力求简洁,功能上尽量齐全,显示界面也要出色。

所以,电子万年历无论作为竞赛题目还是毕业设计题目都是很有价值。

对于这个实验项目,我们还要有一些其他的基本知识掌握和意义:(1)在学习了《数字电子技术》和《单片机原理及接口技术》课程后,为了加深对理论知识的理解,学习理论知识在实际中的运用,为了培养动手能力和解决实际问题的经验,了解专用时钟芯片ds1302,并会用ds1302芯片开发时钟模块,应用到其他系统中去。

电子万年历实验报告

电子万年历实验报告

实验报告电子万年历:一、需求分析:电子万年历系统主要实现以下单个查询功能:1、查询某一年的日历。

要求从键盘输入年份,输出该年12个月份的日历2、查询某一天某一个月的日历。

要求从键盘输入年份和月份,输出该月的日历。

3、查询某一天是星期几。

要求从键盘输入年、月、日,输出这一天是星期几。

二、总体设计:1、功能模块图计算模块:用于计算天数,判断闰年输出模块:用于菜单输出和日历输出查询模块:实现查询某一年的日历。

查询某一天某一个月的日历。

查询某一天是星期几。

三、详细设计:1、计算模块:计算模块主要包含3个函数:LeapYear()、CountYearDays()、CountMonthDays函数CountYearDays()功能是计算从公元元年1月1日到某年12月31日一共有多少天。

CountYearDays()功能是几双当年1月1日到输入日期的前一个月的天数2、输出模块包含2个函数:Menu()和ListMonth()函数。

Menu()函数用来输出系统提供的功能选项。

ListMonth()函数用来按规定格式输出一个月的日历。

3、查询模块针对系统要实现三个查询功能定义了3个函数:Search1()、 Search2()和 Search3()函数。

函数Search1()用来显示一年12个月的日历,输入年份后,计算该年1月1日是星期几,然后从1月份开始一次输出每个月的日历,其中调用了函数LeapYear()、CountYearDays()和CountMonthDays()。

函数Search2()用来显示某年某月的日历,输入年份和月份后,计算出该年该月1日是星期几,然后输出这个月的日历,其中调用了函数LeapYear()和CountYearDays()、CountMonthDays()和ListMonth()。

函数Search3()用来显示某天是星期几,通过调用函数LeapYear()、CountYearDays()和CountMonthDays()计算出从公元元年1月1日到这一天总共过去了多少天,用这个总天数除以7得到的余数即为答案。

制作电子万年历实训报告

制作电子万年历实训报告

一、引言随着科技的飞速发展,电子产品的普及和应用越来越广泛。

电子万年历作为一种常见的电子设备,不仅可以显示年、月、日、星期、时、分等信息,还可以实现闹钟、定时显示等功能。

为了提高我们的实践能力和创新能力,本次实训我们选择制作一款基于单片机的电子万年历。

二、实训目的1. 掌握电子万年历的基本原理和设计方法。

2. 熟悉单片机的编程和应用。

3. 培养团队协作能力和动手实践能力。

三、实训内容1. 硬件设计本实训所使用的硬件主要包括以下部分:- 单片机:AT89C52- 时钟模块:DS1302- 显示模块:LCD1602- 遥控模块:1838V- 按键模块:S1(设置键)、S2(上调键)、S3(下调键)、S4(复位键)硬件电路图如下:![电子万年历电路图](https:///5Q6zQ8Q.png)2. 软件设计本实训所使用的软件主要包括以下部分:- 单片机编程:C语言- 显示程序:LCD1602驱动程序- 遥控程序:1838V遥控接收程序软件流程图如下:![电子万年历软件流程图](https:///0Q7y8yJ.png)3. 功能实现本实训所实现的电子万年历具有以下功能:- 显示年、月、日、星期、时、分等信息。

- 遥控操作:设置时间、星期、日期等。

- 定时显示:定时显示当前时间。

- 停电自动计时:采用DS1302时钟模块,停电后可继续计时。

四、实训过程1. 硬件搭建首先,我们根据电路图搭建了电子万年历的硬件电路。

在搭建过程中,我们注意了以下几点:- 确保电路连接正确,避免短路或开路。

- 选择合适的元器件,确保电路性能稳定。

- 对电路进行测试,确保电路正常工作。

2. 软件编程接下来,我们使用C语言对单片机进行编程。

在编程过程中,我们遵循以下步骤:- 分析功能需求,确定程序结构。

- 编写程序代码,实现各项功能。

- 调试程序,确保程序运行正常。

3. 测试与优化在完成软件编程后,我们对电子万年历进行测试。

在测试过程中,我们发现以下问题:- 遥控操作不稳定。

2019-万年历实验报告-范文word版 (10页)

2019-万年历实验报告-范文word版 (10页)

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==万年历实验报告篇一:电子万年历实验报告重庆电力高等专科学校计算机科学系实训报告课程名称实验名称班级信息0911 姓名廖林单片机应用技术电子万年历学号 201X03020243 教师任照富日期 201X-12-28 地点一教七机房一、实训任务:1、看实训要求,计划出自己实训所要用元件,在网上查找资料。

2、思考仿真原理图,然后画出来(具体I/O口暂时不确定)。

3、在网上找一些程序,然后自己改一些,进行编译。

4、编译无误之后,跟原理图相联系,完成最终的仿真图。

5、进行最后的改写,把程序和仿真原理图确定下来。

6、根据仿真图形,制作出实物图。

7、在实物制作过程中,进行电路检查和最后的调试。

二、实训要求:要求:能显示阳历的年、月、日、星期、时、分、秒;能显示阴历的年、月、日;能进行日期、时间的调整。

扩展:能显示当前温度;有闹钟功能(至少2个)选择DS1302时钟芯片,温度传感器采用DS18B20数字温度传感器。

三、实训环境(软件、硬件):软件:keil protues7.5硬件:计算机2单片机的应用四、实训意义:在这快速发展的年代,时间对人们来说是越来越宝贵,在快节奏的生活时,人们往往忘记了时间,一旦遇到重要的事情而忘记了时间,这将会带来很大的损失。

因此我们需要一个定时系统来提醒这些忙碌的人,而数字化的钟表给人们带来了极大的方便。

由于单片机具有灵活性强、成本低、功耗低、保密性好等特点,所以电子日历时钟一般都以单片机为核心,外加一些外围设备来实现。

电子万年历作为电子类小设计不仅是市场上的宠儿,也是是单片机实验中一个很常用的题目。

因为它的有很好的开放性和可发挥性,因此对作者的要求比较高,不仅考察了对单片机的掌握能力更加强调了对单片机扩展的应用。

而且在操作的设计上要力求简洁,功能上尽量齐全,显示界面也要出色。

数字万年历报告单

数字万年历报告单

电工电子实训题目:台式数字万年历制作班级姓名指导教师完成时间目录电工电子技术实训任务书 (2)电路原理简述------------------------------------------------------3 电路总图 (4)调试过程简述 (6)电子器件一览表 (6)参考文献 (7)心得体会------------------------------------------------------------7一、实训目的:巩固电工电子相关知识;培养学生分析电路的能力,能够使用一些常见的电子器件组建简单电路的能力;同时锻炼学生的实际动手操作能力和一定的解决实际问题的能力。

二、实训题目:台式数字万年历焊接与调试三、实训要求:1)通过电路的制作,熟悉各种元器件的结构、特性,掌握电路的原理。

2)学会用万用表对电子元器件及管脚进行测试,对电路参数进行测量。

对收音机进行调整。

3)学会电路板的制作及焊接技巧。

4)时间安排:台式数字万年历原理一、电路的结构电子表内都有一个振荡频率十分稳定的石英振子,由门电路产生一个很稳定的振荡频率,一般是32.768KHz。

再经过电子分频器15次分频后,得到秒脉冲。

秒脉冲送到步进电机,每秒钟推动步进电机动一次显示仪表中。

电路先经过整流二极管整流,在经过滤波电容进行滤波,然后经过稳压器稳压输出。

电源输出给各个元件的正极,使各元件得到稳定的电压。

二、电路原理首先,220V电压通过变压器(220V/9V)降到9V电压,通桥式整流二极管(1N4004)将交流电转变为脉动的直流电,再经过电容进行滤波,使脉动的直流电变得更平缓,更接近直流电,然后通过三端集成稳压器(7805)将输出电压保持在5V电压。

通过线路板将5V电压输送到各个元件的正极,为各元件提供稳定的5V电压。

数码显像管为共阴极,是高电平有效,数码显像管是通过芯片CPU的P9、P10、P11、P12、P16、P17、P18、P19、P20、P22、P23、P24、P25、P26脚去控制数码显像管的,其阴极分别接到了三级管Q1—Q7的集电极上,其中Q1—Q7为8550型号的PNP三极管。

电子万年历实训报告

电子万年历实训报告
本文详细介绍了AT89S52单片机的基本原理,分析了AT89S52各个管脚的功能及它在设计电路中的作用。本文论述了LCD1602液晶屏和时钟芯片DS1302的工作原理及其软件设计过程。
2、引言
单片机,亦称单片微电脑或单片微型计算机。它是把中央处理器(CPU)、随机存取存储器(RAM)部件都集成在一块集成电路芯片上的微型计算机。单片机是把主要计算机功能部件都集成在一块芯片上的微型计算机。它是一种集计数和多中接口于一体的微控制器,被广泛应用在智能产品和工业自动化上,而52单片机是个单片机中最为典型和最有代表性的一种。
·P2口:P2口是一个带有内部上拉电阻的8位双向I/O口,P2的输入缓冲极可以驱动(输入或输出电流)4个TTL逻辑门电路。对端口“1”,通过内部的上拉电阻把端口拉到高电平,此时和作为输出口,作输出口时,因为存在内部上拉电阻,某个引脚被外部信号拉低时会输出一个电流。在访问外部存储器或1位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口线的内容(也既特殊功能寄存器(SFR)区中R2寄存器的内容),在整个访问期间不改变。Flash编程或校验时,P2亦接收高地址和其他控制信号。
3.2硬件的设计总框图
本次设计的基于单片机控制的电子万年历,其具有年、月、日、星期、时、分、秒的显示功能;具体时间与阴、阳历能够自动关联;可以设置闹铃的功能。其具体实现过程就是由主控制发送信息给DS1302时钟芯片再由时钟芯片反馈给LCD显示信息。并且可以在键盘设置模块输入修改时间,设置闹铃等信息,当键盘设置时间、日期时,单片机主控制根据输入信息,通过串口通信此传送给DS1302时钟芯片,DS1302芯片读取当前新信息产生反馈传送给单片机,然后单片机根据控制最后输送显示信息到LCD模块上显示

电子语音万年历实训报告

电子语音万年历实训报告

一、实训背景与目的随着科技的飞速发展,电子产品的应用越来越广泛,智能化、自动化已成为现代生活的趋势。

电子语音万年历作为一种结合了传统日历与现代电子技术的产品,不仅具有信息存储、查询的功能,还能提供语音播报,极大地方便了人们的生活。

本次实训旨在通过实际操作,了解电子语音万年历的设计原理、制作流程,提高学生的动手能力、创新能力和团队协作能力。

二、实训内容与过程1. 硬件选型与搭建(1)选择合适的微控制器作为核心控制单元,如STM32或Arduino等。

(2)设计电路板,包括电源电路、按键电路、显示电路、语音模块电路等。

(3)选择合适的显示屏,如OLED或LCD等,用于显示日期、星期等信息。

(4)选择语音模块,如ESP8266或ESP32等,实现语音播报功能。

2. 软件设计(1)编写程序,实现万年历的基本功能,如日期显示、星期显示、节假日查询等。

(2)设计语音播报功能,实现语音报时、语音查询等功能。

(3)优化程序,提高程序的稳定性和运行效率。

3. 系统调试与测试(1)连接电路板,进行硬件调试,确保各个模块正常工作。

(2)编写测试程序,对万年历的各项功能进行测试,确保功能完善。

(3)对语音模块进行调试,确保语音播报准确无误。

三、实训成果与分析1. 成果展示本次实训成功制作了一款电子语音万年历,具有以下功能:(1)日期显示:实时显示当前日期和星期。

(2)语音播报:可语音报时,语音查询日期、星期、节假日等信息。

(3)节假日查询:自动识别节假日,并提示用户。

2. 成果分析(1)本次实训提高了学生的动手能力,通过实际操作,掌握了电子语音万年历的设计与制作过程。

(2)培养了学生的创新意识,在实训过程中,学生可以根据自己的需求,对万年历的功能进行拓展,如添加天气查询、闹钟等功能。

(3)提高了学生的团队协作能力,在实训过程中,学生需要相互配合,共同完成实训任务。

四、实训心得与体会1. 学会了硬件选型与搭建在实训过程中,我学会了如何选择合适的微控制器、显示屏、语音模块等硬件,并掌握了电路板的设计与制作方法。

万年历实验报告

万年历实验报告

设计题目:电子万年历设计任务与要求:1、显示年月日时分秒及星期信息2、具有可调整日期和时间功能3、增加闰年计算功能方案比较:方案一:系统分为主控制器模块、显示模块、按键开关模块,主控制模块采用AT89C52单片机为控制中心,显示模块采用普通的共阴LED数码管,键输入采用查询法实现功能调整,计时使用AT89C52单片机自带的定时器功能,实现对时间、日期的操作,通过按键盘开关实现对时间、日期的调整。

方案二:系统分为主控模块、时钟电路模块、按键扫描模块,LCD显示模块,电源电路、复位电路、晶振电路等模块。

主控模块采用AT89C52单片机,按键模块用三个按键,用于调整时间,显示模块采用LCD1602,时钟电路模块采用DS1302时钟芯片实现对时间、日期的操作。

两个方案工作原理大致相同,只有显示模块和时钟电路不同。

LED数码管价格适中,对于数字显示效果较好,而且使用单片机的端口也较少; LCD1602液晶显示屏,显示功能强大,可以显示大量文字、图形,显示多样性,清晰可见,价格相对LED数码管来说要昂贵些,但是基于本设计显示的东西较多,若采用LED数码管的话,所需数码管较多,而且不利于控制,因此选择LCD1602作为显示模块。

DS1302是一款高性能的实时时钟芯片,以计时准确、接口简单、使用方便、工作电压范围宽和低功耗等优点,得到广泛的应用,实时时钟有秒、分、时、星期、日、月和年,月小于31天时可以自动调整,并具有闰年补偿功能,而且在掉电时能够在外部纽扣电池的供电下继续工作。

单片机有定时器的功能,但时间误差较大,且需要编写始终程序,因此采用DS1302作为时钟电路。

对比以上方案,结合设计技术指标与要求我们选择了方案二进行设计。

逻辑总框图:该电子万年历的总体设计框图如图(1)所示。

设计所需的元件:元件名称型号数量/个单片机 AT89C52 1时钟芯片 DS1302 1晶振 12MHz 1晶振 32.768kHz 1电容 30pF 2电容 22uF 1按键开关 1复位开关 3电阻 220 2滑动变阻器 10K 1发光二极管红色 1电池 1.5V 4LCD LCD1602 1电源Vcc +5V 1导线若干单元电路设计:1、主控制系统单片机中央处理系统的方案设计,选用AT89C52单片机作为中央处理器,如图(2)所示。

数字万年历制作实习报告

数字万年历制作实习报告

一、实习背景随着科技的发展,电子产品的普及,人们对生活品质的要求也越来越高。

为了培养自己的动手能力,提高综合素质,我在本次实习中选择了数字万年历的制作。

数字万年历是一种结合了电子技术、编程和艺术设计的产品,它能够显示日期、星期、农历等信息,方便人们的生活和工作。

通过本次实习,我对数字万年历的制作过程有了更加深入的了解,也锻炼了自己的实际操作能力。

二、实习目的1. 学习数字万年历的制作原理,掌握电子元器件的选用和焊接技术。

2. 熟悉编程软件的使用,掌握单片机编程的基本方法。

3. 提高自己的动手能力和团队合作精神。

4. 培养自己的创新意识和解决问题的能力。

三、实习内容1. 硬件部分(1)元器件选型:根据数字万年历的功能需求,选择了以下元器件:STC89C52单片机、LCD显示屏、DS1302时钟芯片、按键模块、电阻、电容、二极管等。

(2)电路设计:根据元器件的特性和功能,设计了数字万年历的电路图。

电路图主要包括单片机、时钟芯片、显示屏、按键模块等部分。

(3)焊接:按照电路图进行元器件的焊接,确保电路连接正确。

2. 软件部分(1)编程环境:使用Keil uVision4软件进行编程。

(2)编程方法:根据数字万年历的功能需求,编写了以下程序:a. 初始化程序:设置单片机的工作模式、时钟频率、端口初始化等。

b. 时钟程序:读取DS1302时钟芯片的时间信息,显示在LCD显示屏上。

c. 显示程序:根据日期、星期、农历等信息,在LCD显示屏上显示相应的信息。

d. 按键扫描程序:扫描按键状态,实现日期、星期、农历等信息的切换。

3. 系统调试(1)硬件调试:检查电路连接是否正确,元器件是否损坏。

(2)软件调试:在Keil uVision4软件中编译程序,下载到单片机中,观察LCD显示屏的显示效果。

四、实习成果通过本次实习,我成功制作了一款数字万年历。

该万年历能够显示日期、星期、农历等信息,具有以下特点:1. 操作简便:用户可以通过按键切换日期、星期、农历等信息。

数字万年历实训报告总结

数字万年历实训报告总结

一、实训背景随着科技的飞速发展,电子产品的普及,人们对信息获取和展示的需求日益增长。

数字万年历作为一种实用性强的电子设备,其设计制作在当今社会具有重要意义。

为了提高自身动手能力、设计能力和创新思维,我参加了本次数字万年历实训课程。

二、实训目的1. 熟悉数字万年历的设计原理和制作流程;2. 掌握电子元器件的选择和电路设计;3. 提高编程能力和嵌入式系统应用能力;4. 培养团队合作精神和创新能力。

三、实训内容1. 硬件设计:根据数字万年历的功能需求,选择合适的电子元器件,如单片机、显示屏、按键等,并设计相应的电路图。

2. 软件设计:编写单片机程序,实现万年历的功能,包括日期显示、星期显示、闰年判断、节假日提醒等。

3. 系统集成:将硬件和软件进行集成,调试并测试系统功能。

4. 优化与改进:针对实际运行中存在的问题,对系统进行优化和改进。

四、实训过程1. 硬件设计阶段:在老师的指导下,我了解了数字万年历的基本硬件结构,并学会了如何选择合适的电子元器件。

根据功能需求,我选择了AT89C52单片机作为核心控制单元,并选择了1602液晶显示屏和按键作为输入输出设备。

通过查阅相关资料,我完成了电路图的设计。

2. 软件设计阶段:我学习了C语言编程,并掌握了单片机程序设计的基本方法。

在编写程序时,我实现了以下功能:(1)初始化:设置单片机的工作状态,初始化LCD显示和按键扫描。

(2)日期显示:读取实时日期,并在LCD上显示年、月、日。

(3)星期显示:根据日期计算出星期,并在LCD上显示。

(4)闰年判断:根据年份判断是否为闰年。

(5)节假日提醒:根据预设的节假日信息,在LCD上显示提醒信息。

3. 系统集成阶段:将硬件和软件进行集成,调试并测试系统功能。

在调试过程中,我发现了以下问题:(1)按键响应不及时:经过检查,发现按键扫描程序存在bug,导致按键响应不及时。

经过修改程序,问题得到解决。

(2)LCD显示不清晰:发现LCD显示模块的背光亮度不足,导致显示不清晰。

数字万年历实验报告

数字万年历实验报告

一、实验目的1. 掌握数字万年历的基本原理和设计方法。

2. 熟悉单片机编程和硬件电路设计。

3. 提高动手能力和问题解决能力。

二、实验原理数字万年历是一种能够显示年、月、日、星期、时、分、秒等信息的电子设备。

它主要由单片机、时钟芯片、显示模块、按键模块等组成。

本实验采用MSP430F149单片机作为核心控制单元,通过编程实现对万年历功能的实现。

三、实验设备1. MSP430F149单片机实验板2. 1602液晶显示屏3. DS1302时钟芯片4. 按键模块5. 电源模块6. 连接线四、实验步骤1. 设计硬件电路根据实验要求,设计万年历的硬件电路。

主要包括以下部分:(1)单片机模块:使用MSP430F149单片机作为核心控制单元。

(2)时钟芯片模块:使用DS1302时钟芯片提供时间基准。

(3)显示模块:使用1602液晶显示屏显示年、月、日、星期、时、分、秒等信息。

(4)按键模块:使用按键模块实现时间调整、功能选择等操作。

2. 编写程序根据硬件电路设计,编写万年历的程序。

主要步骤如下:(1)初始化硬件设备,包括单片机、液晶显示屏、时钟芯片等。

(2)从时钟芯片读取当前时间,并显示在液晶显示屏上。

(3)编写按键处理程序,实现时间调整、功能选择等功能。

(4)编写显示程序,实现年、月、日、星期、时、分、秒等信息的显示。

(5)编写时钟芯片校准程序,实现时间的精确控制。

3. 调试程序将编写好的程序烧录到MSP430F149单片机中,通过调试工具进行调试。

主要调试内容包括:(1)检查液晶显示屏显示是否正常。

(2)检查按键功能是否正常。

(3)检查时间调整、功能选择等功能是否正常。

(4)检查时钟芯片校准是否准确。

五、实验结果与分析1. 实验结果经过调试,万年历实验板能够正常显示年、月、日、星期、时、分、秒等信息,并且可以通过按键进行时间调整、功能选择等操作。

2. 实验分析(1)万年历的硬件电路设计较为简单,主要涉及单片机、时钟芯片、液晶显示屏、按键模块等。

电子万年历组装实习报告

电子万年历组装实习报告

一、实习背景随着科技的不断发展,电子产品的应用越来越广泛。

电子万年历作为一种集实用性与科技性于一体的电子产品,已成为现代生活中不可或缺的一部分。

为了提高自己的实践能力和动手操作能力,我参加了电子万年历组装实习,通过实际操作,了解电子万年历的组装过程,掌握相关电子元器件的使用方法。

二、实习目的1. 了解电子万年历的结构和工作原理;2. 熟悉电子元器件的使用方法;3. 提高动手操作能力和团队合作精神;4. 培养创新意识和实践能力。

三、实习内容1. 电子万年历的结构和工作原理电子万年历主要由以下几个部分组成:显示屏、单片机、存储器、时钟电路、温度传感器、按键电路等。

其工作原理如下:(1)时钟电路负责产生定时信号,驱动单片机工作;(2)单片机根据定时信号,从存储器中读取日期、星期等信息,并显示在显示屏上;(3)温度传感器实时检测环境温度,并将温度信息传递给单片机;(4)按键电路用于用户操作,如设置日期、星期、温度等。

2. 电子元器件的使用方法(1)显示屏:根据电路图,将显示屏的引脚与单片机的相关引脚连接,并确保连接正确;(2)单片机:将单片机的引脚与电路板上的相关元件连接,如时钟电路、存储器等;(3)存储器:将存储器的引脚与单片机的相关引脚连接,并确保连接正确;(4)时钟电路:根据电路图,将时钟电路的元件与单片机的相关引脚连接;(5)温度传感器:将温度传感器的引脚与单片机的相关引脚连接,并确保连接正确;(6)按键电路:将按键电路的元件与单片机的相关引脚连接,并确保连接正确。

3. 组装步骤(1)准备所需工具和材料,如电烙铁、焊锡、镊子、剪刀等;(2)根据电路图,将元器件插入电路板;(3)使用电烙铁焊接元器件的引脚,确保焊接牢固;(4)检查电路板上的元件是否安装正确,并连接好电源;(5)测试电路板的功能,如显示日期、星期、温度等;(6)调试电路板,确保功能正常。

四、实习心得1. 通过本次实习,我对电子万年历的结构和工作原理有了更深入的了解,掌握了电子元器件的使用方法;2. 在组装过程中,我学会了如何使用电烙铁、镊子等工具,提高了自己的动手操作能力;3. 在团队协作中,我学会了与他人沟通、交流,共同解决问题,培养了团队合作精神;4. 通过本次实习,我认识到理论知识与实践操作相结合的重要性,为今后的学习和工作打下了基础。

电子万年历制作实习报告

电子万年历制作实习报告

实习报告:电子万年历制作实习时间:2023年2月24日至2023年3月10日实习单位:XX科技有限公司实习内容:电子万年历制作一、实习目的本次实习的主要目的是通过制作电子万年历,使我能够更好地理解和掌握电子技术的基本知识和技能,提高我的实际操作能力和创新能力。

二、实习内容1. 学习电子万年历的基本原理和工作原理。

2. 学习电子万年历的主要组成部分,包括单片机、时钟芯片、液晶显示屏等。

3. 学习如何使用相关工具和设备进行电子万年历的制作。

4. 完成电子万年历的制作,并进行测试和调试。

三、实习过程1. 学习阶段:在这个阶段,我通过阅读相关资料和向工程师请教,了解了电子万年历的基本原理和工作原理,以及其主要组成部分。

2. 制作阶段:根据所学知识,我开始进行电子万年历的制作。

首先,我进行了电路的设计,然后进行了PCB板的焊接,最后进行了电路的调试。

3. 测试阶段:制作完成后,我对电子万年历进行了测试。

测试内容包括日期的显示、时间的显示、星期的一周循环、闹钟功能等。

四、实习收获通过这次实习,我不仅学到了关于电子万年历的相关知识,还提高了我的实际操作能力和创新能力。

在制作过程中,我学会了如何使用相关工具和设备,掌握了电子万年历的制作技巧。

在测试过程中,我学会了如何对电子万年历进行调试和故障排除。

此外,我还学会了如何与团队成员合作,共同完成任务。

在制作过程中,我与团队成员积极沟通,共同解决问题,取得了良好的团队合作效果。

五、实习反思虽然我完成了电子万年历的制作,但在制作过程中还存在一些问题。

首先,我的电路设计能力还有待提高,有时会出现一些不必要的错误。

其次,我的焊接技术还不够熟练,有时会出现焊接不良的情况。

最后,我在调试过程中有时会忽略一些细节,导致调试效果不理想。

为了提高我的电子技术能力,我决定加强学习和实践。

一方面,我将深入学习电子技术的相关知识,提高我的理论水平。

另一方面,我将多参加实践项目,提高我的实际操作能力。

无字库万年历实训报告

无字库万年历实训报告

随着科技的发展,电子产品的普及,传统的纸质万年历逐渐被电子万年历所取代。

无字库万年历作为一种新型的电子万年历,其特点是无需预先输入任何文字信息,用户只需通过语音输入或触摸操作,即可显示所需日期和相关信息。

为了更好地了解和掌握无字库万年历的设计与制作,我们开展了一次实训活动。

二、实训目的1. 了解无字库万年历的设计原理和制作流程。

2. 掌握无字库万年历的编程技术和人机交互设计。

3. 培养团队协作能力和实际操作能力。

4. 提高对现代电子产品的认知水平。

三、实训内容1. 无字库万年历的设计原理无字库万年历的设计原理主要包括以下几个方面:(1)语音识别技术:通过语音识别技术,将用户的语音指令转换为计算机可识别的文本信息。

(2)自然语言处理技术:对用户输入的文本信息进行语义分析,确定用户所需日期和相关信息。

(3)显示技术:将处理后的日期和相关信息以图形或文字形式显示在屏幕上。

(4)人机交互设计:根据用户需求,设计简洁、易操作的界面,提高用户体验。

2. 无字库万年历的制作流程(1)需求分析:根据用户需求,确定无字库万年历的功能和性能指标。

(2)系统设计:设计系统架构、模块划分和界面布局。

(3)编程实现:编写代码,实现无字库万年历的各项功能。

(4)测试与优化:对无字库万年历进行测试,找出并修复存在的问题,优化性能。

(5)用户反馈与改进:收集用户反馈,根据反馈意见进行改进。

1. 组建团队:将实训成员分为若干小组,每个小组负责无字库万年历的某个模块设计或实现。

2. 学习相关知识:团队成员共同学习语音识别、自然语言处理、人机交互设计等相关知识。

3. 模块设计与实现:各小组根据分工,完成各自模块的设计与实现。

4. 集成测试:将各模块集成,进行整体测试,确保系统功能完整、性能稳定。

5. 用户反馈与改进:收集用户反馈,针对反馈意见进行改进。

五、实训结果1. 成功实现无字库万年历的各项功能,包括语音输入、自然语言处理、显示等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告电子万年历:一、需求分析:电子万年历系统主要实现以下单个查询功能:1、查询某一年的日历。

要求从键盘输入年份,输出该年12个月份的日历2、查询某一天某一个月的日历。

要求从键盘输入年份和月份,输出该月的日历。

3、查询某一天是星期几。

要求从键盘输入年、月、日,输出这一天是星期几。

二、总体设计:1、功能模块图计算模块:用于计算天数,判断闰年输出模块:用于菜单输出和日历输出查询模块:实现查询某一年的日历。

查询某一天某一个月的日历。

查询某一天是星期几。

三、详细设计:1、计算模块:计算模块主要包含3个函数:LeapYear()、CountYearDays()、CountMonthDays函数CountYearDays()功能是计算从公元元年1月1日到某年12月31日一共有多少天。

CountYearDays()功能是几双当年1月1日到输入日期的前一个月的天数2、输出模块包含2个函数:Menu()和ListMonth()函数。

Menu()函数用来输出系统提供的功能选项。

ListMonth()函数用来按规定格式输出一个月的日历。

3、查询模块针对系统要实现三个查询功能定义了3个函数:Search1()、 Search2()和 Search3()函数。

函数Search1()用来显示一年12个月的日历,输入年份后,计算该年1月1日是星期几,然后从1月份开始一次输出每个月的日历,其中调用了函数LeapYear()、CountYearDays()和CountMonthDays()。

函数Search2()用来显示某年某月的日历,输入年份和月份后,计算出该年该月1日是星期几,然后输出这个月的日历,其中调用了函数LeapYear()和CountYearDays()、CountMonthDays()和ListMonth()。

函数Search3()用来显示某天是星期几,通过调用函数LeapYear()、CountYearDays()和CountMonthDays()计算出从公元元年1月1日到这一天总共过去了多少天,用这个总天数除以7得到的余数即为答案。

4、调试与测试:在调试过程中主要的问题就是结果的显示问题,显示易错位。

以及函数之间调用问题。

对于这些问题,主要是翻书籍和网络上找解决方案,以及自己亲自用找到的方法去测试。

最终解决问题。

5、测试结果菜单界面:功能一展示:功能二展示:功能三展示:6、附录:程序代码:#include<stdio.h>#include<conio.h>#include<stdlib.h>int g_MonthDays [13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; //定义全局数组//函数声明int LeapYear(int n);int CountYearDays(int year);int CountMonthDays(int month);void Menu(void);void ListMonth(int days,int t);void Search1(void);void Search2(void);void Search3(void);void main() //main函数定义{int select;while(1){Menu(); //调用Menu函数,显示菜单scanf("%d",&select); //输入想选择的功能switch(select) //对select进行多分支选择{case 1:Search1();break; //select=1时,调用Search1函数case 2:Search2();break;case 3:Search3();break;case 0:printf("\n\t谢谢使用!再见\n");exit(0); //结束程序,退出系统default:("\n\t按键错误,请重新选择!\n"); //输入错误,应重新输入} //switch结束} //while结束}//================================================================//功能:判断闰年//参数:n为需要判断的年份//返回:是闰年返回1,否则返回0//主要思路:用if语句判断某一脸是否是闰年//================================================================int LeapYear(int n){if((n%4==0&&n%100==0)||n%400==0)return (1); //是闰年返回1 else return (0); //不是闰年返回0 }//================================================================ //功能:计算从公元元年到公元(year-1)年的总天数//参数:year为年份//返回:返回总天数//主要思路:用for循环计算天数//================================================================int CountYearDays(int year){int i,flag,days=0;for(i=0;i<year;i++){flag=LeapYear(i); //判断第i年是否为闰年if(flag) days=days+366; //是闰年加366天else days=days+365; //不是闰年应加365天}return (days); //返回总的天数}//================================================================ //功能:计算当年前(month-1)个月的天数//参数:month为月份//返回:返回前(month-1)个月的总天数//主要思路:用for循环计算天数//================================================================int CountMonthDays(int month){int i,days=0;for(i=1;i<month;i++)days=days+g_MonthDays[i];return (days);}//================================================================= //功能:显示系统菜单//参数:无//返回:无//主要思路:用printf函数输出菜单//=================================================================void Menu(void){printf("\n");printf("\t------------------------------------------------\n");printf("\t* *\n");printf("\t* 欢迎使用万年历系统 *\n");printf("\t* *\n");printf("\t------------------------------------------------\n");printf("\n");printf("\t请选择您要查询的内容\n");printf("\t1.显示某年的日历\n");printf("\t2.显示某年某月的日历\n");printf("\t3.显示某天是星期几\n");printf("\t0.退出系统\n");printf("\t请选择按键(0-3)\n");}//=================================================================//功能:按规定格式输出一个月的日历//参数:days表示要输出月份的天数,t表示要输出月份的1日是星期几//返回:无//主要思路:主要采用for语句输出日历//=================================================================void ListMonth(int days,int t){int i,j;printf("星期日星期一星期二星期三星期四星期五星期六");for(i=1;i<=days;i++){if(i==1)for(j=0;j<t;j++)printf(" "); //在数字1前输出9*t个空格printf(" % - 7d",i);if((i+t)%7==0) printf("\n");}}//=================================================================//功能:输出指定年份全年12月份的日历//参数:无//返回:无//主要思路:主要采用for语句循环输出每个月的日历//=================================================================void Search1(void){int year,t,k,flag,days;printf("\n请输入年份:");scanf("%d",&year);flag=LeapYear(year); //调用LeapYear函数,判断Year是否为闰年t=(CountYearDays(year)+1)%7; //计算该年的第一天是星期几for(k=1;k<=12;k++) //k表示月份,没循环一次输出一个月的日历{days=g_MonthDays[k]; //days为第k个月的天数if(flag&&k==2) days=29; //若是闰年,则2月份天数为29printf("\n %d月:\n",k); //输出这是几月ListMonth(days,t); //输出k月的日历t=(t+days%7)%7; //计算第(k+1)个月的第一天是星期今printf("\n");if(k%3==0) //每输出3个月的日历暂停,等用户按任意键后再继续输出{ printf("\n按任意键继续!\n");getch(); //函数功能是输入一个字符且不回显,函数定义在conio.h中}}//for结束}//=================================================================//功能:输出某年某个月的日历//参数:无//返回:无//主要思路:通过调用函数计算天数//=================================================================void Search2(void){int t,year,month,flag,days,ydays,mdays,alldays;printf("\n请输入年.月(如:2009.5):");scanf("%d.%d",&year,&month);ydays=CountYearDays(year); //计算前Year-1年的天数mdays=CountMonthDays(month); //计算前month-1个月的天数days=g_MonthDays[month]; //days为第month个月的天数flag=LeapYear(year); //判断该年是否为闰年if(flag){if(month>2)mdays++; //是闰年且month大于2时,前(month-1)个月的天数加1 elseif(month==2) days==29; //是闰年且month为2月,则2月份天数加1 }alldays=ydays+mdays+1;//计算公元元年1月1日到输入日起这个月1日的总天数t=alldays%7; //计算第month个月的第一天是星期几printf("\n%d年%d月:\n\n",year,month);ListMonth(days,t); //输出该月日历printf("\n");}//================================================================//功能:输出某一天是星期几//参数:无//返回:无//主要思路:通过调用函数计算天数,在计算并输出这一天是星期几//================================================================void Search3(void){int t,year,month,day,flag,ydays,mdays,alldays;printf("\n请输入年.月.日如(2009.3.25):");scanf("%d.%d.%d",&year,&month,&day);ydays=CountYearDays(year); //计算前(year-1)年的天数mdays=CountMonthDays(month); //计算前(month-1)个月的天数flag=LeapYear(year); //判断该年是否为闰年if(flag&&month>2)mdays++; //是闰年且month大于2时,则前(month-1)个月的天数加1 alldays=ydays+mdays+day; //计算总天数t=alldays%7;printf("\n%d年%d月%d日是",year,month,day);switch(t) //对t进行多分支选择{case 0:printf("星期日\n");break;case 1:printf("星期一\n");break;case 2:printf("星期二\n");break;case 3:printf("星期三\n");break;case 4:printf("星期四\n");break;case 5:printf("星期五\n");break;case 6:printf("星期六\n");break;}; //switch结束}。

相关文档
最新文档