毕业设计(论文)基于SPI总线接口的数字电子万历仿真设计.doc

上传人:仙人指路1688 文档编号:4149763 上传时间:2023-04-07 格式:DOC 页数:53 大小:1.38MB
返回 下载 相关 举报
毕业设计(论文)基于SPI总线接口的数字电子万历仿真设计.doc_第1页
第1页 / 共53页
毕业设计(论文)基于SPI总线接口的数字电子万历仿真设计.doc_第2页
第2页 / 共53页
毕业设计(论文)基于SPI总线接口的数字电子万历仿真设计.doc_第3页
第3页 / 共53页
毕业设计(论文)基于SPI总线接口的数字电子万历仿真设计.doc_第4页
第4页 / 共53页
毕业设计(论文)基于SPI总线接口的数字电子万历仿真设计.doc_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《毕业设计(论文)基于SPI总线接口的数字电子万历仿真设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于SPI总线接口的数字电子万历仿真设计.doc(53页珍藏版)》请在三一办公上搜索。

1、 本科毕业设计(论文)题目:基于SPI总线的数字电子万年历的仿真设计 作者: 二级学院: 电子与信息工程学院 专业班级: 电气工程及其自动化(2)班 指导教师: 职称: 高工,讲师 2015 年 6 月 10 日摘要本次设计的课题主要内容是多功能数字电子万年历,由于当今社会的飞速发展,单一的电子时钟已经无法满足人们的日常生活。因此发明一种多功能数字电子万年历的是一种必然的走向。而本人设计的数字万年历是以AT89C51单片机为中心,通过DS1302时钟芯片等辅助芯片来实现在LCD上显示年份、月份、日期、星期、小时、分钟、秒,以及实时温度的显示。该电子万年历通过4个按键来调节日期与时间,通过以软件

2、编程的方式来完成以上各项功能。而这样设计的数字电子万年历具有成本低廉,使用简单,功能齐全,基本符合当代人的生活需求。关键词:电子时钟;AT89C51单片机;辅助芯片;软件编程ABSTRACTThe main subject of the contents of this design is versatile digital electronic calendar, due to the rapid development of todays society, a single electronic clock has been unable to meet peoples daily liv

3、es. Therefore, the emergence of multi-function digital electronic calendar is inevitable. And I designed the electronic calendar is based on AT89C51 microcontroller as the core, through the DS1302 clock chip and other auxiliary chip to achieve is displayed on the LCD the year, month, day, week, hour

4、, minute, second, and real-time temperature display. The electronic calendar by four buttons to adjust the date and time, by way of software programming to accomplish the above functions. And this design of digital electronic calendar with low cost, easy to use, full-featured, in line with the needs

5、 of contemporary life.Keywords: electronic clock; AT89C51 single chip; chip; software programming目录1. 绪论12. 系统概述22.1. 硬件简述22.2. 软件概述23. 系统方案选择及论证33.1. 各项模块的方案选择33.1.1. 单片机型号的选择及论证33.1.2. 时钟芯片的方案选择及论证33.1.3. 温度传感器的方案选择及论证43.1.4. 显示模块的方案选择及论证43.2. 总体方案的确定44. 系统硬件电路的设计54.1. 系统硬件功能及原理介绍54.1.1. AT89C51单片

6、机的功能及原理54.1.2. DS1302时钟芯片的功能及原理84.1.3. DS18B20温度传感器的功能及原理84.1.4. LCD1602液晶显示屏的功能及原理94.2. 主要模块电路设计94.2.1. 单片机主控制模块设计104.2.2. 时钟芯片模块的设计104.2.3. 温度传感器模块的设计114.2.4. 显示模块的设计114.2.5. 键盘模块的设计124.3. 系统电路的仿真125. 系统程序的设计145.1. LCD1602的程序设计155.2. DS1302程序设计165.3. DS18B20程序设计176. 软件和硬件的结合调试186.1. 硬件的调试186.2. 软件

