毕业论文-语音报时电子钟设计.doc_第1页
毕业论文-语音报时电子钟设计.doc_第2页
毕业论文-语音报时电子钟设计.doc_第3页
毕业论文-语音报时电子钟设计.doc_第4页
毕业论文-语音报时电子钟设计.doc_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

苏州大学本科生毕业论文(设计) 目 录摘 要1Abstract2前 言3第一章 绪 论41.1 开发背景41.2 研究目的和意义41.3 语音报时电子钟的任务与目标4第二章 系统方案论证62.1 电路设计框图62.2 主控芯片选择62.3 按键控制方案选择72.4 时钟芯片选择72.5 温度采集芯片选择82.6 显示芯片选择82.7 语音芯片选择8第三章 系统硬件的设计103.1 基于STC89C52单片机的控制电路103.2 基于DS1302的时钟电路113.3 基于DS18B20的温度测量电路123.4 基于LCD1602的显示电路133.5 按键控制电路143.6 基于WT588D的语音播放电路153.7 系统硬件电路原理图163.8 系统电路仿真图17第四章 系统的软件设计184.1 主程序流程图的设计184.2 时间显示子程序流程图设计19第五章 测试与分析20第六章 总结与展望226.1 课题总结226.2 进一步开发的展望22参考文献致 谢附录ii i摘 要本文设计了一款个性化的语音报时电子钟。设计电路主要由语音模块、时钟模块、温度采集模块、显示模块和按键控制模块五个模块组成。系统以STC89C52单片机为控制核心,用DS1302时钟芯片来记录时间,它不光光可以记录几时几分几秒还可以记录几几年以及某年的几月几号,甚至星期几。基于题目基本要求,本系统对时间显示和语音报时进行了重点设计,先对要播报的整点进行录音,然后保存到电脑里,通过WT588D的应用软件和下载器将录的语音下载到语音芯片里,单片机读取时间后再读取语音芯片里的语音地址,从而整点报时。此外还增加了日期、温度显示和闹钟功能。这款电子时钟能够非常直观的显示出设计者想要显示的内容,还很方便的让人读取上面的信息,而且它的电路连线很简单,功能也具有多样化,最重要的是它的价格很便宜,是大多人能够接受的,这样它在市场上也会有很大的发展空间。关键词: 单片机,语音报时,液晶显示,时钟芯片 AbstractThis paper designsa personalizedspeechtime electronic clock. This design by voice module, clock module, temperature acquisition module, display module and key control module five modules. The system uses STC89C52 MCU as control core, using the clock chip DS1302 record time, It not onlycan recordwhen a few seconds can also recorda few yearsandafew months a fewyears,evenseveral weeks. Based onthebasic requirements ofthe subject,the systemhas carried on the keydesign of thetime displayandvoice broadcast, download the voicethrough the WT588Dvoice chip,chipread the timeafter thespeech segments of speechin the chipout.In addition also increaseddate, temperature displayand alarm clock function. The electronic clockcan displaydesignerswant to displaycontent is veryintuitive,also very easy tolet peopleread the information,and the circuitconnectionitis very simple,also has the function ofdiversification,the most important is that itis cheap, most peoplecan acceptit,soin the marketthere will bea great space for development.Keywords: chip microcomputer; sound timing; LCD display; clock chipWritten by YanyuanSupervised by Pengjingyu前 言从古到今, 时间是被人们一直讨论的话题。为了更好的表示时间,科学家们研制了许多的计时仪器。东汉的张衡制造了计时仪器漏水转浑天仪,苏颂和韩公廉等人于北宋元祜三年创制了水运仪象台,许多国内外人士经过多年的创造和改良,再到现在的电子钟,不断研究,不断创新。随着现代大规模集成电路和单片机技术的成熟发展,陆陆续续地涌现出了许多先进技术组合在一起制造的电子时钟,这些电子时钟能够非常直观的显示出设计者想要显示的内容,还很方便的让人读取上面的信息,而且它的电路连线很简单,功能也具有多样化,最重要的是它的价格很便宜,是大多人能够接受的,而且使用方便,让我们的日常生活和工作变得更加舒适方便,避免了许多不必要的麻烦。因此,它的用处就显得非常宽广,我们会常常在工厂、街头、车站、家庭、码头等地看到它。本文介绍了基于单片机的语音报时电子钟,它不光光可以显示几时几分几秒还可以显示几几年以及某年的几月几号,甚至星期几和几度的气温,同时还能实现个性化的整点报时。它主要是通过单片机来读取时钟芯片的时间、日期和语音模块的语音,然后送给显示设备显示出来和通过扬声器把时间播报出来。语音的录放主要是先一句一句的录下要播报的内容,然后保存到电脑里,通过WT588D的应用软件和下载器将录的语音下载到语音芯片里,单片机再通过写的程序读取相应的时间后再读取语音芯片里的语音地址,然后就把录好的语音播报出来。全文共分为六章,将从硬件结构、软件设计、测试分析和发展等方面来介绍语音报时电子钟。第一章主要介绍了开发背景、研究目的和意义以及任务和目标。第二章主要介绍了各个模块的设计方案,对比各芯片的性能和优缺点,然后选择出最实用的芯片。第三章主要介绍了各个模块的硬件结构,芯片的特性和工作原理,分析电路原理图。第四章主要介绍了各个模块的软件结构并且详细地描绘出了重要的程序流程图。第五章主要对设计的测试进行了一定的分析。第六章主要描写的是对设计语音报时电子时钟这个整个过程的一个总结和展望一下未来,想想这个设计还可以怎么样扩展扩展。第一章 绪 论1.1 开发背景近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,人类从原始的观太阳到古代的漏水转浑天仪再到后来的机械摆钟,再到现在的电子钟,不断研究,不断创新。随着电子技术的迅速发展,各式各样的电子钟表相继问世,而如今出现的多功能电子钟,更是家喻户晓。它不仅仅可以用于计时,还可以通过人性化的设计提醒人们在特定的时间做特定的事,给我们的生活带来了诸多便利。而且如今它成本低廉,具有广阔的市场前景。1.2 研究目的和意义目的在于将课堂上学来的单片机理论知识与实践相结合,提高对单片机的认识,设计出基于单片机的语音报时电子时钟系统,学习专业软件的操作,熟悉制作过程,掌握一门技能,加强专业知识的掌握。在当今的信息化时代,单片机的应用是必不可少的,语音报时电子钟在人们的生活中也扮演者重要的角色。单片机在生活中广泛应用,好多应用可以代替人工,减少人力的浪费。研究出低成本的应用使更多的人享受生活。1.3 语音报时电子钟的任务与目标 任务为:(1)查找单片机、语音模块、时钟芯片、液晶显示、测温器件等的各种资料,选择各式各样的合适的电路元器件。(2)制定设计方案,画出各模块的电路原理图,结构要尽量简单实用、易于实现。(3)学习WT588D语音芯片的应用,录制语音后利用WT588D下载软件和下载器把录制好的语音下载到语音模块。(4)将各模块的电路原理图合并成一个完整的电路图,使系统电路尽量简单。根据电路原理图制作出相关的硬件电路板。(5)录制语音后利用WT588D下载软件和下载器把录制好的语音下载到语音模块里 。(6)巩固C语言知识,编写控制电路的程序。(7)通过相应的软件工具仿真成功后,将程序烧录到芯片中。目标为:设计一个语音报时电子时钟,实现个性版整点报时,在液晶屏上能够显示时间、日期和温度,还可以设置闹钟。第二章 系统方案论证2.1 电路设计框图系统的最终设计方案应当是既要实现题目要求的功能又要使得设计出来的电路结构简洁易懂、价格便宜,功耗低、性能稳定等特点。电路框图如图2-1所示。围绕着主控制芯片STC89C52主要包括复位电路模块、时钟模块、温度采集模块、按键控制模块、时钟模块、显示模块、语音模块。复位电路模块温度采集模块按键控制模块STC89C52时钟模块显示模块语音模块 图2-1 硬件电路框图2.2 主控芯片选择方案一:选用AT89C51芯片作为硬件的控制核心。AT89C51是采用Flash存储器,它里面有四千字节的只读存储空间,一百二十八字节的随机存储空间,三十二个数据端口线,两个十六位定时器和计数器,一个五向量的两级中断结构,一个全双工的与外界串行通信的接口,内部也有振荡器和时钟电路,能够工作在三伏这样的非常低的压值下。而且它的管脚功能跟MCS-51系列的单片机的管脚功能是一样的,它同时也是一个性能高的COMS八位的微型处理器。它的只读存储器可以多次的擦除一千次,而且它的存储技术运用了不容易丢失存储信息的密度高的ATMEL技术,所以它办事效率也非常的高。不通电时,随机存储器里面的信息将不会消失,还会保存在里面,但是内部的振荡器将不工作,而且还不让其他的器件工作,一直持续到下一个复位到来。方案二:选用STC89C52芯片作为硬件的控制核心。STC89C52是北京的STC公司生产的一种只要消耗很少的能量、性能高的CMOS八位的微型控制器。它里面有八千字节的闪烁存储空间,能够系统在线编程,而且它的管脚功能跟MCS-51系列的单片机的管脚功能是一样的,因此他能够更灵活地嵌入式运用,使得控制更加简单化。它的容量很大,有五百一十二字节的随机存储器,内部有复位电路和四千字节的电可擦除只读存储器,三个十六位定时器和计时器,一个七向量四级结构的中断。它外部也有中断,它的串行端口是全双工的。不通电时,随机存储器里面的信息将不会消失,还会保存在里面,但是内部的振荡器将不工作,而且还不让其他的器件工作,一直持续到下一个复位到来。由于STC89C52更灵活,内存更大,且是国产的,价格更便宜,所以选STC89C52用作核心控制芯片。2.3 按键控制方案选择方案一:选用矩阵式样的按键形式,这样的话按键个数就会比较多,电路就会比较复杂些,单片机对它识别起来也会很复杂,总体上看是一个矩阵的形状。在连电路图时,它要将所有的竖着的线连电阻再连接电源的正极,然后所有的横着的线连单片机的数据输出端口。这样子虽然可以直接实现信息的输入,对硬件的直接操作,但是需要CPU对端口进行不断的扫描。方案二:选用单独的一个个的按键,这样的话在电路上就大大地降低了复杂程度,使电路变得简单,有能够很容易的就能操作,实现我们的目标。更重要的是它不但处理简单而且节省CPU资源,大大降低了成本。而且本设计也不需要太多的控制,就只要简单地控制一下实现一些小功能就行。由于这个设计不需要太多的按键,而为了更方便地控操作盒节省成本我们就选用方案二。而且方案二也使得CPU能空出更多的存储空间,来存储其他的内容。2.4 时钟芯片选择方案一:选用时钟芯片DS1307来实现对时间的记录。时钟芯片DS1307消耗的能量很低,能够在较低的压值下工作,一般在4.5到5.5之间,有五十六字节断电保护的随机存储空间。它是I2C接口的,使用双向的两线串行总线来输入输出地址和数据。它里面有个感应电源的电路,所以它可以检测是否掉电和切换电池。它可以提供秒信息,每一个月的天数能自动调整。但是I2C接口在传输数据的时候运用的逻辑关系非常复杂,而且它的通信速度不快,程序编写也比较复杂繁琐。方案二:选用时钟芯片DS1302来实现对时间的记录。时钟芯片DS1302消耗的能量很低,能够在较低的压值下工作,一般在2.5到5.5之间,也有随机存储器。它是半SPI接口,输入输出数据速度快,用三线接口和CPU同时进行通信,他还可以用一种突发方式一次性输入多个字节的时钟信号或随机存储数据。它不光光可以记录几时几分几秒还可以记录几几年以及某年的几月几号,甚至星期几。而且精度高。由于时钟芯片DS1302计录时间的精度高,传输数据速度快,而且电压工作的范围更广一点,所以选用方案二。2.5 温度采集芯片选择方案一:选用PT100温度传感器,PT100温度传感器是能够将测得温度变量转换成可以输出的标准信号的仪表。主要是靠热敏电阻的工作原理来计温的,可以测四十摄氏度到九十摄氏度,但是热敏电阻的不太可靠,测得的温度不太准确,像一摄氏度这种小的信号测不到,而且他测得的温度如果要人能很直观的看出来还要经过专门的电路转换成数字信号,然后在用微处理器进行处理。这样的话,电路就会变得很复杂,不容易懂。方案二:选用DS18B20数字式温度传感器,数字式温度传感器是利用物质的物理性质随着温度的变化而变化的原理把温度变化成电量,并且能够将所得到的信号变化成数字的一种传感器。DS18B20使用集成芯片,单总线技术,它个头小,价格便宜,非常有效地减小外界的干扰,大大提高了测量的精确度,它可以直接将被测物的温度转换串行的数字信号,传输给微处理器处理,所以它连线很简单,使得数据的传输也变得非常简单。由于用DS18B20测量更准确,电路简单容易操作,价格便宜,而且我们用不到测四十摄氏度到九十摄氏度那么高的温度,只要很低的温度就行了,本来就是一个大的设计中的一个小模块,不需要复杂的电路,电路越简单越好。所以选用方案二。2.6 显示芯片选择方案一:选用LCD12864作为显示屏,LCD12864的分辨率为128乘以64,里面有16乘以16点阵汉子和一百二十八个十六乘以八点ASCII字符集,所以他除了可以显示英文字母和阿拉伯数字还可以显示中文字和图形,电压工作在5伏左右,而且它电路连线简单操作方便。方案二:选用LCD1602作为显示屏,LCD1602是一个点阵型的专门显示那些阿拉伯数字,大小写英文字母和符号的液晶屏。它里面是由点阵字符位组成的,每一位都可以显示一个字符,而且这些字符位与字符位之间有间隙让人看起来不会显得太乱,正因为这样,他唯一的缺点是不能显示图形。当然,它因为是16乘2的,所以他只能显示出两行字符,而且每一行只能显示十六个字符。所以它只适用于要求显示内容比较少的设计。由于本设计要显示的内容不多,LCD1602功耗更小些,价格比LCD12864低,所以选用方案二。2.7 语音芯片选择方案一 :选用ISD4004语音模块,ISD4004 在3伏的压值下工作,它的录放时间8 至16 分钟而且音质好,适用于移动电话及其他便携式电子产品中。它采用CMOS技术,里面有微型控制器串行通信接口,能够对很多信息进行处理,工作电流是25到30毫伏,需要1微伏的电流来维持。在不通电的情况下能够保存信息一百年,一次可以录音十万次,还拥有自动减少噪声的功能。方案二:采用WT588D语音模块,WT588D有2兆到3兆比特的SPI-Flash存储器,里面嵌入的DSP处理器能够高速地处理语音,还有13比特的DA转换器和12比特的PWM输出,所以它有两个输出,DAC输出和PWM输出,PWM输出可以直接接扬声器来播放语音。他可以存放500段的语音,工作电压在5伏左右,能够有效地减小外界的干扰,使得播放出来的语音效果非常棒。它配套专门的上位机软件可以直接把录好的语音下载到芯片里,这个软件操作非常简单,大大降低的编写语音程序的难度,减少了编辑语音的时,而且价钱还便宜了一半。由于ISD4004适用于语音多的应用,成本较高,而WT588D录放语音操作简单,成本低,本设计也不需要很长的语音,所以选用方案二。第三章 系统硬件的设计3.1 基于STC89C52单片机的控制电路3.1.1 单片机的主要特性STC89C52是北京的STC公司生产的一种只要消耗很少的能量、性能高的CMOS八位的微型控制器。它里面有八千字节的闪烁存储空间,能够系统在线编程,而且它的管脚功能跟MCS-51系列的单片机的管脚功能是一样的,因此他能够更灵活地嵌入式运用,使得控制更加简单化。它的容量很大,有五百一十二字节的随机存储器,内部有复位电路和四千字节的电可擦除只读存储器,三个十六位定时器和计时器,一个七向量四级结构的中断。它外部也有中断,它的串行端口是全双工的。不通电时,随机存储器里面的信息将不会消失,还会保存在里面,但是内部的振荡器将不工作,而且还不让其他的器件工作,一直持续到下一个复位到来。它有一百次的擦写寿命,数据能够保存十年不丢失。3.1.2 STC89C52管脚功能说明STC89C52芯片管脚图如图3-1所示。图3-1STC89C52芯片管脚图1、VCC是电源引脚,通常接正5伏。2、GND 接地。3、XTAL1和XTAL2接晶振。XTAL1是振荡器反相放大器及内部时钟发生器的输入端;XTAL2是振荡器反相放大器的输出端。4、RST是接复位电路的。5、ALE/PROG用来输入程序当中的脉冲。6、PSEN是输出外面程序存储器的信号。7、EA/VPP就是使能端,这里接电源,让CPU执行内部程序存储器中的指令。8、P0、P1、P2、P3口是输入输出端口,连接外部电路。此外,P3口的各个引脚还有第二功能。P3.0的第二功能是串行输入。P3.1的第二功能是串行输出。P3.2的第二功能是外部中断0。P3.3的第二功能是外部中断1。P3.4的第二功能是外部输入定时/计时器0。P3.5的第二功能是外部输入定时/计时器1。P3.6的第二功能是写数据存储器。P3.7的第二功能是读数据存储器。本电路设计采用上电开关复位电路,一开始插上电源,电容开始充电,RST口输入高电平,单片机复位。当系统运行一段时间后,按下S1键,RST再次处于高电平,从而实现上电开关复位的操作。IO口输出信号控制电路运行。3.2 基于DS1302的时钟电路3.2.1 DS1302的特性时钟芯片DS1302是美国DALLAS公司生产的,它消耗的能量很低,能够在较低的压值下工作,一般在2.5到5.5之间,也有随机存储器。它是半SPI接口,输入输出数据速度快,用三线接口和CPU同时进行通信,他还可以用一种突发方式一次性输入多个字节的时钟信号或随机存储数据。它不光光可以记录几时几分几秒还可以记录几几年以及某年的几月几号,甚至星期几。而且精度高。3.2.2 时钟芯片DS1302的电路原理图时钟芯片DS1302的电路原理图如图3-2所示。图3-2 DS1302电路原理图时钟芯片DS1302的管脚功能说明如下:1、它很特别,有两个电源管脚,VCC2是连接外部主电源的,VCC1是连接小电池的,以保证断电后能够保存数据继续运行,使得在下次通电时能够显示正确的实时时间,减少了我们手动调节的麻烦。2、X1和X2是专门接晶振的震荡源,通常都是接一个32.768千赫兹的晶振。3、GND接地。4、SCLK是的输入时钟。5、I/O是双向的数据串行输入输出口。6、CE是片选线,在高电平时进行读写数据。它是控制数据的访问逻辑关系和传输方法的。本系统的时钟芯片的X1和X2管脚分别连接值为32.768千赫兹的晶振的两端,VCC2接电源VCC,VCC1接一个压值为三伏的圆形电子电池,电池的负极和GND接地,SCLK、I/O和CE分别接单片机的P1.3、P1.4和P1.5端口。3.3基于DS18B20的温度测量电路3.3.1 温度传感器DS18B20的性能简介数字式温度传感器是利用物质的物理性质随着温度的变化而变化的原理把温度变化成电量,并且能够将所得到的信号变化成数字的一种传感器。DS18B20使用集成芯片,单总线技术,它个头小,价格便宜,非常有效地减小外界的干扰,大大提高了测量的精确度,它可以直接将被测物的温度转换串行的数字信号,传输给微处理器处理,所以它连线很简单,使得数据的传输也变得非常简单。它的转换速度很快,750毫秒就能转换十二位数字了。它的接口很独特,只要一个管脚来通信就可以了。它里面分布好多个点来测温,这样就很简单,不需要在外面接其他电路。他工作在5伏左右的压值。它的测温范围非常广,能测负五十五摄氏度到正一百二十五摄氏度。3.3.2 DS18B20的电路原理图温度传感器DS18B20的电路原理图如图3-3所示。图3-3 温度传感器DS18B20电路原理图温度传感器DS18B20的管脚功能说明如下:1、GND接地。2、DATA是数据端口。3、VCC接电源。本系统的DS18B20的GND管脚接地,VCC管脚接电源,DATA接单片机的P3.1端口,同时在VCC和DATA之间加一个阻值为10千欧姆的上拉电阻,正常情况下都会加一个上拉电阻,因为不加的话单片机识别不了。3.4 基于LCD1602的显示电路3.4.1 LCD1602的特性LCD1602是一个点阵型的专门显示那些阿拉伯数字,大小写英文字母和符号的液晶屏。它里面是由点阵字符位组成的,每一位都可以显示一个字符,而且这些字符位与字符位之间有间隙让人看起来不会显得太乱,正因为这样,他唯一的缺点是不能显示图形。当然,它因为是16乘2的,所以他只能显示出两行字符,而且每一行只能显示十六个字符。所以它只适用于要求显示内容比较少的设计。LCD1602用来显示字符的字符位是有相应的地址的,这样在编写程序的时候只要写上相应的地址就能在你想要的地方显示想要显示的内容,另外值得注意的是它第一行的数据存储地址和第二行的数据存储地址不连续,第一行是00到27,而第二行是40到67,这些地址值都是十六进制的。3.4.2 LCD1602的电路原理图LCD1602液晶显示的电路原理图如图3-4所示。图3-4 LCD1602电路原理图LCD1602的管脚说明如下:1、GND接地。2、VCC接电源。3、VO是对比调整端,他是用来调节LCD的亮暗的,连电源时它的对比度比较弱会看不清,所以一般接地,而对比度太高了会导致显示的字符产生像重叠一样的阴影,所以会再加一个10千欧姆的滑动变阻器。4、RS是选择寄存器的。5、RW是信号的读写。6、E是使能端。7、DB0到DB7是数据的输入输出口,是八位的双向线。8、BG/VCC是背景光线的正极,接电源。9、BG/GND是背景光线的负极,接地。在本系统中,GND和BG/GND管脚接地,VCC和BG/VCC管脚接电源,因为本设计只是简单地显示时间所以不需要花大价钱买一个滑动变阻器了,反正滑动变阻器最后调好亮度后还是一个固定的阻值,所以直接接一个小电阻就行了,这个电阻接的阻值越小LCD显示的就越亮,所以VO管脚连一个2千欧姆的电阻然后在跟GND连。RS、RW和E管脚分别连单片机的P1.0、P1.1和P1.2端口。DB0到DB7分别连单片机的P0.0到P0.7端口。3.5 按键控制电路 按键控制模块的电路原理图如图3-5所示。图3-5 按键控制模块的电路原理图4个独立按键分别与STC89C52的P3.3、P3.4、P3.5、P3.6接口相连。1、按下S5键进入时间校准状态,再按一下进入设置闹钟状态,再按一下退出恢复正常显示。2、按下S4键进入选择状态,可以单独的对时、分、秒、星期、年、月、日进行调整。3、按下S3键进行选定项的加操作。4、按下S2键进行选定项的减操作。3.6 基于WT588D的语音播放电路3.6.1 WT588D的主要特性WT588D有2兆到3兆比特的SPI-Flash存储器,里面嵌入的DSP处理器能够高速地处理语音,还有13比特的DA转换器和12比特的PWM输出,所以它有两个输出,DAC输出和PWM输出,PWM输出可以直接接扬声器来播放语音。他可以存放500段的语音,工作电压在5伏左右,能够有效地减小外界的干扰,使得播放出来的语音效果非常棒。它配套专门的上位机软件可以直接把录好的语音下载到芯片里,这个软件操作非常简单,大大降低的编写语音程序的难度,减少了编辑语音的时,而且价钱还便宜。3.6.2 语音模块的电路原理图语音模块的电路原理图如图3-6所示。图3-6 语音模块电路原理图WT588D管脚功能说明如下:1、RESET是复位管脚,要保持5毫秒以上的低电平才有效。2、DAC是输出DAC音频的,需要从软件设置DAC输出才生效。3、PWM+和PWM-都是输出PWM音频的,需要从软件设置PWM输出才生效。4、P14、P13和P16分别是输入SPI-FLASH数据脚、输出SPI-FLASH数据脚和SPI-FLASH时钟脚5、GND接地。6、VDD和VCC都是接电源的,只是VDD是数字电源输入脚,VCC存储器电源输入脚。7、BUSY是输出语音播报忙信号的。8、P01是按键/三线数据输入脚。9、P02是按键/三线片选输入脚。10、P03是按键/三线时钟/一线数据输入脚。11、P15是SPI-FLASH片选脚。12、NC是不接的。在本系统中,WT588D的PWM可以直接接扬声器来播音,所以PWM+和PWM-管脚接扬声器的两端。VDD和VCC都是接的电源,GND接单片机的GND然后一起接地,BUSY、P01、P02、P03和RESET管脚分别接单片机的P2.0到P2.4端口。3.7 系统硬件电路原理图系统总的电路原理图如图3-7所示。图3-7 系统电路原理图本系统的各个模块在上文已经简单的介绍过了,这里就不再在介绍了,现在主要讲一下用来发出闹铃的蜂鸣器报警电路,这里的三极管是PNP型的,低电平导通,它相当于开关。当单片机P3.7接口为低电平时,三极管导通,相当于开关开,蜂鸣器报。一般通过蜂鸣器的电流为65毫安为最佳,要三极管导通,则电阻R1两端电压为0.9伏,流过三极管基极的电流值等于流过集电极的电流值除以三极管的放大倍数,就是65毫安除以180,等于0.00036安,R1的阻值就等于0.9伏除以0.00036安等于2.5千欧,这里就取个整数2千欧。3.8 系统电路仿真图系统的电路仿真图如图3-8所示。图3-8 系统电路仿真图由这张仿真图可以看出本设计有自己的图案,在一开始显示了自己的姓名、班级、学号。第四章 系统的软件设计4.1 主程序流程图的设计主程序流程图如图4-1所示开始系统初始化显示时间是否有键按下YY进入子程序键值判断返回键按下返回主程序加一键按下数值加一调整键按下时间调整减一键按下数值减一整点时间到语音播报结束图4-1 主程序流程图系统一开始会初始化显示姓名学号班级,然后显示时间,当有键值时会根据键值来执行相应的命令,运行系统。没有键值时还是显示时间。其具体程序见附录4.2 时间显示子程序流程图设计时间显示子程序流程图如图4-2所示开始DS1302初始化从DS1302中读取数据,并放入RAM调用显示子程序显示时间结束图4-2 时间显示子程序流程图一开始先初始化,然后从DS1302中读取数据并放入RAM中,再调用显示子程序把时间显示出来。第五章 测试与分析本设计用keil4编程软件和Proteus画图软件相结合最终测试出结果,先在keil4上新建工程,在建工程的时候要选择设计所选的核心控制芯片,然后编写所需要的程序,然后编译生成.hex文件,接着打开Proteus画电路原理图,画完后双击核心控制芯片,载入刚才keil4软件编译生成的.hex文件,之后就可以运行了,然后我们就会看到LCD上显示的内容。对于实物作品的调试如下:1、通电后一会儿显示如图5-1所示的现象。图5-1 时间的显示图上图显示的是正常运作时LCD的显示内容,因为有整点报时功能,而现在显示19点整,所以这时扬声器会播报“周庄时间19点整”。2、按下S5键显示如图5-2所示的现像。图5-2 时间调节图上图1字有阴影表示现在能够通过按S2和S3键来调节具体的时间。再按S4键将可以调节其他的分、秒、星期之类的,比如年份的调节现象如图5-3所示。图5-3 年份的调节3、连续按S5两次将会出现闹钟的设置,现象如图5-4所示。图5-4 闹钟的调节图字母N有阴影,表示可以调节,按S3键就可以切换成Y,Y表示开闹钟,N表示关闹钟。之后再按S4键可以切换到设置闹钟时间的模式,期现象如图5-5所示。图5-5 闹钟的设置图本设计设置了整点报时功能,在正点的时候会播报“周庄时间几点整”,此外还增加了播报事件的个人设计的独特点,本设计有6点整起床啦、7点整上学啦、11点整吃饭啦、12点整午休啦、17点整吃饭啦、18点整散步啦、22点整睡觉啦的个性化播报。第六章 总结与展望6.1 课题总结在设计本课题前我上网和去图书馆翻阅了许多资料。在整个设计过程中,硬件方面主要设计了STC89C52单片机的最小系统、DS18B20原理电路、DS1302原理电路、LCD显示;软件方面参考了网上的一些资料,主要设计了时间、日期、星期的转换程序、闹钟程序、LCD显示程序、温度测量的程序和播报语音的程序;系统的调试主要是通过Proteus和Keil4软件实现的;调试时显示出了日期、时间及星期,还有实时温度。在整个设计过程中学到了许多没学到的知识,在电路焊接前,我先思考并画出焊接线图,充分考虑美观效果和电路的简洁性。程序编写中,由于缺乏经验,开始时遇到了很多的问题,经过去图书馆翻阅资料,理清了思路,编写了较为理想的程序。特别是语音部分,物品前前后后录了好几次语音,试了好几次,先是单独的录然后再通过读取地址把他们拼凑起来变成一句话,但是发现字的间隔太长了,听起来不舒服,后来又重录,一次录完整的一句话,然后在一句一句的读地址,播报出来,最后才完成了比较满意的语音播报。在此次设计中,知道了做事要有耐心,不要毛毛躁躁的,一步一脚印。总之,此次毕业设计使我的能力得到了全方位的提高,收获颇多。6.2 进一步开发的展望本设计已经取得了阶段性的成功,此外还可以进一步的研究。可以再加个农历显示,我国好多的节日是按照农历来过的。另外,现在的人事情比较多,比较健忘,可以增加一个备忘录的功能,一个可以让用户可以自己进行简单的录音,在特定的时间报时并播报用户将要做的事件以便提醒用户做该做的事,以防忘却。最后再加个测室内湿度的功能,可以让脆弱的婴儿生活的更加舒适。参考文献1 蒋正金. 基于单片机的无线温/湿度采集与控制系统J. 现代电子技术,2012,17:126-129+132.2 郭海丽. 基于单片机的数字秒表设计J. 电子元器件应用,2012,01:27-29.3 王连君. 基于单片机的LCD显示终端设计J. 硅谷,2014,06:26+20.4 陈素华,王国志. 基于单片机的LCD显示系统的设计与实现J. 许昌学院学报,2010,05:75-78.5 郭小芳,佘明辉. 基于单片机的多功能数字钟系统设计与分析J. 电子技术,2012,06:35-38+34.6 赵晓光. 单片机温度控制系统方案的研究J. 科技传播,2013,03:187+175.7 吕建波. 基于单总线数字温度传感器DS18B20的测温系统设计J. 现代电子技术,2012,19:117-119.8 远飞. 基于DS18B20的温度测量和显示系统设计与仿真J. 物联网技术,2012,11:36-38.9 张开碧,王浩,曾勇斌. 基于STC89C52单片机的多功能数字钟的设计J. 科技信息,2010,35:12-13+56.10吴亚栋,孙亚,曾光. 基于AT89S52的智能语音提醒药盒设计J. 安阳工学院学报,2014,02:54-55.致 谢首先感谢我的指导老师彭静玉对我多次的耐心指导和面授,通过导师的悉心指导和严格要求,我经过多次的修改终于将论文顺利地完成了。这次论文从选题到最终的完成,凝结着导师辛勤的汗水。导师严谨求实和一丝不苟的学风、扎实勤勉和孜孜不倦的工作态度时刻激励着我努力学习。论文的整个过程分好几个阶段,要上交好几份的东西,把写的任务书、文献综述、翻译、论文初稿、中期检查再到最后的论文终稿一次次地交给导师,导师不辞辛苦地一遍遍地帮我检查,然后再回复我一些修改意见,最后还面对面地授予我写论文的技巧,告诉我论文还有哪些方面需要修改,怎么修改。导师不辞劳苦的教导、严谨的作风使我终生受益,并将鞭策我在未来的工作中锐意进取、奋发努力,为我今后的学习、工作道路上点亮了一盏指路明灯。附录#include #define uchar unsigned char #define uint unsigned int #include eeprom52.hbit flag_200ms ;bit flag_100ms ;sbit beep = P37; bit flag_beep_en;uint clock_value; void yunyin_boshi(); sbit dq = P32; sbit VSCL = P23; sbit VCS = P22; sbit VSDA = P21; sbit VBUSY= P20;sbit VRST = P24; uchar yujing3;uint temperature ; uchar flag_nl; uchar menu_1,menu_2;uchar key_time,flag_value; bit key_500ms ;uchar n_nian,n_yue,n_ri;#include ds1302.h#include lcd1602.hvoid delay_100us(uchar z) uchar x,y; for(x=0;xz;x+) for(y=0;y30;y+);void write_eeprom()SectorErase(0x2000);byte_write(0x2000, fen1);byte_write(0x2001, shi1);byte_write(0x2002, open1);byte_write(0x2058, a_a);void read_eeprom()fen1 = byte_read(0x2000);shi1 = byte_read(0x2001);open1 = byte_read(0x2002);a_a = byte_read(0x2058);void init_eeprom()read_eeprom();if(a_a != 1)fen1 = 3;shi1 = 8;open1 = 1;a_a = 1;write_eeprom(); void init_18b20()bit q;dq = 1;delay_uint(1); dq = 0;delay_uint(80);dq = 1;delay_uint(10);q = dq;delay_uint(20);dq = 1;void write_18b20(uchar dat)uchar i;for(i=0;i= 1;uchar read_18b20()uchar i,value;for(i=0;i= 1; dq = 1; if(dq = 1) value |= 0x80;delay_uint(5); return value; uint read_temp()uint value;uchar low; init_18b20(); write_18b20(0xcc); write_18b20(0x44); delay_uint(50); init_18b20(); write_18b20(0xcc); write_18b20(0xbe); EA = 0;low = read_18b20(); value = read_18b20(); EA = 1;value = 8; value |= low; value *= 0.625; return value; void delay_1ms(uint q)uint i,j;for(i=0;iq;i+)for(j=0;j120;j+);void write_week(uchar hang,uchar add,uchar week)if(hang=1) write_com(0x80+add);elsewrite_com(0x80+0x40+add); switch(week)case 1:write_data(M); write_data(O); write_data(N); break;case 2:write_data(T); write_data(U); write_data(E); break;case 3:write_data(W); write_data(E

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论