ImageVerifierCode 换一换
格式:DOCX , 页数:75 ,大小:51.93KB ,
资源ID:9494877      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9494877.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(多功能万年历毕业设计.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

多功能万年历毕业设计.docx

1、多功能万年历毕业设计多功能万年历的设计 摘 要:本设计采用了以广泛使用的单片机技术为核心,软硬件结合,使硬件部分大为简化,提高了系统稳定性,并采用LCD显示电路、键盘电路,使人机交互简便易行,此外还结合音乐闹铃电路、温度采集电路和供电电路。本方案设计出的万年历可以显示日期、时间、温度、农历,并且设置了音乐闹铃功能。该万年历可以应用于一般的生活和工作中,也可以通过改装,提高性能,增添新功能,从而给人们的生活和工作带来方便。 关键词:万年历;AT89S52;LCD1602;时钟日历芯片DS1302;音乐闹钟The Multi-functional Calendar Designna Abstrac

2、t: This design has adopted by the extensive use of single chip microcomputer as the core. Hardware and software combination make the hardware parts greatly simplified and improve the stability of the system.The use of LCD display circuit, keyboard circuit makes the information exchange simple. In ad

3、dition, the design is combined with music alarm circuit, temperature acquisition circuit and power supply circuit. It can show a calendar date, time, temperature, the lunar and set up music alarm function. On one hang the calendar can be applied to general life and work, on the other hang, it can im

4、prove performance by modification to add new functions, so that it can bring more convenience to peoples life and work. Key words: calendar;AT89S52;LCD1602; clock calendar chip DS 1302; music alarm clock.引言 电子万年历是实现对年、月、日、时、分、秒数字显示的计时装置,广泛用于个人、家庭、车站、码头、办公室、银行大厅等场所,成为人们日常生活中的必需品。数字集成电路的发展和石英晶体振荡器的广泛应

5、用,使得数字钟的精度远远超过老式钟表。钟表的数字化给人们生产生活带来了极大的方便,在此基础上完成的电子万年历精度高,功能易于扩展,可扩展成为诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动启闭路灯等电路。因此,研究电子万年历及扩大其应用有着非常现实的意义。1 系统功能与方案论证1.1系统功能 LCD显示年、月、日、时、分、秒、星期、温度、农历等信息 手动调整年、月、日、时、分、星期、温度上限、闹铃时间 温度报警 闹铃播放音乐日历时间掉电保护公历与农历自动关联闹铃可选择关闭、每天循环或只响应一次三种模式 可选用USB、直流12V或5V电源或交流9V电源对电路进行供电1.2 系统基

6、本方案选择和论证由于现在市面上的电子万年历的种类比较多,因此到底选择什么样的方案在设计中是至关重要的。正确地选择方案就可以使产品更加人性化,并且可以减小开发的难度,缩短开发的周期,降低产品的成本等等,因此就会被人们普遍接受,并且能够更快地将产品推向市场实现其自身的价值。1.2.1 单片机芯片的选择方案和论证方案一:采用89C51芯片作为硬件核心,采用Flash ROM,内部具有4KB ROM 存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术,在烧写程序时需要专门的下载器。方案二:采用AT89S52,片内ROM全都采用Fla

7、sh ROM;能以3V的超底压工作;同时也与MCS-51系列单片机完全该芯片内部存储器为8KB ROM 存储空间,同样具有89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能时,烧写程序方面,再加上本系统程序较大,需要较大的存储空间,因此选择采用AT89S52作为主控制系统。1.2.2 显示模块选择方案和论证方案一:采用LED数码管动态扫描,LED数码管价格适中,对于显示数字最合适,而且采用动态扫描法与单片机连接时,占用的单片机口线少。但所需数码管太多,布线和焊接困难极易出错,因此不采用LED数码管作为显示。方案二:采用点阵式数码管显示,点阵式

8、数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示。方案三:采用LCD液晶显示屏,液晶显示屏的显示功能强大,可显示大量字符,显示多样,清晰可见,但是价格贵,需要的接口线多,本设计所需显示的内容较多。所以在此设计中采用LCD1602液晶显示屏。1.2.3 时钟芯片的选择方案和论证方案一:直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大,所以不采用此方案。方案二:采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能

9、的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,318位的RAM做为数据暂存区,工作电压2.5V5.5V范围内,2.5V时耗电小于300nA。 1.2.4 温度传感器的选择方案与论证方案一:使用热敏电阻作为传感器,用热敏电阻与一个相应阻值电阻相串联分压,利用热敏电阻阻值随温度变化而变化的特性,采集这两个电阻变化的分压值,并进行A/D转换。此设计方案需用A/D转换电路,增加硬件成本而且热敏电阻的感温特性曲线并不是严格线性的,会产生较大的测量误差。方案二:采用数字式温度传感器DS18B20,此类传感器为数字式传感器而且仅需要一条数据线进行数据传输,易于与单片机连

10、接,可以去除A/D模块,降低硬件成本,简化系统电路。另外,数字式温度传感器还具有测量精度高、测量范围广等优点。1.3 电路设计最终方案决定综上各方案所述,对此次作品的方案选定:采用AT89S52作为主控制系统;DS1302实现时钟;数字式温度传感器;LCD1602字符液晶显示屏作为显示。2 系统的硬件设计与实现2.1 电路设计框图图1 系统框图 2.2 系统硬件概述本设计以AT89S52单片机为核心,构成单片机控制电路,结合DS1302时钟芯片显示公历的年、月、日、星期、时、分、秒和农历的月、日,同时完成对它们的自动调整和掉电保护,全部信息用液晶显示器显示出来。键盘输入由四个按键来实现,用这四

11、个按键可以对日期、时间、星期、温度报警上限进行调整,并可以对闹铃的开关和闹铃的时间进行设置。闹铃功能通过蜂鸣器来实现。温度的采集通过DS18B20来实现。电源电路可选用直流12V或5V电源9V交流电源输入,再经过稳压集成块输出+5V电压,可稳定工作。系统框图如图1所示,其软硬件设计简单,时间记录准确,可广泛应用于长时间连续显示的系统中。2.3 各系统电路及工作原理本设计分为单片机控制电路、DS1302时钟电路、DS18B20温度采集电路、1602显示电路、键盘输入电路、闹铃电路、电源电路几个模块。充分利用硬件电路的可靠性、稳定性和芯片的方便性,使整体电路简单可行。2.3.1 AT89S52单片

12、机最小系统设计 AT89S52是一种低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元。(1)AT89S52的引脚及功能 AT89S52单片机的引脚说明如图2所示。图2 AT89S52的引脚 P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数

13、据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高,即是要接上拉电阻。P1、P2、P3口都是内部提供上拉电阻的8位双向I/O口,能接收输出4TTL门电流。当各自管脚写入1后,内部上拉为高,都可用作输入。在FLASH编程和校验时,P1口作为第八位地址接收;P2口接收高八位地址信号和控制信号。P3口可作为AT89S52的一些特殊功能口。RST是复位信号引脚。/EA/VPP是程序存储器的读选通信号端。当/EA保持低电平时,对ROM的读操作限定在外部程序存储器;当/EA端保持高电平时,对ROM的读操作从内

14、部程序存储器开始。XTAL1(19脚)是反向振荡放大器的输入及内部时钟工作电路的输入端。XTAL2(18脚)是来自反向振荡器的输出端1。(2)AT89S52单片机最小系统 单片机的最小系统如图3所示,电路中轻触按键、C3和R9组成单片机的复位电路,连接到单片机的第9脚,它是施密特触发输入,当振荡器起振后,单片机上电瞬间,RC电路充电,RST引脚端出现正脉冲, RST高电平单片机保持复位状态。此时,ALE、/PSEN、P0、P1、P2、P3口都输出高电平,RST变成低电平后,进入工作状态。当需要手动复位时,按下轻触按键,RST为高电平,单片机进入复位状态,松开按键后,进入工作状态。18、19脚之

15、间接一个石英晶体及两个电容,构成稳定的自激振荡器,振荡信号是单片机工作的基本节拍。图3 单片机最小系统2.3.2 时钟电路模块的设计(1)DS1302芯片介绍日历时钟芯片DS1302是一种串行接口的实时时钟,芯片内部具有可编程日历时钟和31个字节的静态RAM,日历时钟可自动进行闰年补偿,计时准确,接口简单,使用方便,工作电压范围宽(2.55.5V),功耗低,芯片自身还有对备份电池进行涓流充电的功能。 DS1302采用8脚DIP封装,其引脚排列如图4所示图4 DS1302引脚图VCC1和VCC2分别是主电源和后备电源引脚,DS1302由VCC1或VCC2中较大者供电。X1,X2为振荡源引脚,需外

16、接32.768KHZ晶振。(2)DS1302 的应用DS1302与单片机之间采用3线串行通信方式。串行时钟信号SCLK接到单片机的P1.0引脚;数据输入/输出信号I/O接到单片机的P1.1引脚;复位/或通信允许信号RST接到单片机的P1.2引脚,RST=1允许通信,RST=0禁止通信。单片机AT89S52作为主机通过控制SCLK、I/O和RST信号实现两芯片间的数据传送。DS1302时钟电路如图5所示。图5 DS1302时钟电路2.3.3 温度采集电路的设计 温度传感器DS18B20,是一种数字式的温度传感器,具有测量精度高,电路连接简单等特点,此类传感器仅需要一条数据线进行数据传输。温度采集

17、模块如图6所示。图6温度采集模块2.3.4 LCD1602液晶显示模块设计(1)1602字符型LCD简介LCD液晶显示器是一种被动式的显示器,本身并不发光,而是利用液晶在电压作用下,能改变光线通过方向的特性而达到显示白底黑字或黑字白底的目的。本设计采用16列2行的字符型LCD1602带背光的液晶显示器。LCD1602主要技术参数:显示容量:162个字符工作电压:.55.5V工作电流:2.0mA(5.0V)它的引脚图如图8所示:图8 1602引脚图第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”。第4脚:RS为寄存器选择,高电平时选择数据寄

18、存器,低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平是进行读操作,低电平时进行写操作。当RS和RW同为低电平时可以写入指令或显示地址,当RS为低电平且RW为高电平是可以读忙信号,当RS为高RW为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变为低电平时,液晶执行指令。第15、16两脚为背光电源。(2)指令说明 初始化设置1)显示模式设置表1 显示模式指令表2)显示开关及光标设置表2 显示开关及光标指令表(3)LCD1602的应用电路图9 LCD1602显示模块2.3.5 电源电路 为了方便使用,本系统设计了双电源,既可选择交流9V供电,也可选用直流12V或5V供电。本