7、的调试186.3. 软件与硬件的结合调试19结论20致谢21参考文献22附录一:仿真图23附录二:程序源代码241. 绪论从古至今,人们为了记录时间,从观察天象到在器具上刻线,以及到后来出现的万年历,可谓是历史悠久。而在我国,相传万年历的出现是在1000多年以前的商朝,是一个叫做万年的人所创造的。后人为了纪念他,所以将这种历法成为“万年历”。实际上万年历是以一个特定的历法的推算法则为基础的,用来编排年、月、日、节气等信息,做为人们查阅的工具书,而且这个伟大的文化也因此成就了人类。如今随着世界上的现代科技的神速发展,尤其突出的是现代的电子行业方面的的发展,给人们的生活带来了根本性的变化,从而在人

8、们的生活中出现了很多的电子产品,而这些都是以单片机为基础的。万年历也从传统的纸质万年历升级为现在的数字电子万年历,所谓的电子万年历即是以计算机等电子产品的方式出现的万年历。数字电子万年历的出现极大的方便了人们的日常生活,并且飞速的被应用于车站、工厂、餐厅、学校、剧院等工作娱乐场所,并、而且越来越受人们的青睐。但是,伴随着电子行业的爆炸性发展,单一的电子日历已经不能再满足人们的日常生活需求了。并且使用电子万年历的人们希望该产品有一个多功能的集合,比如加上时钟、闹钟以及温度等来取得更为巨大的便利,而所有的这些,又全是以数字化的电子时钟为基础的。因此,加强实际的电子日历及其扩展应用的研究,具有非常重

9、要的意义,而且具有很大的实用价值。本次设计介绍的数字万年历是结合了程序和电路图来进行的。电路图的主要构成都有单片机AT89C51,时钟芯片DS1302、温度传感器DS18B20、闹钟电路以及控制电路等其他一些辅助电路,在LCD上不仅显示出公历的年份、月份、日期,而且能够显示星期、小时、分钟、秒数以及当时附近的温度。让此万年历能够及时的将这些信息反馈给用户,以便用户进行各项工作。而软件部分则是以C语言进行编程,通过单片机将指令发送到各项电路中去,以实现万年历功能的正常运行,并且使其具有自我调节功能。而且通过C语言进行编程的好处是可以随时的根据不同需求对此万年历进行细微的调节,让此万年历具有显示其

10、他的一些信息。并且C语言相对于汇编语言来说也具有编写简单,易于理解的优点,便于用户进行学习与改写。2. 系统概述2.1. 硬件简述本文设计的数字电子万年历是以AT89C51单片机作为CPU(Central Processing Unit,计算机中央处理器),构成了以单片机为核心来控制整个电路。并且结合了时钟芯片DS1302,使其不仅显示出公历的年份、月份、日期,而且能够显示星期、小时、分钟、秒数等信息,并且能够自我调节和具有去电保存功能。而且在此基础上另外加上一个温度传感器DS18B20,能够监测到附近的实时温度,并且在LCD上显示出来。并且此系统通过4个按键对整个系统进行基本的调节,按键分别

11、为控制键,加“1”键,减“1”键,退出键组成。总体方案图如图2-1所示。单片机控制模块AT89C51液晶显示模块LCD1602温度采集模块DS18B20时钟模块DS1302控制模块键盘控制图2-1 总体方案图2.2. 软件概述 该系统通过C语言的编写来实现以上各项功能,C语言具有撰写简单,易于修改的特点。在数字电子日历中,包括闹铃程序,时钟计时程序,液晶显示程序等。并且可以通过软件烧录进单片机之中,对时钟芯片DS1302、闹钟程序等进行指令的修正和改良,让其能够在LCD显示器中显示出年份、月份、日期、小时、分钟、秒数、星期以及实时温度。 由于本次设计采用的是C语言编程,程序内容比较大,因此本次

12、将采用先写主程序然后再在其中读写模块子程序的办法进行程序的编写。其中子程序部分包括时钟芯片模块,温度检测电路模块以及LCD显示屏模块,这些将在下文进行详细的介绍。3. 系统方案选择及论证3.1. 各项模块的方案选择3.1.1. 单片机型号的选择及论证 方案一:使用单片机AT89C51做为CPU(Central Processing Unit,计算机核心处理器),AT89C51单片机是采用4kb可进行编写的闪存存储装置的低能耗的单片机,拥有32个I/O口线,两个16位定时/计数装置,并且与MCS-51系列兼容。它的数据保存期限为十年,在静止状态时的工作范围为0Hz-24Hz,具有可编程的串行通道

