基于51系列单片机的温度控制系统设计要点.docx

上传人:李医生 文档编号:11732267 上传时间:2021-09-01 格式:DOCX 页数:29 大小:825.37KB
返回 下载 相关 举报
基于51系列单片机的温度控制系统设计要点.docx_第1页
第1页 / 共29页
基于51系列单片机的温度控制系统设计要点.docx_第2页
第2页 / 共29页
基于51系列单片机的温度控制系统设计要点.docx_第3页
第3页 / 共29页
基于51系列单片机的温度控制系统设计要点.docx_第4页
第4页 / 共29页
基于51系列单片机的温度控制系统设计要点.docx_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《基于51系列单片机的温度控制系统设计要点.docx》由会员分享,可在线阅读,更多相关《基于51系列单片机的温度控制系统设计要点.docx(29页珍藏版)》请在三一文库上搜索。

1、目录摘要 31、 课程设计任务 22、 基于51 系列单片机的温度控制系统设计 22.1 方案设计 22.1.1 方案选择 2方案一:热电偶采集温度 2方案二:数字温度传感器 DS18B2怵集温度 22.1.2 方案论证 22.2 基本芯片及PID 算法简介 32.2.1 单片机 STC89C52 32.2.2 DS18B20基本工作原理32.2.3 PID算法 43、 系统硬件设计 63.1 数码管显示模块 63.2 键盘输入模块 73.3 温度采集模块 73.4 报警模块 84、 系统软件设计 94.1 主程序流程图 94.2 温度检测子程序 94.3 PID计算子程序 104.4 PWM

2、 子程序 135、 系统功能设计与实现 135.1 测试系统特性及其传递函数 135.2 实际温度显示功能的实现 145.2.1 Proteus仿真图 145.2.2 实物图 155.3 控制温度的设定功能的实现 165.3.1 Proteus仿真图165.3.2 实物图 165.3.3 系统调试 176、 总结 1815基于 51 系列单片机的温度控制系统摘要: 温度是工业控制中主要的被控参数之一, 对典型的温度控制系统进行研究具有很广泛的意义。根据不同场所、不同温度范围、精度等要求,所采用的测温元件、测温方法以及对温度的控制方法也不同。 本文以实验室提供的 SET-300 型温度测量控制仪

3、为被控对象, 以 STC89C52单片机为控制核心,采用温度传感器DS18B20 作为检测变送器,通过键盘向单片机输入设置温度,单片机将温度偏差进行PID 运算后,输出 PWM 波。 PWM 波作为执行机构的输入从而来决定温度控制仪工作电压的大小 ,最终实现温度的智能控制,整个系统的电路结构简单,可靠性能高。经实验测试,该系统无震荡现象,响应时间较短,稳态误差较小,达到超调量小于等于5%,调节时间小于等于30s 的指标要求。关键词: STC89C52 DS18B20 PID 算法 温度控制系统一、课程设计任务设计一个基于51 系列单片机的温度控制系统。要求: 根据实验室提供的温度控制对象,测试

4、其特性及其传递函数。 具有同时显示实际温度、温度设定功能。 具有控制温度的设定功能。 控制算法采用 PID 控制。 要求温度控制的超调量小于等于5%,调节时间小于等于30s。二、基于 51 系列单片机的温度控制系统设计2.1 方案设计2.1.1 方案选择方案一:热电偶采集温度热电偶利用热电势原理进行温度测量的。其测量精度高、 测量范围广。常用的热电偶从-50 +1600 均可正常测量,某些特殊热电偶最低可测到 -269 (如金铁镍铬),最高可达+2800 (如钨-铼)。但热电偶测量需要温度补偿。而且输出量为电压,需要经过测量放大器、AD 转换后才能送入微处理器处理。方案二:数字温度传感器DS1

5、8B20采集温度DS18B20 采用独特的单线接口方式,与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。在使用中不需要任何外围元件,测温范围55C+ 125C,最小分辨率达 0.0625 。2.1.2 方案论证经过比较,因为采用 DS18B20 测量温度,硬件电路简单,测量精度高,信号易处理,故采用方案二, 即温度变送器选用 DS18B20 。基于 51 系列单片机的温度控制系统电路总体设计方框图如图 2-1 所示,图2-1数字式温度控制仪总体设计框图2.2 基本芯片及PID算法简介2.2.1 单片机 STC89C52STC89C52的结构如图2.1所示。由于它的广泛

