多功能电子保姆机的设计与实现毕业设计.doc
内蒙古科技大学毕业设计说明书(毕业论文)题 目:多功能电子保姆机的设计与实现软件设计62多功能电子保姆机的设计与实现软件设计摘要随着生活节奏的加快,社会对于保姆的需求量越来越大,若利用电子技术设计出一款电子化、数字化、智能化的多功能电子保姆机,将被广泛应用于生活和工作当中。本设计以ATmega128单片机为核心处理器,使用DS1302实时时钟芯片提供时钟/日历数据,通过家用电器控制电路来实现电子保姆机的主要功能家用电器定时开关机控制,利用DS18B20数字化温度传感器测量室内温度,8段LED数码管显示时间、日期、年份和室内温度。此外,本设计中电子保姆机还具有闹钟、温度越限报警功能。因此该电子保姆机具有多功能性。该款多功能电子保姆机可以应用于生活和工作中,此外,人们也可以根据不同场合的要求,在此保姆机上加置其它功能,提高其性能,从而使其应用领域更为广泛。关键词:电子保姆机;家用电器定时控制;ATmega128;DS1302;DS18B20; Design and Implementation of Multi-functional electronic nanny MachineThe Design Of The SoftwareAbstractWith the accelerated pace of life, the demand for nannies is greatly increasing in our society . If electronic technology is used in the design of an electronic, digital, intelligent multi-functional electronic nanny machine, multi-functional electronic nanny machine will be widely used in our life and work. The design uses ATmega128 as a core processor and real-time clock chip DS1302 which provides the date of clock / calendar.The main function of the electronic nanny Machine,which is finished by the circuit of appliances, is to control appliances according to the setting time.In this design,DS18B20 digital temperature sensor measures the indoor temperature, and LED digital displays time, date, year ,indoor temperature and so on.Moreover, the electronic Nanny machine also has an alarm clock and alarm function of temperature,therefore the machine has the versatility . This multi-functional electronic nanny machine can use in the life and work. In addition, it can also be added other functions on various occasions,to improve its performance, making it have broader applications.Key word: electronic nanny machine; the control of domestic electric appliances; ATmega128;DS1302;DS18B20;目录摘要IAbstractII第一章 引言11.1 多功能电子保姆机研究的背景及意义11.2 多功能电子保姆机功能1第二章 多功能电子保姆机设计方案选择32.1 555定时器方案32.2 FPGA方案32.3 单片机设计方案4第三章 多功能电子保姆机硬件设计63.1 主要芯片选择63.1.1 单片机63.1.1.1 单片机选择63.1.1.2 ATmega128特点63.1.1.3 ATmega128引脚配置73.1.2 实时时钟芯片93.1.2.1 实时时钟芯片选择93.1.2.2 时钟芯片DS1302简介93.1.2.3 DS1302引脚功能93.1.2.4 DS1302内部结构及工作原理103.1.2.5 DS1302寄存器和控制命令及读写时序113.1.3 温度传感器133.1.3.1 温度传感器选择133.1.3.2 DS18B20简介133.1.3.3 DS18B20引脚功能133.1.3.4 DS18B20内部结构143.1.3.5 DS18B20工作过程153.2 多功能电子保姆机硬件设计163.2.1 实时时钟电路173.2.2 家用电器控制电路173.2.3 闹铃电路183.2.4 温度检测电路193.2.5 温度越限报警电路193.2.6 LED显示电路203.2.7 按键电路21第四章 多功能电子保姆机软件设计234.1 主程序设计234.2 子程序设计244.2.1 初始化子程序244.2.2 DS1302子程序254.2.3 家用电器控制子程序264.2.4 闹铃子程序274.2.5 DS18B20子程序274.2.6 温度越限报警子程序294.2.7 显示子程序294.2.8 键盘子程序30第五章 系统调试325.1 硬件调试325.1.1 单片机基础电路调试325.1.2 显示电路调试335.1.3 家用电器控制及闹铃电路调试335.1.4 温度检测及报警电路调试335.1.6 按键电路调试345.2 软件调试34结论36参考文献37附录A 多功能电子保姆机硬件电路图38附录B 程序39附录C 调试程序58致 谢61第一章 引言1.1 多功能电子保姆机研究的背景及意义随着电子技术产业结构的调整,生产工艺的飞速发展,人们生活水平不断提高,家用电器逐渐普及,市场对智能控制系统的需求也越来越大。人们都希望拥有一台多功能的电子保姆机,来自动地完成一些家务或自动控制家用电器。电子保姆机自动控制家用电器就是在无人操控的环境下,家用电器能够在设定的时间内工作。炎热的夏天,人们就想在未回家时空调工作,室内保持凉爽。如果一直开着空调,这样会十分浪费电。若有了多功能电子保姆机,就可以根据个人要求使空调在设定的时间内工作。家用电器定时控制功能实现的前提是准确的知道当前时间,在日常生活中时间对人们来说是相当宝贵的,学生上课得按时,工人上班得准时,和别人约会或召开会议得守时,火车到达得准点,航班起飞得准点;工业生产中,很多环节都需要用时间来确定工序替换时刻。然而,生活节奏的加快,工作的忙碌和繁杂容易使人们忘记当前时间。但是,当遇到重大事情的时候,一旦忘记时间,就会给自己或他人造成很大麻烦,所以说能随时准确的知道时间并利用时间,是我们生活和工作中必不可少的。最早能够定时、报时的时钟属于机械式钟表,但这种时钟受到机械结构、动力和体积的限制,在功能、性能以及造价上都没办法与电子时钟相比。随着电子产品的发展,在现代社会中,电子钟已成为人们日常生活中的必需品。电子时钟主要是利用电子技术将时钟电子化、数字化,拥有时间精确、体积小、接口良好、可扩展性能强等特点,被广泛应用于生活和工作当中。由于电子钟具有可扩展性,所以可在电子钟的基础上增加一些性能,便能够实现多功能电子保姆机的主要功能家用电器定时控制。此外,温度实时显示系统应用同样越来越广泛,比如空调遥控器上当前室温的显示、热水器温度的显示等等。医药卫生、工农业、化工生产上也有很多场合需要测量环境温度。鉴于温度对人们生活的重要性,多功能电子保姆机也应具有环境温度检测显示及温度越限报警功能。1.2 多功能电子保姆机功能以Atmega128单片机为核心部件,以实时时钟芯片,数字化温度传感器和家用电器控制电路为外围电路设计出的多功能电子保姆机具有以下功能:(1)家用电器定时开关机控制功能;(2)时间显示和手动校对功能,24小时制;(3)年、月、日显示和手动校对功能;(4)室内温度检测及显示功能;(5)闹铃功能;(6)温度越限报警功能;(7)时间、日历、室内温度切换显示功能;(8)掉电后无需重新设置时间和日期功能。第二章 多功能电子保姆机设计方案选择为了实现多功能电子保姆机的主要功能家用电器定时开关机控制,该电子保姆机必须具有能够提供时间的电子钟部分,电子钟既可以通过纯硬件电路实现,也可以通过软硬件相结合实现,根据电子钟的核心部分秒信号的产生原理,通常有以下几种设计方案。2.1 555定时器方案555定时器是美国Signetics公司1972年研制的用于取代机械式定时器的中规模集成电路,因输入端设计有三个5K的电阻而得名。目前生产的定时器有双极型和CMOS两种类型,其型号分别有NE555(或5G555)和C7555等多种。它们的结构和工作原理基本相同。通常,双极型定时器具有较大的驱动能力,而CMOS定时器具有低功耗、输入阻抗高等优点。555定时器工作的电源电压很宽,并可承受较大的负载电流。双极型定时器的电源电压范围为516V,最大负载电流可达200mA;CMOS定时器电源电压范围为318V,最大负载电流在4mA以下1。555定时器是一种多用途的数字-模拟混合集成电路,利用它能够方便地构成施密特触发器、单稳态触发器和多谐振荡器。由于使用灵活、方便,所以555定时器在波形的产生与变换、测量与控制、家用电器、电子玩具、定时器、脉冲信号发生器等许多领域中得到了应用2。采用555定时器产生秒脉冲信号,作为秒加法电路的时钟信号或微处理器的外部中断输入信号,可构成电子钟。采用555定时器设计电子时钟,成本低,容易实现。但是受芯片引脚数量和功能限制,不容易实现电子时钟的多功能性。2.2 FPGA方案FPGA是英文Field Programmable Gate Array(现场可编程门阵列)的缩写。它属于半制定的ASIC产品。是20世纪70年代发展起来的一种可编程逻辑器件,是目前数字系统设计的主要硬件基础。FPGA的出现使传统的电子器件和传统的电路设计受到了巨大的挑战。一片FPGA可以替代几十片,甚至上百片数字集成电路。 FPGA内部包括可编程逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和互连资源(Interconnect Resource)三个部分。 FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。 加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。同一片FPGA通过不同的编程数据可以产生不同的电路功能。FPGA在通信、数据处理、网络、仪器仪表、工业控制、军事和航空航天等众多领域得到了广泛应用。随着功耗和成本的进一步降低,FPGA还将进入更多的应用领域。通过一种标准化的硬件描述语言-VHDL语言编写代码,然后用仿真器验证其功能,再将设计代码综合成门级电路,最后下载到可编程逻辑器件FPGA中即可实现电子钟的设计。2.3 单片机设计方案单片机是在通用微机中央处理器的基础上,将输入/输出接口电路、时钟电路以及一定容量的内存等部件集成在同一芯片上,再加上必要的外围器件,如晶体振荡器。单片机主要面向工业控制,除了具有通用微机CPU的数值计算功能外,还必须具有较灵活、强大的控制功能,以便实时的检测系统的输入量,控制系统的输出量,从而实现自动控制功能。其特点有:(1)抗干扰性强,工作温度范围宽;(2)可靠性高;(3)电磁辐射量小;(4)控制功能很强,但数值计算能力较差;(5)指令系统比通用微机的指令系统简单;(6)单片机芯片往往不是单一的数字电路芯片,而是数字、模拟混合电路系统,即单片机芯片内常常集成了一定数量的模拟比较器、A/D及D/A转换电路;(7)采用嵌入式结构。尽管同一系列的单片机品种、规格繁多,但彼此差异却不大。随着人们对智能化设备的要求越来越高,各种智能设备发展越来越快,单片机作为当前应用广泛的嵌入式系统的核心部分之一,在工业、教育、日用生活等诸多领域得到了广泛的应用。例如,在冰箱、微波炉、洗衣机等家用电器中使用单片机控制系统,使它们更加智能地工作;电话、传真、打印机中可使用单片机系统控制拨号、打印;单片机可以在工业控制和机电一体化系统中作为核心部件。单片机均具有时钟振荡系统,利用系统时钟借助微处理器的定时器/计数器可方便地实现电子钟功能。考虑到时钟的精度问题,还可以在单片机的基础上利用实时时钟芯片。第三章 多功能电子保姆机硬件设计3.1 主要芯片选择3.1.1 单片机3.1.1.1 单片机选择自从1976年Intel公司推出MCS-48系列单片机以来,单片机技术得到了迅速的推广,已被广泛应用于自动测量、智能仪表、工业控制及家用电器各个方面。AVR单片机是Atmel公司1997年推出的一种具有双总线结构的RISC(Reduced Instruction Set Computer的缩写,即精简指令系统计算机) 单片机。RISC优先选取使用频率最高的简单指令,避免复杂指令;并固定指令宽度,减少指令格式和寻址方式的种类,从而缩短指令周期,提高运行速度。由于AVR采用了RISC的这种结构,使AVR系列单片机都具备了1MIPS/MHz(百万条指令每秒/兆赫兹)的高速处理能力。传统的MCS-51系列单片机所有的数据处理都是基于一个累加器的,因此累加器与程序内存、数据存储器之间的数据转换就成了单片机的瓶颈;在AVR单片机中,寄存器由32个通用工作寄存器组成,并且任何一个寄存器都可以充当累加器,从而有效地避免了累加器的瓶颈效应,提高了系统的性能。AVR单片机还支持 Basic、C等高级语言编程。采用高级语言对单片机系统进行开发是单片机应用的发展趋势。对单片机用高级语言编程可很容易地实现系统移植,并加快软件的开发过程。AVR单片机具有多个系列,包括 ATtiny、AT90、ATmega。每个系列又包括多个产品,它们在功能和内存容量等方面有很大的不同,但基本结构和原理都类似,而且编程方法也相同3。仅仅为了完成多功能电子保姆机的主要功能家用电器定时开关机控制,应用AVR任意一款单片机完全可以实现。若要实现时间/日历、温度显示,温度检测和温度越限报警功能,就需要更多的I/O端口,故本设计采用具有53个可编程I/O端口的ATmega128。3.1.1.2 ATmega128特点ATmega128是目前AVR中配置最全、功能最强的一款。它的引脚数最多(64个引脚),在片内集成了4K的SRAM、128K的Flash、4K的E2PROM,支持64K空间的外部并行扩展,其具体特点如下:(1)高性能、低功耗的 AVR 8 位微处理器;(2)先进的 RISC精简指令结构;(3)非易失性的程序和数据存储器;(4)JTAG 接口(与IEEE1149.1标准兼容);(5)外设特点 实时计数器(RTC), 4个具有比较模式和PWM的定时器计数器(两个带预分频器和一种比较模式的8位定时/计数器、两个扩充的带预分频器和比较模式捕获模式的16位定时/计数器); 两个USART、一个两线(I2C)串行接口、一个8通道10位具有可选增益差分输入的A/D转换器、一个SPI口、片内模拟比较器、一个带内部振荡器的可编程看门狗定时器;(6)特殊的处理器特点 上电复位和可编程的低电压检测,内部可校准的RC振荡器,外部和内部中断源,可软件选择时钟频率,全局上拉禁止; 6种可通过软件选择的省电模式;(7)I/O 和封装 53个可编程的I/O脚; 64引脚TQFP封装与64引脚MLF封装;(8)工作电压:4.55.5V;(9)速度等级:016 MHz 4。3.1.1.3 ATmega128引脚配置 ATmega128的引脚图如图3.1所示。图3.1 ATmega128引脚图其引脚功能如表3.1所示。表3.1 ATmega128引脚功能说明VCC电源 GND地端口A、B、C、D、E端口A、B、C、D、E都为8位的双向I/O口,并具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。复位发生时端口A、B、C、D、E为三态。端口F端口F为ADC的模拟输入引脚。如果不作为ADC的模拟输入,端口F可作为8位的双向I/O口,并具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。复位发生时端口F为三态。如果使能了JTAG接口,则复位发生时引脚PF7(TDI)、PF5(TMS)和PF4(TCK)的上拉电阻使能。端口GPG0PG4端口G为5位的双向I/O口,并具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输出使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。复位发生时端口G为三态。RESET复位输入引脚。超过最小门限时间的低电平将引起系统复位,XTAL1反向振荡器放大器及片内时钟操作电路的输入。XTAL2反向振荡器放大器的输出。AVCCAVCC为端口F以及ADC转换器的电源,需要与Vcc相连接,即使没有使用ADC也应该如此。使用ADC时应该通过一个低通滤波器与Vcc连接。AREFAREF为ADC的模拟基准输入引脚。PENPEN是SPI串行下载的使能引脚。在上电复位时保持PEN为低电平将使器件进入下载模式。在正常工作过程中PEN引脚没有其它功能。3.1.2 实时时钟芯片3.1.2.1 实时时钟芯片选择常用的实时时钟芯片有串行和并行两种类型,其中串行接口的时钟芯片包括I2C接口和三线接口。常见的串行接口时钟芯片有Phlilps的PCF8563、PCF8583,EPSON的RX8025、MAXIM-DALLAS的DS1305、DS1302、DS1307,美国Xicor公司的X1203等;并行接口的有MAXIM-DALLAS DS12C887系列、DS12887等。每种芯片的主要时钟功能基本相同,只是在引脚数量、备用电池的安装方式、计时精度和扩展功能等方面略有不同。对时间精度要求很高的情况下,典型的时钟芯片有:DS1302,DS12887,X1203等都可以满足高精度要求。考虑到DS1302芯片读写靠时序控制且具有写保护位,抗干扰效果好,日历及RAM中的数据不再改变,同时体积小,联机少,外围只有一个32768Hz晶振5。所以本设计选用实时时钟芯片DS1302。3.1.2.2 时钟芯片DS1302简介DS1302是DALLAS公司推出的涓流充电时钟芯片,内含一个实时时钟/日历和31字节静态RAM。实时时钟/日历电路提供秒、分、时、日、星期、月、年信息,每个月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM标志位决定采用24或12小时格式。DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需三根I/O线:复位RST、I/O数据线、串行时钟SCLK。时钟内部RAM的读/写数据以一字节或多达31字节的字符组方式通信。DS1302工作时功耗很低,保持数据和时钟信息时,功耗小于1mw6。3.1.2.3 DS1302引脚功能 DS1302芯片引脚如图3.2所示:图3.2 DS1302芯片引脚图其引脚功能如表3.2所示 。表3.2 DS1302引脚功能说明引脚号名称功能1VCC2主电源2 、3X1、X2接32.768KHz晶振4GND地5RST复位6I/O数据输入/输出7SCLK串行时钟8VCC1后备电源输入3.1.2.4 DS1302内部结构及工作原理DS1302的内部结构如图3.3所示:图3.3 DS1302内部结构图DS1302内部结构包括:移位寄存器、命令和控制逻辑、振荡器、实时时钟和RAM。为了初始化任何数据传送。通过把RST输入驱至高电平来启动所有的数据传送。RST有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次 ,RST提供了单字节或多字节数据传送的手段。时钟SCLK是上升沿后继以下降沿的序列。数据输入时,在时钟的上升沿前必须有效,而数据位在时钟的下降沿之后输出。如果RST输入为低电平,则 I/ O 引脚变为高阻状态,中止数据传送 7。3.1.2.5 DS1302寄存器和控制命令及读写时序对DS1302的操作就是对其内部寄存器的操作,DS 1302内部共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器以外的寄存器。日历、时间寄存器及控制字如表3.3所示,内部寄存器列表如表3.4所示。DS1302内部的RAM分为两类:一类是单个RAM单元,共31个,每个单元为一个8位的字节,其命令控制字为C0H-FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM,可一次性读写所有的RAM的31个字节。命令控制字分别为FEH(写)、FFH(读)。表3.3 日历、时钟寄存器与控制字的对照表寄存器名称765432101RAM/CKA4A3A2A1A0RD/W秒寄存器1000000分寄存器1000001小时寄存器1000010日寄存器1000011月寄存器1000100星期寄存器1000101年寄存器1000110写保护寄存器1000111慢充电寄存器1001000时钟突发寄存器1011111注:最后一位RD/W为“0”时表示进行写操作,为“1”时表示读操作。表3.4 DS1302内部主要寄存器分布表寄存器名称命令字取值范围各位内容写读76543210秒寄存器80H81H00-59CH10SECSEC分寄存器82H83H00-59010MINMIN小时寄存器84H85H01-12或00-2312/240AHRHR日期寄存器86H87H01-28,29,30,310010DATEDATE月份寄存器88H89H01-1200010MMONTH周寄存器8AH8BH01-0700000DAY年份寄存器8CH8DH00-9910YEARYEAR单片机是通过简单的同步串行接口与DS1302通讯的,每次通讯都必须由单片机发起,无论是读还是写操作,单片机都必须先向DS1302写入一个命令字。这个命令字的格式如表3.3所示。最高位BIT7固定为1, BIT6决定操作是针对RAM还是时钟寄存器,接着的5个BIT是RAM或时钟寄存器在DS1302的内部地址,最后一个BIT表示这次操作是读操作或是写操作。图3.4 DS1302数据读/写时序物理上,DS1302的通讯接口由3个接口线组成,即RST、SCLK、I/0。其中,RST从低电平变成高电平,启动一次数据传输过程,SCLK是时钟线,I/O是数据线。具体的读写时序如图3.4所示。3.1.3 温度传感器3.1.3.1 温度传感器选择温度测量在实际的生产、生活中具有十分重要的意义。温度作为一种最基本的环境条件参数,与工业、农业、养殖业的生产以及医学乃至人们的日常生活都是紧密相关的。大多单片机接口输入的信号是数字信号,或有带A/ D转换的高端单片机也可以输入模拟信号。由单片机获取非电信号的温度信息,必须通过温度传感器。传统的温度测量多以热敏电阻作为温度传感器,但是,热敏电阻的可靠性较差、测量温度精度低,而且还需经A/ D转换成数字信号后才能由单片机进行处理。因此,使用数字温度传感器可简化硬件设计,方便单片机读取数据、节约成本。 本设计选用一种基于“一线式”技术的数字温度传感器DS18B20,此温度传感器集温度测量和A/D转换于一体,直接输出数字量,接口几乎不需要外围组件,硬件电路结构简单,传输距离远,可以很方便的实现多点测量。3.1.3.2 DS18B20简介DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。它具有以下8种特性:(1)独特的单线接口方式: DS18B20与微处理器连接时仅需要一条接口线即可实现微处理器与DS18B20的双向通讯;(2)在使用中不需要任何外围组件;(3)可用数据线供电,电压范围: +3.0V+5.5 V;(4)测温范围: - 550C+1250C;(5)通过编程可实现912位的数字符读数方式;(6)用户可自设定非易失性的报警上下限值;(7)支持多点组网功能,多个DS18B20可以并联在惟一的总线上, 实现多点测温;(8)负压特性,电源极性接反时,温度计不会因发热而烧毁, 但不能正常工作8。3.1.3.3 DS18B20引脚功能 DS18B20的引脚分布如图3.5所示:图3.5 DS18B20引脚分布引脚功能描述如表3.5所示。表3.5 DS18B20引脚功能引脚号名称引脚功能描述1GND地信号2DQ数据输入/输出引脚;开漏单总线接口引脚;当被用在寄生电源下,也可以向器件提供电源。3VDD可选择的VDD引脚;当工作于寄生电源时,此引脚必须接地。3.1.3.4 DS18B20内部结构 DS18B20的内部结构如图3.6示。 图3.6 DS18B20内部结构图DS18B20主要由4部分组成:配置寄存器主要用于确定温度转换的分辨率、ROM中的64位序列号是出厂前被光刻好的,它是该DS18B20的地址识别码,每个DS18B20的64位识别码不相同。这样就可以实现1根总线上挂接多个DS18B20的目的,温度传感器、非易失性温度报警触发器TH和T L,可通过软件写入用户报警上下限值。高速缓存器内有八个字节,从低到高分别是温度低字节、温度高字节、上限报警温度TH、下限报警温度TL、结构寄存器、三个保留字节。 DS18B20的温度数据用高低两个字节的补码来表示如图3.7所示(以12位转换为例)。S为符号位,S= 1时表示温度为负,S= 0时表示温度为正。图3.7 DS18B20温度数据字节表示3.1.3.5 DS18B20工作过程由于DS 18B20单总线通信功能是分时完成的,它有严格的时序概念,因此读写时序很重要。主机对DS18B20的各种操作必须按协议进行。由于DS18B20是一个典型的单总线传感器,其命令序列如下:第一步:初始化;第一步:ROM命令(跟随需要交换的数据); 第二步:功能命令(跟随需要交换的数据)。初始化时首先单片机发出一个复位脉冲,使DS18B20复位:先将数据线拉低并保持480960s,再释放数据线,由上拉电阻拉高1560s后由DS18B20发出60240s的低电平作为应答信号。在主机检测到应答脉冲后,就可以发出ROM命令。当主机在单总线上连接多个从机设备时,可指定操作某个从机设备。这些命令还允许主机能够检测到总线上有多少个从机设备,以及其设备类型或者有没有设备处于报警状态。主机在发出功能命令之前,必须发送适当的ROM命令。当主机发出ROM命令以访问某个指定的DS18B20,接着就可以发出某个功能命令。这些命令允许主机写入或读出DS18B20缓存器,启动温度转换以及判断其供电方式等。对DS18B20访问是由主机发出特定的读写时间片来完成。写时间片时主机将数据线从高电平拉低1s以上,紧接送出写数据(“ 0” 或 “1” )保持60s, DS18B20在数据线拉低15s对数据线采样。在两次写时间片中必须有一个最小ls的恢复时间(高电平),并且一个写时间片的周期不能小于60s。读时间片时主机将数据线从高电平拉低ls以上,DS18B20在拉低信号线15s后送出有效数据,为了读取正确数据,主机必须停止将数据线拉低,然后在15s的时刻内将数据读走。两次读时间片的恢复时间和写时间片要求一致9。3.2 多功能电子保姆机硬件设计多功能电子保姆机硬件电路包括家用电器控制电路、实时时钟电路、温度检测电路、显示电路、按键电路、闹铃电路等几部分,此外本设计还要求电子保姆机具有温度越限报警功能,所以还需要设计温度越限报警电路。其硬件方框图如图3.8所示。图3.8 多功能电子保姆机硬件方框图本设计中以ATmega128为微处理器,通过实时时钟电路和家用电器控制电路来完成多功能电子保姆机的主要功能家用电器定时开关机。闹铃电路是为了完成闹铃功能,当所设定的时间和当前时间相同时,闹铃就响,铃响时间为1分钟。温度检测电路主要是检测室内的温度,并通过LED数码管进行显示。为了使室内的温度保持在人体最舒适的温度下,所以设计了温度越限报警电路,当检测的温度高于人体最舒适温度时,此电路就会工作,使发光二极管闪烁,提醒人们采取相应措施。按键电路为了完成时间/日期的校对、显示选择、闹铃时间设定、家用电器开关机时间设定和报警温度值设定等功能。显示电路采用4位最常用的共阳LED数码管,在默认的状态下显示时间,根据按键选择显示日期、年份和室内温度。该系统使用两种电源,主电源为+5V为整个系统供电,而备用电源+3V仅为DS1302供电。当+5V电源被切断后,DS1302采用+3V备用电源供电,使DS1302继续工作。当+5V主电源恢复供电时,依旧显示当前时间,因而不会因为系统掉电使DS1302停止工作。多功能电子保姆机硬件电路图见附录A。3.2.1 实时时钟电路 本设计采用实时时钟芯片DS1302来采集时间/日历数据,实时时钟电路如图3.9所示。图3.9 实时时钟电路DS1302采用I2C通信方式,可以用单片机的通用I/O口模拟I2C通信。其中RST为复位引脚,低电平有效,与单片机ATmega128的PC0相连;SCLK和I/O分别为同步时钟和数据I/O引脚,分别与ATmega128的PC2、PC1相连。引脚X1和X2连接32.768KHz晶振,与内部振荡器组成时钟。晶振的精度直接影响着芯片时间的准确与否。DS1302采用双电源供电。+5V的电源为主电源,+3V的电源为备用电源。当Vcc2低于Vcc1时,芯片由Vcc1供电;Vcc2高于Vcc1 0.2V时,将由备用电池为芯片供电11。3.2.2 家用电器控制电路 该电子保姆机要实现的主要功能是家用电器定时开关机控制,通过键盘设定家用电器开关机时间,定时地控制家用电器开关机。家用电器控制电路如图3.10所示。图3.10 家用电器控制电路 当设定的家用电器开机时间和当前时间相同时,单片机的PD3给出高电平,使NPN三极管导通,继电器吸合,此时家用电器工作;当设定的家用电器关机时间和当前时间相同时,单片机的PD3给出低电平,使NPN三极管截止,继电器释放,此时家用电器停止工作。图中1K的电阻是限制从I/O流出的电流太大,保护I/O端口,称为限流电阻。此外,三极管集电极的负载继电器吸合线圈在三极管截止时会产生一个很高的反峰电压,在吸合线圈两端并接一个二极管 D,其用途是释放反峰电压,保护三极管和 I/O 口不会被反峰电压击穿,提高系统的可靠性。设计中还要考虑系统在上电时的状态。由于 AVR 在上电时,DDRx 和 PORTx 的值均初始化为“0”,I/O引脚呈高阻输入方式,因此200K电阻的作用是确保三极管的集电极电位在上电时为“0”电平,三极管截止,保证了家用电器控制在上电时不会误动作。3.2.3 闹铃电路图3.11 闹铃电路闹铃电路如图3.11所示。蜂鸣器接在单片机的PD2引脚上,该引脚上接一个上拉电阻,三极管起驱动作用,当时间到达设定的闹铃时间时,PD2给出高电平使三极管导通,蜂鸣器通电后就发出有节奏的提示音,未到达设定的时间时,PD2给出低电平,蜂鸣器不发音12。3.2.4 温度检测电路 本设计中采用DS18B20将被测的室内温度转化成数字信号送单片机处理,温度检测电路如图3.12所示。图3.12 温度检测电路ATmega128的PC3接DS18B20的I/O引脚,作为数据的输入和输出端口。同时I/O引脚还要接一个4.7K