自动窗户控制器设计本科论文.doc

自动窗户控制器设计本科论文.doc

ID:11011869

大小:2.26 MB

页数:54页

时间:2018-07-09

上传者:zhaojunhui
自动窗户控制器设计本科论文.doc_第1页
自动窗户控制器设计本科论文.doc_第2页
自动窗户控制器设计本科论文.doc_第3页
自动窗户控制器设计本科论文.doc_第4页
自动窗户控制器设计本科论文.doc_第5页
资源描述:

《自动窗户控制器设计本科论文.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

题目自动窗户控制器设计学生姓名学号所在学院物理与电信工程学院专业班级电子信息工程专业12级4班指导教师______完成地点陕西理工学院__2016年6月5日3 陕西理工学院毕业设计自动窗户控制器设计作者:(陕西理工学院物理与电信工程专业12级4班,陕西汉中723000)指导老师:[摘要]目前广大家庭中仍然是以手动推拉的方式控制窗户的开与关,其不具备自动防雨、通气等人性化的功能。本次设计的自动窗户系统分别通过以下功能实现家具智能化,首先能通过DHT11其数据检测传感电路不断循环检测室外温湿度,当室外湿度达到一定时(下雨时)窗户自动关闭,防止潮湿空气或雨水进入房间,当室外温度过高时窗户自动开启,以便通气防止室内闷热;其次有LCD1602显示温湿度传感器实时监控的数据及DS1302时钟和键盘实现手动控制窗户开关及其程度的功能;再有便是以步进电机为窗户驱动的装置,以此可以达到控制窗户开关精度的目的;最后以51单片机为中央控制系统,用来分别处理DHT11检测到的外部信息用来显示及控制电机、键盘按下松开的高低电平用来实现手动控制的作用、LCD1602显示温湿度和时钟信号数据等。本设计解决了原始的人工开关窗户的不便,实现了针对不同情况下窗户的智能开关。[关键词]:51单片机;温湿度信息采集;信息显示;手动控制;智能开关; 陕西理工学院毕业设计TheDesignofAutomaticWindowControlAuthor:BianHao(Grade12,Class4,Majorelectronic1sandinformationengineering,SchoolofPhysicsandElectronicInformationEngineering,ShaanxiUniversityofTechnology,Hanzhong723000,Shaanxi)Tutor:ShuaiChunjiangAbstract:Themajorityoffamiliesstillinmanualpushandpullmodecontrolwindowswitch,itdoesnothavetheautomaticrainproof,ventilationandotherfunctions.Designedtobeimproved.First,ithasthefunctionofexternaltemperatureandhumiditydetectionanddisplay.Accordingtotheinformation,theautomaticswitchingwindowcanbecarriedout.Secondly,itusesthekeytoreplacethemanualpushpull.Thisdesignsolvestheinconvenienceoftheoriginalway,andrealizetheintelligentswitchofthewindowunderdifferentconditions.Keywords:Intelligentway;Informationcollection;InformationDisplay;Manualcontrol; 陕西理工学院毕业设计目录1引言11.1课题的背景11.2课题的意义11.3自动窗户发展现状12系统总体方案设计22.1设计要求22.2系统基本方案的选择22.2.1主控制模块方案22.2.2显示模块方案22.2.3传感器模块方案22.2.4按键模块方案22.2.5驱动模块方案23系统的硬件构成43.1单片机控制模块43.2驱动电路模块63.3传感器模块73.4液晶显示模块83.5时钟电路模块94软件仿真114.1仿真软件114.1.1Proteus软件介绍114.1.2Keil软件介绍114.2主程序流程图114.3Protues仿真125系统组装及调试135.1组装步骤135.2调试135.3功能及其实现145.3.1温湿度及时钟显示145.3.2窗户的人工控制145.3.3窗户的环境控制155.4焊接及注意事项165.4.1焊接前处理165.4.2焊接166结束语17致谢18参考文献19 陕西理工学院毕业设计附录A外文文献20附录B中文译文27附录C系统原理图32附录D实物图33附录E元器件清单34附录F部分C语言程序35 陕西理工学院毕业设计1引言1.1课题的背景改革开放后,经济的发展远远超过了我们的想象,人们对物质生活的态度也改变了许多,不仅仅停留在吃饱穿暖的地步,而是开始追求有舒适、温馨的住所和汽车,并且对其的安全性、智能性有了更进一步的要求。自动家具控制系统已经在为我们的生活提供了便利,在各个方面,一种可以帮我们决策开关的智能窗户急需引入我们的生活当中,它能够根据不同天气进行不同的开关模式,例如高温天气会适当开启一些进行透气,大雨天气则会关闭起来防止屋内受潮。因此,智能窗在各个领域中已被日益的重视起来。目前市场上也存在一些自动开关的窗户,但由于其可靠性差、造价高难以推广。随着电子技术额发展,单片机以其颇高的性价比已在工业领域、智能仪表领域得到了广泛的应用。1.2课题的意义随着科技的进步和人们对生活质量的追求也逐渐提高,人们更加重视生活环境是否较好室内的空气是否清新,时常的开窗通风换气也成为人们共同的生活习惯。可是在当今较快的生活节奏中,开窗关窗常常是人们出门后的后顾之忧,今天刚洗过的衣服晾在窗外,一旦刮风下雨,便无法不去担心,进而造成工作上的分神。现在市场上的自动关窗装置固然品种功能多样,但主要应用在一些较为高档建筑和各种公共场所,并且主要的都是和窗框一起定制,费用比较高与此同时不管是老的还是新建的住房事先安装的基本都是手动推拉窗,基本没有人愿意把已安装好的窗户拆掉,更换成多功能自动窗[1]。综上所述,本设计希望开发一种在普通窗户的基础上改进的自动开关窗装置,该装置装有湿度传感器,每当下雨或出现高温天气,窗户便自动关闭或关闭,解除用户的后顾之忧,让生活变得更加美好。1.3自动窗户发展现状智能窗户的关键,是使用了一种合成的氧化铟锡纳米晶体新材料。这种材料既能作为涂层涂于窗户玻璃表面,也可作为液体溶剂注入窗户双层玻璃的夹层之中。这种纳米晶体对光和热的传播,可以通过电压来调节:在严寒天气,可见光和近红外光都可以通过,从而使热量进入房间;而在酷暑季节,施加微弱电流可使窗户依然能够传播可见光,却会阻挡近红外光,从而避免太阳的热量进入房间。此外,锡还另外带有电荷,当施加电压时,纳米晶体里电子的密度会发生改变,从而使得所吸收的红外光的量也随之改变,于是房间始终保持适宜的温度。与此有异曲同工之妙的,是英国工程师弗雷德里克·麦基发明的一种全部由双层玻璃构成的智能窗户。玻璃夹层中充满水而不是空气。溶于水中的一种化学物质,能将阳光中的红外线能量和热量吸收掉,但不影响可见光的通过。玻璃夹层中的水是通过一台热交换器循环的。热交换器可以使水中的热量存储起来,也可以使之冷却,以便根据室外气温的变化,合理地加以利用。据介绍,这样动态性地改变红外光和热量的吸收,是一项重大技术创新[2]。上述新型智能窗户的问世,不仅能够使居住者感到十分舒适,而且可以减少普通窗户带来的能耗和花费——仅就美国建筑业而言,这笔花费每年大约为400亿美元。韩国研究人员研制出一种新型智能窗户,窗玻璃能根据室外温度不同变黑或变透明,起到隔绝热量或增加室内光线的作用。研究团队在美国化学学会主办的杂志中说,这种智能窗户有助节省能源。该智能窗户由韩国电子技术研究所的林浩苏和崇实大学的曹郑浩、金株勇共同研制。研究人员说,这种智能窗户可以在“夏季模式”与“冬季模式”间自由转换。夏季室外温度高,智能窗户会变暗,以“反射大部份太阳光,防止建筑内部受阳光照射而过热”;冬季室外温度低,智能窗户的玻璃会变得透明,以接收太阳带来的免费热量,“通过吸收太阳能,让房间保持温暖”。智能窗户由完全不透明状态转变成几乎完全透明状态用时很短,只需要几秒钟时间。智能窗户应用范围广,写字楼和住宅楼均能使用[3]。第49页共49页 陕西理工学院毕业设计2系统总体方案设计2.1设计要求基本要求:(1)需要有相应的手动控制;(2)检测的实时数据和时钟能显示在LCD屏上;(3)对窗户开关程度有一定的把握。创新要求:(1)温湿度信号控制步进电机;(2)内置预置可调。2.2系统基本方案的选择2.2.1主控制模块方案方案:STC89C52是STC公司生产的一种功耗低、性能高CMOS8位微控制器,具有8K在系统可编程Flash存储器。在单芯片上,拥有8位CPU和在线系统可编程Flash,使得STC89C52为众不多的嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下的标准功能:8k字节Flash,512字节RAM,看门狗定时器,32位I/O口线,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,2个外部中断,全双工串行口。另外STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。下载程序方面直接串口就可以下载[4]。2.2.2显示模块方案方案(一):LED二极管显示屏管易于安装耗电少、使用寿命长、成本低、亮度高等特点,但考虑到显示电路不仅仅用于显示单一数据,因此予以排除。方案(二):LCD1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块,能够同时显示16x2即32个字符。相比于方案一方案二更加符合我们的要求。2.2.3传感器模块方案方案(一):DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度符合传感器,具有优质的长期稳定性、超低能耗、使用便捷、价格实惠等特点,是我们的不二选择。方案(二):DHT21是一种更加灵敏的温湿度传感器,但相对于DHT11体型偏大,价格更是DHT11的5倍多,并不适合于本设计。2.2.4按键模块方案方案:使用独立式键盘。独立式键盘是直接用I/O口线构成的单个按键电路。独立式按键电路配置灵活,软件结构简单。2.2.5驱动模块方案方案(一):步进电机可实现精确定位,适用于本设计对窗户开关程度的掌控,但控制相对直流电机复杂。方案(二):直流电机控制相对简单,但定位精确度不高,可用于对速度要求高,而对位移定位不高的系统中。综上各方案所述:采用STC89C52作为主控制系统,DHT11作为传感器模块,LCD1602作为显示第49页共49页 陕西理工学院毕业设计模块,独立按键作为控制模块,步进电机作为驱动模块,系统框图如图2.1所示。中央控制器驱动器步进电机温湿度传感器显示电路检测电路电源电路图2.1系统结构框图具有以下特点:可靠性高,在系统设计的每一个环节,都应该将高可靠性作为首要的设计准则,系统一旦失去了可靠性也就失去了产品的生命力。因此,针对系统在具体使用过程中可能存在的情况根据理论原理对系统的设计方案深刻论证严格把关。性价比高,此自动关窗系统具有体积小、速度快、功耗低等特点,并且集成了丰富的硬件资源,具有很高性价比。在设计硬件时,尽量地做到简化设计,减少元器件的使用数量,提高复用度。操作简便,的功能将受到更多用户的欢迎,显著增加产品在市场上的竞争力。实现功能完备的同时,系统的操作使用上,尽量做到简单、方便,高度的人性化。比如说设防时只需要拨动一个按键就可以,系统状态全面直观,一目了然。模块化设计,根据本系统是用于自动关窗的这一应用目的,系统尽量使用模块化设计,实现模块化积木式组合与拆分的功能,便于以后的升级换代,减少二次投资,可以满足家庭使用的重要性和复杂度以及使用对象对功能和价格的选择。第49页共49页 陕西理工学院毕业设计3硬件系统3.1单片机控制模块89C52是一个低电压,高性能CMOS8位单芯片微型计算机,包含了8k字节的可反复擦写的闪速只读程序存储器和256字节的随机存取数据存储器(RAM),它采用ATMEL公司的高密度、非挥发性存储技术生产,与工业80C51单芯片微型计算机的指令与引脚完全兼容,片内置通用8位中央处理器和闪速存储单元,89C52单片机在电子行业中有着广泛的应用[4]。89C52主要功能特性:1)兼容MCS51指令系统2)8kB可反复擦写闪速只读存储器;3)32个双向的I/O口;4)256x8比特内部随机存储器;5)有3个16位的可编程定时/计数器中断;6)时钟频率0-24兆赫兹;7)2个串行中断,可编程UART串行通道;8)2个外部的中断源,共8个中断源;9)2个读写中断口线,3级加密位;10)有低功耗空闲状态和掉电模式,能将软件设置成睡眠状态并能将其唤醒;11)有PDIP、PQFP、TQFP及PLCC等几种封装形式,以便能够适应不同产品的需求。89C52管脚功能及管脚电压管脚图如图3.2所示:图3.1STC89C52管脚功能及管脚电压管脚图89C52为8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的89C51相同,其主要用于会聚调整功能的控制。其特点包括主IC的内部寄存器,RAM和外部接口的初始化数据融合,收敛调节控制,收敛测试图控制,红外遥控信号的接收和解码和红外主板和CPU通信的功能组件。其主要管脚有:XTAL1(19脚)和XTAL2(18脚)为专门为产生时钟振荡信号设立端口,外接12兆赫兹晶振。RST/Vpd(9脚)为引导内部复位输入端口,在外部与电阻电容组成复位电路。VCC(40脚)和VSS(20脚)为电源端口,分别接+5V电源和接地。P0~P3为可编程的通用I/O脚,其功能用途由软件定义,在本次设计中,P0端口(32~39脚)和P2端口(21~28脚)被定义为1602显示器的功能实现控制端口,分别与1602显示器相应的功能管脚相连,10~13脚定义为按键输入端,12脚、27脚及28脚定义为握手信号的功能端口,连接主板单片机的相应功能端,用于检测当前制式,会聚调整状态进入的控制功能[5]。P0口是一组8位漏极开路型双向I/O口,也即地址/数据的总线复用口。当其作为输出口时,每位驱动8个双极型逻辑集成电路,对其写“1”时,可当做高阻抗输入端来使用。在访问外部的数据或者程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问的这段时间内启动内部上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校正检验时,输出指令字节,校正检验时,要求外接电阻并上拉。第49页共49页 陕西理工学院毕业设计P1是一个带有内部上拉电阻的8位双向通行的I/O口,P1输出的缓冲级可以驱动(即吸收或输出电流)4个双极型逻辑集成电路。对其写“1”,通过内部自带的上拉电阻把端口拉到高电平,这时可作输入口。当作输入口使用时,因为内部有上拉电阻,当某个引脚被外部信号拉低时会输出一个电流(IIL)。与89C51不同的是,P1.0和P1.1还可以分别当做定时/计数器2的外部计数输入(P1.0/T2)和输入(P1.1/T2EX)见表3.1,在闪存编程和程序校正检验期间,P1接收低8位的地址。表3.1P1第二功能表端口引脚第二功能P1.0P1.1T2(定时/计数器2外部计数脉冲输入),时钟输出T2EX(定时/计数2捕获/重装载触发和方向控制)P2是内部含有上拉电阻的8位双向通行的I/O口,P2输出的缓冲级可以驱动(即吸收或输出电流)4个双极型逻辑集成电路。对其写“1”,通过自带的上拉电阻将端口拉到高电平,这时可将其作输入口,当作为输入口来使用时,因为内部有上拉电阻,当外部信号引脚被拉低时会输出一个电流(IIL)。在访问外部的程序memory或16位地址的外部数据memory时,P2口送出高8位的地址数据。在访问8位地址的外部的数据存储器(如实现MOVX@RI指令)时,P2口输出P2锁存器中的内容。在Flash编程或校验时,P2则接收高位地址和一些控制信号。P3是拥有内部上拉电阻的8位双向I/O口。P3输出的缓冲级可以驱动4个双极型逻辑集成电路。对其写入“1”时,通过内部上拉电阻拉将电平变成高电平并可作为输入端口。这时,被外部器件拉低电平的P3口将用内部上拉电阻来输出电流(IIL)。P3口除了作为普通的I/O口线外,更重要的是它的第二作用见表3.2,P3口还可以接收一些用于闪速存储器编程和程序校正检验的控制信号。表3.2P3口第二功能表端口引脚第二功能P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7RXD(串行输入)TXD(串行输出)INT0(外部中断0)INT1(外部中断1)T0(定时/计数器0外部输入)T1(定时/计数器1外部输入)WR(外部的数据memory写选通)RD(外部的数据memory读选通)RST复位输入端口。在振荡器进行工作时,只要RST引脚出现两个及以上机器周期的高电平就将单片机复位。ALE/PROG当访问外部的程序memory或者数据memory时,ALE输出的脉冲信号就用于锁存地址的低8位字节。通常情况下,ALE以时钟的振荡频率的1/6固定的输出脉冲信号,因此它可用于对外输出时钟信号或用于定时。特别注意的是:每当在访问外部数据memory时将会跳过一个ALE脉冲。对闪存存储器编程期间,这个引脚还被当做输入编程的脉冲(PROG)。如果有必要,可以通过对SFR区中的8EH单元的D0位进行置位,可禁止ALE进行操作。这个位置位以后,只有一条MOVX指令和MOVC指令才能够将ALE启动。另外,这个引脚会被稍微拉高,在单片机执行外部的程序时,应该将ALE禁止位设置为无效。PSEN程序储存使能(PSEN)输出是外部程序存储器的读选通脉冲信号,当STC89C52由外部程序memory取指令(或数据)时,在一个机器周期中PSEN有两次是有效的,即输出两个脉冲信号。与此同时,当访问外部数据memory,就会跳过两次PSEN脉冲信号。EA/VPP外部访问允许。如果想要使CPU只是访问外部的程序存储器(地址为0000H—FFFFH),那么EA端必须为低电平(接地)。如EA端接Vcc端,CPU就会执行内部程序memory中的指令。闪存存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。XTAL1振荡器反相放大器的及内部时钟发生器的输入端。XTAL2振荡器反相放大器的输出端。在STC89C52片内memory中,80H-FFH的共128个单元是SFR并不是所有的地址都被定义,从第49页共49页 陕西理工学院毕业设计80H—FFH只有一小部分是被定义的,还有一部分并没有被定义。对于那些没有被定义的单元进行读写操作是无效的,不仅读出的数据是不确定的,而且写入的数据也将被丢失。这些地址单元在将来的使用中可能会有新的功能,在这种情况下,复位后这些地址单元中数据总是为“0”[6]。STC89C52有256个Bit的内部RAM,80H-FFH高128个Bit与SFR地址是相同的,但物理上它们是独立的。当一条指令访问的地址为7FH以上的内部单元时,指令中所用到的寻址方式是有区别的,也即寻址方式决定是访问高128字节RAM还是访问SFR。STC89C52的定时器0和定时器1的工作方式与STC89C51相同。本设计系统中单片机最小系统如图3.2所示。图3.2单片机最小系统3.2驱动电路模块借助单片机STC89C52实现对四相步进电机的控制时,需要通过单片机的I/O端口输出具有一定时序的方波信号作为步进电机的控制信号,但如果只是靠这个TTL电平还是不能直接驱动电机。如果想用74LS373对电机进行驱动,那么必须要有许多寄存器的配合才能够驱动电机,因此考虑使用ULN2003芯片来驱动步进电机。ULN2003是一种高电压、大电流的达林顿陈晶体管。每一对达林顿都串联一个2.7K的基极电阻,在5V工作电压下与TTL和CMOS电路直接相连,可以直接处理需要标准逻辑缓冲器来处理的数据。ULN2003的灌电路可达500mA,并且在关态是能够承受50V的电压,可在高负载电流下并行输出运行。电机驱动的关键要点就是准确控制电机旋转的角度。在进行程序设计时需要根据系统中各传感器检测的信息判断电机方向,以更好的起动相应的所需要转动方向子程序。正转和反转控制程序根据控制脉冲序列的要求,使用相应的系统模型,并确定是否大幅度转向,使用改变脉冲宽度的方式来调节电机的转速。在应用程序的设计中将电机的控制方法形成控制模型,并将该模型用数据表形式保存在程序存第49页共49页 陕西理工学院毕业设计储器中,这样程序在使用过程就能直接使用。一般都是用逻辑电路来对步进电机进行脉冲控制,单片机控制电机时,电机的运行方式、方向及转速通常可以通过编写相应的程序由I/O口输出脉冲信号来决定。为了能够提高电机转动角度的准确性,采用减速比为1:64的减速齿轮构成的传动机构,也就是当角度改变90°时,外部所能看到到的设备才转动1°。系统中步进电机及其驱动电路如图3.3所示,ULN2003的数据传输口与单片机P1口的前四位连接。图3.3电机驱动连接图3.3传感器模块DHT11数字温湿度传感器是一款复合传感器。它利用特殊的数字模块采集技术和温湿度传感技术,以保证其具有较高的可靠性与优异的长久稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件。因此该传感器具有优良的品质、响应速度快、较强的抗干扰能力、成本低性能好等优点。采用单总线串行接口,使系统变得简便而快捷。超小的体积、极低的功耗,具有20米以上的传输能力,使其成为普通的应用乃至最为苛刻的应用中最佳的选择[7]。产品采用4针单排的引脚封装形式,在使用中方便连接,其管脚如表3.3所示。表3.3DHT11管脚表管脚名称功能1234VDDDATANCGND供电3-5.5VDC串行数据,单总线空脚,请悬空接地,电源负极DHT11采用的电源为3-5.5V。传感器在得电后,要等待1s以达到稳定的状态。电源(VDD,GND)之间可利用一个100nF的电容,用以去耦滤波。DATA用于中央处理器与DHT11之间的信息传送和通讯,一次通讯周期4ms左右,数据由小数部分和整数部分两部分组成,具体传送格式如下说明。操作流程如下:一次完整的数据总长度为40字节,高位数据先出。数据格式:8字节湿度整数部分数据+8字节湿度小数部分数据+8字节温度整数部分数据+8字节温度小数部分数据+8字节的校正检验和。正确的校验和数据等于8字节湿度整数部分数据+8字节湿度小数部分数据+8字节温度整数部分数据+8字节温度小数部分数据的结果的最后8位[8]。用户单片机发出一次启动指令后,DHT11将从低耗能状态变换成高速状态,当单片机的启动指令结束后,DHT11发送出响应信号,送出40字节的数据,并进行一次信号的采集。此状态下,DHT11只有在接收到启动信号时才会进行一次温湿度的采集工作,如果没有接收信号,DHT11不会主动进行数据的采集。采集数据后自动转换到低速状态。对湿度的定义:(1)相对湿度,指空气中水汽压与饱和水汽压的百分比。湿空气的绝对湿度与相同温度下可能第49页共49页 陕西理工学院毕业设计达到的最大绝对湿度之比。也可表示为湿空气中水蒸气分压力与相同温度下水的饱和压力之比。  (2)相对湿度有三种表示方法:  a.含湿量,它表示湿空气中水蒸气质量(g)与干空气质量(kg)之比,单位是g/kg。  b.绝对湿度,它表示每立方米的湿空气中含有的水蒸气的质量,单位是千克/立方米(kg/m³)。  c.相对湿度,表示空气中的绝对湿度与同温度下的饱和绝对湿度的比值,得数是一个百分比。  相对湿度用RH来表示。相对湿度的定义是单位体积空气内实际所含的水气密度(用d1表示)和同温度下饱和水气密度(用d2表示)的百分比,即RH(%)=d1/d2x100%。[9]由于Protues元器件库中没有DHT11,故此找到与其功能管脚相同的SHT11来代替,其DATA口与单片机P3.5口连接,如图3.4所示。图3.4DHT11连接图3.4液晶显示模块1602液晶显示,它是一种专门用来显示简单数据的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶,管脚如图3.5所示。图3.5LCD1602管脚图1602的管脚功能如下:第一脚:VSS为接地端;第二脚:VCC为接+5V端;第三脚:VDD用来调节对比度,为了更好的显示需接一个10K的滑动变阻器来进行调节;第四脚:RS=1是使用数据寄存器,RS=0是使用指令寄存器;第49页共49页 陕西理工学院毕业设计第五脚:RW是读写信号线,高电平时进行读操作。低电平时进行写操作;第六脚:E端为使能端,高电平时读取信息,负跳变时执行指令;第七至十四脚:D0~D7为8位双向数据端;第十五、十六脚:为背景电源,十五脚为正,十六脚为负。系统中显示模块电路LCD1602数据口D0~D7与单片机P0口连接,RS与P2.7口连接,R/W与P2.6口连接,E与P2.5口连接,如图3.6所示。图3.6LCD1602连接图3.5时钟电路模块DS1302是DALLAS公司推出的涓流充电时钟芯片内含有一个实时时钟/日历和31字节静态RAM通过简单的串行接口与单片机进行通信实时时钟/日历电路提供秒分时日日期月年的信息每月的天数和闰年的天数可自动调整时钟操作可通过AM/PM指示决定采用24或12小时格式DS1302与单片机之间能简单地采用同步串行的方式进行通信仅需用到三个口线1RES复位2I/O数据线3SCLK串行时钟时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信DS1302工作时功耗很低保持数据和时钟信息时功率小于1mW。DS1302是由DS1202改进而来,增加了以下的特性:双电源管脚用于主电源和备份电源供应,Vcc1为可编程涓流充电电源附加七个字节存储器它广泛应用于电话传真便携式仪器以及电池供电的仪器仪表等产品领域[10]。下面将主要的性能指标作一综合:·实时时钟具有能计算2100年之前的秒、分、时、日、日期、星期、月、年的能力还有闰年调整的能力·31*8位暂存数据存储RAM·串行I/O口方式使得管脚数量最少·宽范围工作电压2.05.5V·工作电流2.0V时,小于300nA·读/写时钟或RAM数据时有两种传送方式单字节传送和多字节传送字符组方式·8脚DIP封装或可选的8脚SOIC封装根据表面装配·简单3线接口第49页共49页 陕西理工学院毕业设计·与TTL兼容Vcc=5V·可选工业级温度范围-40+85·与DS1202兼容·在DS1202基础上增加的特性系统中时钟模块DS1302I/O口与单片机P3.2口连接,SCLK与单片机P3.3连接,RST(低电平有效)与单片机P3.1连接VCC2为备用电源,X1与X2外接32.768KHz晶振,如图3.7所示。图3.7DS1302连接图第49页共49页 陕西理工学院毕业设计4软件仿真4.1仿真软件4.1.1Proteus软件介绍Proteus软件是英国Labcenterelectronics公司研发的EDA工具软件。它是一个集模拟电路、数字电路、模数混合电路以及多种微控制器系统为一体的系统设计和仿真平台。从原理布图、代码调试一直到单片机和外围电路的协同仿真,一键切换到PCB的设计,真正的实现了从概念到产品的全套设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三者结合为一体的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续添加其它系列的处理器模型。在编译这方面,它也支持IAR、Keil和MPLAB等多种编译器的使用[11]。4.1.2Keil软件介绍KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。Keil使用说明:启动Keil建立一个工程选择工程保存位置选择单片机(MCU)型号Keil弹出对话框询问是否将初始化代码一起加入工程建立.c文件将.c文件添加到工程开始编写程序写完程序后,点“编译”“链接”编译成功后,生成HEX文件,将生成的HEX装载到仿真单片机完成相应的功能。4.2主程序流程图本系统的单片机使用了ATMEL公司的低功耗单片机STC89C52。主程序中仅完成了系统的初始化和开始的显示部分,然后就进入待机模式。当产生中断时,单片机被唤醒并执行相应的中断服务子程序,从中断子程序返回后,系统又进入到待机模式。整个程序的设计使系统在绝大多数时间都处于最低功耗状态。整个系统软件需要对温度传感器DHT11、窗户控制系统进行管理。温度传感器DHT11为数字式温度传感器,直接与单片机的串口连接来读取温度。以上所有模块均在主程序中完成初始化过程,系统流程图如图4.1所示。各模块的驱动子程序主体思路分别是:驱动模块:由于步进电机并不是依靠电流驱动,而是靠ULN2OO3将电脉冲进行分配,所以单片机将以0001(A),0011(AB),0010(B),0110(BC),0100(C),1100(CD),1000(D),1001(DA)的脉冲形式分为8拍控制步进电机[12];传感器:系统初始化后通过单片机发出的起始信号DHT11进入高速工作模式,由DATA口发送40位数据,分别是8位湿度整数+8位湿度小数+8位温度整数+8位温度小数=8位校正位;显示模块:LCD1602是以读/写数据的步骤来完成数据的显示,首先以将要显示数据的位置写入程序,再将所示数据的内容写入。第49页共49页 陕西理工学院毕业设计大于设定值开始结束NY系统初始化LCD初始化传感器数据读取驱动电机图4.1主程序流程图4.3Protues仿真如图4.2所示为本设计的总体系统仿真图。其左下部分为步进电机及驱动电路,左上为单片机最小系统,右下是DHT11温湿度传感器电路,右中为时钟电路;再其左侧是键盘电路,右上是LCD1602显示电路。图4.2系统仿真图第49页共49页 陕西理工学院毕业设计5系统组装及调试5.1组装步骤将之前各个模块的原理图组合最终形成整体的原理图,根据整体原理图进行实际电路的连接与调试。(1)形成整体的原理图,并对其进行完善。(2)对万能板进行检查,是否存在问题。(3)清点所需要的器件及工具,是否完全。(4)将各器件进行焊接,形成实际电路板。(5)对电路板进行调试,解决存在的问题[13]。其主要组成部分有控制模块、传感器模块、键盘/显示模块、时钟模块、驱动模块。虽然其模块组成不多,但是在布局及焊接时出现的问题却频频不断,比如在走线过程中焊锡供量不均匀导致的短路、模块管脚与芯片管脚出现断路等。经过反复的检测与资料查找了解了PCB电路的走线方式通过导线来完成连接解决了此问题,在整体电路走线方面则采用杜邦线来完成LCD1602与STC89C52单片机及DHT11与STC89C52单片机的连接,这样不仅减少了焊接的工作量也避免了短路情况的再次发生。5.2调试在调试环节分别对系统硬件调试、软件调试及软硬结合的调试。硬件调试主要是针对电路中存在的短路、断路、虚焊等问题来进行。在焊接所有模块之前首先对各个模块的性能管脚导通性进行测试,主要是通过一些简单的小程序来测试芯片能否达到预期目标。软件调试则是先对各部分模块的子程序进行验证,然后再将各个子程序引用于主程序中整体调试,逐步改进。实物组装完成后如图5.1所示。图5.1实物连接图第49页共49页 陕西理工学院毕业设计5.3功能及其实现5.3.1温湿度及时钟显示系统开启后LCD1602对温湿度及时钟开始显示。温湿度显示在第一行,时钟显示在第二行。如图5.2所示。图5.2系统开启图5.3.2窗户的人工控制本系统采用单点键盘控制,key1来控制电机正转(左上第一个),key2来控制电机反转(左上第二个),每一次按下步进电机便会有一定角度的转动。UNL2003A灯亮则表示其正常工作,而亮灯的顺序则表示此时驱动步进电机的相位拍数。如图5.3和5.4所示。图5.3手控电机转动前第49页共49页 陕西理工学院毕业设计图5.4手控电机转动后5.3.3窗户的环境控制经数据收集人体最舒适的室内温湿度是:冬天温度为18至25℃,湿度为30%至80%;夏天温度为23至28℃,湿度为30%至60%。在此范围内感到舒适的人占95%以上。据此数据本设计在内置程序中预置开窗温度设定在30°—35°,高于此温度可视为高温天气系统将不判定此温度为开窗温度,湿度定义在80%—85%区间,判定为阴雨天气防止屋内受潮,系统执行关窗操作。由于测试期间湿度难以达到预置区间,遂降低至70%—75%来进行测试[14]。如图5.5和5.6所示。图5.5温控电机转动前第49页共49页 陕西理工学院毕业设计图5.6温控电机转动后5.4焊接及注意事项5.4.1焊接前处理(1)检查电烙铁通电后是否正常,是否有良好的接地。(2)检查器件焊接部位的氧化层,若存在氧化层可用小刀刮去焊接部位表面的氧化层,使其露出金属光泽。电路板可用细纱纸将铜箔打光后,涂上一层松香酒精溶液。(3)对元件镀锡,进行以上处理后对器件和引线镀锡。可将引线蘸一下松香后,将带锡的电烙铁头压在引线上,并转动引线,即可使引线均匀地镀上一层很薄的锡层。导线焊接前,应将绝缘外皮剥去,再经过上面两项处理。如果导线内不是是多股金属丝,经过处理后应先拧在一起,然后再镀锡[15]。5.4.2焊接(1)握持电烙铁的方法。  通常握持电烙铁的方法有握笔法和握拳法两种。a.握笔法。适用于轻巧型的烙铁如30W的内热式。它的烙铁头是直的,头端锉成一个斜面或圆锥状的,适宜焊接面积较小的焊盘,本设计制作所采用的方法。b.握拳法。适用于功率较大的烙铁,在本设计的制作过程中采用的是小功率的烙铁因此不采用这种方法。(2)在印刷电路板上焊接引线的几种方法。a.直通剪头。引线直接穿过通孔,焊接时使适当的锡熔化在焊盘上方让其均匀地分布在沾锡的引线四周,形成一个圆锥体模样,等到它冷却凝固后,将过长的引线剪去。b.直接埋头。将引线通过焊孔并路出一定的长度,用熔化的焊锡把引线头固定在焊点里面。这种焊点像半球形,需要注意的是焊点是否存在虚焊。第49页共49页 陕西理工学院毕业设计6结束语经过这几个月毕业设计的学习制作过程,让我对大学四年所学到的知识有了一个很直观的认识,我们所学到的电路原理、软件编程知识,不仅仅是课本上的字句、作业中犯下的错误以及老师的批注,在实打实的制作过程中那些字句错误是我一次次试验成功与失败的原因,唯一不同的是这次没有了老师的批注对我犯下错误的指正,这些都要我自己在失败中总结,要亲自去翻阅元器件资料、组装了又拆卸电路板、对程序一遍遍的优化。通过这几个月我意识到了之前学过的知识并不是虚有的,它不但存在更为我指明前进的方向。现在回顾起来,可以说有甘有苦。在整个过程中遇到很多问题,而有些更是难以发现问题所在,这让我头疼万分,索性有指导老师的帮助,共同度过了难关。相比于苦,随着毕业设计验收答辩的顺利让之前的苦显得是那么值得,那么有意义。这是一个学习的过程,更是一个完善自我的过程,只是比课堂课本来的更痛快罢了。第49页共49页 陕西理工学院毕业设计致谢在此,非常感谢帅春江老师对我毕业设计的指导以及每周一次的督促。其次,感谢这四年来教我知识的各位老师,毕业设计及论文的顺利完成,你们对我有莫大的帮助。最后向与我一样日夜奋斗的同学们说声谢谢,你们的陪伴让枯燥的生活多了一阵清风。毕业论文的结束,标志着大学走到了最后,也标志着新生活的开始。愿大家往后能如今日般为梦想奋斗不息。第49页共49页 陕西理工学院毕业设计参考文献[1]邓学欣,檀润华.智能窗的概念设计[J].河北工业大学学报,2003(1).[2]GoldmanJM,PettersonMT,KopoticRJ,BarkerSJ.Masimosignalextractionpulseoximetry[J].JClinMonitComput.2000;16(7):75-83.[3]D.Tulone.Onthefeasibilityofglobaltimeestimationunderisolationconditionsinwirelesssensornetworks.[J].2010.[4]张毅刚.MCS-51单片机应用系统[M].哈尔滨:哈尔滨工业大学出版社,1997.[5]高洪志.MCS-51单片机原理及应用技术教程[M].北京:人民邮电出版社,2009.4.[6]杨学昭,王东云.单片机原理接口技术及应用第一版[M].西安,西安电子科技大学出版社,2009.[7]王煜东.传感器应用电路400例[M].北京:中国电力出版社,2008.[8]王化祥,张淑英.传感器原理及应用(第三版)[M].天津:天津大学出版社,2007.2.[9]曾光宇.现代传感器技术与应用基础[M].北京:北京理工大学出版社,2001:30—63.[10]周立功.DS1302使用数据手册[J].广州:广州周立功单片机发展有限公司,2009.[11]康华光.电子技术基础(数字部分)[M].北京:高等教育出版社,2000.[12]徐爱钧,彭爱华.单片机高级语言C51应用程序设计[M].北京:北京工业出社,1999.[13]罗民昌.集成电路系统[M].北京:中国铁道出版社,1998[14]华成英,童诗白.模拟电子技术基础-4版[M].北京.高等教育出版社,2006.[15]秦曾煌.电子技术(第六版)[M].北京:高等教育出版社,2004:80—103.第49页共49页 陕西理工学院毕业设计附录A外文文献Progress in ComputersPrestige Lecture delivered to IEE, Cambridge, on 5 February 2009 Maurice Wilkes       The first stored program computers began to work around 1950. The one we built in Cambridge, the EDSAC was first used in the summer of 1949. These early experimental computers were built by people like myself with varying backgrounds. We all had extensive experience in electronic engineering and were confident that that experience would stand us in good stead. This proved true, although we had some new things to learn. The most important of these was that transients must be treated correctly; what would cause a harmless flash on the screen of a television set could lead to a serious error in a computer. As far as computing circuits were concerned, we found ourselves with an embarass de richess. For example, we could use vacuum tube diodes for gates as we did in the EDSAC or pentodes with control signals on both grids, a system widely used elsewhere. This sort of choice persisted and the term families of logic came into use. Those who have worked in the computer field will remember TTL, ECL and CMOS. Of these, CMOS has now become dominant. In those early years, the IEE was still dominated by power engineering and we had to fight a number of major battles in order to get radio engineering along with the rapidly developing subject of electronics.dubbed in the IEE light current electrical engineering.properly recognised as an activity in its own right. I remember that we had some difficulty in organising a conference because the power engineers’ ways of doing things were not our ways. A minor source of irritation was that all IEE published papers were expected to start with a lengthy statement of earlier practice, something difficult to do when there was no earlier practice Consolidation in the 1960s  By the late 50s or early 1960s, the heroic pioneering stage was over and the computer field was starting up in real earnest. The number of computers in the world had increased and they were much more reliable than the very early ones . To those years we can ascribe the first steps in high level languages and the firstoperating systems. Experimental time-sharing was beginning, and ultimately computer graphics was to come along. Above all, transistors began to replace vacuum tubes. This change presented a formidable challenge to the engineers of the day. They had to forget what they knew about circuits and start again. It can only be said that they measured up superbly well to the challenge and that the change could not have gone more smoothly.  Soon it was found possible to put more than one transistor on the same bit of silicon, and this was the beginning of integrated circuits. As time went on, a sufficient level of integration was reached for one chip to accommodate enough transistors for a small number of gates or flip flops. This led to a range of chips known as the 7400 series. The gates and flip flops were independent of one another and each had its own pins. They could be connected by off-chip wiring to make a computer or anything else. These chips made a new kind of computer possible. It was called a minicomputer. It was something less that a mainframe, but still very powerful, and much more affordable. Instead of having one expensive mainframe for the whole organisation, a business or a university was able to have a minicomputer for each major department. 第49页共49页 陕西理工学院毕业设计Before long minicomputers began to spread and become more powerful. The world was hungry for computing power and it had been very frustrating for industry not to be able to supply it on the scale required and at a reasonable cost. Minicomputers transformed the situation. The fall in the cost of computing did not start with the minicomputer; it had always been that way. This was what I meant when I referred in my abstract to inflation in the computer industry ‘going the other way’. As time goes on people get more for their money, not less.  Research in Computer Hardware.  The time that I am describing was a wonderful one for research in computer hardware. The user of the 7400 series could work at the gate and flip-flop level and yet the overall level of integration was sufficient to give a degree of reliability far above that of discreet transistors. The researcher, in a university or elsewhere, could build any digital device that a fertile imagination could conjure up. In the Computer Laboratory we built the Cambridge CAP, a full-scale minicomputer with fancy capability logic.The 7400 series was still going strong in the mid 1970s and was used for the Cambridge Ring, a pioneering wide-band local area network. Publication of the design study for the Ring came just before the announcement of the Ethernet. Until these two systems appeared, users had mostly been content with teletype-based local area networks.  Rings need high reliability because, as the pulses go repeatedly round the ring, they must be continually amplified and regenerated. It was the high reliability provided by the 7400 series of chips that gave us the courage needed to embark on the project for the Cambridge Ring.  The RISC Movement and Its Aftermath  Early computers had simple instruction sets. As time went on designers of commercially available machines added additional features which they thought would improve performance. Few comparative measurements were done and on the whole the choice of features depended upon the designer’s intuition. In 1980, the RISC movement that was to change all this broke on the world. The movement opened with a paper by Patterson and Ditzel entitled The Case for the Reduced Instructions Set Computer. Apart from leading to a striking acronym, this title conveys little of the insights into instruction set design which went with the RISC movement, in particular the way it facilitated pipelining, a system whereby several instructions may be in different stages of execution within the processor at the same time. Pipelining was not new, but it was new for small computers  The RISC movement benefited greatly from methods which had recently become available for estimating the performance to be expected from a computer design without actually implementing it. I refer to the use of a powerful existing computer to simulate the new design. By the use of simulation, RISC advocates were able to predict with some confidence that a good RISC design would be able to out-perform the best conventional computers using the same circuit technology. This prediction was ultimately born out in practice. Simulation made rapid progress and soon came into universal use by computer designers. In consequence, computer design has become more of a science and less of an art. Today, designers expect to have a roomful of, computers available to do their simulations, not just one. They refer to such a roomful by the attractive name of computer farm.  The x86 Instruction Set第49页共49页 陕西理工学院毕业设计Little is now heard of pre-RISC instruction sets with one major exception, namely that of the Intel 8086 and its progeny, collectively referred to as x86. This has become the dominant instruction set and the RISC instruction sets that originally had a considerable measure of success are having to put up a hard fight for survival. This dominance of x86 disappoints people like myself who come from the research wings.both academic and industrial.of the computer field. No doubt, business considerations have a lot to do with the survival of x86, but there are other reasons as well. However much we research oriented people would like to think otherwise. high level languages have not yet eliminated the use of machine code altogether. We need to keep reminding ourselves that there is much to be said for strict binary compatibility with previous usage when that can be attained. Nevertheless, things might have been different if Intel’s major attempt to produce a good RISC chip had been more successful. I am referring to the i860 (not the i960, which was something different). In many ways the i860 was an excellent chip, but its software interface did not fit it to be used in a workstation.  There is an interesting sting in the tail of this apparently easy triumph of the x86 instruction set. It proved impossible to match the steadily increasing speed of RISC processors by direct implementation of the x86 instruction set as had been done in the past. Instead, designers took a leaf out of the RISC book; although it is not obvious, on the surface, a modern x86 processor chip contains hidden within it a RISC-style processor with its own internal RISC coding. The incoming x86 code is, after suitable massaging, converted into this internal code and handed over to the RISC processor where the critical execution is performed.  In this summing up of the RISC movement, I rely heavily on the latest edition of Hennessy and Patterson’s books on computer design as my supporting authority; see in particular Computer Architecture, third edition, 2003, pp 146, 151-4, 157-8.  The IA-64 instruction set.  Some time ago, Intel and Hewlett-Packard introduced the IA-64 instruction set. This was primarily intended to meet a generally recognised need for a 64 bit address space. In this, it followed the lead of the designers of the MIPS R4000 and Alpha. However one would have thought that Intel would have stressed compatibility with the x86; the puzzle is that they did the exact opposite.  Moreover, built into the design of IA-64 is a feature known as predicationwhich makes it incompatible in a major way with all other instruction sets. In particular, it needs 6 extra bits with each instruction. This upsets the traditional balance between instruction word length and information content, and it changes significantly the brief of the compiler writer.  In spite of having an entirely new instruction set, Intel made the puzzling claim that chips based on IA-64 would be compatible with earlier x86 chips. It was hard to see exactly what was meant. Chips for the latest IA-64 processor, namely, the Itanium, appear to have special hardware for compatibility. Even so, x86 code runs very slowly. Because of the above complications, implementation of IA-64 requires a larger chip than is required for more conventional instruction sets. This in turn implies a higher cost. Such at any rate, is the received wisdom, and, as a general principle, it was repeated as such by Gordon Moore when he visited Cambridge recently to open the Betty and Gordon Moore Library. I have, however, heard it said that the matter appears differently from within Intel. This I do not understand. But I am very ready to admit that I am completely out of my depth as regards the economics of the semiconductor industry.  第49页共49页 陕西理工学院毕业设计AMD have defined a 64 bit instruction set that is more compatible with x86 and they appear to be making headway with it. The chip is not a particularly large one. Some people think that this is what Intel should have done. [Since the lecture was delivered, Intel have announced that they will market a range of chips essentially compatible with those offered by AMD.]  The Relentless Drive towards Smaller Transistors  The scale of integration continued to increase. This was achieved by shrinking the original transistors so that more could be put on a chip. Moreover, the laws of physics were on the side of the manufacturers. The transistors also got faster, simply by getting smaller. It was therefore possible to have, at the same time, both high density and high speed.  There was a further advantage. Chips are made on discs of silicon, known as wafers. Each wafer has on it a large number of individual chips, which are processed together and later separated. Since shrinkage makes it possible to get more chips on a wafer, the cost per chip goes down.  Falling unit cost was important to the industry because, if the latest chips are cheaper to make as well as faster, there is no reason to go on offering the old ones, at least not indefinitely. There can thus be one product for the entiremarket.However, detailed cost calculations showed that, in order to maintain this advantage as shrinkage proceeded beyond a certain point, it would be necessary to move to larger wafers. The increase in the size of wafers was no small matter. Originally, wafers were one or two inches in diameter, and by 2000 they were as much as twelve inches. At first, it puzzled me that, when shrinkage presented so many other problems, the industry should make things harder for itself by going to larger wafers. I now see that reducing unit cost was just as important to the industry as increasing the number of transistors on a chip, and that this justified the additional investment in foundries and the increased risk.  The degree of integration is measured by the feature size, which, for a given technology, is best defined as the half the distance between wires in the densest chips made in that technology. At the present time, production of 90 nm chips is still building up Suspension of Law  In March 1997, Gordon Moore was a guest speaker at the celebrations of the centenary of the discovery of the electron held at the Cavendish Laboratory. It was during the course of his lecture that I first heard the fact that you can have silicon chips that are both fast and low in cost described as a violation of Murphy’s law.or Sod’s law as it is usually called in the UK. Moore said that experience in other fields would lead you to expect to have to choose between speed and cost, or to compromise between them. In fact, in the case of silicon chips, it is possible to have both. In a reference book available on the web, Murphy is identified as an engineer working on human acceleration tests for the US Air Force in 1949. However, we were perfectly familiar with the law in my student days, when we called it by a much more prosaic name than either of those mentioned above, namely, the Law of General Cussedness. We even had a mock examination question in which the law featured. It was the type of question in which the first part asks for a definition of some law or principle and the second part contains a problem to be solved with the aid of it. In our case the first part was to define the Law of General Cussedness and the second was the problem;A cyclist sets out on a circular cycling tour. Derive an equation giving the direction of the wind at any time.  The single-chip computer  第49页共49页 陕西理工学院毕业设计At each shrinkage the number of chips was reduced and there were fewer wiresgoing from one chip to another. This led to an additional increment in overall speed, since the transmission of signals from one chip to another takes a long time.  Eventually, shrinkage proceeded to the point at which the whole processor except for the caches could be put on one chip. This enabled a workstation to be built that out-performed the fastest minicomputer of the day, and the result was to kill the minicomputer stone dead. As we all know, this had severe consequences for the computer industry and for the people working in it.  From the above time the high density CMOS silicon chip was Cock of the Roost. Shrinkage went on until millions of transistors could be put on a single chip and the speed went up in proportion.  Processor designers began to experiment with new architectural features designed to give extra speed. One very successful experiment concerned methods for predicting the way program branches would go. It was a surprise to me how successful this was. It led to a significant speeding up of program execution and other forms of prediction followed Equally surprising is what it has been found possible to put on a single chip computer by way of advanced features. For example, features that had been developed for the IBM Model 91.the giant computer at the top of the System 360 range.are now to be found on microcomputers  Murphy’s Law remained in a state of suspension. No longer did it make sense to build experimental computers out of chips with a small scale of integration, such as that provided by the 7400 series. People who wanted to do hardware research at the circuit level had no option but to design chips and seek for ways to get them made. For a time, this was possible, if not easy  Unfortunately, there has since been a dramatic increase in the cost of making chips, mainly because of the increased cost of making masks for lithography, a photographic process used in the manufacture of chips. It has, in consequence, again become very difficult to finance the making of research chips, and this is a currently cause for some concern.  The Semiconductor Road Map  The extensive research and development work underlying the above advances has been made possible by a remarkable cooperative effort on the part of the international semiconductor industry. At one time US monopoly laws would probably have made it illegal for UScompanies to participate in such an effort. However about 1980 significant and far reaching changes took place in the laws. The concept of pre-competitive research was introduced. Companies can now collaborate at the pre-competitive stage and later go on to develop products of their own in the regular competitive manner.  The agent by which the pre-competitive research in the semi-conductor industry is managed is known as the Semiconductor Industry Association (SIA). This has been active as a US organisation since 1992 and it became international in 1998. Membership is open to any organisation that can contribute to the research effort.  Every two years SIA produces a new version of a document known as the International Technological Roadmap for Semiconductors (ITRS), with an update in the intermediate years. The first volume bearing the title ‘Roadmap’ was issued in 1994 but two reports, written in 1992 and distributed in 1993, are regarded as the true beginning of the series.  第49页共49页 陕西理工学院毕业设计Successive roadmaps aim at providing the best available industrial consensus on the way that the industry should move forward. They set out in great detail.over a 15 year horizon. the targets that must be achieved if the number of components on a chip is to be doubled every eighteen months.that is, if Moore’s law is to be maintained.-and if the cost per chip is to fall. In the case of some items, the way ahead is clear. In others, manufacturing problems are foreseen and solutions to them are known, although not yet fully worked out; these areas are coloured yellow in the tables. Areas for which problems are foreseen, but for which no manufacturable solutions are known, are coloured red. Red areas are referred to as Red Brick Walls. The targets set out in the Roadmaps have proved realistic as well as challenging, and the progress of the industry as a whole has followed the Roadmaps closely. This is a remarkable achievement and it may be said that the merits of cooperation and competition have been combined in an admirable manner. It is to be noted that the major strategic decisions affecting the progress of the industry have been taken at the pre-competitive level in relative openness, rather than behind closed doors. These include the progression to larger wafers.  By 1995, I had begun to wonder exactly what would happen when the inevitable point was reached at which it became impossible to make transistors any smaller. My enquiries led me to visit ARPA headquarters in Washington DC, where I was given a copy of the recently produced Roadmap for 1994. This made it plain that seriousproblems would arise when a feature size of 100 nm was reached, an event projected to happen in 2007, with 70 nm following in 2010. The year for which the coming of 100 nm (or rather 90 nm) was projected was in later Roadmaps moved forward to 2004 and in the event the industry got there a little sooner.  I presented the above information from the 1994 Roadmap, along with such other information that I could obtain, in a lecture to the IEE in London, entitled The CMOS end-point and related topics in Computing and delivered on 8 February 1996. The idea that I then had was that the end would be a direct consequence of the number of electrons available to represent a one being reduced from thousands to a few hundred. At this point statistical fluctuations would become troublesome, and thereafter the circuits would either fail to work, or if they did work would not be any faster. In fact the physical limitations that are now beginning to make themselves felt do not arise through shortage of electrons, but because the insulating layers on the chip have become so thin that leakage due to quantum mechanical tunnelling has become troublesome.  There are many problems facing the chip manufacturer other than those that arise from fundamental physics, especially problems with lithography. In an update to the 2001 Roadmap published in 2002, it was stated that the continuation of progress at present rate will be at risk as we approach 2005 when the roadmap projects that progress will stall without research break-throughs in most technical areas “. This was the most specific statement about the Red Brick Wall, that had so far come from the SIA and it was a strong one. The 2003 Roadmap reinforces this statement by showing many areas marked red, indicating the existence of problems for which no manufacturable solutions are known.  It is satisfactory to report that, so far, timely solutions have been found to all the problems encountered. The Roadmap is a remarkable document and, for all its frankness about the problems looming above, it radiates immense confidence. Prevailing opinion reflects that confidence and there is a general expectation that, by one means or another, shrinkage will continue, perhaps down to 45 nm or even less.  第49页共49页 陕西理工学院毕业设计However, costs will rise steeply and at an increasing rate. It is cost that will ultimately be seen as the reason for calling a halt. The exact point at which an industrial consensus is reached that the escalating costs can no longer be met will depend on the general economic climate as well as on the financial strength of the semiconductor industry itself.Insulating layers in the most advanced chips are now approaching a thickness equal to that of 5 atoms. Beyond finding better insulating materials, and that cannot take us very far, there is nothing we can do about this. We may also expect to face problems with on-chip wiring as wire cross sections get smaller. These will concern heat dissipation and atom migration. The above problems are very fundamental. If we cannot make wires and insulators, we cannot make a computer, whatever improvements there may be in the CMOS process or improvements in semiconductor materials. It is no good hoping that some new process or material might restart the merry-go-round of the density of transistors doubling every eighteen months.  I said above that there is a general expectation that shrinkage would continue by one means or another to 45 nm or even less. What I had in mind was that at some point further scaling of CMOS as we know it will become impracticable, and the industry will need to look beyond it.  Since 2001 the Roadmap has had a section entitled emerging research devices on non-conventional forms of CMOS and the like. Vigorous and opportunist exploitation of these possibilities will undoubtedly take us a useful way further along the road, but the Roadmap rightly distinguishes such progress from the traditional scaling of conventional CMOS that we have been used to. Advances in Memory Technology  Unconventional CMOS could revolutionalize memory technology. Up to now, we have relied on DRAMs for main memory. Unfortunately, these are only increasing in speed marginally as shrinkage continues, whereas processor chips and their associated cache memory continue to double in speed every two years. The result is a growing gap in speed between the processor and the main memory. This is the memory gap and is a current source of anxiety. A breakthrough in memory technology, possibly using some form of unconventional CMOS, could lead to a major advance in overall performance on problems with large memory requirements, that is, problems which fail to fit into the cache. Perhaps this, rather than attaining marginally higher basis processor speed will be the ultimate role for non-conventional CMOS. Shortage of Electrons  Although shortage of electrons has not so far appeared as an obvious limitation, in the long term it may become so. Perhaps this is where the exploitation of non-conventional CMOS will lead us. However, some interesting work has been done.notably by Haroon Amed and his team working in the Cavendish Laboratory.on the direct development of structures in which a single electron more or less makes the difference between a zero and a one. However very little progress has been made towards practical devices that could lead to the construction of a computer. Even with exceptionally good luck, many tens of years must inevitably elapse before a working computer based on single electron effects can be contemplated.第49页共49页 陕西理工学院毕业设计附录B中文译文微型计算机发展简史IEE的论文 剑桥大学,2009/2/5 莫里斯·威尔克斯  第一台存储程序的计算开始出现于1950前后,它就是1949年夏天在剑桥大学,我们创造的延迟存储自动电子计算机(EDSAC)。 最初实验用的计算机是由象我一样有着广博知识的人构造的。我们在电子工程方面都有着丰富的经验,并且我们深信这些经验对我们大有裨益。后来,被证明是正确的,尽管我们也要学习很多新东西。最重要的是瞬态一定要小心应付,虽然它只会在电视机的荧幕上一起一个无害的闪光,但是在计算机上这将导致一系列的错误。 在电路的设计过程中,我们经常陷入两难的境地。举例来说,我可以使用真空二级管做为门电路,就象在EDSAC中一样,或者在两个栅格之间用带控制信号的五级管,这被广泛用于其他系统设计,这类的选择一直在持续着直到逻辑门电路开始应用。在计算机领域工作的人都应该记得TTL,ECL和CMOS,到目前为止,CMOS已经占据了主导地位。 在最初的几年,IEE(电子工程师协会)仍然由动力工程占据主导地位。为了让IEE 认识到无线工程和快速发展的电子工程并行发展是它自己的一项权利,我们不得不面对一些障碍。由于动力工程师们做事的方式与我们不同,我们也遇到了许多困难。让人有些愤怒的是,所有的IEE出版的论文都被期望以冗长的早期研究的陈述开头,无非是些在早期阶段由于没有太多经验而遇到的困难之类的陈述。 60年代的巩固阶段 60年代初,个人英雄时代结束了,计算机真正引起了重视。世界上的计算机数量已经增加了许多,并且性能比以前更加可靠。这些我认为归因与高级语言的起步和第一个操作系统的诞生。分时系统开始起步,并且计算机图形学随之而来。 综上所述,晶体管开始代替正空管。这个变化对当时的工程师们是个不可回避的挑战。他们必须忘记他们熟悉的电路重新开始。只能说他们鼓起勇气接受了挑战,尽管这个转变并不会一帆风顺。 小规模集成电路和小型机 很快,在一个硅片上可以放不止一个晶体管,由此集成电路诞生了。随着时间的推移,一个片子能够容纳的最大数量的晶体管或稍微少些的逻辑门和翻转门集成度达到了一个最大限度。由此出现了我们所知道7400系列微机。每个门电路或翻转电路是相互独立的并且有自己的引脚。他们可通过导线连接在一起,作成一个计算机或其他的东西。 这些芯片为制造一种新的计算机提供了可能。它被称为小型机。他比大型机稍逊,但功能强大,并且更能让人负担的起。一个商业部门或大学有能力拥有一台小型机而不是得到一台大型组织所需昂贵的大型机。 随着微机的开始流行并且功能的完善,世界急切获得它的计算能力但总是由于工业上不能规模供应和它可观的价格而受到挫折。微机的出现解决了这个局面。 计算消耗的下降并非起源与微机,它本来就应该是那个样子。这就是我在概要中提到的“通货膨胀”在计算机工业中走上了歧途之说。随着时间的推移,人们比他们付出的金钱得到的更多。 硬件的研究 第49页共49页 陕西理工学院毕业设计我所描述的时代对于从事计算机硬件研究的人们是令人惊奇的时代。7400系列的用户能够工作在逻辑门和开关级别并且芯片的集成度可靠性比单独晶体管高很多。大学或各地的研究者,可以充分发挥他们的想象力构造任何微机可以连接的数字设备。在剑桥大学实验室力,我们构造了CAP,一个有令人惊奇逻辑能力的微机。 7400在70年代中期还不断发展壮大,并且被宽带局域网的先驱组织Cambridge Ring所采用。令牌环设计研究的发表先于以太网。在这两种系统出现之前,人们大多满足于基于电报交换机的本地局域网。 令牌环网需要高可靠性,由于脉冲在令牌环中传递,他们必须不断的被放大并且再生。是7400的高可靠性给了我们勇气,使得我们着手Cambridge Ring.项目。 精简指令计算机的诞生 早期的计算机有简单的指令集,随着时间的推移,商业用微机的设计者增加了另外的他们认为可以微机性能的特性。很少的测试方法被建立,总的来说特性的选取很大程度上依赖于设计者的直觉。很久以前,Intel 和 Hewlett-Packard引进了IA-64指令集。这最初主要是为了满足通常的64位地址空间问题。在这种情况下,随后出现了MIPS R4000和Alpha。然而,人们普遍认为Intel应该与x86构架保持兼容,可令人疑惑的是恰恰相反。 进一步说,IA-64的设计与其他所有的指令集在主要实现方式上有所不同。特别的,每条指令它需要附加的6位。这打乱了传统的在指令字长和信息内容的平衡,并且它改变了编译器作者的原先的大纲。 尽管IA-64是个全新的指令集,但Intel发表了一个令人困惑的声明:基于IA-64的芯片将与早期的x86芯片保持兼容。很难弄懂它所指的是什么。 最新的称为Itaninu IA-64处理器显然需要特殊的兼容性的硬件,尽管如此,x86编码运行的相当慢。 由于以上的复杂因素,IA-64的实现需要更大的体积相对与传统的指令集,这暗示着更大的消耗。因此,在任何情况下,作为常识和一般性的标准,Gordon Moore在访问剑桥最近开放的Betty and Gordon Moore 图书馆时所反复强调。在听到他说问题出现在Intel内部也许有所不同,我很不理解。但是我已经作好了准备,去接受这样的事实,我已经完全不了解半导体经济学了。 AMD已经定义了一种64位的与x86更加兼容的指令集,并且他们已经取得了进展。这种片子并不是很大。很多人认为这才是Intel应该做的。(在这篇演讲稿被提交之前,Intel表示他们将销售一系列本质上与AMD兼容的芯片) 更小晶体管的出现 集成度还在不断增加,这是通过缩小原始晶体管以致可以更容易放在一个片子上。进一步说,物理学的定律占在了制造商的一方。晶体管变的更快,更简单,更小。因此,同时导致了更高的集成度和速度。 这有个更明显的优势。芯片被放在硅片上,称为晶片。每一个晶片拥有很大数量的独立芯片,他们被同时加工然后分离。因为缩小以致在每块晶片上有了更多的芯片,所以每块芯片的价格下降了。 单元价格下降对于计算机工业是重要的,因为,如果最新的芯片性能和以前一样但价格更便宜,就没有理由继续提供老产品,至少不应该无限期提供。对于整个市场只需一种产品。 第49页共49页 陕西理工学院毕业设计然而,详细计算各项消耗,随着芯片小到一定程度,为了继续保持产品的优势,移到一个更大的圆晶片上是十分必要的。尺寸的不断增加使的圆晶片不再是很小的东西了。最初,圆晶片直径上只有1到2英寸,到2000年已经达到了12英寸。起初,我不太明白,芯片的缩小导致了一系列的问题,工业上应该在制造更大的圆晶片上遇到更多的问 题。现在,我明白了,单元消耗的减少在工业上和在一个芯片上增加电子晶体管的数量是同等重要的,并且,在风险中增加圆晶片厂的投资被证明是正确的。 集成度被特殊的尺寸所衡量,对于特定的技术,它是用在一块高密度芯片上导线间距离的一半来衡量的。目前,90纳米的晶片正在被建成。 对Murphy’s定理的怀疑 1997年3月,在Cavendish实验室建立一百周年纪念庆典上,Gordon Moore被邀作为一名演讲者。在他演讲的过程中,我第一次了解到这样一个事实,我们可以使得硅芯片既快并且消耗低,从而违反在英国被称为Murphy’s 定律或 Sod’s 定律。Moore说在其它领域你也许不在二者之间做出取舍,但事实上,在硅片上,同时拥有二者是可能的。 在网上可得到一本相关的书籍,Murphy是在美国空军中从事人体重力加速度研究的工程师。然而在我们的学生时代就已经相当熟悉该定律,当时我们对于该定律有个更接近散文的名字而不是上面我们提到的那两个名字,我们称为General Cussedness定律。甚至它都曾出现在我们的试卷上。问题是这样,第一部分是关于该定律的定义,第二部分是应用该定律解决一道问题。我们的试题是:一、给出General Cussedness定律的定义;二、当一个骑自行车人围绕着圆做运动时,在任何情况下,考虑到风的因素得到一个平衡公式。 单片机 芯片每次的缩小,芯片数量将减少;并且芯片间的导线也随之减少。这导致了整体速度的下降,因为信号在各个芯片间的传输时间变长了。 渐渐地,芯片的收缩到只剩下处理器部分,缓存都被放在了一个单独的片子上。这使得工作站被建成拥有当代小型机一样的性能,结果搬倒了小型机绝对的基石。正如我们所知道的,这对于计算机工业和从事计算机事业的人产生了深远的影响 自从上述时代的开始,高密度CMOS硅芯片成为主导。随着芯片的缩小技术的发展,数百万的晶体管可以放在一个单独的片子上,相应的速度也成比例的增加。 为了得到额外的速度。处理器设计者开始对新的体系构架进行实验。一次成功的实验都预言了一种新的编程方式的分支的诞生。我对此取得的成功感到非常惊奇。它导致了程序执行速度的增加并且其相应的框架。 同样令人惊奇的是,通过更高级的特性建立一种单片机是有可能的。例如,为IBM Model 91开发的新特性,现在在单片机上也出现了。 Murphy定律仍然在中止的状态。它不再适用于使用小规模集成芯片设计实验用的计算机,例如7400系列。想在电路级上做硬件研究的人们没有别的选择除了设计芯片并且找到实现它的办法。一段时间内,这样是可能的,但是并不容易。不幸的是,制造芯片的花费有了戏剧性的增长,主要原因是制造芯片过程中电路印刷版制作成本的增加。因此,为制作芯片技术追加资金变的十分困难,这是当前引起人们关注的原因。 半导体前景规划 第49页共49页 陕西理工学院毕业设计对于以上提到的各个方面,在部分国际半导体工业部门的精诚合作下,广泛的研究与开发工作是可行的。 在以前美国反垄断法禁止这种行为。但是在1980年,该法律发生了很大变化。预竞争概念被引进了该法律。各个公司现在可以在预言竞争阶段展开合作,然后在规则允许的情况下继续开发各自的产品。 在半导体工业中,预竞争研究的管理机构是半导体工业协会。1972年作为美国国内的组织,1998年成为一个世界性的组织。任何一个研究组织都可加入该协会。 每两年,SIA修订一次ITRS(国际半导体科学规划),并且逐年更新。1994年在第一卷中引入了“前景规划”一词,该卷由两个报告组成,些于1992年,在1993年提交。它被认为是该规划的真正开始。 为了推动半导体工业的向前发展,后续的规划提供最好的可利用的工业标准。它们对于15年内的发展做出了详细的规划。要达到的目标是每18个月晶体管的集成度增加一倍,同时每块芯片的价格下降一半,即Moore定律。 对于某些方面,前面的道路是清楚的。在另一方面,制造业的问题是可以预见的并且解决的办法也是可以知道的,尽管不是所有的问题都能够解决。这样的领域在表格中由蓝色表示,同时没有解决办法的,加以红色。红色区域往往称为红色砖墙。 规划建立的目标是现实的,同时也是充满挑战的。半导体工业整体上的进步于该规划密不可分。这是个令人惊讶的成就,它可以说是合作和竞争共同的价值。 值得注意的是,促进半导体工业向前发展的主要的战略决策是相对开放的预竞争机制,而不是闭关锁国。这也包括大规模圆晶片取得进展的原因。  1995年前,我开始感觉到,如果达到了不可能使得晶体管体积更小的临界点时,将发生什么。怀着这样的疑惑,我访问了位于华盛顿的ARPA(美国国防部)指挥总部,在那,我看到1994年规划的复本。我恍然大悟,当圆晶片尺寸在2007年达到100纳米时,将出现严重的问题,在2010年达到70纳米时也如此。在随后的2004年的规划中,当圆晶片尺寸达到100纳米时,也做了相应的规划。不久半导体工业将发展到那一步。 从1994年的规划中我引用了以上的信息,还有就是一篇提交到IEE的题目为CMOS终结点的论文和在1996年2月8号的Computing上讨论的一些题目。我现在的想法是,最终的结果是表示一个存在可用的电子数目从数千减少到数百。在这样的情况下,统计波动将成为问题。最后,电路或者不再工作,或者达到了速度的极限。事实上,物理限制将开始让他们感觉到不能突破电子最终的不足,原因是芯片上绝缘层越来越薄,以致量子理论中隧道效应引起了麻烦,导致了渗漏。 相对基础物理学,芯片制造者面对的问题要多出许多,尤其是电路印刷术遇到的困难。2001年更新2002年出版的规划中,陈述了这样一种情况,照目前的发展速度,如果在2005年前在关键技术领域没有取得大的突破的话,半导体业将停止不前。这是对“红色砖墙”最准确的描述。到目前为止是SIA遇到的最麻烦的问题。2003年的规划书强调了这一点,通过在许多地方加上了红色,指示在这些领域仍存在人们没有解决的制造方法问题。 到目前为止,可以很满意的报道,所遇到的问题到及时找到了解决之道。规划书是个非凡的文档,并且它坦白了以上提到的问题,并表示出了无限的信心。主要的见解反映出了这种信心并且有一个大致的期望,通过某种方式,圆晶体将变的更小,也许到45纳米或更小。 然而,花费将以很大的速率增长。也许将成为半导体停滞不前的最终原因。对于逐步增加的花费直到不能满足,这个精确的工业上达到一致意见的平衡点,依赖于经济的整体形势和半导体工业自身的财政状况。 第49页共49页 陕西理工学院毕业设计最高级芯片的绝缘层厚度仅有5个原子的大小。除了找到更好的绝缘材料外,我们将寸步难行。对于此,我们没有任何办法。我们也不得不面对芯片的布线问题,线越来越细小了。还有散热问题和原子迁移问题。这些问题是相当基础性的。如果我们不能制作导线和绝缘层,我们就不能制造一台计算机。不论在CMOS加工工艺上和半导体材料上取得多么大的进步。更别指望有什么新的工艺或材料可以使得半导体集成度每18个月翻一番的美好时光了。 我在上文中说到,圆晶体继续缩小直到45纳米或更小是个大致的期望。在我的头脑中,从某点上来说,我们所知道的继续缩小CMOS是不可行的,但工业上需要超越它。 2001年以来,规划书中有一部分陈述了非传统形式CMOS的新兴研究设备。一些精力旺盛的人和一些投机者的探索无疑给了我们一些有益的途径,并且规划书明确分辨出了这些进步,在那些我们曾经使用的传统CMOS方面。 内存技术的进步 非传统的CMOS变革了存储器技术。直到现在,我们仍然依靠DRAM作为主要的存储体。不幸的是,随着芯片的缩小,只有芯片外围速度上的增长——处理器芯片和它相关的缓存速度每两年增加一倍。这就是存储器代沟并且是人们焦虑的根源。存储技术的一个可能突破是,使用一种非传统的CMOS管,在计算机整体性能上将导致一个很大的进步,将解决大存储器的需求,即缓存不能解决的问题。 也许这个,而不是外围电路达到基本处理器的速度将成为非传统CMOS.的最终角色。 电子的不足尽管目前为止,电子每表现出明显的不足,然而从长远看来,它最终会不能满足要求。也许这是我们开发非传统CMOS管的原因。在Cavendish实验室里,Haroon Amed已经作了很多有意义的工作,他们想通过一个单独电子或多或少的表现出0和1的区别。然而对于构造实用的计算机设备只取得了一点点进展。也许由于偶然的好运气,数十年后一台基于一个单独电子的计算机也许是可以实现的。第49页共49页 陕西理工学院毕业设计附录C系统原理图第49页共49页 陕西理工学院毕业设计附录D实物图第49页共49页 陕西理工学院毕业设计附录E元器件清单器件名称参数及型号数量万用板单片机电机驱动步进电机温湿度传感器显示屏时钟模块晶振排阻USB接口变阻器电阻电阻电容按键15x9cmSTC89C52ULN2003A24BYJ-48减速型DHT11LCD1602DS130212MHzA型直插型-8P5V1K10K4.7K30PF无111111111111135第49页共49页 陕西理工学院毕业设计附录F部分C语言程序***********************************主程序************************************#include#include"lcd.h"#include"ds1302.h"#include"dht1.h"#include"motor.h"#defineucharunsignedchar#defineuintunsignedint#defineulongunsignedlongsbitrs=P2^7;//2.0sbitrd=P2^6;//2.1sbitlcden=P2^5;//2.2sbitdat=P3^5;#definetl0xba;#defineth0x3c;#defineMOTORSTEPP1//宏定义,定义P1口为步进电机驱动端口ucharopensw,closesw;ucharT_H,T_L,R_H,R_L;ucharkeyval;//储存按键值ucharID;//储存功能标号voidLcdDisplay();/********************************************************************************函数名:LcdDisplay()*函数功能:显示函数*输入:无*输出:无*******************************************************************************/voidLcdDisplay(){LcdWriteCom(0x80+0X40);LcdWriteData('0'+TIME[2]/16);//时LcdWriteData('0'+(TIME[2]&0x0f));LcdWriteData(':');LcdWriteData('0'+TIME[1]/16);//分LcdWriteData('0'+(TIME[1]&0x0f));第49页共49页 陕西理工学院毕业设计LcdWriteData(':');LcdWriteData('0'+TIME[0]/16);//秒LcdWriteData('0'+(TIME[0]&0x0f));receive();//接收数据LcdWriteCom(0x80);LcdWriteData('R');LcdWriteData(':');LcdWriteData(RH/10+0x30);//0x30LCD1602中0x30的位置放有数字0RH/10+0x30即表示湿度的十位数字在字库RH/10+0x30LcdWriteData(RH%10+0x30);LcdWriteData('%');LcdWriteCom(0x80+0x07);LcdWriteData('T');LcdWriteData(':');LcdWriteData(TH/10+0x30);LcdWriteData(TH%10+0x30);LcdWriteData(0xdf);//以下两个是温度单位的处理LcdWriteData(0x43);}/********************************************************************************函数名:main*函数功能:主函数*输入:无*输出:无*******************************************************************************/voidmain(){LcdInit();Ds1302Init();while(1){Ds1302ReadTime();LcdDisplay();if(S1==0){delaym(10);if(S1==0);{while(!S1);forward();第49页共49页 陕西理工学院毕业设计forward();}}if(S2==0){delaym(10);if(S2==0);{while(!S2);backward();backward();}}if(a==0){if((RH>=70)&&(RH<75)){forward();a=1;b==0;}}if(b==0){if((TH>=30)&&(TH<32)){backward();b=1;}}a=0;}}********************************LCD1602.C************************************#include"lcd.h"/********************************************************************************函数名:Lcd1602_Delay1ms*函数功能:延时函数,延时1ms*输入:c*输出:无*说名:该函数是在12MHZ晶振下,12分频单片机的延时。*******************************************************************************/voidLcd1602_Delay1ms(uintc)//误差0us{uchara,b;for(;c>0;c--){for(b=199;b>0;b--){for(a=1;a>0;a--);}}}/*******************************************************************************第49页共49页 陕西理工学院毕业设计*函数名:LcdWriteCom*函数功能:向LCD写入一个字节的命令*输入:com*输出:无*******************************************************************************/#ifndefLCD1602_4PINS//当没有定义这个LCD1602_4PINS时voidLcdWriteCom(ucharcom)//写入命令{LCD1602_E=0;//使能LCD1602_RS=0;//选择发送命令LCD1602_RW=0;//选择写入LCD1602_DATAPINS=com;//放入命令Lcd1602_Delay1ms(1);//等待数据稳定LCD1602_E=1;//写入时序Lcd1602_Delay1ms(5);//保持时间LCD1602_E=0;}#elsevoidLcdWriteCom(ucharcom)//写入命令{LCD1602_E=0;//使能清零LCD1602_RS=0;//选择写入命令LCD1602_RW=0;//选择写入LCD1602_DATAPINS=com;//由于4位的接线是接到P0口的高四位,所以传送高四位不用改Lcd1602_Delay1ms(1);LCD1602_E=1;//写入时序Lcd1602_Delay1ms(5);LCD1602_E=0;Lcd1602_Delay1ms(1);LCD1602_DATAPINS=com<<4;//发送低四位Lcd1602_Delay1ms(1);LCD1602_E=1;//写入时序Lcd1602_Delay1ms(5);LCD1602_E=0;}#endif/********************************************************************************函数名:LcdWriteData*函数功能:向LCD写入一个字节的数据第49页共49页 陕西理工学院毕业设计*输入:dat*输出:无*******************************************************************************/#ifndefLCD1602_4PINSvoidLcdWriteData(uchardat)//写入数据{LCD1602_E=0;//使能清零LCD1602_RS=1;//选择输入数据LCD1602_RW=0;//选择写入LCD1602_DATAPINS=dat;//写入数据Lcd1602_Delay1ms(1);LCD1602_E=1;//写入时序Lcd1602_Delay1ms(5);//保持时间LCD1602_E=0;}#elsevoidLcdWriteData(uchardat)//写入数据{LCD1602_E=0;//使能清零LCD1602_RS=1;//选择写入数据LCD1602_RW=0;//选择写入LCD1602_DATAPINS=dat;//由于4位的接线是接到P0口的高四位,所以传送高四位不用改Lcd1602_Delay1ms(1);LCD1602_E=1;//写入时序Lcd1602_Delay1ms(5);LCD1602_E=0;LCD1602_DATAPINS=dat<<4;//写入低四位Lcd1602_Delay1ms(1);LCD1602_E=1;//写入时序Lcd1602_Delay1ms(5);LCD1602_E=0;}#endif/********************************************************************************函数名:LcdInit()*函数功能:初始化LCD屏*输入:无*输出:无*******************************************************************************/第49页共49页 陕西理工学院毕业设计#ifndefLCD1602_4PINSvoidLcdInit()//LCD初始化子程序{LcdWriteCom(0x38);//开显示LcdWriteCom(0x0c);//开显示不显示光标LcdWriteCom(0x06);//写一个指针加1LcdWriteCom(0x01);//清屏LcdWriteCom(0x80);//设置数据指针起点}#elsevoidLcdInit()//LCD初始化子程序{LcdWriteCom(0x32);//将8位总线转为4位总线LcdWriteCom(0x28);//在四位线下的初始化LcdWriteCom(0x0c);//开显示不显示光标LcdWriteCom(0x06);//写一个指针加1LcdWriteCom(0x01);//清屏LcdWriteCom(0x80);//设置数据指针起点}#endif*****************************LCD1602.H**********************************#ifndef__LCD_H_#define__LCD_H_/**********************************当使用的是4位数据传输的时候定义,使用8位取消这个定义**********************************/#defineLCD1602_4PINS/**********************************包含头文件**********************************/#include//---重定义关键词---//#ifndefuchar#defineucharunsignedchar#endif#ifndefuint#defineuintunsignedint#endif/**********************************第49页共49页 陕西理工学院毕业设计PIN口定义**********************************/#defineLCD1602_DATAPINSP0sbitLCD1602_E=P2^5;sbitLCD1602_RW=P2^6;//1126sbitLCD1602_RS=P2^7;//1027/**********************************函数声明**********************************//*在51单片机12MHZ时钟下的延时函数*/voidLcd1602_Delay1ms(uintc);//误差0us/*LCD1602写入8位命令子函数*/voidLcdWriteCom(ucharcom);/*LCD1602写入8位数据子函数*/voidLcdWriteData(uchardat);/*LCD1602初始化子程序*/voidLcdInit();#endif*******************************DS1302.C************************************#include"ds1302.h"//---DS1302写入和读取时分秒的地址命令---////---秒分时日月周年最低位读写位;-------//ucharcodeREAD_RTC_ADDR[7]={0x81,0x83,0x85,0x87,0x89,0x8b,0x8d};ucharcodeWRITE_RTC_ADDR[7]={0x80,0x82,0x84,0x86,0x88,0x8a,0x8c};//---DS1302时钟初始化2013年1月1日星期二12点00分00秒。---////---存储顺序是秒分时日月周年,存储格式是用BCD码---//ucharTIME[7]={0,0,0x12,0x01,0x01,0x02,0x13};//0x010x010x020x13/********************************************************************************函数名:Ds1302Write*函数功能:向DS1302命令(地址+数据)*输入:addr,dat*输出:无*******************************************************************************/voidDs1302Write(ucharaddr,uchardat){ucharn;RST=0;_nop_();SCLK=0;//先将SCLK置低电平。第49页共49页 陕西理工学院毕业设计_nop_();RST=1;//然后将RST(CE)置高电平。_nop_();for(n=0;n<8;n++)//开始传送八位地址命令{DSIO=addr&0x01;//数据从低位开始传送addr>>=1;SCLK=1;//数据在上升沿时,DS1302读取数据_nop_();SCLK=0;_nop_();}for(n=0;n<8;n++)//写入8位数据{DSIO=dat&0x01;dat>>=1;SCLK=1;//数据在上升沿时,DS1302读取数据_nop_();SCLK=0;_nop_();}RST=0;//传送数据结束_nop_();}/********************************************************************************函数名:Ds1302Read*函数功能:读取一个地址的数据*输入:addr*输出:dat*******************************************************************************/ucharDs1302Read(ucharaddr){ucharn,dat,dat1;RST=0;_nop_();SCLK=0;//先将SCLK置低电平。_nop_();RST=1;//然后将RST(CE)置高电平。_nop_();for(n=0;n<8;n++)//开始传送八位地址命令第49页共49页 陕西理工学院毕业设计{DSIO=addr&0x01;//数据从低位开始传送addr>>=1;SCLK=1;//数据在上升沿时,DS1302读取数据_nop_();SCLK=0;//DS1302下降沿时,放置数据_nop_();}_nop_();for(n=0;n<8;n++)//读取8位数据{dat1=DSIO;//从最低位开始接收dat=(dat>>1)|(dat1<<7);SCLK=1;_nop_();SCLK=0;//DS1302下降沿时,放置数据_nop_();}RST=0;_nop_();//以下为DS1302复位的稳定时间,必须的。SCLK=1;_nop_();DSIO=0;_nop_();DSIO=1;_nop_();returndat;}/********************************************************************************函数名:Ds1302Init*函数功能:初始化DS1302.*输入:无*输出:无*******************************************************************************/voidDs1302Init(){ucharn;Ds1302Write(0x8E,0X00);//禁止写保护,就是关闭写保护功能for(n=0;n<7;n++)//写入7个字节的时钟信号:分秒时日月周年{Ds1302Write(WRITE_RTC_ADDR[n],TIME[n]);}Ds1302Write(0x8E,0x80);//打开写保护功能第49页共49页 陕西理工学院毕业设计}/********************************************************************************函数名:Ds1302ReadTime*函数功能:读取时钟信息*输入:无*输出:无*******************************************************************************/voidDs1302ReadTime(){ucharn;for(n=0;n<7;n++)//读取7个字节的时钟信号:分秒时日月周年{TIME[n]=Ds1302Read(READ_RTC_ADDR[n]);}}***********************************DS1302.H********************************#ifndef__DS1302_H_#define__DS1302_H_//---包含头文件---//#include#include//---重定义关键词---//#ifndefuchar#defineucharunsignedchar#endif#ifndefuint#defineuintunsignedint#endif//---定义ds1302使用的IO口---//sbitDSIO=P3^2;//2032sbitRST=P3^1;//2431sbitSCLK=P3^3;//2133//---定义全局函数---//voidDs1302Write(ucharaddr,uchardat);ucharDs1302Read(ucharaddr);voidDs1302Init();voidDs1302ReadTime();//---加入全局变量--//第49页共49页 陕西理工学院毕业设计externucharTIME[7];//加入全局变量#endif//**************************dht11测试模块*************************************//sbitio=P3^5;uchardata_byte;ucharRH,RL,TH,TL;//***************延时函数*************************************???voiddelay(ucharms)//延时模块//{uchari;while(ms--)for(i=0;i<100;i++);}voiddelay1(){uchari;for(i=0;i<1;i++);}voidstart()//开始信号{io=1;delay1();io=0;delay(25);//主机把总线拉低必须大于18msDHT11能检测到起始信号io=1;//20-40usdelay1();//以下三个延时函数差不多为24usdelay1();delay1();}ucharreceive_byte()//接收一个字节//{uchari,temp;for(i=0;i<8;i++)//接收8bit的数据{while(!io);//等待50us的低电平开始信号结束delay1();//26us-28usdelay1();delay1();temp=0;//时间为26us-28us数据'0'if(io==1)temp=1;//如果26us-28us'1'while(io);//'0'为26us-28us'1'为70usdata_byte<<=1;//data_byte|=temp;}第49页共49页 陕西理工学院毕业设计returndata_byte;}voidreceive()//接收数据//{ucharT_H,T_L,R_H,R_L,check,num_check,i;start();//开始信号//io=1;//DHT11if(!io)//判断从机是否有低电平响应信号//{while(!io);//判断从机发出80us的低电平响应信号是否结束//while(io);//判断从机发出80usR_H=receive_byte();//湿度高位R_L=receive_byte();//湿度低位T_H=receive_byte();//温度高位T_L=receive_byte();//温度低位check=receive_byte();//校验位io=0;//当最后一bit50us//for(i=0;i<7;i++)//差不多50us的延时delay1();io=1;//num_check=R_H+R_L+T_H+T_L;if(num_check==check)//判断读到的四个数据之和是否与校验位相同{RH=R_H;RL=R_L;TH=T_H;TL=T_L;check=num_check;}}}*************************MOTOR.C**************************#include//包含51单片机寄存器定义的头文件#include"motor.h"unsignedcharFlag1,Flag2;/*************************************************函数功能:软件消抖延时(约50ms)**************************************************/voiddelaym(uintz){unsignedcharx,y;for(x=z;y<0;x--)for(y=10;y>0;y--);}/************************************************函数功能:步进电机转动延时,延时越长,转速越慢*************************************************/voidmotor_delaym(void)第49页共49页 陕西理工学院毕业设计{uinti;for(i=0;i<500;i++);}/************************************************函数功能:步进电机正转(开)*************************************************/voidforward(){uintc;for(c=0;c<50;c++){P1=0xf1;//P1口低四位脉冲0001motor_delaym();P1=0xf3;//P1口低四位脉冲0011motor_delaym();P1=0xf2;//P1口低四位脉冲0010motor_delaym();P1=0xf6;//P1口低四位脉冲0110motor_delaym();P1=0xf4;//P1口低四位脉冲0100motor_delaym();P1=0xfc;//P1口低四位脉冲1100motor_delaym();P1=0xf8;//P1口低四位脉冲1000motor_delaym();P1=0xf9;//P1口低四位脉冲1001motor_delaym();}motor_delaym();}/************************************************函数功能:步进电机反转(关)*************************************************/voidbackward(){uintc;for(c=0;c<50;c++){P1=0xf9;//P1口低四位脉冲1001motor_delaym();P1=0xf8;//P1口低四位脉冲1000motor_delaym();P1=0xfc;//P1口低四位脉冲1100motor_delaym();P1=0xf4;//P1口低四位脉冲0100第49页共49页 陕西理工学院毕业设计motor_delaym();P1=0xf6;//P1口低四位脉冲0110motor_delaym();P1=0xf2;//P1口低四位脉冲0010motor_delaym();P1=0xf3;//P1口低四位脉冲0011motor_delaym();P1=0xf1;//P1口低四位脉冲0001motor_delaym();}motor_delaym();}/************************************************函数功能:步进电机停转*************************************************/voidstop(void){P1=0xff;//停止输出脉冲}*******************************MOTOR.H*****************************#ifndef__motor_H_#define__motor_H_//---重定义关键词---//#ifndefuchar#defineucharunsignedchar#endif#ifndefuint#defineuintunsignedint#endifsbitS1=P2^4;//将S1位定义为P1.4引脚sbitS2=P2^3;//将S2位定义为P1.5引脚sbitS3=P2^2;//将S3位定义为P1.6引脚//---全局变量---//externucharkeyval;//储存按键值externucharID;//储存功能标号/*************************************************函数功能:软件消抖延时(约50ms)**************************************************/voiddelaym(uint);/************************************************函数功能:步进电机转动延时,延时越长,转速越慢*************************************************/voidmotor_delaym(void);第49页共49页 陕西理工学院毕业设计/************************************************函数功能:步进电机正转*************************************************/voidforward();/************************************************函数功能:步进电机反转*************************************************/voidbackward();#endif第49页共49页

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