毕业设计(论文)家用电子万历设计与制作.doc

上传人:laozhun 文档编号:3982035 上传时间:2023-03-30 格式:DOC 页数:31 大小:983KB
返回 下载 相关 举报
毕业设计(论文)家用电子万历设计与制作.doc_第1页
第1页 / 共31页
毕业设计(论文)家用电子万历设计与制作.doc_第2页
第2页 / 共31页
毕业设计(论文)家用电子万历设计与制作.doc_第3页
第3页 / 共31页
毕业设计(论文)家用电子万历设计与制作.doc_第4页
第4页 / 共31页
毕业设计(论文)家用电子万历设计与制作.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《毕业设计(论文)家用电子万历设计与制作.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)家用电子万历设计与制作.doc(31页珍藏版)》请在三一办公上搜索。

1、泉 州 师 范 学 院 毕业论文(设计)题 目 家用电子万年历设计与制作 物信 学 院 电子信息科学与技术 专 业 07 级 1 班学生姓名 学 号 7 指导教师 职 称 助教 完成日期 2011年4月2日 教务处 制家用电子万年历设计与制作物信学院 电子信息科学与技术 070303027指导教师【摘 要】通过软硬件的结合,用单片机来控制整个系统的运行,单片机的程序用C语言来编写。实现显示年、月、日、星期、时、分、秒、闹铃、整点报时、显示温度等功能。此外本文介绍了系统的总体设计和各个功能模块以及系统原理。对家用电子万年历的未来提出自己的看法。【关键词】 STC89C52RC;DS1302;LC

2、D1602;DS18B20;家用电子万年历;单片机目录摘要3引言41.总体设计方案1.1 系统设计的基本要求41.2 系统设计方案41.2.1 单片机芯片的选择方案及论证41.2.2 时钟芯片的选择及论证41.2.3 显示模块的选择方案及论证51.2.4 按键的选择方案及论证51.2.5 温度传感器的选择方案及论证51.2.6 电压选择方案及论证51.2.7 电路设计最终方案决定52.系统硬件电路的设计2.1 电路设计结构方框图62.2 系统硬件概述62.3 主要单元电路的设计及元器件功能介绍62.31 主控制模块的设计62.32 DS1302时钟电路82.3 .3 DS18B20测温采集电路

3、102.3.4 LCD1602显示模块112.3.5 MC34063集成电路芯片器件112.4系统设计电路图123. 系统软件设计134.结果分析和误差检测135.设计总结14参考文献15附录一、电路PCB图16附录二、程序30 引言年历的发展见证了时代的变迁和科技的进步,它的存在给人们的生活带来了诸多的便利,逐渐成为了人们生活中不可少缺的家居用品。在日新月异的今天,家用电子产品迅速发展,家用电子万年历属于小型智能家用电子产品,是最具代表性的计时产品。它不再是书本形式的万年历。随着科技的发展,它逐渐受到人们的欢迎,单一的功能(显示时间)已不能满足市场和人们日常生活的需求,个性化、智能化、多功能

4、化是它们发展的趋势。本设计采用单片机控制来实现时钟日历的显示,具有实用、操作简单的特点。其应用广泛具有相当重要的现实意义,具有广阔的市场前景和实用价值。1.总体设计方案1.1系统设计的基本要求(1)具有显示年、月、日、星期、时、分、秒等功能(2)可用按键设置改变当前时间(3)具有整点报时功能(4)用LCD液晶显示时间(5)具有显示温度的功能(6)具有闹铃功能1.2系统设计方案1.2.1 单片机芯片的选择方案及论证 方案一:采用,它是拥有8位CMOS的微处理芯片,同时其功耗低、性能高。其主要特点有:可擦除1000次以上,数据保存10年等。 方案二:采用AT89C51单片机,其可用软件编程实现各种

