基于单片机的万年历设计毕业论文设计 - 图文

更新时间:2024-05-02 19:12:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

XXX学院

毕 业 论 文

课题名称: 基于单片机的万年历设计

作 者: XXX

学 号: XXX

系 别:___ 电子工程系

专 业:__ 电子信息工程技术_

1

指导教师:_______ XXX XX

XX

2 年XX

月日

摘 要

本设计以单片机芯片STC89C52为中心,通过外挂接DS12C887作为

时钟芯片,为系统实时的更新时间、日历等。DS18B20作为温度传感器芯片,用于实时采集当前所处的环境温度。1602液晶作为实时显示器件,显示单片机采集的所有数据。当在公共场所时,为了方便调节时间,外加红外遥控和键盘两种方式调时功能。于此,构成了一个实时时钟万年历系统。最后,通过软件对其原理图进行绘制和程序的编写,并且调试运行。

关键词:单片机芯片STC89C52;DS12C887芯片;DS18B20温度传感器;

LCD1602液晶;红外遥控

Abstract

The design on the single chip computer chip STC89C52 as the center, through the plugin meet DS12C887 as the clock chip, real-time updates for the system time, calendar, etc. As the temperature sensor DS18B20 chip to the real-time data acquisition at this temperature environment. 1602 LCD as real-time display device, shows all of the data collection single chip microcomputer. When in a public place, in order to facilitate the regulating time,

plus infrared remote control and keyboard two ways when the function. In this, and form a real time clock calendar system. Finally, through the software to its principle chart draw and the writing of the program, and debug operation.

Keywords: single chip microcomputer chip STC89C52; DS12C887 chip ;DS18B20 temperature sensor; LCD1602 liquid crystal ;infrared remote control

目 录

1 引言 ··································································································

1.1课题的来源和意义....................................................................................................

1.2系统总体方案介绍....................................................................................................

2 方案论证 ···························································································

2.1 时钟芯片的选择 ··············································································

2.2显示器件的选择 ···············································································

3 单元电路设计 ·····················································································

3.1 DS12C887时钟电路设计 ···································································

3.1.1 DS12C887时钟芯片概述····························································

3.1.2 时钟精度 ···············································································

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

3.1.4 控制寄存器 ············································································

3.1.5 基本原理 ···············································································

3.1.6典型工作电路 ········································································· 1

3.1.7工作时序 ··············································································· 1

3.1.8主要程序分析 ········································································· 1

3.2 1602液晶显示电路设计 ···································································· 1

3.2.1 1602液晶概述 ········································································ 1

3.2.2 1602液晶基本原理 ·································································· 1

3.2.3 1602液晶工作时序 ·································································· 1

3.2.4 指令说明 ·············································································· 1

3.2.5 1602液晶主要程序分析 ···························································· 1

3.3红外遥控电路设计 ··········································································· 1

3.3.1红外发射系统 ········································································· 1

3.3.2红外接收系统 ········································································· 2

3.3.3主要程序分析 ········································································· 2

3.4 DS18B20温度传感器电路设计 ··························································· 2

3.4.1 DS18B20温度传感器概述 ························································· 2

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

3.4.3 DS18B20温度传感器基本原理 ··················································· 2

3.4.4 DS18B20温度传感器配置寄存器 ················································ 2

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

3.4.6 DS18B20温度传感器工作时序 ··················································· 2

3.4.7 控制器对DS18B20操作流程 ····················································· 2

3.4.8 DS18B20芯片内部ROM操作指令 ············································· 2

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

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

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

3.5键盘调时电路设计 ··········································································· 3

4 总体设计与制作 ················································································· 3

4.1总体原理图绘制 ·············································································· 3

4.2 软件开发与调试 ·············································································· 3

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

4.2.2 系统调试 ·············································································· 3

4.3 搭建系统实物 ················································································· 3

4.4系统实物展示 ················································································· 3

5 收获与体会 ······················································································· 3

6 结论································································································· 3

附录A ·································································································· 3

附录B ·································································································· 3

