欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    基于单片机温度控制系统学士学位论文.doc

    • 资源ID:91763326       资源大小:852.50KB        全文页数:35页
    • 资源格式: DOC        下载积分:9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于单片机温度控制系统学士学位论文.doc

    提供全套毕业论文图纸,欢迎咨询摘要随着中国社会经济的发展,人们生活水平的提高,人们对生活环境的舒适度也越来越重视,比如室内的温度情况。所以基于以单片机为核心的温度采集和控制的系统出现满足了人们的这一要求,本论文以STC89C52RC单片机为主控器件,以数字温度传感器DS18B20进行当前温度值的采集,并将当前温度值通过LCD12864来显示出来;当温度高于或低于期望值时,通过L298N来控制电机对温度进行实时调控,使温度达到期望值。本系统的硬件设计包括单片机最小系统,温度检测电路,LCD显示电路,按键控制电路和电机控制电路。软件设计包括主程序,温度检测子程序,按键检测子程序,LCD液晶显示子程序,电机控制子程序等。关键词:单片机;DS18B20;LCD液晶显示;电机控制The Design of Control System Base on Microcontroller at Room TemperatureAbstractWith the development of China's social economy, people living standard rise, people also pay more and more attention to the living environment of the comfort, such as indoor and outdoor temperature conditions. So based on single chip microcomputer as the core temperature gathering and control system to meet the people of the requirements, this thesis with STC89C52RC MCU as the master device, with digital temperature sensor DS18B20 the temperature value of the collection, and the current temperature value displayed by LCD12864; When the temperature higher or lower than expected, to control the motor by L298N to real-time control of temperature, the temperature reached expectations. The hardware design of this system include the single chip microcomputer minimum system, temperature detection circuit, LCD display circuit, key control circuit and the motor control circuit. Software design includes the main program, temperature detection subroutine, button detection subroutine, LCD liquid crystal display subroutine, motor control subroutine. Key Words:microcontroller;DS18B20;LCD liquid crystal display; motor control目录摘要IIAbstractIII引言11概述21.1设计背景和意义21.2设计思想21.3系统的总体设计21.3.1 方案比较21.3.2系统框图31.4设计重点与难点32硬件电路设计42.1STC89C52RC单片机简介42.2STC89C52RC单片机管脚图42.3单片机最小系统电路图52.4LCD12864液晶简介52.4.1LCD12864的接口原理图62.5按键工作原理62.5.1按键原理图62.6L298N简介72.6.1L298N原理图72.7DS18B20温度传感器简介82.7.1DS18B20原理图82.8 直流电机工作原理简介82.9系统总电路原理图93 软件设计103.1 软件整体设计103.2主程序流程图103.3温度采集子程序113.4液晶显示子程序123.5电机控制处理程序133.6按键处理程序143.6.1按键软件消抖143.6.2按键检测流程图154系统调试164.1 硬件调试164.2 编译软件KIEL4的使用164.3程序的烧录17结论19参考文献20附录A 单片机程序21致谢3131引言随着科技的发展,单片机产品越来越广泛地应用于我们生活,以单片机为核心的温度采集与控制系统在很大程度上提高了生产生活中对温度的控制水平。传统的温度检测以热敏电阻为主,热敏电阻的成本低,所产生的信号为模拟信号,需要通过A/D转换后才能被单片机所识别,而且接线方式对其信号影响较大,所以可靠性相对较差。与传统的热敏电阻测温相比,DS18B20是数字温度传感器,具有读数方便,测量范围广,测量精确高,电路设计简单等优点。本设计的采用STC89C52RC单片机对温度传感器DS18B20的温度进行实时采集和控制,将采集的温度用LCD液晶显示出来,通过按键设定温度控制的范围,并利用电机的正反转进行温度调节,以达到恒温的效果。1 概述1.1 设计背景和意义随着时代的进步和发展,人们的生活水平的提高,人们对生活的舒适度要求也越来越高,尤其是温度。经科学研究发现,25的环境最适宜人类生活。在这个温度下,人体没有冷热感,身体内的毛细血管舒张平衡,感觉非常舒适。伴随着各种新的技术不断应用于人们生活,单片机产品更是得到了飞速发展,在各种微机测量和控制技术里得到了广泛的应用,所以基于以单片机为核心的温度采集和控制的系统出现满足了人们的这一要求,数字温度控制系统便是其中之一。由于传统的热敏电阻温度采集方法不仅费时费力,而且精度差,受环境影响大,易出现不稳定因数,可靠性较差,测温准确度低,误差较大。而使用单片机作为核心的数字温度控制系统,该系统使得温度的采集和数据处理问题能够得到很好的解决,简化数据传输与处理过程,具有集成度高,通用性好,功能强,特别是体积小,重量轻,耗能低,可靠性高,抗干扰能力强和使用方便等独特优点,因此在生产和生活中得到了广泛应用。 1.2 设计思想该设计是一种用于室内温度检测控制系统,该系统控制核心为单片机,可分为硬件设计和软件设计两部分。硬件部分设计思想基于单片机,温度传感器,液晶显示,按键控制和电机控制几个部分,利用温度传感器对温度进行采集,再将采集到的数据送到单片机处理,然后再将处理后的温度值显示用LCD12864液晶显示出来,通过按键调节温度范围的上下限,再将当前的温度值与上下限进行比较,利用比较结果来控制电机的工作状态。部分设计思想是利用单片机的分时控制原理以实现多任务的操作,以便能及时地对温度值进行读取和对按键进行检测,通过对采集到的温度值与设定值比较,超过设定范围就启动电机运转,当温度达到设定范围之后则让电机停止转动。该程序采用模块化设计,把问题分成几个模块,每个模块又分成若干个小模块,逐步细化,然后通过函数调用来实现全部功能。每个子模块都有对应的.C和.H文件,每个模块出问题时都可以被快速找到。本程序采用的是C语言编程,用到的编程软件是KEIL软件。1.3 系统的总体设计1.3.1 方案比较方案一由于本设计是测温电路,首先考虑的是价格比较便宜的热敏电阻,利用热敏电阻的感温效应,将随被测温度变化的电压或电流采集过来,进行A/D 转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D 转换电路,其中还涉及到电阻与温度的对应值的计算,热电阻的测温线路比较复杂,且后续信号处理电路麻烦,而且在对采集的信号进行放大时容易受温度的影响出现较大的偏差,而且可靠性相对较差,测温准确度低,温度值误差较大。方案二进而考虑采用数字温度传感器,所以可以采用数字温度传感器DS18B20,数字温度计具有读数方便,电路简单,测量范围广,测量精确,数字显示,软硬件都以实现,而且使用单片机的接口便于系统的再扩展,满足设计要求。通过对以上两种方案的比较,很容易看出,采用方案二,电路比较简单,费用较低,可靠性高,软件设计也比较简单,故采用了方案二。1.3.2 系统框图单片机STC89C52RC温度检测模块LCD12864显示模块按键检测单元电机控制模块图1.1 温度控制系统框图如图1.1温度控制框图所示,在系统正常运行时,温度传感器DS18B20检测环境中的温度,并传给单片机,单片机将温度值通过液晶显示出来,并将当前温度值与设定值比较控制电机转动,同时还扫描按键检测程序,当有按键按下时处理按键程序。1.4 设计重点与难点本次设计的重点是系统的整合硬件设计、合理的软件设计、程序流程图设计、显示模块设计,其中设计的难点是温度检测与液晶显示和按键检测对CPU使用的资源分配。2 硬件电路设计2.1 STC89C52RC单片机简介STC89C52是中国本土STC公司生产的一款低功耗、高性能CMOS8位微控制器,与传统的51单片机相比具有很大的优势。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能,具有 8K 在系统可编程Flash存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。2.2 STC89C52RC单片机管脚图图2.1 STC89C52RC单片机管脚图2.3 单片机最小系统电路图图2.2 STC89C52RC单片机最小系统单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。复位电路的作用就是在上电或复位过程中,控制CPU的复位状态:这段时间内让CPU保持复位状态,而不是一上电或刚复位完毕就工作,防止CPU发出错误的指令、执行错误操作,也可以提高电磁兼容性能。2.4 LCD12864液晶简介12864是一款带中文字库的LCD是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4行16×16点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。2.4.1 LCD12864的接口原理图图2.3 LCD12864与单片机的接口图2.5 按键工作原理按键模块由4个键组成,采用独立按键式键盘,4个键分别与单片机P3.2、P3.3、P3.6、P3.7引脚相连,每个按键单独连接一条输入线,另一端接地,通过检测输入线的电平就可以判断该键是否被按下。2.5.1 按键原理图图2.4 按键接口电路图2.6 L298N简介L298N是ST公司生产的一种高电压、大电流电机驱动芯片。该芯片采用15脚封装。主要特点是:工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;额定功率25W。内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;可以外接检测电阻,将变化量反馈给控制电路。使用L298N芯片驱动电机,该芯片可以驱动一台两相步进电机或四相步进电机,也可以驱动两台直流电机。2.6.1 L298N原理图图2.5 L298N原理图2.7 DS18B20温度传感器简介DS18B20 温度传感器是美国DALLAS 半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程设定912位的分辨率,精度为±0.5°C。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在EPROM中,掉电后依然保存。2.7.1 DS18B20原理图图2.6 DS18B20与单片机接口图2.8 直流电机工作原理简介直流电机是指能将直流电能转换成机械能或将机械能转换成直流电能的旋转电机。它是能实现直流电能和机械能互相转换的电机,它电磁感应的作用而使电动机转动,同时利用换向器及时改变线圈中的电流方向,从而保持线圈持续转动。直流电机的结构应由定子和转子两大部分组成。2.9 系统总电路原理图图2.7 系统总原理图上图为系统总原理图,该系统采用分时控制原理,当给该系统通电,单片机上电复位后进行系统初始化,系统初始化完成后开始对温度进行实时采集,并通过LCD12864液晶显示当前温度值,并用当前温度值与设定的温度值范围进行比较,如果当前温度值高于设定温度上限值时,电动机反转;如果当前温度值低于设定温度下限值时,电动机正转;当温度在设定温度范围内时电机就停止转动。同时系统利用分时控制原理对按键进行检测,当有按键按下时,通过对按键值的判断来实现系统的工作模式切换和温度上下限的设定。3 软件设计3.1 软件整体设计本软件系统采用模块化设计方法,主要包括以下模块:(1) 主程序初始化:主要完成系统上电后进行LCD液晶模块初始化,设定各个数据的存储单元地址。初始化完成后,系统将正常运行,并进行键盘扫描和温度的控制等操作。(2) 键盘扫描子程序:提供人机信息交换接口,完成温度上、下限值的设定。(3) 温度测量子程序:微控制器首先发布1个启动传输时序,接着调用写时序发布温度的测量命令,等待测量完成。在完成测量后,再将测量结果返回给单片机进行数据处理。(4) 液晶显示子程序:通过LCD屏显示测量数据和温度上下限。(5) 控制子程序:微控制器比较温度的预设值和实际值的大小,控制电机正反转调节温度。系统软件功能模块框图如图3.1所示温度控制主程序系统初始化按键处理温度采集LCD显示输出控制图3.1 系统软件功能模块框图3.2 主程序流程图将程序下载到单片机去后,给单片机上电或复位单片机,首先单片机对液晶初始化、定时器初始化等,延时一段时间等待个模块就绪后单片机驱动液晶显示主界面;单片机开始分时对温度进行检测,然后对键盘进行检测,有按键按下时则进行按键操作,无按键按下时就直接显示测量结果,接着单片机判断测量当前的温度是否满足要求,如不满足要求,则启动电机,如已满足工作,则继续检测显示,然后就是周而复始的循环上述工作,主程序模块如图3.2所示。开始初始化温度检测有按键按下?按键处理YY液晶显示满足设定值?控制电机NYN图3.2 主程序模块框图3.3 温度采集子程序采用单总线技术,与单片机通信只需要一根I/O线,硬件接口设计十分简单,通信协议是芯片厂家自行定义,所以才采用单片机与DS18B20进行通信测温时,单片机必须使用DS18B20的“语言”来与它进行交流,即必须遵循DS18B20的读写时序才能完成温度的采集和读取,如“DS18B20的初始化”、“写一个字节”、“读一个字节”等。对照时序图依次拉高或拉低数据线和时钟线即可实现启动传输时序,完成对温度的采集。在测量完成以后,调用读时序读回测量结果。温度采集程序流程图如图3.3所示:开始初始化输出测量命令等待读取数据读取数据低字节读取数据高字节Y复位N返回图3.3 温度测量程序流程图3.4 液晶显示子程序由于LM3033DDW-0B液晶用ST7920控制器内置了汉字库,因此省掉了查阅国标字码甚至自己取模的繁琐过程,只需要直接在程序中输入想要显示的字符和汉字即可,给编写程序带来了极大的方便,多以编写程序时只需要找出输入的字符串在DDRAM上的坐标和字符的数目。LCD显示流程图如图3.4所示:开始LCD初始化设定数据位置输入显示数据结束图3.4 LCD显示流程图3.5 电机控制处理程序图3.5为电机控制处理流程图,电机控制子程序根据温度检测程序所得到的数据与预设值进行比较,再根据的比较结果将执行命令发送到外部设备。当温度高于设定温度的上限值时,控制电机反转;当温度低于设定温度值的下限值时,控制电机正转。高于设定值高于设定值开始将检测值与设计值相比较返回NN电机反转降温电机正转升温YY图3.5 电机控制流程图3.6 按键处理程序3.6.1 按键软件消抖在这个系统中使用了四个按键,即一个界面切换键,一个设置键和上下限值加减键各一个(一个增加和一个减小)。按键检测人机交互的重要环节。我们既要保证按键按下立刻响应,又要做到当外界干扰时不会造成程序的跑飞。我们在电路中将所有的按键一端接在I/O端口外加上拉电阻另一端接地,当有按键按下时,直接将单片机的I/O口拉低,按键的检测就是检测按键的电平为低则有按键按下否则就没有,但是我们知道阿单片机执行程序是也有时间性的,所以按键按下一段时间后单片机才能够读取到。另外,由于按键的物理特性,我们在操作按键时会发生抖动,如下图3.6所示。图3.6 按键抖动示意图按键抖动是程序必须考虑的问题,否则程序将产生非常多的麻烦。如图按键的抖动时间约为 10-20ms,所以我们检测按键时,通过软件的方法将这段时间过滤掉,这样才能得到准确的信息。我们在学习单片机按键接口时,一般的做法就是利用延时(只考虑软件消抖),即通过延时来直接跳过按键的抖动时间,但是,这种做法效率太低,因为延时的这段时间CPU在跑空语句,这对于CPU资源来说是极大的浪费。下面给大家介绍一种提高效率的方法。我们的可以从这里来思考,我们通常是利用空语句延时,但是我们当执行其他子程序是也是需要时间的,即我们可以把处理子函数的时间作为按键等待的时间,就是把它在为一个“延时子函数”,当“延时”过去以后再检测I/O口的电平。我们可以将时间片的操作思想运用到按键检测,就是每隔20MS(按键抖动时间)检测一下按键,如果连前后2次都检测到按键按下,那么我们可以确认按键确实是按下了,否则就是抖动造成的,返回没有按键按下。这就是FSM原理,我们把按键的检测分成三个状态即(1)是否有按键按下;(2)按键正的按下;(3)按键是否弹起。所以程序中就是要将这三个状态的时间间隔设为20MS,就可以将消抖的时间来运行其他程序成功的避开这一段时间,所以就可以成功的完成按键检测了。3.6.2 按键检测流程图开始是否有按键按下?延时消抖确定是否有按键按下?获取按键值按键处理结束YYNN图3.7 按键检测流程图4 系统调试4.1 硬件调试根据原理图焊接好电路板,将焊接好的电路板通电,看该电路是否能正常工作,如液晶是否点亮并显示当前温度,如果液晶显示,温度检测都能正常工作,则表示该电路没有问题。然后对该电路进行测试,采用加热的电烙铁靠近温度传感器DS18B20,看温度是否发生变化,由于条件限制没有一个精确的温度校正装置,只能看到显示温度发生变化。所以当用加热的电烙铁靠近是,可以看到温度值在不断变大,等当前温度值超过设定温度范围的上限,能够看到电机反转,拿开电烙铁等温度值恢复到设定范围,能够看到电机停止转动。4.2 编译软件KIEL4的使用A: 编译软件的装载:打开keil软件,打开file选择License Management获得ID号,再打开keil目录下的keygen.exe将ID号粘贴进去获得Liscense ID号,复制License ID号,粘贴到License Management中的相应位置,点击ok既可。B:双击快捷方式,进入编辑界面,进行下一步编辑(如图)。C点击文件,新建一个文件,将源程序输入后保存(生成.c文件)。D. 选择项目,点击全部编译,系统自动进行编译后弹出对话框,提示编译中出现的问题,双击提示后系统会自动指出出问题的地方(生成.exe文件)。图4.1 KIEL4软件图标图4.2 编译使用界面4.3 程序的烧录程序的烧录又称烧片,烧片用的是STC_ISP软件,它的使用方法如下:先配置STC_ISP软件,如下图所示;选择STC89C52RC; 烧片时应注意的问题:(1)将单片机准确放入插槽中,不要放反了否则有烧单片机的危险,。(2)选择单片机的型号,为该单片机的型号。(3)打开要下载的文件,即kile的.hex文件(4)选择对应的COM口,可以在设备管理器中查到使用哪个COM口。(5) 按下“Download/下载” 握手成功后给单片机上电即可完成下载,(注:给单片机上电以后,可以用手触屏单片机,当感觉好烫时应立刻断电检查单片机是否放好和其他硬件电路是否正确。)图4.3 程序下载软件图标图4.4 下载软件界面结论经过几个月的努力并在指导老师的悉心教导下,本次毕业设计终于完成并达到了预期的效果,以下是本人对于这次设计的一些总结。本次设计是基于室温控制系统,采用DS18B20模块作为温度采集传感器,该传感器只需简单的电路就可以与单片机实现连接,并且数据之间采用的是单总线进行通信即只需一个I/O口就可以了,由于是数字量传输,增加了抗干扰能力,大大提高数据的准确性。通过本次设计对单片机有了更加深层次的了解,对C语言也是有很大的提高尤其是对于一个系统的整体的流程包括流程图到具体的程序的编写的能力大大的提高。当然在这次设计中也遇到了很大的困难,比如一开始的单片机最小体统不能工作查电路发现是焊接出现了问题;还有后面读取温度总是为零,后面发现是程序开始没有初始化DS18B20导致不能正常工作,以及液晶显示不正确出现乱码,电机转动之后不能停下等问题。庆幸的是这些都在老师和同学的帮助下一一解决了,有些只是自己的太粗心导致的,让系统不能正常的工作。通过这次设计大大的提高了自己的动手能力,包括焊接等硬件制作和程序的编写等软件制作,由于本次试验在制作中全部滴PCB都是自己做的,包括元件库,PCB库和原理图包括后面的电路板的腐蚀都是自己亲自操作的,对于PCB的整个的流程相当了解,极大的提升了对PCB制版和DXP软件的使用。在这段时间里我也发现了自己一些不足,一开始对于问题没有一个总体的把握,总是感到无从下手,对于当中遇到的问题开始也不能很好的解决,可能由于缺少经验,很多问题都是要花费好多的时间。通过这次毕业设计我对课本知识有了巩固和加强,由于课本上的知识太多,平时课间的学习并不能很好的理解和运用各个元件的功能,而且考试内容有限,所以在这次课程设计过程中,我们了解了很多元件的功能,并且对于其在电路中的使用有了更多的认识。这次毕业设计也让我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在这次设计中,我要感谢我的指导老师,他给予我许多的帮助和鼓励。我还要感谢在设计过程中所有给予我真诚热情帮助的老师和同学。参考文献1 化成英,童诗白模拟电子技术基础第三版 北京:高等教育出版社,20042 黎小桃,刘祖明,周福明Protel99SE入门与提高【M】北京:电子工业出版社,20093 王东锋,王会良,董冠强单片机C语言应用100例【M】北京:电子工业出版社,20094 何希才, 薛永毅.传感器及其应用实例M北京:机械工业出版社,20045 吉雷, 章优仕, 齐永龙. Protel99电子电路设计M成都:电子科技大学出版社,2000.6 楼然苗,李光飞编著51 系列单片机设计实例北京北京航空航天大学出版社20037 马忠梅,籍顺心,张 凯,马 岩单片机C 语言应用程序设计 修订版【M】 北京:北京航空航天大学出版社,19998 北京教育科学研究院.无线电技术基础M.北京:人民邮电出版社,2005.9 吕俊芳,钱政,袁梅传感器接口与检测仪器电路【M】北京:国防工业出版社,200910 明、唐杰等.51 单片机编程基础与开发实例详解.北京:人民邮电出版 社,2008 9 赵晓安主编MCS-51 单片机原理及应用天津天津大学出版社2001附录A 单片机程序#include"reg51.h"#include"12864.h"#include"Heardware.h"#include"DS18B20.h"/* * 变量定义 */unsigned char code dis1="电子学院 A1031"unsigned char code dis2="温度控制系统"unsigned char code dis3="指导老师:*"unsigned char code dis4="温度值T="unsigned char code dis5="班"unsigned char code dis6="°C"unsigned char code dis7="上限值="unsigned char code dis8="下限值="unsigned char Temperature; /读取温度转换值unsigned char Screenchangeflage;/ 界面切换标志unsigned char Screenchangeflagevalue;/ 界面切换标志值unsigned char Keyexchangeflage;/ 界面切换标志unsigned char Temperatureflage;/ 温度检测标志unsigned char Keycodeflage;/ 按键检测标志unsigned char Keycodecheck;/ 检测按键间隔时间unsigned char TemperatureHlimit; /温度上限值 char TemperatureLlimit; /温度下限值unsigned char VauleADDKeyflage; /按键加标志位unsigned char VauleCutKeyflage; /按键减标志位unsigned char Screenflage; /按键减标志位unsigned char Screenflage1; /按键减标志位unsigned char PWMflage; /PWM标志位unsigned char Temperaturetime; /温度检测时间间隔unsigned int MOTORflage; /温度检测时间间隔/* * 函数声明 */void LCDDISPLAY(void); /显示子程序void delay1ms(void) ; /普通延时子程序void init_t0(void) ;/定时器0中断初始化 void KEYPRESS(void);/按键检测void LCDDISPLAY0(void);/切换界面显示子程序void KEYPRESSOPerate(void);/按键操作void PLCDDISPLAY(void);/切换界面显示子程序void PLCDDISPLAY0(void);/切换界面显示子程序0void fanzhuang(void);/电机反转void zhengzhuan(void);/电机正转/* 函数名称: void main(void)* 功能描述: 主函数*/void main(void) TemperatureHlimit = 27; /温度上限值为26度 TemperatureLlimit = 23; /温度下限值为24度 Temperature = 0; IN1 = 0; /L298N的1输入端,IN1,IN2为1、0正转,0、1反转,1、1刹停,0、0停止 IN2 = 0; /L298N的2输入端 LCD_12864_Initialization(); /LCD12864液晶初始化 LCD12864_Write_String(0,0,dis1); LCD12864_Write_String(7,0,dis5); LCD12864_Write_String(8,0,dis3); LCD12864_Write_String(0,1,dis2); LCD12864_Write_String(8,1,dis4); LCD12864_Write_String(14,1,dis6); init_t0() ;/定时器0中断初始化 while(1) if(Keycodeflage = 1)/检测按键标志位,每隔25ms检测一次按键 Keycodeflage = 0; KEYPRESS(); KEYPRESSOPerate(); /按键操作 if(Screenflage=0)&&(Screenchangeflagevalue=0)|(Screenchangeflagevalue=2)/显示当前温度值 LCDDISPLAY(); else LCDDISPLAY0(); /* 函数名称: void init_t0(void)* 功能描述: 定时中断初始化*/void init_t0(void) TMOD = 0x02;/定时器0工作在第二状态,即自动重装 TH0 = 0x06;/250个us TL0 = 0x06; ET0 = 1; / 允许T0中断 EA = 1; / CPU开中断 TR0 = 1; / 启动T0定时开始/* 函数名称: void Timer0(void) interrupt 1* 功能描述: 定时中断函数*/void Timer0(void) interrupt 1 if(+Temperaturetime = 20)/ 每隔5ms检测一次温度 Temperaturetime = 0;Temperatu

    注意事项

    本文(基于单片机温度控制系统学士学位论文.doc)为本站会员(知****量)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开