5、算法和逻辑控制,能在3V的超低压工作,其主要特点有:体积小、功耗低,成本低等。但它不具备ISP在线编程技术。方案三:采用的是STC89C52芯片。与MCS-51单片机产品兼容,拥有8位CPU和在线系统可编程Flash,其主要特点有:功耗低、成本低、体积小、高速等。综上比较本次设计采用的是STC89C52芯片。STC89C52可以代替AT89C51,速度更快,功能更强,寿命更长。与FTC10F04单片机相比价格更低。其外型:拥有40个引脚,双列直插DIP-40。STC89C52还可以完成ISP在线编程功能,用伟福软件配带的STC-ISP V39软件可直接将编好的程序下载到STC89C52中,MC

6、U则可执行相应的功能,同时STC89C52芯片还可以反复的进行擦写,即使断电也不丢失。1.2.2时钟芯片的选择方案及论证:方案一:采用单片机来实现时钟,直接采用单片机定时计数器提供秒信号,使用程序实现秒、分、时、日、周、月、年计数。采用此种方案虽然可以节约成本,减少芯片的使用次数,但是,系统晶振误差、温漂、定时器重新装载时间 常数所带来的误差及中断响应时间的不确定,所以实现的时间误差较大。不采用此方案了。方案二:采用门电路搭建来实现时钟发生器,但其电路结构有些复杂,故障系数较大,不容易调试。方案三:采用DS1302时钟芯片来实现时钟,DS1302芯片是一种综合性能较好且价格相对便宜的串行接口时

7、钟芯片,它可以自动对时、分、秒、日、周、月、年进行计时,具有12个寄存器,而且它的功耗低、精度高、体积小、软件编程简单、成本低,其工作电压在2.5V5.5V范围内,位的RAM做为数据暂存区,最低工作电压2.5V时耗电小于300nA。综上比较此次设计采用了方案三用DS1302时钟芯片来实现时钟。1.2.3 显示模块的选择方案及论证 方案一:采用LED液晶显示屏,其功能强大、显示清晰多样、功耗低、低压、寿命长、精确度高、对外界环境要求低,对于显示数字还是合适的,但价格过于昂贵,接口线需要的也较多。 方案二:采用点阵式数码管,其由八行八列发光二极管组成,价格也相对叫高,用作显示数字上有些浪费,对显示

8、文字比较合适。 方案三:采用LCD1602液晶显示,其与LED液晶显示屏功能相差不多,同时其价格也相对便宜。具有功耗低、短小轻薄、无辐射、图像稳定等优点,分辨率高、图像效果好、抗干扰能力强等特点,而且其价格也还可以接受。 综上比较,本次设计采用LCD1602液晶显示。LCD1602能够同时显示32个字符(16列2行),1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:常用的符号、阿拉伯数字、英文字母的大小写、和日文假名等。1.2.4按键的选择方案及论证:方案一:采用矩阵式按键,矩阵式按键适用于按键数量较多的场合,其由列线和行线组成,按键位于行线

9、与列线的交叉点上。但本次设计需要的按键数量却不是很多,而且采用矩阵式扫描按键,在程序执行的过程中,需要一直调用按键扫描程序,这样将会浪费掉一些时间。方案二:采用独立式按键,独立式按键每个键单独占一个I/O口,通过检测输入线的电平状态可以较为容易判断出哪个按键有被按下,且其工作状态互不影响。独立式按键软件结构相对较为简单,电路配置灵活。此次电子万年历的制作,将空出较多的I/O口,且需要的按键不是很多,所以本次设计采用独立式按键。综上比较本次设计采用了方案二用独立式按键。1.2.5温度传感器的选择方案及论证:方案一:采用热敏电阻作为传感器,如LM35,同时利用热敏电阻的阻值会随温度的变化而变化的特