6、使用使得市面价格较8155、8255、8279要低,所以说用它是很经济的。该芯片具有如下功能:有1个专用的键盘/显示接口;有1个全双工异步串行通信接口;有2个16位定时/计数器。这样,1个89C52,承担了 3个专用接口芯片的工作,不仅使成本大大下降,而且优化了硬件结构和软件设计,给用户带来许多方便。STC89C52有40个引脚,有 32个输入端口 ( 以可以降低成本。其主要功能特性有:(1)兼容MCS51指令系统(2) 32个双向I/O 口线(3) 3个16位可编程定时/计数器中断(4) 2个串行中断口(5) 2个外部中断源(6) 2个读写中断口线(7) 低功耗空闲和掉电模式(8) 8k 可

7、反复擦写(1000 次)Flash ROM(9) 256x8 bit 内部 RAM(10)时钟频率0-24MHz(11)可编程UART串行通道(12)共6个中断源(13) 3级加密位(14)软件设置睡眠和唤醒功能。I/O),有2个读写口线,可以反复插除。所P1.0 Pl.lPk2 Pl.3Pl. 4 PL 5 PL& PLT RST RXDM.Ci TXDF1.I mrroPi 2 而 1 Pl 3 TOPI 4 TIPI.5 WRP1.6 而因.7 XTAL2 XTAL IGNB123456 20匚匚匚匚匚匚匚匚匚匚匚匚匚匚匚匚匚匚匚匚O 9 8 7 6 5 3 2 -I- O & 8 7

8、6 5 4 3 2 14 333 3333332 2 Z- 2 2J2 2 2_ Vddn PO O (ADO) n P01 (AD1) n P0 2 (AI Z3 P0 3(AD3) 二I * Q4 二I PO S (ADS) 二I PflEgn EA/Vpp=1 ALECTDGPSNEZl P27(A15) Z3 P2 6 (AI4) 二J因“Hl可P2 4 fAi 2) Zl P2 35II) 二I P2 2 fA n现h坳 ZZI P2 0(A)2.2.2 DS18B20基本工作原理图2-2 STC89C52弓I脚图DS18B20温度传感器是美国 DALLAS半导体公司最新推出的一种改

9、进型智能温度传感器, 与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的 编程实现9-12位的数字值读数方式。DS18B20的测温原理:器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 c所对应的一个基数分别置入减法计数器1、温度寄存器中,计数器1和温度寄存器被

10、预置在-55 C所对应的一个基数值。表2-1部分温度对应值表温度/C一进制表小十八进制表小+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00000191H+10.1250000 0000 1010 000100A2H+0.50000 0000 0000 00100008H00000 0000 0000 10000000H-0.51111 1111 1111 0000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0110 11

11、11FE6FH-551111 1100 1001 0000FC90H预置值减到0时,温度寄存器的值将加 1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到0时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。其输出用于修正减法 计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对 DS18B20的各种操作按协议进行。操作协议为:初使化 DS18B20 (发复位脉冲)-发ROM功能命令

