




已阅读5页,还剩46页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
攀枝花学院本科毕业设计(论文) 摘 要摘 要从古至今,人们的生活和工作都离不开时间,而且随着人们生活工作的节奏逐步的加快,时间对人们的重要性也越来越深;因此,拥有一个不错的时钟,将对人们的生活带来很大的方便。单片机控制的lcd时钟的技术也越来越成熟,但是人们对时钟的要求也越来越高,所以lcd时钟的研发是不可滞停的。本文是以单片机作为控制核心的lcd时钟,利用ds1302芯片提供稳定的定时脉冲,使用ds18b20采集实时温度信息,用独立键盘实现日期、时间的校准和闹钟的设置与开关等,使用lcd液晶作为显示器,蜂鸣器用作闹钟。该液晶时钟可以应用于一般的生活和工作之中,也可以通过改装,提高性能,增加新功能,从而给人们的生活和工作带来更多的方便。关键词 单片机,时钟,lcd,ds1302,ds18b20攀枝花学院本科毕业设计(论文) abstractabstractsince ancient times, peoples life and work are inseparable from time and gradually accelerated, with the rhythm of peoples lives more and more time on the importance of peoples deep; therefore, have a good clock, will the people the lives of a great deal of convenience. microprocessor controlled lcd clock technology becomes more mature, but people are increasingly high requirements on the clock, lcd clock, r & d is not stagnation.this article is based on the mcu as the core of the lcd clock, using the ds1302 chip to provide a stable timing pulse, the ds18b20 collection of real-time temperature information, with a separate keyboard date, time calibration and alarm settings and switch, use the lcd as a monitor, buzzer as an alarm clock.the lcd clock can be applied to general life and work can also be modified, to improve performance, add new features to bring more convenience to peoples lives and work.key words mcu,clock,lcd,ds1302,ds18b20i攀枝花学院本科毕业设计(论文) 目录目 录摘 要iabstractii1 绪论11.1 课题介绍11.1.1 课题的背景和意义11.1.2 现状与发展趋势11.2 课题设计要求21.2.1 主要工作21.2.2 基本要求22 方案设计与论证32.1 时钟系统设计思路32.2 系统方案论证32.2.1 单片机选择32.2.2 时钟计时方案选择32.2.3 实时环境温度采集模块选择32.2.4 显示方式选择42.2.5 闹钟方案选择42.2.6 按键选择43 单片机介绍53.1 单片机基本结构53.2 at89s52简介53.3 at89s52引脚说明64 系统硬件设计84.1 单片机模块84.1.1 复位电路84.1.2 晶振电路94.2 液晶显示模块104.2.1 液晶显示原理104.2.2 lcd1602简介114.2.3 lcd1602特性114.2.4 lcd1602管脚功能114.3 时钟芯片模块124.3.1 ds1302简介124.3.2 ds1302引脚功能及结构134.4 温度检测模块134.4.1 ds18b20简介144.4.2 ds18b20性能描述144.4.3 ds18b20引脚说明144.5 蜂鸣器与按键模块154.5.1 蜂鸣器模块154.5.2 按键模块155 系统软件设计165.1 主程序165.1.1 主界面165.1.2 温度设置界面175.1.3 闹钟设置界面185.2 液晶显示程序185.2.1 lcd1602地址185.2.2 lcd1602指令195.2.3 lcd1602字符集205.2.4 lcd1602部分程序205.3 时钟芯片程序215.3.1 ds1302控制命令字节215.3.2 ds1302的寄存器225.3.3 ds1302数据传输225.3.4 ds1302部分程序235.4 实时温度程序245.4.1 ds18b20设置命令245.4.2 ds18b20时序245.4.3 ds18b20操作步骤265.4.4 ds18b20部分程序266 调试286.1 软件调试286.1.1 keil软件介绍286.1.2 程序调试296.2 硬件调试30结 论31参考文献32附录a:lcd1602的ascii码表33附录b:系统原理图34附录c:实物图35附录d:源程序36致 谢442攀枝花学院本科毕业设计(论文) 1 绪论1 绪论1.1 课题介绍随着科技的发展,以及电子信息科学系的迅速崛起,单片机在数字时钟领域中的使用已经是非常普遍的了,现在人们对数字时钟的功能以及工作顺序都非常的熟悉了;但是却很少人知道它的内部结构和工作原理。由单片机作为数字时钟的核心控制器,它可以通过时钟信号实现计时的功能,将其时间数据经单片机输出,利用显示器显示出来。通过键盘可以实现时间的校准,利用蜂鸣器可以实现闹钟功能。输出设备可以利用液晶显示或者数码管显示。1.1.1 课题的背景和意义从古至今,人们的生活就离不开时间,而为人们提供精准时间的时钟自然而然就成为了人们生活中的必需品;现如今数字时钟已经广泛应用于个人家庭以及办公室等公共场所,给人们的生活、学习、工作和娱乐带来了很大的方便。由于数字集成电路的发展和采用了先进的石英技术,使数字时钟具有走时准、性能稳定和携带方便等优点,它还用于计时、自动报时和自动控制等各个领域。尽管目前市场上已有现成的数字时钟集成芯片出售,价格便宜、使用方便,但是鉴于单片机也可以完成数字时钟的设计,因此使用单片机来进行数字时钟的设计是很简便的。在这里我们将已学过的比较零散的数字电路的知识有机构的、系统的联系起来用于实际。单片机具有体积小、功能强、可靠性高和价格低等一系列优点,不仅成为工业测控领域普遍采用的智能化控制工具,而已还渗入到人们工作和生活中的各个角落,有力地推动了各行业的技术改造的产品的更新换代。1.1.2 现状与发展趋势从单片机控制的数字时钟今年来的发展趋势来看,我们的数字电子时钟正在朝着三多一高一低一小发展,即多层次用户、多品种、多规格、高精度、低能耗和小体积。在这种趋势下,时钟的数字化、智能化已经成为现代时钟生产研究的主导设计方向。带有时钟功能的电子产品和电子设备近年来广泛地出现在国内外市场中。例如奥运会倒计时显示屏、道路安全显示屏、比赛计时屏幕、监控系统以及其它多种场合,这类产品覆盖了我们生活中的大多数地方。然而作为一种人机接口方式,仅仅只有lcd显示、键盘控制是远远不行的;所以在数字时钟上添加语音提示、音乐或者其它语音功能,能够使我们的数字时钟更有趣、更人性化,同时也能显得我们的数字时钟更加与众不同,所以要使各界领域更为的广泛使用数字时钟,那么对于语音的研究是有很大的实际意义的。1.2 课题设计要求能够实现基于单片机与ds1302芯片联合控制的lcd显示的电子时钟功能,并完成硬件设计和软件设计。1.2.1 主要工作设计和制作基于单片机的lcd显示的电子时钟电路:原理图的分析和设计;元器件的选择;程序的编写;制作和调试实物。还有是就毕业设计论文的编写。1.2.2 基本要求该时钟的基本功能应该包括有准确计时,时制为24小时制,能够以数字的形式在lcd上显示年、月、日,时、分、秒,星期使用英文字母加数字的形式进行显示,并且具有使用按键对时间进行校准功能,还有就是该时钟具有闹钟的功能,并能自行设置闹钟时间;以及实时环境温度显示的功能。45攀枝花学院本科毕业设计(论文) 2 方案设计与论证2 方案设计与论证2.1 时钟系统设计思路按照系统的设计功能要求,该液晶时钟系统的设计必须采用单片机软件系统来实现,用单片机的自动控制能力配合按键控制,来控制时钟、闹钟的调整及显示。获得时钟、温度和闹钟的数据信息,通过单片机对其进行一系列的处理,最后使用液晶显示出来。2.2 系统方案论证该设计主要讨论了,如何实现对液晶电子时钟的硬件设计和软件设计,以及如何实现液晶屏幕显示;接下来,我要介绍的是该设计方案所需元器件的选择,以及是怎么在进行选择。2.2.1 单片机选择对于单片机的选择,如果用8031系列,由于它没有内部ram,系统又需要大量内存存储数据,因而不可用;51系列单片机的rom为4k,对于我们设计的系统可能有点小;52系列单片机与51系列的结构一样,而rom扩大为8k,对我们设计系统提供充足的空间进行功能的扩展。再有51系列单片机与52系列的单片机价格差不多。因此,我选择52系列的单片机。2.2.2 时钟计时方案选择方案1:通过单片机内部的定时器/计数器,用软件实现,直接用单片机的定时器编程以实现时钟;方案2:用专门的时钟芯片实现时钟的记时,再把时间数据送入单片机,由单片机控制显示。虽然用软件实现时钟硬件线路简单,但是程序运行的每一步都需要时间,多一步或少一步程序都会影响记时的准确度,而且定时器计时也不是十分准确,时钟精度很低,对于我们实现所需要的功能造成软件编程非常复杂。用专用时钟芯片硬件成本相对较高,但它的精度很高,软件编程很简单。综上所述,我选择方案2,并选用ds1302时钟芯片。2.2.3 实时环境温度采集模块选择方案1:使用热敏电阻作为温度采集模块;方案2:使用ds18b20作为温度采集模块。热敏电阻是开发早、种类多、发展较成熟的敏感元器件,热敏电阻是由半导体陶瓷材料组成,利用的原理是温度引起电阻变化。通过一定的电路可以将周围环境的温度变化转化成电压的变化,通过ad转换器件将信号传输给单片机进行分析,从而测出当前环境温度,但是误差大,不稳定,对环境要求较高。ds18b20是美国dallas公司生产的数字温度传感器,采用单总线的接口方式,与微处理器连接时仅需要一条口线即可实现未处理器与ds18b20的双向通讯。单总线具有经济性好,抗干扰能力强,适合于恶劣环境的现场温度测量,使用方便等优点;ds18b20测量温度范围宽,测量精度高,供电方式灵活。非常适合本设计使用。所以综上所述我选择使用ds18b20作为本设计的实时温度采集模块。2.2.4 显示方式选择方案1:用数码管或led显示;方案2:用液晶1602显示;方案3:用液晶12864显示。时钟的显示可以用数码管或led,而且价格便宜。但是数码管的只能显示简单的设计的系统,与我们设计要求也不相符。有很多东西需要显示,还是用显示功能更好的液晶显示器比较好,它能显示更多的数据,用1602液晶显示数据有限,显示数据的可读性不好,用可以显示汉字的12864液晶显示器还可以增加显示信息的可读性,让人看起来会很方便。另外它们在价格上差距很大,考虑成本我们首选1602。所以综上所述,我选择使用液晶1602显示,即方案2。2.2.5 闹钟方案选择方案1:用蜂鸣器来实现实现闹钟的功能;方案2:用喇叭加语音芯片实现闹钟功能。用喇叭加语音芯片成本很高,但声音还不错,再有喇叭体积庞大。用蜂鸣器,成本低,电路结构简单,而且体积小。限于设计所需要的功能,用蜂鸣器是最佳选择。所以我选择使用蜂鸣器。2.2.6 按键选择方案1:购买集成键盘,采用矩阵形式连接;方案2:购买单个复位开关做成按键。虽然集成键盘美观,与单片机的接口少,但是它的成本比较高。在该设计中,单片机的i/o口对于我的时钟系统绰绰有余。所以我选用价格便宜单个复位开关做成按键。攀枝花学院本科毕业设计(论文) 3 单片机介绍3 单片机介绍单片机即微处理器,自1976年inter公司推出的mcs-48,迄今已有20多年了。由于单片机具有集成度高,功能强,体积小,功耗低,使用方便,价格低廉等一系列优点,目前已经应用到人们工作和生活的各个领域。在上一章中,已经讨论过了选择什么类型的单片机;根据该系统的需求,我选择使用的是at89s52芯片;接下来我们来对该设计中使用的单片机进行简要的介绍。3.1 单片机基本结构如图3.1所示为单片机的基本结构框图,它由8个部件组成,即中央处理器(cpu)、片内数据存储器(ram)、片内程序存储器(rom)、输入输出接口、可编程串行口、定时/计数器、中断系统及特殊功能寄存器(sfr)。各部分通过内部总线相连。在功能单元的控制上,采用了特殊功能寄存器的集中控制方法。图3.1 单片机基本结构框图3.2 at89s52简介at89s52实物如图3.2所示:图3.2 at89s52实物at89s52是一种低功耗、高性能cmos8位微控制器,具有8k在系统可编程flash存储器。使用atmel公司高密度非易失性存储器技术制造,与工业80c51产品指令和引脚完全兼容。片上flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位cpu和在系统可编程flash,使得at89s52在众多嵌入式控制应用系统中得到广泛应用。3.3 at89s52引脚说明at89s52的引脚图如图3.3所示:图3.3 at89s52引脚at89s52具有以下标准功能:8k字节flash,256字节ram,32位i/o口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,at89s52可降至0hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,cpu停止工作,允许ram、定时器/计数器、串口、中断继续工 作。掉电保护方式下,ram内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。接下来简单介绍一下在本设计中使用到的端口。p0口:p0口是一个8位漏极开路的双向i/o口。作为输出口,每位能驱动8个ttl逻 辑电平。对p0端口写“1”时,引脚用作高阻抗输入。 当访问外部程序和数据存储器时,p0口也被作为低8位地址/数据复用。在这种模式下,p0不具有内部上拉电阻。在flash编程时,p0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。p1口:p1口是一个具有内部上拉电阻的8位双向i/o口,p1输出缓冲器能驱动4个ttl逻辑电平。对p1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(iil)。此外,p1.0和p1.1分别作定时器/计数器2的外部计数输入(p1.0/t2)和定时器/计数器2的触发输入(p1.1/t2ex)。在flash编程和校验时,p1口接收低8位地址字节。p2口:p2口是一个具有内部上拉电阻的8位双向i/o口,p2输出缓冲器能驱动4个ttl逻辑电平。对p2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(iil)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行movx dptr)时,p2口送出高八位地址。在这种应用中,p2口使用很强的内部上拉发送1。在使用 8位地址(如movx ri)访问外部数据存储器时,p2口输出p2锁存器的内容。在flash编程和校验时,p2口也接收高8位地址字节和一些控制信号。rst:复位输入。当振荡器工作时,rst引脚出现两个机器周期以上高电平将是单片机复位。ale/prog:当访问外部程序存储器或数据存储器时,ale(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ale仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ale脉冲。对flash存储器编程期间,该引脚还用于输入编程脉冲(prog)。如有必要,可通过对特殊功能寄存器(sfr)区中的8eh单元的d0位置位,可禁止ale操作。该位置位后,只有一条movx和movc指令才能将ale激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ale禁止位无效。ea/vpp:外部访问允许,欲使cpu仅访问外部程序存储器(地址为0000h-ffffh),ea端必须保持低电平(接地)。需注意的是:如果加密位lb1被编程,复位时内部会锁存ea端状态。如ea端为高电平(接vcc端),cpu则执行内部程序存储器的指令。flash存储器编程时,该引脚加上+12v的编程允许电源vpp,当然这必须是该器件是使用12v编程电压vpp。xtal1:振荡器反相放大器和内部时钟发生电路的输入端。xtal2:振荡器反相放大器的输出端。攀枝花学院本科毕业设计(论文) 4 系统硬件设计4 系统硬件设计根据前面的电子时钟的设计要求,系统的硬件设计可以分为以下几个电路模块:单片机模块,时钟芯片模块,液晶显示模块,闹钟模块和按键模块,模块与模块的关系如图4.1所示:单 片 机 at89s52ds1302ds18b20晶 振复 位lcd1602蜂鸣器按 键图4.1 系统模块图4.1 单片机模块该设计中的时钟电路在硬件上是使用at89s52型号的单片机作为主要的控制系统;单片机的最小系统是由电源、复位和晶振组成的,接下来主要介绍一下复位电路和晶振电路,电源就不作介绍了。4.1.1 复位电路单片机复位是使cpu和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后pc0000h,使单片机从第个单元取指令。无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。单片机复位的条件是:必须使rst/vpd或rst引脚(9)加上持续两个机器周期(即24个振荡周期)的高电平。本系统时钟频率为11.0592mhz,每机器周期约为1us,则只需2us以上时间的高电平,在rst引脚出现高电平后的第二个机器周期执行复位。单片机的复位方式有两种,一是上电复位,二是按键手动复位;本设计就是用的手动按钮复位。按键手动复位有电平方式和脉冲方式两种。其中电平复位是通过rst端经电阻与电源vcc接通而实现的。按键手动复位电路见图4.2。时钟频率6mhz时,c取10uf,r2取200,r1取10k。图中s1、r2构成按键复位电路。若要复位,只需按图中的s1键,此时电源vcc经电阻r1、r2分压,在reset端产生复位高电平,两个机器周期后单片机复位。图4.2 单片机复位电路4.1.2 晶振电路xtal1是片内振荡器的反相放大器输入端,xtal2是输出端。使用外部振荡器时,外部振荡信号应直接加到xtal1,而xtal2悬空;内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12mhz,时钟频率就为6mhz。晶振的频率可以在1mhz24mhz内选择。图4.3 单片机晶振电路该设计采用的是内部方式,即利用芯片内部的振荡电路,如图4.3所示。at89系列的单片机内部有一个用于构成振荡器的高增益反相放大器,引脚xtal1和xtal2分别是此放大器的输入端和输出端;这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容c3和c4构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。本电路的时钟频率为11.0592mhz,电容c3、c4采用30pf的磁片电容。4.2 液晶显示模块本设计采用的1602液晶显示器来显示时钟的时间。液晶显示器是采用了液晶控制透光度技术来实现色彩的显示器,由于通过控制是否透光来控制亮与暗,当色彩不变时,液晶也保持不变,这样就无须考虑刷新率的问题。对于画面稳定,无闪烁感的液晶显示器,刷新率不高但图像也很稳定。lcd显示器还通过液晶控制透光度的技术原理来让底板整体发光,所以它做到了真正的完全平面,一些高档的数字lcd显示器采用了数字方式传输数据,显示图像,这样就不会产生由于显卡造成的色彩偏差或损失。完全没有辐射的优点,即使长时间观看lcd显示器屏幕也不会对眼睛造成很大的伤害。该设计中的液晶显示电路如图4.4所示:图4.4 液晶显示电路图中lcd的4、5、6引脚分别接的是单片机上的p2.0、p2.1、p2.2口。4.2.1 液晶显示原理lcd是由两块玻璃板构成,厚约1mm,其间由包含有液晶材料的5um均匀间隔隔开。因为液晶材料本身不发光,所以在显示器两边都设有作为光源的灯管,而在液晶显示屏背面有一块背光板(或成为匀光板)和反光膜,背光板时有荧光物质组成的可以发射光线,其主要是提供均匀的背景光源。背光板发出的光线在穿过第一层偏振过滤之后进入包含成千上万液晶液滴的液晶层。液晶层中的液滴都被包含在细小的单元格结构中,一个或多个第一个构成屏幕上的一个像素。在玻璃板与液晶材料之间是透明的电极,电极之间分为行和列,在行与列的交叉点上,通过改变电压而改变液晶的旋光状态,液晶的材料的左右能够类似于一个个小的光阀。在液晶材料周边是控制电路部分和驱动电路部分。当lcd中的电极产生电场时,液晶分子就会产生扭曲,从而将穿越其中的光线进行有规律的折射,然后进过第二层过滤层的过滤在屏幕上显示出来。4.2.2 lcd1602简介lcd1602的实物图如图4.5所示:1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个57或者511等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用,正因为如此所以他不能显示图形(用自定义cgram,显示效果也不好);1602lcd是指显示的内容为162,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。图4.5 lcd1602实物4.2.3 lcd1602特性+5v电压,对比度可调;内含复位电路;提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能;有80字节显示数据存储器ddram;内建有192个57点阵的字型的字符发生器cgrom;个可由用户自定义的57的字符发生器cgram。4.2.4 lcd1602管脚功能1602采用标准的16脚接口,如图4.6所示,其中:图4.6 lcd1602引脚图第1脚:vss为电源地;第2脚:vdd接5v电源正极;第3脚:v0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10k的电位器调整对比度);第4脚:rs为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器;第5脚:r/w为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作;第6脚:e(或en)端为使能(enable)端;第714脚:db0db7为8位双向数据端;第1516脚:空脚或背灯电源。15脚背光正极,16脚背光负极。4.3 时钟芯片模块时钟芯片ds1302与单片机at89s52的连接是由3条线来完成的,如图4.7所示;单片机的p1.0与时钟芯片的数据传输端相连,p1.1用来作为ds1302输入时钟sclk控制端,p1.2控制ds1302的复位输入端;ds1302接标准32.768khz晶振。图4.7 时钟芯片模块4.3.1 ds1302简介ds1302实物如图4.8所示:图4.8 ds1302实物ds1302是美国dallas公司推出的一种高性能、低功耗、带ram的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5v5.5v。采用三线接口与cpu进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或ram数据。ds1302内部有一个318的用于临时性存放数据的ram寄存器。ds1302是ds1202的升级产品,与ds1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。4.3.2 ds1302引脚功能及结构ds1302封装如图4.9所示:ds1302的引脚排列,其中vcc1为后备电源,vcc2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。ds1302由vcc1或vcc2两者中的较大者供电。当vcc2大于vcc1+0.2v时,vcc2给ds1302供电。当vcc2小于vcc1时,ds1302由vcc1供电。图4.9 ds1302封装x1和x2是振荡源,外接32.768khz晶振。rst是复位/片选线,通过把rst输入驱动置高电平来启动所有的数据传送。rst输入有两种功能:首先,rst接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,rst提供终止单字节或多字节数据的传送手段。当rst为高电平时,所有的数据传送被初始化,允许对ds1302进行操作。如果在传送过程中rst置为低电平,则会终止此次数据传送,i/o引脚变为高阻态。上电运行时,在vcc2.0v之前,rst必须保持低电平。只有在sclk为低电平时,才能将rst置为高电平。i/o为串行数据输入输出端(双向),后面有详细说明。sclk为时钟输入端。4.4 温度检测模块ds18b20有两种接法:一是单线法即只接dq;这种方法应用它内部的寄生电源,因此在dq上要用一个mosfet把i/o线只接拉到电源上;二是从vcc脚加上电源。方法一适合于远距离温度监控,不需要本地电源。而我们只是设计测温系统,选择方法二就行了,还有mosfet极容易烧坏,我们不用它。vcc接5v电源,gnd接地,dq与p3.3相连。温度传感器ds18b20与单片机的连接如图4.10所示:图4.10 温度检测电路4.4.1 ds18b20简介ds18b20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有ltm8877,ltm8874等等。主要根据应用场合的不同而改变其外观。ds18b20的实物如图4.11所示:图4.11 ds18b20实物封装后的ds18b20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。4.4.2 ds18b20性能描述独特的单线接口方式,ds18b20在与微处理器连接时仅需要一条口线即可实现微处理器与ds18b20的双向通讯;测温范围 55+125,固有测温分辨率0.5;支持多点组网功能,多个ds18b20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定;工作电源:35v/dc;在使用中不需要任何外围元件;测量结果以912位数字量方式串行传送;不锈钢保护管直径6;适用于dn1525, dn40dn250各种介质工业管道和狭小空间设备测温;标准安装螺纹m10x1,m12x1.5,g1/2任选;pvc电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。4.4.3 ds18b20引脚说明ds18b20的封装如图4.12所示:图4.12 ds18b20的pr-35封装i/o为数字信号输入/输出端;gnd为电源地;vdd为外接供电电源输入端(在寄生电源接线方式时接地)。4.5 蜂鸣器与按键模块4.5.1 蜂鸣器模块本设计中的闹钟是采用单片机输出一定频率的方波从而使蜂鸣器发出声音,其电路如图4.13所示:图4.13 蜂鸣器电路4.5.2 按键模块按键模块采用四个按键与单片机p1.4、p1.5、p1.6、p1.7口连接组成独立按键,电路如图4.14所示:图4.14 按键电路其中各个按键的作用为:k1:数值的减小(闹钟开);k2:数值的增加(闹钟关);k3:进入设置状态,切换设置项目;k4:切换lcd显示界面。攀枝花学院本科毕业设计(论文) 5 系统软件设计5 系统软件设计软件的设计是一个设计的关键,软件程序编写的好坏直接影响着系统运行情况。因为本设计中设计的模块较多,所以程序的编写也采用模块化来进行设计,c语言具有编写灵活、移植方便、便于模块化设计的特点,所以本设计的软件采用c51进行编写。5.1 主程序主程序的流程图如图5.1所示,先对电路进行初始化,然后开始顺序执行,在主程序中调用各个子程序,在各个子程序中利用数据传输、循环移位和中断方式等指令,在程序运行的时候可以对时钟进行调整,最终实现时钟的设计。图5.1 主程序流程图5.1.1 主界面开机显示完欢迎界面后看到的界面,我称之为主界面,在程序中我把该界面叫做显示模式0;在该界面中,看到的就是本设计所需要显示的内容,第一行为实时时间和当前温度,第二行为年月日和星期的信息,该界面的软件编写流程图如图5.2所示。在该界面中,可以完成日期和时间的校准;需要校准的情况下,按下按键k3,即当p1.6=0的时,就会进入校准状态;第一次按下k3时,屏幕上年的位置会闪烁,即是否对年进行校准,若需要校准,则按下按键k1(即p1.4=0)和k2(即p1.5=0),当按下k1时,年的数值减1,按下k2时,年的数值加1;调整完年后,继续按下k3,进行下一项的校准,直到秒校准后,按下k3退出校准状态。图5.2 显示模式0流程图5.1.2 温度设置界面图5.3 显示模式1流程图在主界面时,当p1.7=0时,即按下按键k4后,显示界面切换到温度上下限设置的界面,在程序中我称之为显示模式1;第一行显示的是实时的温度信息,第二行显示的是温度上下限;该界面流程图如图5.3所示。在该界面中,可以完成温度上下限的设置,当下限越限时,在实时温度后面显示“al”标识,当上限越限时,显示“ah”标识。5.1.3 闹钟设置界面在温度设置界面时,当p1.7=0时,即按下按键k4后,显示界面切换到闹钟设置的界面,在程序中我称之为显示模式2;在该界面中,第一行显示的是“alarm set”;第二行显示的是闹钟时间和开关,初始闹钟时间为7:30,状态为关,可以对其可以进行调整设置;该界面流程图如图5.4所示:图5.4 显示模式2流程图在该界面时,若按下k3,即p1.6=0时,则进入闹钟时间和开关的设置状态,在流程图中可以清楚的看出,按下按键k1(即p1.4=0)和k2(即p1.5=0)可以进行闹钟时间的设置,方式和前面的设置方式一样;只有在闹钟开关处设置时稍有不同,即按下k1时闹钟开,按下k2时闹钟关。5.2 液晶显示程序对于时钟的设计,我们就是要看到显示出来的信息;所以在本设计中,显示这一部分是最重要的。在这一部分程序中,主要有:液晶的初始化,读数据,写指令,读状态和指定位置显示字符等程序。接下来先介绍一下关于lcd1602的地址与指令。5.2.1 lcd1602地址hd44780内置了ddram(显示数据存储ram)、cgrom(字符存储rom)和cgram(用户自定义ram)。ddram就是显示数据ram,用来寄存待显示的字符代码。共80个字节,其地址和屏幕的对应关系见下表5.1:表5.1 ddram地址和屏幕的关系显示位置123456740ddram地址第一行00h01h02h03h04h05h06h27h第二行40h41h42h43h44h45h46h67h也就是说想要在lcd1602屏幕的第一行第一列显示一个“a”字,就要向ddram的00h地址写入“a”的代码就行了。但具体的写入是要按lcd模块的指令格式来进行的,后面我会讲到的。一行有40个地址在1602中我们就用前16个就行了。第二行也一样用前16个地址。对应见下表5.2:表5.2 ddram地址与显示位置的对应关系123413141516第一行00h01h02h03h0ch0dh0eh0fh第二行40h41h42h43h4ch4dh4eh4fh我们往ddram里的00h地址处送一个数据,譬如0x31(数字1的代码)并不能显示1出来。这是令初学者很容易出错的地方,原因就是如果你要想在ddram的00h地址处显示数据,则必须将00h加上80h,即0x80+0x00,若要在ddram的01h处显示数据,则必须将01h加上80h即0x80+0x01。依次类推。5.2.2 lcd1602指令表5.3 lcd1602指令集指令名称指令编码指令功能rsr/wdb7db0清屏0000000001清除液晶显示器,即将ddram的内容全部填入“空白”的字符码20h;光标归位光标归位000000001x将光标撤回液晶显示屏的左上方输入模式设置000001 i/d s设定每次写入1数据后光标的移动方向,并且设定每次写入的一个字符是否移动显示开关控制0000001dcb控制显示开/关、光标显示/关闭以及是否闪烁设定显示屏/光标移动方向000001 s/c r/l x x使光标移位或整个显示屏移位功能设定00001 dl n f x x设定数据总线位数、显示行数及字形设定cgram地址0001 cgram的地址设定下一个要存入数据的cgram的地址设定ddram地址001 ddram的地址设定下一个要存入数据的ddram的地址读忙信号/ac地址01 bf ac内容读取忙信号bf的内容,ac地址的内容写入数据10 要写入的数据将字符码写入ddram,使液晶显示器显示出相应的字符;将用户自己设计的图形存入cgram读出数据11 要读出的数据读出ddram或cgram中的内容在编程的时候写入相关的指令,就能显示出我们需要的信息,上面的表格介绍了主要的11条指令:1602液晶的操作有4种:状态读操作输入:rs=0、r/w=1、e=1,输出:db0db7的状态字;数据读操作输入:rs=1、r/w=1、e=1,输出:db0db7的数据;指令写操作输入:rs=0、r/w=0、e=1,输出:无;数据写操作输入:rs=1、r/w=1、e=1,输出:无。5.2.3 lcd1602字符集1602液晶模块内部的字符发生储存器(cgrom)已经储存了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“a”的代码是01000001b(41h),显示时模块把地址41h中的点阵字符图形显示出来,我们就能看到字母“a”。因为1602识别的是ascii码,设计可以用ascii码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如a。1602的16进制ascii码见附录a。5.2.4 lcd1602部分程序在这里我只简单的介绍一下液晶的初始化和指定位置显示字符的程序;初始化流程图如图5.5所示:图5.5 液晶初始化流程图关于液晶的初始化,涉及到液晶显示器的运作原理,在这里就不做过多的讲解。下面来看看在指定位置显示字符的程序,如下:void dlc(uchar x, uchar y, uchar code *ddata) uchar listlength,j; listlength = strlen(ddata); y &= 0x1; x &= 0xf; /限制x不能大于15,y不能大于1 if (x = 0xf) /x坐标应小于0xf for(j=0;jlistlength;j+) doc(x, y, ddataj); /显示单个字符 x+; 这个程序的作用是,在液晶的指定位置显示一串字符;在程序中,可以看到限制x不能大于15,y不能大于1,这里的x和y分别表示的是液晶的列和行,因为使用的lcd1602,所以列不能大于16,行不能大于2;在该程序中,还调用了在液晶的指定位置显示一个字符的程序。5.3 时钟芯片程序在这一部分里面主要是读出ds1302芯片的内部信息,传送给单片机,然后经液晶显示出来;另外就是当时间需要校准的时候,通过按键校准时间,然后通过单片机处理后,存入ds1302芯片之中。5.3.1 ds1302控制命令字节ds1302控制命令字节结构如表5.4所示:表5.4 ds1302控制命令字节结构765432101a4a3a2a1a0控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入ds1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取ram数据;位5至位1指示操作单元的地址;最低有效位(位0)为0表示要进行写操作,为1表示要进行读操作,控制字节总是从最低位开始输出。5.3.2 ds1302的寄存器ds1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为bcd码形式,其日历、时间寄存器及其控制字见下表5.5:表5.5 ds1302寄存器寄存器名命令字取值范围各位内容写操作读操作76543210秒80h81h0-59ch10secsec分82h83h0-59010minmin时84h85h01-1200-2312/24010/aphrhr日86h87h01-28、2930、310010datedate月88h89h01-1200010mmonth周8ah8bh01-0700000week年8ch8dh00-9910 yearyear表中有些特殊位需要特别指出:ch:时钟暂停位,当此位设置为1时,振荡器停止,ds1302处于低功率的备份方式;当此位变为0时,时钟开始启动。12/24:12或24小时方式选择位,为1时选择12小时方式。在12小时方式下,位5是am/pm选择位,此位为1时表示pm。在24小时方式下,位5是第2个小时位(2023)。操作说明:首先要通过8eh将写保护去掉,将日期,时间的初值写入各个寄存器;然后就可以对80h、82h、84h、86h、88h、8ah、8ch进行初值写入,同时也通过秒寄存器将位7的ch值改成0,这样ds1302就开始走时运行了;将写保护寄存器再写为80h,防止误改写寄存器的值;不断读取80h到8ch的值,将它们格式化后显示到lcd1602上。5.3.3 ds1302数据传输图5.6 ds1302数据传输ds1302的数据读写是通过i/o串行进行的。当进行一次读写操作时最少得读写两个字节,第一个字节是控制字节,就是一个命令,告诉ds1302是读还是写,是对ram还是对clok寄存器操作,以及操作地址;第二个字节就是要读或者写的数据。其时序图如图5.6所示:单字节写:在进行操作之前先得将rst置高电平,然后单片机将控制字的位0放到i/o上,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 林山流转合同范本
- 股权价转让合同范本
- 理财公司兼职合同范本
- 炼油设备租用合同范本
- 个人车辆借用合同范本
- 江苏防水维修合同范本
- 工程降水井合同范本
- 摄影器材采购合同范本
- 正式建筑合同范本
- 青皮核桃销售合同范本
- 2025年北京高端商务车租赁及全程安全保障合同
- 2025年智能家居产业互联互通标准与产业发展现状及问题研究报告
- 2025年领导干部政治理论知识必考题库及答案
- 2025年提取公积金租房合同范本
- 2025高职单招考试题(附答案)
- 储能系统运维安全手册
- GB/T 45997-2025科技成果五元价值评估指南
- 转让网约车合同协议书范本
- 医院 捐赠协议书
- (2025秋)人教版二年级数学上册全册教案(新教材)
- 小学食堂供餐管理方案(3篇)
评论
0/150
提交评论