基于单片机的模拟空调控制系统学士学位论文

上传人:无*** 文档编号:136254691 上传时间:2022-08-16 格式:DOC 页数:68 大小:1.01MB
收藏 版权申诉 举报 下载
基于单片机的模拟空调控制系统学士学位论文_第1页
第1页 / 共68页
基于单片机的模拟空调控制系统学士学位论文_第2页
第2页 / 共68页
基于单片机的模拟空调控制系统学士学位论文_第3页
第3页 / 共68页
资源描述:

《基于单片机的模拟空调控制系统学士学位论文》由会员分享,可在线阅读,更多相关《基于单片机的模拟空调控制系统学士学位论文(68页珍藏版)》请在装配图网上搜索。

1、淮北师范大学 2013届学士学位论文 基于单片机的模拟空调控制系统学院、专业 物理与电子信息学院 电子信息工程 研 究 方 向 单板微型计算机 学 生 姓 名 纪 宏 源 学 号 指导教师姓名 指导教师职称 副教授 2013 年 4月 25 日基于单片机的空调模拟控制系统纪宏源淮北师范大学物理与电子信息学院 235000 摘要 本文设计了一种以STC89C52为核心的空调控制系统,并详细分析了其在硬件和软件上的实现过程。本系统硬件电路大致上可以分成控制模块、电机模块、键盘模块、电源模块、温度模块和显示模块。控制模块选用STC89C52芯片并采用24MHz晶振获得稳定的频率,可以用来准确地控制整

2、体电路以及存储和计算数据。按键模块完成空调的工作方式、风速、温度等状态信息的设定。电源模块采用12V锂电池经过7805转换成5V电压向单片机及电机供电,并且用L298N驱动电机使电机速度达到可控。温度模块则是用DS18B20实时采集温度并传输到液晶上显示。显示模块采用无字库LCD12864液晶,实时显示温度数据及空调状态信息。系统软件程序采用C语言编写,占用资源少、程序执行效率高,有利于实现较复杂的算法和程序结构化设计。经测试,本系统满足设计要求,可以实现控制系统的基本功能。关键词 空调;单片机;温度;控制系统Base On Single-Chip Computer Air Condition

3、er 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 process in both hardware and sof

4、tware 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, a STC89C52 chip used 24MHz cryst

5、al 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, which supply the power used in

6、 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 the state information of AC in rea

7、l-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 the basic function of control s

8、ystem. 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 仿真软件及编译软件简介194.2 调试过程中出现的问题及解决办法194.3

9、 调试结果20结论24参考文献25致 谢261 绪 论1.1 空调的发展空调即空气调节器(room air conditioner),它是一种对空间区域里的空气(一般为封闭)进行处理,使空气温度产生变化的机组。空调可以对封闭空间或区域内空气的温度、湿度、洁净度和空气流速等参数进行调节,从而满足人体舒适度的要求。公元前1000年左右波斯利用装置于屋顶的风杆,让外面的自然风穿过凉水并吹入室内另室内感到凉快,这是世界上最早的空气调节系统1。1555年Agricola的著作介绍了煤矿中的通风系统(用人工鼓动的风箱)。1842年,美国佛罗里达州的医生约翰.哥里(John Gorrie)采用刚发明的机制冰

10、在阿帕拉契科拉医院进行气温调节。1851年苏格拉天文学家C.P.Smyth在爱丁堡皇家学会上提出,打算采用空气制冷机来冷却热带房间的想法。1860年Fredinand Carre在巴黎科学院发表了一篇报告他在预言制冷机的多种用途中把剧场、舞厅、别墅的冷却作为主攻目标。1870年西班牙工程师Jose Vallhonesta设计一种装置可以将从阴凉处得到的外界空气,加湿或经过一冰式空冷器后引入房间。1874年美国Andrew Muhl获得一栋大楼的冷却专利。1884年Baltimore-Ohio公司在美国进行初步的尝试,用冰来进行铁路客车舒适空调的设计。1890年左右,空调获得了初步成就,有了工业

11、空调,也有了为人们福利的舒适空调。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)智能仪器仪表。如数字示波器、数字万用表、感应电流表等。(3)消费类电子产品。如洗衣电冰箱、空调、IC卡、汽车电子设备