19、系统还设置了USB接口,可方便使用MP3或手机充电器对电路进行供电。电源模块如图10所示。 采用直流或交流电源供电时,电路经过二极管IN4007半波整流和电容C3滤波后送入三端稳压管7805产生+5V的电压再经滤波后为电路进行供电。采用直流+5V稳压电源时,须接上跳帽,这时三端稳压管7805不工作。图10 电源模块 2.3.6 闹钟电路设计本设计的闹钟电路直接采用PNP型三极管驱动蜂鸣器发声,当单片机的P1.7引脚送出低电平时,PNP型三极管饱和导通,蜂鸣器发声,为高电平时不发声,因此通过单片机产生不同频率的脉冲从P1.7引脚送出,蜂鸣器就会发出各种音调的声音。 闹钟电路如图11所示。图11

20、闹钟电路2.3.7 键盘输入电路本系统设置了四个功能按键:K1、K2、K3、K4,如图12所示。K1的功能:按一下进入阴历显示界面,按两下进入模式选择界面,按三下,退出模式选择界面,回到主页面。在闹铃响的时候,按一下可停止闹铃。K2的功能:对时间、日历、闹铃时间、闹铃开关、温度报警等内容进行选择。K3的功能:对相应的内容进行加一操作。K4的功能:对相应的内容进行减一操作。图12 键盘输入电路3 软件设计为了方便编写、调试和增加可读性,本设计的软件部分采用C语言进行编写。本系统主要程序模块包括AT89S52主控程序、DS1302时间处理、环境温度采集、LCD1602显示、键盘扫描、音乐播放、公历

