基于单片机的万年历设计Word文件下载.docx

上传人:b****6 文档编号:18716982 上传时间:2022-12-31 格式:DOCX 页数:57 大小:1.89MB
下载 相关 举报
基于单片机的万年历设计Word文件下载.docx_第1页
第1页 / 共57页
基于单片机的万年历设计Word文件下载.docx_第2页
第2页 / 共57页
基于单片机的万年历设计Word文件下载.docx_第3页
第3页 / 共57页
基于单片机的万年历设计Word文件下载.docx_第4页
第4页 / 共57页
基于单片机的万年历设计Word文件下载.docx_第5页
第5页 / 共57页
点击查看更多>>
下载资源
资源描述

基于单片机的万年历设计Word文件下载.docx

《基于单片机的万年历设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的万年历设计Word文件下载.docx(57页珍藏版)》请在冰豆网上搜索。

基于单片机的万年历设计Word文件下载.docx

Abstract

ThedesignonthesinglechipcomputerchipSTC89C52asthecenter,throughthepluginmeetDS12C887astheclockchip,real-timeupdatesforthesystemtime,calendar,etc.AsthetemperaturesensorDS18B20chiptothereal-timedataacquisitionatthistemperatureenvironment.1602LCDasreal-timedisplaydevice,showsallofthedatacollectionsinglechipmicrocomputer.Wheninapublicplace,inordertofacilitatetheregulatingtime,plusinfraredremotecontrolandkeyboardtwowayswhenthefunction.Inthis,andformarealtimeclockcalendarsystem.Finally,throughthesoftwaretoitsprinciplechartdrawandthewritingoftheprogram,anddebugoperation.

Keywords:

singlechipmicrocomputerchipSTC89C52;

DS12C887chip;

DS18B20temperaturesensor;

LCD1602liquidcrystal;

infraredremotecontrol

1引言1

1.1课题的来源和意义1

1.2系统总体方案介绍2

2方案论证2

2.1时钟芯片的选择2

2.2显示器件的选择4

3单元电路设计4

3.1DS12C887时钟电路设计4

3.1.1DS12C887时钟芯片概述4

3.1.2时钟精度5

3.1.3时钟、日历和闹钟单元5

3.1.4控制寄存器6

3.1.5基本原理8

3.1.6典型工作电路11

3.1.7工作时序11

3.1.8主要程序分析13

3.21602液晶显示电路设计14

3.2.11602液晶概述14

3.2.21602液晶基本原理15

3.2.31602液晶工作时序16

3.2.4指令说明17

3.2.51602液晶主要程序分析18

3.3红外遥控电路设计19

3.3.1红外发射系统19

3.3.2红外接收系统20

3.3.3主要程序分析21

3.4DS18B20温度传感器电路设计23

3.4.1DS18B20温度传感器概述23

3.4.2DS18B20温度传感器的主要特性23

3.4.3DS18B20温度传感器基本原理23

3.4.4DS18B20温度传感器配置寄存器23

3.4.5DS18B20温度传感器暂存器中温度数值的储存形式24

3.4.6DS18B20温度传感器工作时序25

3.4.7控制器对DS18B20操作流程26

3.4.8DS18B20芯片内部ROM操作指令27

3.4.9DS18B20温度传感器芯片内部存储器RAM操作指令27

3.4.10DS18B20温度传感器典型工作方式28

3.4.11温度传感器DS18B20主要程序分析28

3.5键盘调时电路设计31

4总体设计与制作31

4.1总体原理图绘制31

4.2软件开发与调试32

4.2.1使用Keil软件编写系统程序32

4.2.2系统调试33

4.3搭建系统实物34

4.4系统实物展示35

5收获与体会35

6结论36

附录A37

附录B38

附录C49

参考文献50

致谢51

1引言

电子是推动人类社会文明、进步与发展的巨大动力,随着电子产品的飞速发展,现已将人类带入了智能化的生活。

传统的机械表由于做工的高精细要求,造价的昂贵,材料的限制,时间指示精度的限制,使用寿命,以及其它方面的限制,已不能满足人们的需求。

另外从人们的日常生活到工厂的自动控制,从民用时钟到科学发展所需的时钟,现代人对时间的精度和观察时间的方便有了越来越多的需求。

人们要求随时随地都能快速准确的知道时间,并且要求时钟能够更直观、更可靠、价格更便宜。

这种要求催生了新型电子时钟的产生。

