基于单片机的水温自动控制系统设计_第1页
基于单片机的水温自动控制系统设计_第2页
基于单片机的水温自动控制系统设计_第3页
基于单片机的水温自动控制系统设计_第4页
基于单片机的水温自动控制系统设计_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于单片机的水温自动控制系统设计一、 题目要求及分析 要求设计一个水温控制系统,能正常控制和测量温度范围,用at89c51控制ds18b20,读取数据对ds18b20转换后的数据进行处理,转换成实际温度,使用6位数码管显示ds18b20测出的温度。二、 系统总体方案1、 温度传感器选择采用ds18b20单线数字温度传感器做温度检测器。ds18b20能够直接将所采集的信号进行模|数转换2、 led显示方案系统需要采用6位led数码管显示,led显示有动态显示和静态显示。本次采用动态显示,增加74ls245芯片最为led数码管的驱动,采用共阴极的led,其中单片机的p1口为led的段码输出口,p3

2、.0p3.5分别是led的位码输出口三、 硬件电路组成部分(1) ds18b20温度采集电路 ds18b20有3个引脚,gnd接地信号、dq数据输入输出引脚、vdd外接供电电源输入端。如图示:ds18b20温度值格式表,如下图所示。这是12位转换后得到的12位数据,存储在ds18b20的两个8比特的ram中,二进制中的前面5位是符号位,如果测得温度大于0,这5位为0,只要将测得得数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1测得的数值需要取反加1再乘0.0625即可得到实际温度。 高8为中的高五位是符号位,表示温度是零上还是零下。高8位中的低三位和低8为中的高4位构成温度的整

3、数部分。低8位中的低4位为温度的小数部分。(2) 数码管led(3) 单片机外部时钟电路(4) 单片机复位电路 四、 软件设计1、主程序 2、ds18b20复位子程序y3、ds18b20读温度子程序4、ds18b20数据处理子程序五、程序(一)编写、汇编源程序;变量定义dq bit p2.4 ;ds18b20数据位flag1 bit 00h sign bit 01h msb equ 30hlsb equ 31hinteg equ 32hdecim equ 33hseg-s equ 34hseg-i3 equ 35hsegi2 equ 36hseg-i1 equ 37hseg-d1 equ 38

4、hseg-c equ 39h;主程序 org 0000hmain lcall init-1820 lcall get-temper lcall data-ppoc lcall seg-gen lcall display sjmp main;ds18b20复位初始化子程序init-1820: setb dq nop clr dq mov r1,#3tsr1: mov r0,#107 djnz r0,$ djnz r1,tsr1 setb dq nop nop nop mov r0,#25htsr2: jnb dq,tsr3 djnz r0,tsr2 ljmp tsr4tsr3: setb fla

5、g1 ljmp tsr5tsr4 : clr flag1 ljmp tsr6tsr5: mov r0,#117 djnz r0,$tsr6: setb dq ret;读出转换后的温度值get-temper: setb dq lcall init-1820 jb flag1,tss2 rettss2: mov a,#0cch lcall write-1820 mov a, #44h lcall write-1820 lcall delay lcall init-1820 mov a,#0cch lcall write-1820 mov a,#0beh lcall write-1820 lcall

6、 read-1820 ret;写ds18b20的子程序write-1820: mov r2,#8 clr cwr1: clr dq mov r3,#6 djnz r3,$ rrc a mov dq,c mov r3,#23 djnz r3,$ setb dq nop djnz r2,wr1 setb dq ret;读ds18b20的程序read-18200: mov r4,#2 mov r1,#31hre00: mov r,#8re01: clr c setb dq nop nop clr dq nop nop nop setb dq mov r3,#9re10: djnz r3,re10 m

7、ov c,dq mov r3,#23 djnz r3,$ rrc a djnz r2,re01 mov r1,a dec r1 djnz r4,re00 ret;数据处理子程序data-proc: clr c clr sign mov a,msb rlc a jc neg ljmp procneg: clr c setb sign mov a,lsb cpl a add a,#1 mov lsb,a mov a,msb cpl a addc a,#0 mov msb,aproc: mov a,lsb anl a,#0fh mov decim,a mov a,msb swap a anl a,#

8、0f0h mov integ,a mov a,lsb swap a anl a,#0fh mov r0,integ orl a,r0 mov integ,a ret;生成显示码子程序seg-gen: mov dptr,#table jb sign,s-neg mov seg-s,#00h sjmp s-ints-neg: mov seg-s,#40hs-int mov a,integ mov b,#100 div ab movc a,a+dptr mov seg-i3,a mov a,b mov b,#10 div ab movc a,a+dptr mov seg-i2,a mov a,b m

9、ovc a,a+dptr orl a,#80h mov seg-i1,a mov dptr,#float-tab mov a,decim movc a,a+dptr mov dptr,#table movc a,a+dptr mov seg-d1,a mov seg-c,#39h ret;显示子程序display: mov p3,#0ffh clr p3.0 mov p1,seg-s lcall delay setb p3.0 clr p3.1 mov p1,seg-i3 call delay setb p3.1 clr p3.2 mov p1,seg-i2 lcall delay setb

10、p3.2 clr p3.3 mov p1,seg-i1 lcall delay setb p3.3 cle p3.4 mov p1,seg-d1 lcall delay setb p3.4 clr p3.5 mov p1,seg-c lcall delay setb p3.5 ret;延时子程序,延时5秒delay: mov r5,#5d1: mov r6,#248 djnz r6,$ djnz r5,d1 ret;table: db 3fh,06h,5bh,4fh,66h db 6dh,7dh,07h,7fh,6fhfloat-tab db00,01,01,02,03,03,04,04,05

11、,06,06,07,08,08, db09,09 end(二)程序仿真1、 先在protues仿真软件中搭建硬件电路;2、 根据设计思想和硬件电路在keil2中编写程序代码调试通过并生成.axm文件;3、 双击protues仿真电路中的单片机,将.axm文件添加到单片机中,然后运行观察结果。(三)结果分析能够从温度传感器中获得温度数据,程序能正常执行,测得结果有一定的误差,总之,效果还行。六、 心的体会本设计以单片机为核心部件的控制系统,利用软件编程,最终实现设计要求。 这次课程设计历时两个星期,从一开始的确定课题,理论学习,到后来的资料查找,再到调试仿真,这一切都使我的理论知识和动手能力进一步提高。 在本

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论