13、。对于单片机程序的烧录和调试都有很好的作用,并且该单片机具有高性能,成本低的特点,符合本次设计的要求。 方案二:采用单片机AT89S52做为系统的CPU。AT89S52单片机是采用8kb的可不停的读取1000次的一个只读程序存储器的单片机。它是AT89C51单片机的精简版,因此也具有51单片机的所有功能与特点,并且AT89S52单片机能够在3V的超低电压下工作,也是一种低能耗,高性能的单片机。但是AT89S52单片机相对来说入手的成本会比较高。 根据以上的那些描述,通过以上两个单片机的各方面的比对可以得出,本次的数字万年历设计只需用AT89C51单片机便可。3.1.2. 时钟芯片的方案选择及论

14、证 方案一:采用时钟芯片DS1302来进行时间的计数。DS1302是一种实时时钟芯片,它是由美国拉莱斯公司研发并且发售的。该时钟芯片具有低消耗,高性价比的特点,并且能够提供年份、月份、日期、小时、分钟、秒数、星期的计数,能够自动调节大小月,而且具有闰年补偿功能。而且该时钟芯片的静态RAM空间是31字节的,所以在掉电后计时还是非常精准的。并且该产品与单片机的连接仅仅只有3跟线,看起来非常的简洁。 方案二:直接使用单片机自带的内部定时计数器进行时间的计数,而后结合程序代码实现年份、月份、日期、星期、小时、分钟、秒等的计数。采用此种方案即便不再需要外加一个芯片了,少了一个电路模块的设计,降低制作成本

15、,节约设计时间。可是,使用此方法实现的计数误差会在走时一段时间后变得越来大,而且非常占用单片机的内部存储空间。因此本次设计不采用此方案进行时间的排版。 通过以上的描述,选择时钟芯片DS1302会更加适合本次设计的数字电子万年历。3.1.3. 温度传感器的方案选择及论证方案一:采用DS18B20温度传感器进行实时的温度监测。温度传感器DS18B20是一种具有“一线便是所有”的温度传感器,该产品是由美国达拉斯公司首次推出的世界上面第一个具有以上特点的传感器,它与CPU的连接只要一根线。而且该温度传感器具有精准度高,体积小,抵抗外界的干扰能力优秀的特点。此温度传感器的工作的直流电压值是3.05.5V

16、/DC。它能够监测到的温度为55+125,其测量温度时的误差只有1,并且在-10 至+85范围内的是否精确度更高,只有0.5。方案二:采用热敏电阻作为温度检测的温度传感器。这是利用热敏电阻的电阻值与外界温度变化有着函数关系的特性,然后串联一个相同电阻值的电阻进行分压,分别采集两个电阻的电压值,并进行A/D变换。这样设计的时候就需要连接一个A/D转换电路,增加了设计的时候的难度和成本。而且该热敏电阻与温度的函数关系并不是很严谨,其函数曲线不是一条圆滑的曲线,因此测量时会产生比较大的误差,所以不会选择用热敏电阻做为本次设计的温度监测。通过上述介绍,本次设计必然会选用DS18B20温度传感器进行温度

17、的监测。3.1.4. 显示模块的方案选择及论证方案一:采用LCD1602液晶显示屏,此显示屏具有体积小、质量轻盈、能耗小、成像清晰的特点。并且该显示屏与单片机的连接方式是采用简单牢靠的数字方法进行连接,这样使用起来就显得非常的简便。而且其在显示屏上显示的内容也较为丰富,非常实用。方案二:采用数码管来显示系统数据,该数码管的内部组成是八个发光的二极管,这样对于那些只有数字字符的显示会比较适合,而且购买价钱不贵,但是本次设计的电子万年历需要显示的内容比较多,也不仅仅是数字字符了,因此需要比较多的数码管,并且设计的时候电路复杂、编程麻烦。并且数码管显示不稳定,存在抖动现象,需要通过某些软件延时进行消

18、抖,操作起来比较的麻烦。通过以上描述,本次设计的电子万年历毫无疑问的会使用LCD1602液晶显示屏。这样可以更加直观、清晰的体现此万年历的功能。3.2. 总体方案的确定通过了上述的各项电路模块的方案论证以及各项模块的简单介绍,因此本次设计的总体方案确定为采用单片机AT89C51为核心,使用时钟芯片DS1302进行计时和计数以及用DS18B20温度传感器对周围环境进行温度检测,并且将各项结果通过转换能够在液晶显示器LCD1602中呈现出来。4. 系统硬件电路的设计4.1. 系统硬件功能及原理介绍 本系统的电路系统框图如图4-1所示,AT89C51单片机通过C语言的写入对时钟芯片DS1302和温度