21、转农历等几部分。3.1 主程序框图图13 主程序框图3.2 DS1302时间处理 DS1302在任何数据传送时必须先初始化,把RST脚置为高电平,然后把8位地址和命令字装入移位寄存器,数据的读/写可以用单字节或多字节的突发模式进行。所有的数据应在时钟的下降沿变化,而在时钟的上升沿,在芯片或与之相应的设备进行输入。(1)命令字节命令字节的格式如表3所示表3 DS1302的命令字节格式DD6 D5 D4 D3 D2 D1 D01RAMA4A3A2A1A0RDCKWR每次数据的传输都是有命令字节开始的,这里的最高有效位必须是1。D6是RAM(为1)或时钟(为0)的标识位。D1D5定义片内寄存器的地址

22、。最低有效位(D0)定义了写操作(为0时)或读操作(为1时),命令字节的传输时钟从最低有效位开始。(2)数据输入输出(I/O)在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始,如下图-14所示。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。如下图-15所示。图14读出DS1302数据图15写DS1302控制字(3)日历、时钟寄存器及其控制字DS1302共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表4所示,其中奇数为

23、读操作,偶数为写操作。表4 DS1302的日历、时钟寄存器及其控制字寄存器名命令字取值范围各位内容写操作读操作76543210秒寄存器80H81H00-59CH10SECSEC分钟寄存器82H83H00-59010MINMIN小时寄存器84H85H1-12或00-2312/24010APHRHR日期寄存器86H87H01-28,29,30,310010DATEDATE月份寄存器88H89H01-12000IOMMONTH周日寄存器8AH8BH01-0700000DAY年份寄存器8CH8DH00-9910YEARYEAR时间处理子程序流程图如图16所示,程序见附录一。图16 时间处理程序框图3.