14、、电视机等。(4)通信方面。如调制解调器、程控交换技术、手机等。(5)武器装备。如飞机、舰艇、坦克、导弹、航天飞机、鱼雷制导、智能武器、卫星等。1.2.2单片机的发展前景现如今单片机正朝着多功能化、多选择性、高速度、低功耗、低价格、大存储容量和增强I/O功能及结构兼容方向发展3。其发展趋势不外乎以下方面:(1)体积小、集成度高单片机、CPU、I/O接口等功能集成在一块芯片上,体积小,节省空间。能灵活方便的应用在各种智能化的控制设备和仪器上,实现机电一体化。单片机是面向控制的,存储器很多的控制场合一般并不需要它去完成一些复杂的数学计算。因此单片机在生产工艺上进行了简化,降低了制造成本。同时单片机

15、都是大批量生产,进一步降低了产品的成本。(2)多功能单片机中尽可能多地把应用所需的存储器都集成在一块芯片内、其CPU可以对I/O口直接进行操作,可以进行位操作、分支转移操作,还能方便的实现多级控制,是整个系统的效率大大的提高。(3)高性能为了提高单片机的速度和执行效率,其中使用了RISC、流水线、DSP等的设计技术,使其性能明显优于同类型的微处理器。(4)低功耗由于单片机需要面向便携式和家电消费产品,因此低电压、低功耗的性质是非常重要的,很多单片机的电压只有24V,所以为以上产品提供了许多便利。许多单片机可在2.2V电压下正常运行,有的也能在1.2V或0.9V电压下正常工作。功耗为均为uA级,

16、由一粒纽扣电池供电下可长期运行。(5)抗干扰能力强单片机把各种功能部件集成在一块芯片上,采用总线结构,减少各芯片之间的连线,从而大大提高了单片机的可靠性与抗干扰能力,适合在恶劣环境下工作。单片机的适应温度范围广,能够在-50100范围内正常工作,这种温度对一般的微型计算机来说是不可想象的。如今单片机的应用范围十分广泛,已成为工业测控各个领域中理想的控制用计算机,成为计算机领域的一个重要分支3。在许多过去采用模拟电路、脉冲电路、组合逻辑实现的部分控制电路系统,现在可用各种单片机予以取代。单片机、编程和传统模拟技术的相结合,构成了新一代的电子应用技术。可以说,单片机将向着“更高、更快、更强”的方向

17、发展。1.3 设计任务本系统要求能实时显示当前温度,当前空调所处状态,设定温度,可以用按键调节设定温度,制热制冷状态,强弱风的选择。系统开始工作后电机开始转动。(1)开机后液晶上显示“毕业设计:空调控制系统 纪宏源”。(2)从独立按键上先按下休眠键进入设定状态。(3)选择工作模式、风量以及设定温度。(4)按下休眠键系统开始工作。2 系统硬件设计2.1 设计方案由于要显示静态和动态图形以及数字所以本设计采用无字库的LCD12864液晶作为显示部分,无字库的液晶12864可以随意的显示自己想要显示的图形及数字灵活性大,因此在本实验采用LCD12864。由本设计的要求和需要,在系统的具体实现时可划分

18、为几个子模块:控制模块(单片机系统及外围电路)、显示模块(LCD12864)、电源模块、键盘模块、驱动模块。各功能模块相互独立,可扩充性强,具有再次开发的潜力。本设计满足系统功能的要求,并且减少了系统实现的复杂度。各模块之间的关系如图1所示。电源模块控制模块显示模块测温模块电机模块图1 硬件系统的总体设计框架 2.2 控制模块2.2.1 单片机简介单片机是一种采用超大规模集成电路技术把中央处理器CPU以及一些相关的功能器件集成在一起的硅材料的集成电路芯片,虽然体积很小,但是一个完善的计算机系统本次设计用的是STC89C52型的单片机。STC89C52是一种带8K在系统可编程FLASH存储器(F

19、PEROMFlash 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引脚):单片机电源电压,接+5V电压。 GND(20引脚):接地。XT

