电子万年历实验1
- 格式:doc
- 大小:887.44 KB
- 文档页数:25
一、实训目的随着科技的不断发展,电子产品的应用越来越广泛。
数字万年历作为一种常见的电子设备,具有显示日期、星期、农历、节假日等多种功能,给人们的生活带来了极大的便利。
为了更好地掌握电子产品的设计原理和制作方法,提高自身的实践能力,本次实训旨在通过设计和制作数字万年历,使学生对电子技术、电路设计、编程等方面有一个全面的认识和掌握。
二、实训内容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. 显示年、月、日、星期、时、分、秒。
篇一:电子万年历实验报告重庆电力高等专科学校计算机科学系实训报告课程名称实验名称班级信息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得到的余数即为答案。
实验报告姓名:文可鑫学号:20072121010 专业:电子信息工程1编写一个秒表程序,使用查询方式。
list p=16f877ainclude"p16f877a.inc"include<leddis.inc>count equ 20hcount_s equ 21horg 000hstart nopcall InitSPIbanksel OPTION_REGmovlw 04hmovwf OPTION_REGbanksel INTCONmovlw 00hmovwf INTCONmovlw 06hmovwf TMR0movlw d'131'movwf countmovlw 00hmovwf count_smain btfss INTCON,T0IFgoto $-1movlw 06hmovwf TMR0bcf INTCON,T0IFincf count,fbtfss STATUS,Zgoto mainmovlw d'131'movwf countincf count_s,fmovf count_s,wsublw d'60'btfsc STATUS,Zclrf count_smovf count_s,wcall Bin2BCDmovf DIS_TEMP2,wcall CHAR_CODE1movwf DIS_TEMP2movf DIS_TEMP1,wcall CHAR_CODE1movwf DIS_TEMP1call LEDlightnopgoto mainCHAR_CODE1;共阴极字符表ADDWF PCL,FRETLW 3fh ;0RETLW 06h ;1RETLW 5bh ;2RETLW 4fh ;3RETLW 66h ;4RETLW 6dh ;5RETLW 7dh ;6RETLW 07h ;7RETLW 7fh ;8RETLW 6fh ;9Bin2BCDCLRF DIS_TEMP1MOVWF DIS_TEMP2TtenthMOVLW .10SUBWF DIS_TEMP2,WBTFSS STATUS,CGOTO OUTMOVWF DIS_TEMP2INCF DIS_TEMP1,FGOTO TtenthOUTRETURNend2编写一个秒表程序,使用中断方式。
万年历的制作实验目的:电子时间显示器现在在任何地方都有涉及到,例如电子表和商场的时间显示等等,所以它是一种既方便又实用的技术,而我们所做的万年历则是在它的基础上做出来的,通过万年历的制作,我们可以进一步了解计数器的使用,了解各个进制之间的转换,以及他的任意进制计数器的构成方法等,并且进一步了解74LS160的性质,以及门电路的使用等。
实验器材:ISIS仿真软件(74LS160,74LS00,显示器等等)实验原理:74LS160是一个十进制的计数器,两片74LS160可以组成不同进制的计数器,所以可根据它的这个特点来组成实验所需的进制数。
实验步骤:✧制作万年历时,因为有进位的关系,所以应首先制作万年历的秒,秒是60进制的,所以需要制作一个60进制的计数器,由于74LS160是一个十进制的计数器,所以要制作一个60进制的计数器就需要两片74LS160来完成,秒的个位就可直接用十进制来向秒的十位来进位,由于是60进制的,所以秒到60的时候就要清零,下图是秒的制作图秒制作完后就应该制作万年历的分了,分和秒一样都是60进制的,所以它的连线和秒是一样的,如下是它的仿真连线图分钟之后就是小时,一天有24个小时,所以时是24进制的,在此,我采用的是整体置数的方法,首先将两片74LS160接成百进制计数器,然后将电路译码产生0=MR 信号,同时加到两片74LS160上,在下一个计数脉冲到达时将0000同时置入两片74LS160中,从而得到24四进制的计数器,如下是其仿真连线图小时的进位信号给星期和日,下面先来做星期星期的制作所以此时的电路连接图为:◆ 在做万年历的过程中,因为年份有闰年和平年之分,所以导致了二月的天数有所改变,在此我们首先就要先判断闰年和平年◆ 闰年的判断方法如下:闰年是一个能被4整除的数(一) 当年的十位为偶数时:它的个位则是0、4、8当年的十位为奇数时:它的个位则是2、6由卡诺图可知,当年份的十位为奇数时:1001个个十Q Q Q Y = 当年份的十位为偶数时:1002个个十Q Q Q Y =321032100个个个个十十十十全Q Q Q Q Q Q Q Q Y =021)(全Y Y Y Y a +=百位千位为任意数由卡诺图可知,当年份的千位为奇数时:1003百个百千Q Q Q Y = 当年份的千位为偶数时:1004百百千Q Q Q Y =043)(全Y Y Y Y b +=YA 和YB 是通过上面的公式得出的电路连接图1001个个十Q Q Q Y =1002个个十Q Q Q Y =Yq0f 为0全YYR 则是判断的闰年YR=YA+YB由于二月在平年和闰年的天数有所不同,所以要对二月进行判断YA=1Y YB=2Y2100个个个十二月Q Q Q Q Y此时的Y2U=二月Y一年当中有小月和大月之分,所以首先要对小月进行判断,一年当中2、4、6、9、11月是小月所以Y=02个个Q Q +03个个Q Q +02个个Q QYX1=02个个Q Q YX2=03个个Q QYX3=02个个Q QYXU=02个个Q Q +03个个Q Q +02个个Q Q上述步骤完成之后:将大月,小月还有二月的天数用译码器译码出来,其译码连接图见下图图中的Y28,Y29,Y30,Y31为译码出来的二月,小月和大月,而Y281,Y291,Y301,Y311则是平年的二月,闰年的二月,小月和大月的天数如图所示,此时的LD= Y281+Y291+Y301+Y311 而LD 是置0信号,所以LD=LD又因为日的开始值是一,所以要给日置1,D0就要接VCC 上述的链接完成之后,就可得到完整的万年历的显示,但是通常显示出来的时间都不是我们所理想的显示时间,因此我们需要一个调整器来调整时间,从而来达到我们需要的时间在此我们就需要一个开关和脉冲来进行调整,如图所示当开关打到正常的脉冲时,显示的时间不再变化,当开关打到脉冲时,我们就可以进行调整整个完整的电路图如下图。
一、引言随着科技的飞速发展,电子产品的普及和应用越来越广泛。
电子万年历作为一种常见的电子设备,不仅可以显示年、月、日、星期、时、分等信息,还可以实现闹钟、定时显示等功能。
为了提高我们的实践能力和创新能力,本次实训我们选择制作一款基于单片机的电子万年历。
二、实训目的1. 掌握电子万年历的基本原理和设计方法。
2. 熟悉单片机的编程和应用。
3. 培养团队协作能力和动手实践能力。
三、实训内容1. 硬件设计本实训所使用的硬件主要包括以下部分:- 单片机:AT89C52- 时钟模块:DS1302- 显示模块:LCD1602- 遥控模块:1838V- 按键模块:S1(设置键)、S2(上调键)、S3(下调键)、S4(复位键)硬件电路图如下:2. 软件设计本实训所使用的软件主要包括以下部分:- 单片机编程:C语言- 显示程序:LCD1602驱动程序- 遥控程序:1838V遥控接收程序软件流程图如下:3. 功能实现本实训所实现的电子万年历具有以下功能:- 显示年、月、日、星期、时、分等信息。
- 遥控操作:设置时间、星期、日期等。
- 定时显示:定时显示当前时间。
- 停电自动计时:采用DS1302时钟模块,停电后可继续计时。
四、实训过程1. 硬件搭建首先,我们根据电路图搭建了电子万年历的硬件电路。
在搭建过程中,我们注意了以下几点:- 确保电路连接正确,避免短路或开路。
- 选择合适的元器件,确保电路性能稳定。
- 对电路进行测试,确保电路正常工作。
2. 软件编程接下来,我们使用C语言对单片机进行编程。
在编程过程中,我们遵循以下步骤:- 分析功能需求,确定程序结构。
- 编写程序代码,实现各项功能。
- 调试程序,确保程序运行正常。
3. 测试与优化在完成软件编程后,我们对电子万年历进行测试。
在测试过程中,我们发现以下问题:- 遥控操作不稳定。
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==万年历实验报告篇一:电子万年历实验报告重庆电力高等专科学校计算机科学系实训报告课程名称实验名称班级信息0911 姓名廖林单片机应用技术电子万年历学号 201X03020243 教师任照富日期 201X-12-28 地点一教七机房一、实训任务:1、看实训要求,计划出自己实训所要用元件,在网上查找资料。
2、思考仿真原理图,然后画出来(具体I/O口暂时不确定)。
3、在网上找一些程序,然后自己改一些,进行编译。
4、编译无误之后,跟原理图相联系,完成最终的仿真图。
5、进行最后的改写,把程序和仿真原理图确定下来。
6、根据仿真图形,制作出实物图。
7、在实物制作过程中,进行电路检查和最后的调试。
二、实训要求:要求:能显示阳历的年、月、日、星期、时、分、秒;能显示阴历的年、月、日;能进行日期、时间的调整。
扩展:能显示当前温度;有闹钟功能(至少2个)选择DS1302时钟芯片,温度传感器采用DS18B20数字温度传感器。
三、实训环境(软件、硬件):软件:keil protues7.5硬件:计算机2单片机的应用四、实训意义:在这快速发展的年代,时间对人们来说是越来越宝贵,在快节奏的生活时,人们往往忘记了时间,一旦遇到重要的事情而忘记了时间,这将会带来很大的损失。
因此我们需要一个定时系统来提醒这些忙碌的人,而数字化的钟表给人们带来了极大的方便。
由于单片机具有灵活性强、成本低、功耗低、保密性好等特点,所以电子日历时钟一般都以单片机为核心,外加一些外围设备来实现。
电子万年历作为电子类小设计不仅是市场上的宠儿,也是是单片机实验中一个很常用的题目。
因为它的有很好的开放性和可发挥性,因此对作者的要求比较高,不仅考察了对单片机的掌握能力更加强调了对单片机扩展的应用。
而且在操作的设计上要力求简洁,功能上尽量齐全,显示界面也要出色。
实验报告
班级学号姓名同组人实验日期室温大气压成绩
3.2、系统时钟电路
LPC2100系列ARM7微控制器可使用外部晶振或外部时钟源,内部
运行速度更快(CPU最大操作时钟为60MHz)。
倘若不使用片内PLL功能及
3.3、键盘电路
3.4、LED显示电路
在显示方面,EasyARM2131开发板采用了一片74HC595驱动一位静态共阳
其时钟(SCK)、数据(SI)分别接到LPC2131的SPI接口的SCLK0、MOSI0
片选(RCK,即74HC595输出触发端)与P0.29口连接,由P0.29控制
输出(SQH)连接到LPC2131的SPI接口的MISO0,可用来读回数据。
这样连接就可以进行实验,并能把74HC595的移位输出读回来(由MISO0读回)。
这一部份电路通过在使用硬件SPI接口主方式时,要把SPI0/1的4个I/O口均设置为
而且SSEL0/1引脚不能为低电平,一般要接一个10KΩ的上拉电阻。
、蜂鸣器控制电路
如图1.11所示,蜂鸣器使用PNP三极管Q1进行驱动控制,当P0.7控制电平输出0
鸣器蜂鸣;当P0.7控制电平输出1时,Q1截止,蜂鸣器停止蜂鸣;若把JP6选择断开连接,
器停止蜂鸣。
Q1采用开关三极管8550,其主要特点是放大倍数高hFE = 300,最大集电极电流ICM =1500mA fT = 100MHz。
3.6实时时钟
3.6.1概述
实时时钟(RTC,Real Time Clock)提供一套计数器在系统上电和关闭操作时对时间进行测量,
3.7、PWM脉宽调制器3.7.1 概述。