1.1课题的来源和意义

电子技术的飞速发展,微机已开始向社会的各个领域渗透,同时大规模集成电路获得高速发展,单片机的应用正在不断地走向深入,由传统的8位单片机发展到后来的16位,诸如AVR系列、PIC系列、430系列等,再到如今的高级单片机ARM体系下配合操作系统实现智能化,这无疑体现了单片机在我们生活中已占据了核心的地位。

本设计核心控制芯片采用了STC89C52微控制芯片,该芯片具有功能强、体积小、功耗低、价格便宜,工作可靠,使用方便等优点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器、仪表、数据采集、军工产品以及家用电器等各个领域。

另外,单片机的重要运用意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。

从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件的方法来实现了,这种软件替代硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。

单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现的时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。

数字钟是采用数字电路实现对时、分、秒数字显示的计时装置,广泛运用于个人家庭、车站、码头、办公室等公共场所,成为了人们日常生活中必不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛运用,使得数字钟的精度,远远超过老式钟表。

钟表的数字化给人们生活带来了极大的方便,而且大大地扩展了钟表原先的报警功能,诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动开关路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启动等。

所有这些,都是以时钟为基础的。

因此,研究数字时钟具有非常的现实意义。

1.2系统总体方案介绍

本设计以核心控制芯片AT89C52为中心,外挂接美国DALLAS公司生产的DS12C887实时时钟芯片和DS18B20温度传感器装置,实时时钟为系统提供实时的时间。

温度传感器为系统实时反馈当前环境下的温度。

在大型公共场所,当不方便使用调时键盘直接调时时,红外遥控装置用于方便远距离调时。

1602液晶实时的为MCU处理的数据进行显示。

系统总框图如图1.2

1.2系统总框图

2方案论证

2.1时钟芯片的选择

方案一:

采用单片机本身作为时钟控制芯片来模拟时钟时间。

单片机在工作时,需要外接一个石英晶体振荡器来为单片机提供一个脉冲信号,振荡电路产生的振荡脉冲的频率为f(也可称为主频OSC),其并不直接使用,而是经过分频后为系统所用,振荡脉冲在片内通过一个时钟发生器二分频后才作为系统的时钟信号,时钟脉冲信号的频率为f/2;

时钟脉冲六分频后为机器周期,由此可见,一个机器周期的频率为f/12,那么一个机器周期单片机执行一条指令,则每执行一条指令定时/计数器数值加1;

因此,利用单片机内部定时/计数器可以实现秒脉冲信号,然后通过编程来模拟时钟。

这种方案的好处是外围元器件少,电路简单清晰,设计方便易于实现,出问题的故障几率小。

但是这种方案需由大量的程序来模拟时、分、秒、年、月、日等的更新,编程相对来说较为复杂。

另外由于单片机内部时钟产生的秒脉冲容易受到温度漂移的影响和执行复杂程序时的延时的影响,而使得定时/计数器会产生不定的误差,即使设计时间误差补偿程序也很难实现提供准确的时间的功能。

并且这种设计还有一个最大的缺点就是如果单片机断电,时间就会停止,再次上电后时间又会回到初始设定的时间,又要对其调时,比较麻烦。

方案二:

采用美国DALLAS公司生产制造的DS1302实时时钟芯片作为系统时钟芯片。

DS1302是由美国DALLAS公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31字节静态RAM,通过简单的串行接口与单片机进行通信。

实时时钟/日历电路提供秒、分、时、日、日期、月、年的信息,每月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM指示决定采用24或12小时格式。

DS1302与单片机间能简单地采用同步串行的方式进行通信,仅需用到三个口线:

(1)RES(复位),

(2)I/O(数据线),(3)SCLK(串行时钟),从而解决了由并行时钟芯片使得电路复杂的问题。

时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信,DS1302工作时功耗很低,保持数据和时钟信息时功率小于1mW。

但是,DS1302时钟芯片没有内置电池,在电路掉电的情况下不能继续计时,而且在上电的时候需要校准时间。

其内部也没有振荡器,需要外接时钟震荡器方可使用,从而使得外围电路较为复杂。

方案三:

采用美国DALLAS公司生产制造的DS12C887实时时钟芯片作为系统时钟芯片。

DS12C887是美国DALLS公司生产的一款实时时钟芯片,该器件提供RTC∕日历、定时闹钟、三个可屏蔽的中断和一个通用的中断输出、可编程方波以及114字节电池备份的静态RAM。

