已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目 录一、设计要求1二、设计目的1三、单片机89C51简介231 主要特性232 内部结构23.3外部特性(引脚功能)3四、设计的具体实现541测温电路542模/数转换电路643水可饮用指示电路744温度显示电路745上电复位/时钟/电源电路846锅炉示意电路1047设计思想11五、软件设计1251主流程序如下1252判温程序流程如下:13六、设计总结18七、结果与展望18八、附录20九、参考文献21单片机温度测控系统设计报告一、设计要求系统要求实现温度的测量控制转换精度:8位转换范围:0+128转换误差:1摄氏度二、设计目的温度是日常生活中无时不在的物理量,温度的控制在各个领域都有积极的意义。很多行业中都有大量的用电加热设备,如用于热处理的加热炉,用于融化金属的坩埚电阻炉及各种不同用途的温度箱等,采用单片机对它们进行控制不仅具有控制方便、简单、灵活性大等特点,而且还可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量。因此,智能化温度控制技术正被广泛地采用。本温度测控系统设计采用现在流行的89C51单片机,本设计还加入了常用的数码管显示等常用电路,使得整个设计更加完整,更加灵活。该设计很实用,可对温度进行测控。通过采用单片机实现系统功能的设计实习,要达到理论上巩固既学知识,实践上丰富设计经验,并通过设计过程中暴露出来的一些问题,达到优化知识结构、丰富动手思维能力。同时,通过对设计中遇到的各种未知知识及设计技巧的学习和解决,更好的培养学生的自学能力。通过以分组的形式,来培养学生的团结互助,相互学习补充。这样,不仅在学习上达到的学生间、知识间的融合,更增进了学生的融洽,为即将步入社会的学生打下良好的基础。三、单片机89C51简介31 主要特性 4K字节在系统可编程Flash存储器 32个可编程I/O口线 2个16位定时器/计数器 6个中断源 全双工UART串行通道 双数据指针32 内部结构它可以划分为CPU、存储器、并行口、串行口、定时/计数器和中断逻辑几个部分。 CPU由运算器和控制逻辑构成。其中包括若干特殊功能寄存器(SFR)单片机89C51时钟有两种方式产生,即内部方式和外部方式。单片机89C51在物理上有四个存储空间:片内/片外程序存储大路、片内/片外数据存储器。片内有256B数据存储器RAM和4KB的程序存储器ROM。除此之外,还可以在片外扩展RAM和ROM,并且和有64KB的寻址范围。单片机89C51内部有一个可编程的、全双工的串行接口。它串行收发存储在特殊功能寄存器SFR的串行数据缓冲器SBUF中的数据。单片机89C51共有4个(P0、P1、P2、P3口)8位并行I/O端口,共32个引脚。P0口双向I/O口,用于分时传送低8位地址和8位数据信号;P1、P2、P3口均为准双向I/O口;其中P2口还用于传送高8位地址信号;P3口每一引脚还具有特殊功能,用于特殊信号的输入输出和控制信号。单片机89C51内部有两个16位可编程定时器/计数器T0、T1。最大计数值为65536。工作方式和定时器或计数器的选择由指令来确定。 中断系统允许接受5个独立的中断源,即两个外部中断,两个定时器/计数器中断以及一个串行口中断。图3-1 是单片机89C51的内部结构总框图3.3外部特性(引脚功能)单片机89C51芯片有40条引脚,双列直插式封装引脚图如3-2所示:图3-2单片机89C51引脚结构图 Vcc(40):电源+5V; Vss(20): 接地; XTAL1(19)和XTAL2(18):使用内部振荡电路时,用来接石英晶体和电容;使用外部时钟时,用来输入时钟脉冲; P0口(3932):双向I/O口,既可作地址/数据总线口用,也可作普通I/O口用; P1口(18):准双向通用I/O口; P2口(2128):准双向口,既可作地址总线口输出地址高8位,也可作普通I/O口用; P3口(1017):多用途口, 可作普通I/O口,也可按每位定义的第二功能操作; ALE/PROG(30):地址锁存信号输出端。在访问片外丰储器时,若ALE为有效高电平,则P0口输出地址低8位,可以用ALE信号作外部地址锁存信号。公式(21)fALE=1/6fOSC ,也可作系统中其它芯片的时钟源。第二功能PROG是对EPROM编程时的编程脉冲输入端; RST/VPD(9):复位信号输入端。单片机89C51接能电源后,在时钟电路作用下,该脚上出现两个机器周期以上的高电平,使内部复位。第二功能是VPD,即备用电源输入端。当主电源Vcc发生故障,降低到低电平规定值时,VPD将为RAM提供备用电源,发保证存储在RAM中的信号不丢失; EA/Vpp(31):内部和外部程序存储器选择线。EA=0时访问外部ROM 0000HFFFFH;EA=1时,地址0000H0FFFH空间访问内部ROM,地址1000HFFFFH空间访问外部ROM; PSEN(29):片外程序存储器选通信号,低电平有效;四、设计的具体实现41测温电路Vi图4.1测温电路上面只讲了锅炉的控制模型,现在讲测温电路。我采用分度号Cu100的温敏电阻,如图电阻Rx。环境温度为0时,Rx=100;测温上限128时,Rx=155。通过与R1对电源电压(5V)分压,在测量范围内输出2.51.96V的电压信号Vi。集成运放A1及其外围电阻实现对Vi进行放大,以输出符合ADC输入的02.5V的电压。理论计算如下:Vo=(R3/R4)*VCC(R3/R2)*ViR3=1500,R2=330,R4=660,VCC=5V,这样,Vo=(R3/R2)(2.5Vi),当Vi在2.51.96V内变化时,Vo将在02.5V内变化,同时0度对应0V,128度对应2.5V,符合了数据处理的要求。42模/数转换电路图4.2模/数转换电路如图所示,该电路由三部分组成,单片机89C51、ADC0809和D触发器。ADC0809有八个模拟信号输入端,由于该系统只需一路模拟信号的转换,所以将除IN-0以外的输入端都接地,而ADC0809的模拟输入端选择地址信号全接地,这样,系统就默认了IN-0输入。ADC0809的启动端接入89C51的P1.7口,转换结束中断信号则接入89C51的P1.6口,数字信号输出口使能输入信号接入89C51的P1.4口,这几个口的信号共同达到控制ADC0809的目的。ADC0809的转换时钟信号由89C51的ALE端信号经D触发器分频后接入。43水可饮用指示电路图4.3水可饮用指示电路如图所示,通过将一个发光二极管与单片机的P1.5脚相连,当P1.5输出高电平时,发光二极管发光,表示锅炉内水可饮用;而P1.5脚输出低电平时发光二极管不发光,则锅炉内水不可饮用。电阻则是限流用。44温度显示电路图4.4温度显示电路图中电路实现温度的三位显示,因为系统测量温度的上限是128度。首先,电路通过74LS373锁存P0来的分时复用字型码信息,通过各限流电阻传到各LED进行显示。而LED的显示也是通过89C51的控制分时显示的。由于选用的是共阴级LED,所以,当89C51的控制信号为低电平时,表示选择该LED,此时送出的字型码也是该LED的显示数据,LED点亮。45上电复位/时钟/电源电路图4.5上电复位电路单片机在启动上电时都应该复位内部,以达到正常工作的目的。电路中,RST接到89C51的RST端,电容在上电的瞬间短路,RST端接入高电平,单片机复位;达到稳态后,电容相当于断路,RST接为低电平,失去复位功能。图4.6时钟电路任何时序电路都需要参考时钟,由于89C51有内置的时钟电路,所以只须外接晶振便可。该电路采用12MHz晶振,补偿电容C1、C2选用典型值。电路采用220伏市电供电,经电桥整流后再经7805三端稳压成5伏电路的供电电压。C3、C4起到的是平缓纹波的作用,以期给电路提供更稳定的电压,减少因电源波动带来的系统误动作。图4.7电源电路46锅炉示意电路图4.8锅炉示意电路如上图,通过七个控制线端与中央系统相连,达到控制和信息索取。而温敏传感器则另加。其中的进出水口是系统控制的电动阀门,通过系统的高低电平表示阀门的开合,以达到自动装水、自动饮水的目的,起到了对锅炉和人的双方保护的作用,防止了因水的匮乏及溢出对锅炉的伤害,也不会因人喝了未煮沸的水而产生的不良后果。高低警戒水位则起到对水位的监控作用,防止水位过低烧毁锅炉,也防止水位过高溢出产生其他后果,由于单片机的中断触发方式设置的是下降沿触发,这也是出于锅炉水位变化的缓慢性,为防止误触发而设置的,而我们又假定水淹没水位传感器时表高电平,水未淹没水位传感器时取低电平,这样当高水位有效时传感器产生的是上升沿,为了产生下降沿,在它的输出端接入了一个反相器。三级加热则是会产生三个级别的加热,分别是全压加热、半压加热和不加热,如图,D1和D2是控制加热电源的双向晶闸管,它们的功能如下:D1/P1.3D2/P1.2功能X0不加热10半压加热11全压加热D1,D2的触发端则分别与单片机的P1.3,P1.2口相连,达到控制的目的。47设计思想MCU89C51锅炉高水位低水位进水出水三级加热ADC080974LS373注释:该测量系统由单片机实现烧水锅炉各功能的控制。锅炉具有自动加水,沸水控制,加热控制等功能。初始化单片机时系统进入锅炉加水功能,当水位达到上限水位时,锅炉产生一个中断脉冲中断单片机,跳出加水,进入单片机控制锅炉加热功能,当锅炉中水的温度达到80度时,降低加热电压,并允许使用锅炉中的水。当锅炉中的水用至低于下限水位时,锅炉同样会产生一个中断脉冲中断单片机,回复前面过程,再次进行加水控制,如此达到单片机控制热水锅炉的温度测控功能。其中,系统还设置有温度的三级加热控制。当温度高于80度时,控制由全电压加热转到半电压加热;当温度高于100度时,又会控制停止加热,即割断加热线路;当温度由高温再次降到90度以下时,系统又会重新启动半电压加热,如此反复控制。五、软件设计51主流程序如下系统上电复位开始执行程序。通过对各个端口初始化,然后进入进水程序,等高警戒水位发出中断后,说明水已经加满,这时跳出加水程序;再对水进行加热到80度,此时水遍可饮用,转换加热等级,等待INT0中断,若中断则水已用至低警戒水位,再转入加水程序,如此循环。开始初始化进水加温到80度停止加温等待用水完水用完INT0中断52判温程序流程如下:将温度值先与80度值比较,若大于,则转为半压加热,并打开出水阀,接着执行下面的操作,若小于,则跳出返回;再与90度值比较,若大于,则继续进行下面的比较,若小于,则跳出返回;最后与100度值比较,若大于则关闭加热系统并返回,若小于,同样返回。通过这个判温电路,以形成闭环测控温功能。温度值大于80度大于90度大于100度关闭加热结束转半压加热开出水阀NNN程序代码:ORG 0000H AJMP main; ORG 0003H AJMP water_in; ORG 0013H AJMP INT_1; ORG 0030H main: AJMP water_in; AJMP heat_water;initial: SETB P1.4 ;停止ADC MOV DPH,#0C0H ;LED输出短横初始 MOV DPL,#0FFH; MOV A,#08H; MOVX DPTR,A; AJMP delay; CLR P1.0 ;关闭进水口 CLR P1.1 ;关闭出水口 SETB IT0 ;边沿触发方式中断 SETB IT1 ;边沿触发方式中断 SETB EA ;开中断 SETB EX0; SETB EX1; RET;water_in:AJMP initial; JNB IE0,N_int ;判断是否是中断启动该子程序 SETB ACC.0; CLR EX0; CLR IE0;N_int: CLR P1.1; SETB P1.0 ;打开进水口wait: JNB CY,wait ;等待进水满 NOP JB ACC.0,int_0; RET;int_0: SETB EX0; RETI;INT_1: CLR EX1; CLR IE0; CLR P1.0; SETB CY; SETB EX1; RETI;heat_water: CLR P1.2; SETB P1.3;RETURN: CLR P1.7;启动ADC SETB P1.7; AJMP delay; CLR P1.7;wait_ADC: JNB P1.6,wait_ADC ;等待转换结果 MOV DPH,#0FFH ;读ADC MOV DPH,#0FFH; MOVX A,DPTR; MOV R3,A; ANL A,#7FH ;数据处理 MOV B,#64H; DIV AB; MOV R0,A; MOV A,B; MOV B,#10; DIV AB; MOV R1,A; MOV R2,A; MOV DPTR,#tab ;百位显示 MOV A,R0; MOVC A,A+DPTR; MOV DPTR,#7FH; MOVX DPTR,A; AJMP delay; MOV DPTR,#tab ;十位显示 MOV A,R1; MOVC A,A+DPTR; MOV DPTR,#0BFH; MOVX DPTR,A; AJMP delay; MOV DPTR,#tab ;个位显示 MOV A,R2; MOVC A,A+DPTR; MOV DPTR,#0DFH; MOVX DPTR,A; AJMP delay; MOV A,R3 ;判断是否大于80度 MOV R0,#50H; CLR CY; SUBB A,R0; JB CY,RETURN; SETB P1.5; SETB P1.2; SETB P1.1; MOV A,R3 ;判断是否大于90度 MOV R0,#5AH; CLR CY; SUBB A,R0; JB CY,RETURN; MOV A,R3 ;判断是否大于100度 MOV R0,#64H; CLR CY; SUBB A,R3; JB CY, RETURN; CLR P1.3; SJMP RETURN;tab: DB 3FH,03H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;字型码数据;delay: MOV R7,#0FFH ;延迟子程序LOOP: DJNZ R7,LOOP; RET;END;六、设计总结通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。同时我认为我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。某个人的离群都可能导致整项工作的失败。实习中只有一个人知道原理是远远不够的,必须让每个人都知道,否则一个人的错误,就有可能导致整个工作失败。团结协作是我们实习成功的一项非常重要的保证。而这次实习也正好锻炼我们这一点,这也是非常宝贵的。对我们而言,知识上的收获重要,精神上的丰收更加可喜。挫折是一份财富,经历是一份拥有。这次实习必将成为我人生旅途上一个非常美好的回忆!这次课程设计终于顺利完成了,在设计中遇到了很多专业知识问题,最后在老师的辛勤指导下,终于游逆而解。同时,在老师的身上我们学也到很多实用的知识,在次我们表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!七、结果与展望通过这次课程设计,加强了我们动手、思考和解决问题的能力。在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论