单片机系统开发与应用工程实习报告基于AT89S52单片机的水温控制系统_第1页
单片机系统开发与应用工程实习报告基于AT89S52单片机的水温控制系统_第2页
单片机系统开发与应用工程实习报告基于AT89S52单片机的水温控制系统_第3页
单片机系统开发与应用工程实习报告基于AT89S52单片机的水温控制系统_第4页
单片机系统开发与应用工程实习报告基于AT89S52单片机的水温控制系统_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机系统开发与应用工程实习报告单片机系统开发与应用工程实习报告选题名称选题名称: 基于 at89s52 单片机的水温控制系统 系(院)系(院): 计算机工程学院 专专 业业: 计算机科学与技术(嵌入式系统软件设计)班班 级级: 姓姓 名名: 学学 号号: 指导教师指导教师: 学年学期学年学期: 2009 2010 学年 第 2 学期2010年 5 月 30 日摘要:温度控制是很多企业常见的控制装置,如机械行业的零件热处理、塑料制品的注塑机上,粉末冶金行业烧结炉、还原炉等都有温度控制问题,尤以热处理加热炉的温度控制最为典型。热处理加热炉是工厂热处理和高校热处理实验广泛使用的加热设备。现在所使用

2、的炉温控制方法很多仍是陈旧的动圈式两位指示调节仪(如 xct101 型动圈式两位指示调节仪) 。这种炉温控制方法炉温波动范围大,保温时间靠人工计时,加热速度不能控制,温度不能全程动态跟踪显示。这样的控制和显示方式不能满足日益发展的工业需求。高校的发展同样要求用现代化手段提升现有的实验设备,为学生提供更多更好、更现代化的实验条件。因此,我们就学校热处理实验用电阻加热炉进行现代化改革,将ds18b20 测温传感器和 at89s52 单片机优秀的实时控制功能、灵活的编程能力有机的结合起来,开发出热处理微机控制系统,实现温度控制的自动化。不但能用于学校的实验教学及其它一些研究课题的开发,同样能用于工厂

3、热处理、注塑机多点温度的控制,提高工业企业自动化水平。关键字:单片机 at89s52;传感器;控温;ds18b20目目 录录1 系统设计 .11.1 项目概要 .11.2 项目要求 .12 硬件设计 .12.1 硬件设计概要 .12.2 单片机最小系统 .22.3 温度检测电路 .42.3 报警电路 .72.4 控制电路及显示电路 .73 软件设计 .93.1 中断控制程序 .103.2 显示程序 .113.3 温度测量 .123.4 温度处理 .18总 结 .20参考文献 .21单片机系统开发与应用工程实习报告11 系统设计系统设计1.1 项目概要项目概要水温控制系统无论是工业生产过程,还是

4、日常生活都起着非常重要的作用,过低过高的水温都会使水资源失去应有的作用,从而造成水资源的极大浪费,给生活生产带来许多不利因素。基于 at89s52 的单片机水温控制系统与传统的水温控制器相比具有操作方便、价格便宜、精确度高和开展容易等优点,因此市场前景看好。1.2 项目要求项目要求基于 at89s52 单片机水温控制器晶振采用 12mhz,具体要求如下:(1)初始温度设置为 50 度(2)越限报警温度为 70 度(3)控制精度为 1 度(4)控制范围为环境温度室温到 70 度2 硬件设计硬件设计2.1 硬件设计概要硬件设计概要根据需求,我的系统需要温度采集电路、控制电路、报警电路。当然这些要一

5、起工作我们就需要一块单片机来协调它们!温度采集我们使用 18b20,使用它可以是电路简化。控制电路我们用外部中断来调节温度,为了使操作方便,我们加入了一个显示控制温度值的数码管,来便于使用。报警电路,这个电路我们用一个三极管这为放大器去驱动一个喇叭。所有电路结构如下单片机系统开发与应用工程实习报告2图 2-1 总体硬件设计示意图2.2 单片机最小系统单片机最小系统at89s52 是美国 atmel 公司生产的低功耗,高性能 cmos8 位单片机,片内含4k bytes 的可系统编程的 flash 只读程序存储器,器件采用 atmel 公司的高密度、非易失性存储技术生产,兼容标准 8051 指令