10、性,经小信号放大,采集分压值并进行A/D转换。此设计方案由此需用A/D转换电路,增加了硬件的成本而且热敏电阻的感温特性曲线并不是严格线性变化的,其会产生较大的测量误差。方案二:采用DS18B20数字式温度传感器,此类的传感器为数字式传感器而且仅仅只需要一条数据线进行数据传输,很容易于与单片机进行连接,可以除去A/D模块,使其硬件成本大幅降低,简化了系统的电路。另外,数字式温度传感器还具有测量范围广、测量精度高等等优点。综上比较本设计采用了方案二用数字式温度传感器DS18B20。1.2.6 电源选择方案及论证方案一:使用电池电源,电池携带方便,但其电压不稳且电量相对不足。方案二:自制稳压电源加与

11、电路板之上,但变压器体积大且重,加在电路板上后携带不方便。同时也加大了布板的难度。方案三:从手提电脑USB接口上取电,手提电脑便于携带,且电压稳定。 综上比较本次设计系统调试时采用方案三。1.2.7 电路设计最终方案决定综上各个模块的选择方案所述,此次设计的最终方案选定位: 采用STC89C52RC作为主控制系统; 数字式温度传感器DS18B20;DS1302提供时钟; 采用独立式按键;LCD1602液晶作为显示。2系统硬件电路的设计2.1电路设计结构方框图根据系统设计给出的功能基本要求,我们可以确认系统将由STC89C52主控制模块、DS1302时钟模块、DS18B20温度采集模块、LCD1

12、602显示模块、按键模块及蜂鸣器6部分组成,系统结构方框图如图2-1所示。STC89C52主控制模块LCD1602显示模块DS1302时钟模块 按键模块DS18B20温度采集模蜂鸣器 图2-1 系统结构方框图 2.2系统硬件概述本电路中使用STC89C52作为主控芯片;本身功耗低、性能高的DS1302作为时钟芯片,其内部拥有一个临时性存放数据的RAM寄存器,能够在掉电的情况下自动保存数据,可以产生时、分、秒、日、周、月、年。最重要的是,DS1302时钟芯片可以在很小电流的后备(2.5-5.5V)下继续工;DS18B20则用作温度的采集;LCD1602用作显示部分;采用独立式按键。2.3主要单元

13、电路的设计及元器件功能介绍2.3.1主控制模块的设计本次使用的STC89C52RC是一个有40引脚双列直插芯片, 与MCS-51单片机产品兼容,拥有8位CPU和在线系统可编程Flash存储器,使得STC89C52RC为众多嵌入式控制应用系统提供高灵活、有效的解决方案。其有四组I/O口P0,P1,P2,P3,每组条I/O线都能够独立地作为输出或输入,有1000次的擦写周期,可全静态操作,STC89C52RC其引脚图如下图2-2 STC89C52RC引脚图各引脚的功能如下:P0.0-P0.7:P0口既可作为地址数据复用总线使用,也可作为输入输出口使用。P1.0-P1.7:标准的IO口。P2.0-P

14、2.7:P2口内有上拉电阻,同样可作为地址总线使用,也可作为输入输出口使用。P3.0RxD:串口1数据接收端。P3.1TxD: 串口1数据发送端。P3.2INT0:外部中断0,下降沿中断。P3.3INT1: 外部中断1,下降沿中断。P3.4T0:定时器计数器0的外部输入。P3.5T1: 定时器计数器1的外部输入。P3.6WR:外部数据存储器写脉冲。P3.7RD: 外部数据存储器读脉冲。RST:复位脚。XTAL1:内部时钟电路反相放大器输入端,当直接使用外部时钟源时,为外部时钟源输入端。XTAL2:内部时钟电路反相放大器输出端,当直接使用外部时钟源时,XTAL2可浮空。P4.0-P4.1:标准的

15、IO口。VCC:电源正极。Gnd:接地。单片机的最小系统如下图2-3所示, XTAL1接微调电容和外部晶振的一端,在片内它是振荡器倒相放大器的输入,XTAL2接微调电容和外部晶振的另一端,在片内它是振荡器倒相放大器的输出。其第9引脚作为复位输入端,需要接上电容,电阻及开关后够上电复位电路, 18引脚与19引脚是接时钟电路,20引脚作为接地端,40引脚作为电源端。 图2-3单片机最小系统2.3.2 DS1302时钟电路(1)DS1302芯片的特性DS1302实时时钟,它可以对时、分、秒、日、周、月及带闰年补偿的年进行记时比较;它拥有最少引脚的串行I/O;它是简单的3线接口;可以用于高速数据暂存的