12、-发存储器操作命令-处理数据。2.2.3 PID 算法2.2.3.1 PID调节器控制原理在控制系统中,控制器最常用的控制规律是PID控制。PID控制系统原理框图如图2-3所示。系统由PID控制器和被控对象组成。图2-3 PID控制系统原理框图PID控制器是一种线性控制器,它根据给定值rin(t)与实际输出值yout(t)构成控制偏差:Error(t尸rin-youtPID控制就是对偏差信号进行比例、积分、微分运算后,形成一种控制规律。即,控制器的输出为:u(t) =kp1 terror (t) 一Ti 0error (t)dtTD derror (t)dt或写成传递函数的形式:G(s)二U(

13、s)函其中,kp比例系数;Ti 积分时间常数;T d 微分时间常数。简单说来,PID控制器各校正环节的作用如下:比例环节:成比例地反映控制系统的偏差信号error(t),偏差一旦产生,控制器立即产生控制作用,以减小偏差。积分环节:主要用于消除静差,提高系统的无差度。积分作用的强尽弱取决于积分时间常数Ti , Ti越大,积分作用越弱,反之则越强。微分环节:反偏差信号的变化趋势(变化速率),并能在偏差信号变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减少调节时间。2.2.3.2 数字PID参数的整定PID控制器的参数整定是控制系统设计的核心内容。它是根据被控过程的特性确

14、定PID控制器的比例系数、积分时间和微分时间的大小。PID控制器参数整定的方法很多,概括起来有两大类:一是理论计算整定法。它主要是依据系统的数学模型,经过理论计算确定控制器参 数。这种方法所得到的计算数据未必可以直接用,还必须通过工程实际进行调整和修改。二是 工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行,且方法简单、易于掌 握,在工程实际中被广泛采用。本设计采用PID归一整定法把对控制台三个参数(Kc、Ti、Td,)转换为一个参数 Kp,从而使问题明显简化。以达到控制器的特性与被控过程的特性相匹配 满足某种反映控制系统质量的性能指标。2.2.3.3 采样周期选择的原则(1)根据

15、香农采样定理,系统采样频率的下限为fs=2fmax ,此时系统可真实地恢复到原来的连续信号。(2)从执行机构的特性要求来看,有时需要输出信号保持一定的宽度。采样周期必须大于 这一时间。(3)从控制系统的随动和抗干扰的性能来看,要求采样周期短些。(4)从微机的工作量和每个调节回路的计算来看,一般要求采样周期大些。(5)从计算机的精度看,过短的采样周期是不合适的。(6)当系统滞后占主导地位时,应使滞后时间为采样周期的整数倍下表2-2列出了几种常见的被测参数的采样周期T的经验选择数据。可供设计时参考。实际上生产过程千差万别,经验数据不一定就合适,可用试探法逐步调试确定。表2-2采样周期的经验数据表被

16、测参数采用周期T (s)油15s优先选用1s压力3 10s优先选用5s68s15 20s或纯滞后时间15 20s2.2.3.4 PID参数对系统性能的影响表2-3 PID参数对系统性能的影响作用缺点加快调节,减 少稳态误差稳定性下降, 甚至造成系统的不 稳定10yL1 i0k削因为有误差, 积分调节就进行, 直至无差.消除稳 态误差,提高尢差 度。加入积分调节 可使系统稳定性下 降,动态响应变慢。 积分作用常与另两 种调节规律结合, 组成PI调节器或 PID调节器。110t y/t0反映系统偏差微分作用对噪声干扰有放大作信号变化率,具有 预见性,能预见偏 差变化的趋势,因 此能产生超前的控 制

17、作用。可以减少 超调,减少调节时 间。用,因此过强的加 微分调节,对系统 抗干扰不利。微分 作用不能单独使 用,需要与另外两 种调节规蓄料目结 合,组成PD或PID 控制.1t0%i10三、系统硬件设计3.1 数码管显示模块八段就是指数码管里有八个小 LED发光二极管,通过控制不同的 LED的亮灭来显示出不同 的字形。共阳极就是将八个 LED的阳极连在一起,让其接高电平,这样给任何一个LED的另一端低电平,它便能点亮,相应的段被显示出来。数码管的显示有静态显示和动态扫描显示两种方法。所谓静态显示,就是当数码管显示某 一字符时,相应的发光二级管恒定的导通或截止。数码管的每一个段码都可以由一个单片

18、机的 I/O 口进行驱动。静态显示的优点是编程简单,显示亮度高,但缺点是占用I/O 口多,容易造成I/O接口的浪费,不易控制成本。所谓动态扫描显示就是通过分时轮流控制各个LED数码管的DPY端,使各个数码管轮流受控显示。在轮流显示过程中,每位元数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人 的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够 节省大量的I/O 口,而且功耗更低。本系统采用6个共阳极8段数码管对采集到的温度值以及键盘输入的目标值进行显示,接口电路如图3-1所示。

19、该系统采用动态扫描显示方法,虽然这种方法占用CPU资源较多,但是个数码管共占用 8个I/O接口,不存在I/O接口浪费的情况,可以有效的降低成本,故采用此种 方法。图3-1数码管接线电路3.2 键盘输入模块3-2此模块采用4个按键,以满足通过键盘输入目标温度设定值的任务要求,接口电路如图 所示。3.3 温度采集模块温度采集模块采用 DS18B20这款温度传感器,其与单片机连接如图3-3所示。根据DS18B20的通讯协议,主机控制 DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对 DS18B20进行复位,复位成功后发送一条ROM指令,最后发送 RAM指令,这样才能对 DS18B20

20、进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待 1660微秒左右,后发出 60240微秒的存在低脉冲,主 CPU收到 此信号表示复位成功。3.4 报警模块报警采用蜂鸣器元件,当实际温度高于目标温度时,报警功能实现,电路连接图如3-4.四、系统软件设计4.1 主程序流程图图4-1主程序流程图4.2 温度检测子程序DS18B20外接电路极为简单,电路连接没有太大问题;但软件编程就需要严格要求时序进 行读写操作。(1) DS18B20的初始化:根据DS18B20的通讯协议,主机 (单片机)控制DS18B20完成温度转换必须经过三个 步骤:每一次读写之前

21、都要对DS18B20进行复位操作,复位成功后发送一条ROM指令,最后 发送RAM指令,这样才能对 DS18B20进行预定的操作。复位要求主 CPU将数据线下拉 500微 秒,然后释放,当 DS18B20收到信号后等待1660微秒左右,后发出 60240微秒的存在低脉 冲,主CPU收到此信号表示复位成功。(1)先将数据线DQ置高电平“ 1”。(2)延时(该时间要求的不是很严格,但是尽可能的短一点)(3)数据线拉到低电平“ 0”。(4) 延时750微秒(该时间的时间范围可以从480到960微秒)。(5)数据线拉到高电平“1”。(6) 延时等待(如果初始化成功则在15到60微妙时间之内产生一个由DS

22、18B20所返回的低电平“ 0”。据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程 序进入死循环,所以要进行超时控制)。(7)若CPU读到了数据线上的低电平“ 0”后,还要做延时,其延时的时间从发出的高电 平算起(第(5)步的时间算起)最少要 480微秒。(8)将数据线再次拉高到高电平“1”后结束。(2) DS18B20的写操作:(1) 数据线先置低电平“ 0”。(2) 延时确定的时间为 15微秒。(3) 按从低位到高位的顺序发送字节(一次只发送一位)。(4) 延时时间为45微秒。(5) 将数据线拉到高电平。(6)重复上(1)到(6)的操作直到所有的字节全部发送完为止。(6

23、) 最后将数据线拉高。(3) DS18B20的读操作:(1)将数据线拉高“ 1”。(2)延时2微秒。(3)将数据线拉低“ 0”。(4)延时3微秒。(5)将数据线拉高“ 1”。(6)延时5微秒。(7)读数据线的状态得到1个状态位,并进行数据处理。(8)延时60微秒。4.3 PID计算子程序PID调节规律的基本输入输出关系可用微分方程表示为:u(t) = Kp 卜+ J fe(t)dt 十Td deTi 0出式中e(t)为调节器的输入误差信号,且e(t) =r(t)-C(t)其中:r(t)为给定值,C(t)为被控变量;u(t)为调节器的输出控制信号;Kp为比例系数;Ti为积分时间常数;Td微分时间

24、常数。计算机只能处理数字信号,若采样周期为T第n次采样的输入误差为en = r(n) = C(n),输出为 u(n),PID算法用的微分de由差分en - en代替,积分dtTte(t)dt0由 eKT代替,于是得到写成递推形式为 Un =Un=KPUn - KPen;T TdILTI i =0T n(en -en)C eiTI i=0en - enTn Tei) ,三(en -2-en/) i n TTdK P (en _ en d) K p enKp(en - 2eTiTn-An)Kp(en -enG Ke Kd&GPpPlPd苴中.PP - K P (en - en 4 )Pi =KpT

25、iPD = K P 丁 (en - 2en 4en-2) KD(en - 2en 4en-2)初始化显然,PID计算 Un只需要保留现时刻 en以及以前的两个偏差量en和enl程序初值en二=en q = 0通过采样并根据参数Kp、Kd、Ki以及en、en二和enl计算 un 根据输出控制增量Un ,可求出本次控制输出为Un=Un+ Un =Un_1 + Pp 十 Pl 十 Pd由于温度控制仪一般是属于一阶对象和滞后的一阶对象,所以式中KP、Kd、KI的选择取决于温度测量控制仪的阶跃响应曲线和实际经验,工程上已经积累了不少行之的参数整定方法。本设计采用 Ziegler-Nichols提出的PI

26、D归一调整法,调整参数,主要是为了减少在线整定 参数的数目,常常人为假定约束条件,以减少独立变量的个数,令:T =0.1兀TI =0.5TuTD =0.125式中Tu称为临界周期。在单纯比例作用下(比例增益由小到大),是系统产生等幅振荡的比例增益KU ,这时的工作周期为临界周期TU,则可以得到 Un = Kp (en0.2en 1.25(6-24色 1=Kp(en - end) KIen Kd& Be。jen)式中 K I =0.2 K p , K d =1.25 K p从而可以调节的参数只有一个。可设计一个调整子程序,通过键盘输入改变KP值,改变运行参数,使系统满足要求。流程图如图4-2所示

27、,图4-2 PID运算流程图4.4 PWM子程序是一种模拟控制方式,其根据相应载荷的变化来调制晶体管栅极或脉冲宽度调制(PWM) 基极的偏置,来实现开关稳压电源输出晶体管或晶体管导通时间的改变,这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字输出来对模拟电路进行控制的一 种非常有效的技术。PWM的一个优点是从处理器到被控系统信号都是数字形式的,无需进行数模转换。让信号 保持为数字形式可将噪声影响降到最小。噪声只有在强到足以将逻辑1改变为逻辑0或将逻辑0改变为逻辑1时,也才能对数字信号产生影响。用 PWM波输入固态继电器的输入端,从而改变 电炉加热丝内的电流通断时间。本设

28、计中,PWM由单片机定时器中断产生,与主程序和其他函数不影响。脉宽受PID控制器的输出量控制。五、系统功能设计与实现5.1测试系统特性及其传递函数要设计一个控制系统,首先要建立控制系统的数学模型,在建立控制系统数学模型的过程中,最主要是确定被控对象的数学模型。目前用来测定对象动态特性的实验方法主要有三种,即时域方法、频域方法和统计研究方法。在本设计中采用实验测定法中的时域测定法,即被测温度在输入端加阶跃输入信号, 而在输出端测绘其输出量随时间变化的响应曲线,再对响应曲线的结果进行分析,确定被研究对象的传递函数。 阻尼特征,经查阅资料,对于被控对象 表不为温度测量控制仪是一个非线性和时变对象,且

29、具有明显的SET-300型温度测量控制仪,可以得到它的传递函数可其中,T表示对象惯性时间常数,K表示对象放大系数,T为纯滞后时间。要求出其传递函数的参数K、T和7,常用两种方法,切线法和两点法。1)测量数据并描点每隔10s采集一次温度,测量部分数据如下(单位:C) :33.7 34.25 34.94 35.82 37.0037.75 38.75 39.84 41.06 42.3243.45 44.68 46.00 47.14 48.5051.00 52.20 53.56 54.75 56.1357.26 58.25 59.00 59.66 60.0660.38 ,2)用MATLA限拟曲线,绘制

