电气自动化毕业论文之欧阳道创编.docx
- 文档编号:29574862
- 上传时间:2023-07-24
- 格式:DOCX
- 页数:14
- 大小:31.96KB
电气自动化毕业论文之欧阳道创编.docx
《电气自动化毕业论文之欧阳道创编.docx》由会员分享,可在线阅读,更多相关《电气自动化毕业论文之欧阳道创编.docx(14页珍藏版)》请在冰豆网上搜索。
电气自动化毕业论文之欧阳道创编
题目:
DS18B20温度测量软件的设计
时间:
2021.03.06
创作:
欧阳道
专业:
班级:
学生姓名:
指导教师:
答辩日期:
摘要
近年来,随着大规模集成电路的发展,单片机继续朝快速、高性能方向发展,从4位、8位单片机发展到16位、32位单片机。
单片机主要用于控制,它的应用领域遍及各行各业,大到航天飞机,小至日常生活中的冰箱、彩电,单片机都可以大显其能。
单片机技术与传感与测量技术、信号与系统分析技术、电路设计技术、可编程逻辑应用技术、微机接口技术、数据库技术以及数据结构、计算机操作系统、汇编语言程序设计、高级语言程序设计、软件工程、数据网络通信、数字信号处理、自动控制、误差分析、仪器仪表结构设计和制造工艺等的结合,使得单片机的应用非常广泛。
同时,单片机具有较强的管理功能。
采用单片机对整个测量电路进行管理和控制,使得整个系统智能化、功耗低、使用电子元件较少、内部配线少、成本低,制造、安装、调试及维修方便。
本设计是基于单片机ATMAGE16设计的实时温度采集仪,通过本次设计,我成功的实现了利用单片机对温度的采集和测量。
目录1绪论...............................................3
1.1课题背景...........................................31.2设计目的及系统功能..............................42ATMAGE16特性...................................52.1ATMAGE16产品特性...............................52.2引脚配置........................................63DS18B20的设计.....................................93.1总体通信流程及通信协议.........................93.2DS18B20温度测量软件的设计......................113.3多机通信软件的设计.............................113.4DS18B20工作时序问题...........................134电路的设计......................................144.1温度测量电路的设计............................144.2串口通信电路的设计............................155分布式温度采集系统设计..........................186ICCAVR制作环境及介绍...........................196.1ICCAVR介绍...................................196.2ICCAVR向导....................................226.3ICCAVR的IDE环境............................22结论.............................................24参考文献............................................25
1绪论
自从1976年Intel公司推出第一批单片机以来,80年代单片机技术进入快速发展时期,近年来,随着大规模集成电路的发展,单片机继续朝快速、高性能方向发展,从4位、8位单片机发展到16位、32位单片机。
单片机主要用于控制,它的应用领域遍及各行各业,大到航天飞机,小至日常生活中的冰箱、彩电,单片机都可以大显其能。
单片机在国内的三大领域中应用得十分广泛:
第一是家用电器业,例如全自动洗衣机、智能玩具;第二是通讯业,包括电话、手机和BP机等等;第三是仪器仪表和计算机外设制造,例如软盘、硬盘、收银机、电表。
除了上述传统领域外,汽车、电子工业在国外也是单片机应用十分广泛的一个领域。
它成本低、集成度高、功耗低、控制功能多能灵活的组装成各种智能控制装置,由它构成的智能仪表解决了长期以来测量仪器中的误差的修正、线性处理等问题。
单片机将微处理器、存储器、定时/计数器、I/O接口电路等集成在一个芯片上的大规模集成电路,本身即是一个小型化的微机系统。
单片机技术与传感与测量技术、信号与系统分析技术、电路设计技术、可编程逻辑应用技术、微机接口技术、数据库技术以及数据结构、计算机操作系统、汇编语言程序设计、高级语言程序设计、软件工程、数据网络通信、数字信号处理、自动控制、误差分析、仪器仪表结构设计和制造工艺等的结合,使得单片机的应用非常广泛。
同时,单片机具有较强的管理功能。
采用单片机对整个测量电路进行管理和控制,使得整个系统智能化、功耗低、使用电子元件较少、内部配线少、成本低,制造、安装、调试及维修方便。
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
更不用说自动控制领域的机器人、智能仪表、医疗器械了。
1.1课题背景分布式温度采集系统广泛应用在使用了中央空调的大型商场、厂房、办公大楼等大型建筑内。
本课题主要用温度传感器对环境温度实施实时监测,各结点控制单元可将有关信息上传给计算机,本课题研究主要解决的问题为分布式控制结构设计、多单片机串行通信、温度的采集与处理。
本设计是基于单片机ATMAGE16设计的实时温度采集仪,采用DS18B20可以采集多路温度数据(本设计只用了2路),同时实时显示所采集到的温度值。
在传统的温度测量系统设计中,往往采用模拟技术进行设计,这样就不可避免地遇到诸如引线误差补偿、多点测量中的切换误差和信号调理电路的误差等问题;而其中某一环节处理不当,就可能造成整个系统性能的下降。
随着现代科学技术的飞速发展,特别是大规模集成电路设计技术的发展,微型化、集成化、数字化正成为传感器发展的一个重要方向。
美国Dallas半导体公司推出的数字温度传感器DSl8B20,具有独特的单总线接口,仅需要占用一个通用I/O端口即可完成与微处理器的通信;在-10~+85℃温度范围内具有±O.01℃精度;用户可编程设定9~12位的分辨率。
以上特性使得DSl8B20非常适用于构建高精度、多点温度测量系统。
1.2设计目的及系统功能本设计的目的是以单片机为核心设计出一个分布式温度采集系统。
在传统测量系统中,传感器与计算机接口的连接是通过若干条导线连接。
当传感器数量较多时,尤其是信号线的长距离传输时,相互容易产生干扰。
一个室内多点温度测量中,系统的接线会非常多,导线往往不易铺设,使得测量工作非常困难。
采用总线结构数字式传感器,配合单片机及PC机串口进行长距离数据通信,则可以很容易解决这个问题,该系统最多可以检测256路温度信号,在室内多点温度测量控制中能达到很好的效果。
通过本课题设计,综合运用单片机及接口技术、微机原理、通信协议,锻炼动手操作能力,综合运用能力,学习论文的写作方法和步骤。
设计的温度控制系统有以下功能及特点:
(a)实现在一条数据总线上接多个DS18B20器件;(b)测温范围0℃~99℃;(c)温度显示:
采用2个4位数码管,显示采样温度值;并在电脑上一同显示;(d)精度±0.01℃。
2ATMAGE16特性本章介绍了ATMAGE16的产品特性和ATmega16的结构。
由于其先进的指令集以及单时钟周期指令执行时间,ATmega16的数据吞吐率高达1MIPSMHz,从而可以缓减系统在功耗和处理速度之间的矛盾。
2.1ATMAGE16产品特性
1、高性能、低功耗的8位AVR微处理器2、先进的RISC结构(a)131条指令(b)32个8位通用工作寄存器(c)全静态工作(d)工作于16MHz时性能高达16MIPS(e)只需两个时钟周期的硬件乘法器(f)大多数指令执行时间为单个时钟周期3、非易失性程序和数据存储器(a)16K字节的系统内可编程Flash擦写寿命:
10,000次(b)具有独立锁定位的可选Boot代码区通过片上Boot程序实现系统内编程真正的同时读写操作(c)512字节的EEPROM擦写寿命:
100,000次(d)1K字节的片内SRAM(e)可以对锁定位进行编程以实现用户程序的加密4、JTAG接口(与IEEE1149.1标准兼容)(a)符合JTAG标准的边界扫描功能(b)支持扩展的片内调试功能(c)通过JTAG接口实现对Flash、EEPROM、熔丝位和锁定位的编程5、外设特点(a)两个具有独立预分频器和比较器功能的8位定时器/计数(b)一个具有预分频器、比较功能和捕捉功能的16位定时器/计数(c)具有独立振荡器的实时计数器RTC(d)四通道PWM(e)8路10位ADC8个单端通道TQFP封装的7个差分通道2个具有可编程增益(1x,10x,或200x)的差分通道(f)面向字节的两线接口(g)两个可编程的串行USART(h)可工作于主机/从机模式SPI串行接口(i)具有独立片内振荡器的可编程看门狗定时器(j)片内模拟比较器6、特殊的处理器特点(a)上电复位以及可编程的掉电检测(b)片内经过标定的RC振荡器(c)片内/片外中断(d)6种睡眠模式:
空ADC噪声抑制模式、省电模式、掉电模式、Standby、式以扩展的Standby模式7、I/O和封装(a)32个可编程的I/O口(b)40引脚PDIP封装,44引脚TQFP封装,与44引脚MLF封装8、工作电压:
(a)ATmega16L:
2.7-5.5V(b)ATmega16:
4.5-5.5V9、速度等级(a)0-8MHzATmega16L(b)0-16MHzATmega1610、ATmega16L在1MHz,3V,25C时的功耗(a)正常模式:
1.1mA(b)空:
0.35mA(c)掉电模式:
<1μA2.2引脚配置ATmega16是基于增强的AVRRISC结构的低功耗8位CMOS微控制器。
由于其先进的指令集以及单时钟周期指令执行时间,ATmega16的数据吞吐率高达1MIPSMHz,从而可以缓减系统在功耗和处理速度之间的矛盾。
ATMAGE16引脚分布如图2.1所示。
AVR内核具有丰富的指令集和32个通用工作寄存器。
所有的寄存器都直接与算逻单元(ALU)相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。
这种结构大大提高了代码效率,并且具有比普通的CISC微控制器最高至10倍的数据吞吐率。
ATmega16有如下特点16K字节的系统内可编程Flash(具有同时读写的能力,即RWW),图2.1ATMAGE16引脚分布AVR内核具有丰富的指令集和32个通用工作寄存器。
所有的寄存器都直接与算逻单元(ALU)相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。
这种结构大大提高了代码效率,并且具有比普通的CISC微控制器最高至10倍的数据吞吐率。
ATmega16有如下特点16K字节的系统内可编程Flash(具有同时读写的能力,即RWW),512字节EEPROM,1K字节SRAM,32个通用I/O口线,32个通用工作寄存器,用于边界扫描的JTAG接口,支持片内调试与编程,三个具有比较模式的灵活的定时器/计数(T/C),片内/外中断,可编程USART,有起始条件检测器的通用串行接口,8路10位具有可选差分输入级可编程增益(TQFP封装)的ADC,具有片内振荡器的可编程看门狗定时器,一个SPI串行端口,以及六个可以通过软件进行选择的省电模式。
工作于空闲模式时CPU停止工作,而USART、两线接口、A/D转换器、SRAM、T/C、SPI端口以及中断系统继续工作;掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止工作;在省电模式下,异步定时器继续运行,允许用户保持一个时间基准,而其余功能模块处于休眠状态;ADC噪声抑制模式时终止CPU和除了异步定时器与ADC以外所有I/O模块的工作,以降低ADC转换时的开关噪声;Standby模式下只有晶体或谐振振荡器运行,其余功能模块处于休眠状态,使得器件只消耗极少的电流,同时具有快速启动能力;扩展Standby模式下则允许振荡器和异步定时器继续工作。
本芯片是以Atmel高密度非易失性存储器技术生产的。
片内ISPFlash允许程序存储器通过ISP串行接口,或者通用编程器进行编程,也可以通过运行于AVR内核之中的引导程序进行编程。
引导程序可以使用任意接口将应用程序下载到应用Flash存储区(ApplicationFlashMemory)。
在更新应用Flash存储区时引导Flash区(BootFlashMemory)的程序继续运行,实现了RWW操作。
通过8位RISCCPU与系统内可编程的Flash集成在一个芯片内,ATmega16成为一个功能强大的单片机,为许多嵌入式控制应用提供了灵活而低成本的解决方案。
3DS18B20的设计本章介绍了系统软件设计,并具体介绍了实现和调试的方法,以及分布式温度采集系统的通信流程和DS18B20温度测量软件的设计思路、DS18B20工作的时序问题。
3.1总体通信流程及通信协议
总体通信流程体现在PC机,单片机主机及各从机的通信,信号接受及发送,这个设计中,通信协议是一个非常重要也很复杂的部分,在由PC机与单片机组成的系统中,常要涉及通信问题,如果没有统一的通信协议,PC机与单片机之间的信息传递就无法识别。
通信协议是指通信各方事前约定规则,我们可以简单地理解为各计算机之间进行相互会话所使用的共同语言.PC机与单片机在进行通信时,必须使用的通信协议。
首先,在设计中自定义几个数据通信协议,如下问提到的“a”、“b”、“c”、“d”、“g”、“h”。
这些协议一旦定义,在后面的执行过程中就代表了固定的含义,不再改变,PC机、单片机、从机都靠识别这个协议来执行程序,发送一个字节的数据,接受几个字节的数据,所有的数据协议全都建立在这2个操作方法上。
本设计中自定义“a”为PC机与单片机主机间的数据协议,意思为要求主机发送一号从机的温度给PC机;自定义“b”为PC机与单片机主机间的数据协议,意思为要求主机发送二号从机的温度给PC机;自定义“c”为从机与主机间的数据协议,它代表从机向主机发送完四位当前采集的温度,这里一号从机和二号从机采集的温度,都定义为“c”;自定义“d”为PC机与单片机主机之间的数据协议,意思为开始和完成命令的信号;自定义“g”为一号从机和单片机主机之间的数据协议,意思为主机表示要采集一号从机的温度数据,一号从机要求单片机主机准备接收;自定义“h”为二号从机和单片机主机之间的数据协议,意思为主机表示要采集二号从机的温度数据,二号从机要求单片机主机准备接收。
具体流程如下:
1、PC机向单片机主机发送“d”:
这步是流程的开始,PC机向单片机主机发送数据协议,要求主机把接收的温度发送给PC机显示;2、单片机主机向一号从机发送“g”:
单片机主机在接收到PC机发送的“d”信号后,会立即向一号从机发送“g”,要求一号从机采集温度并且将温度发回单片机主机;3、一号从机回发“g”:
一号从机接收到单片机主机的命令后,会立即向单片机主机回发信号,要求单片机主机做好接收准备;4、向主机发送四位当前采集的温度,并回发发送完成标记“c”;一号从机回发信号后,向主机发送四位采集的温度,这个温度在前文已提到标记为“c”;5、主机发送“h”给2号从机:
主机在接收到一号从机发来的“c”命令后,会立刻发送“h”信号给二号从机,表示要采集二号从机的数据;6、2号从机回发“h”:
二号从机接收到单片机主机的命令后,会立即向单片机主机回发信号,要求单片机主机做好接收准备;7、向主机发送四位当前采集的温度,并回发发送完成标记“c”:
二号从机向单片机主机回发完信号后,向主机发送四位当前采集的温度,这个温度标记为“c”;8、主机发送“d”给PC机:
单片机主机在接收到二号从机发送来的信号后,立刻发送信号给PC机,表示完成PC机的前一指令;9、PC发送“a”给主机:
PC机在接收到单片机主机发送的信号后,发送新一个指令给单片机主机,要求单片机主机发送一号从机采集的温度数据;10、主机将一号从机温度数据发送给PC机:
单片机主机接收到PC机的命令后将一号从机发送过来的四位当前温度数据转换成ASCII码后,发送给PC机,因为PC机只能读取ASCII码;11、PC机发送“b”给主机:
PC机接收到单片机主机发送的即时温度后会立即发送另一指令给单片机主机,要求单片机主机发送二号从机采集的温度数据;12、主机将二号从机温度数据发送给PC机,发送完成后,返回
(1):
单片机主机接收到PC机的命令后将二号从机发送过来的四位当前温度数据同样也转换成ASCII码后,发送给PC机。
此时一个完整过程结束,将返回
(1)开始另一轮采集。
3.2DS18B20温度测量软件的设计由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。
系统对DS18B20的各种操作必须按协议进行。
操作协议为:
初始化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。
主机控制DS18B20完成温度转换的程序必须经过3个步骤:
初始化、ROM操作指令、存储器操作指令。
假设单片机系统所用的晶振频率为12MHz,根据DS18B20的初始化时序、写时序和读时序,分别编写3个子程序:
INIT为初始化子程序,WRITE为写(命令或数据)子程序,READ为读数据子程序,所有的数据读写均由最低位开始。
主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量温度值,温度测量每1s进行一次,流程图如图3.1所示。
读出温度子程序的主要功能是读出RAM中的9个字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写,其程序流程图如图3.2所示。
从DS18B20读取出的二进制值必须先转换成十进制值,才能用于字符的显示。
因为DS18B20的转换精度为9~12位可选,为了提高精度采用12位。
在采用12位转换精度时,温度寄存器里的值是以0.0625为步进的,即温度值为温度寄存器里的二进制值乘以0.0625,就是实际的十进制温度值。
3.3多机通信软件的设计
ATMAGE16单片机有串行发送缓冲器/接收缓冲器(SBUF)、串行口控制寄存器(SCON)、特殊功能寄存器(PCON)。
通过设置SCON可以有四种工作方式,其中工作方式2、3适用于多机通信。
在串行通信前,通过程序预先将各从机串行口设置为方式2或方式3,并使SM2和REN(允许串行接收控制位)为1,允许串行口中断。
主机与从机通信时,将SM2置0,准备接收数据,否则维持SM2为1,这样在主机发送数据时(此时主机发送数据中第9位为0),只有地址相符的从机可接收数据,图3.1DS18B20温度主程序流程图
3.2读出温度子程序流程图
其余从机对数据信息不予理睬,从而可以实现多机通信集散型控制系统将各控制单元分散到现场各控制点。
从机主程序和串行口中断服务程序如图3.3所示。
PC机与单片机的串口通信中,ATMAGE16单片机的Pl.3和Pl.4口分别模拟串行通信的发送和接收端,其接口程序主要由发送子程序和接收子程序组成。
通信速率9600bps,帧格式为N.8.l。
发送时,先发送一个起始位(低电平),接着按低位在先的顺序发送8位数据,最后发送停止位。
接收时,先判断P1.4接收端口是否有起始低电平出现,如有则按低位在先的顺序接收8位数,最后判断P1.4口是否有停止高电平出现,如有则完成一个数据接收,否则继续等待。
其中软件编写要严格按照异步通信的时序进行。
图3.3从机主程序和串行口中断服务程序3.4DS18B20工作时序问题DS18B20的一线工作协议流程是:
初始化→ROM操作指令→存储器操作指令→数据传输。
其工作时序包括初始化时序、写时序和读时序。
主机即单片机首先发480us---960us的低电平,进行复位,然后释放总线,之后总线被外部上拉电阻电阻抬高,大约等待15—60us之后,DS18B20发出60到240us的低电平信号,以示存在,至此初始化结束。
写“0“的时候,首先单片机发复位信号,然后发“0”于是低电平持续60us就完成了写“0”写“1”的时候首先单片机发复位信号,持续时间大于1us小于15us然后发“1”持续50us以上即可。
读时序也是主机先发低电平,然后在15us内检测连接DS18B20的数据线的引脚,从而读得相应值。
4电路的设计
本章分析了分布式温度采集系统的各主要功能模块的设计与实现,具体包括温度测量电路模块和串口通信电路模块。
4.1温度测量电路的设计
温度测量采用DS18B20数字式温度传感器。
由DS18B20构成的智能温度测量装置由三部分组成:
DS18B20温度传感器、ATMAGE16、显示模块。
产品的主要技术指标:
①测量范围:
-55℃~+125℃,②测量精度:
0.5℃,③反应时间≤500ms。
为了达到更高的精度,则在对DSl8B20测温原理进行详细分析的基础上,采取直接读取DSl8B20内部暂存寄存器的方法,将DSl8B20的测温分辨率提高到0.01℃~0.1℃,DSl8B20内部暂存寄存器的分布如表4-1所列,其中第7字节存放的是当温度寄存器停止增值时计数器l的计数剩余值,第8字节存放的是每度所对应的计数值。
这样,就可以通过下面的方法获得高分辨率的温度测量结果。
表4-1DS18B20内部暂存器序号寄存器名称作用序号寄存器名称0温度低字节以16位补码形式存放4、5保存字节1、21温度高字节6计数器余值2TH/用户字节1存放温度上限7计数器/℃3HL/用户字节2存放温度下限8CRC基于DS18B20的温度测量装置电路图如图4.1所示:
图4.1温度测量电路温度传感器DS18B20将被测环境温度转化成带符号的数字信号(以十六位补码形式,占两个字节),传感器可置于离装置150米以内的任何地方,输出脚I/O直接与单片机的P1.1相连,R1为上拉电阻,传感器采用外部电源供电。
ATMAGE16是整个装置的控制核心,ATMAGE16内带1K字节的FlashROM,用户程序存放在这里。
显示器模块由四位一体的共阳数码管和4个9012组成。
系统程序分传感器控制程序和显示器程序两部分,传感器控制程序是按照DS18B20的通信协议编制。
系统的工作是在程序控制下,完成对传感器的读写和对温度的显示。
4.2串口通信电路的设计
为了增加单片机多机通信的距离,该部分电路采用RS232标准接口,通信距离可以达到1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电气 自动化 毕业论文 欧阳 创编
![提示](https://static.bdocx.com/images/bang_tan.gif)