6、系统及引脚。它集 flash 程序存储器既可在线编程(isp)也可用传统方法进行编程及通用 8 位微处理器于单片芯片中,atmel公司的功能强大,低价位 at89s52 单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。由于 at89s52 是一个低功耗,高性能 cmos 8 位单片机,片内含 8k bytes isp(in-system programmable)的可反复擦写 1000 次的 flash 只读程序存储器。器件采用atmel 公司的高密度、非易失性存储技术制造,兼容标准 mcs-51 指令系统及80c51 引脚结构,芯片内集成了通用 8 位中央处理器和 isp

7、flash 存储单元,功能强大的微型计算机的 at89s52 可为许多嵌入式控制应用系统提供高性价比的解决方案。因此,本系统使用 at89s52 单片机作为微处理器,at89s52 引脚图如图 2-2。它主要具有如下特点:40 个引脚,8k bytes flash 片内程序存储器,256 bytes 的随机存取数据存储器(ram) ,32 个外部双向输入/输出(i/o)口,5 个中断优先级 2 层中断嵌套中断,2 个 16 位可编程定时计数器,2 个全双工串行通信口,看门狗(wdt)电路,片内时钟振荡器。 at89s52 设计和配置了振荡频率可为 0hz 并可通过软件设置省电模式。空闲模式下,

8、cpu 暂停工作,而 ram 定时计数器,串行口,外中断系统可继续工作掉电模式冻结振荡器,因而可以保存 ram 的数据,停止芯片其它功能直至外中断激活或硬件单片机系统开发与应用工程实习报告3复位。下面列出了 at89s52 的一些性能参数:与 mcs-51 产品指令系统完全兼容 4k 字节在系统编程(isp)flash 闪速存储器1000 次擦写周期4.05.5v 的工作电压范围全静态工作模式:0hz33mhz三级程序加密锁1288 字节内部 ram32 个可编程 io 口线2 个 16 位定时计数器6 个中断源全双工串行 uart 通道低功耗空闲和掉电模式中断可从空闲模唤醒系统看门狗(wdt

9、)及双数据指针掉电标识和快速编程特性灵活的在系统编程(isp 字节或页写模式)图 2-2 at89s52 引脚图单片机系统开发与应用工程实习报告4 xtal1 xtal2 0.1f 0.1f at89s52 p0 p1 p2 p3 8 11.0592 mhz + r 8 8 8 gnd vcc vcc 图 2-3 微处理器电路图整个单片机系统接口分配情况如下:p0 口复用于传输 led 位数据以及值数据传输、p2 口的 p2.0-p2.1 作为六位 led 的公共端的控制信号、p1 口分配做键盘接口、p3.0 和 p3.1 分别用于串口通信的数据的接收端和发送端、p3.2 用于温度数据接口。2

10、.3 温度检测电路温度检测电路dallas 最新单线数字温度传感器 ds18b20 简介新的“一线器件”体积更小、适用电压更宽、更经济 dallas 半导体公司的数字化温度传感器 ds1820 是世界上第一片支持 “一线总线”接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。ds18b20、 ds1822 “一线总线”数字化温度传感器 同 ds1820 一样,ds18b20 也 支持“一线总线”接口,测量温度范围为 -55c+125c,在-10+85c 范围内,精度为0.5c。ds1822 的精度较差为 2c 。现场温度直接以“一线总线”

11、的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。与前一代产品不同,新的产品支持 3v5.5v 的电压范围,使系统设计更灵活、方便。而且新一代产品更便宜,体积更小。 ds18b20、 ds1822 的特性 ds18b20 可以程序设定 912 位的分辨率,精度为0.5c。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在 eeprom 中,掉电后依然保存。ds18b20 的性能是新一代产品中最好的!性能价格比也非常出色! ds1822 与 ds18b20 软件兼容,是 ds18b20 的简化版

12、本。省略了存储用户定义报警温度、分辨率参数的 eeprom,精度降低为2c,适用于对性能要求不高,成本控制严格的应用,是经济型产品。 继“一线总线”的早期产品后,ds1820 开辟了温度传感器技术的单片机系统开发与应用工程实习报告5新概念。ds18b20 和 ds1822 使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。 ds18b20 内部结构主要由四部分组成:64 位光刻 rom、温度传感器、非挥发的温度报警触发器 th 和 tl、配置寄存器。ds18b20 的管脚排列如下: 图 2-4 ds18b20 的管脚排列图dq 为数字信号输入/输出端;gnd 为电源地;v