附录C ·································································································· 4

参考文献 ·································································································· 5

致谢 ········································································································ 5

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),其并不直接使用,而是经过分频后为系统所用,振荡脉冲在片内通过一个时钟发生器二分频后才作为系统的时钟信号,时钟脉冲信号的频率为f2;时钟脉冲六分频后为机器周期,由此可见,一个机器周期的频率为f12,那么一个机器周期单片机执行一条指令,则每执行一条指令定时计数器数值加1;因此,利用单片机内部定时计数器可以实现秒脉冲信号,然后通过编程来模拟时钟。这种方案的好处是外围元器件少,电路简单清晰,设计方便易于实现,出问题的故障几率小。但是这种方案需由大量的程序来模拟时、分、秒、

年、月、日等的更新,编程相对来说较为复杂。另外由于单片机内部时钟产生的秒脉冲容易受到温度漂移的影响和执行复杂程序时的延时的影响,而使得定时计数器会产生不定的误差,即使设计时间误差补偿程序也很难实现提供准确的时间的功能。并且这种设计还有一个最大的缺点就是如果单片机断电,时间就会停止,再次上电后时间又会回到初始设定的时间,又要对其调时,比较麻烦。

方案二:采用美国DALLAS公司生产制造的DS1302实时时钟芯片作为系统时钟芯片。DS1302是由美国DALLAS公司推出的涓流充电时钟芯片,内含有一个实时时钟日历和31字节静态RAM,通过简单的串行接口与单片机进行通信。实时时钟日历电路提供秒、分、时、日、日期、月、年的信息,每月的天数和闰年的天数可自动调整,时钟操作可通过AMPM 指示决定采用24或12小时格式。DS1302与单片机间能简单地采用同步串行的方式进行通信,仅需用到三个口线:(1)RES(复位),(2)IO(数据线),(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数码管显得较为麻烦,软件设计较为复杂,电路设计较为复杂,占用单片机IO口较多,且耗能较强,显示位数有限,不利于电路的扩展。

比较以上两种方案可以看出,第一种方案较为适合。无论从现实灵活方面、耗能等方面。因此本设计采用第一种方案。

3.单元电路设计

3.1 DS12C887时钟电路设计 3.1.1 DS12C887时钟芯片概述

DS12C887是美国DALLS公司生产的一款实时时钟芯片,该器件提供RTC∕日历、定时闹钟、三个可屏蔽的中断和一个通用的中断输出、可编程方波以及114字节电池备份的静态RAM。少于31天的月份,月末可自动调整,其中包括闰年补偿。该器件还可以工作于24小时或带AM∕PM指示的12小时格式。一个精密的温度补偿电路用来监视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:59 AM调整到3:00:00 AM。十月的最后一个星期天,时间从1:59:59 AM调整为1:00:00 AM。如果DSE使能,内部逻辑会在午夜时判断第一或最后一个星期天的条件,如果判断时DSE位没有置位,夏时令功能不会起作用,当DSE清0时,这些调整不会有效。该位不受DS12C887内部功能或RST的影响。

(2)第1位:2412小时选择位,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引脚有效。该位可通过读取寄存器C或RST信号清除。 (4)第6位:周期性中断标志(PF),该位为只读位,当分频器电路中所选的分支检测到一个边沿信号时该位置1。RS3-RS0设置周期频率。PF置1与PIE位的状态无关。PF与PIE位均为1时,IRQ信号有效并且IRQF置1。该位可通过读取寄存器C或RST信号清除。

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

PF=PIE=1; AF=AIE=1; UF=UIE=1;

每次IRQF位为1时,IRQ引脚会变低。该位可通过读取寄存器C或RST信号清除。 控制寄存器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)工作方式类似。在此信号的上升沿锁存数据。

()24脚(VCC):主电源的DC电源引脚。VCC在正常范围内时,可访问器件的所有功能,并且进行数据的读写。如果VCC低于Vpf,则禁

本文来源:https://www.bwwdw.com/article/z81g.html

Top