带有温度显示和液晶显示器的实时时钟设计.doc
《带有温度显示和液晶显示器的实时时钟设计.doc》由会员分享,可在线阅读,更多相关《带有温度显示和液晶显示器的实时时钟设计.doc(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数字式温度计学生学号:学生姓名: 指导教师:刘焕平 机电工程系2014年 月 日设计目标:设计基于单片机的具有液晶显示器的实时时钟,能够通过液晶显示器正确显示当前时间,包括年,月,日,星期,时,分,秒。并且能够通过按键对系统的时间进行修改设定;能够显示当前的室温。研究内容:学习EDA软件Proteus的使用,能够利用Proteus软件画出电路图并实现仿真。学习电子系统设计步骤,按步骤完成电子系统的概要设计、选型、详细设计,系统测试仿真。设计带有温度显示基于单片机具有液晶显示功能的实时时钟,编写程序,并利用proteus软件进行模拟仿真。研究方法:绘制原理图及电路图,利用软件环境编程调试。实验步
2、骤:1、打开Keil软件,新建一个工程文件,选择好芯片,并记得在 “Options for Target 1”的Output选项中,将Create HEX Fil选项勾起来。2、将编写的程序保存成“.C”的形式3、编译保存好的C文件,并根据提示修改程序中的错误,直到编译成功为止4、打开proteus软件,画出实验电路图5、在89C51中,载入原来已生成的HEX文档6、按下运行键,对Proteus进行软件仿真,观察运行结果原理结果及分析一、设计方案原理与设计特点分析电子钟总的设计模块:按键处理模块89C51CPU控制模块温度采集模块LCD显示模块DS1302时钟采集模块各个模块电路原理分析:1、
3、DS1302时钟采集模块:1.1电路原理图:1.2 DS1302分析:首先DS1302是DALLAS公司推出的涓流充电时钟芯片。内含有一个实时时钟/日历和31字节静态RAM通过简单的串行接口与单片机进行通信实时时钟/日历电路提供秒分时日日期月年的信息每月的天数和闰年的天数可自动调整时钟操作。DS1302芯片广脚介绍:X1、X2为32.768KHz晶振管脚。GND 为地。RST复位脚。I/O数据输入/输出引脚。SCLK串行时钟。Vcc1,Vcc2电源供电管脚。与单片机连接的信号线为: DS1302_SCLK 接P16; 实时时钟时钟线引脚 DS1302_IO 接P17; 实时时钟数据线引脚 DS
4、1302_RST 接P15; 实时时钟复位线引脚特别注意DS1302芯片在读取或写入数据时,都是一位一位传送的,并且每传送一位,SCLK信号线要有一个负跳变。即单片机对SCLK咬先送高电平,再送低电平。数据时通过IO进行传送的。1.3数据处理子程序流程图是否调用时间获取子程序DS1302_GetTime 否 是调用Read1302函数,读取各个时间参数,并存放于ReadValue变量中对ReadValue数据进行转换,转换成十进制数,并赋给Time指针中。调用年份转换成可供lcd显示的字段子程序DateToStr时间转换成可供lcd显示的字段子程序TimeToStr结束因为DS1302芯片在读
5、取或写入数据时,都是一位一位传送的,并且每传送一位,SCLK信号线要有一个负跳变。所以在对DS1302具体某地址进行一字节数据的写入或读取时,都要调用实时时钟写入一字节(内部函数) DS1302InputByte和实时时钟读取一字节(内部函数) DS1302OutputByte两个函数。2、按键处理模块2.1按键连线图从左到右依次是:进位键,数字加,数字减,退出Mode模式键2.2按键扫描子程序流程图:Mode键是否按下将进位按键键次数存放于变量mode_num中mode_num=5?mode_num=1?mode_num=2?mode_num=4?mode_num=3? 否 否 否 否 是
6、是 是 是 是mode_num=6?mode_num=7? 否 否 移动光标,并返回 是 是2.3加减键处理子程序流程图判断是否为修改模式 否判断是否为加一键 是转减一键程序 否 是判断num=2?判断num=3判断num=1? 否 否 是 是 是修改day值,并返回修改mouth值,并返回修改year值,并返回判断num=6?判断num=5?判断num=4? 否 否 是 是 是 修改小时值,并返回修改分值,并返回修改秒值,并返回减1子程序与加1子程序区别只在于修改数值处理不一样,其他都一样。3、LCD显示模块3.1 LCD显示模块电路原理图3.2 LCD1602芯片以及连线分析液晶显示器是一
7、种功耗极低的被动式显示器件,1602广脚介绍:D0D7数据传送引脚,VSS为接地线,VDD为电源线,VEE为 LCD驱动电压调节,由此可以调节显示亮度。RS为寄存器选择信号,高电平选择数据寄存器,低电平选择指令寄存器。RW为读写控制信号,高电平读,低电平写。EN使能信号,读状态下高电平有效,写状态下下降沿有效。 RS连接P20; 寄存器选择信号RW连接P21; 读写控制信号线EN连接P22; 使能信号线3.3LCD初始化程序流程图:写指令0x38,显示模式设置写指令,显示光标写指令,光标移动清屏在初始化过程中,要反复调用到write_com函数,此函数实现向lcd写入命令的功能。要特别注意写命
8、令和写数据的RS、RW、EN时序问题4、温度采集显示模块4.1温度采集显示模块的原理图:4.2DS18B20芯片以及连线分析DSl820数字温度计提供 9 位(二进制)温度读数,指示器件的温度、信息经过单线接口送入DSl820 或从DSl820送出。因此从主机CPU到DSl820仅需一条线(和地线) ,DSl820的电源可以由数据线本身提供而不需要外部电源。DS18B20广脚说明:VCC为电源线,DQ为数据线,GND为地线。数据线DQ与单片机P1.0相连接。4.3温度采集显示模块子程序流程图:直接向18b20发送温度变换命令 读取温度寄存器的温度值读低八位读高八位进行读取数据处理,得出温度存放
9、于变量temp中 在此程序中,要特别注意初始化,写和读取数据时的时序处理。首先,初始化中,主机总线先发送一复位脉冲(最短为 480us 的低电平信号),接着刻释放总线并进入接收状态。 DSl8b20在检测到总线的上升沿之后,等待 15-60us,接着DS18b20发出存在脉冲(低电平 持续 60-240 us)。写数据时序:当主机总线先从高拉至低电平时,就产生写时间隙。读书序: 主机总线先从高拉至低电平时,总线只须保持低电平l7ts之后,再将总线拉高,产生读时间隙。5、总原理图以及主程序流程图:5.1总的原理图:5.2主程序流程图:初始化lcd初始化内部定时器初始化DS1302从DS1302读
10、取日期和时间移动光标并显示日期移动光标并显示时间移动光标并显示温度重复进行按键扫描二、Proteus仿真结果:三、实验数据计算处理,性能分析1、数据计算处理:1.1计算星期数的算法days=(today.day+1+2*today.month+3*(today.month+1)/5+today.year+today.year/4-today.year/100+today.year/400)%7,由年月日计算星期,用以显示星期数1.2加减键对时间日期改变处理算法对于年月日,时分秒来说,每个变量的最大值和最小值都不一样,所以当年月份时分秒改变时,进行处理的算法也不一样,年没有最大值,所以不用采取“
11、封顶”措施,每次年加一处理时,直接自加,而对于月份来说,月份是不能超过13的,所以当月份自加到13时要重新置1,具体处理见程序,在每个语句后,我都有分析注释出来。1.3时分秒进位算法当秒,分达到60时,向分进位,且秒数置零,从新开始计数。当时达到24时,也一样处理。1.4年月日进位算法因为每个月份的天数都不同,所以事先先设定一数组:dayofmonth=31,28,31,30,31,30,31,31,30,31,30,31用以判定12个月的最大值,接着判断天数,当超过本月最大天数时,月份加一,且天数要置1。月份判断比较简单,只要超过12,年份就加1,月份置1。2、性能分析: 首先,lcd能够正
12、确的显示1302芯片上面的时间和日期。其次,可以通过五个按键: K1, K2、K3、K4和K5键对电子钟进行时间和日期的调整。按K1键进行校时,可以分别对时及分进行单独校时,使其校正到标准时间,校时时用K2键进行调整,需要校正哪一位哪一位就闪烁。按K3键是对闪烁位进行加一的操作。按K4键是对闪烁位进行减一的操作。按K5键,就可以退出调整模式。但是,时间和日期显示正确,但温度显示错误。温度不能正常显示的主要原因是DS18b20的数据传输不正确。五、实验结论以及体会实验结论:1、在该电子钟的设计中修改定时或调整时间时采用了闪烁,在编程上,首先进行了初始化定义了程序的入口地址以及中断的入口地址,在主
13、程序的开始定义了一组固定单元用来存储计数的秒,分,时以及定时时间的序号等。其次,时,分,秒显示用了软件译码(查表)的方式,再用了一段固定的程序段进行进制转化。最后,用查询方式对按键进行判断,若有键按下,则进行软件延时消抖,避免了抖动引起的干扰,执行相应的定时,选时或调时程序段。对当前时间或定时时间修改后又返回到最初的显示程序段,如此循环下去。2、在硬件上,选用DS1302,LCD1602相结合,首先DS1302内含有一个实时时钟/日历和31字节静态RAM通过简单的串行接口与单片机进行通信实时时钟/日历电路提供秒分时日日期月年的信息每月的天数和闰年的天数可自动调整时钟操作,这样读取数据简单。其次
14、,选用LCD1602进行显示时,数据位串行输入,接口连线少,低功耗,显示清晰。并且本实验的电子钟即要实现时间的现实,还要实现日期的现实,所以若是运用数码管进行显示的话,就算运用动态显示,所占用的IO口多,并且所需的数码管个数多,硬件复杂。3、proteus是一个非常好用的仿真软件,其具有强大的电路原理图绘制功能,且可以实现模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统仿真、键盘、LCD系统仿真等多种功能;和keil联合使用时可以检测所编写的程序的正确与否。将keil和proteus联合起来使用是实现电子设计制作的初步阶段,可避免在实际的硬件操作中因为电路原理图或向单片机烧录的程序有误
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 带有 温度 显示 液晶显示器 实时 时钟 设计
限制150内