少于31天的月份,月末可自动调整,其中包括闰年补偿。

该器件还可以工作于24小时或带AM∕PM指示的12小时格式。

一个精密的温度补偿电路用来监视VCC的状态,一旦主电源故障,或断电,该器件可以自动切换到内部锂电池供电,保证了时钟的正常工作,不至于使时间出乱。

该器件支持Intel和Motorola两种总线模式,内部集成了石英晶体震荡器和涓流充电的锂离子电池,极大的减少了外围电路,且使用起来方便。

因此在嵌入式、电表、安全系统、网络集线器、网桥、路由器等等方面得到了广泛的运用。

比较以上三种方案可以看出,第三种方案更加准确而外围硬件电路设计也相对简单,软件设计也相对简洁,因此决定选择第三种方案。

2.2显示器件的选择

采用由长沙太阳人电子有限公司设计生产制造的LCD液晶。

该器件重量轻、体积小、功耗低(约10-15Mw)、显示内容丰富、指令功能强(可组合成各种输入、显示、移位方式以满足不同的设计需求)、接口简单方便(可与8位处理器或微控制器相连)、工作温度宽(0-50℃)、可靠性高(寿命为50000小时(25℃时))等优点;

该器件在显示上更加灵活,而且改变显示时只要改变显示程序就可以,不用改变硬件电路的设计,易于电路功能的扩展。

但是唯一的缺点是要是显示内容较少时,价格略显得昂贵些。

采用普通的8位LED数码管作为显示器件。

该器件显示较为明显清晰反应速度较快,价格便宜,在显示位数较少时性价比较高。

但是,如果显示内容较多时,LED数码管显得较为麻烦,软件设计较为复杂,电路设计较为复杂,占用单片机I/O口较多,且耗能较强,显示位数有限,不利于电路的扩展。

比较以上两种方案可以看出,第一种方案较为适合。

无论从现实灵活方面、耗能等方面。

因此本设计采用第一种方案。

3.单元电路设计

3.1DS12C887时钟电路设计

3.1.1DS12C887时钟芯片概述

一个精密的温度补偿电路用来监视VCC的状态,一旦主电源故障,或断电,该器件可以自动切换到内部锂电池供电,保证了时钟的正常工作(在没有VCC的+25℃环境下,电池容量可为振荡器和寄存器供电长达五年之久),不至于使时间出乱。

该器件支持Intel和Motorola两种总线模式,内部集成了石英晶体震荡器和涓流充电的锂离子电池,极大的减少了外围电路。

3.1.2.时钟精度

时钟精度依赖于石英晶体精度和振荡器电路容性负载与石英晶体震荡容性负载之间的匹配度,温度变化所引起的石英晶体频率漂移会导致额外的误差,耦合到振荡器电路中的外部电路噪声会使时钟速度加快,本时钟出厂时经过校准,在+25℃环境下运行每月误差为±

1分钟。

3.1.3时钟、日历和闹钟单元

时钟和日历信息可以通过读取相应寄存器字节获得,通过写相应的寄存器字节对时钟进行初始化,存储时间、日历和闹钟的10个字节内容可以是二进制格式如图3.1.1(a),也可以是BCD码格式如图3.1.1(b),星期寄存器在午夜加1,从1递增到7,夏时令功能用到了星期寄存器,因此1被定义为星期天,少于30天的月份,月末可自动调整,其中包括闰年补偿。

在写内部时钟、日历和闹钟寄存器前,须将寄存器B的SET位设为逻辑1,以防止意外的读写操作引起时钟的更新,除了所选的格式写入10个字节的时钟、日历和闹钟寄存器外,寄存器B的数据模式位(DM)必须置为适当的逻辑值。

所有10个时钟、日历和闹钟字节必须使用相同的数据模式,写入数据模式后寄存器B的SET位应该清0,以允许RTC更新时钟和日历数据,一旦初始化完成,RTC将使用所选的模式更新所有的数据。

将闹钟的时间正确写入时、分、秒闹钟单元,且闹钟使能位设为高,则每天在指定的时间都会触发闹钟中断。

在此模式中,闹钟寄存器和相应的时钟寄存器“0”位必须总是写入0.

3.1.1图(a)

3.1.1图(b)

3.1.4.控制寄存器

DS12C887有4个控制寄存器,在任何时间都可以进行访问,即使处于更新周期。