13、dd 为外接供电电源输入端(在寄生电源接线方式时接地) 。光刻 rom 中的 64 位序列号是出厂前被光刻好的,它可以看作是该 ds18b20 的地址序列码。64 位光刻 rom 的排列是:开始 8 位(28h)是产品类型标号,接着的48 位是该 ds18b20 自身的序列号,最后 8 位是前面 56 位的循环冗余校验码(crc=x8+x5+x4+1) 。光刻 rom 的作用是使每一个 ds18b20 都各不相同,这样就可以实现一根总线上挂接多个 ds18b20 的目的。ds18b20 中的温度传感器可完成对温度的测量,以 12 位转化为例:用 16 位符号扩展的二进制补码读数形式提供,以 0

14、.0625/lsb 形式表达,其中 s 为符号位。表 2-1 12 位转化后得到的 12 位数据lsbytemsbyte232221202-12-22-32-4bit7bit6bit5bit4bit3bit2bit1bit0ssss262425sbit15 bit14 bit13 bit12 bit11 bit10 bit9bit8单片机系统开发与应用工程实习报告6 这是 12 位转化后得到的 12 位数据,存储在 18b20 的两个 8 比特的 ram 中,二进制中的前面 5 位是符号位,如果测得的温度大于 0,这 5 位为 0,只要将测到的数值乘于 0.0625 即可得到实际温度;如果温度

15、小于 0,这 5 位为 1,测到的数值需要取反加 1 再乘于 0.0625 即可得到实际温度。例如+125的数字输出为07d0h,+25.0625的数字输出为 0191h,-25.0625的数字输出为 ff6fh,-55的数字输出为 fc90h。温度检测控制电路图见图 2-5。gndvccdds18b20vccr 4.7kat89s52p3.2图 2-5 温度检测控制电路图ds1820 虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题: (1)较小的硬件开销需要相对复杂的软件进行补偿,由于 ds1820 与微处理器间采用串行数据传送,因此,在

16、对 ds1820 进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用 pl/m、c 等高级语言进行系统程序设计时,对ds1820 操作部分最好采用汇编语言实现。 (2)在 ds1820 的有关资料中均未提及单总线上所挂 ds1820 数量问题,容易使人误认为可以挂任意多个 ds1820,在实际应用中并非如此。当单总线上所挂 ds1820 超过 8 个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。 (3)连接 ds1820 的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过 50m 时,读取的测温数据将发生错误。当将总线电缆改为

17、双绞线带屏蔽电缆时,正常通讯距离可达 150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用 ds1820 进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。 单片机系统开发与应用工程实习报告7(4)在 ds1820 测温程序设计中,向 ds1820 发出温度转换命令后,程序总要等待ds1820 的返回信号,一旦某个 ds1820 接触不好或断线,当程序读该 ds1820 时,将没有返回信号,程序进入死循环。这一点在进行 ds1820 硬件连接和软件设计时也要给予一定的重视。测温电缆线建议采用屏

18、蔽 4 芯双绞线,其中一对线接地线与信号线,另一组接vcc 和地线,屏蔽层在源端单点接地。2.32.3 报警电路报警电路报警电路我们只需要用一个三极管就可以控制一个喇叭了。我们只要给这个口一个脉冲电平喇叭就会发出声音了。如图 2-6图 2-6 报警电路2.42.4 控制电路及显示电路控制电路及显示电路我们通过 2 个外部来控制温度,只要在中断口接 2 个开关接地。然后把调节后的温度显示出来。我们通过数码管了显示。led 显示器结构与原理:led 显示器由 7 条发光二极管组成显示字段,有的还带有一个小数点 dp 将 7 段发光二极管阴极连在一起,成为共阴极接法,当某个字段的阳极为高电平时,对应

