电子万年历.docx
- 文档编号:5131302
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:57
- 大小:307.17KB
电子万年历.docx
《电子万年历.docx》由会员分享,可在线阅读,更多相关《电子万年历.docx(57页珍藏版)》请在冰豆网上搜索。
电子万年历
摘要
这次设计以生活中常用的万年历挂钟为例,从系统功能说明出发,对控制系统的组成结构、系统设备选型进行了分析。
在硬件设计一节给出了详细的硬件电路设计图,并对各功能部件与AT90S8535单片机的连接进行了详细的讲解。
在软件设计一节给出了系统的程序控制流程图,对各部分程序进行了分析说明。
最后简要地介绍了系统集成与测试的方法。
万年历挂钟设计的方案很多。
在本次设计中选用高性能低功耗的AVR架构单片机AT90S8535作为系统的控制核心,并选用高集成度的实时时钟芯片SD2303和DS1722温度传感器来处理时间和温度检测任务。
AT90S8535单片机带有SPI接口,能非常便利地实现和DS1722的通信。
在与实时时钟芯片SD2303通信时采用了模拟IIC总线的方式。
本次设计的万年历挂钟能实现实时时间和温度的检测和显示。
通过设置的7个独立的按键来调整时间和设置闹铃。
需要指出的是,实时时钟芯片以设定的初始时间为基准进行计时,故用户在设置时间时必须保证所设置时间的合理性。
在设置闹铃时,程序会对所设置时间的合理性进行检测,任何不合理的时间设置将关闭闹铃功能。
鉴于系统设计的复杂性,万年历挂钟设计中没有加入阳历和阴历的转换。
我们可以在本设计的基础上使用专用的芯片或者使用软件算法来实现这一功能,这样万年历挂钟的功能将更加完善。
关键字:
万年历,DS1722温度传感器,AT90S8535单片机
Abstract
Thedesignusethecalendarclockofthelifeasanexample,startingfromthesystemdescription,analyzethecompositionofthecontrolsystemstructureandsystemequipmentselection.InthehardwaredesignisgivenadetailedhardwaredesignandthefeaturesconnectedwithAT90S8535MCUexplainindetail.Softwaredesigninagivenprocesscontrolsystemflowchartofthevariouspartsoftheanalysisprocedure.Finally,abriefdescriptionofsystemintegrationandtestingmethod.
Calendarclockprogramdesignedmany.Designinthisselectionofhigh-performancelow-powerAVRarchitectureAT90S8535singlechipasthecorecontrolsystemandselectahighlevelofintegrationofreal-timeclockchipSD2303andDS1722temperaturesensortotheprocessingtimeandtemperaturedetectiontask.AT90S8535singlechipwithSPIinterface,canbeveryconvenienttoachievethecommunicationandDS1722.Withreal-timeclockchipSD2303communicationIICbususingasimulationapproach.
Thecalendardesignedtoachievereal-timeclocktimeandtemperaturedetectionanddisplay.Bysettingthesevenindependentkeystoadjusttimeandalarmsettings.Itshouldbenotedthatreal-timeclockchipinordertosettheinitialtimetotimeasthebase,sousersmustsetthetimetoensurethatthesetuptimeisreasonable.Alarminthesettings,theprogramwillbethesetuptimefortestingthereasonablenessofanyunreasonableperiodoftimesetalarmfeaturewillbeclosed.
Inviewofthecomplexityofsystemdesign,calendarclockdesignarenotmembersofthesolarcalendarandlunarcalendarconversion.Wecandesignbasedontheuseofadedicatedchip,ortheuseofsoftwarealgorithmstoachievethisfunction,thefunctionofthiscalendarclockwillbemoreperfect.
Keyword:
calendar,DS1722temperaturesensor,AT90S8535singlechip
目录
摘要I
AbstractII
第一章引言1
1.1课题选题背景1
1.2系统功能说明1
1.3应用系统设计2
1.3.1系统方案设计2
1.3.2应用系统结构设计3
1.3.3设备选型3
1.3.4控制面板设计4
第二章硬件电路设计6
2.1AT90S8535单片机的特点6
2.2实时时钟电路设计7
2.2.1实时时钟芯片SD2303简介7
2.2.2SD2303的引脚设置9
2.2.3SD2303的内部存储器9
2.2.4SD2303的数据传输16
2.3温度检测电路设计19
2.3.1温度传感器DS1722简介20
2.3.2DS1722的引脚配置21
2.3.3DS1722的内部寄存器21
2.3.4DS1722的数据传输过程23
2.4显示电路设计25
2.5键盘及闹铃电路设计26
第三章软件设计27
3.1主程序设计27
3.2按键检测和处理程序28
3.3系统集成与测试29
第四章单片机控制系统抗干扰技术30
4.1干扰的来源及分析30
4.2硬件抗干扰技术32
4.3软件抗干扰技术34
4.4供电系统抗干扰技术36
4.5接地系统抗干扰技术37
结论38
参考文献39
致谢40
第一章引言
1.1课题选题背景
随着现代社会工作和生活节奏的加快,越来越需要人们对时间的准确把握,一旦遇到重要的事情而忘记了时间,这将会带来很大的损失。
虽然在日常生活中,各种信息处理终端如电脑、手机等给我们提供了准确的时间信息,但是在大多数场合却仅仅局限于个人的使用范围之内。
在家居生活中,一款悬挂于居室墙壁上大方得体的电子万年历不仅能为我们提供准确的时间显示,而且美化了环境,给单调的居室带来了现代化的气息,因而成为许多家庭的必备之选。
电子万年历在家庭居室、学校、车站和广场的使用越来越广泛,给人们的生活、学习、工作带来了极大的方便。
电子万年历具有信息量大、直观清晰、经济实用等优点,正成为家庭、商场、公共场所等新的消费热点,具有重要的开发价值。
1.2系统功能说明
根据家庭生活中的实际需要,万年历挂钟应该具有如下的功能。
1.时间显示
时间显示是万年历挂钟设计最主要的功能。
万年历应该不仅能准确显示时、分、秒,而且还要能够显示年、月、日和星期。
2.时间调整
万年历挂钟再第一次使用时,需要根据当前时间进行实践调整,设定其初始时间,设置完成之后,它会在设定值基础上进行准确的计时和显示。
在挂钟断电或出现其他故障排除后,也需要根据但前时间进行时间调整。
3.定时闹钟
定时闹钟是万年历挂钟的一个辅助功能.可以通过键盘的设定定时时间,这样当挂钟运行到设定的定时时间时,会发出语音提示,提示时间为1分钟.可以根据需要设定闹钟功能的开启和关闭。
4.温度显示
温度显示是万年历挂钟的另外一个辅助功能.挂钟上设置有一个温度传感器,用于检测环境温度,提示用户注意温度变化,做好诸如防寒保暖等措施。
5.掉电运行
万年历挂钟采用市电或者电池供电.当发生停电或者电池电量耗尽等情况时,它通过内置的纽扣电池给时钟供电以保持正确的时钟数据,但关闭其他部分的电源,这样在来电或者更换电池之后不必重新设定时间.在市电运行正常时,用户可以根据需要更换备用的纽扣电池而不影响时钟运行。
1.3应用系统设计
1.3.1系统方案设计
应用于单片机控制的实时时钟系统根据基准信号产生的途径,可以分为两种:
一是利用单片机中的定时器作为实时时钟基准;二是利用专用实时时钟日历芯片产生基准时钟信号。
AT90S8535单片机带有实时时钟接口,可以通过外接32768Hz的晶振分频后产生基准时钟信号,这为万年历挂钟的设计提供了一种新的选择。
采用上述方式产生时钟基准信号的设计方案及其比较如表1-1所示。
表1-1万年历挂钟方案及评估
方案编号
时钟源
定时闹钟
温度检测
方案评估
1
单片机定时器
软件实现
温度传感器
定时器在单片机内部,无需附加外部元器件,通过编程实现时钟功能,精度受单片机外接电容等的影响,成本低但精度差,而且程序设计困难。
2
外接32768Hz晶振
软件实现
温度传感器
外接32768Hz晶振分频后作为时钟基准信号,具有较高的精度但程序设计困难。
3
实时时钟日历芯片
硬件实现
温度传感器
实时时钟芯片能自动产生1秒时钟基准信号,且自带日期及闰年调整功能,计时精度和集成度非常高,程序设计简单但成本略高。
通过上述方案设计及性能评估可知,由实时时钟日历芯片产生基准计时信号构成的万年历挂钟虽然成本上比其他两种方案产生基准信号的方式略高,但是由于实时时钟日历芯片具有集成度高、走时准确、自动日历及闰年调整并集成有闹钟功能,这样使设计变得非常的简单,故在设计中采用方案3。
1.3.2应用系统结构设计
根据第1.1节对万年历挂钟的功能要求和第1.3.1小节对选定的方案设计,设计出如图1-1所示的控制系统结构。
图1-1万年历挂钟系统结构框图
1.3.3设备选型
本设计采用Atmel公司的高性能低功耗的AVR单片机AT90S8535作为控制系统的核心。
按照图1-1所确定的系统结构,选择合适的功能部件,以完成完整的系统控制电路设计。
控制系统需要选择实时时钟日历芯片、温度传感器单元、键盘和显示单元三部分。
表1-2是万年历挂钟设计具体的设备选型表。
表1-2设备选型表
器件编号
器件名称
型号
基本参数
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.3.4控制面板设计
控制面板即万年历挂钟外形图。
如图1-2所示。
图1-2万年历挂钟控制面板
在万年历挂钟的控制面板上设置有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分”将关闭闹铃功能。
这时取消闹铃功能的一种方法。
第二章硬件电路设计
万年历挂钟的硬件设计电路如图所示(见附录1)。
下面对各部分分别予以说明。
2.1AT90S8535单片机的特点
AT90S8535单片机是AT90系列AVR单片机中内容接口丰富、功能齐全、性价比较高的产品。
它具有如下特点:
1.AVRRISC结构
1)AVR高性能、低功耗RISC结构
2)118条指令构成的精简指令集,大多数为单指令周期
3)32个8位通用寄存器
4)工作在8MHz时具有8MIPS的性能
2.数据和非易失性程序存储器
1)8KB的在线可编程FLASH存储器,可擦写1000次以上
2)512B的SRAM
3)512B在线可编程EEPROM。
可擦写100000次
4)程序加密位
3.外围器件特点
1)两个可预分频的8位定时/计数器(T/C0、T/C2),其中T/C2具有输出比较和PWM功能
2)一个可预分频的16位定时/计数器(TC1),TC1具有输入捕获、输出比较和PWM功能
3)片内模拟比较器
4)可编程的看门狗定时器
5)8通道10位ADC
6)2通道10位和1通道8位PWM脉宽调制输出,可作D/A转换器
7)SPI同步接口
8)全双工UART
4.MCU特点
1)上电复位电路
2)具有计数功能、有独立振荡器的实时时钟RTC
3)低功耗空闲省电和掉电模式
4)16种中断源,每种中断源具有一个独立的中断向量作为相应的中断入口地址
5.4MHz3V20℃条件下的功耗(AT90S8535)
1)工作模式:
6.4MA
2)空闲模式:
1.9MA
3)掉电模式:
<1
6.I/O接口和封装
1)32个可编程的I/O脚,每个脚都可以指定工作模式
2)40脚PDIP/PLCC/TQFP封装
7.工作电压和时钟
1)4.0V~6.0V
2)0~8MHz
2.2实时时钟电路设计
万年历挂钟采用深圳威帆公司()生产的支持两线式串行接口、带温度补偿的高精度实时时钟日历芯片SD2303,它与AT90S8535单片机的连接如图2-1所示。
2.2.1实时时钟芯片SD2303简介
SD2303是深圳威帆公司一种具有内置晶振、支持两线串行接口的高精度实时时钟芯片。
该系列芯片可保证时钟精度为±5ppm(在25±1℃下),即年误差小于2.5分钟;该芯片内置时钟精度调整功能,可以在很宽的范围内校正时钟的频率偏差,能以最小分辨率3.052ppm来进行校正,通过与温度传感器的结合可以设定适应温度变化的调整值,实现在宽温范围内高精度的计时功能;内置电池、串行NVSRAM,其中内置的一次性电池可保证在外部掉电情况下时钟使用寿命超过5年,内置串行NVSRAM为非易失性SRAM,擦写次数可达100亿次。
该系列芯片可满足对实时时钟芯片的各种需要,是高精度实时时钟的理想选择。
SD2303具有如下特点:
1)低功耗:
典型值0.5
(VDD=3.0V)。
2)工作电压为1.8~5.5V,工作温度为-40~85℃.
3)年、月、日、星期、时、分、秒BCD码输入输出,并可以通过独立的地址访问各时间寄存器。
4)自动日历到2099年(包括闰年自动换算功能)。
5)可设定并自动重置的两路定时闹钟功能。
6)周期性终端脉冲输出:
2Hz、1Hz、每分、小时、月输出可选择不同波形的中断脉冲。
7)可控的32768Hz方波信号输出。
8)内置时钟精度数字调整功能。
9)30秒时间调整功能。
10)内部晶振停振检测功能:
保证时钟的有效性。
11)内置总线1秒自动释放功能,保证了时钟数据的有效性及可靠性。
12)内置电源稳压,内部计时电压可低至1.2V。
13)内置晶振,出厂前已对时钟进行校准,保证精度±5ppm,即时钟年误差小于2.5分钟。
14)工业级型号为SD2303API,封装形式为8-DIP封装。
图2-1实时时钟电路
2.2.2SD2303的引脚设置
SD2303实时时钟日历芯片的引脚配置如图2-2所示。
图2-2SD2303的引脚配置
表2-1给出了SD2303的引脚功能说明。
表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.2.3SD2303的内部存储器
SD2303将时间数据和控制命令存储在不同地址的寄存器内,具体的地址分配如表2-2所示。
表2-2SD2303寄存器列表
内部地址
描述
功能
0x00
秒寄存器
以BCD码形式计数与存储秒
0x01
分寄存器
以BCD码形式计数与存储分
0x02
时寄存器
以BCD码形式计数与存储时
0x03
周寄存器
以BCD码形式计数与存储周
0x04
天寄存器
以BCD码形式计数与存储天
0x05
月寄存器
以BCD码形式计数与存储月
0x06
年寄存器
以BCD码形式计数与存储年
0x07
时间调整
晶振参数修正及外部晶振选择控制
0x08
分定时A
存储定时器A的分数据
0x09
时定时A
存储定时器A的时数据
0x0a
天定时A
存储定时器A的天数据
0x0b
分定时B
存储定时器B的分数据
0x0c
时定时B
存储定时器B的时数据
0x0d
天定时B
存储定时器B的天数据
0x0e
控制寄存器1
闹铃使能、中断输出选择及周期性中断选择
0x0f
控制寄存器2
时间显示格式选择、中断与报时标志及停振检测
1)秒寄存器(内部地址0x00)。
D7
D6
D5
D4
D3
D2
D1
D0
操作
-
S40
S20
S10
S8
S4
S2
S1
写
0
S40
S20
S10
S8
S4
S2
S1
读
0
-
-
-
-
-
-
-
默认
秒计数范围为0x00~0x59(BCD码格式,下同),当计数从0x59变为0x00时,分寄存器值加1.默认操作是指当XSTP位为1(上电、掉电或者停振后再起振)时,执行读操作,下同。
2)分寄存器(内部地址0x01)。
D7
D6
D5
D4
D3
D2
D1
D0
操作
-
M40
M20
M10
M8
M4
M2
M1
写
0
M40
M20
M10
M8
M4
M2
M1
读
0
-
-
-
-
-
-
-
默认
分计数范围为0x00~0x59,当计数从0x59变为0x00时,时寄存器值加1。
3)时寄存器(内部地址0x02)。
D7
D6
D5
D4
D3
D2
D1
D0
操作
-
-
H20/P_A
H10
H8
H4
H2
H1
写
-
0
H20/P_A
H10
H8
H4
H2
H1
读
0
0
-
-
-
-
-
-
默认
时计数范围为0x01~0x12(12小时制)或0x00~0x23(24小时制)。
当计数从11PM变成12AM时(12小时制)或0x23变成0x00(24小时制)时,天寄存器值加1。
4)周寄存器(内部地址0x03)。
D7
D6
D5
D4
D3
D2
D1
D0
操作
-
-
-
-
-
W4
W2
W1
写
0
0
0
0
0
W4
W2
W1
读
0
0
0
0
0
-
-
-
默认
周计数范围为0x00~0x06,其中0x01~0x06表示星期1至星期6,0x00表示星期天。
当天计数加1时,星期计数也加1。
5)天寄存器(内部地址0x04)。
D7
D6
D5
D4
D3
D2
D1
D0
操作
-
-
D20
D10
D8
D4
D2
D1
写
0
0
D20
D10
D8
D4
D2
D1
读
0
0
-
-
-
-
-
-
默认
天计数范围为:
0x01~0x31(一月、三月、五月、七月、八月、十月、十二月)
0x01~0x30(四月、六月、九月、十一月)
0x01~0x29(闰年二月)
0x01~0x28(平年二月)
6)月寄存器(内部地址0x05)。
D7
D6
D5
D4
D3
D2
D1
D0
操作
-
-
-
MO10
MO8
MO4
MO2
MO1
写
0
0
0
MO10
MO8
MO4
MO2
MO1
读
0
0
0
-
-
-
-
-
默认
月计数范围为0x01~0x12,当计数从0x12变成0x01时,年寄存器值加1。
7)年寄存器(内部地址0x06)。
D7
D6
D5
D4
D3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 万年历