控制寄存器A:

(1)第0位到3位:

为速率选择器,这四个速率选择位用来选择15级分频器的13种分频之一或禁止分频器输出。

(2)第4位到6位:

用来启动或关闭振荡器,并复位计时链。

010是唯一打开振荡器并允许RTC计时的位组合形式,11×

组合使能振荡器,但将计时链保持在复位状态,010写入DV0、DV1、DV2后500ms进行下一次更新。

(3)第7位:

该位是可监视的状态标志位,改位为1时,立即进行更新传输,该位为0时在至少244uS的时间内不会进行更新传输。

该位为0时RAM中的时钟、日历和闹钟信息都可以访问,UIP位是只读的,而且不受RST信号影响,将寄存器B的SET位置1时,禁止任何更新传输并且清除UIP位。

控制寄存器B:

(1)第0位:

夏时令使能位,DSE位是可读/写位,置1时产生两次夏时令调整,四月的第一个星期天,时间从1:

59:

59AM调整到3:

00:

00AM。

十月的最后一个星期天,时间从1:

59AM调整为1:

如果DSE使能,内部逻辑会在午夜时判断第一/或最后一个星期天的条件,如果判断时DSE位没有置位,夏时令功能不会起作用,当DSE清0时,这些调整不会有效。

该位不受DS12C887内部功能或RST的影响。

(2)第1位:

24/12小时选择位,1代表24小时模式,0代表12小时模式。

该位是可读/写位,不受DS12C887内部功能或RST影响。

(3)第2位:

数据模式(DM),该位表示时钟和日立信息格式位二进制还是BCD码。

DM位通过程序设置为适当格式,如果需要可以读出。

该位不受任何DS12C887内部功能或RST的影响。

DM=1时代表二进制格式,DM=0时BCD码格式。

(4)第3位:

方波使能(SQWE),该位置1时,SQW引脚输出一个方波信号,频率由寄存器A中的速率选择位RS3-RS0设定,SQWE位清0时,SQW引脚保持低电平。

SQWE位是可读/写位,能由RST信号清除。

禁止时SQWE为低,当VCC低于Vpf时,变为高阻状态,RST信号将SQWE位清0。

(5)第4位:

更新结束中断使能(UIE),UIE位是可读/写位,允许寄存器C中的更新结束中断标志(UF)驱动产生IRQ信号。

RST引脚变低或SET位变高将清除UIE位,UIE位不受任何DS12C887内部功能的影响,但会由RST信号清0.

(6)第5位:

闹钟使能(AIE),AIE位是可读/写位,置为1时,允许寄存器C中的闹钟中断标志(AF)位驱动产生IRQ信号,在三个时钟字节与三个闹钟字节相等的每一时刻,都会产生一个闹钟中断,如果AIE位清0,AF位并不触法IRQ信号。

AIE不受任何DS12C887内部功能的影响,但会由RST信号清0。

(7)第6位:

周期性中断使能(PIE),PIE位为可读/写位,允许寄存器C中的周期性中断标志(PF)位将IRQ引脚驱动为低电平PIE位置1时,以寄存器A中RE3-RS0位指定的速率将IRQ引脚驱动为低电平,并产生周期性中断。

PIE位清0时,阻止周期性中断驱动IRQ输出,但PF位仍以该速率周期性置位。

PIE不受任何DS12C887内部功能的影响,但会由RST信号清0。

(8)第7位:

SET,SET位清0时,更新传输功能正常运行,计数每秒加1,SET位写1时,禁止任何更新传输,程序可对时钟和日历字节进行初始化,而不会再初始化过程中发生数据更新。

SET位为可读/写位,不受RST信号或DS12C887的内部功能影响。

控制寄存器C:

(1)第0位到第3位:

未使用,这些位读取值为0,但不能被写入。

(2)第4位:

更新结束中断标志位(UF),每次更新结束后,UF位都将置1。

如果UF位置1,则UF位的1状态会使IRQF位置1,并且使IRQ引脚有效。

该位可通过读取寄存器C或RST信号清除。

(3)第5位:

闹钟中断标志位(AF),AF位为1时,表明此时当前时间和闹钟时间相匹配。

如果ALE位也为1,则UF位的1状态会使IRQF位置1,并且使IRQ引脚有效。

(4)第6位:

周期性中断标志(PF),该位为只读位,当分频器电路中所选的分支检测到一个边沿信号时该位置1。