19、传感器DS18B20进行操控,然后再在其中读取出相应的数据,进而发出指令让LCD1602作出相应的显示。单片机控制模块AT89C51温度采集模块显示模块时钟模块键盘控制模块图4-1 单片机实现液晶显示电子万年历的总框图4.1.1. AT89C51单片机的功能及原理AT89C51单片机是美国一家公司研制并且生产的一种拥有4K字节只读存储器,并且拥有CMOS8位微处理器的一个中央处理装置。该单片机使用ATMEL高质量的闪烁存储装置的技术来进行制造的,同时也和工业上规定的MCS-51系列单片机兼容。具有ATMEL装置的AT89C51是一种高品质的微型控制装置,因为在一小个的芯片中便结合了拥有多功能的

20、8位CPU与闪烁存储器,为很多控制系统都提供了一种性价比非常高的方法,并且能够应用于很多高性价比的场合。下图图4-2为单片机实际框图。AT89C51具备如下几个标准功能:4K字节的只读存储器,一个串行可编程通道,拥有1000多个字节的内部RAM,16位定时/记数器也有两个,32个可以用来编程的I/O口总线,还有5个中断源,片上振荡器以实时钟电路。同时,AT89C51的运行工作频率范围在0Hz24Hz之间,而且拥有节电模式可以选择。这种单片机在没有运行的时候会停止内部主要功能的工作,但是还有RAM即串行通信口还是在工作的。掉电模式下只会保存RAM内的东西,但是振荡器只有在其他硬件启动并且已经成功

21、复位之后才会再次的运行起来。图4-2 单片机实物图表4-1 单片机管脚功能表管脚口简单功能介绍VCC供电电源电压GND接地P0在进行外部程序的数据存储的时候,它可以吸收8个逻辑门的电流,这也被人们称为了数据第八位。在FIASH编程时,P0口作为一个原始的输入端口,P0口接收指令字节,当FIASH检查,P0输出指令字节,并且需要与主机连接电阻并进行检查,而此时的P0口外部电位必定会被向上拉伸。P1是一个输入输出脚P2同样是个输入输出脚P3P3.0输入口P3.1输出口P3.2中断口0P3.3中断口1P3.4定时器输入口P3.5定时器输出口P3.6写入数据口P3.7读取数据口RST用来系统重启后进行

22、复位用的PROG接收脉冲,提取信息PSEN选择外部存储器VPP选择内部存储器XTAL1接收各种脉冲信号XTAL2输出各种脉冲信号 由上面的表中可以得出所有的引脚排列以及功能用处了,而下图就给出了单片机是如何具体用这些引脚和内部的各大模块进行数据的交换与传输的。具体请看图4-3.图4-3 AT89C51方框图4.1.2. DS1302时钟芯片的功能及原理 DS1302 做为美国达莱斯公司自主研发的一种高现价比、低电压损耗、拥有31个字节的静态RAM,采用特殊的涓细电流充电方式供电的实时时钟电路,它能够对年、月、日、星期、时、分、秒进行计时,拥有24h和12h的计时方式,还能够区分大小月份以及具有

23、闰年补偿功能。它工作于2.5V至5.5V。DS1302的内部有一个神奇的RAM寄存器用来临时存放各种数据的,它与单片机的连接只有三根线。DS1302在进行保持数据和时钟信息时所消耗的能量竟然不到1mW。而且它的计算年限在2100年之间,并且具有闰年补偿功能。而且还可以在主电源断电情况下定时功能。当然,DS1302的寄存器种类很多,其中包括控制寄存器、年份寄存器等。DS1302的引脚分布如图4-4所示。图4-4 DS1302引脚排列 DS1302管脚的描述:其中晶振管脚是X1和 X2这两个管脚,GND是一个接地管脚,RST是复位管脚,它能够将输入启动置于高电位之中,从而达到所有数据的传输,I/O