20、AL1(19引脚):反向振荡放大器的输入及内部时钟工作电路的输入。接外部晶体的一端。XTAL2(18引脚):来自反向振荡器的输出。接外部晶体的另一端。在单片机内部,它是反相放大器的输出端。RST(9引脚):RST引脚是单片机的复位/备用电源输入端,高电平有效,有效时间应至少持续24个震荡周期即2个机器周期才能使单片机进行复位。ALE(30引脚):低8位地址锁存使能输出端。当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。当CPU访问外部存储器时ALE可向低8位地址锁存器输出锁存控制信号;当CPU不访问外部存储器时,ALE端以时钟振荡频率的六分之一固定输出正脉冲。另外,该引脚被略

21、微拉高。如果此时置位无效则微处理器在外部执行状态下ALE被禁止。(29引脚):该引脚为外部程序存储器选通信号引脚,当CPU在访问外部程序存储器时,每个机器周期中信号两次有效。当访问外部数据存储器时,这两次有效的信号则不会出现。(31引脚):外部程序存储器地址允许使能端。 P0口(39引脚32引脚):P0口是一个漏级开路的8位准双向复用I/O端口,每脚可吸收8TTL门电流。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。 P1口(1引脚8引脚):P1口是一个内部带上拉电阻的8位准双向I/O端口,P1口缓冲器能接收输出4TTL门电流。在

22、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(串行输入口)P3.1 TXD(串行输出口) P3.2 (外部中断0)

23、 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表示高电平,L表示低电平)DB1H/L数据线1DB2H/L数据线2DB3H/

26、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 键盘模块键盘可以分为矩阵键盘和简单键盘7,首先矩阵式结构的键盘显然比直接法要复杂一些,识别

27、也要复杂一些。其次实验中所用按键个数不是很多,所以可以使用简单键盘。当按键没有按下时,所有的输入端都是高电平,代表无键按下。一旦有键按下,则输入端电平就会被拉低,所以,通过读取输入端的电平就可得知是否有键按下了。实验中,P1.0口用来控制休眠按键,当按键按下后,进入设定模式。P1.1口在进入设定状态后用来增加设定温度。P1.2口则是用来减少温度。P1.3口用来调节风量的大小,风量分为三个等级:强、中、弱风。当第一次按下按键,此时为弱风,两次为中风,三次为强风,当按到第四次时又为弱风,以此方式进行循环。P1.4口是空调制冷、制热模式的选择,和风量选择一样可以进行循环操作。图5 键盘各口与单片机引

28、脚连接图如图5所示,键盘与单片机P1各口相连,从而使键盘所接收到的信息以高低电平的形式传入单片机内部处理。2.5 测温模块DS18B20单线数字温度传感器是Dallas半导体公司生产的世界上第一片支持“一线总线”接口的温度传感器。它的温度检测与传输全集成于一个芯片上,从而抗干扰能力强,其一个工作周期分为两个部分,即温度检测和数据处理。该芯片具有体积小、硬件开消小、抗干扰能力强、精度高、附加功能强著称,是当今温度传感器中的主流。DS18B20的管脚和它的主要特征有8:(1)、VDD 电源电压(2)、GND 电压地(3)、DQ 单数据总线(4)、全数字温度转换及输出、(5)、最高12位分辨率精度可

29、达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桥的高电压大电流双全桥式驱动器,接受标准TTL逻辑电平信号9。L298N具有15个引脚具体功能如下:l

30、 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组成的稳压电源模块所需的外围元件极少,电路内部还有过流、过热和调整管的保护电路,最大输出电流为1.5A,具有

31、短路保护功能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语言是一种结构化的高级语言。其优点是:运算丰富、语法限制不太严格和程序设计自由度大、可读性好、容易移植,是普遍使用的一种计算机语言。缺点是占用资源多,执行效率低。根据以上特点,该程序采用C语言编写。3.1 C语言程序的设计方法为了使

33、计算机能按照人的意志进行工作,我们必须根据实际问题的需要及要求,编写出相应的程序。编写单片机的C语言程序,就是按照实际问题的要求和单片机的特点,决定应采用的计算方法和计算公式,然后根据单片机的指令系统,按照尽可能节省数据存储单元、缩短程序长度和加快运行时间三个原则编写程序。程序设计步骤11:(1)对实际问题进行抽象化处理,提炼成数学模型。 (2)确定解决该数学模型的算法。(3)模块分析。在分析复杂的实际问题时,往往需要把整个问题分成若干个功能块,画出层次图,确定各模块间的通信。(4)出程序流程图,以图示形式表示解决具体问题的思路和方法。(5)流程图编写程序。 (6)调试、修改,直至通过。 3.