16、318位RAM;电压工作范围为2.5V5.5V;最小工作电压2.5V时消耗小于300nA;用于时钟或RAM数据读/写的单字节或多字节(脉冲方式)数据传送方式;拥有慢速充电(Vcc1)的能力。(2)DS1302芯片的介绍及工作原理DS1302实时时钟芯片包括31字节的静态RAM和日历/实时时钟。其经过微处理器通信与一个简单的串行接口。日历/实时时钟提供时、分、秒、日、周、月和年等等信息。其中包含闰年校正的功能,及对小于31天的月和月末日期将自动去进行调整。时钟的运行还可以采用 AM(上午)/PM(下午)的12h的格式或24h的格式。与单片机之间采用三线接口与CPU进行同步通信,其3个口线为:IO

17、数据线、RES复位、SCLK串行时钟。并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302它拥有有主电源/后备电源双电源引脚;Vcc1在单电源与电池供电的系统中提供低电源的电池备份;Vcc1在双电源系统中提供主电源。在次种运用方式之中,Vcc1将连接到备份电源,以便在没有主电源的情况下能保存数据和时间信息。DS1302需要由Vcc1或Vcc2中较大那个供电。当Vcc2大于Vcc1+0.2V时,Vcc2由DS1302供电;当Vcc2小于Vcc1时,DS1302则由Vcc1供电。DS1302的引脚及内部结构图如图2-4所示。引脚8接后备电源,DS1302的晶振将选用32.768kH

18、z。图2-4 DS1302的引脚及内部结构图 DS1302引脚功能表引脚号引脚名称功能1Vcc2主电源2、3X1,X2振荡器,外接32768HZ晶振4GND地5RST复位/片选线6I/O串行数据输入/输出端(双向)7SCLK串行数据输入端8Vcc1后备电源DS1302数据操作原理DS1302在任何数据传送时必须先初始化,把RST脚置为高电平,然后8位地址和命令字装入移位寄存器,数据在SCLK的上升沿被输入。无论是读周期还是写周期,开始8位指定40个寄存器中哪个被访问到。在开始8个时钟周期,把命令字节装入移位寄存器之后,另外的时钟周期在读操作时输出数据,在写操作时写入数据。时钟脉冲的个数在单字节

19、方式下为8加8,在多字节方式下为8加字节数,最大可达248字节数。如果在传送过程中置RST脚为低电平,则会终止本次数据传送,并且I/O引脚变为高阻态。上电运行时,在Vcc2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。温度传感器DS18B20与单片机的接口电路如下:图2-5 DS18B20与单片机的接口电路2.3.3 DS18B20测温采集电路(1)DS18B20的性能特点:1测量温度的范围为:-55+125;2可以通过数据线来供电,电压的范围为:3.05.5V; 3零待机功耗;4它无须外部器件,独特的单线接口仅需要一个端口引脚进行通信; 5多个DS18B

20、20可以通过并联在唯一的三线上面,来实现多点组网的功能;6它是用户可定义的非易失性温度报警设置;7它是拥有报警搜索命令识别并标志超过程序限定温度(温度报警条件)能力的器件;8负压特性:电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;9DS18B20可编程分辨率为912位,其对应的可分辨温度分别为0.5、0.25、0.125和0.0625。(2)DS18B20的测温原理DS18B20测温原理图图2-6 DS18B20测温原理图DS18B20的测温原理如图2-6所示,图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率

21、明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时