24、口做为数据的输入/输出端,直接与单片机进行数据交换,SCLK始终作为串行通道的输入端,Vcc1、Vcc2是连接电源的管脚。同时,DS1302的通电方式非常的特别,它是通过比较Vcc1、Vcc2两者的电压大小来最终确定由哪个进行供电。当Vcc2给DS1302供电时,此时的Vcc2大于Vcc1。反之,DS1302就得由Vcc1供电了。DS1302的控制方式为从地点为开始输出。它的输出条件是最高位必须处于高电位状态,否则不能输出数据。4.1.3. DS18B20温度传感器的功能及原理 DS18B20温度传感器做为美国达拉斯公司研发销售的一种高端时髦的温度传感器。它可以直接读出温度。并且和单片机的连接

25、只有一根线。而且这个温度传感器不需要额外外加一个电源进行供电,只需要通过与单片机相连的那根线供电即可,而且其工作电压范围广,为+3.0+5.5 V。因而在使用DS18B20后,可以使整个的电路结构变得更加的简单,而且显示结果的精准度会更好。同时,该温度传感器具有一个权力真空,反极性的特征,它不会因为电源接反了就烧掉了,只不过是不运行了而已。 同时,DS18B20温度传感器的内部结构不是很复杂,也就是几个基本的测温与传输部件构成。DS18B20的管脚主要有GND,该引脚是电源接地口;DQ为数字信号的输入输出端;VDD连接电源输入端(在连接和接地的寄生电源模式)三部分。 其内部结构框图如图4-5所

26、示。图4-5 DS18B20的内部结构图 低振荡频率温度系数的晶体在DS18B20效果不受温度的影响,它主要是针对1个固定频率的脉冲信号。但是在温度过高的时候高产品内部的频率会随着外界温度的改变而发生变化的,然后将此信号做为一个数据资料进行输入操作。4.1.4. LCD1602液晶显示屏的功能及原理 LCD1602液晶显示器都是数字式的方式连接,和单片机体系的连接更加简便。 由于液晶显示接收到的信号中的每一位一直保持原来的颜色和亮度,发光稳定,所以不需要持续刷新而导致出现闪烁。 点阵图形式液晶由很多个一点一点的显示单位构成,就像一个坐标点一样,然后通过程序的编写来确定每个点是否应该亮起来,或者

27、是连续的几个点亮起来形成一条短线。比如说当(3ffh)= FFH,然后在屏幕的右下角显示一个短的线;当(00h)=(FFH,001h)= 00H,(002h)= 00H,.(00eh)= 00H,(00fh)= 00H的时候,这就是LCD显示的基本原理。 使用LCD来显示出随便一个符号的过程是十分复杂的,其缘由就是每一个字符都是由很多个小点组成的,这样就需要在显示屏上找到各个点来确定它们是需要亮起来还是不用亮起来。慢慢的就会形成一个字符了。但是有些控制器本身就有控制器,那么它们只需将这些东西直接转化成文本文档直接输出就好了。设置光标根据开始在液晶数和列每列队伍号码找到相应的显示相应的内存地址,

28、在此基础上,对相应的字符码。4.2. 主要模块电路设计 通过对各个单元的描述以及了解,接下俩就可以进行各个单元模块的具体设计了。本次设计的主要模块包括了显示模块,温度传感器电路模块,键盘模块以及时钟电路电路模块。4.2.1. 单片机主控制模块设计 如图4-6所示,本次单片机的各个引脚连接如下:9号引脚为复位电路的输入端,在其连接上电容、电阻以及开关后就组成了一个完整的复位电路了,晶体振荡器频率为12MHz,为复位自动功率降低方法。18和19引脚连接的是延时计时电路,主要用来进行延时功能。图4-6 单片机最小系统图4.2.2. 时钟芯片模块的设计 本次设计的计时电路主要是用DS1302时钟芯片进

29、行计数的。而在前文中已经介绍了该时钟芯片的原理以及功能了。其中该时钟芯片的各个引脚的连接图如下图图4-7所示。 图4-7 DS1302时钟芯片接线图4.2.3. 温度传感器模块的设计本次设计使用的是DS18B20温度传感器来实现温度的监测的。该温度传感器的各项功能及原理也在上文中得到了详细的介绍。并且下图图4-8给出了该温度传感器的详细电路连接。由图中可以看出该传感器与单片机的连接非常简单,仅需要一根线便可以完成与单片机的完整通信了。图4-8 温度传感器接线图4.2.4. 显示模块的设计本设计使用的是LCD1602液晶显示,数据可直接反映到用户眼中。而LCD1602显示屏的原理以及功能已经在前