34、2 系统软件的设计系统软件的设计分为主程序和子程序的设计。程序采用模块化、结构化设计,其软件的可靠性较好,可维护性强。3.2.1 主程序的设计开始主程序是用来完成系统初始化、设定温度、中断的初始化、温度的判断、显示以及扫描按键、处理数值后的显示模式。主程序循环中主要工作是扫描是否有按键按下,若有则进入设定模式否则实时显示现场温度。主程序流程图如图8所示。初始化LCD显示温度刷新按键扫描N是否有按键按下Y按键设定温度刷新N是否按下休眠键Y电机结束结束图8 主程序流程图3.2.2 子程序的设计此实验主要有三个子程序供主程序调用,即键盘子程序、显示子程序、测温子程序、驱动子程序。3.2.2.1键盘子

35、程序程序中包含检测按键的部分。通过检测有无按键按下,切换LCD显示屏显示的内容。在按键输入电压信号时会出现抖动。这种情况下我们要对按键进行消抖处理。一般的方法有硬件和软件的办法消抖,本设计采用软件消抖方式。所谓软件消抖7,就是在第一次检测到有键按下时先不动作,延时一段时间,再次检测按键的状态,如果仍保持闭合状态,则确认真正有键按下。当检测到按键释放后,也要给5ms10ms的延时,待后沿消抖消失后才能转入按键的处理程序12。示例程序:void KeyRead(void) unsigned char ReadData = P10xff; Trg = ReadData & (ReadData Con

36、t); Cont = ReadData;3.2.2.2显示子程序12864无字库液晶有20个引脚,额定电压为+5V,对比度可调,内含复位电路,提供多种控制命令。由12864个点阵组成,分为8页,可以任意显示各种图形及文字6。但是首先要用取模工具先对要显示的各种图形或者汉字取模。12864液晶在显示时分为两个屏幕显示,用来控制在哪个屏幕上显示内容。void Read_busy()/读“忙”函数,数据位的最高位DB7 为1则忙,每次操作液晶都要读忙 LCD_databus=0x00; /读取最高位 RS=0; /”命令“ RW=1; /”读“ EN=1; /高电平读数据 while(P0&0x80

37、); /一直检测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;/写 LCD_databus=value; EN=1;/下降沿 delay

38、Xus(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地址,直接向温度传感器发出温度变换命令,适用于一个从机工作。l ECH-告警搜索命令。执行后只有温度超过设定值上限

39、或下限的芯片才会做出反应。但是对于一个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 ); /跳过读序号列号的操作 Sensor_Write_Byte( 0x44 ); /启动温度转换 Sens

40、or_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_High = (temp_High) + 1; /向高位进位 else

41、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脉宽调制控制电机的电压,可以达到控制电机转速的目的。在电机调速的过程中占空比是非常重要的参数9,当电源电压不变的情况下输出电压的平均值U取决于

42、占空比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工具,其功能强

43、大,从原理图的设计、程序的调试、单片机和外围电路的协同仿真到PCB设计,该软件实现了从理论到产品的完整设计。它是目前使用率较高的仿真工具,深受单片机爱好者、各高校师生、从事单片机教学的教师以及致力于单片机开发应用工作者的赞赏。Proteus软件支持世界各大公司的多种型号的处理器,如:8051、HC11、AVR、ARM、8086和MSP430等。在2010年随着ARM等新一代产品的推出该公司又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。同时在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。Keil uVision4是美国Keil Software公司研发的单片

44、机C语言软件开发系统,该软件引入林火的窗口管理系统,是开发人员能够使用多台监视器,并提供了视觉上的表面对窗口位置的完全控制的任何地方13。Keil uVision4能嵌入汇编,可以在关键的位置嵌入,使程序达到接近于汇编的工作效率。4.2 调试过程中出现的问题及解决办法在调试过程中,出现了下列问题:(1)、PWM脉宽调制对电机进行调速的问题,(2)、LCD12864不能正确显示从DS128B20上读取的温度,从USB口供电时加上电机后液晶屏幕变暗。关于上面问题的解决方案:(1)、PWM脉宽调制主要在于对占空比D的理解与应用,通过上网找资料基本解决。通过改变直流电机电枢上电压的占空比来改变平均电压

