下载
加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 基于51单片机的温度自动控制系统实现步进电机控制设计—毕业设计论文

基于51单片机的温度自动控制系统实现步进电机控制设计—毕业设计论文.doc

基于51单片机的温度自动控制系统实现步进电机控制设计—毕业设计…

郭幽兰
2017-09-18 0人阅读 举报 0 0 暂无简介

简介:本文档为《基于51单片机的温度自动控制系统实现步进电机控制设计—毕业设计论文doc》,可适用于战略管理领域

基于单片机的温度自动控制系统实现步进电机控制设计毕业设计论文毕业设计论文题目:温度自动控制系统实现学院:专业:学生姓名:学号:指导教师:职称:第页共页摘要温度控制是我们工业生产过程和日常生活中经常遇到的过程控制在我们日常生活中家里的饮水机、电风扇、空调、暖气开关、宿舍的热水系统无不需要用到自动温控系统。而要实现对多个温度系统的控制目前在市场上是很少的单个的主机对各个温控的对象进行控制显得资源浪费为了解决这个问题实现一个主机对多个系统进行控制本课题主要对实现了双通道的温度自动控制系统的说明。本设计主要是基于STCC单片机和DSB温度传感器的温度自动控制系统并采用液晶屏作为温度显示模块设计中充分利用单片机的管脚资源实现两个通道的温度控制系统独立键盘可以对正常温度的范围进行设定还可选择工作的测温通道控制模块主要是通过控制信号的输出实现对相关升降温器件进行开关控制从而实现一个双通道的温控自动控制系统。设计中采用MCS单片机来对温度进行控制是因为其具有控制方便、组态简单和灵活性大集成度高功能强通用性好特别是它具有体积小重量轻能耗低价格便宜可靠性好抗干扰能力强和使用方便等方面的独特的优点而且可以大幅度提高被控温度的技术指标。所以此装置不仅轻便、稳定而且功能非常实用。本文从硬件电路的设计、软件设计两方面介绍了MCS单片机温度控制系统的设计思路对硬件原理图和程序框图作了简单的描述对设计的实现过程和调试过程也做了相应的说明。关键字:单片机液晶屏DSb温度控制第页共页AbstractTemperaturecontrolisourindustrialprocessesandfrequentlyencounteredineverydaylifeprocesscontrolinourdailylife,homewaterdispenser,electricfans,airconditioning,heatingswitch,dormitoriesnotneedtouseahotwatersystemhasnoautomatictemperaturecontrolsystemInordertoachieveapluralityoftemperaturecontrolofthesystemcurrentlyonthemarketisverysmall,foreachindividualhost简单低电压低功耗功能强大等特点。根据以上说明可知由于本课题需要测量显示的数据较多并且需要根据特定要求进行人机交互设置操作因此选择方案二中的LCD作为主机模块的液晶显示模块可以达到很好的显示效果且价格低廉。温度测量方案一:使用热敏电阻作为感温器件。由于热敏电阻是用半导体材料大多为负温度系数即阻值随温度增加而降低。温度变化会造成大的阻值改变因此它是最灵敏的温度传感器。热敏电阻具有灵敏度高工作温度范围宽体质小使用方便等特点。但是由于热敏电阻的线性度极差因此用来测量温度的精度就相应的降低了。方案二:使用DSB数字测温传感器作为测温器件。单总线数字温度传感器DSB只有一根数据线系统中的数据交换控制都由这根线完成。单总线具有经济第页共页性好抗干扰能力强适合于恶劣环境的现场温度测量使用方便等优点使用户可轻松地组建传感器网络。DSB还具有测量温度范围宽精度高体积小成本低使用方便等特点。根据以上所述可知选用DSB数字测温传感器作为测温器件具有众多的优点。因此本课题选用DSB作为测温器件。系统电路的设计及原理说明电路系统说明硬件电路主要有两大部分组成:模拟部分和数字部分从功能模块上来分有:主机电路、数据采集电路、键盘显示电路、电源电路、控制执行电路。各个模块电路通过主机电路控制协调一致的进行工作。完成对被测物体的温度控制。硬件结构框图如图所示。图硬件结构框图电路设计说明主机选用INTEL公司的MCS系列单片机C来实现利用单片机软件编程灵活、自由度大的特点力求用软件完善各种控制算法和逻辑控制。本系统选用的C芯片时时钟可达MHZ运算速度快控制功能完善。其内部具有字节RAM而且内部含有KB的EPROM不需要外扩展存储器也有数据通信接口通过TXD、RXD与PC机连接可以进行人机操作使得操作更加简单、方便。具有五个中断源两个中断优先级两个外部中断、两个定时中断还用一个通信中断可以对温度检测进行实时处理和分时操作这样就可以对被测物体温度监测更加准确、延时性更小同时也可使系统整体结构更为简单实用。实用电子电路手册J(高等教育出版社(年月第页共页单片机电路(~)单片机最小系统原理图如图所示:图单片机最小系统原理图()单片机电路说明单片机最小系统原理图如图所示。单片机最小系统是单片机运行的最基本条件其中包含有单片机复位电路和晶振电路。晶振电路选用的晶振频率是MHz因为系统电路需要进行串口通信选用MHz的晶振在串口通信中产生波特率的误差为零因此适合进行串口通信。复位电路具有上电复位和手动复位两种功能上电复位是系统启动是进行的复位手动复位是系统运行过程因为某种原因需要进行复位时使用。供电系统电路()电源电路原理图图电源电路原理图()电源电路说明在本系统中提供了两种供电方式方便系统在不同的环境中使用。供电系统原理图如图所示。其中一种供电方式为外部电源供电方式一种为电源线供电方式。外部第页共页电源供电在电路设计中通过插针引出两个引脚负责外接其他电源而电源要求供电必须在V因为此时接入的电路并没有相应的保护电路。电源线电源供电使用了三端稳压芯片进行稳压后再输入到系统使整个系统的工作电压稳定在V左右。因为稳压芯片的输入极限值最大为V。因此按照理论值通过外部电源供电时可输入引脚最大电压为V。因为单片机的工作电压是V至V因此输入小于V时单片机一样能工作只要芯片的输出电压在V至V之间单片机均可正常工作。另外需要说明的是电源线接口不具备数据传输功能只是单纯的供电输入。显示模块电路()显示模块电路原理图图液晶显示电路原理图()显示模块电路说明本课题主要使用液晶屏进行采集数据的显示电路原理图如图所示根据液晶屏的特征本系统中采用并行数据传输方式。因此LCD的引脚到引脚直接接到单片机的P口用于并行数据传输电位器用于液晶屏对比度的设置。管脚、、为电源供电接入。时钟电路()时钟电路原理图图时钟电路原理图()时钟电路说明实时时钟模块主要用于实时时间显示以及测量数据时间的记录。电路原理图如图所示。根据系列单片机的芯片说明在单片机XTAL和XTAL引脚上跨接上一个第页共页晶振和两个稳频电容可以与单片机片内的电路构成一个稳定的自激振荡器。晶振的取值范围一般为~MHz常用的晶振频率有MHz、MHz、MHz、MHz等。一些新型的单片机还可以选择更高的频率。外接电容的作用是对振荡器进行频率微调使振荡信号频率与晶振频率一致同时起到稳定频率的作用一般选用~pF的瓷片电容。而本设计采用MHZ晶振和PF的电路。复位电路()复位电路原理图复位电路原理图图()复位电路说明单片机最小系统复位电路的极性电容C的大小直接影响单片机的复位时间一般采用~uF单片机最小系统容值越大需要的复位时间越短。无论是在单片机刚开始接上电源时还是运行过程中发生故障都需要复位。复位电路用于将单片机内部各电路的状态恢复到一个确定的初始值并从这个状态开始工作。单片机的复位条件:必须使其RST引脚上持续出现两个(或以上)机器周期的高电平。按键复位电路中当按键没有按下时电路同上电复位电路。如在单片机运行过程中按下RESET键已经充好电的电容会快速通过Ω电阻的回路放电从而使得RST引脚上的电位快速变为高电平此高电平会维持到按键释放从而满足单片机复位的条件实现按键复位。按键电路()按键电路原理图图按键电路原理图()按键电路说明键盘电路设计是用四个控制键盘组成它具有单片机最简单的输入设备通过键盘输入数据或命令实现简单的人机对话本设计由于单片机IO口资源丰富故采用独立第页共页键盘的形式而不需要采用矩阵键盘使用矩阵键盘能大量的节约单片机的IO资源方便快捷独立键盘虽然占用了IO资源但是运用灵活很适用键盘少的电路。如表为键盘功能表。表按键键名功能KEY选定修改键可选定将要修改的温度限数值KEY调控键加KEY调控键减KEY通道选择键可以选择工作的通道按键电路中的按键分别与P、P、P、P口连接用于实现信号的输入单片机在初始化各管脚都是出于高电平状态当有按键按下的时候则对应管脚的电平将被拉低从而我们只需要在单片机程序中对键盘进行扫描当扫描检测到低电平时则说明该按键被按下然后执行相应的指令这样就可以实现对单片机的输入控制。当KEY按键被按下时则只选择通道一的温控系统工作而再按下一次按键则只选择通道二正常工作通道一停止工作再接着按下一次按键又回到初始化状态两路温控系统都正常工作。当KEY按下时首先选中的是通道一的下限温度值再按下一次按键则选中通道一的上限温度值接着再按下一下按键则选择通道二的下限温度值再按下一次则选择了通道二的上限温度值最后按下一次则回复到不选定任何数值。此时调控按键不能对温度限的值进行修改。在KEY选择了将要修改的温度值按下KEY则选中的温度值将进行加处理若按下KEY则选中的温度值将进行减处理。KEY没有选中要修改的温度值时按键KEY和KEY都不进行工作。报警电路()报警电路原理图图报警电路原理图第页共页()报警电路说明本课题采用的报警电路主要分为两个部分:一个部分是使用三极管作为开关作用用于驱动蜂鸣器报警第二不是是LED报警指示灯。设计中采用PNP三级管作为驱动电路的组成其发射极接上高电平集电极对接上蜂鸣器的正极通过对基极电流和电压的输出来控制三级管的截止、放大、饱和状态。当其处于饱和状态的瞬间将驱动蜂鸣器报警集电极输出一个高电平给蜂鸣器。此时对应的LED和LED分别为两路温控系统的报警指示灯。当蜂鸣器响时相应的报警指示灯将会根据程序的要求进行闪烁从而达到报警的状态。三极管的基极上接有个K的偏置电阻用以提供相应的偏置电压控制三极管的工作状态。单片机的P管脚接的是三级管的基极。P、P分别接的是两路温控通道的LED和LED报警指示灯。控制电路()控制电路说明本设计主要的控制电路比较简单主要是通过对单片机的P、P、P、P管脚的控制分别输出相应的控制信号从而控制外接电路外接电路的导通与否完全取决于是否有相应的控制信号输出达到一个对控制对象的工作与否的控制简单的说单片机的管脚的输出信号是一个开关信号这个开关决定了被控制对象的工作状态。而为了更方便多样的控制不同的温控对象设计上只是简单的使用插针引出了控制线这样就可以针对不同的控制对象进行连接。在此基础上考虑到大部分的外接模块为大功率用电器因而需要用到继电器作为开关实现用单片机的输出控制信号控制继电器从而控制大功率用电器的工作状态。由于温度是个不好实现的量为了说明自动控制本设计主要采用一种模拟状态说明实现的自动控制功能。保护电路()保护电路原理图图稳压电路原理图()保护电路说明在通常的电路设计中由于在不同的环境下我们获取的电源是不一样而系统的芯片等对电压的稳定性提出了较高的要求如果不能有一个温度的供电环境不仅影响电路的正常工作还影响其使用的寿。所以本设计的稳压电路主要采用了L稳压管作为稳压电路它可以是电路的输出电压稳定在V这样刚好满足单片机电路对电源电第页共页压的要求L的管脚主要由三个如图所示从左往右分别为、、管脚管脚接的是输入的高电平管脚接系统的地电路管脚为输出电路其输出的电源电压将温度的控制的V。当输入电压高于V时这部分热量将通过L散热的方式三方出去。而当电压低于V时则系统将会不能正常工作。关键元器件介绍STCC单片机单片机主要功能()位CPUkbytes程序存储器(ROM)(为K)()bytes的数据存储器(RAM)。(有bytes的RAM)()条IO口线条指令大部分为单字节指令()个专用寄存器()个可编程定时计数器个中断源个优先级(有个)()一个全双工串行通信口()外部数据存储器寻址空间为kB外部程序存储器寻址空间为kB()()逻辑操作位寻址功能双列直插PinDIP封装()单一V电源供电()CPU由运算和控制逻辑组成还包括中断系统和部分外部特殊功能寄存器()RAM用存放可以读写的数据如运算的中间结果、最终结果欲显示的数据()ROM用以存放程序、一些原始数据和表格()IO口:四个位并行IO口既可用作输入也可用作输出。()TC:两个定时记数器既可以工作在定时模式也可以工作在记数模式。()五个中断源的中断控制系统()一个全双工UART(通用异步接收发送器)的串行IO口用于实现单片机之间或单片机与微机之间的串行通信()片内振荡器和时钟产生电路石英晶体和微调电容需要外接。最高振荡频率为M。单片机常用管脚功能C是一种高性能低功耗的采用CMOS工艺制造的位微控制器它提供下列标准特征:K字节的程序存储器字节的RAM,条IO线个位定时器计数器,一个中断源两个优先级的中断结构一个双工的串行口,片上震荡器和时钟电路。以下为引脚说明:VCC:供电电压。第页共页GND:接地。P口:P口是一组位漏极开路型双向IO口作为输出口用时每个引脚能驱动个TTL逻辑门电路。当对端口写入时可以作为高阻抗输入端使用。当P口访问外部程序存储器或数据存储器时它还可设定成地址数据总线复用的形式。在这种模式下P口具有内部上拉电阻。在EPROM编程时P口接收指令字节同时输出指令字节在程序校验时。程序校验时需要外接上拉电阻。P口:P口是一带有内部上拉电阻的位双向IO口。P口的输出缓冲能接受或输出个TTL逻辑门电路。当对P口写时它们被内部的上拉电阻拉升为高电平此时可以作为输入端使用。当作为输入端使用时P口因为内部存在上拉电阻所以当外部被拉低时会输出一个低电流(IIL)。P口:P是一带有内部上拉电阻的位双向的IO端口。P口的输出缓冲能驱动个TTL逻辑门电路。当向P口写时通过内部上拉电阻把端口拉到高电平此时可以用作输入口。作为输入口因为内部存在上拉电阻某个引脚被外部信号拉低时会输出电流(IIL)。P口在访问外部程序存储器或位地址的外部数据存储器(例如MOVX,DPTR)时P口送出高位地址数据。在这种情况下P口使用强大的内部上拉电阻功能当输出时。当利用位地址线访问外部数据存储器时(例MOVX,R),P口输出特殊功能寄存器的内容。当EPROM编程或校验时P口同时接收高位地址和一些控制信号。P口:P是一带有内部上拉电阻的位双向的IO端口。P口的输出缓冲能驱动个TTL逻辑门电路。当向P口写时通过内部上拉电阻把端口拉到高电平此时可以用作输入口。作为输入口因为内部存在上拉电阻某个引脚被外部信号拉低时会输出电流(IIL)。P口的第二功能:P口同时具有ATC的多种特殊功能具体如下表所示:表单片机IO口管脚功能表端口引脚第二功能PRXD(串行输入口)PTXD(串行输出口)INTP(外部中断)INTP(外部中断)PT(定时器)PT(定时器)WRP(外部数据存储器写选通)RDP(外部数据存储器都选通)第页共页RST:复位输入。当振荡器复位器件时要保持RST脚两个机器周期的高电平时间。ALEPROG:当访问外部存储器时地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间此引脚用于输入编程脉冲。在平时ALE端以不变的频率周期输出正脉冲信号此频率为振荡器频率的。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时将跳过一个ALE脉冲。如想禁止ALE的输出可在SFREH地址上置。此时ALE只有在执行MOVXMOVC指令是ALE才起作用。另外该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止置位无效。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间每个机器周期两次PSEN有效。但在访问外部数据存储器时这两次有效的PSEN信号将不出现。EAVPP:当EA保持低电平时则在此期间外部程序存储器(HFFFFH)不管是否有内部程序存储器。注意加密方式时EA将内部锁定为RESET当EA端保持高电平时此间内部程序存储器。在FLASH编程期间此引脚也用于施加V编程电源(VPP)。XTAL:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL:来自反向振荡器的输出。单片机内部寄存器通过前面的介绍我们已知道了单片机的内部有ROM、有RAM、有并行IO口还有其他内部寄存器我们做简要介绍图单片机结构框图从图中我们可以看出在单片机内部有一个CPU用来运算、控制有四个并行IO口分别是P、P、P、P有ROM用来存放程序有RAM用来存放中间结果郭天祥单片机C语言教程北京:电子工业出版社,:~第页共页此外还有定时计数器串行IO口中断系统以及一个内部的时钟电路。在一个单片机的内部包含了这么多的东西。对图进行进一步的分析我们已知对并行IO口的读写只要将数据送入到相应IO口的锁存器就可以了那么对于定时计数器串行IO口等怎么用呢,在单片机中有一些独立的存储单元是用来控制这些器件的被称之为特殊功能寄存器(SFR)。事实上我们已接触过P这个特殊功能寄存器了。常见的寄存器表符号地址功能介绍BFHB寄存器ACCEH累加器PSWDH程序状态字IPBH中断优先级控制寄存器PBHP口锁存器IEAH中断允许控制寄存器PAHP口锁存器SBUFH串行口锁存器SCONH串行口控制寄存器PHP口锁存器THDH定时器计数器(高位)THCH定时器计数器(低位)TLBH定时器计数器(高位)TLAH定时器计数器(低位)TMODH定时器计数器方式控制寄存器TCONH定时器计数器控制寄存器DPHH数据地址指针(高位)DPLH数据地址指针(低位)SPH堆栈指针LCD液晶屏液晶屏的优点在单片机系统中应用晶液显示器作为输出器件有以下几个优点:()显示高质量:由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度恒定发光而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。因此液晶显示器画质高且不第页共页()数字式接口液晶显示器都是数字式的和单片机系统的接口更加简单可靠操作更加方便。()体积小、重量轻液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的在重量上比相同显示面积的传统显示器要轻得多。()功耗低相对而言液晶显示器的功耗主要消耗在其内部的电极和驱动IC上因而耗电量比其它显示器要少得多。管脚功能工业字符型液晶能够同时显示x即个字符。(列行)采用标准的脚接口其中:第脚:VSS为地电源。第脚:VDD接V正电源。第脚:V为液晶显示器对比度调整端接正电源时对比度最弱接地电源时对比度最。高对比度过高时会产生“鬼影”使用时可以通过一个K的电位器调整对比度。第脚:RS为寄存器选择高电平时选择数据寄存器、低电平时选择指令寄存器。第脚:RW为读写信号线高电平时进行读操作低电平时进行写操作。当RS和RW。共同为低电平时可以写入指令或者显示地址当RS为低电平RW为高电平时可以读忙信。号当RS为高电平RW为低电平时可以写入数据。第脚:E端为使能端当E端由高电平跳变成低电平时液晶模块执行命令。第,脚:D,D为位双向数据线。第,脚:空脚。指令说明及时序()控制命令表:液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:为高电平、为低电平)指令:清显示指令码H,光标复位到地址H位置。指令:光标复位光标返回到地址H。指令:光标和显示模式设置ID:光标移动方向高电平右移低电平左移S:屏幕上所有文字是否左移或者右移。高电平表示有效低电平则无效。指令:显示开关控制。D:控制整体显示的开与关高电平表示开显示低电平表示关显示C:控制光标的开与关高电平表示有光标低电平表示无光标B:控制光标是否闪烁高电平闪烁低电平不闪烁。指令:光标或显示移位SC:高电平时移动显示的文字低电平时移动光标。指令:功能设置命令DL:高电平时为位总线低电平时为位总线N:低电平第页共页时为单行显示高电平时双行显示F:低电平时显示x的点阵字符高电平时显示x的点阵字符。指令:字符发生器RAM地址设置。指令:DDRAM地址设置。指令:读忙信号和光标地址BF:为忙标志位高电平表示忙此时模块不能接收命令或者数据如果为低电平表示不忙。指令:写数据。指令:读数据。()与HD相兼容的芯片时序表如下:表读状态输入RS=LRW=HE=H输出DD=状态字写指令输入RS=LRW=LDD=指令码E=高脉冲输出无读数据输入RS=HRW=HE=H输出DD=数据写数据输入RS=HRW=LDD=数据E=高脉冲输出无()基本操作时序表和所示:读写操作时序如图图读操作实现图写操作时序张毅刚新编MCS单片机应用设计M哈尔滨:哈尔滨工业大学出版第页共页地址映射及标准字库表液晶显示模块是一个慢显示器件所以在执行每条指令之前一定要确认模块的忙标志为低电平表示不忙否则此指令失效。要显示字符时要先输入显示字符地址也就是告诉模块在哪里显示字符图是的内部显示地址。图LCD内部显示地址液晶模块内部的字符发生存储器(CGROM)已经存储了个不同的点阵字符图形如图所示这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等每一个字符都有一个固定的代码比如大写的英文字母“A”的代码是B(H)显示时模块把地址H中的点阵字符图形显示出来我们就能看到字母“A”。DSb温度传感器DSB的简介温度传感器的种类众多在应用与高精度、高可靠性的场合时DALLAS(达拉斯)公司生产的DSB温度传感器当仁不让。超小的体积超低的硬件开消抗干扰能力强精度高附加功能强使得DSB更受欢迎。对于我们普通的电子爱好者来说DSB的优势更是我们学习单片机技术和开发温度相关的小产品的不二选择。了解其工作原理和应用可以拓宽您对单片机开发的思路。其管脚图如图所示。()独特的单线接口方式:DSB与微处理器连接时仅需要一条口线即可实现微处理器与DSB的双向通讯。()在使用中不需要任何外围元件()可用数据线供电电压范围:~V。()测温范围:~。固有测温分辨率为。()通过编程可实现~位的数字读数方式。()用户可自设定非易失性的报警上下限值。()支持多点组网功能多个DSB可以并联在惟一的三线上实现多点测温。()负压特性电源极性接反时温度计不会因发热而烧毁但不能正常工作。DSB内部结构如图所示。主要由部分组成:位ROM、温度传感器、第页共页非挥发的温度报警触发器TH和TL、配置寄存器。ROM中的位序列号是出厂前被光刻好的它可以看作是该DSB的地址序列码每个DSB的位序列号均不相同。位ROM的排的循环冗余校验码(CRC=X^X^X^)。ROM的作用是使每一个DSB都各不相同这样就可以实现一根总线上挂接多个DSB的目的。图DSB内部结构图DSB管脚排列DSb初始化操作流程DSb单线通信功能是分时完成的且有严格的时隙概念因而时序很重要对其操作的程序设计必须严格按照时序的先后次序与延时时间才能保障对其操作的可靠实现。有DSB的操作协议根据DSB的初始化时序、写时序、读时序要求设计出对操作的通用初始化子程序模块、写字节程序模块、读字节程序模块。以下选取初始化子程序的说明其设计。()DSB的初始化:初始化时序如图所示。具体步骤:图DSB初始化时序先将数据线置高电平“”。延时(该时间要求的不是很严格但是尽可能的短一点)数据线拉到低电平“”。延时微秒(该时间的时间范围可以从到微秒)。第页共页数据线拉到高电平“”。延时等待(如果初始化成功则在到毫秒时间之内产生一个由DSB所返回的低电平“”。据该状态可以来确定它的存在但是应注意不能无限的进行等待不然会使程序进入死循环所以要进行超时控制)。若CPU读到了数据线上的低电平“”后还要做延时其延时的时间从发出的高电平算起(第()步的时间算起)最少要微秒。将数据线再次拉高到高电平“”后结束。()DSB的写操作:图DSB写时序具体步骤:数据线先置低电平“”。延时确定的时间为微秒。按从低位到高位的顺序发送字节(一次只发送一位)。延时时间为微秒。将数据线拉到高电平。重复上()到()的操作直到所有的字节全部发送完为止。最后将数据线拉高。()DSB的读操作图DSB读时序第页共页具体步骤:将数据线拉高“”。延时微秒。将数据线拉低“”。延时微秒。将数据线拉高“”。延时微秒。读数据线的状态得到个状态位并进行数据处理。延时微秒。DSB与单片机的典型接口设计以MCS单片机为例中采用寄生电源供电方式P口接单线总线为保证在有效的DSB时钟周期内提供足够的电流可用一个MOSFET管和C的P来完成对总线的上拉。当DSB处于写存储器和温度AD变换操作时总线上必须有强的上拉上拉开启时间最大为us。采用寄生电源供电方式时VDD和GND端均接地。由于单线只有一根线因此发送接口必须是三态的。主机控制DSB完成温度转换必须经过三个步骤:初始化、ROM操作指令、存储器操作指令。假设单片机系统所用的晶体管晶振频率为MHZ根据DSB的初始化时序、写时序和读时序分别编写三个子程序:INTI为初始化子程序WRITE为写子程序READ为读子程序所有的数据读写均由最低位开始实际在实验中不用这种方式只要在数据线上加一个上拉电阻K另外两个引脚分别接电源和地。数据采集电路的设计数据采集电路主要由数字温度传感器DSB采集水温的温度。温度传感器的单总线(Wire)与单片机的I,O连接P是单片机的高位地址线。P端口是一个带内部上拉电阻的位双向I,O每个端口都有第二功能其输出缓冲级可驱动(吸收或输出电流)个TTL逻辑门电路。对该端口写“”可通过内部上拉电阻将其端口拉至高电平此时可作为输入口使用这是因为内部存在上拉电阻某一引脚被外部信号拉低时会输出一个电流。系统原理图及PCB图系统原理图从功能模块上来系统分有:主机电路、数据采集电路、键盘显示电路、电源电路、控制执行电路。各个模块电路通过主机电路控制协调一致的进行工作。完成对被测物体的温度控制如图所示。具体系统原理图见附录一。第页共页图系统PCB图在PCB图的布局时根据电路特点进行了原件的合理摆放原件封装大小、和焊盘的设置都进行相关确认之后用手动进行布线其中为了节省空间将晶振电路放到了单片机的底座下这样既节省了空间也使电路看起来更加美观如图所示。具体PCB图见附录二。图软件设计在微机测控系统中软件与硬件都是非常重要。系统的躯体是硬件灵魂则是软件硬件电路在系统中设计好之后软件是系统功能实现的主要方式而且测控系统的性能第页共页很大程度上是由软件设计实现的。为了达到系统的要求编制软件时一般要符合以下基本要求:一、易理解性、易维护性要达到易理解和易维护等指标在软件的设计方法中结构化设计是最好的一种设计方法这种设计方法是由整体到局部然后再由局部到细节先考虑整个系统所要实现的功能确定整体目标然后把这个目标分成一个个的任务任务中可以分成若干个子任务这样逐层细分逐个实现。二、实时性实时性是电子测量系统的普遍要求即要求系统及时响应外部事件的发生并及时给出处理结果。近年来由于硬件的集成度与运算速度的提高配合相应的软件实时性比较容易满足设计要求。三、准确性准确性准确性准确性对整个系统具有重要意义尤其是测量系统系统要进行一定量的运算算法的正确性和准确性对结果有着直接的影响因此在算法的选择、计算的精度等方面都要符合设计的要求。四、可靠性是系统软件最重要的指标之一作为能够稳定运行的系统抗干扰技术的应用是必不可少的最起码的要求是在软件受到干扰出现异常时系统还能恢复正常工作。系统的软件由三大模块组成:主程序模块、功能实现模块和运算控制模块。软件组成由于整个系统软件相对比较庞大为了便于编写、调试、修改和增删系统软件的编制采用了模块化的设计。即整个控制软件由许多独立的小模块组成它们之间通过软件接口连接遵循模块内部数据关系紧凑模块之间数据关系松散的原则按功能形成模块化结构。系统的软件主要由主程序模块、数据采集模块、数据处理模块、控制算法模块等组成。主模块的功能是为其余几个模块构建整体框架及初始化工作数据采集模块的作用是将转换的数字量采集并储存到存储器中数据处理模块是将采集到的数据进行一系列的处理下面就介绍本系统几个主要的程序模块。主程序模块主程序模块要做的主要工作是上电后对系统初始化和构建系统整体软件框架其中初始化包括对单片机的初始化、LCD液晶屏初始化DSB初始化以及对各器件初始化等。然后等待温度设定刚开始会给液晶屏的温度由程序已经设定好初始化数据然后对键盘进行扫描检测判断系统运行键是否按下若检测到相关的键盘有按下则相当于给单片机一个输入指令说明系统运行则依次调用各个相关模块并执行相应的程序指令循环控制直到系统停止运行。如图所示:主程序模块的程序流程图见附录三。第页共页图主程序流程图数据采集模块数据采集模块的任务是负责温度信号的采集以及将采集到的模拟量通过AD转换器转化为相应的数字量提供给单片机。DSB的一线工作协议流程是:初始化ROM操作指令存储器操作指令数据传输。其工作时序包括:初始化时序写时序以及读时序。图至图分别为DSB的初始化流程图写时序流程图以及读时序流程图。初始化程图()初始化的步骤:先将数据线置高电平“”。延时(该时间要求的不是很严格但是尽可能的短一点)数据线拉到低电平“”。延时微秒(该时间的时间范围可以从到微秒)。数据线拉到高电平“”。延时等待(如果初始化成功则在到毫秒时间之内产生一个由DSB所返回的低电平“”。据该状态可以来确定它的存在但是应注意不能无限的进行等待不然会使程序进入死循环所以要进行超时控制)。若CPU读到了数据线上的低电平“”后还要做延时其延时的时间从发出的第页共页高电平算起(第()步的时间算起)最少要微秒。将数据线再次拉高到高电平“”后结束。图初始化()写时序具体步骤:数据线先置低电平“”。延时确定的时间为微秒。按从低位到高位的顺序发送字节(一次只发送一位)。延时时间为微秒。将数据线拉到高电平。重复上()到()的操作直到所有的字节全部发送完为止。最后将数据线拉高。图写时序第页共页()读时序步骤将数据线拉高“”。延时微秒。将数据线拉低“”。延时微秒。将数据线拉高“”。延时微秒。读数据线的状态得到个状态位并进行数据处理。延时微秒。图读时序温度设置模块对于不同的的环境我们所设定的温度范围不一样所以我们必须能重设置温度范围。而温度设置主要是通过对对键盘的扫描实现的。首先在主程序中进行键盘扫描检测选择通道按键是否有被按下的按键按下则选择对应的通道并且用一个变量来记录按下的次数不同的变量值选择的通道不一样样就实现了一个循扫描键盘的工作。选定相应的上下限温度值后此时继续扫描控制数值按键是否被按下若有数值设计键按下则执行相应的数值加、减操作从而实现对温度上下限温度值的设定。第页共页图选定程序值流程图软件抗干扰措施本系统中在软件方面的抗干扰措施主要采用按键的软件消抖措施。按键是一个机械开关当键按下时开关闭合当键松开时开关断开。其特点之一就是它的抖动性这是由按键的机械特性所决定的抖动的时间一般约为ms一ms。对于按键消抖的具体措施目前有两种:一是用硬件电路来实现即用滤波电路滤除抖动。另一种是用软件延时的方法来解决即利用软件的延时避开按键的按下与抬起时都有的抖动期从而避免检测到干扰信号。本文采用的就是软件延时消抖的方法。第页共页结论毕业设计对于本科阶段的学习来说是一次难得的理论与实际相结合的机会这次毕业设计我比较系统的对单片机实现温度自动控制系统深入了解使我摆脱了完全依赖于纯理论的学习状态巩固了自己所学的专业基础知识提高了解决实际工程问题的能力同时也增强了自己查阅相关文献资料、设计项目构架及运用电脑进行辅助设计等各方面的能力。本次论文完成主要由以下几个步骤:规划设计:查阅相关资料对单片机实现自动温度控制系统进行全面的分析根据温度控制需求制定设计任务然后初步确定控制系统的设计方案。单片机选型:在本科阶段主要接触的CDANPJ,并且它完全能满足我的设计要求综合考虑自己的学习能力和单片机的市场情况选择了C单片机。硬件设计:主要包括主机电路设计、显示电路设计、温度数据采集电路设计和控制电路设计。软件设计:本设计主要实现数据处理与数据采集以及显示板块的设计。本次毕业设计顺利如期的完成和之前的计划任务书的进度基本一致通过本次毕业设计不仅深入的巩固了大学四年所学的专业知识也让我对本专业有了更多的了解对本专业的未来前景更充满了信心。关于单片机实现自动温度控制系统有着很多独特的优越性:它成本低、容易维护、C语言编程简单、能耗低、可靠性高和传统高成本、效率低的控制器件相比较它有着无可替代的优越性正是这些优越性为我们更好的研究、更好的创造提供了强大的动力。同时本设计还存在着一些不足例如:系统的硬件设计方面有待完善可以增加外围的模拟控制模块电路和故障检测功能等。本次毕业设计让我受益匪浅从中学到了许多东西。它不仅是运用大学四年所学的知识更是培养了自己独立思考发现问题分析问题解决问题的能力。真正培养的是一种思维模式我想这更是我们当代大学毕业生应该具备的能力拥有这样的能力使我们以后步入工作岗位后创造更多的社会价值。服务于社会发展贡献自己一份力量。第页共页谢辞本论文得以顺利完成得益于大学四年各学科老师所传授的知识使我有了完成论文所要求的知识积累更得要感谢某某老师从选题的确定、论文资料的收集、论文框架的确定、开题报告准备及论文初稿与定稿中对字句的斟酌倾注的大量心血在此对肖海林老师表示感谢~在这里还要特别感谢大学四年学习期间给我诸多教诲和帮助的信息与通信学院的各位老师你们给予我的指导和教诲我将永远记在心里~感谢学院科协的同学给予的技术支持以及为本人毕业设计的硬件作品的制作提供场地感谢帮助我调试作品的老师和同学。谢谢你们给予我的帮助~回首本人的求学生涯父母的支持是本人最大的动力。父母不仅在经济上承受了巨大的负担在心里上更有思子之情的煎熬与望子成龙的期待。忆往昔每次回到家时父母的欣喜之情每次离家时父母的依依不舍之眼神电话和信件中的殷殷期待和思念之语皆使本人刻苦铭心目前除了学习成绩尚可外无以为报希望以后的学习、工作和生活能使父母宽慰。时间的仓促及自身专业水平的不足整篇论文肯定存在尚未发现的缺点和错误。恳请阅读此篇论文的老师、同学多予指正不胜感激~参考文献张毅刚新编MCS单片机应用设计M哈尔滨:哈尔滨工业大学出版求是科技单片机典型模块设计实例导航M北京:人民邮电出版社第三届全国大学生电子设计竞赛获奖作品选编()(北京理工大学出版社(年月第页共页谭运光、陈安源等(单片机开发手册M(华龄出版社(年l月李华编(MCS一系列单片机实用接口技术M(北京航空航天大学出版社(年月实用电子电路手册J(高等教育出版社(年月范风强等单片机语言C应用实战集锦北京:电子工业出版社张皆喜单片机C语言编程与实例北京:电子工业出版社,刘荣圈圈教你玩USB北京:北京航空航天大学出版社马忠梅、籍顺心、张凯单片机是C语言应用程序设计北京航空航天大学出版社keilc硬件编程中文手册李群芳、张士军、黄建单片微型计算机与接口技术北京:电子工业出版社:~郭天祥单片机C语言教程北京:电子工业出版社,:~谭浩强C程序设计M北京:清华大学出版社附录附录一:系统原理图第页共页附录二:系统PCB图第页共页附录三:主程序流程图开始液晶、温度采集等各部分的程序初始化第页共页采集当前温度液晶显示D<SMIND>SMAX当前温度比设定温度继电器关继电器开维持状态NOYES设定温度键盘扫描附录四:系统程序#include<regh>#defineucharunsignedchar#defineuintunsignedint第页共页sbitDQ=P^定义第一路sbitDQ=P^定义第二路sbitLED=P^定义第一路的指示灯sbitLED=P^定义第二路的指示灯sbitdiwen=P^sbitgaowen=P^sbitdiwen=P^sbitgaowen=P^sbitRS=P^数据命令选择端(HL)sbitRW=P^读写选择端(HL)sbitEN=P^使能信号sbitBELL=P^蜂鸣器sbitkey=P^报警温度设置选择按键sbitkey=P^加sbitkey=P^减sbitkey=P^通道选择按键uintdatadisdatauintdatadisdatauinttvalue温度值uinttvalue温度值uintbjdate路下限值uintbjdate路下限值uintbjdate路上限值uintbjdate路上限值uchartflag温度正负标志uchartflag温度正负标志第页共页uinta=报警值设置选择标志uintb=通道选择标志unsignedcharcodestr={"T:"}unsignedcharcodestr={"T:"}unsignedcharcodeclean={""}****************lcd程序**************************voiddelayms(unsignedintms)延时毫秒(不够精确的){unsignedinti,jfor(i=i<msi)for(j=j<j)}voidwrcom(unsignedcharcom)写指令{delayms()RS=RW=EN=P=comdelayms()EN=delayms()EN=}voidwrdat(unsignedchardat)写数据{delayms()RS=RW=EN=P=datdelayms()EN=第页共页delayms()EN=}voidlcdinit()初始化设置{delayms()wrcom(x)delayms()wrcom(x)delayms()wrcom(x)delayms()清屏wrcom(xc)delayms()}voiddisplay(unsignedchar*p)显示{while(*p!=''){wrdat(*p)pdelayms()}}voidinitplay(void)初始化显示{lcdinit()wrcom(x)display(str)wrcom(xc)display(str)}voiddelayB(unsignedinti)延时微秒{while(i)}第页共页******************A路温度检测*****************************voiddsrst()ds复位{unsignedcharx=DQ=DQ复位delayB()延时DQ=DQ拉低delayB()精确延时大于usDQ=拉高delayB()}uchardsrd()读数据{unsignedchari=unsignedchardat=for(i=i>i){DQ=给脉冲信号dat>>=DQ=给脉冲信号if(DQ)dat|=xdelayB()}return(dat)}voiddswr(ucharwdata)写数据{unsignedchari=for(i=i>i){DQ=DQ=wdataxdelayB()第页共页DQ=wdata>>=}}readtemp()读取温度值并转换{uchara,bdsrst()dswr(xcc)跳过读序列号dswr(x)启动温度转换dsrst()dswr(xcc)跳过读序列号dswr(xbe)读取温度a=dsrd()b=dsrd()tvalue=btvalue<<=tvalue=tvalue|aif(tvalue<xfff)tflag=else{tvalue=~tvaluetflag=}tvalue=tvalue*()温度值扩大倍精确到位小return(tvalue)}****************B路温度检测*********************voiddsrst()ds复位{unsignedcharx=DQ=DQ复位delayB()延时第页共页DQ=DQ拉低delayB()精确延时大于usDQ=拉高delayB()}uchardsrd()*读数据*{unsignedchari=unsignedchardat=for(i=i>i){DQ=给脉冲信号dat>>=DQ=给脉冲信号if(DQ)dat|=xdelayB()}return(dat)}voiddswr(ucharwdata)写数据{unsignedchari=for(i=i>i){DQ=DQ=wdataxdelayB()DQ=wdata>>=}}readtemp()读取温度值并转换{uchara,b第页共页dsrst()dswr(xcc)跳过读序列号dswr(x)启动温度转换dsrst()dswr(xcc)跳过读序列号dswr(xbe)读取温度a=dsrd()b=dsrd()tvalue=btvalue<<=tvalue=tvalue|aif(tvalue<xfff)tflag=else{tvalue=~tvaluetflag=}tvalue=tvalue*()温度值扩大倍精确到位小return(tvalue)}******************************************************************第一路显示子程序*******************voiddsdisp(){disdata=tvaluex十位数disdata=tvaluex个位数disdata=tvaluex小数位wrcom(x)wrdat(disdata)显示十位wrcom(x)wrdat(disdata)显示个位wrcom(x)wrdat(xe)显示小数点第页共页wrcom(x)wrdat(disdata)显示小数位wrcom(x)wrdat(xdf)wrcom(x)wrdat(x)显示Cwrcom(XB)wrdat(bjdatex)wrcom(XC)wrdat(bjdatex)wrcom(XE)wrdat(bjdatex)wrcom(XF)wrdat(bjdatex)}***************************************************************第二路显示子程序**************************voiddsdisp()温度值显示{disdata=tvaluex十位数disdata=tvaluex个位数disdata=tvaluex小数位wrcom(xC)wrdat(disdata)显示十位wrcom(xC)wrdat(disdata)显示个位wrcom(xC)wrdat(xe)显示小数点wrcom(xC)wrdat(disdata)显示小数位wrcom(xC)wrdat(xdf)wrcom(xC)第页共页wrdat(x)显示Cwrcom(XCB)wrdat(bjdatex)wrcom(XCC)wrdat(bjdatex)wrcom(XCE)wrdat(bjdatex)wrcom(XCF)wrdat(bjdatex)}**************************************************************************报警设子程序*************************voidbjshezhi(void){if(key==){delayms()if(key==){while(key==)a=aif(a>=)a=}}if(key==)设置{delayms()if(key==){while(key==)if(a==)bjdate=bjdate通道一下限值加一if(a==)bjdate=bjdate通道一上限值加一if(a==)bjdate=bjdate通道二下限值加一if(a==)bjdate=bjdate通道二上限值加一}}第页共页if(key==)设置{delayms()if(key==){while(key==)if(a==)bjdate=bjdate通道一下限值减一if(a==)bjdate=bjdate通道一上限值减一if(a==)bjdate=bjdate通道二下限值减一if(a==)bjdate=bjdate通道二上限值减一}}************报警温度设设置选择状态显示**********if(a==){wrcom(XA)wrdat(X)wrcom(XD)wrdat(X)wrcom(XCA)wrdat(X)wrcom(XCD)wrdat(X)a=时个报警值前无显示}if(a==){wrcom(XA)wrdat(XE)a=时一通道下限报警值前显示“”}if(a==){wrcom(XA)第页共页wrdat(X)清除显示wrcom(XD)wrdat(XE)a=时一通道上限报警值前显示“”}if(a==){wrcom(XD)wrdat(X)清除显示wrcom(XCA)wrdat(XE)a=时二通道下限报警值前显示“”}if(a==){wrcom(XCA)wrdat(X)清除显示wrcom(XCD)wrdat(XE)a=时二通道上限报警值前显示“”}}*************************************************************通道选择子程序******************voidtongdao(){if(key==)key通道选择按键{delayms()if(key==){while(key==)b=bb=时两路同时检测if(b>=)b=b=时检测路b=时检测路}}if(b==)、路同时检测温度第页共页{wrcom(X)wrdat(XE)wrcom(XC)wrdat(XE)readtemp()读取温度readtemp()读取温度dsdisp()显示dsdisp()显示if(((tvalue)*(tvalue))<bjdate){BELL=第一路温度低于限值报警LED=diwen=delayms()BELL=LED=delayms()}else{diwen=BELL=}if(((tvalue)*(tvalue))>=bjdate){BELL=第一路温度超上限值报警LED=gaowen=delayms()BELL=LED=delayms()}else{gaowen=BELL=}if(((tvalue)*(tvalue))<bjdate){BELL=第二路温度低于下限值报警LED=diwen=delayms()第页共页BELL=LED=delayms()}else{diwen=BELL=}if(((tvalue)*(tvalue))>=bjdate){BELL=第二路温度超上限值报警LED=gaowen=delayms()BELL=LED=delayms()}else{gaowen=BELL=}}if(b==)b=,路处于检测温度状态{wrcom(X)wrdat(XE)wrcom(XC)wrdat(X)readtemp()读取温度dsdisp()显示if(((tvalue)*(tvalue))<bjdate){BELL=第二路温度低于下限值报警LED=diwen=delayms()BELL=LED=delayms()}第页共页else{diwen=BELL=}if(((tvalue)*(tvalue))>=bjdate){BELL=第一路温度超过上限值报警LED=gaowen=delayms()BELL=LED=delayms()}else{gaowen=BELL=}}if(b==)b=,路处于检测温度状态{wrcom(X)wrdat(X)wrcom(XC)wrdat(XE)readtemp()读取温度dsdisp()显示if(((tvalue)*(tvalue))<bjdate){BELL=第二路温度低于下限值报警LED=diwen=delayms()BELL=LED=delayms()}else{diwen=BELL=}if(((tvalue)*(tvalue))>=bjdate){BELL=第二路温度超上限值报警第页共页LED=gaowen=delayms()BELL=LED=delayms()}else{gaowen=BELL=}}}********************主程序*********************voidmain(){diwen=gaowen=diwen=gaowen=LED=led灭报警时才闪烁LED=led灭报警时才闪烁bjdate=路温度下限默认报警值bjdate=路温度下限默认报警值bjdate=路温度上限默认报警值bjdate=路温度上限默认报警值initplay()初始化液晶显示while(){tongdao()通道选择bjshezhi()报警状态设置}}内部资料请勿外传第页共页第页共

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/71

基于51单片机的温度自动控制系统实现步进电机控制设计—毕业设计论文

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利