19、的字段就点亮。共阳极接法是将 led 的所有阳极并接后就连到+5v 上,当某一字段的阴极为 0 时,对应的字段就点亮。静态串行显示器的结构图如 2-7 所示:单片机系统开发与应用工程实习报告8abcdefgdpv ccabcdefgdp共阴极 共阳极图 2-7 静态串行显示器的结构图点亮 led 显示器有静态和动态两种方法。所谓静态显示,就是显示某一字段时,相应的发光二极管恒定的导通或截止,这种方式,每一显示位都需要一个 8 位输出口控制,占用硬件较多,一般仅用于显示器位数较少的场合。所谓动态显示,就是一位一位地轮流点亮各位显示器。对每为显示器而言,每隔一段时间显示一次。显示位的亮度既跟导通电

20、流有关,也和点亮时间与间隔时间的比例有关。动态显示器因硬件成本较低而被采用。为了显示字符,要为 led 显示器提供显示段码,组成一个“8”字形的 7 段,再加上 1 个小数点位,共计 8 段,因此提供 led 显示器的显示段码为一个字节。 led 显示器与单片机的接线图:本设计通过单片机 p0 口并经总线驱动器 74ls245 控制 6 位数码管的段码,通过位选线 p2.0-2.1 经三极管逐位逐位去控制数码管扫描显示。由于采用动态显示,其优点是占用硬件资源少,功耗小。但必须注意:扫描周期必须控制在视觉停顿时间内,一般在 20ms 以内,否则会出现闪烁或跳动现象。如图 2-8 所示为 led

21、与单片机的接线图。单片机系统开发与应用工程实习报告9图 2-8 led 与单片机的接线图显示器有四个 led 数码管组成。输入串行数据线 din 和位移信号 clk,四个串/并移位寄存器芯片 74ls245 连。每片的并行输出作为 led 数码管的码段。采用 74ls245 是为了放大电压,在这边 74ls245 是这为放大电路。74ls245 的电路如图 2-9图 2-9 74ls245 电路示意图3 软件设计软件设计总体设计:我们的程序是控温,所以我们应该不断测温并控制。如图 3-1单片机系统开发与应用工程实习报告10图 3-1 程序总体设计流程图3.1 中断控制程序中断控制程序我们先来设

22、计控温的程序,因为它比较简单:程序如下:;外部中断 1key_1:clr ea ;关闭外部中断incdis1 ;把个位加一mova,dis1 cjnea,#10,key ;判断个位是否为十movdis1,#0 ;是十把它置一;显示并打开中断key:mova,dis2 movb,#10mulabadda,dis1 ;求出调整后的温度movtemper_config,a ;保存调整后的温度lcall display ;显示调整后的温度setb ex0 setb ex1setb ea 打开中断单片机系统开发与应用工程实习报告11reti 返回;外部中断 2key_2:clr eainc dis2mo

23、v a,dis2cjne a,#10,keymov dis2,#0ajmp key其中 dis1,dis2 是定义的变量,用来保存数码管的显示数字。temper_config也是定义变量用来保存设定温度值。3.2 显示程序显示程序根据数码管的显示特点,我们知道要在现实一位后延时一会在显示一位。下面是数码管显示代码:;显示display:mova,dis2movdptr,#tablemovc a,a+dptr movp0,asetb p2.1dsdely1:movr6,#11djnz r6,$djnz r7,dsdely1mova,dis1movdptr,#tablemovc a,a+dptrm

24、ovp0,a单片机系统开发与应用工程实习报告12setb p2.0movr7,#25dsdely2:movr6,#11djnz r6,$djnz r7,dsdely2ret3.3 温度测量温度测量这里需要对 18b20 要有一个很清楚的了解。根据 ds18b20 的通讯协议,主机控制 ds18b20 完成温度转换必须经过三个步骤:每一次读写之前都要对 ds18b20 进行复位,复位成功后发送一条 rom 指令,最后发送 ram 指令,这样才能对 ds18b20 进行预定的操作。当主机收到 ds18b20 的响应信号后,便可以发出操作命令,这些命令可以分为rom 命令和 ram 命令两种。cpu

25、 的操作过程如图 3-2 所示。由于 ds18b20 与单片机间采用串行数据传送,因此,在对 ds18b20 进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。操作时序主要有初始化时序、读时序和写 0 时序和写 1 时序四种,如图 3-3 所示。在温度测量仪表中,对 ds18b20 的操作主要是复位、读数据和写数据三种,而两种操作又都是按位进行的,所以首先应该按照 ds18b20 的时序要求,编写读、写时间片的程序,其流程图如图 3-4 所示。单片机系统开发与应用工程实习报告13图 3-2 ds18b20 操作过程图 3-3 ds18b20 操作时序单片机系统开发与应用工程实习报

