毕业设计(论文)-基于LCD时钟温度计的设计.docx_第1页
毕业设计(论文)-基于LCD时钟温度计的设计.docx_第2页
毕业设计(论文)-基于LCD时钟温度计的设计.docx_第3页
毕业设计(论文)-基于LCD时钟温度计的设计.docx_第4页
毕业设计(论文)-基于LCD时钟温度计的设计.docx_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

成都工业学院 通信工程系毕业设计论文摘 要: 单片机就是微控制器,是面向应用对象设计、突出控制功能的芯片。单片机接上晶振、复位电路和相应的接口电路,装载软件后就可以构成单片机应用系统。将它嵌入到形形色色的应用系统中,就构成了众多产品、设备的智能化核心。本设计就是应用单片机强大的控制功能制作而成的lcd电子时钟温度计,该包括三大功能:实时显示年、月、日、时、分、秒;实时监测环境温度;本设计采用的是at89s52单片机,该单片机采用的mcu51内核,因此具有很好的兼容性,内部带有8kb的rom,能够存储大量的程序,最突出特点是具有isp在系统烧写功能,使得烧写程序更加方便。计时芯片采用dallas公司的涓细充电时钟芯片ds1302,该芯片通过简单的串行通信与单片机进行通信,时钟/日历电路能够实时提供年、月、日、时、分、秒信息,采用双电源供电,当外部电源掉电时能够利用后备电池准确计时。温度检测采用dallas公司的数字化温度传感器,该芯片采用的是独特的“一线总线”的方式与单片机进行通信,一线总线独特而且经济的特点,是用户可以轻松的组建传感器网络,为测量系统的构建引入全新的概念。实时温度采用一线总线的方式传输大大的提高了信号的抗干扰性,分辨率可通过软件设置,其小巧的体积为各种环境下测量温度提供了方便。显示器件采用通用型1602液晶,可显示32个字符,如果使用数码管来做显示器件需消耗大量的系统资源,因此采用低功耗的1602液晶,该液晶显示方便,功能强大,完全能满足数字时钟温度计的显示要求。通过此次设计能够更加牢固的掌握单片机的应用技术,增强动手能力、硬件设计能力以及软件设计能力。关键词:单片机;keil;ds1302;ds18b20;lcd液晶目录第一章 绪论4第二章 设计任务.52.1 设计任务52.2 设计要求5第三章 总体方案设计与论证6 3.1 液晶显示模块6 3.2 实时时间计算模块6 3.3 实时环境温度采集模块73.4 设置模块8第四章 总体方案组成框图8第五章 系统硬件设计95.1 lcd显示模块95.2 实时时间计算模块155.3 实时环境温度检测模块205.4 设置模块26第六章 系统软件设计27第七章 系统硬件电路设计28第八章 系统硬件proteus仿真原理图31第九章 系统硬件仿真运行情况图31 9.1显示实时时间32 9.2显示当前温度33 9.3时间设置34结语35 致谢36参考文献37附录38附录一:实物图38附录二:pcb图39附录三:源程序代码43第一章 绪论时间在我们生活中有着不可替代的作用,它可以为我们清晰的记录下制作从 开始到结束所需要的时间。时间对人们来说总是宝贵的,工作的忙碌性和繁杂性 容易使人忘记当前时间,忘记了要做的事情。当事情不重要的时候,这种遗忘无伤大雅,但是一旦事情重要,一时的耽误可能酿成大祸。例如,许多火灾都是由 于人们遗忘而发生的,而时间和温度的重要性在医院、冶金、化工、食品、机械、石油等工业中,更是去足轻重。而现在钟表数字化给人们的生活带来了极大的方 便,成为了人们必不可少的必需品。广泛用于个人家庭、车站、码头、剧场办公 室等公共场所,给人们的生活、学习、工作、娱乐带来了极大方便。第二章 设计任务n 2.1设计任务利用单片机、时钟芯片ds1302、温度传感器ds18b20、1602液晶等实现日期、时间、温度的显示即一个简单的万年历。n 2.2设计要求2.2.1 a/d转换器可用adc0809,也可选用自带a/d的单片机,完成1个通道的温度数据采集; 2.2.2 温度控制单元可采用ds18b20温度传感器,时钟控制部分可采用时钟芯片ds1302;2.2.3 对采集的温度在lcd实时显示,并能保存一段时间内的温度值;2.2.4 能显示当前时间,并具有时间调校功能;2.2.5 采用“汇编语言”或“c语言”进行编程,编译系统可用wave或keil c;2.2.6 用proteus软件进行仿真;2.2.7 用protel软件画出系统原理图与印制板电路图; 2.2.8 尽可能地做出实物。第三章 总体方案论证与设计本系统以at89s52单片机为控制核心,通过与ds1302和ds18b20通信获取实时时间和实时环境温度,并将得到的数据通过1602液晶显示出来,同时通过相应的按键调整相应的值。因此本设计可分为一下模块:显示模块、实时时间计算模块、实时环境温度采集模块、报警模块、设置模块(时间设置模块、最高温度设置模块、闹钟设置模块)。下面对各个模块逐一进行论证分析:n 3.1液晶显示模块方案(1):数码管是利用发光二极管的特性组合而成数字显示器件,通过控制相应的二极管的状态显示相应的数字。要使数码管正常显示就得有驱动电路驱动相应的段码,数码管的现实方式可分为静态显示和动态显示,静态显示方式只适合显示单个的数字,因此本设计应采用动态显示方式。由于动态显示方式利用的是人眼视觉暂留的特性,扫描的时间应不大于20毫秒,占用系统资源大,而且显示的个数和字型有限,在本设计中不易采用。方案(2):1602液晶也叫1602字符型液晶 它是一种专门用来显示字母、数字、符号等的点阵型液晶模块 它有若干个5x7或者5x11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔,每行之间也有也有间隔,起到了字符间距和行间距的作用。1602的驱动电路带有11条指令,可以很方便的控制液晶的现实效果如:清屏、左移右移、光标显示。而且1602显示的字符在下一条指令为到来之前不会改变,也就是能够维持显示的字符,1602液晶占用的系统资源也少。综合比较上述两种方案,应采用1602液晶组成本设计的显示模块。n 3.2实时时间计算模块方案(1):at89s52单片机内部带有定时/计数功能,此定时功能是通过对外部晶振的脉冲进行计数,从而达到计时功能,只要使用11.0592的晶振就能实现零误差的计时,因此可以利用此功能实现计时,但因为只有单一的计时功能要实现“万年历”的功能需要较复杂的程序,而且如果单片机掉电无法继续进行计时,所以使用不便。方案(2):ds1302是美国dallas公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态ram,采用spi三线接口与cpu进行通信,并可采用突发方式一次传送多个字节的时钟信号和ram数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.55.5v。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后备电源进行涓细电流充电的能力。利用单片机强大的控制功能就可实现实时计时的功能,而且消耗的系统资源少,程序简单。综合上述两种方案,宜采用方案(2)实现实时计时功能。n 3.3实时环境温度采集模块方案(1):热敏电阻是开发早、种类多、发展较成熟的敏感元器件热敏电阻由半导体陶瓷材料组成,利用的原理是温度引起电阻变化通过一定的电路可以将周围环境的温度变化转化成电压的变化,通过ad转化器件将信号传输给单片机进行分析,从而测出当前环境温度,但误差大,不稳定,对环境要求较高。方案(2):ds18b20是美国dallas公司生产的数字温度传感器,采用单总线的接口方式与微处理器连接时仅需要一条口线即可实现微处理器与ds18b20 的双向通讯。 单总线具有经济性好,抗干扰能力强,适合于恶劣环境的现场温度测量,使用方便等优点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。测量温度范围宽,测量精度高 ,在使用中不需要任何外围元件,支持多点组网功能 多个 ds18b20 可以并联在惟一的单线上,实现多点测温,供电方式灵活 ds18b20 可以通过内部寄生电路从数据线上获取电源。因此,当数据线上的时序满足一定的要求时,可以不接外部电源,从而使系统结构更趋简单,可靠性更高。因此非常适合本系统使用。综上比较上述两种方案,宜采用方案(2)构成本设计的实时温度采集模块。n 3.4设置模块因为设置模块只需编写相应的程序外加相应的按键即可实现,实现方法较简单,在此不再论述。第四章 总体方案组成框图lcd时钟温度计组成框图如下图:显示模块(1602液晶)at89s52时间计算模块ds1302实时温度采集模块(ds18b20)设置模块(独立按键)图4-1 总体方案组成框图第五章 系统硬件设计n 5.1 lcd显示模块设计5.1.1 1602液晶功耗较小可直接与单片机接口相接,电源直接与电源电路相接,使用单片机的p0口和p1口与1602进行通信。5.1.2 1602相应功能特性介绍1、+5v电压,对比度可调2、内含复位电路3、提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能4、有80字节显示数据存储器ddram5、内建有160个5x7点阵的字型的字符发生器cgrom6、8个可由用户自定义的5x7的字符发生器cgram5.1.3 1602引脚介绍1、1602引脚介绍如下图:图5-1 1602引脚介绍5.1.4 1602液晶11条指令介绍1、清屏指令介绍如下图: 图5-2 清屏指令功能:清除液晶显示器,即将ddram的内容全部填入“空白”的字符码20h; 光标归位,即将光标撤回液晶显示屏的左上方; 将地址计数器(ac)的值设为0;2、光标归位指令介绍如下图: 图5-3 光标归位指令功能: 把光标撤回到显示器的左上方; 把地址计数器(ac)的值设置为0; 保持ddram的内容不变 ;3、输入模式设置指令介绍如下图: 图5-4 输入模式设置指令功能:设定每次写入1位数据后光标的移位方向,并且设定每次写入的一个字符是否移动。参数设定的情况如下所示: 位名设置 i/d0=写入新数据后光标左移1=写入新数据后光标右移 s0=写入新数据后显示屏不移动1=写入新数据后显示屏整体右移1个字 4、显示开关控制指令如下图:图5-5 显示开关控制指令功能:控制显示器开/关、光标显示/关闭以及光标是否闪烁。参数设定的情况如下: 位名设置 d 0=显示功能关 1=显示功能开 c 0=无光标 1=有光标 b 0=光标不闪烁 1=光标闪烁5、设定显示屏或光标移动方向指令如下图:图5-6 光标移动方向指令功能:使光标移位或使整个显示屏幕移位。参数设定的情况如下: 位名 情况s/c0=光标左移1格,且ac值减1 1=光标右移1格,且ac值加1 r/l0=显示器上字符全部右移一格,但光标不动 1=显示器上字符全部右移一格,但光标不动 6、功能设定指令如下图:图5-7 功能设定指令功能:设定数据总线位数、显示的行数及字型。参数设定的情况如下: 位名设置 dl 0=数据总线为4位 1=数据总线为8位 n 0=显示1行 1=显示2行 f0=57点阵/每字符1=510点阵/每字符 7、设定cgram地址指令如下图: 图5-8设定cgram地址指令功能:设定下一个要存入数据的cgram的地址。8、设定ddram地址指令如下图: 图5-9设定cgram地址指令功能:设定下一个要存入数据的cgram的地址。9、读取忙信号或ac地址指令如下图:图5-10设定读取忙信号或ac地址指令功能: 读取忙碌信号bf的内容,bf=1时,表示液晶显示器忙,暂时无法接收单片机送来的数据或指令; bf=0时,液晶显示器可以接收单片机送来的数据或指令; 读取地址计数器(ac)的内容。 10、数据写入ddram或cgram指令如下图: 图5-11设定读取忙信号或ac地址指令功能: 将字符码写入ddram,以使液晶显示屏显示出相对应的字符; 将用户自己设计的图形存入cgram。 11、从cgram或ddram读出数据的指令如下图: 图5-12从cgram或ddram读出数据的指令功能:读取ddram或cgram中的内容。 基本操作时序: 读状态 输入:rs=l,rw=h,e=h输出:db0db7=状态字写指令 输入:rs=l,rw=l,e=下降沿脉冲,db0db7=指令码输出:无读数据 输入:rs=h,rw=h,e=h输出:db0db7=数据写数据 输入:rs=h,rw=l,e=下降沿脉冲,db0db7=数据输出:无5.1.5 1602液晶与单片机接口电路 1、1602液晶和单片机接口电路如下图:图5-13 1602液晶与单片机接口电路n 5.2时间计算模块设计ds1302通过三根口线,实现与单片机的通信,因为ds1302功耗很小,电源掉电后通过3v的纽扣电池仍能维持ds1302精确走时。 5.2.1 ds1302特性介绍ds1302是美国dallas公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态ram,采用spi三线接口与cpu进行通信,并可采用突发方式一次传送多个字节的时钟信号和ram数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.55.5v。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后备电源进行涓细电流充电的能力。5.2.2 ds1302引脚介绍ds1302引脚如下图:图5-14 ds1302引脚介绍各引脚的功能为:1、vcc2:5v电源。当vcc2vcc1+0.2v时,由vcc2向ds1302供电,当vcc2 vcc1时,由vcc1向ds1302供电2、x1是外接晶振脚 (32.768khz的晶振)3、x2 是外接晶振脚 (32.768khz的晶振)4、接地(gnd)5、ce/rst:复位脚6、i/o:数据输入输出口;7、sclk:串行时钟,输入;8、vcc1:备用电池端;5.2.3 ds1302有关日历、时间的寄存器图5-15 ds1302有关日历、时间的寄存器寄存器的说明如下: 秒寄存器(81h、80h)的位7定义为时钟暂停标志(ch)。当初始上电时该位置为1,时钟振荡器停止,ds1302处于低功耗状态;只有将秒寄存器的该位置改写为0时,时钟才能开始运行。 小时寄存器(85h、84h)的位7用于定义ds1302是运行于12小时模式还是 24小时模式。当为高时,选择12小时模式。在12小时模式时,位5是 ,当为1时,表示pm。在24小时模式时,位5是第二个10小时位。 控制寄存器(8fh、8eh)的位7是写保护位(wp),其它7位均置为0。在对任何的时钟和ram的写操作之前,wp位必须为0。当wp位为1时,写保护的位防止对任何一个寄存器的写操作。也就是说在电路上电的初始态wp是1,这时是不能改写上面任何一个时间寄存器的,只有首先将wp改写为0,才能进行其它寄存器的写操作。 5.2.4 ds1302控制字介绍ds1302控制字如下图:图5-16 ds1302控制字介绍控制字的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到ds1302中。位6:如果为0,则表示存取日历时钟数据,为1表示存取ram数据;位5至位1(a4a0):指示操作单元的地址;位0(最低有效位):如为0,表示要进行写操作,为1表示进行读操作。读数据:读数据时在紧跟8位的控制字指令后的下一个sclk脉冲的下降沿,读出ds1302的数据,读出的数据是从最低位到最高位。写数据:控制字总是从最低位开始输出。在控制字指令输入后的下一个sclk时钟的上升沿时,数据被写入ds1302,数据输入也是从最低位(0位)开始。位0(最低有效位):为1表示进行读操作。 如为0,表示要进行写操作,控制字后sclk下降沿读数据 sclk上升沿写数据。5.2.5 ds1302单字节读写时序介绍ds1302单字节读写时序如下图:图5-17 ds1302单字节读写时序介绍ds1302的数据读写是通过i/o串行进行的。当进行一次读写操作时最少得读写两个字节,第一个字节是控制字节,就是一个命令,告诉ds1302是读还是写操作,是对ram还是对clok寄存器操作,以及操作的址。第二个字节就是要读或写的数据了。我们先看单字节写:在进行操作之前先得将ce(也可说是rst)置高电平,然后单片机将控制字的位0放到i/o上,当i/o的数据稳定后,将sclk置高电平,ds1302检测到sclk的上升沿后就将i/o上的数据读取,然后单片机将sclk置为低电平,再将控制字的位1放到i/o上,如此反复,将一个字节控制字的8个位传给ds1302。接下来就是传一个字节的数据给ds1302,当传完数据后,单片机将ce置为低电平,操作结束。单字节读操作的一开始写控制字的过程和上面的单字节写操作是一样,但是单字节读操作在写控制字的最后一个位,sclk还在高电平时,ds1302就将数据放到i/o上,单片机将sclk置为低电平后数据锁存,单片机就可以读取i/o上的数据。如此反复,将一个字节的数据读入单片机。读与写操作的不同就在于,写操作是在sclk低电平时单片机将数据放到io上,当sclk上升沿时,ds1302读取。而读操作是在sclk高电平时ds1302放数据到io上,将sclk置为低电平后,单片机就可从io上读取数据。5.2.6 ds1302操作指令介绍ds1302操作指令如下图:图5-18 ds1302操作指令介绍操作说明: 首先要通过8eh将写保护去掉,将日期,时间的初值写时各个寄存器。 然后就可以对80h、82h、84h、86h、88h、8ah、8ch进行初值的写入。同时也可以通过秒寄存器将位7的ch值改成0,这样ds1302就开始走时运了。 将写保护 寄存器再写为80h,防止误改写寄存器的值。 不断读取80h8ch的值,将它们格式化后显示到1602lcd液晶上5.2.7 ds1302与单片机接口电路ds1302与单片机接口电路如下图:图5-19 ds1302与单片机接口电路n 5.3实时环境温度检测模块ds18b20通过单总线实现与单片机的通信,每个ds18b20都有一个唯一的序列号,可以方便的实现组网检测。5.3.1单总线介绍单总线即只有一根数据线,系统中的数据交换,控制都由这根线完成。单总线通常要求外接一个约为 4.7k10k 的上拉电阻,这样,当总线闲置时其状态为高电平。5.3.2 ds18b20特性介绍 ds18b20 单线数字温度传感器,即“一线器件”,其具有独特的优点: 采用单总线的接口方式 与微处理器连接时 仅需要一条口线即可实现微处理器与 ds18b20 的双向通讯。 单总线具有经济性好,抗干扰能力强,适合于恶劣环境的现场温度测量,使用方便等优点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。 测量温度范围宽,测量精度高 ds18b20 的测量范围为 -55 + 125 ; 在 -10+ 85c 范围内,精度为 0.5c 。 在使用中不需要任何外围元件。 支持多点组网功能多个ds18b20可以并联在惟一的单线上,实现多点测温。 供电方式灵活 ds18b20 可以通过内部寄生电路从数据线上获取电源。因此,当数据线上的时序满足一定的要求时,可以不接外部电源,从而 使系统结构更趋简单,可靠性更高。 测量参数可配置 ds18b20 的测量分辨率可通过程序设定 912 位。 负压特性 电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。 掉电保护功能 ds18b20 内部含有 eeprom ,在系统掉电以后,它仍可保存分辨率及报警温度的设定值。 ds18b20 具有体积更小、适用电压更宽、更经济、可选更小的封装方式,更宽的电压适用范围,适合于构建自己的经济的测温系统,因此也就被设计者们所青睐。5.3.3 ds18b20管脚介绍ds18b20管脚如下图: 图5-20 ds18b20管脚介绍ds18b20的管脚排列: gnd为电源 地; dq为数字信号输入输出端; vdd为外接供电电源输入端,在寄生电源接线方式时接地; 5.3.4 ds18b20内部结构 ds18b20 内部结构主要由四部分组成: 64 位光刻 rom 、温度传感器、非挥发的温度报警触发器 th 和 tl 、配置寄存器。 光刻 rom 中的 64 位序列号是出厂前被光刻好的,它可以看作是该 ds18b20 的地址序列码。 64 位光刻 rom 的排列是:开始 8 位(地址: 28h )是产品类型标号,接着的 48 位是该 ds18b20 自身的序列号,并且每个 ds18b20 的序列号都不相同,因此它可以看作是该 ds18b20 的地址序列码;最后 8 位则是前面 56 位的循环冗余校验码( crc=x8+x5+x4+1 )。由于每一个 ds18b20 的 rom 数据都各不相同,因此微控制器就可以通过单总线对多个 ds18b20 进行寻址,从而实现一根总线上挂接多个 ds18b20 的目的。ds18b20中的温度传感器完成对温度的测量,用16位二进制形式提供,形式表达,其中s为符号位。ds18b20内部结构如下图:图5-21 ds18b20内部结构5.3.5 ds18b20温度转化示例温度转化示例如下图:图5-22 ds18b20温度转化示意图5.3.6 ds18b20时序介绍ds18b20的一线工作协议流程是:初始化rom操作指令存储器操作指令数据传输。其工作时序包括:初始化时序写时序读时序初始化时序如下图:图5-23 ds18b20时序介绍主机首先发出一个480960微秒的低电平脉冲,然后释放总线变为高电平,并在随后的480微秒时间内对总线进行检测,如果有低电平出现说明总线上有器件已做出应答。如果没有低电平出现,一直都是高电平说明总线上无器件应答。作为从器件的ds18b20在一上电后就一直在检测总线上是否有480960微秒的低电平出现,如果有,在总线转为高电平后等待1560微秒后将总线电平拉低60240微秒做出响应存在脉冲,告诉主机本器件已做好准备。若没有检测到就一直在检测等待。 5.3.7 对ds18b20的写和读操作接下来就是主机发出各种操作命令,但各种操作命令都是向ds18b20写0和写1组成的命令字节,接收数据时也是从ds18b20读取0或1的过程。因此首先要搞清主机是如何进行写0、写1、读0和读1的。写周期最少为60微秒,最长不超过120微秒。写周期一开始做为主机先把总线拉低1微秒表示写周期开始。随后若主机想写0,则继续拉低电平最少60微秒直至写周期结束,然后释放总线为高电平。若主机想写1,在一开始拉低总线电平1微秒后就释放总线为高电平,一直到写周期结束。而做为从机的ds18b20则在检测到总线被拉底后等待15微秒然后从15us到45us开始对总线采样,在采样期内总线为高电平则为1,若采样期内总线为低电平则为0。ds18b20的写和读操作示意图:图5-24 ds18b20的写和读操作示意图对于读数据操作时序也分为读0时序和读1时序两个过程。读时序是从主机把单总线拉低之后,在1微秒之后就得释放单总线为高电平,以让ds18b20把数据传输到单总线上。ds18b20在检测到总线被拉低1微秒后,便开始送出数据,若是要送出0就把总线拉为低电平直到读周期结束。若要送出1则释放总线为高电平。主机在一开始拉低总线1微秒后释放总线,然后在包括前面的拉低总线电平1微秒在内的15微秒时间内完成对总线进行采样检测,采样期内总线为低电平则确认为0。采样期内总线为高电平则确认为1。完成一个读时序过程,至少需要60us才能完成。5.3.8 ds18b20操作步骤 每次读写前对 ds18b20 进行复位初始化。复位要求主 cpu 将数据线下拉 500us ,然后释放, ds18b20 收到信号后等待 16us60us 左右,然后发出60us240us 的存在低脉冲,主 cpu 收到此信号后表示复位成功。 发送一条 rom 指令ds18b20操作示意如下图:图5-25 ds18b20操作示意图发送存储器指令发送存储器指令如下图:图5-26发送存储器指令示意图5.3.9 ds18b20与单片机的接口电路ds18b20与单片机的接口电路如下图:图5-27 ds18b20与单片机的接口电路n 5.4设置模块设置模块采用四个按键与p14、p15、p16、p17相接组成独立按键,接口电路图如下:图5-28 设置模块接口电路图第六章 系统软件设计软件设计是本设计的关键,软件程序编写的好坏直接影响着系统运行情况的良好。因本程序涉及的模块较多,所以程序编写也采用模块化设计,c语言具有编写灵活、移植方便、便于模块化设计的特点,所以本系统的软件采用c51编写。程序框图如下图:图6-1 程序设计框图 温度检测模块第七章 系统硬件电路设计n 7.1 本设计硬件电路图1602接口电路如下图:图7-1 1602接口电路单片机电路图如下:图7-2 单片机电路图复位电路接口如下图:图7-3 复位电路接口 ds1302接口电路如下图:图7-4 ds1302排阻电路如下图:图7-5 排阻电路晶振电路如下图:图7-6 晶振电路第八章 系统硬件proteus仿真原理图仿真原理图如下图:第九章 系统硬件仿真运行情况图n 9.1 显示实时时间实时时间显示如下图:图9-1 实时时间仿真图n 9.2 显示实时温度实时温度显示如下图:图9-2 实时温度仿真图n 9.3时间设置实时时间设置如下图:图9-3 时间设置图结语 在整个设计过程中,结合专业知识,充分发挥人的主观能动性,自主学习,学到了许多没学到的知识。较好的完成了作品。达到了预期的目的,在最初的设计中,发挥“三个臭皮匠,顶个诸葛亮”的作用。相互学习、相互讨论、研究。完成了最初的设想。在电路焊接时虽然没什么大问题,但从中也知道了焊接在整个作品中的重要性,电路工程量大,不能心急,一个个慢慢来不能急于求成,反而达到事半功倍的效果。对电路的设计、布局要先有一个好的构思,才显得电路板美观、大方。程序编写中,由于思路不清晰,开始时遇到了很多的问题,经过静下心来思考,最后经过老师的指导,和同学的讨论,理清了思路,反而得心应手。在此次设计中,知道了做凡事要有一颗平常的心,不要想着走捷径,一步一脚印。也练就了我们的耐心,做什么事都要有耐心。此次比赛中学到了很多很多东西,这是最重要的。总之,这次毕业设计使我的能力得到了全方位的提高。通过完成一个包括电路设计和程序开发的完整过程,使我了解开发一单片机应用系统的全过程,为今后从事相关的事业打下基础。 致谢感谢成都工业学院给我提供了一个展现自己的舞台,给我一次难得煅炼的机会,使得我们的动手能力和专业技能都有了很大的提高。在做设计的日子里得到了指导教师罗老师的悉心指导,在此向我们的指导教师罗老师致以诚挚的谢意。 感谢提供相关技术帮助的老师和同学,你们的支持和鼓励使我对这次的作品完成有了信心和动力,也给了我很多无私的帮助和支持,我们在此深表谢意。在这段设计时间里,我的朋友以及同学也给了我很大的帮助,他们不仅热心地帮助我查找资料,而且指出我在设计中所存在的问题,并给出了很好的建议。我顺利的完成设计,他们也功不可没。在此,我向我的朋友及同学致以我最深的谢意,感谢你们对我的帮助。 成都工业学院毕业设计 。 参考文献1 张靖武,周灵彬.单片机原理及应用与proteus仿.北京:人民邮电出版社,20062 江志红.51单片机技术与应用系统开发案例精选.北京:科学出版社,20073 孙淑霞,代世雄. c程序设计教程.四川:四川科学技术出版社,2006 4 李光飞.单片机课程设计实例指导.北京:北京航空航天大学出版社,2008 5 曾一江.单片微机原理与接口技术.北京:科学出版社,20066 王法能.单片机原理及应用.北京:科学出版社,2007附录一:实物图实物图如下图所示:附录图1附录图2附录图3附录二 pcb图pcb图如下图:附录图4附录图5附录三 源程序代码#include #include /#include lcd1602.h/#include ds1302.h#define uint unsigned int#define uchar unsigned charsbit ds1302_clk = p17; /实时时钟时钟线引脚 sbit ds1302_io = p16; /实时时钟数据线引脚 sbit ds1302_rst = p15; /实时时钟复位线引脚sbit wireless_1 = p30;sbit wireless_2 = p31;sbit wireless_3 = p32;sbit wireless_4 = p33;sbit acc0 = acc0;sbit acc7 = acc7;char hide_sec,hide_min,hide_hour,hide_day,hide_week,hide_month,hide_year; /秒,分,时到日,月,年位闪的计数sbit set = p20; /模式切换键sbit up = p21; /加法按钮sbit down = p22; /减法按钮sbit out = p23; /立刻跳出调整模式按钮sbit dq = p10; /温度传送数据io口char done,count,temp,flag,up_flag,down_flag;uchar temp_value; /温度值uchar tempbuffer5,week_value2;void show_time(); /液晶显示程序/*1602液晶显示部分子程序*/port definitions*sbit lcdrs= p25;sbit lcdrw= p26;sbit lcden = p27;sfr dbport = 0x80;/p0=0x80,p1=0x90,p2=0xa0,p3=0xb0.数据端口/内部等待函数*unsigned char lcd_wait(void)lcdrs=0;lcdrw=1;_nop_();lcden=1;_nop_(); lcden=0;return dbport;/向lcd写入命令或数据*#define lcd_command0 / command#define lcd_data1 / data#define lcd_clear_screen0x01 / 清屏#define lcd_homing 0x02 / 光标返回原点void lcd_write(bit style, unsigned char input)lcden=0;lcdrs=style;lcdrw=0;_nop_();dbport=input;_nop_();/注意顺序lcden=1;_nop_();/注意顺序lcden=0;_nop_();lcd_wait();/设置显示模式*#define lcd_show0x04 /显示开#define lcd_hide0x00 /显示关 #define lcd_cursor0x02 /显示光标#define lcd_no_cursor0x00 /无光标 #define lcd_flash0x01 /光标闪动#define lcd_no_flash0x00 /光标不闪动void lcd_setdisplay(unsigned char displaymode)lcd_write(lcd_command, 0x08|displaymode);/设置输入模式*#define lcd_ac_up0x02#define lcd_ac_down0x00 / default#define lcd_move0x01 / 画面可平移#define lcd_no_move0x00 /defaultvoid lcd_setinput(unsigned char inputmode)lcd_write(lcd_command, 0x04|inputmode);/初始化lcd*void lcd_initial()lcden=0;lcd_write(lcd_command,0x38); /8位数据端口,2行显示,5*7点阵lcd_write(lcd_command,0x38);lcd_setdisplay(lcd_show|lcd_no_cursor); /开启显示, 无光标lcd_write(lcd_command,lcd_clear_screen); /清屏lcd_setinput(lcd_ac_up|lcd_no_move); /ac递增, 画面不动/液晶字符输入的位置*void gotoxy(unsigned char x, unsigned char y)if(y=0)lcd_write(lcd_command,0x80|x);if(y=1)lcd_write(lcd_command,0

温馨提示

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

评论

0/150

提交评论