《基于单片机的模拟空调控制系统--大学毕业(论文)设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的模拟空调控制系统--大学毕业(论文)设计.doc(68页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、淮北师范大学 2013届学士学位论文 基于单片机的模拟空调控制系统学院、专业 物理与电子信息学院 电子信息工程 研 究 方 向 单板微型计算机 学 生 姓 名 纪 宏 源 学 号 指导教师姓名 指导教师职称 副教授 2013 年 4月 25 日淮北师范大学2013届学士毕业论文 基于单片机的模拟空调控制系统基于单片机的空调模拟控制系统纪宏源淮北师范大学物理与电子信息学院 235000 摘要 本文设计了一种以STC89C52为核心的空调控制系统,并详细分析了其在硬件和软件上的实现过程。本系统硬件电路大致上可以分成控制模块、电机模块、键盘模块、电源模块、温度模块和显示模块。控制模块选用STC89C
2、52芯片并采用24MHz晶振获得稳定的频率,可以用来准确地控制整体电路以及存储和计算数据。按键模块完成空调的工作方式、风速、温度等状态信息的设定。电源模块采用12V锂电池经过7805转换成5V电压向单片机及电机供电,并且用L298N驱动电机使电机速度达到可控。温度模块则是用DS18B20实时采集温度并传输到液晶上显示。显示模块采用无字库LCD12864液晶,实时显示温度数据及空调状态信息。系统软件程序采用C语言编写,占用资源少、程序执行效率高,有利于实现较复杂的算法和程序结构化设计。经测试,本系统满足设计要求,可以实现控制系统的基本功能。关键词 空调;单片机;温度;控制系统Base On Si
3、ngle-Chip Computer Air Conditioner SimulationControl SystemJi Hong YuanSchool of Physics and Electronic Information, Huaibei Normal University, 235000Abstract: A design of a control system of air-condition which used STC89C52 as the core is described in this paper. A detailed analysis of the design
4、process in both hardware and software is also mentioned. The hardware circuit of this system can be roughly separate into control module, motor module, keyboard module, power module, temperature module and display module. In the control module, which can control the whole electric circuit accurate,
5、a STC89C52 chip used 24MHz crystal oscillator to get the stable frequency is used. It also can save and calculate data. The keyboard module set the state information such as working mode, wind speed, temperature and etc. In the power module, a 12V lithium battery converted to 5V through 7805 is used
6、, which supply the power used in single-chip computer and motor. A L298N drive motor is also used to control the motor speed. In temperature module, DS18B20 which record temperature and send to LCD is used. In the display module, a LCD12864 without font is used to display the temperature data and th
7、e state information of AC in real-time. The C language is used to program the system software. It is propitious to program the complicated algorithm and structure design of software due to the small resource using and effectiveness. By testing, the system satisfied the design requirement and achieve
8、 the basic function of control system. Keywords: Air-Condition;Single-chip computer;Temperature;Control system目 录1 绪 论11.1 空调的发展11.2 单片机特点及其应用开发过程21.3 设计任务32 系统硬件设计42.1 设计方案42.2 控制模块42.3 显示模块72.4 键盘模块92.5 测温模块92.6 电机模块102.7 电源模块112.8 整体电路图123 系统软件设计133.1 C语言程序的设计方法133.2 系统软件的设计134 调试及性能分析194.1 仿真软件及
9、编译软件简介194.2 调试过程中出现的问题及解决办法194.3 调试结果20结论24参考文献25致 谢2662 1 绪 论1.1 空调的发展空调即空气调节器(room air conditioner),它是一种对空间区域里的空气(一般为封闭)进行处理,使空气温度产生变化的机组。空调可以对封闭空间或区域内空气的温度、湿度、洁净度和空气流速等参数进行调节,从而满足人体舒适度的要求。公元前1000年左右波斯利用装置于屋顶的风杆,让外面的自然风穿过凉水并吹入室内另室内感到凉快,这是世界上最早的空气调节系统1。1555年Agricola的著作介绍了煤矿中的通风系统(用人工鼓动的风箱)。1842年,美国
10、佛罗里达州的医生约翰.哥里(John Gorrie)采用刚发明的机制冰在阿帕拉契科拉医院进行气温调节。1851年苏格拉天文学家C.P.Smyth在爱丁堡皇家学会上提出,打算采用空气制冷机来冷却热带房间的想法。1860年Fredinand Carre在巴黎科学院发表了一篇报告他在预言制冷机的多种用途中把剧场、舞厅、别墅的冷却作为主攻目标。1870年西班牙工程师Jose Vallhonesta设计一种装置可以将从阴凉处得到的外界空气,加湿或经过一冰式空冷器后引入房间。1874年美国Andrew Muhl获得一栋大楼的冷却专利。1884年Baltimore-Ohio公司在美国进行初步的尝试,用冰来进
11、行铁路客车舒适空调的设计。1890年左右,空调获得了初步成就,有了工业空调,也有了为人们福利的舒适空调。1903年巴黎海关获得了一项专利并在埃及铁路线上运行的国际铁路公司的餐车上安装了一台可以容乃500公斤冰的设备。 美国的Willis Carrier是对空调发展做出重大贡献的世界名人,1904年他设计的带水喷淋空气洗涤室的集中式空调站。1911年他确定了对空调装置进行合理计算的曲线图。从1930年起用于房间空调的单个空调器已经实现商品化。1937年起美国实现了汽车空调的配备。但是直到1945年后才实现了将空调系统装配到私人汽车上。1945年以后空调处于高速发展的阶段,随着人们对舒适生活的追求
12、,空调系统出现在各种各样的场合中,种类也越来越多,如:挂壁式空调、立柜式空调、窗式空调、吊顶式空调以及中央空调。空调的制冷剂最初用冰,然后采用氟利昂、二氧化硫或氯化甲烷。由于氟利昂对地球臭氧层的破坏,现代又出现了无氟的空调系统用R410A来代替原有的氟利昂制冷剂。1.2 单片机特点及其发展前景1.2.1单片机的特点单片机是在一块硅片上集成了微处理存储器及各种输入/输出接口的芯片,这样一块芯片就具有了计算机的属性,因而被称为单片微型计算机,又称单片机(Single Chip Microcomputer),尽管单片机的大部分功能都集成在一块小芯片上,但是他具有一台完整计算机所需要的大部分器件2。单
13、片机是一种可以通过程序进行控制的微型处理芯片,由于单片机芯片自身不能单独的运用在某项工程或产品上,因此在使用的时候需要加上一些外围器件,比如晶体振荡器,复位电路,从而构成较为完整的硬件系统。如果要实现其他的功能,还要加上相应的外围电路来实现。由于单片机具有可集成度高、体积小、可靠性高、可扩展性好、超强抗干扰、高速、低功耗和性价比高的特点。因此它主要面向工作环境比较恶劣,如高温、强电磁干扰等。通过以上单片机的特点决定了单片机CPU与通用微机CPU具有不同的技术特征和发展方向。目前其应用领域已非常广泛如: (1)工业自动化。如数据采集、测控技术。(2)智能仪器仪表。如数字示波器、数字万用表、感应电
14、流表等。(3)消费类电子产品。如洗衣电冰箱、空调、IC卡、汽车电子设备、电视机等。(4)通信方面。如调制解调器、程控交换技术、手机等。(5)武器装备。如飞机、舰艇、坦克、导弹、航天飞机、鱼雷制导、智能武器、卫星等。1.2.2单片机的发展前景现如今单片机正朝着多功能化、多选择性、高速度、低功耗、低价格、大存储容量和增强I/O功能及结构兼容方向发展3。其发展趋势不外乎以下方面:(1)体积小、集成度高单片机、CPU、I/O接口等功能集成在一块芯片上,体积小,节省空间。能灵活方便的应用在各种智能化的控制设备和仪器上,实现机电一体化。单片机是面向控制的,存储器很多的控制场合一般并不需要它去完成一些复杂的
15、数学计算。因此单片机在生产工艺上进行了简化,降低了制造成本。同时单片机都是大批量生产,进一步降低了产品的成本。(2)多功能单片机中尽可能多地把应用所需的存储器都集成在一块芯片内、其CPU可以对I/O口直接进行操作,可以进行位操作、分支转移操作,还能方便的实现多级控制,是整个系统的效率大大的提高。(3)高性能为了提高单片机的速度和执行效率,其中使用了RISC、流水线、DSP等的设计技术,使其性能明显优于同类型的微处理器。(4)低功耗由于单片机需要面向便携式和家电消费产品,因此低电压、低功耗的性质是非常重要的,很多单片机的电压只有24V,所以为以上产品提供了许多便利。许多单片机可在2.2V电压下正
16、常运行,有的也能在1.2V或0.9V电压下正常工作。功耗为均为uA级,由一粒纽扣电池供电下可长期运行。(5)抗干扰能力强单片机把各种功能部件集成在一块芯片上,采用总线结构,减少各芯片之间的连线,从而大大提高了单片机的可靠性与抗干扰能力,适合在恶劣环境下工作。单片机的适应温度范围广,能够在-50100范围内正常工作,这种温度对一般的微型计算机来说是不可想象的。如今单片机的应用范围十分广泛,已成为工业测控各个领域中理想的控制用计算机,成为计算机领域的一个重要分支3。在许多过去采用模拟电路、脉冲电路、组合逻辑实现的部分控制电路系统,现在可用各种单片机予以取代。单片机、编程和传统模拟技术的相结合,构成
17、了新一代的电子应用技术。可以说,单片机将向着“更高、更快、更强”的方向发展。1.3 设计任务本系统要求能实时显示当前温度,当前空调所处状态,设定温度,可以用按键调节设定温度,制热制冷状态,强弱风的选择。系统开始工作后电机开始转动。(1)开机后液晶上显示“毕业设计:空调控制系统 纪宏源”。(2)从独立按键上先按下休眠键进入设定状态。(3)选择工作模式、风量以及设定温度。(4)按下休眠键系统开始工作。2 系统硬件设计2.1 设计方案由于要显示静态和动态图形以及数字所以本设计采用无字库的LCD12864液晶作为显示部分,无字库的液晶12864可以随意的显示自己想要显示的图形及数字灵活性大,因此在本实
18、验采用LCD12864。由本设计的要求和需要,在系统的具体实现时可划分为几个子模块:控制模块(单片机系统及外围电路)、显示模块(LCD12864)、电源模块、键盘模块、驱动模块。各功能模块相互独立,可扩充性强,具有再次开发的潜力。本设计满足系统功能的要求,并且减少了系统实现的复杂度。各模块之间的关系如图1所示。电源模块控制模块显示模块测温模块电机模块图1 硬件系统的总体设计框架 2.2 控制模块2.2.1 单片机简介单片机是一种采用超大规模集成电路技术把中央处理器CPU以及一些相关的功能器件集成在一起的硅材料的集成电路芯片,虽然体积很小,但是一个完善的计算机系统本次设计用的是STC89C52型
19、的单片机。STC89C52是一种带8K在系统可编程FLASH存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器4。STC89C52在经典的51内核上做了许多改进,使其具备了许多51单片机以前所不具备的功能。该芯片使用低电压,高性能的COMOS 8微处理器,并且芯片自带8K字节的闪烁可编程可擦除只读存储器(FPEROM-Flash Programable and Erasable Read Only Memory)。STC89C52管脚说明如图2所示:图2 STC89C52管脚图VCC(40
20、引脚):单片机电源电压,接+5V电压。 GND(20引脚):接地。XTAL1(19引脚):反向振荡放大器的输入及内部时钟工作电路的输入。接外部晶体的一端。XTAL2(18引脚):来自反向振荡器的输出。接外部晶体的另一端。在单片机内部,它是反相放大器的输出端。RST(9引脚):RST引脚是单片机的复位/备用电源输入端,高电平有效,有效时间应至少持续24个震荡周期即2个机器周期才能使单片机进行复位。ALE(30引脚):低8位地址锁存使能输出端。当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。当CPU访问外部存储器时ALE可向低8位地址锁存器输出锁存控制信号;当CPU不访问外部存储
21、器时,ALE端以时钟振荡频率的六分之一固定输出正脉冲。另外,该引脚被略微拉高。如果此时置位无效则微处理器在外部执行状态下ALE被禁止。(29引脚):该引脚为外部程序存储器选通信号引脚,当CPU在访问外部程序存储器时,每个机器周期中信号两次有效。当访问外部数据存储器时,这两次有效的信号则不会出现。(31引脚):外部程序存储器地址允许使能端。 P0口(39引脚32引脚):P0口是一个漏级开路的8位准双向复用I/O端口,每脚可吸收8TTL门电流。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。 P1口(1引脚8引脚):P1口是一个内部带上
22、拉电阻的8位准双向I/O端口,P1口缓冲器能接收输出4TTL门电流。在FLASH编程和校验时,P1口作为低八位地址接收。 P2口(28引脚21引脚):P2口为一个内部带上拉电阻的8位准双向复用I/O端口,P2口缓冲器可接收,输出4个TTL门电流。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口(10引脚17引脚):P3口是一个带内部上拉电阻的8位多功能双向I/O端口,可接收输出4个TTL门电流。P3口除了作为通用I/O口使用外,其主要的功能是它的第二功能,P3口的每一条引脚均可独立定义为第一功能的输入或输出或第二功能。P3口第二功能如下:端 口第 二 功 能P3.0 RXD
23、(串行输入口)P3.1 TXD(串行输出口) P3.2 (外部中断0) P3.3 (外部中断1) P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)P3.6 (外部数据存储器写选通)P3.7 (外部数据存储器读选通) 2.2.2 单片机外围电路如图3所示,复位是单片机的初始化操作。复位电路有两种复位操作形式:上电自动复位和按键手动复位。而按键手动复位有电平方式和脉冲方式5。本次试验使用的是按键手动复位。复位电路的基本功能是:由图3可以看到复位电路的连接方式。复位电路的主要功能是把PC初始化为0000H,在单片机开始执行程序时使单片机从0000H单元开始执行。假如单片机不能正常的进
24、入系统执行初始化,此时可能是程序运行出错或者因为操作错误至使系统处于死锁状态,此时为摆脱困境,需要使用按键进行手动复位重新启动系统。为消除电源开关或者电源插头在分-合过程中引起的抖动现象,电源稳定后要经过一定的延时时间后才能撤销复位信号。晶振在电路中的作用主要是提供频率稳定的时钟信号,晶振有不同的赫兹如:11.0592MHz、12MHz和24MHz,图3启振电路中C2=C3=30pF,晶振X1的振荡频率为24MHz,复位电路中C1=10uF,R6=R7=10k。 图3 单片机外围电路2.3 显示模块LCD12864是12864个点阵的图形液晶显示模块6。该显示模块分为两种一种是带字库的一种是不
25、带字库的,并且有串行口连接和并行口连接两种方式,在用串口方式连接时可以节省单片机的端口资源,但是传输速率较慢。并行口方式所占用的接口资源多但是传输速率较快。由于此次设计中单片机的接口剩余较多且要实时刷新DS18B20所以采用并行口连接方式。实验中使用的是无字库型液晶,它可以显示在一定精度范围内的任意字体的汉字或者静态、动态图片以及数字等。LCD12864管脚及其与单片机连接方式如图4所示,管脚功能7如表5所示:表5 LCD12864管脚功能名称参数说明VDD+5V模块电源 +5V DCVSSGND 0V模块电源 地V00V -10V外部液晶偏置电压(负压)输入端DB0H/L数据线0 (H表示高
26、电平,L表示低电平)DB1H/L数据线1DB2H/L数据线2DB3H/L数据线3DB4H/L数据线4DB5H/L数据线5DB6H/L数据线6DB7H/L数据线7H/L左半屏使能 (低电平有效)H/L右半屏使能 (低电平有效)RSTH/LLCM复位 (低电平有效)RWH/LH:LCM读数据 L:LCM写数据RSH/LH:数据 L:指令EH/LLCM使能Vout+5VLED背光电源 +5V DC单片机P2.0P2.4分别连接到LCD的E、RW、RS、端口,液晶的数据口与单片机P0口依次相连,使得单片机处理出来的数据传输到液晶显示。 图4 LCD12864与单片机连接图 2.4 键盘模块键盘可以分为
27、矩阵键盘和简单键盘7,首先矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些。其次实验中所用按键个数不是很多,所以可以使用简单键盘。当按键没有按下时,所有的输入端都是高电平,代表无键按下。一旦有键按下,则输入端电平就会被拉低,所以,通过读取输入端的电平就可得知是否有键按下了。实验中,P1.0口用来控制休眠按键,当按键按下后,进入设定模式。P1.1口在进入设定状态后用来增加设定温度。P1.2口则是用来减少温度。P1.3口用来调节风量的大小,风量分为三个等级:强、中、弱风。当第一次按下按键,此时为弱风,两次为中风,三次为强风,当按到第四次时又为弱风,以此方式进行循环。P1.4口是空调制冷、制
28、热模式的选择,和风量选择一样可以进行循环操作。图5 键盘各口与单片机引脚连接图如图5所示,键盘与单片机P1各口相连,从而使键盘所接收到的信息以高低电平的形式传入单片机内部处理。2.5 测温模块DS18B20单线数字温度传感器是Dallas半导体公司生产的世界上第一片支持“一线总线”接口的温度传感器。它的温度检测与传输全集成于一个芯片上,从而抗干扰能力强,其一个工作周期分为两个部分,即温度检测和数据处理。该芯片具有体积小、硬件开消小、抗干扰能力强、精度高、附加功能强著称,是当今温度传感器中的主流。DS18B20的管脚和它的主要特征有8:(1)、VDD 电源电压(2)、GND 电压地(3)、DQ
29、单数据总线(4)、全数字温度转换及输出、(5)、最高12位分辨率精度可达0.5(6)、先进的总线数据通信(7)、12位分辨率时最大的工作周期是750ms(8)、可选择寄生工作方式(9)、检测温度范围为55125(67 F257 F)(10)、内置EEPROM,限温报警功能(11)、64位光刻ROM,内置产品序列号,方便多机挂接(12)、多样封装形式适应不同硬件系统。图6 键盘各口与单片机引脚连接图如图6所示,DS18B20与单片机P2.4口相连。2.6 电机模块L298N是SGS公司的产品,内部包含四通道逻辑驱动电路是一种两相和四相电机的专用驱动器,其内含两个H桥的高电压大电流双全桥式驱动器,
30、接受标准TTL逻辑电平信号9。L298N具有15个引脚具体功能如下:l VCC:电源电压l GND:接地引脚l IN1IN4:连接单片机的相应接口,通过单片机输送控制电位便可控制电机的正反转。l OUT1OUT4:用来连接两个电机,该驱动电路既可以负载直流电机同时也可以负载步进电机。l Sense A和Sense B:该端口是电流监测端,它们分别为两个H桥的电流反馈脚,不用时可以直接接地。l ENA和ENB:TTL电平兼容输入使能端,低电平禁止输出。 如图7所示,直流电机分别接在OUT1和OUT2端口。图7 L298N模块引脚连接图2.7电源模块用7805组成的稳压电源模块所需的外围元件极少,
31、电路内部还有过流、过热和调整管的保护电路,最大输出电流为1.5A,具有短路保护功能10 ,使用起来可靠、方便而且性价比高。本系统使用的是12V锂电池经过7805转换成+5V电压,从而解决了因为电机的负载过大,接口供电不足的情况。7805电源模块的接线图如图8所示。J1和J2为扩展出的5V输出。图8 7805电源模块引脚连接图2.8 整体电路图图9 模拟空调控制系统整体电路图3 系统软件设计自从1946年世界上出现了第一台电子计算机以来,计算机改变了世界,改变了人类的生活。但是计算机不是天生“自动”工作的,它是由程序控制的。由此便产生了计算机语言,让我们来告诉计算机要做什么。计算机语言包括:机器
32、语言、汇编语言以及“高级语言”,机器语言和汇编语言都依赖于具体机器,所以被称为“低级语言”。用低级语言编写程序很不直观,繁琐枯燥,工作量大,无通用性。所以20世纪50年代出现了用于程序设计的“高级语言”。高级语言直观易学,易理解,易修改,易维护,易推广,通用性强。现在应用比较广泛的有100多种,影响最大的有:FORTRAN和ALGOL、BASIC和QBASIC、COBOL、Pascal、LISP和PROLOG、C、C+、Java等。C语言是一种结构化的高级语言。其优点是:运算丰富、语法限制不太严格和程序设计自由度大、可读性好、容易移植,是普遍使用的一种计算机语言。缺点是占用资源多,执行效率低。
33、根据以上特点,该程序采用C语言编写。3.1 C语言程序的设计方法为了使计算机能按照人的意志进行工作,我们必须根据实际问题的需要及要求,编写出相应的程序。编写单片机的C语言程序,就是按照实际问题的要求和单片机的特点,决定应采用的计算方法和计算公式,然后根据单片机的指令系统,按照尽可能节省数据存储单元、缩短程序长度和加快运行时间三个原则编写程序。程序设计步骤11:(1)对实际问题进行抽象化处理,提炼成数学模型。 (2)确定解决该数学模型的算法。(3)模块分析。在分析复杂的实际问题时,往往需要把整个问题分成若干个功能块,画出层次图,确定各模块间的通信。(4)出程序流程图,以图示形式表示解决具体问题的
34、思路和方法。(5)流程图编写程序。 (6)调试、修改,直至通过。 3.2 系统软件的设计系统软件的设计分为主程序和子程序的设计。程序采用模块化、结构化设计,其软件的可靠性较好,可维护性强。3.2.1 主程序的设计开始主程序是用来完成系统初始化、设定温度、中断的初始化、温度的判断、显示以及扫描按键、处理数值后的显示模式。主程序循环中主要工作是扫描是否有按键按下,若有则进入设定模式否则实时显示现场温度。主程序流程图如图8所示。初始化LCD显示温度刷新按键扫描N是否有按键按下Y按键设定温度刷新N是否按下休眠键Y电机结束结束图8 主程序流程图3.2.2 子程序的设计此实验主要有三个子程序供主程序调用,
35、即键盘子程序、显示子程序、测温子程序、驱动子程序。3.2.2.1键盘子程序程序中包含检测按键的部分。通过检测有无按键按下,切换LCD显示屏显示的内容。在按键输入电压信号时会出现抖动。这种情况下我们要对按键进行消抖处理。一般的方法有硬件和软件的办法消抖,本设计采用软件消抖方式。所谓软件消抖7,就是在第一次检测到有键按下时先不动作,延时一段时间,再次检测按键的状态,如果仍保持闭合状态,则确认真正有键按下。当检测到按键释放后,也要给5ms10ms的延时,待后沿消抖消失后才能转入按键的处理程序12。示例程序:void KeyRead(void) unsigned char ReadData = P10
36、xff; Trg = ReadData & (ReadData Cont); Cont = ReadData;3.2.2.2显示子程序12864无字库液晶有20个引脚,额定电压为+5V,对比度可调,内含复位电路,提供多种控制命令。由12864个点阵组成,分为8页,可以任意显示各种图形及文字6。但是首先要用取模工具先对要显示的各种图形或者汉字取模。12864液晶在显示时分为两个屏幕显示,用来控制在哪个屏幕上显示内容。void Read_busy()/读“忙”函数,数据位的最高位DB7 为1则忙,每次操作液晶都要读忙 LCD_databus=0x00; /读取最高位 RS=0; /”命令“ RW=
37、1; /”读“ EN=1; /高电平读数据 while(P0&0x80); /一直检测P0口数据最高位是否为”1 EN=0; /“(忙),”忙“就一直等 void write_LCD_command(unsigned char value) /写液晶命令函数 Read_busy(); RS=0; /命令 RW=0; /”写“ LCD_databus=value; /指令值 EN=1; /下降沿写入 delayXus(20); EN=0;void write_LCD_data(unsigned char value) /写数据函数 Read_busy();/读忙 RS=1;/数据 RW=0;/写
38、 LCD_databus=value; EN=1;/下降沿 delayXus(20); EN=0;3.2.2.3测温子程序M脉宽调制进行调节,当半导体硬件电路连接好后,我们来看看怎么样才能将DS18B20中的温度读取出来。控制DS18B20的指令可以分为8:l 33H-读ROM。读DS18B20温度传感器ROM中的编码。l 55H-匹配ROM。发出此指令之后,接着发出64位ROM编码,访问单总线上与该编码相对应的DS18B20并使之做出响应。l F0H-搜索ROM。用于确定挂接在同一总线上DS18B20的个数。l CCH-跳过ROM。忽略64位ROM地址,直接向温度传感器发出温度变换命令,适用
39、于一个从机工作。l ECH-告警搜索命令。执行后只有温度超过设定值上限或下限的芯片才会做出反应。但是对于一个DS18B20就不需要读ROM了,可跳过ROM命令。进行如下操作:l 44H-温度转换l BEH-读暂存器l 4EH-写暂存器l 48H-复制暂存器l B8H-重调E2PROMl B4H-读供电方式程序示例如下:void Sensor_Fresh() unsigned char temp_Low,temp_High,flag; /临时变量高、低字节 Sensor_Initial(); /复位18B20 Sensor_Write_Byte( 0xCC ); /跳过读序号列号的操作 Sens
40、or_Write_Byte( 0x44 ); /启动温度转换 Sensor_Initial(); /复位18B20 Sensor_Write_Byte( 0xCC ); /跳过读序号列号的操作 Sensor_Write_Byte( 0xBE ); /读取温度寄存器 temp_Low = Sensor_Read_Byte(); /低位 temp_High = Sensor_Read_Byte(); /高位 if(temp_High127) /判断是否为负温度 temp_Low = (temp_Low)+1; /低字节取反加1 if(temp_Low=0xff) /判断低字节是否溢出 temp_H
41、igh = (temp_High) + 1; /向高位进位 else temp_High = temp_High; flag = 1; /负温度标志位 else flag = 0; temperature = (temp_High4); /高、低字节合成温度 Dot = (temp_Low&0x0f) * 0.625 ; /取出小数一位(乘以 10以后了) Display_temperature(flag,temperature,Dot); /显示温度3.2.2.4电机驱动子程序在半导体功率器件工作在开关状态时,通过PWM脉宽调制控制电机的电压,可以达到控制电机转速的目的。在电机调速的过程中占
42、空比是非常重要的参数9,当电源电压不变的情况下输出电压的平均值U取决于占空比D的大小,改变D值也就改变输出电压的平均值,从而达到控制电机转速的目的,实现PWM控制。示例程序:void Motor_speed_high ( void) if( Key_add= = 0) Delay1ms( 1) ; if( Key_add= = 0) speed = speed + 1; if( speed = 100) speed = 30; while( Key_add = = 0) ; 4 调试及性能分析4.1 仿真软件及编译软件简介Proteus软件是英国Labcenter electronics公司出版的EDA工具软件12,Proteus是享誉世界的EDA工具,其功能强大,从原理图的设计、程序的调试、单片机和外围电路的协同仿真到PCB设计,该软件实现了从理论到产品的完整设计。它是目前使用率较高的仿真工具,深受单片机爱好者、各高校师生、从事单片机教学的教师以及致力于单片机开发应用工作者的赞赏。Proteus软件支持世界各大公司的多种型号的处理器,如:8051、HC11、AVR、ARM、8086和MSP430等。在2010年随着ARM等新一代产品的推出该公司又增加了Cortex和DSP系列处理器,并持续增加其他系