45、的大小,从而控制电动机的转速。因此,PWM又被称为“开关驱动装置”。在脉冲作用下,当电机通电时,速度增加;电机断电时,速度逐渐减少。只要按一定规律,改变通、断电的时间,即可让电机转速得到控制。电机始终接通电源时,设占空比为D=tT,式中t表示一个周期内开关管导通的时间,T表示一个周期的时间。 占空比D表示了在一个周期里,开关管导通的时间与周期的比值,变化范围为0D1。由上式可知,当电源电压不变的情况下,电枢的端电压的平均值为DmaxV=V*D,因此改变占空比D就可以改变端电压的平均值,从而达到调速的目的,这就是PWM调速原理。(2)、关于LCD液晶不能从温度传感器上显示正确的温度是因为算法的错

46、误导致的,经过查阅相关信息,对算法进行修正,温度便可以正确在液晶上。从USB上对单片机进行供电时电流有一定的范围,当电机转动时会从液晶上夺取一部分电流造成液晶的供电不足,解决方案是加上一个电源转换模块从外部电源供电,7805稳压模块可以提供最大1.5A的电流,这个问题便迎刃而解了。4.3 调试结果 各单元模块整合后,系统上电,显示屏上显示LOGO信息,然后进入设定模式,按下休眠键后,可以通过键盘上不同的按键来选择相应的工作模式和对温度的设定。按键S1S5分别对应P0P4,其中S1为休眠键,按下后会进入设定状态。S2与S3为温度加减按键,S2为设定温度增加按键,S3为设定温度减小按键。S4用来调

47、节风量,风量有三种工作模式,分别为强、中、弱用逐次递增的小方格图形来表示,用S4便可以实现一个按键的循回选择。S5则是选择制热或者是制冷状态的按键,和S4一样可以循回选择。最后再次按下休眠键S1,系统判断输入什么状态后,用实际温度和设置温度比较,然后决定电机是否转动。具体调试现象如下图所示:上电后,初始信息如图10所示。图10 显示初始信息 图11 开机显示实时温度 图12 进入设定模式图13 选择工作模式图14 选择风量的大小图15 设定温度设定完成后,在制热模式下设定温度(23摄氏度)大于当前实测温度(18.5摄氏度),则电机启动工作。图16 电机工作图结论此系统完成了基于单片机的设计要求

48、。用无字库12864液晶作为显示工具,用DS18B20测得实时温度,根据工作模式的设定并且与设定温度相比较决定电机是否工作。基于上述设计思想制作的模拟空调控制系统,其电路由多个不同功能的电路模块所组成,基本完成了空调工作的基本原理演示。而且基于单片机的系统具有分布灵活、扩展方便的优点。其技术较为普及,已在生活的方方面面中起到了作用。本系统完成了LCD12864显示屏和控制器的制作。经调试,显示屏的显示亮度适中,能清晰且稳定地显示数字和图形。且与单片机连接后,能够准确的显示当前温度,并且精确到小数点后一位。整个系统简洁,可靠性高,性能稳定。经过本次设计,对STC89C52、LCD12864、L2

49、98N、7805等芯片功能有了更深层次的理解。但是,本论文也有不足之处,不能实现空调的除湿功能、换气及睡眠模式等功能,还有待以后的继续修改添加。经过一个多月的努力,毕业设计终于被顺利的完成,在成功的背后有老师的耐心指导和同学们的真诚帮助,通过此次毕业设计我学到了很多东西也养成了一个良好的自学习惯。解决了通过PWM波控制电机转速的问题以及LCD液晶显示等多方面的问题。在做毕业设计的这段时间里,我主要对以前学过的单片机知识复习和巩固,并增加了学习的深度拓宽了学习的范围,使得单片机的知识真正的被应用于实践。在实际的问题中去思考和解决书本上的问题,总的来说设计的过程并不是一帆风顺的,中间曾经遇到过很多