30、文中做了详细的介绍。其引脚连接图如图4-9所示。 图4-9 LCD1602液晶显示屏连接图4.2.5. 键盘模块的设计 本次设计一共拥有4个功能按键和一个系统的复位按键,而其中的那些功能按键可以任意改变当前再显示的各种状态。除却复位键以外,其他的四个按键的功能如一下描述:第一个按钮是控制键,它的主要功能是对于显示屏上的各项数据进行选择设置;第二个按键是进入闹钟模式的按钮,在此模式下可以直接设置闹钟的时间,再次按下这个按键则会退出闹钟界面;第三个按键是设置的时候的加一按键;最后一个按键是设置的时候的减一按键。4.3. 系统电路的仿真本次设计的电路是通过Proteus 7 Professional

31、仿真软件进行电路的仿真的。Proteus 7 Professional仿真软件是由英国一家知名的大公司开发的一款EDA工具软件。其在全球被广泛的应用,距今已经有将近20年的历史了。该软件的系统模块很多,本文主要介绍了其中的仿真部分。Proteus作为一款仿真软件,其中包含了及其强大的元件库,其中包含了8000多个数字和模拟电路中的SPICE模型及各种动态元件。而且Proteus软件能够和大部分的编译软件进行完美的合作,并进行系统的综合调试,比如keil等软件。并且整个的调试过程与真实的硬件调试基本没有差别。其真实性为使用者提供了很好的调试环境与方便。因此本文使用Proteus软件进行仿真调试将

32、硬件系统的真实性得到了极大的肯定。具体的操作过程为双击图标等待运行proteus软件中的程序之后,进入到这个仿真软件的起始设置的界面。操作前,先设置视图菜单捕捉对齐和颜色系统,图形界面的大小等。然后点击左边工具栏中的一个大写的P按钮,那个是选择元器件用的,在弹出的窗口中输入这个电路应该需要的各种元件的英文名字,然后双击进行添加到自己的元件库中,而后点击鼠标并放置元件和调整它的位置以及元件的各种参数设置,最后进行元器件之间连线与布局,编写程序;之后在双击单片机,在弹出的窗口内选择该系统对应的程序,然后再添加进去,点击确定按钮,然后再点击界面上的运行按钮,观察整个仿真电路的运行情况。由上文可以发现

33、通过该软件进行仿真具有操作简单方便,并且效果良好。具体的仿真图详见附录一。5. 系统程序的设计 本次设计中的软件编程部分会全部采用C语言来编程,其中C语言是一种可读性很高的语言,它在处理器中的运行速度非常的快,并且处理各种数据的能力也非常好,语言结构很简单,深受人们欢迎。使用C语言来对系统的软件进行对应的编程和时候,相比较与汇编语言,对于用户的体验上来说,C语言在结构上会更加的通俗,可读性会比较高。本次设计的主流程图如下图图5-1所以,由于显示器LCD1602,温度传感器DS18B20以及时钟芯片DS1302的数据阅读和其指派功能已经在各自的头文件中完成了,以后只要在主程序中只要加以引用就可以

34、了。详细的程序请详见附录二。图5-1 程序主流程图5.1. LCD1602的程序设计表5-1 LCD1602命令控制RSR/WDB0-DB7Function显示复位0000000001清屏复位光标000000001归零地址进入字符方式00000001AB字码移屏模式开关显示0000001CDE光标显示设置光标移动000001FG光标与字符移动设定功能设置00001HIJ设行数、字型忙标志/地址计数器01K写入CGRAM或DDRAM的Address地址计数器和LCD忙标志A=1渐增;A=0逐减;B=0屏不动;B=1,A =1且字符写显示左移,反之右移;C=1屏幕开;C=0屏幕关;D=1地址光标显

