单片机教学案例基于18b20温度控制系统设计课件.ppt
,子情境一 设计规划 子情境二 温度控制部分 子情境三 整体设计,情境八 基于18b20温度控制系统设计,1.项目任务分析,温度控制系统设计与制作,温度测量,温度显示,温度调节,功能设置,电源,传感器,显示电路,升降温度,按键,电源电路,型号和电路,LED或LCD,加热制冷,键盘电路,电源器件,设计课题:设计单片机温度控制系统,这个系统设计要求完成以下任务:1、设计系统可自动完成对象的温度控制任务。2、当作工厂产品设计,并作为实验板考虑功能扩展。,温度控制系统设计规划,温度控制系统设计分为两大部分组成:1、设计项目的提出和总设计规划,单元电路试验,标准化设计。经过前两个项目的学习,对单片机基础知识有了一定的了解,其中显示、键盘、电源、单片机电路设计等有一定的认识,现在难点是温度传感受器和加热制冷部件的设计,另外增加“产品”化设计要求。,2、原理图设计、电路板设计、系统应用程序设计、温度控制系统安装与调试,当第一步完成后这些相对容易了,和前面项目工作差不多,只是多花时间完成每一步,当然设计前对不明确的地方还是进行试验。,温度控制系统设计规划,1.项目任务分析,提出项目和任务,学生试验论证,老师汇总,规划实施步骤,安装与调试,项目实施过程理实一体化模式,电路和程序设计,1.项目任务分析,温度控制系统设计规划,温度测量,精度,传感器,安装位置,型号和电路,单片机程序,经AD转换传感器,数字传感器,传感器型号、读取方法,传感器型号、连接方法,单片机接口,1.项目任务分析,温度控制系统设计规划,几位数字,驱动方式,电路试验,动态显示,行列驱动,LED驱动电路,LCD驱动电路,电路试验,温度显示,显示电路,LED或LCD,1.项目任务分析,温度控制系统设计规划,执行部件,温度设置,控制范围,按键个数,加热器加热压缩机制冷,键盘电路六个按键扫描方式,功能设置,按键,键盘电路,1.项目任务分析,温度控制系统设计规划,温度调节,升降温度,加热制冷,温度控制系统设计与制作,传感器,温度显示,温度调节,功能设置,电源,由程序协调各部分工作,1.项目任务分析,温度控制系统设计规划,2.项目任务分解,总体方案和论证 1、温度控制需用一到两条线控制加热和制冷输出,其驱动可选取可控硅或继电器,它们的工作电压都是220V,要求单片机和它们之间加光耦隔离。2、显示温度,用3个数码管显示温度,采用扫描方式,字驱动要用去7-8条I/O线,位驱动用去3条线。只是设置温度和实时温度有可能用两显示。3、键盘处理,用于输入温度和校正温度,需用去26条线。4、精确温度的控制,还是用到北京腔时间,可采用单片机定时器加软件校时的方法产生,就不占用口线,如果用外接时钟芯片,当计划外接串行时钟芯片DS1302,以防掉电和今后改进设计,就会占用23条口线。5、温度传感器,串行温度将用13条口线。,温度控制系统设计规划,根据以上要求共约1518条I/O线,考虑采用AT89C2051单片机作核心,其有15条I/O线,P1口四位和74247作数码管字显示驱动,节省出4条口线,用PNP三极管作位驱动,增加一片24C02作掉电后的数据保存。用双向可控硅驱动功率负载。由于各器件都可用+5V电源,采用9V变压器供电,自带5V稳压电路,这样一来设计目标基本确定。数码管采用DIP插座,加热和制冷设备采用HB-9500 300V 20A插座,温度传感器用SIP4插座,四六个功能键,一个复位键。采用6 MHz晶振。如有多余的IO口线用于增加可能的其它功能。,温度控制系统设计规划,2.项目任务分解,硬件设计 根据设计要求,采用Protel软件绘出电路原理图和PCB电路图,也可以用其它软件,注意按键、显示、传感器等设计成插座,用排线引出主电路板,数码管用三位一组电路板,带符号显示,按键采用薄膜超薄成品,设计图采用是双面走线图,由于电路相对复杂,可能花很多时间了解电路设计参数,才能设计出这些电路图。本次PCB主板采用155CM双面板布线,在微机上设计好的图纸经电路板厂加工成电路板,按设计图安装好元件,进行硬软件调试。这里要做的工作很多,由于篇幅的关系从略处理。,温度控制系统设计规划,2.项目任务分解,软件设计 本次软件设计的难点是传感器和串行存储器,精确温度控制时加热器还用到加热算法,它们的编程还需试验进行理论准备和使用试验,光传感器就应进行虚拟仿真试验、在仿真器上进行读数试验、在成品板上应用试验,再才使用。这里老师给出了一个主程序框架,由主程序、中断子程序、子程序三部分组成,用于测试电路,这个程序可完成计时显示测试,完成了键扫描测试,但程序不能用于温控,要求学习者自力更生编写程序,并调试程序、修改程序,或者重新设计程序。也就是说最终的应用程序由大家自己编写。,温度控制系统设计规划,2.项目任务分解,传感器 在自动控制系统中,通常被控信号是由传感器检测得到的模拟电量,其信号幅值随时间连续变化。而单片机只能处理数字信号或脉冲信号。因此,在单片机控制系统中,经常需要用到 AD和 DA转换器。AD转换器(ADC)是一种能把输入模拟电压变成与它成正比数字量的器件。常用的ADC按工作原理分为双积分式AD转换器和逐次逼近式AD转换器,双积分式AD转换器抗干扰能力较强,逐次逼近式AD转换器转换速度较高。,3.项目任务步骤,温度控制系统设计规划,1、传感器 ADC0809是一种八路模拟电压输入的8位逐次逼近式AD转换器,和单片机的接口很方便。通过该电路及实验来理解AD转换器。ADC0809内部结构由八路模拟开关、地址锁存与译码器、比较器、256R电阻网络、树状开关、逐次逼近式寄存器SAR、控制电路和三态输出锁存器等组成,2、串行接口A/D转换器 为了减少扩展接口电路对单片机引脚资源的占用,简化系统结构,近年来出现了多种串行控制的接口器件,包括:A/D转换器、D/A转换器、实时时钟、LCD显示驱动器等。串行接口常用的标准有Philips公司的I2C总线,MOTOROLA公司的SPI等。由于一般MCS-51系列单片机上没有相应接口模块,扩展时要根据接口器件要求,用并行口线仿真控制时序。,3.项目任务步骤,温度控制系统设计规划,位驱动,字驱动247,键盘6个,温度显示3+3位,数字传感器,AT89S51单片机,加热与制冷,电源,温度控制系统设计规划,4条,3-6条,1条,1或2条,1到3条,预计电路方框图,3.项目任务步骤,串行存储器,温度控制系统设计与制作,加热制冷功率驱动电路和程序,温度显示电路LED或LCD和显示程序,单片机系统程序,传感器键盘电路和程序,电源电路和元器件,课程小结 本课程从项目分析和实施方案研究发现,接下来的工作是研究温度传感器电路、显示电路、按键设置电路、功率驱动电路、单片机程序教学等内容、其中重点和难点是温度传感器及其电路、加热制冷电路及其程序编辑方法等。将用到AD转换和一些特殊算法的编程技巧。,3.项目任务步骤,温度控制系统设计规划,1.DALLAS公司DS18B20基本参数,DALLAS公司生产的单线数字温度传感器DS18B20、DS1822,外形如三极管一样,支持“一线总线”接口,测量温度范围为-55C+125C,在-10+85C范围内,精度为0.5C。DS1822的精度较差为 2C。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,新的产品支持3V5.5V的电压范围,DS18B20可以程序设定912位的分辨率,精度为0.5C。用户设定的报警温度存储在EEPROM中,掉电后依然保存。DS1822与 DS18B20软件兼容,是DS18B20的简化版本。省略了存储用户定义报警温度、分辨率参数的EEPROM,精度降低为2C,是经济型产品。,温度控制部分,DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列如下:DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端(在寄生电源接线方式时接地)。光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。,1.DALLAS公司DS18B20基本参数,温度控制部分,64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625/LSB形式表达,其中S为符号位。,1.DALLAS公司DS18B20基本参数,温度控制部分,这是12位转化后得到的12位数据,存储在18B20的两个8比特(位)的RAM中,Bit0是最低位,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。例如+125的数字输出为07D0H,+25.0625的数字输出为0191H,-25.0625的数字输出为FF6FH,-55的数字输出为FC90H。,1.DALLAS公司DS18B20基本参数,温度控制部分,DS18B20温度传感器的内部存储器包括一个高速暂存RAM(数据缓冲寄存器)和一个非易失性的可电擦除的E2RAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。前者暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是温度的高八位。第三个和第四个字节是TH、TL的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。第六、七、八个字节用于内部计算。第九个字节是冗余检验字节。该字节各位的意义如下:TM R1 R0 1 1 1 1 1 如表所示。,1.DALLAS公司DS18B20基本参数,温度控制部分,该寄存器的低五位一直都是1,TM是测试模式位,用于设置DS18B20处在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1和R0用来设置分辨率,如下表所示:(DS18B20出厂时被设置为12位).,1.DALLAS公司DS18B20基本参数,温度控制部分,根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放(输出高),DS18B20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,拉低总线,主CPU收到此信号表示复位成功。,1.DALLAS公司DS18B20基本参数,温度控制部分,DS1820虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题:(1)较小的硬件开销需要相对复杂的软件进行补偿,由于DS1820与微处理器间采用串行数据传送,因此,在对DS1820进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用PL/M、C等高级语言进行系统程序设计时,对DS1820操作部分最好采用汇编语言实现。由于本节技术复杂性,对一般读者DS18B20内容只作阅读。,2.温度传感器DS1820使用中注意事项,温度控制部分,(2)在DS1820的有关资料中均未提及单总线上所挂DS1820数量问题,容易使人误认为可以挂任意多个DS1820,在实际应用中并非如此。当单总线上所挂DS1820超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。(3)连接DS1820的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用DS1820进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。,2.温度传感器DS1820使用中注意事项,温度控制部分,2.温度传感器DS1820使用中注意事项,温度控制部分,(4)在DS18B20测温程序设计中,向DS18B20发出温度转换命令后,程序总要等待DS18B20的返回信号,一旦某个DS18B20接触不好或断线,当程序读该DS18B20时,将没有返回信号,程序会进入死循环。这一点在进行DS18B20硬件连接和软件设计时也要给予一定的重视。测温电缆线建议采用屏蔽4芯双绞线,其中一对线接地线与信号线,另一组接VCC和地线,屏蔽层在源端单点接地.当用P1.0和DS18B20相连接时参考程序如下。DQ EQU P1.0 ORG 0000H AJMP MAIN ORG 1000HMAIN:LCALL INIT_18B20;调复位子程序MOV A,#0CCH LCALL WRITE_18B20;跳过读序列号操作MOV A,#4EH;写限制温度命令LCALL WRITE_18B20,2.温度传感器DS1820使用中注意事项,温度控制部分,整体设计,1 设计任务与要求,一升水由1kw的电炉加热,要求水温可以在一定范围内由人工设定,并能在环境温度降低时实现自动调整,以保持设的的温度基本不变.,1.1 基本要求,1.2 主要性能指标,1.温度设定范围:4090C,最小区分度为1 C2.控制精度:温度控制的静态误差1 C3.用十进制数码显示实际水温.4.能打印实际测量值,1 设计任务与要求,整体设计,单片机应用技术,1 设计任务与要求,1.3 扩展功能,1.具有通信能力2.采用适当的控制方法减小系统的调节时间和超调量3.温度控制的静态误差0.2 C4.能自动显示水温随时间变化的曲线,2 总体论证,1.总体方案确定2.确定系统功能,性能指标,整体设计,2.1 总体方案确定,1.控制方案选择:A 输出开关量控制B 比例控制(P控制)C 比例积分控制(PI控制)D 比例积分加微分控制(PID控制)2.系统组成:本例将单片机为核心构建控制应用系统,2 总体论证,整体设计,2.2 确定系统功能,性能指标,本系统具备的功能:1.可以进行温度设定,并自动调节水温2.可以调整PID控制参数,满足不同的要求3.可以实时显示给定温度与水温实测值4.可以打印给定温度和水温实测值本系统主要性能指标如下:1.温度设定范围:4090 C,最小区分度为1 C2.温度控制静态误差1 C3.双3位LED数码管显示4.采用微型打印机打印,2 总体论证,整体设计,3 系统设计,1 软,硬件功能划分2 系统功能划分,指标分配和框图构成,整体设计,3 系统设计,3.1 软,硬件功能划分,1.速度估算 经计算得到:在不考虑容器热容量和环境温度影响的情况下,用1kw电炉加热1升水并使水温上升1k所需的时间为4.186s,由此可见,对于指令执行时间极其短的单片机系统来说,控制速度几乎没有任何限制.2.软、硬件功能划分 硬件主要功能:温度信号的传感,放大,A/D转换 及输出信号的功率放大.软件主要功能:PID运算,输入信号滤波,大部分 控制过程.,整体设计,3 系统设计,3.2系统功能划分,指标分配和框图构成,整体设计,输入通道硬件线路设计,4 硬件开发,4.1硬件电路设计与制作,整体设计,输出通道硬件线路设计,4 硬件开发,4.1硬件电路设计与制作,整体设计,人机对话通道,整体设计,1.单片机基本系统调试2.人机通道调试3.前向通道调试4.后向通道调试,4 硬件开发,4.2硬件电路的调试,整体设计,1、单片机基本系统调试,A 晶振电路B 复位电路C 电源,4 硬件开发,4.2硬件电路的调试,整体设计,人机通道调试,A LED显示B 键盘输入,4 硬件开发,4.2硬件电路的调试,整体设计,前向通道调试,A 静态工作点调整B A/D转换器调试,4 硬件开发,4.2硬件电路的调试,整体设计,后向通道调试,A 静态调试B 动态调试,4 硬件开发,4.2硬件电路的调试,整体设计,5 软件开发,1 确定输入/输出关系、数学模型和算法2 划分程序模块,编写程序流程图3 编写程序并翻译成目标程序4 软件调试,整体设计,5 软件开发,5.1 确定输入/输出关系、数学模型和算法,PID控制是应用最普遍的控制规律,技术上最成熟,技术人员也习惯采用.本系统由于采用了单片机,各种PID算法的实现只需更改应用程序而无需对硬件做任何改变,因此可适应于很多工业生产过程.,整体设计,5 软件开发,5.2 划分程序模块,编写程序流程图,1.主程序2.键盘输入中断服务程序3.修改PID参数子程序4.设定温度子程序5.运行子程序6.定时中断服务程序7.水温检测子程序8.PID算法子程序9.脉宽调制输出子程序,整体设计,5 软件开发,主程序,初始化,有键入?,输入键值跳转到相应子程序,调修改PID参数子程序,调设定温度子程序,调运行子程序,调打印子程序,Y,N,整体设计,5 软件开发,键盘输入中断服务程序,保护现场,读入键值,设置键入标志,返回,恢复现场,整体设计,单片机应用技术,5 软件开发,修改PID参数子程序,开始,修改KC,显示KC,存储KC,显示K1,显示KD,返回,数字键?,确认键?,取消键?,Y,Y,Y,N,N,N,5 软件开发,设定温度子程序,与修改PID参数子程序类似.,整体设计,5 软件开发,返回,运行子程序,初始化,定时时间到?,调用水温检测子程序,显示实测水温,调用PID算法子程序,调用脉宽调制输出子程序,有键入?,取消键?,关输出,返回,N,N,N,Y,Y,Y,整体设计,5 软件开发,定时中断服务程序,保护现场,设置定时已到标志,恢复现场,返回,整体设计,5 软件开发,水温检测子程序,入口,启动A/D转换,转换完成?,读取转换结果,返回,N,Y,整体设计,5 软件开发,PID算法子程序,入口,调内存中,计算,计算可控硅导通时间,保存中间变量,返回,整体设计,5 软件开发,脉宽调制输出子程序,入口,P12输出低电平,设定延时时间为t(k),延时时间到?,P12输出高电平,Y,N,返回,整体设计,5 软件开发,5.3 编写程序并翻译成目标程序,将上述程序流程图依次细化,并将各程序模块连接起来就可组成一个完整的程序.,整体设计,5 软件开发,5.4 软件调试,1.测试程序输入条件或设定程序输入条件2.以单步,断点或跟踪方式运行程序.3.检查程序运行结果4.运行结果不正确时查找原因,修改程序,重复上述过程.,整体设计,