22、温度寄存器中的数值即为所测温度。图2中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。 2.3.4 LCD1602显示模块(1)LCD的特点:1.功耗低低压;2.无电磁辐射、安全;3.可以显示大量的信息;4.寿命长;5.结构为平板型。(2)LCD的工作原理LCD的结构是在两片平行的玻璃中放置液体的晶体,而其中也有许多水平和垂直的细小电线,通过有无通电来控制杆状水晶分子来改变方向,将光线折射出来产生画面。2.3.5 MC34063集成电路芯片器件该器件本身包含了DCD

23、C变换器所需要的主要功能的单片控制电路且价格便宜。它由具有温度自动补偿功能的基准电压发生器、比较器、占空比可控的振荡器,RS触发器和大电流输出开关电路等组成。该器件可用于升压变换器、降压变换器、反向器的控制核心,由它构成的DCDC变换器仅用少量的外部元器件。MC34063集成电路主要特性:(1)输入电压范围:2、540V (2)输出电压可调范围:12540V(3)输出电流可达:15A (4)工作频率:最高可达100kHz(5)低静态电流、短路电流限制、可实现升压或降压电源变换器。MC34063的基本结构、引脚图及功能图2-7 MC34063的基本结构及引脚图功能1脚:开关管T1集电极引出端;2

24、脚:开关管T1发射极引出端;3脚:定时电容ct接线端;调节ct可使工作频率在100HZ-100KHZ范围内变化;4脚:地端;5脚:电压比较器反相输入端,同时也是输出电压取样端;使用时应外接两个精度不低于1%的精密电阻;6脚:电源端;7脚:负载峰值电流(IPK)取样端;6,7脚之间电压超过300mv时,芯片将启动内部过流保护功能;8脚:驱动管T2集电极引出端。2.4.系统设计电路图图2-8 完整的电路图3.系统软件设计系统软件的主要流程图如下图3-1 时间调制程序流程图4.结果分析和误差检测把编好的程序用伟福软件配带的STC-ISP V39软件直接下载到STC89C52芯片中,接通电源打开开关后

25、,我发现在LCD1602上显示一切正常,年、月、日、星期、时、分、秒均可显示,切换为显示温度功能,也能较为准确的显示。设置整点报时亦能准时。所以此次设计制作还算是成功的。这时开始进行误差检测如下图北京时间显示的时间室内标准温度显示的温度2011-4-13 13:00:002011-4-13 13:00:0025.125.32011-4-14 13:00:002011-4-1412:59:5923.924.02011-4-1513:00:002011-4-1512:59:5825.625.82011-4-1613:00:002011-4-1612:59:5722.823.2通过上图可看出显示的时

26、间和温度与北京时间和室内标准温度之间存在一定的误差,这时我通过对相关软件程序进行调整在通过按键最终使误差减到最小。确保了本次设计的精确度。电路板显示时间: 5设计总结通过分析本次设计基本上是达到了设计要求,通过此次设计,让我对芯片的管脚功能有了比较充分的认识,虽然此次设计不是很难,但是经过几个星期的学习,我发现了许多自己的不足。同时在设计的过程中,多亏了同学们的帮忙,实验才会如此顺利。参考文献1曹巧媛,单片机原理及应用M,北京:电子工业出版社,1997.7.2 李飞光. 单片机课程设计实例指导M.北京航空航天大学出版社,2004.3张洪润,兰清华,单片机应用技术教程M,北京:清华大学出版社,1

27、997.11.4张毅刚,修林成,胡振江,MCS-51单片机应用设计M,哈尔滨:哈尔滨工业大学出版社,1990.8.5李华,MCS-51系列单片机实用接口技术M,北京:北京航空航天大学出版社,1993.8.6 童诗白,华成英.模拟电子技术基础(第三版)M.北京:高等教育出版社,2003,4,501-545.7 李广弟.单片机基础M.北京:北京航空航天大学出版社,1999,10.8 谭浩强.C程序设计(第二版)M.北京:清华大学出版社,2003,10.9 王建校等.51系列单片机及C51程序设计M.北京:科学出版社,2002,4.10 江思敏,姚鹏翼,胡荣.Protel电路设计教程M.北京:清华大