35、示,D=0不显;E=1光标闪烁,E=0不闪;G=0,F=0光标左移,此外右移;G=0,F=1,字符和光标左移,此外右移;H=1,数据是8b;H=0,数据是4b;I=0,显示一行;I=1,显示两行;J=1,点阵5x10;J=0,点阵5x7;K=1,LCD繁忙;K=0,空闲。图5-2 LCD1602初始化 如上图LCD1602经过设置8位数据输入、2行、点阵5x7显示;再清屏;再设置字符上输入格式。在LCD中可设置判忙子程序,使LCD正常运行,实际中影响不大。在Keil软件单步调试判忙会循环执行,因为单片机读取外器件端口都为一。可用仿真器来进行单步程序仿真解决。5.2. DS1302程序设计DS1

36、302通过写入时间寄存器的相对其地址,读取时间。在实物中,需先判断秒位寄存器(Adress为0x80)的最高位是否为0(为0时内部振荡器开启)。在手动按键调节时间时,先去掉写保护(在0x8E地址写入0x00);再加上写保护(向0x8E地址写入0x80)。表5-2 DS1302地址/命令字节格式765432101RAM/时钟A5A4A3A2A1读/写图5-3 读单字节图5-4 写单字节图5-5 DS1302初始化5.3. DS18B20程序设计 DS18b20在初始化时,需一系列单数据线的拉高置低,并间隔相应时间。可设判错标志位,读数据复查。在采集时,要经初始化并跳器件序列号,再延时,再重复之前

37、操作,最后接收温度的低位和高位。可由实际程序用时、精度等,确定温度(9-12b)的输出位数。器件内含CRC-8检错,增强其准确度。图5-6 DS18B20初始化过程 图5-6 DS18B20温度采集6. 软件和硬件的结合调试6.1. 硬件的调试 Proteus软件会通过对系统软件进行分小段的调试与监测系统在运行时的整体状况来分析,以便能够更好的完成此次硬件与软件的调试。 针对于以上提出的整体状况的调试,我们其实只要打开这个软件,然后将已经绘制成功的仿真图打开,然后再点击软件左下方的运行按钮。当然,此时的单片机之中可以是有程序也可以是没有程序的,不过为了调试结果更加的准确,还是先确保该系统中的单

38、片机是没有程序的存在。最后移动鼠标观察各个电路模块以及各个元器件的通电状况是否正常。对于使用软件的分块调试,这个的前提是以上的整体调试已经没有问题,然后是已经有准备好的在该系统中有的电路模块的子程序。随后我们就可以将其中一个子程序烧录进单片机之中,然后在点击运行而后观察这个电路模块的运行情况以及显示状况。以此类推,我们只要把所有的电路模块都试过去,那么,即使其中某个小块出了问题也是很好解决的。 因此,在本次设计之中,可以通过先将仿真图绘制成功后,然后点击运行按钮,并观察各个元件的电平的数值显示。如有问题,再进行修改与替换。确保该电子万年历系统的硬件在软件中能够正常的运行。6.2. 软件的调试在

39、一个系统的开发之中除了必要的硬件之外,同样也离不开程序的编写,而我们所谓的程序可以通过机器或者人工的方法写入单片机之中,但现在已经很少会去使用手册的编制。而所谓的机器汇编就是通过汇编软件将写好的源代码转化成能够让单片机识别的语言,比如Keil软件在变异后生成的hex文件。伴随着当今世界上的电子科的神速发展,语言的编译也开始从基本的汇编语言慢慢的编译到后来的开发出更加高级的语言来进行语言的编译。当然随着程序语言的升级,一般的编译软件对于它们的识别也渐渐的变得吃力起来,因此编译软件的升级就显得非常的重要。而其中,Keil软件就是目前在世界上最为流行的一个语言编译软件,这个软件可以完美的适用于51系

40、列的各种单片机之中。如果你不相信它的流行度,你可以去看看各大电子开发商最为支持的软件是什么。Keil是一款功能非常强大的语言编译软件,它可以进行C语言的编写和编译,另外它还自带了一个及其强大的仿真调试装置,通过一个神奇而且强大的开发环境(uVision)将所有的强大功能都结合在了一起。Keil软件的具体操作过程为先打开该软件,然后再在上面的工具栏中找到项目兰,点击创建一个新的项目,然后在新建一个文件,点击保存,这样就可以开始编写系统所需的程序了。编写完成后点击调试按钮,然后再将编写好的源代码以后缀为”.c”的格式保存下来,然后在修改完之后点击编译按钮准备生成一个hex文件,最后将这个hex文件