24、3 环境温度采集 温度采集子程序流程图如图17所示,程序见附录一。 图17 温度采集程序框图 3.4 键盘扫描 键盘扫描子程序流程图如图18所示,按键功能说明详见键盘输入电路部分,程序则见附录一。3.5 音乐播放 对于单片机产生音乐,关键是控制频率的输出。一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,本设计中利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。程序和程序说明见附录一。3.6 公历转农历本设计采用的是按年查表法

25、来实现公历转换成农历,这样可最大限度地减少表格所占的程序空间。这里采用了三个字节来表示一年的农历信息。计算公历日对应的农历日期的方法:先计算出公历日离当年元旦的天数,然后查表取得当年的春节日期计算出春节离元旦的天数,二者相减即可算出公历日离春节的天数,以后只要根据大小月和闰月信息,减一月天数调整一月农历月份,即可推算出公历日所对应的农历日期。如公历日不到春节日期,农历年要比公历年小一年,农历大小月取前一年的信息,农历月从12月向前推算2。公历转农历程序流程图如图19所示,程序见附录一。图18 键盘扫描框图图19 公历转农历程序流程图结束语本设计以AT89S52单片机为核心,利用软件编程,通过键

26、盘控制、温度传感器、日历时钟芯片和LCD液晶显示基本达到预想效果。本设计硬件系统相对简单,使用方便。程序部分是本设计的一个难点,为了实现较多的功能,程序变得相当庞大,调试起来比较麻烦。由于本人能力有限,程序还未能进一步优化,为了节约成本,系统未能实现更多的功能,如农历年、天干地支和星期自动关联等。参考文献1 顾滨,赵伟军,王泰,鲍可进,李铁香.单片微计算机原理、开发及应用M.北京:高等教育出版社,2000.15-35.2 朱思荣.用51单片机实现公历与农历、星期的转换,1-2./4994b7d8ce2f0066f5332293.html3 DS18B20 中文资料,1-22./fe0be6e8

27、998fcc22bcd10d2e.html4 DS1302 中文资料,1-8.-.html5 1602的使用说明及C语言例程,1-5./086ce729915f804d2b16c1b5.html67805应用电路图.电子技术资料网站. /88/131/138/2007/6044.html7 窦振中.单片机外围器件实用手册输出通道器件分册M.北京:北京航空航天大学出版社,2002.467-479.8 刘建清,鲁金,王春生.从零开始学单片机技术M.北京:国防工业出版社,2006.28-31.。 9 徐爱钧.单片机原理实用教程-基于proteus虚拟仿真M.北京:电子工业出版社,1996.258-2

28、67.10 张齐,朱宁西.单片机应用系统设计技术基于C51的protues仿真(第2版)M.北京:电子工业出版社,2009.260-269.附录 附录A 程序/*使用LCD1602、DS1302时钟芯片、DS18B20温度传感器完成该万年历*/#include #includeLM016L.h #includeDS1302.h#includeyinli.h#includeDS18B20.h#includeKeyScan.h#includeMODE.h#includeOPEN.h#includeSoundPlay.h#define uint unsigned int /宏定义 #define u

29、char unsigned charvoid open(); /上电显示 void KeyScan(); /键盘扫描 void SetTime_Mode(); /调时void SetDate_Mode(); /调日期void SetYear_Week_Mode(); /调年和星期void SetRing_Mode(); /闹钟设置 void SetTemp_Mode(); /温度上限设置模式void InitialSound(void); /音乐初始化void Guangbiao_Flash(); /光标闪烁void Play(unsigned char *Sound,unsigned cha

30、r Signature,unsigned Octachord,unsigned int Speed);/*日历主函数*/void main() init(); Warn_Ling_init(); Read_RTC(); open(); /上电显示函数 write_com(0x01); /清屏 while(1) time_date(); /时间处理 KeyScan(); /键盘扫描 if(ring_time1=l_tmpdate1&ring_time2=l_tmpdate2&flag=0&alarm!=0)/判断是否到闹钟设置的时间,是的话执行相应动作 uchar i; if(alarm=1) alarm=0; write_com(0x01); write_com(0x80+0x00); for(i=0;i15;i+) wr

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

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