电子万年历设计毕业设计.docx
《电子万年历设计毕业设计.docx》由会员分享,可在线阅读,更多相关《电子万年历设计毕业设计.docx(21页珍藏版)》请在冰豆网上搜索。
电子万年历设计毕业设计
电子万年历设计
学生:
XXX指导教师:
XXX
内容摘要:
这次设计以生活中常用的万年历挂钟为例,从系统功能说明出发,对控制系统的组成结构、系统设备选型进行了分析。
在硬件设计一节给出了详细的硬件电路设计图,并对各功能部件与AT90S8535单片机的连接进行了详细的讲解。
在软件设计一节给出了系统的程序控制流程图,对各部分程序进行了分析说明。
最后简要地介绍了系统集成与测试的方法。
万年历挂钟设计的方案很多。
在本次设计中选用高性能低功耗的AVR架构单片机AT90S8535作为系统的控制核心,并选用高集成度的实时时钟芯片SD2303和DS1722温度传感器来处理时间和温度检测任务。
AT90S8535单片机带有SPI接口,能非常便利地实现和DS1722的通信。
在与实时时钟芯片SD2303通信时采用了模拟IIC总线的方式。
本次设计的万年历挂钟能实现实时时间和温度的检测和显示。
通过设置的7个独立的按键来调整时间和设置闹铃。
需要指出的是,实时时钟芯片以设定的初始时间为基准进行计时,故用户在设置时间时必须保证所设置时间的合理性。
在设置闹铃时,程序会对所设置时间的合理性进行检测,任何不合理的时间设置将关闭闹铃功能。
鉴于系统设计的复杂性,万年历挂钟设计中没有加入阳历和阴历的转换。
我们可以在本设计的基础上使用专用的芯片或者使用软件算法来实现这一功能,这样万年历挂钟的功能将更加完善。
关键字:
万年历DS1722温度传感器AT90S8535单片机
Electroniccalendar
Abstract:
Thedesignusethecalendarclockofthelifeasanexample,startingfromthesystemdescription,analyzethecompositionofthecontrolsystemstructureandsystemequipmentselection.Softwaredesigninagivenprocesscontrolsystemflowchartofthevariouspartsoftheanalysisprocedure.Finally,abriefdescriptionofsystemintegrationandtestingmethod.
Calendarclockprogramdesignedmany.Designinthisselectionofhigh-performancelow-powerAVRarchitectureAT90S8535singlechipasthecorecontrolsystemandselectahighlevelofintegrationofreal-timeclockchipSD2303andDS1722temperaturesensortotheprocessingtimeandtemperaturedetectiontask.AT90S8535singlechipwithSPIinterface,canbeveryconvenienttoachievethecommunicationandDS1722.Withreal-timeclockchipSD2303communicationIICbususingasimulationapproach.
Thecalendardesignedtoachievereal-timeclocktimeandtemperaturedetectionanddisplay.Alarminthesettings,theprogramwillbethesetuptimefortestingthereasonablenessofanyunreasonableperiodoftimesetalarmfeaturewillbeclosed.
Inviewofthecomplexityofsystemdesign,calendarclockdesignarenotmembersofthesolarcalendarandlunarcalendarconversion.Wecandesignbasedontheuseofadedicatedchip,ortheuseofsoftwarealgorithmstoachievethisfunction,thefunctionofthiscalendarclockwillbemoreperfect.
Keyword:
calendarDS1722temperaturesensorAT90S8535singlechip
电子万年历
前言
随着现代社会工作和生活节奏的加快,越来越需要人们对时间的准确把握,一旦遇到重要的事情而忘记了时间,这将会带来很大的损失。
虽然在日常生活中,各种信息处理终端如电脑、手机等给我们提供了准确的时间信息,但是在大多数场合却仅仅局限于个人的使用范围之内。
在家居生活中,一款悬挂于居室墙壁上大方得体的电子万年历不仅能为我们提供准确的时间显示,而且美化了环境,给单调的居室带来了现代化的气息,因而成为许多家庭的必备之选。
1电子万年历介绍
电子万年历在家庭居室、学校、车站和广场的使用越来越广泛,给人们的生活、学习、工作带来了极大的方便。
电子万年历具有信息量大、直观清晰、经济实用等优点,正成为家庭、商场、公共场所等新的消费热点,具有重要的开发价值。
1.1系统功能说明
根据家庭生活中的实际需要,万年历挂钟应该具有如下的功能。
1.1.1时间显示
时间显示是万年历挂钟设计最主要的功能。
万年历应该不仅能准确显示时、分、秒,而且还要能够显示年、月、日和星期。
1.1.2时间调整
万年历挂钟再第一次使用时,需要根据当前时间进行实践调整,设定其初始时间,设置完成之后,它会在设定值基础上进行准确的计时和显示。
在挂钟断电或出现其他故障排除后,也需要根据但前时间进行时间调整。
1.1.3定时闹钟
定时闹钟是万年历挂钟的一个辅助功能.可以通过键盘的设定定时时间,这样当挂钟运行到设定的定时时间时,会发出语音提示,提示时间为1分钟。
可以根据需要设定闹钟功能的开启和关闭。
1.1.4温度显示
温度显示是万年历挂钟的另外一个辅助功能.挂钟上设置有一个温度传感器,用于检测环境温度,提示用户注意温度变化,做好诸如防寒保暖等措施。
1.1.5掉电运行
万年历挂钟采用市电或者电池供电.当发生停电或者电池电量耗尽等情况时,它通过内置的纽扣电池给时钟供电以保持正确的时钟数据,但关闭其他部分的电源,这样在来电或者更换电池之后不必重新设定时间.在市电运行正常时,用户可以根据需要更换备用的纽扣电池而不影响时钟运行。
1.2应用系统设计
1.2.1系统方案设计
应用于单片机控制的实时时钟系统根据基准信号产生的途径,可以分为两种:
一是利用单片机中的定时器作为实时时钟基准;二是利用专用实时时钟日历芯片产生基准时钟信号。
AT90S8535单片机带有实时时钟接口,可以通过外接32768Hz的晶振分频后产生基准时钟信号,这为万年历挂钟的设计提供了一种新的选择。
采用上述方式产生时钟基准信号的设计方案及其比较如表1.2.1-1所示:
表1.2.1-1万年历挂钟方案及评估
方案编号
时钟源
定时闹钟
温度检测
方案评估
1
单片机定时器
软件实现
温度传感器
定时器在单片机内部,无需附加外部元器件,通过编程实现时钟功能,精度受单片机外接电容等的影响,成本低但精度差,而且程序设计困难。
2
外接32768Hz晶振
软件实现
温度传感器
外接32768Hz晶振分频后作为时钟基准信号,具有较高的精度但程序设计困难。
3
实时时钟日历芯片
硬件实现
温度传感器
实时时钟芯片能自动产生1秒时钟基准信号,且自带日期及闰年调整功能,计时精度和集成度非常高,程序设计简单但成本略高。
通过上述方案设计及性能评估可知,由实时时钟日历芯片产生基准计时信号构成的万年历挂钟虽然成本上比其他两种方案产生基准信号的方式略高,但是由于实时时钟日历芯片具有集成度高、走时准确、自动日历及闰年调整并集成有闹钟功能,这样使设计变得非常的简单,故在设计中采用方案3。
1.2.2应用系统结构设计
应用系统结构如图1.2.2-1所示:
图1.3.2-1万年历挂钟系统结构框图
1.2.3设备选型
本设计采用Atmel公司的高性能低功耗的AVR单片机AT90S8535作为控制系统的核心。
按照图1-1所确定的系统结构,选择合适的功能部件,以完成完整的系统控制电路设计。
控制系统需要选择实时时钟日历芯片、温度传感器单元、键盘和显示单元三部分。
表1.2.3-1是万年历挂钟设计具体的设备选型表。
表1.2.3-1设备选型表
器件编号
器件名称
型号
基本参数
1
单片机
AT90S8535
基于AVRRISC的低功耗CMOS的8位单片机,具有8K字节程序FLASH,512字节EEPROM,512字节SRAM。
2
实时日历芯片
SD2303
I²C接口日历芯片,自动日历到2099年,BCD码年、月、日、周、时、分、秒输入/输出,带两路定时闹钟,年误差小于2.5分钟
3
温度传感器
DS1722
SPI/三线串行接口温度传感器,测量范围—55℃~120℃,8~12位可编程分辨率。
测量误差小于2.0℃
4
键盘单元
独立式
7个独立式键盘
5
显示单元
数码管
16个7段数码管
1.2.4控制面板设计
控制面板即万年历挂钟外形图。
如图1.2.4-1所示:
图1.2.4-1万年历挂钟控制面板
在万年历挂钟的控制面板上设置有16个数码管,分别用于显示年、月、日、星期、温度、时和分。
显示格式如下。
年:
4位数码管显示年,如2009表示2009年。
月:
2位数码管显示月,如01表示1月份。
日:
2位数码管显示日,如31表示31日。
星期:
1位数码管显示星期,如7表示星期日。
温度:
3为数码管显示温度,如H28表示+28℃,L05表示-5℃。
时:
2位数码管显示时,如23表示23点。
分:
2为数码管显示分,如59表示59分。
为了进行时间设定和闹钟设定,在控制面板下方设置有7个键,分别为“时间设置”键、“闹钟设置”键、“+”键、“-”键、“上一位”键、“下一位”键和“确定”键,其功能如下所述。
当需要设置时间时,按下“时间设置”键,这时万年历停止计时并将时间清零,在年的最高位上的小数点点亮表示进行年最高位设置,用户可以通过“+”或者“-”来调整数字,调整完后按“下一位”,则年的最高位小数点熄灭而次高位小数点点亮,用户按照上述方法设置次高位……直到时间设置完。
注意,温度不可以设置。
设置完后按“确定”键,用户设定值将存储进入单片机并开始以此时间计时。
当需要设置闹铃时,按下“闹铃设置”键,这时万年历挂钟仍继续计时而面板上的时间将全部显示为0,同时时间的小时高位小数点点亮,用户按照时间设定的方式设置闹钟的时和分,按下“确定”键后,闹铃被存储进单片机。
当万年历挂钟走到设定的闹铃时间时,蜂鸣器发出报警声。
闹铃的设置时间可以通过按“闹铃设置”键来查看,任何不符合走时的闹铃设置将关闭闹铃功能。
如设置“60时20分”将关闭闹铃功能。
这时取消闹铃功能的一种方法
2硬件电路设计
万年历挂钟的硬件设计电路如图所示(见附录1)。
下面对各部分分别予以说明。
2.1AT90S8535
AT90S8535单片机是AT90系列AVR单片机中内容接口丰富、功能齐全、性价比较高的产品。
它具有如下特点:
2.1.1AVRRISC结构
▲AVR高性能、低功耗RISC结构
▲118条指令构成的精简指令集,大多数为单指令周期
2.1.2数据和非易失性程序存储器
▲8KB的在线可编程FLASH存储器,可擦写1000次以上
▲512B的SRAM
2.1.3外围器件特点
▲两个可预分频的8位定时/计数器(T/C0、T/C2),其中T/C2具有输出比较和PWM功能
▲一个可预分频的16位定时/计数器(TC1),TC1具有输入捕获、输出比较和PWM功能
▲片内模拟比较器
2.1.4MCU特点
▲上电复位电路
2.1.54MHz3V20℃条件下的功耗(AT90S8535)
▲工作模式:
6.4MA
2.1.6I/O接口和封装
▲32个可编程的I/O脚,每个脚都可以指定工作模式
2.2实时时钟电路设计
万年历挂钟采用深圳威帆公司生产的支持两线式串行接口、带温度补偿的高精度实时时钟日历芯片SD2303。
2.2.1实时时钟芯片SD2303简介
SD2303是深圳威帆公司一种具有内置晶振、支持两线串行接口的高精度实时时钟芯片。
该系列芯片可保证时钟精度为±5ppm(在25±1℃下),即年误差小于2.5分钟;该芯片内置时钟精度调整功能,可以在很宽的范围内校正时钟的频率偏差,能以最小分辨率3.052ppm来进行校正,通过与温度传感器的结合可以设定适应温度变化的调整值,实现在宽温范围内高精度的计时功能;内置电池、串行NVSRAM,其中内置的一次性电池可保证在外部掉电情况下时钟使用寿命超过5年,内置串行NVSRAM为非易失性SRAM,擦写次数可达100亿次。
该系列芯片可满足对实时时钟芯片的各种需要,是高精度实时时钟的理想选择。
图2.2.1-1实时时钟电路
2.2.2SD2303的引脚设置
SD2303实时时钟日历芯片的引脚配置如图2.2.2-1所示:
图2.2.2-1SD2303的引脚配置。
表2.2.2-1SD2303引脚功能表
引脚编号
符号
功能
备注
1
INTRA
报警中断A路输出
N沟道开路输出,需接上拉电阻
2
NC
没有作用
3
NC
没有作用
4
VSS
接地
5
INTRB
报警中断B路输出
N沟道开路输出,需接上拉电阻
6
SCL
IIC串行时钟输入
7
SDA
IIC串行数据输入/输出
N沟道开路输出,需接上拉电阻
8
VDD
电源
2.3温度检测电路设计
万年历挂钟中的温度检测采用MAXIM公司带SPI/三线串行接口的DS1722温度传感器芯片,它与AT90S8535单片机的连接如图2.3-1所示:
图2.3-1温度检测电路
2.3.1温度传感器DS1722简介
DS1722温度传感器的测温范围为-55℃~120℃,精度为±2℃。
DS1722提供8~12位的可编程转换值,即分辨率从1.0℃~0.0625℃。
温度值直接以数字形式输出。
DS1722可以工作在单次转换和自由(连续)转换模式下。
当工作在单次转换模式下时,每启动一次转换,DS1722便将采集到的温度数据存储在寄存器里面;当工作于自由转换模式下时,DS1722连续采集温度数据,并将最近一次的采集数据存储起来。
2.3.2DS1722的引脚配置
DS1722的引脚配置如图2.3.2-1所示:
图2.3.2-1DS1722引脚配置。
表2.3.2-1DS1722引脚功能表
引脚编号
符号
功能
1
VDDD
数字电源,供电范围:
1.8V~5.5V
2
CE
片选,当DS1722与微处理器通信时必须置低
3
SCLK
串行时钟输入
4
GND
地
5
SDO
串行数据输出
6
SDI
串行数据输入
7
SERMODE
SPI/三线串口模式选择
8
VDDA
模拟电源,供电范围:
2.65V~5.5V
DS1722温度传感器采用SPI/三线串行接口通信模式。
当SERMODE接VCC时,选择SPI模式,当SERMODE接地时,选择三线串口模式。
在SPI模式下,SCLK、SDI和SDO分别为SPI的串行时钟输入端、串行数据输入端和串行数据输出端。
在三线串口通信模式下,SDI必须和SDO相连作为一个I/O口。
2.4显示电路设计
按照图1.2.4-1设计的控制面板,万年历挂钟需要显示16位的年、月、日、周、时、分和温度数据。
为了合理利用AT90S8535的I/O口,显示电路设计采用了一片4-16线译码器驱动ULN2803来控制数码管的显示,如图2.4-1所示:
图2.4-1显示电路
2.5键盘及闹钟电路设计
万年历挂钟需要通过键盘完成时间校准和闹钟设置等任务。
为简化设计,这里采用了独立式键盘输入数据,如图2.5-1所示:
AT90S8535的PC3~PC0在程序中设置为上拉输入,这样,在没有按键按下时这些I/O口为高电平输入,当有按键按下时,对应的I/O口被拉低,检测I/O口电平状态即可判断按键按下与否。
报警电路采用I/O通过三极管驱动蜂鸣器实现。
图2.5-1键盘和报警电路
3软件设计
万年历挂钟系统控制程序从功能上来说包含系统初始化程序、实时时钟日历芯片的读写程序、温度传感器芯片的读写程序、键盘和显示程序及其他一些辅助事务处理程序。
以上这些程序被安排在一个文件中。
3.1主程序设计
主程序主要完成系统初始化(包括I/O口初始化、SD2303芯片的初始化和DS1722芯片的初始化)、按键检测和处理、时钟数据的读取和显示、温度数据的读取和显示以及根据条件判断是否需要进行定时报警等工作,以完成人机交互的功能。
系统主程序的流程图如图3.1-1所示:
图3.1-1主程序流程
3.2按键检测和处理程序
按键检测和处理程序为用户设置时间和闹铃提供人机接口。
万年历挂钟提供7个独立式的按键接口,通过采集按键的电平状态来检测按键的按下与否。
在按键检测程序中提供了延时防抖功能。
按键检测程序只有在检测到“时间设置”键或者“闹铃设置”键被按下后方进入处理程序。
处理程序结束的条件为检测到“确认”键被按下。
按键检测程序通过点亮数码管的小数点提示正在进行设置的是哪一位数据。
处理程序提供了对闹铃时间设置的合法性检测,而不提供对时间设置的合法性检测。
只有合法的闹铃时间设置方能启动闹铃功能,任何非法的闹铃时间设置将关闭闹铃功能。
按键检测和处理的程序流程如图3.2-1所示:
图3.2-1按键检测和处理程序流程
3.3系统集成与测试
万年历挂钟系统的测试分为4部分:
AT90S8535主机电路测试、键盘显示电路的测测试、实时时钟电路的测试和温度检测电路的测试。
对各部分的测试应该编制各自的测试程序。
完成单片机电路测试后,首先应该进行按键和数码管的显示测试。
在万年历挂钟的设计中采用了16位数码管的动态显示和7位独立的按键设计。
在主程序中给出了显示和按键检测的程序,我们可以根据此编写测试程序。
需要注意的是,由于按键没有接上拉电阻,在编写测试程序时必须将接按键的I/O口设置为带上拉的输入方式,这样才能保证按键状态的正确检测。
设计中采用的是共阴型数码管,我们必须修改显示程序才能正确显示数据。
在主程序中给出了实时时钟芯片与AT90S8535单片机的数据传输函数。
我们可以根据这些函数写测试程序。
在主程序中同样给出了温度传感器与AT90S8535单片机的数据传输函数,我们可以根据这些函数编写测试程序。
4单片机控制系统抗干扰技术
单片机控制系统体积小,价格低,功能灵活,使用方便,已获得了广泛应用。
虽然芯片设计上采取了不少措施,但其工作环境大都在工业生产现场或机械设备之中,同强电联系较多,因而条件恶劣,干扰源多。
因此,研究抗干扰技术,是保证单片机控制系统稳定可靠工作的必要技术。
4.1干扰的来源分析
干扰产生于干扰源。
凡是能产生一定能量,可以影响到周围电路正常工作的媒体都可认为是干扰源。
干扰有的来自外部,有的来自内部。
一般来说,干扰源可分为以下三类:
●自然界的宇宙射线,太阳黑子活动,大气污染及雷电因素造成的;
●物质固有的,即电子元器件本身的热噪声和散粒噪声;
●人为造成的
4.2硬件抗干扰技术
●选用可靠的元器件
●接插件的选择应用
●印制电路板抗干扰设计技术
●执行机构抗干扰技术
4.3软件抗干扰技术
控制系统软件设计对提高系统的可靠性,提高抗干扰性能意义很大。
一个好的软件设计,要充分考虑必要的抗干扰措施,利用软、硬件相结合实现系统抗干扰是单片机控制系统特殊优点之一。
下面介绍几种常用的软件干扰措施。
●增加程序监视系统
●软件冗余技术
●软件可靠性设计
●软件自诊断技术
4.4供电系统抗干扰技术
任何电源及输电线路都存在内阻,正是这些内阻才引起供电系统的噪声干扰。
为了防止电源系统受到干扰,影响单片机控制系统的正常工作,供电系统应该考虑以下几个方面。
◇交流进线端加交流滤波器可滤掉高频干扰,要求高的系统加交流稳压器。
◇采用具有静电屏蔽和抗电磁干扰的隔离电源变压器。
◇采用集成稳压块两级稳压。
◇主电路板采取独立供电,其余部分分散供电。
◇直流输出部分采用大容量电解电容进行平滑滤波。
◇线间对地增加小电容滤波消除高频干扰。
◇交流电源线与其他线尽量分开,减少再度耦合干扰。
◇尽量提高接口器件的电源电压,提高接口的抗干扰能力。
5结束语
在设计期间,在老师的教导下,在同学的帮助下,通过不断学习理论知识和参与实践,感觉自己的综合素质在很大程度上得到了提升,努力将自己塑造成为一个专业功底扎实、知识结构完善、适应能力强的合格大学生。
这次课程设计,不仅让我们大开眼界,也是对以前所学知识的一个初审,从这次实习中,进一步巩固和深化了所学的理论知识,弥补了单一理论教学的不足,并为后续专业课学习和毕业设计打下了坚实的基础。
对于我来说,收获最大的是方法和能力,那些分析和解决问题的能力。
在整个课程设计的过程中,我发现我们学生在经验方面十分缺乏,空有理论知识,没有理性的知识,有些东西可能与实际脱节。
在本次课程设计中,我从指导老师XX老师身上学到了很多东西。
他认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。
他无论在理论上还是在实践中,都给与我很大的帮助,使我得到很大的提高,这对于我以后的工作和学习都有一种巨大的帮助,在此感谢他耐心的辅导。
在制作设计阶段,XX老师几次审阅我的的设计,提出了许多宝贵意见,没有他的指导,我们就不能较好的完成课题设计的任务。
另外,我还要感谢在这几年来对我有所教导的老师,他们孜孜不倦的教诲不但让我学到了很多知识,而且让我掌握了学习的方法,更教会了我做人处事的道理,在此表示感谢。
附录:
万年历挂钟原理图
参考文献:
[1]阎石头:
数字电子技术基础(第五版),高等教育出版社,2006.6,P17-P25
[2]张萌、刘湘、江斌:
单片机应用系统开发综合实例,清华大学,2007.7,P15-P23
[3]张军:
AVR单片机应用系统开发典型实例,中国电力出版社,2005.4,P45-P56
[4]宋吉:
C语言程序设计(第二版),中国石油大学出版社,2006.9,P101-P122
[5]李泓:
AVR单片机入门与实践,北京航空航天大学出版社,2008.5,P