版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘要本次电气课程设计的内容是应用计算机的实时监控和温度测量技术,采用单片机编写软件配合外围显示电路、键盘电路进行温度的设定、显示、监测、控制;采用DS18B20温度传感器进行温度检测;采用继电器作为弱电系统与强电系统的接口实现电阻炉炉温的实时监控。其宗旨是将所学的基本理论知识应用于实践,例如自动控制原理、数字电路、模拟电路、单片机原理、计算机控制技术等多门课程可以在本次课程设计中得到综合应用,能深刻的领悟了“弱电控制强电”的基本思想,在今后的工作和学习中将会起到积极作用。在最后系统的检测中,设定温度分别为35、40、55、60的情况下,误差为0.2,很好了满足课题及实际应用的要求。关键词单片机
2、SCM-Single Chip Microcomputer/MCU-Micro Controller Unit温度控制temperature controller强电force electricity弱电weak electricity目录0 引言1 课题综述1.1课题内容1.2课题要求及技术指标1.3元器件清单2 系统整体设计3 硬件设计3.1单片机最小系统3.2数码管显示模块3.3键盘模块3.4报警电路模块3.5继电器控制模块3.6温度传感器DS18B20模块4 软件设计4.1主程序设计4.2数码管显示程序4.3键盘扫描程序4.4 DB18B20通信程序5 系统合成与检测5.1系统综合连接
3、5.2系统功能综述5.3系统检测6 结论参考文献附录 单片机C语言源程序0 引言温度是农业生产中常见的工艺参数之一,任何物理变化和化学反应过程都与温度密切相关,因此温度控制是工业现代化的重要任务。对于不同生产情况和工艺要求下的温度控制,所采用的加热方式、燃料、控制方案也有所不同。近年来随着热处理工艺广泛应用于加工过程,热处理中温度的控制精度和控制规律的优劣直接影响到热处理工艺的好坏。电阻炉热处理工艺中应用最多的加热设备,研究电阻炉温度控制方法有常规的温度仪表控制、模拟控制和计算机智能控制。温度仪表不能满足热处理工艺的要求,温度仪表以来实验者的调节,不能精确地按照给定的温度要求来控制;在模拟控制
4、系统中,PID算法对大惯性、纯滞后、非线性、时变性大的电阻炉温度控制系统存在一定的缺陷,反映在控制曲线的超调量过大、动态性能不稳定。例如,其升温单向性是由于电阻炉的升温保温是依靠电阻丝加热,降温则是依靠环境自然冷却,当其温度一旦超调就很难用控制手段使其降温,因而很难用数学方法建立精确地模型和确定参数,无法达到温度智能调节控制的理想效果。综上,采用计算机进行智能控制能够克服以上的种种缺点,而且还有很多优势,例如它的体积小、质量轻、价格便宜,应用和开发十分的便利,它在最大限度上以软件代替了复杂硬件电路连接,是系统的结构更加简单,便于安装和使用,在系统综合调试时,只需更改相应的软件程序来提高控制算法
5、的精度,而不必调整硬件电路,缩短了研发的周期,节约了时间,能在短期内获得更大的市场利益。通过不断改进控制算法使控制系统的稳定性、准确性、快速性等指标得到平衡,使电阻炉温度控制达到超调量小、稳定精度高的优良控制效果,很好地满足了热处理工艺的要求。本课程设计报告详细的论述了课题设计条件、系统整体设计、硬件电路设计、软件控制算法设计和系统最后的合成与检测,并附有单片机程序和详细的操作方法。由于系统的复杂性和硬件使用要求以及人力、时间等方面的制约,考虑到系统的实时性和运算能力,系统并没有采用复杂的处理算法和控制算法,一切以实用为主。对于温度控制算法还有待进一步的研究和改进。同时,在电路保护方面的设计有
6、待进一步地学习和实践。单片微机是单片微型计算机SCMC(Single Chip Micro Computer)的译名简称,在国内也常简称为“ 单片微机” 或“单片机” 。它包括CPU、RAM、ROM、中断系统、定时器/计数器、串行口和I/O等。除了工业控制领域,单片微机在家用电器、电子玩具、通信、高级音响、图形处理、语言设备、机器人、计算机等各个领域迅速发展。目前单片微机的世界年产量已超过100亿片,而在中国大陆地区的年应用量已达6亿多片。8051是美INTEL公司在1980年推出的MCS-51系列的第一个成员,MCS是INTEL公司的注册商标。其它公司生产的以8051为核心单元的其它派生单片
7、微机只能称为8051系列。80C51系列包括Intel公司的MCS-51,又包括了以8051为核心单元的世界许多公司生产的单片微机,比如PHILIPS 的83C552及51LPC系列等、SIEMENS 的SAB80512等、AMD(先进微器件公司) 的8053等、OKI(日本冲电气公司) 的MSM80C154等、ATMEL公司的89C51等、DALLAS公司的DS5000/DS5001等、华邦公司的W78C51及W77C51等。在本次电气控制课程设计中,在图书馆、网络上大量搜集了前人研究的成果,使本次课程设计的起点得到提高,南京邮电大学自动化学院的王勇、邓萍、仇永生三位老师给予了指导与协助,自
8、动化学院科学技术协会的蔡纪源、钱锦城同学亦为课题项目的完成做出了贡献,在此一并表示感谢!1 课题综述1.1课题内容:应用计算机的实时监控和温度测量技术,采用单片机、温度检测电路、温度控制电路等,实现电阻炉炉温的实时监控。1.2课题要求及技术指标:(1)完成电阻炉温度控制系统设计,包括硬件电路设计和软件程序设计;(2)要求测温范围0100,使其控制系统控制的温度保温值的变化范围为3060;(3)显示电路能够显示设定炉温、实际炉温以及恒温时间;(4)对其主电路和控制电路设计相应的保护电路,使其安全可靠地工作。1.3元器件清单元器件名称数量电热杯1个SL1型51单片机综合试验箱(内含STC12C5A
9、60S2单片机最小系统、面包板)1个DS18B20温度传感器1片USB下载线1条单线固态继电器1个导线若干剪刀1把镊子1个二极管1个电阻(阻值不同)3个红外线遥控器1个表1.1元器件列表2 系统整体设计系统的工作过程为:用键盘将温度的设定值送入单片机,启动运行后,通过由DS18B20构成的信号采集电路将温度信号采集到后,将输出的数字量送入单片机,设定温度值与实际温度值比较进行控制运算后将控制量输出,通过继电器控制电阻炉的加热,加热过程中如果温度超过了设置的上限极值时系统发出报警信号,提示操作人员。按键盘上的不同按键能使显示电路分别显示设定温度、实际温度以及恒温时间,系统整体见图2.1,各部分功
10、能总结如下:单片机:接受来自温度传感器的数据;进行控制运算;控制显示电路、报警电路、继电器电路;显示电路:能够配合按键设定温度,显示设定温度、实际温度、控制时间;温度传感器:采集温度信息,并转化成数字量;继电器电路:控制电热杯电流的通断,即控制电热杯的加热与停止。图2.1 电阻炉温度控制系统整体结构图3 硬件设计3.1单片机最小系统本次设计使用的STC12C5A60S2系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转
11、换(250K/S),针对电机控制,强干扰场合,单片机的最小系统见图3.1。以下是STC12C5A60S2系列单片机内部资源的简要介绍:1.增强型8051 CPU,1T,单时钟/机器周期,指令代码完全兼容传统8051;2.工作电压:STC12C5A60S2系列工作电压:5.5V-3.3V(5V单片机)STC12LE5A60S2系列工作电压:3.6V-2.2V(3V单片机);3.工作频率范围:0 - 35MHz,相当于普通8051的 0420MHz;4.用户应用程序空间8K /16K / 20K / 32K / 40K / 48K / 52K / 60K / 62K字节;5.片上集成1280字节R
12、AM;6.通用I/O口(36/40/44个),复位后为:准双向口/弱上拉(普通8051传统I/O口),可设置成四种模式:准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏,每个I/O口驱动能力均可达到20mA,但整个芯片最大不要超过55Ma;7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器 可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片;8.有EEPROM功能(STC12C5A62S2/AD/PWM无内部EEPROM);9. 看门狗;10.内部集成MAX810专用复位电路(外部晶体12M以下时,复位脚可直接1K电阻到地);11.外部掉电
13、检测电路:在P4.6口有一个低压门槛比较器,5V单片机为1.32V,误差为+/-5%,3.3V单片机为1.30V,误差为+/-3%;12.时钟源:外部高精度晶体/时钟,内部R/C振荡器(温漂为+/-5%到+/-10%以内) 1用户在下载用户程序时,可选择是使用内部R/C振荡器还是外部晶体/时钟,常温下内部R/C振荡器频率为:5.0V单片机为:11MHz15.5MHz,3.3V单片机为:8MHz12MHz,精度要求不高时,可选择使用内部时钟,但因为有制造误差和温漂,以实际测试为准;13.共4个16位定时器 两个与传统8051兼容的定时器/计数器,16位定时器T0和T1,没有定时器2,但有独立波特
14、率发生器 做串行通讯的波特率发生器 再加上2路PCA模块可再实现2个16位定时器;14. 2个时钟输出口,可由T0的溢出在P3.4/T0输出时钟,可由T1的溢出在P3.5/T1输出时钟;15.外部中断I/O口7路,传统的下降沿中断或低电平触发中断,并新增支持上升沿中断的PCA模块, Power Down模式可由外部中断唤醒,INT0/P3.2,INT1/P3.3,T0/P3.4, T1/P3.5, RxD/P3.0,CCP0/P1.3(也可通过寄存器设置到P4.2 ), CCP1/P1.4 (也可通过寄存器设置到P4.3);16. PWM(2路)/PCA(可编程计数器阵列,2路):也可用来当2
15、路D/A使用也可用来再实现2个定时器也可用来再实现2个外部中断(上升沿中断/下降沿中断均可分别或同时支持);17.A/D转换, 10位精度ADC,共8路,转换速度可达250K/S(每秒钟25万次)18.通用全双工异步串行口(UART),由于STC12系列是高速的8051,可再用定时器或PCA软件实现多串口;19. STC12C5A60S2系列有双串口,后缀有S2标志的才有双串口,RxD2/P1.2(可通过寄存器设置到P4.2),TxD2/P1.3(可通过寄存器设置到P4.3);20.工作温度范围:-40 - +85(工业级) / 0 - 75(商业级)21.封装:PDIP-40,LQFP-44
16、,LQFP-48 I/O口不够时,可用2到3根普通I/O口线外接 74HC164/165/595(均可级联)来扩展I/O口, 还可用A/D做按键扫描来节省I/O口,或用双CPU,三线通信,还多了串口。图3.1单片机最小系统3.2数码管显示模块3.2.1数码管使用条件段及小数点上加限流电阻;使用电压:段:根据发光颜色决定;小数点:根据发光颜色决定;使用电流:静态:总电流 80mA(每段 10mA);动态:平均电流 4-5mA峰值电流 100mA;数码管表面不要用手触摸,不要用手去弄引角;焊接温度:;焊接时间:s;表面有保护膜的产品,可以在使用前撕下来。3.2.2数码管原理无论是七段显示数码管还是
17、四位数码管,都有共阴极和共阳极的区分,如图3.2、图3.3、图3.4、图3.5所示。图3.2数码管外观 图3.3共阳极原理图 图3.4共阴极原理图图3.5四位数码管原理图对于单个数码管来说,从它的正面看进去,左下角那个脚为1脚,以逆时针方向依次为110脚,注意,3脚和8脚是连通的,这两个都是公共脚。四位数码管,内部的4个数码管共用adp这8根数据线,为人们的使用提供了方便,因为里面有4个数码管,所以它有4个公共端,加上adp,共有12个引脚,引脚排列依然是从左下角的那个脚(1脚)开始,以逆时针方向依次为112脚。3.2.3编码表万用表应放在R10K档,对于共阴极的数码管,红表笔接数码管的“-”
18、,黑表笔分别接其他各脚。测共阳极的数码管时,黑表笔接数码管的VDD,红表笔接其他各脚。另一种测试法,用两节一号电池串联,对于共阴极的数码管,电池的负极接数码管的“-”,电池的正极分别接其他各脚。对于共阳极的数码管,电池的正极接数码管的VDD,电池的负极分别接其他各脚,看各段是否点亮。对于不明型号不知管脚排列的数码管,用第一种方法找到共用点,用第二种方法测试出各笔段A-G、DP等,为了编程的方便写出数码管的编码表(表3.1)。表3.1数码管编码表(编码顺序DPGFEDCBA)我们实验箱中的LED数码管是四位数码管,因此为了控制方便,四个数码管的“段选端”是连在一起的,他们的GND或VCC端作为“
19、位选端”来输入控制信号,这样单片机就可以通过程序来控制显示的字符。图3.6是实验箱开发板中的数码管电路图。图3.6实验箱开发板中的数码管电路图3.3键盘模块3.3.1键盘工作原理键盘的分类:编码键盘:键按下后便产生对应的代码,需要硬件支持,数目增多时,硬件变得复杂;非编码键盘:闭合或断开,对应1或0,单片微机应用系统中用得较多的是非编码键盘。键盘的工作原理及识别:弹性按键被按下时闭合,松手后自动断开。单片机检测按键的原理是:单片机的I/O口既可以作为输出也可作为输入使用,当检测按键时使用的是它的输入功能,把按键的一端接地,另一端与单片机的某一个I/O口相连,开始时先给I/O口赋一高电平,然后让
20、单片机不断地检测该I/O口是否变成低电平,当按键闭合时,即相当于该I/O口通过按键与地相连,变成低电平,程序一旦检测到I/O口变为低电平则说明按键被按下,然后执行相应的指令。无论独立键盘还是矩阵键盘,单片机检测其是否被按下的依据都是一样的,也就是检测该键对应的I/O口是否为低电平。独立键盘:有一端固定为低电平,单片机写程序检测时比较方便。矩阵键盘:两端都与单片机I/O口连接,因此在检测时需人为通过单片机I/O口送出低电平。检测时,先送一列为低电平,其余几列为高电平,然后立即轮流检测一次各行是否有低电平,若检测到某一行为低电平,就可以确定当前被按下的按键是哪一行哪一列的,用同样的方法轮流各列送一
21、次低电平,再轮流检测一次各行是否变为低电平,这样既可检测完所有的按键。实验箱矩阵键盘原理如图3.7。图3.7实验箱矩阵键盘原理图3.3.2消除抖动图3.8键盘按下时的实际波形与理想波形从图3.8可以看出,理想波形与实际波形之间是有区别的,实际波形在按下和释放的瞬间都有抖动现象,抖动时间的长短和按键的机械特性有关,一般为510ms。通常我们手动按时都要加上去抖动操作,有专用的去抖动电路,也有专用的去抖动芯片,但通常我们软件延时的方法就能很容易解决抖动问题,而没有必要再添加多余的硬件电路,如图3.9所示。图3.9软件延时消除抖动3.4报警电路模块报警模块的结构比较简单,只是一个蜂鸣器模块,当温度高
22、于设定值较大时,单片机在I/O口上输入一个低电平,就可以是蜂鸣器报警,如图3.10。 图3.10由蜂鸣器构成的报警电路3.5继电器控制模块3.5.1继电器工作原理和特性继电器是当输入量(如电压、电流、温度等)达到额定值时,使被控制的输出电路导通或断开的电器。可分为电气量(如电流、电压、频率、功率等)继电器及非电量(如温度、压力、速度等)继电器两大类。具有动作快、工作稳定、使用寿命长、体积小等优点。广泛应用于电力保护、自动化、运动、运动、遥控、测量和通信等装置中。继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流
23、去控制较大电流的一种开关。故在电路中起着自动调节、安全保护、转换电路等作用。3.5.2电路设计本系统采用单相固态继电器SSR/1P-10A,当单片机给继电器供5V电压时,继电器导通。可以通过这个原理将加热炉的电源线火线分别接入继电器两端,所以单片机的I/O口供给低电平,继电器就可以导通,这样就可以控制加热炉的加热了。于考虑到单片机引脚的驱动能力可能不足,因此制作了驱动电路,放大驱动电流,并在继电器两端加上续流二极管保证加热时间够长,设计电路如图3.11所示。图3.11继电器控制电路3.6温度传感器DS18B20模块3.6.1DS18B20温度传感器简介与特征温度传感器的种类众多,在应用与高精度
24、、高可靠性的场合时 DALLAS(达拉斯)公司生产的 DS18B20 温度传感器当仁不让。超小的体积,超低的硬件开消,抗干扰能力强,精度高,附加功能强,使得 DS18B20 更受欢迎。DS18B20 的主要特征:全数字温度转换及输出,实际应用中不需要外部任何元器件即可实现测温;先进的单总线数据通信,只要求一个端口即可实现通信;分辨率用户可以从 9 位到 12 位选择,精度可达土 0.5 摄氏度;12 位分辨率时的最大工作周期为 750 毫秒;可选择寄生工作方式;检测温度范围为55C +125C (67F +257F);内置 EEPROM,限温报警功能;64 位光刻 ROM,内置产品序列号,每个
25、器件上都有独一无二的序列号,方便多机挂接;多样封装形式,适应不同硬件系统。3.6.2芯片封装结构与管脚功能图3.12 DS18B20 TO-92封装结构图序号名称引脚功能描述1GND地信号2DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源 下,也可以向器件提供电源。3VDD可选择的 VDD 引脚。当工作于寄生电源时,此引脚必须接地。表3.2引脚功能表3.6.3 DS18B20 工作原理及应用DS18B20 的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。其一个工作周 期可分为两个部分,即温度检测和数据处理。在讲解其工作流程之前我们有必要了解 18B20 的内 部存
26、储器资源。18B20共有三种形态的存储器资源,它们分别是:ROM:只读存储器,用于存放 DS18B20ID 编码,其前8位是单线系列编码(DS18B20 的编码是19H),后面 48 位是芯片唯一的序列号,最后8位是以上 56 的位的CRC 码(冗余校验)。数据在出产时设置不由用户更改。DS18B20 共 64 位 ROM。RAM:数据暂存器,用于内部计算和数据存取,数据在掉电后丢失,DS18B20共9个字节RAM,每个字节为8位。第1、2个字节是温度转换后的数据值信息,第3、4个字节是用户 EEPROM(常用于温度报警值储存)的镜像。在上电复位时其值将被刷新。第 5 个字节则是用户第3个EE
27、PROM的镜像。第6、7、8个字节为计数寄存器,是为了让用户得到更高的温度分辨率而设计的,同样也是内部温度转换、计算的暂存单元。第9个字节为前 8 个字节的 CRC 码。EEPROM非易失性记忆体,用于存放长期需要保存的数据,上下限温度报警值和校验数据,DS18B20共3位EEPROM,并在 RAM 都存在镜像,以方便用户操作。图3.13 RAM 及 EEPROM 结构图3.6.4控制器对18B20操作流程复位:首先我们必须对DS18B20芯片进行复位,复位就是由控制器(单片机)给DS18B20单总线至少480uS的低电平信号。当18B20接到此复位信号后则会在1560uS后回发一个芯片的存在
28、脉冲。 存在脉冲:在复位电平结束之后,控制器应该将数据单总线拉高,以便于在1560uS后接收存在脉冲,存在脉冲为一个60240uS的低电平信号。至此,通信双方已经达成了基本的协议,接下来将会是控制器与18B20间的数据通信。如果复位低电平的时间不足或是单总线的电路断路都不会接到存在脉冲,在设计时要注意意外情况的处理。 控制器发送ROM指令:双方打完了招呼之后最要将进行交流了,ROM指令共有5条,每一个工作周期只能发一条,ROM指令分别是读ROM数据、指定匹配芯片、跳跃ROM、芯片搜索、报警芯片搜索。ROM指令为8位长度,功能是对片内的64位光刻ROM进行操作。其主要目的是为了分辨一条总线上挂接
29、的多个器件并作处理。诚然,单总线上可以同时挂接多个器件,并通过每个器件上所独有的ID号来区别,一般只挂接单个18B20芯片时可以跳过ROM指令(注意:此处指的跳过ROM指令并非不发送ROM指令,而是用特有的一条“跳过指令”)。ROM指令在下文有详细的介绍。 控制器发送存储器操作指令:在ROM指令发送给18B20之后,紧接着(不间断)就是发送存储器操作指令了。操作指令同样为8位,共6条,存储器操作指令分别是写RAM数据、读RAM数据、将RAM数据复制到EEPROM、温度转换、将EEPROM中的报警值复制到RAM、工作方式切换。存储器操作指令的功能是命令18B20作什么样的工作,是芯片控制的关键。
30、 执行或数据读写:一个存储器操作指令结束后则将进行指令执行或数据的读写,这个操作要视存储器操作指令而定。如执行温度转换指令则控制器(单片机)必须等待18B20执行其指令,一般转换时间为500uS。如执行数据读写指令则需要严格遵循18B20的读写时序来操作。数据的读写方法将有下文有详细介绍。 若要读出当前的温度数据我们需要执行两次工作周期,第一个周期为复位、跳过ROM指令、执行温度转换存储器操作指令、等待500uS温度转换时间。紧接着执行第二个周期为复位、跳过ROM指令、执行读RAM的存储器操作指令、读数据(最多为9个字节,中途可停止,只读简单温度值则读前2个字节即可)。其它的操作流程也大同小异
31、,在此不多介绍。3.6.5 DS18B20芯片与单片机的接口如图3.14所示,DS18B20 只需要接到控制器(单片机)的一个 I/O 口上,由于单总线为开漏所以需要 外接一个 4.7K 的上拉电阻。如要采用寄生工作方式(如图3.15所示),只要VDD电源引脚与单总线并联即可。但在程序设计中,寄生工作方式将会对总线的状态有一些特殊的要求。图3.14 DS18B20非寄生工作方式与单片机接口图3.15 DS18B20寄生工作方式与单片机接口3.6.6 DS28B20芯片ROM指令表Read ROM(读ROM)33H (方括号中的为16进制的命令字) 这个命令允许总线控制器读到DS18B20的64
32、位ROM。只有当总线上只存在一个DS18B20的时候才可以使用此指令,如果挂接不只一个,当通信时将会发生数据冲突。 Match ROM(指定匹配芯片)55H 这个指令后面紧跟着由控制器发出了64位序列号,当总线上有多只DS18B20时,只有与控制发出的序列号相同的芯片才可以做出反应,其它芯片将等待下一次复位。这条指令适应单芯片和多芯片挂接。 Skip ROM(跳跃ROM指令)CCH 这条指令使芯片不对ROM编码做出反应,在单总线的情况之下,为了节省时间则可以选用此指令。如果在多芯片挂接时使用此指令将会出现数据冲突,导致错误出现。 Search ROM(搜索芯片)F0H 在芯片初始化后,搜索指令
33、允许总线上挂接多芯片时用排除法识别所有器件的64位ROM。 Alarm Search(报警芯片搜索)ECH 在多芯片挂接的情况下,报警芯片搜索指令只对附合温度高于TH或小于TL报警条件的芯片做出反应。只要芯片不掉电,报警状态将被保持,直到再一次测得温度什达不到报警条件为止。 DS28B20芯片存储器操作指令表: Write Scratchpad (向RAM中写数据)4EH 这是向RAM中写入数据的指令,随后写入的两个字节的数据将会被存到地址2(报警RAM之TH)和地址3(报警RAM之TL)。写入过程中可以用复位信号中止写入。 Read Scratchpad (从RAM中读数据)BEH 此指令将
34、从RAM中读数据,读地址从地址0开始,一直可以读到地址9,完成整个RAM数据的读出。芯片允许在读过程中用复位信号中止读取,即可以不读后面不需要的字节以减少读取时间。 Copy Scratchpad (将RAM数据复制到EEPROM中)48H 此指令将RAM中的数据存入EEPROM中,以使数据掉电不丢失。此后由于芯片忙于EEPROM储存处理,当控制器发一个读时间隙时,总线上输出“0”,当储存工作完成时,总线将输出“1”。在寄生工作方式时必须在发出此指令后立刻超用强上拉并至少保持10MS,来维持芯片工作。 Convert T(温度转换)44H 收到此指令后芯片将进行一次温度转换,将转换的温度值放入
35、RAM的第1、2地址。此后由于芯片忙于温度转换处理,当控制器发一个读时间隙时,总线上输出“0”,当储存工作完成时,总线将输出“1”。在寄生工作方式时必须在发出此指令后立刻超用强上拉并至少保持500MS,来维持芯片工作。 Recall EEPROM(将EEPROM中的报警值复制到RAM)B8H 此指令将EEPROM中的报警值复制到RAM中的第3、4个字节里。由于芯片忙于复制处理,当控制器发一个读时间隙时,总线上输出“0”,当储存工作完成时,总线将输出“1”。另外,此指令将在芯片上电复位时将被自动执行。这样RAM中的两个报警字节位将始终为EEPROM中数据的镜像。 Read Power Suppl
36、y(工作方式切换)B4H 此指令发出后发出读时间隙,芯片会返回它的电源状态字,“0”为寄生电源状态,“1”为外部电源状态。4 软件设计4.1主程序设计为了更简单的完成温度控制的任务,采用如下算法控制继电器,程序的软件流程图如下:图4.1软件流程图首先在程序的开头先读取用户的按键命令,当没有按键时,数码管仅显示实际温度;若按下“b”键,则数码管显示用户的设定温度;按下“c”键,则进入设置温度子程序,用户通过19数字键就可以设置用户所需温度,这样就完成了用户的操作。接下来读取DS18B20的数据,并按格式装配成数码管可以显示的类型。最后根据当前的温度值控制继电器的通断。主程序就是以上述流程往复运行
37、。4.2数码管显示程序数码管显示段选码:unsigned char code Seg_Table13 = 0xC0,/*0*/0xF9,/*1*/0xA4,/*2*/0xB0,/*3*/0x99,/*4*/0x92,/*5*/0x82,/*6*/0xF8,/*7*/0x80,/*8*/0x90,/*9*/0x9c,/*10*/ /上框 代表实际温度 0xa3,/*11*/ /下框 代表设定温度0xff/all off;4.3 键盘扫描程序这里使用44矩阵键盘作为命令输入,采用行列赋值的方法分别确定按键的行值和列值。图4.3键盘扫描4.4 DB18B20通信程序DS18B20测温原理为图中低温度
38、系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振 随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在55所对应的一个基数值。计数器1对 低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重 新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即 为所测温度。斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。转化后得到的12位数据,存储在18
39、B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0, 这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际 温度。例如+125的数字输出为07D0H,+25.0625的数字输出为0191H,-25.0625的数字输出为FF6FH,-55的数字输出为FC90H 。根据DS18B20的通讯协议,主机(单片机)控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位操作,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预
40、定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,当DS18B20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功。图5.4 DS18B20使用方法5 系统合成与检测5.1系统综合连接实验板的USB口连接电脑,用作5V电源输入,DS18B20的VCC和GND分别接UART的VCC和GND;数据端口接UART的RX。这样单片机就可以读取DS18B20的温度数据了,但是为了准确的测量加热炉温度,还要将芯片贴于加热炉的杯壁上,这样可以大致准确地检测炉温。然后是继电器的连接,先将电源线的火线断开,分别接在继电器220V的两个引脚上,再将继电器的
41、控制端分别接在放大器驱动电路的集电极和地线上,而驱动电路用实验箱上的5V输出供电,最后将放大器的基级经由一个2K的电阻接入实验箱UART的TX端。这样,单片机就通过控制TX端的高低电平,控制继电器的开合。5.2系统功能综述程序烧写完毕以后,重新打开开关,数码管就可以显示当前的温度,按下键盘上的“*”号键,就可以使用09数字键设置温度(默认温度为50度)。按下“#”号键,可以查看用户设定温度。按下“D”键,可以看到恒温时间(在距设定温度0.8C的时候开始启动计时器)。加热炉的保温范围大致在设定温度上下0.5C的范围内,当超过设定温度0.5C时,就会启动蜂鸣器报警。在加热的过程中要注意电阻炉要盖上
42、盖子,因为这样可以尽量减少电阻炉的散热使温度控制的更加精确。5.3系统检测测试次数设定温度实际恒定温度13535.224040.135555.146060.2表5.1系统检测试验数据6 结论实际运行的经验和理论的分析都表明,运用计算机对许多工艺过程进行控制时,都能得到满意的效果。用计算机实现温度控制使控制过程更加灵活,更能满足生产过程提出的工艺要求。对于大惯性、纯滞后电阻炉温度控制系统,不断修改软件算法,用软件代替复杂的硬件电路,可获得满意的控制效果,在实时性、准确性、稳定性方面都得到了满足,具有工程实际推广价值。参考文献1周立功单片机实验与实践北京:北京航空航天大学出版社,2杨将新单片机程序
43、设计及应用从基础到实践北京:电子工业出版社,3周润景基于PROTEUS的电路及单片机设计与仿真北京:北京航空航天大学出版社,4张豫滇电子电路课程设计南京:河海大学出版社,5高锋单片微型计算机原理与接口技术北京:科学出版社,附录 单片机C语言源程序DS18B20通信程序#define uchar unsigned char#define DELAY_TIME1 8sbit DQ=P30; /改成P30void ds18b20_delay(int time)/延时时间为(time * 6 us)int i,s,temp;temp=time;for(i=0;i0)s-;/*18B20复位函数*/vo
44、id Init_DS18B20(void)unsigned char x=1,j;DQ=1;/先将数据口拉高for(j=0;j 0; i-) /定义 8 bit,写 8 bitDQ = 1;for(j=0;jDELAY_TIME1;j+)_nop_();_nop_();DQ = 0;for(j=0;j 1; /右移一位,倒数第二位变为最低位DQ = 1;ds18b20_delay(1); /高电平维持11us,写结束/*18B20读1个字节函数*/uchar ReadOneChar(void)uchar i,j;uchar value = 0;for (i = 8; i 0; i-)DQ =
45、1;for(j=0;j= 1; /右移一位DQ = 0;for(j=0;jDELAY_TIME1;j+)_nop_();_nop_();_nop_();_nop_(); /4usDQ = 1;for(j=0;jDELAY_TIME1;j+)_nop_();_nop_();_nop_();_nop_(); /4us ,读时隙if (DQ)value |= 0x80; /DQ=1,则写入为 10000000ds18b20_delay(6); /66usDQ = 1;return(value);float ReadTemperature(void)uchar n = 0; /存储符号unsigned
46、 int t;uchar a,b;/*读出温度函数*/Init_DS18B20(); /总线复位WriteOneChar(0xCC); / 发Skip ROM命令WriteOneChar(0xBE); / 发读命令a = ReadOneChar(); /温度低8位b = ReadOneChar(); /温度高8位Init_DS18B20();WriteOneChar(0xCC); / Skip ROMWriteOneChar(0x44); / 发转换命令t = (b 8) + a;return (t*0.0625);键盘扫描程序#include#includeshuma.hextern uns
47、igned char KeyCounter;extern bit KeyFlag;extern bit SetFlag;extern bit DisFlag;extern bit ShowTimeFlag;unsigned char code keycode16=0x77,0x7b,0x7d,0x7e, /1,2,3,A0xb7,0xbb,0xbd,0xbe, /4,5,6,B0xd7,0xdb,0xdd,0xde, /7,8,9,C0xe7,0xeb,0xed,0xee, /*,0,#,D;unsigned char Key_Scan() /返回的是keycode数组的位数unsigned
48、char i,X,Y;unsigned char KeyCode;P2 = 0x0f;if(P2 != 0x0f)Delay(500);if(P2 != 0x0f)X = P2;P2 = 0xf0;if(P2 != 0xf0)Y = P2;while(P2!=0xf0); /如果不松键 则一直停在这边KeyCode = X|Y;elseKeyCode = 0xff; for(i=0;i16;i+)if(KeyCode=keycodei)return i;return 255; unsigned char Get_Code()unsigned char i=0xff,j=0xff;i=Key_S
49、can();switch(i)case 0:j=1;KeyFlag=1;break;case 1:j=2;KeyFlag=1;break;case 2:j=3;KeyFlag=1;break;case 3:break; /Acase 4:j=4;KeyFlag=1;break;case 5:j=5;KeyFlag=1;break;case 6:j=6;KeyFlag=1;break;case 7:break; /Bcase 8:j=7;KeyFlag=1;break;case 9:j=8;KeyFlag=1;break;case 10:j=9;KeyFlag=1;break;case 11:break; /Ccase 12:j=a;KeyFlag=1;SetFlag=1;KeyCounter=0;break;case 13:j=0;KeyFlag=1;break;case 14:j=b;KeyFlag=1;DisFlag=DisFlag;break;case 15:j=c;KeyFlag=1;ShowTimeFlag=ShowTimeFlag;break; /D /Ddefault:KeyFlag=0;break;return j;数码管显示#includesbit
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 石河子大学《中小学生心理辅导》2021-2022学年第一学期期末试卷
- 石河子大学《武术》2021-2022学年第一学期期末试卷
- 石河子大学《基本乐理》2021-2022学年第一学期期末试卷
- 沈阳理工大学《专题产品设计》2022-2023学年第一学期期末试卷
- 沈阳理工大学《新能源与分布式发电》2023-2024学年期末试卷
- 沈阳理工大学《人工智能》2023-2024学年期末试卷
- 沈阳理工大学《计算机网络实践指导》2022-2023学年期末试卷
- 警察现场救护学习通超星期末考试答案章节答案2024年
- 沈阳理工大学《光电子学》2022-2023学年期末试卷
- 沈阳理工大学《德语国家社会与文化》2022-2023学年第一学期期末试卷
- 医科大学2024年12月精神科护理学作业考核试题答卷
- 论青少年合理怀疑精神的培育
- 机关干部礼仪培训课件
- 安徽省合肥市2024年七年级上学期期中数学试卷【附答案】
- 成都铁路局招聘2024届高校毕业生663人高频难、易错点500题模拟试题附带答案详解
- 《剪映专业版:短视频创作案例教程(全彩慕课版)》 课件 第2章 剪映专业版快速入门
- 中考物理试题及答案经典大全集高分
- DB11T 854-2023 占道作业交通安全设施设置技术要求
- 2024-2025学年浙教版八年级上册科学期中模拟卷
- 第6课《我们神圣的国土》 (教学设计)-部编版道德与法治五年级上册
- 模拟电子技术说课
评论
0/150
提交评论