28、学出版社,2002,9.Household electronic calendar design and production Content believe college electronic information science and technology 070303027 Su Xian Mu Teachers Wu Zhong Long ta 【Abstract】 singleship controlling the whole, with the operation of the system, SCM program C language to write. Realize

29、 display year, month, day, week, when, minutes and seconds, alarm, integral point to announce, display temperature, and other functions. Furthermore this paper introduces the design of the whole system and each functional modules and system theory. The future of household electronic calendar propose

30、d own view. 【Key words】 STC89C52RC; DS1302; LCD1602; DS18B20; Household electronic calendar; microcontroller 附录1完整的PCB图附录2程序完整的源#include#include#define uchar unsigned char#define uint unsigned intuchar init7;uchar buffer17=0x00,0x00,0x12,0x04,0x05,0x1,0x09;/秒,分,时,日,月,星期,年uchar buffer27=0x00,0x00,0x0

31、0,0x00,0x00,0x00,0x00;/秒,分,时,日,月,星期,年uchar buffer37=20;uchar buffer47;uchar flag2,flag3,flag4;sbit DQ=P17;sbit RS=P10;sbit RW=P11;sbit E=P12;sbit RST=P15;sbit SCLK=P13;sbit IO=P14;sbit la_ba=P16 ; /喇叭sbit zuoyi=P27; /左移sbit youyi=P26; /右移sbit jia=P25; /+1sbit jian=P24; /-1sbit nao=P23; /闹钟显示sbit wen

32、=P22; /温度显示sbit set=P21; /设置sbit sure=P20; /确定uchar str1= DATE ;uchar str2= TIME ;uchar str3= ALRM ;uchar str4= SET ;uchar code str516= Temperature is ;uchar data str62 =0x00,0x00 ;uchar data str75 =0x00,0x00,0x00,0x00,0x00 ;uchar code str816 =0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04, 0x05,0x06,0x06,

33、0x07,0x08,0x08,0x09,0x09;uchar code str9= Hello Welcome! ;uchar code str10= Happy Every Day ;uchar code str11= The Alarm ;uchar code str12= Time Reach! ;/-按键模块开始-uint b(bit x) uint i; if(x=0) for(i=0;i0;i-) for(j=100;j0;j-);void longdelay(uchar s) /长延时 while(s-) delay(80); /-毫秒级延时程序-void delay1(int

34、ms) uchar y ; while(ms-) for(y = 0 ; y0;i-) SCLK=0; /写的时候低电平改变数据 if(inbyte&0x01) IO=1; else IO=0; SCLK=1; /写的时候高电平,把数据写入ds1302 _nop_(); inbyte=inbyte1; uchar DS1302_rbyte() /sclk的下跳沿读数据 uchar i,temp=0; IO=1; /设置为输入口 for(i=7;i0;i-) SCLK=0; if(IO=1) temp=temp|0x80; else temp=temp&0x7f; SCLK=1; /产生下跳沿

35、temp=temp1; return (temp);/-往ds1302的某个地址写入数据-void Write_DS1302(uchar cmd,uchar indata) RST=1; DS1302_wbyte(cmd); DS1302_wbyte(indata); RST=0; SCLK=0;/-读ds1302某地址的的数据-uchar Read_DS1302(uchar addr) uchar backdata; RST=1; DS1302_wbyte(addr); backdata=DS1302_rbyte();/先写地址,然后读数据 RST=0; SCLK=0; return (ba

36、ckdata);/-设置初始时间-void Set_DS1302(uchar addr,uchar *p,uchar n)/写入n个数据 Write_DS1302(0x8e,0x00);/写控制字,允许写操作 for(;n0;n-) Write_DS1302(addr,*p); p+; addr=addr+2; Write_DS1302(0x8e,0x80);/写保护,不允许写/- 读取当前时间-void Read_nowtime(uchar addr,uchar *p,uchar n)for(;n0;n-) *p=Read_DS1302(addr); p+; addr=addr+2;void init_DS1302() RST=0; SCLK=0; Write_

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号