26、告14图 3-4 ds18b20 操作程序流程图根据上面的知识我们可以得到 18b20 的操作的 3 个函数;初始化 18b20init_1820:setbdqnopclrdqmovr0,#06bhtsr1:djnzr0,tsr1; 延时setbdqmovr0,#25htsr2:jnbdq,tsr3单片机系统开发与应用工程实习报告15djnzr0,tsr2ljmptsr4; 延时tsr3:setbflag1; 置标志位,表示 ds1820 存在ljmptsr5tsr4:clrflag1; 清标志位,表示 ds1820 不存在ljmptsr7tsr5:movr0,#06bhtsr6:djnzr0

27、,tsr6; 延时tsr7:setbdqret;把 a 的值写入 18b20write_1820:movr2,#8clrcwr1:clrdqmovr3,#6djnzr3,$rrcamovdq,cmovr3,#23djnzr3,$setbdqnop单片机系统开发与应用工程实习报告16djnzr2,wr1setbdqret;读温度read_18200:mov r4,#2; 将温度高位和低位从 ds18b20 中读出mov r1,#77h; 低位存入 77h(temper_l),高位存入 76h(temper_h)re00:mov r2,#8re01:clr csetb dqnopnopclr dq

28、nopnopnopsetb dqmov r3,#7djnz r3,$mov c,dqmov r3,#23djnz r3,$rrc adjnz r2,re01mov r1,adec r1djnz r4,re00ret单片机系统开发与应用工程实习报告17应为读出的温度的格式是 12 位,temper_l 位前四位是整数部分后四位是小数,temlper_h 只有低四位是有效的。所以我们要有一个处理温度的函数得到整数的温度。;读出的温度转换成 1 个字节放入 temper_numtemper_cov:mov a,#0f0hanl a,temper_l; 舍去温度低位中小数点后的四位温度数值swap a

29、mov temper_num,amov a,temper_ljnb acc.3,temper_cov1; 四舍五入去温度值inc temper_numtemper_cov1:mov a,temper_hanl a,#07hswap aorl a,temper_nummov temper_num,a; 保存变换后的温度数据ret最后我们写出读温度的过程:;读温度到 temper_l 和 temper_hread_temp:mov a,#0cchlcall write_1820mov a,#0behlcall write_1820lcall read_18200lcall init_1820mov

30、 a,#0cchlcall write_1820mov a,#044h单片机系统开发与应用工程实习报告18lcall write_1820ret3.43.4 温度处理温度处理读出温度后我们要跟据温度做相应的事,根据题目要求我们可以画出对于的流程图:温度70报警低于设定值加热overyy图 3-5 温度处理流程图代码:;温度处理temper_work:lcall temper_covmov a,temper_numclr csubb a,#70jnctemp_overmova,temper_numcjne a,temper_config,twrettw:jc open_ha单片机系统开发与应用工

31、程实习报告19setb haret;温度超过 70 响喇叭,并停止加热temp_over:setb hamovr6,#128bell:clrwamovr7,#100djnz r7,$setb wadjnz r6,bellret;加热open_ha:clr haret单片机系统开发与应用工程实习报告20总 结我的课程设计是单片机的温度控制。当我接到选题通知后,开始着手论文的准备工作。开始的时候,我不知道要如何写起,要往哪方面着手。这个时候我的老师给我很大的帮助,给我指明了设计的思路。通过老师的指导与帮助,我就开始了第一步搜集资料的重要工作。从搜集文献到硬件电路的完成,到软件程序的实现,到论文的完成。每一次的进步都让我喜悦,每一次导师的指点都让我收获良多,每一次遇到困难都让我更我得学会挑战自我。通过这次的设计,我实现了温度控制的硬件连接,了解了芯片的选用,模块的建立,都会遇到这样那样的问题,而每一次的冲破阻碍就会感到知识得到了升华。硬件设计我分为了以下模块:显示模块、报警模块、温度控制模块和温度传感器模块。然后设计软件,编写程序调试硬件电路各个模块的功能。最后对

温馨提示

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

评论

0/150

提交评论