30、如下图5-1控制仪温度曲线3)根据曲线采用两点法得出传递函数在y(t)上选取两个坐标值(ti,y(t力和(t2, y(t2,只要0, y(t1) , y(t2)三个数值之间有明显差异即可。利用公式解得- tlln 1Y1 -ln 1 -Y2121n 1 -Y1 -t11n 1-Y2In 1 -Y1 -1n 1-Y2所求传递函数为G(s) =10s55e58s 15.2 实际温度显示功能的实现5.2.1 Proteus 仿真图实际温度36度,高于目标温度 25度,报警提示,自由降温处理。图5-2实际温度高于目标温度5.2.2实物图实际温度24.5度,低于目标温度 40度,加热指示灯亮,加热处理。

31、图5-3实际温度低于目标温度5.3 控制温度的设定功能的实现5.3.1 Proteus 仿真图设定目标温度为85度。图5-5设定目标温度17黑93匿sblhllll-iHKIlrLlm图5-4设定目标温度仿真图5.3.2 实物图设定目标温度为34度。5.3.3 系统调试根据香农采样定律,系统调试时的 PWM波周期定为100毫秒,采样周期定为 500毫秒。当 系统的期望设定温度为95c时,取Kp=3 , Ki=0.0001时,得到如图5-6中的第一次实验曲线,其中响应时间为18分钟,且稳态偏差较大; 适当增大Kp,保持Ki不变,发现系统响应时间增快,稳态偏差仍较大。将 Kp保持不变, 增大Ki,

32、当Ki=0.0015时,温度控制的超调量小于5%调节时间小于30s,稳态偏差达到系统设计的要求。取 Kp=4 , Ki=0.0015 ,设定温度为50c时,得到如图5-7所示的曲线。图5-6目标温度为95 c的调试曲线第一次实验曲线温度/ C理想曲线11)时间图5-7目标温度为50 c的调试曲线当第一次测试时,由于参数不准,所以出现了误差较大,达不到系统指标。而经过不断调整参数,系统达到了预期的控制效果。当参数调好后,重新设置输入温度。可以看出在t1以前1 速加热,但由于自然散热,曲线并不是直线。而温度上升到48c时上升斜率减小,到相差0.5C时更小。综上所述,该系统在动态性能指标上完全达到了

33、设计任务的要求。六、总结本设计以 STC89C52 单片机为系统控制核心,通过 DS18B20 温度传感器采集实验室提供的对象 SET-300 型温度测量控制仪,并通过数码管显示出来。该系统能够以预先设置好的目标温度值为标准,根据PID 算法, 输出 PWM 波形, 自动开通和关断加热电源,从而使控制仪内的温度值稳定在设定范围内。在整个课程设计的过程中,需要注意以下几个问题: 切实掌握和理解STC89C52 单片机的主要特点和性能参数,明确其工作原理; 该控制系统的复位电路根据实际需要采用兼有上电外部复位与按钮复位的电路。这样复位电路能够输出两种电平的复位信号,以适应外围 I/O 接口芯片所需

34、要的不同复位电平信号。 采用 4 个独立键盘,简单且方便实际操作。 理解掌握 PID 算法是解决本问题的关键。这次计算机控制课程设计中, 我和队友几乎每天都到实验室讨论关于温度控制系统的开展和实施工作。明确各自任务后,我们各自便进入了紧张的工作中。 其中, 我主要负责仿真图形的绘制,软件编程和论文写作工作。由于基础知识不够扎实, 我只能查阅大量资料, 通过从图书馆借书, 网上查阅等各种途径学习相关知识。 在此课程设计期间, 我锻炼了自己独立思考研究的能力,认识到了团队合作的重要性, 同时强化了自己相关专业知识的理解和使用。 整个课程设计基本满足设计任务的要求,但是也有一些不足之处,比如使用了

35、6 个数码管显示实时温度和控制温 度,相对比较麻烦。在今后的学习中, 我要加强自己专业知识的学习, 多动手参加一些课外实践活动或比赛, 锻 炼自己的实际操作与动手能力,将自己所学的知识运用到实践当中,不能纸上谈兵。 总之, 这次 课程设计让我了解到了自己的不足之处,在以后的学习过程中, 我会扬长避短, 再接再厉, 认真 学习专业知识,为后续学习打下坚实的基础。参考文献2 张毅刚 , MCS-51 单片机原理及应用 M. 哈尔滨 ,哈尔滨工业大学出版社,2004.6.3 刘文涛 , MCS-51 单片机培训教程. 北京:电子工业出版社 ,1996.4 张洪润,易涛编著,单片机应用技术教程(第二版

36、) . 北京:清华大学出版社 ,2003.5 李华等 , MCS-51 系列单片机实用接口技术. 北京:北京航空航天大学出版社 ,1993.6 周润景,单片机电路设计、分析与制作. 北京:机械工业出版社 ,2010.7 谭浩强 , C 程序设计 M. 北京:清华大学出版社 ,1999 , 12.8 曹巧媛,单片机原理及应用. 北京:电子工业出版社 ,2002. 2.9 胡汉才,单片机原理及其接口技术. 北京:清华大学出版社 ,2010.10 蔡明生 , 电子设计 M. 北京:高等教育出版社,2004.12.11 李群芳 ,单片微型计算机接口技术及应用.北京:电子工业出版社,2005.1.12

37、石宗义 ,电路原理图与电路板设计教程Protel 99SE. 北京:北京希望电子出版社 ,2002.6.附件附件 1 C 程序/程序功能:通过 DS18B20 测试当前环境温度, 并通过数码管显示当前温度值#include reg52.h#include#include /要用到取绝对值函数abs()#define uchar unsigned char#define uint unsigned intsbit we=P2A7;/数码管位选sbit du=P2A6; 数码管段选sbit dio=P2A5;sbit ds=P2A2;sbit pwm=P3A0; /PWM 输出sbit beep=

38、P2A3;sbit key1=P3A4;sbit key2=P3A5;sbit key3=P3A6;sbit key4=P3A7;int tempValue1;uint uk,kp; /* 比例系数 */;float ki, kd ; /* 积分系数 ,微分系数 */unsigned int temp;bit startend;bit leftright;uchar code th0=(65535-3000)/256;uchar code tl0=(65535-3000)%256;uchar dispbuf6;uchar code disptab=0x3f,0x6,0x5b,0x4f,0x66

39、,0x6d,0x7d,0x27,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x0;uchar code disptabwithdot=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0xa7,0xff,0xef,0xf7, 0xfc,0xb9,0xf9,0xf1;uchar code dispbit=0xfe,0xfd,0xfb,0xf7,0xef,0xdf;uchar ge,shi;/延时函数,对于11.0592MHz时钟,例i=10,则大概延时10ms.void delay(unsigned int i)unsigned int

40、j;while(i-)for(j = 0; j 0) i-;ds = 1;/产生一个上升沿, 进入等待应答状态i = 4;while(i0) i-;void dsWait()unsigned int i;while(ds);while(ds); /检测到应答脉冲i = 4;while(i 0) i-;/向 DS18B20 读取一位数据/读一位 , 让 DS18B20 一小周期低电平, 然后两小周期高电平,/之后 DS18B20 则会输出持续一段时间的一位数据bit readBit()unsigned int i;bit b;ds = 0;i+;/延时约8us, 符合协议要求至少保持 1usds

41、 = 1;i+; i+;/延时约 16us, 符合协议要求的至少延时15us 以上b = ds;i = 8;while(i0) i-;/延时约 64us, 符合读时隙不低于60us 要求return b;/读取一字节数据 , 通过调用 readBit() 来实现unsigned char readByte()unsigned int i;unsigned char j, dat;dat = 0;for(i=0; i8; i+)j = readBit();/最先读出的是最低位数据dat = (j 1);return dat;/ 向 DS18B20 写入一字节数据void writeByte(un

42、signed char dat)unsigned int i;unsigned char j;bit b;for(j = 0; j = 1;写1,将DQ拉低15us后,在15us60us内将DQ拉高,即完成写1if(b)ds = 0;i+; i+;/拉低约 16us, 符号要求 1560us 内ds = 1;i = 8; while(i0) i-;延时约64us,符合写时隙不低于60us要求else /写0, 将 DQ 拉低 60us120usds = 0;i = 8; while(i0) i-;/拉低约64us, 符号要求ds = 1;i+; i+;/整个写0 时隙过程已经超过60us, 这里就不用像写 1 那样 , 再延时64us 了/ 向 DS18B20 发送温度转换命令void sendChangeCmd()dsInit();/初始化DS18B20, 无论什么命令, 首先都要发起初始化dsWait();/等待DS18B20 应答delay(1); /延时 1ms, 因为 DS18B20 会拉低 DQ 60240us 作为应答信号writeByte(0xcc); / 写入跳过序列号命令字Skip RomwriteBy

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1