50、比较棘手的问题,通过对问题的解决进一步加深了我对理论知识的认识。同时也有好多新的问题,希望能在以后的工作学习中进一步对它们做深入的研究和分析。本次的毕业设计主要是基于单片机的基本应用方面,所以最大的收获还是在单片机方面的一些知识,希望自己在以后的工作中,可以对单片机进一步的了解和深入的学习。参考文献1 邱忠岳. 世界空调发展史J . 制冷技术,1984,(03):38-402 胡健. 单片机原理及接口技术M. 北京:机械工业出版社, 20093 李广弟. 单片机原理及应用M .北京:北京航空航天大学出版社,20084 郭文川. 单片机原理与接口技术M . 北京:中国农业出版社,20075 何立

51、民. 单片机应用技术选编(4)M .北京:北京航空航天大学出版社,19966 李维提,郭强. 液晶显示应用技术M. 北京:电子工业出版社,20057 杜力,肖学玲. 使用proteus仿真矩阵键盘时遇到的问题和解决方案J . 科技经济市场,2011,(2):11-128 李刚,赵彥峰. 1-wire 总线数字温度传感器DS18B20原理及应用J. 现代电子技术,2005, (21):77-799 孙绪才. L298N在直流电机PWM调速系统中的应用J. 潍坊学院学报,2009, (04):19-2110 罗国颖,鄢峰,张迁,卢超. 数控开关电源的设计与制作J. 中国集成电路,2010, (03

52、):66-7011 谭浩强. C程序设计M .北京:清华大学出版社,200812 郭天祥.51单片机C语言教程M . 北京:电子工业出版社, 200913 潘永雄. 新编单片机原理及应用M . 西安:西安电子科技大学出版社,2003致 谢在李峥老师的悉心指导和严格要求下,本次毕业设计得以圆满完成。李老师严谨的治学态度、敏锐的直觉和对科学的执着追求都深深地影响了我,他对我的严格要求,让我学到了很多知识,掌握了科研的基本方法,也获得了实践锻炼的机会。李老师富有创造性的思维方法、丰富的科研经验和对科学研究的远见卓识,开拓了我的思路,使我受益非浅。另外,此次毕业设计还得到了物理与电子信息学院各位老师的

53、大力支持和机房管理人员的热心帮助,在此我也要向这些老师表示衷心的感谢!在即将大学毕业之际,我很感激他们为我做出的一切付出,祝他们以及给予我关爱的朋友们幸福、健康!附件:程序1、18B20.c的#include reg52.h#include intrins.h2、12864.c的#include reg52.h#include intrins.h#define LCD_databus P0/12864数据端口sbit RS =P20;/数据命令端口,1为数据,0为指令sbit RW =P21;/读写选择,1为读操作,0为写操作sbit EN =P22;/使能端,下降沿锁存数据sbit CS1=

54、P23;/选屏左,低电平有效sbit CS2=P24;/选屏右,低电平有效/ 延时1usvoid delay1us() /24MHz晶振延时1us/延时X微秒void delayXus(unsigned int x) while(x-) delay1us(); / 延时1msvoid delay1ms(unsigned int ms)unsigned int i; while(ms)for(i = 0; i 1000; i+)delay1us();ms-;void Read_busy() /读“忙”函数,数据位的最高位DB7为1则忙,每次操作液晶都要读忙 LCD_databus=0x00; /

55、读取最高位 RS=0; /”命令“ RW=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();/读忙

56、RS=1;/数据RW=0;/写LCD_databus=value;EN=1;/下降沿 delayXus(20);EN=0;void Set_page(unsigned char page) /置页函数,起始页为0xb8, 1011 1xxx,共8页page=0xb8|page;/page为设置页函数,“或”操作后就加上了“页”数write_LCD_command(page); /写命令设置“页”void Set_line(unsigned char startline) /startline行数,起始列为0xc0, 11xx xxxx 共64行 startline=0xc0|startline;/为设置行函数,“或”操作后就加上了“行”数write_LCD_command(startline);/写命令设置“行”void Set_column(unsigned char column) /置列数,起始列为0x40, 01xx xxxx 共64列 column=column&0x3f;column=0x40|column

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!