RS3-RS0设置周期频率。

PF置1与PIE位的状态无关。

PF与PIE位均为1时,IRQ信号有效并且IRQF置1。

(5)第7位:

中断请求标志位(IRQF),当下列任何一个条件成立时,此位置1:

PF=PIE=1;

AF=AIE=1;

UF=UIE=1;

每次IRQF位为1时,IRQ引脚会变低。

控制寄存器D:

(1)第0位到6位:

这些位未使用。

这些位读取时为0,但不能被写入。

(2)第7位:

RAM和时钟有效(VRT),该位不能写入,而且读取时应该总为1,如果出现0,则说明内部锂电池电能耗尽,RTC和RAM的数据均不可靠。

该位不受RST信号影响。

3.1.5.基本原理

(1)实物图如下图3.1.5(a),原理图如下图3.1.5(b)

实物图3.1.5(a)原理图3.1.5(b)

(2)各引脚的功能和作用:

(a)1脚(MOT):

Motorola或Intel总线时序选择端。

利用此引脚选择两种总线类型中的一种,连接到Vcc时选择Motorola总线时序,连接GND或悬空时选择Intel总线时序。

该引脚内部有一个下拉电阻。

(b)2和3脚(NC):

空脚,不用连接。

(c)4脚到11脚(AD):

双向地址/数据复用总线。

地址于总线周期的开始发送到总线上,并由AS信号的下降沿锁存到DS12C887内部。

所写的数据由DS信号的下降沿(Motorola时序),或RW信号的上升沿(Intel时序)锁存。

读周期中,DS12C887于DS信号后期(Motorola时序中的DS和RW均为高,Intel时序中DS位低,RW为高)将数据发送到总线上。

读周期结束后,总线恢复高阻状态,同时DS在Motorola时序中变低,在Intel时序中变高。

(d)12脚(GND):

地,参考电压为0V;

(e)13脚(CS):

片选信号输入。

片选信号低电平有效,在访问DS12C887的总线周期内必须保持低电平。

在Motorola时序中DS和AS信号工作期间,Intel时序中DS和RW信号工作期间,CS必须保持有效。

在CS信号无效的情况下,总线操作将锁存地址,但不能访问芯片。

当Vcc低于Vpf时,DS12C887内部通过禁止CS输入来拒绝访问。

此举旨在断电时保护RTC数据和RAM数据。

(f)14脚(AS):

地址选通输入。

由低变高的地址选通脉冲用来分离总线的信号。

在AS的下降沿,将地址锁存到DS12C887内部,无论CS信号是否有效,AS的下一个上升沿都将清除地址。

地址选通信号必须先于每个读或写访问。

如果在CS信号无效的情况下执行了读或写操作,则必须在CS信号有效时且在读写访问前,重新发送一次地址选通信号。

(g)15脚(RW):

读/写输入。

RW引脚有两种操作模式。

在MOT引脚接Vcc的MOtorola的时序中,RW电平用来指示当前周期是读还是写。

DS位高时,RW为高电平时表示读周期,RW为低电平则表示写周期。

在MOT引脚接GND的的Intel时序中,RW为低电平有效。

在此模式下,RW引脚与普通的RAM的写使能信号(WE)工作方式类似。

在此信号的上升沿锁存数据。

(h)16脚(NC):

(i)17脚(DS):

数据选通或读输入。

DS引脚根据MOT引脚电平有两种模式。

MOT引脚接Vcc时,选择Motorola总线时序,在此模式下,总线周期的后期DS为正脉冲,称作数据选通脉冲。

在读周期中,DS表明DS12C887将要驱动双向总线。

在写周期中,DS信号的下降沿使DS12C887锁存所写的数据。

当MOT接GND时,选择Intel总线时序,DS表示读取DS12C887数据驱动总线的时间周期,此模式下,DS引脚与普通RAM的输出使能信号(OE)工作类似。

(j)18脚(RST):

复位输入。

低电平有效,该引脚对时钟、日历或RAM不起作用,上电时可将RST引脚首先保持低电平,以等待电源稳定下来。

保持低电平的时间可根据应用需要而定,但是,如果上电时使用RST信号,RST保持低电平的时间应当超过200ms,以保证控制DS12C887上电的内部定时器定时结束。

当RST为低电平,而且Vcc大于Vpf时,将产生以下操作:

A:

周期性中断使能(PIE)位清0

B:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 商业计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1