41、放入仿真图中的单片机之中就可以进行调试了。 因而本次设计的系统软件调试这块就主要是用Keil软件进行C语言的编写与调试,以及后来编译可以生成hex文件。其中,用汇编语言编制的软件,C语言的功能,可读性,结构,具有维护优势明显。6.3. 软件与硬件的结合调试 通过上文介绍的几个软件以及操作方法,现在可以进行结合调试并观察最后的运行结果。具体的运行调试结果详见附录一。结论本次设计利用的是以51单片机做为中央处理器,结合外部那些时钟芯片一起的电路模块,温度传感器DS18B20,液晶显示器的电路模块,复位电路以及键盘控制模块等构成的一个多功能的数字电子万年历。然后使用ISIS软件进行系统电路仿真,再通

42、过KEIL软件进行C语言的编写,最后在显示器上实现了同时显示年份、月份、日期、星期、小时、分钟、秒以及实时温度,另外还有一个闹铃功能。本人设计的数字电子万年历通过上文可以发现,除了课题要求实现的那些功能之外,该系统还有温度监测功能与闹铃功能,加上这两个功能会显得这个万年历更显得人性化,更加的符合用户的日常需求,也符合我国未来的发展方向,这也是本人的创新点。在本次课题设计的过程中,我遇到过非常多的问题与难点。比如说在软件的编写过程中,在写完子程序后发现自己竟然不能将该子程序与主程序完美的连接起来。后来通过自己慢慢的翻阅各种书籍以及向指导老师求助,终于在后来将程序调试了出来。当然,在硬件设计的时候

43、也遇到过绘制完电路图之后发现整个系统完全处于待机状态,完全没有反映。最后也是同学的帮助才得以完成的。当然在开始设计之前,我曾经查阅过很多资料,也发现了很多的难点,比如说时钟芯片与单片机的通信问题,再后来的设计过程中,其实那些问题都被自己慢慢的攻克了下来。因此,通过本次的毕业设计之后,我觉得自己将之前几年学过的单片机知识以及各种软件操作的只是都重温了一遍,并且现在已经将这些只是都结合融入到自己的脑海之中,让自己在这方面的专业知识得到了一个新的升华,同时也在平时积累的过程中丰富了自己的大脑。应该说我们学校的毕业设计就是我们在学校的最后一次考试,也是学校对我们的考验。虽然讲的是万事开头难,但是,都过

44、前期的不断积累,这个开头其实并不是很难。因此,做一次毕业设计也是对我们自己的提高。因为在一次毕业设计中,我能够学到很多,那对我以后的生活工作都是很有帮助的。致谢能够完成完成本次毕业设计,感谢的人其实是很多的。首先感谢学校给了我一个展现自我的机会。其次是我们的指导老师,在做设计的日子里得到了指导老师的耐心指导,使得我的毕业设计能够顺利的完成,在此向我们的指导教师表示最为诚挚的感谢。然后是感谢那些给我提供帮助的老师和同学们,是你们的支持和鼓励让我对这次的毕业设计的完成有了强烈的自信与动力,同时你们也给了我很多无私的帮助和支持,在此我表示非常感谢。参考文献1 张毅刚, 彭喜元. 单片机原理及接口技术

45、M. 北京:人民邮电出版社.2008.2 张蓬. Protel DXP电路设计入门与应用M. 北京:机械工业出版社.20053 刘守义, 钟 苏. 数字电子技术M. 西安:西安电子科技大学出版社. 2003.4 赵亮, 候国锐. 单片机C语言编程与实例M.北京: 人民邮电出版社. 2003.5 刘利. 液晶显示原理M.上海: 电子工业出版社.2002.6 于复生,宋现春等. 时钟芯片DS1302及其在数据记录中的应用M. 电子技术应用.2000.7 李建忠. 单片机原理及应用M. 西安:西安电子科技大学出版社,2002.8 何立民. 单片机与嵌入式系统应用M, 北京:北京航空航天大学出版社.2003.9 彭伟,单片机C语言程序设计实训100例基于8051+Proteus仿真(第二版)M,电子工业出版社,201210 马忠梅. 单片机的C语言应用程序设计M. 北京:北京 航天航空大学出版社.1997.

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号