智能仪表原理与设计综合训练报告_第1页
智能仪表原理与设计综合训练报告_第2页
智能仪表原理与设计综合训练报告_第3页
智能仪表原理与设计综合训练报告_第4页
智能仪表原理与设计综合训练报告_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

智能仪表原理与设计综合训练报告题目:温度采集仪的设计班级:姓名:学号:指导教师:成绩:2015年11目录TOC\o"1-3"\h\u24299前言 131085第1章课程设计任务和要求 2215451.1设计任务 2244741.2技术指标 223306第2章系统设计方案 3320972.1温度采集仪总体设计方案 3201192.2各模块设计方案 34026第3章系统硬件电路设计 5219333.1单片机STC89C52简介和最小系统 5124593.1.1STC89C52单片机简介 5323483.1.2STC89C52单片机最小系统 524933.2数字温度传感模块设计 763813.2.1数字温度传感器DS18B20简介 7274733.3显示模块设计 9308443.3.1LCD1602液晶显示器的工作原理 9305673.3.2LCD1602液晶显示器的设计 10115333.4报警模块设计 11173673.4.1蜂鸣器简介 11111283.5温度上下限值电路设计 12140883.6串口输出电路的设计 13147673.6.1波特率的计算 13152723.6.2MAX232芯片实现串行通信的电平转换 1327168第4章系统软件电路设计 1528134.1LCD液晶显示软件设计 1518634.2主控模块软件设计 1727444.3温度采集软件设计 1963134.4报警电路软件设计 2425209第5章系统软硬件调试结果分析 26135195.1软硬件联调结果如表1-3所示 26200725.2VB界面显示如图2.7所示 26122875.3软硬件联调结果分析 278070参考文献 2830141致谢 298106附录A硬件原理图 3032326附录B实物图 3227698附录C元器件清单 34前言在日常生活及工农业生产中经常要用到温度的检测及控制,目前使用最广泛的温度测量系统一般由温度测量元件、温度变送器和温度指示仪表三个局部组成。这种结构存在两个方面的缺点:一是三个局部相互别离,不便于随身携带和进行临时性的测量;二是整个系统不易取得较高的性能价格比。传统的测温元件有热电偶和热电阻。而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,需要比拟多的外部硬件支持,硬件电路复杂,软件调试复杂,制作本钱高。本文提出的一种由单片集成电路构成的温度传感器的种类多,测量的精度高,响应时间短,使用方便无需变换电路等。该测温仪本身就是一个完整的温度测量系统,它不仅可以将代表被测温度值的电信号转换成温度值并显示出来,而且还将处理后的温度数值转换成电流或电压信号输出,以供计算机或其他仪表使用,即完成温度变送器的功能。近年来,美国DALLAS公司生产DSI8B20为代表的新型单总线数字式温度传感器以其突出优点广泛使用于仓储管理、工农业生产制造、气象观测、科学研究以及日常生活中。DSI8B20集温度测量和A/D转换于一体,直接输出数字量,传输距离远,可以很方便地实现多点测量。温度采集仪增加PC机与单片机之间的通信,可以对实时温度进行远程监测与存储,此仪器可用于蔬菜大棚的监控或者工厂中的锅炉温度的采集等场合应用广泛。第1章课程设计任务和要求1.1设计任务本次课程设计要求设计出智能化温度测量仪表,要求该测量仪表能够通过温度传感器采集温度,并将温度传到单片机进行处理,并通过液晶显示,同时以单片机为核心的主控单元通过对按键的操作,设定上下限报警温度与实测温度进行比拟,并判断是否报警,且与PC机通信将监测的温度发送到PC机。温度监测界面可用VB进行编程设计实现上位机人机界面的设计,要求上位机发送的命令下位机能及时的给与响应,并且上位机能够实时准确的显示下位机所上传数据以及电机设备的运行状态;使用汇编语言完成下位机程序驱动,并且要尽量保证系统的稳定性和可靠性以及使用性。1.2技术指标℃~+125℃温度进行实时采集并能〔通过液晶〕显示;2.可以通过按键人工设定上下限报警温度并判断是否报警〔蜂鸣器发出响声〕;3.实现下位机与PC机之间的串行通信〔在PC机上用VB所编写界面显示实测温度值〕。第2章系统设计方案2.1温度采集仪总体设计方案单片机控制电路中使用STC89C52。温度采集电路中采用数字温度传感器DS18B20〔该传感器具有测温范围广、测温准确的优点,其精确度可到达0.1摄氏度,可测量的温度范围从-55~125摄氏度〕。将采集到的温度数据送到单片机,通过单片机控制的温度报警模块判断是否报警,最终将实测温度发送到液晶显示器LCD1602显示,同时很方便的完成单片机与PC机之间的串行通信〔利用MAX232芯片实现电平转换功能,在VB程序编写的界面上显示监测温度〕。温度采集仪设计如图1.1所示。图1.1图温度采集仪设计2.2各模块设计方案本设计是一个基于单片机的温度采集仪,利用单片机的功能强大且体积小、价格低、抗干扰性好等特点,根据需要完成的功能需要在本设计中实现温度的采集、显示、上下限报警温度值设定、报警和与PC机的串行通信等功能。本设计中主要分硬件与软件的设计,硬件包括:主控模块、温度传感模块、显示模块、按键模块、报警模块、通信模块等,软件包括:温度采集、按键与报警、显示、PC机上的温度界面等。主控模块:可以选用STC89C系列的单片机,这里采用的STC89C52单片机,价格廉价,使用方便,STC89C52的片内RAM已能满足存放要求。温度传感模块:由于本设计中单片机除了要完成数据采集、处理、控制和显示任务外,还要完成按键值的采集、处理。如果用常规的数字加模拟电路实现就会相对困难一些。本设计选用的数字式集成温度传感器DS18B20。DS18B20是DALLAS半导体公司〔现属MAXIM公司〕设计生产的单总线数字温度传感器,其测量温度范围为-55℃~+125℃,在-10~+85℃时精度为±℃。这个传感器最大的特点就是能够从一根总线直接输出二进制的温度信号,不需要A/D转换和信号放大。这样的选择使得整个电路的硬件设计更为简化,节省了单片机的资源。显示模块:可以使用数码管或者液晶显示,两者皆可。在本设计中,主要使用液晶,焊接简单且程序调用方便。按键模块:本设计采用三个按键分别用来设定上限、下限温度。报警模块:就是当设定的温度在门限温度之外,就会报警,蜂鸣器发出响声。通信模块:RS-232电平与单片机TTL电平之间的转换方式,可以使用分立元件焊接而成,也可以直接使用集成芯片MAX232芯片。从电路使用方便的角度来看直接采用集成芯片,适应性更强,加之其价格适中,硬件接口简单。第3章系统硬件电路设计3.1单片机STC89C52简介和最小系统STC89C52单片机简介本设计采用的是STC公司的STC89C52单片机。其特性如下:工作频率:0~80MHz;3个标准16位定时/计数器;可编程I/O口线32条,中断源5个;8K字节快闪ROM,128字节RAM;工作电压:3~5V;40引脚,DIP封装;STC89C52引脚图如图1.2所示。图1.2STC89C52引脚图STC89C52单片机最小系统最小系统包括单片机的电源、时钟电路和复位电路。1.时钟电路STC89C52单片允许的时钟频率的典型值12MHz或11.0592MHz,也可以是6MHz。本设计要使用串行通信,所以应采用11.0592MHz。接到晶振两端的瓷片电容作用是使振荡器起振和对f微调补偿,典型值为30PF,本设计中选用30PF瓷片电容。当单片机加电以后延迟约10ms的时间振荡器产生时钟,不受软件控制〔XTAL2输出幅度为3V左右的正弦波〕。单片机时钟电路如图1.3所示。图1.3单片机时钟电路2.复位电路计算机在启动运行时都需要复位,使中央处理器CPU和系统中的其它部件都处于一个确定的初始状态,并从这个状态开始工作。单片机的复位引脚是RST,当振荡器起振后,该引脚上出现2个周期的高电平,是器件复位,只要RST保持高电平,单片机保持复位状态。单片机复位方式有二种:上电复位〔如图1.4所示〕、人工复位〔如图1.5所示〕。本设计中两种方法都采用。图1.4上电复位电路图1.5上电复位和开关复位注:RST与Vss之间的那个电阻在NMOS型单片机中需要接,但是在CMOS型单片机中不接,本设计电路中就可以不接。3.2数字温度传感模块设计数字温度传感器DS18B20简介美国Dallas半导体公司的数字化温度传感器DS1820是世界上第一片支持“一线总线”接口的温度传感器,在其内部使用了在板〔ON-B0ARD〕专利技术。全部传感元件及转换电路集成在形如一只三极管的集成电路内。1.DS18B20的主要特性适应电压范围更宽,电压范围:3.0V~5.5V,在寄生电源方式下可由数据线供电。独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。温度范围-55℃~+125℃,在-10~+85℃时精度为±℃。℃℃℃℃,可实现高精度测温。在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快。测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。DS18B20的外形、内部结构及引脚定义DS18B20的外形及管脚排列如图1.6所示。a.DQ为数字信号输入/输出端;b.GND为地线;c.VDD为外界供电电源输入端〔在寄生电源接线方式时接地〕。图1.6DS18B20的外形及管脚排列DS18B20的内部结构图如图1.7所示。图1.7DS18B20的内部结构图DS18B20与单片机连接电路DS18B20与单片机连接电路如图1.8所示。图1.8DS18B20与单片机连接电路3.3显示模块设计显示模块局部主要采用LCD1602液晶显示。主要实现的功能是通过单片机读取温度传感器转换的温度值,再将其所读取的十六进制数转换成十制数,通过静态显示,最后在LCD显示出温度数值。本设计液晶显示器选用LCD1602,将单片机输出的数据进行动态显示。将采集的温度以直观化的形象显示,与能显示作报警温度的上下范围,这样方便与实际温度进行比拟,实用价值更高。LCD1602液晶显示器的工作原理字符型液晶显示模块是专门用于显示字母、数字、符号等的点阵式的LCD,目前常用的是16*1、16*2,20*2和40*2行等。本次设计中采用的1602字符型液晶显示器,一行是用来实测温度,另一行是用来显示报警温度的上下限。1.1602的引脚功能1602采用标准14脚〔无背光〕或16脚〔带背光〕接口,各引脚功能如表1-1所示。表1-11602引脚功能介绍编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极VL为液晶显示器比照度调整端,接正电源时比照度最弱,接地时比照度最强。假设比照度过高会产生“鬼影”,使用时可以通过一只10K电阻来调整比照度。RS为存放器选择端,RS为高电平时选择数据存放器,为低电平时选择指令存放器。R/W为读写信号线,为高电平时进行读操作,为低电平时为写操作。当R/W和RS同为低电平时可以写人指令或者显示地址;当RS为低电平、R/W为高电平时,可以读忙信号。当RS为高电平、R/W为低电平时,可以读写数据。E为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。D0~D7为8位双向数据线。LCD1602液晶显示器的设计本设计中RS,R/W,E/N分别接单片机的P2.5,P2.6,P2.7口,8个数据口接单片机的P0口,如图1.9所示。图1.9DS18B20与单片机连接电路3.4报警模块设计报警模块由一个自我震荡型的蜂鸣器(只要在蜂鸣器两端加上超过3V的电压,蜂鸣器就会一直响)组成,在这次设计中蜂鸣器是通过三极管放大信号.在所要求的温度到达一定的上界或者下界时(在文中设置的初始上界温度10℃,下界温度为20℃),通过三个按钮可改变上下界温度的范围,一个按钮是用来加,一个按钮是用来减,最后一个按钮是用来确定。只要温度不在其设置范围内,蜂鸣器就会发出响声。蜂鸣器简介1.蜂鸣器的工作原理在本设计中主要是用于超过规定温度的范围进行报警。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器在电路中用字母“H”或“HA”。压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。多谐振荡器由晶体管或集成电路构成。当接通电源后〔1.5V~15V直流工作电压〕,多谐振荡器起振,输出1.5~2.5KHz的音频信号,阻抗匹配器推动压电蜂鸣片发声。在本设计中采用的是压电式蜂鸣器。2.蜂鸣器连接电路当P3.2输出高电平时,三极管截止,没有电流流过线圈,蜂鸣器不发声;当P3.2输出低电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。因此,可以通过程序控制P3.2脚的电平来使蜂鸣器发出声音和关闭。蜂鸣器与单片机连接电路如图2.0所示。图2.0蜂鸣器与单片机连接电路3.5温度上下限值电路设计在本设计中主要选用了单片机的P1.0,P1.1,P1.2口进行上限温度、下限温度及温度确实定。本设计中的温度上下值按键控制电路如图2.1所示。图2.1温度上下值按键控制电路3.6串口输出电路的设计串口输出电路局部主要是利用MAX232实现RS232的串行协议的电平转换,以保证采样参数的设置和温度向PC机正常发送。主要实现的功能是利用STC89C52的UART串行通信口和上位PC机实现串行通信。波特率的计算单片机或计算机在串口通信时的速率用波特率表示,它定义为每秒传输二进制代码的位数,即1位秒表1位/秒,单位是bps(位/秒)。如每秒传送240个字符,而每个字符格式包含10位〔1个起始位、1个停止位、8个数据位〕,这是的波特率为10位*240个/秒=2400bps.如数据传送的波特率为1200波特,采用N.8.1帧格式〔10位〕,那么每秒传送字节为120个,而字节中每一位传送时间即为波特率的倒数:T=I/1200=0.833ms。同样,如数据传送的波特率为9600波特,那么字节中每一位传送时间为T=1/9600=0.104ms。根据数据传送的波特率即字节中每一位的传送时间,我们便可用普通I/O口来模拟实现串行通信的时序。MAX232芯片实现串行通信的电平转换MAX232芯片引脚如图2.2所示。图2.2MAX232芯片引脚图MAX232的相关参数如表1-2所示。表1-2MAX232引脚功能介绍脚号引脚名称引脚功能描述脚号引脚名称引脚功能描述1C1+泵电容1正极9R2OUT第二组TTL/CMOS电平输出2V+正电源滤波10T2IN第二组TTL/CMOS电平输入3C1-泵电容1负极11T1IN第一组TTL/CMOS电平输入4C2+泵电容2正极12R1OUT第一组TTL/CMOS电平输出5C2-泵电容2负极13R1IN第一组RS-232电平输入6V-负电源滤波14T1OUT第一组RS-232电平输出7T2OUT第二组RS-232电平输出15GND地8R2IN第二组RS-232电平输入16VCC电源+5V第4章系统软件电路设计本设计单片机软件采用C51语言编写,C51语言是ANSIC的扩展集,其语法结构、关键字等与ANSIC绝大局部是相同的。系统程序包括主程序、读出温度子程序、温度转换命令子程序、计算温度子程序、显示程序、报警程序、PC机串行通信程序等。在编写PC机与单片机进行串行通信时采用VB语言编写程序。从有利于实现较复杂的算法〔显示效果处理〕和有利于程序结构化考虑,程序适宜采用C51语言编写。4.1LCD液晶显示软件设计液晶显示主要实现的功能就是对实测温度,报警温度上下限值进行显示。液晶显示子程序流程图如图2.3所示。图2.3液晶显示子程序流程图液晶显示子程序voidwrite_com(ucharcom)//液晶写命令程序{//while(BusyTest()==1);//如果忙就等待rs=0;//等0输入命令rw=0;en=0;//液晶使能信号初始化P0=com;//把com参数,液晶的命令值送到P0口en=1;//使能信号,0到1表示上升沿翻开可以写命令数据到液晶里delay(100);//延时,按照液晶的时序图的要求en=0;//使能信号回复delay(100);}voidwrite_data(uchardate)//液晶写数据程序{//while(BusyTest()==1);//如果忙就等待rs=1;//等1表示输入数据rw=0;en=0;P0=date;//把date参数,液晶的数据送到P0口en=1;delay(100);en=0;delay(100);}voidinit()//液晶初始化程序{en=0;write_com(0x38);//设置16X2显示,5X7点阵,8位数据口write_com(0x0c);//设置开显示,不显示光标write_com(0x06);//写一个字符后地址指针加1write_com(0x01);//显示清0,数据指针清0}voidwriteString(uchar*str,ucharlength){uchari;for(i=0;i<length;i++){write_data(str[i]);}}4.2主控模块软件设计主程序的功能是负责温度的实时显示、读出并处理DS18B20测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度,其主程序流程图如图2.4所示。图2.4主程序流程图//获取当前温度值intgetTmpValue(){unsignedinttmpvalue;intvalue;//存放温度数值floatt;unsignedcharlow,high;sendReadCmd();//连续读取两个字节数据low=readByte();high=readByte();//将上下两个字节合成一个整形变量//计算机中对于负数是利用补码来表示的//假设是负值,读取出来的数值是用补码表示的,可直接赋值给int型的valuetmpvalue=high;tmpvalue<<=8;tmpvalue|=low;value=tmpvalue;t=value*0.0625;//将它放大100倍,使显示时可显示小数点后两位,并对小数点后第三进行4舍5入//如t=11.0625,进行计数后,得到value=1106,即11.06度//如t=-11.0625,进行计数后,得到value=-1106,即-11.06度returnvalue;}4.3温度采集软件设计读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。温度转换命令子程序主要是法温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换完成。温度转换命令子程序流程图如图2.5所示。图2.5子程序流程图温度采集仪的子程序//让DS18B20一段相对长时间低电平,然后一段相对非常短时间高电平,即可启动voiddsInit(){//对于11.0592MHz时钟,unsignedint型的i,作一个i++操作的时间大于usunsignedinti;ds=0;i=100;//拉低约800us,符合协议要求的480us以上while(i>0)i--;ds=1;//产生一个上升沿,进入等待应答状态i=4;while(i>0)i--;}voiddsWait(){unsignedinti;while(ds);while(~ds);//检测到应答脉冲i=4;while(i>0)i--;}//向DS18B20读取一位数据//读一位,让DS18B20一小周期低电平,然后两小周期高电平,//之后DS18B20那么会输出持续一段时间的一位数据bitreadBit(){unsignedinti;bitb;ds=0;i++;//延时约8us,符合协议要求至少保持1usds=1;i++;i++;//延时约16us,符合协议要求的至少延时15us以上b=ds;i=8;while(i>0)i--;//延时约64us,符合读时隙不低于60us要求returnb;}//读取一字节数据,通过调用readBit()来实现unsignedcharreadByte(){unsignedinti;unsignedcharj,dat;dat=0;for(i=0;i<8;i++){j=readBit();//最先读出的是最低位数据dat=(j<<7)|(dat>>1);}returndat;}//向DS18B20写入一字节数据voidwriteByte(unsignedchardat){unsignedinti;unsignedcharj;bitb;for(j=0;j<8;j++){b=dat&0x01;dat>>=1;//写"1",将DQ拉低15us后,在15us~60us内将DQ拉高,即完成写1if(b){ds=0;i++;i++;//拉低约16us,符号要求15~60us内ds=1;i=8;while(i>0)i--;//延时约64us,符合写时隙不低于60us要求}else//写"0",将DQ拉低60us~120usds=0;i=8;while(i>0)i--;//拉低约64us,符号要求ds=1;i++;i++;//整个写0时隙过程已经超过60us,这里就不用像写1那样,再延时64us了}}//向DS18B20发送温度转换命令voidsendChangeCmd(){dsInit();//初始化DS18B20,无论什么命令,首先都要发起初始化dsWait();//等待DS18B20应答delay(1);//延时1ms,因为DS18B20会拉低DQ60~240us作为应答信号writeByte(0xcc);//写入跳过序列号命令字SkipRomwriteByte(0x44);//写入温度转换命令字ConvertT}//向DS18B20发送读取数据命令voidsendReadCmd(){dsInit();dsWait();delay1(1);writeByte(0xcc);//写入跳过序列号命令字SkipRomwriteByte(0xbe);//写入读取数据令字ReadScratchpad}4.4报警电路软件设计报警电路软件主要实现的功能主要是对温度的上下限值可自由的进行设定,如实测温度不在此范围内,蜂鸣器就会发出响声。温度上下值范围初始状态为:10~20℃。报警电路程序流程图如图2.6所示。图2.6报警电路程序流程图报警电路程序/*voidwarn(uinttempwarn)//温度报警程序{if(tempwarn<16)//返回的值是温度的值,如果温度小于16度就报警{Alam=0;delay1(500);//蜂鸣器的声音响的时间Alam=1;delay1(500);//蜂鸣器的声音不响的时间}elseif(tempwarn>24)//如果温度大于24度并且启动报警{Alam=0;delay1(500);Alam=1;delay1(500);}} */voidmain(){unsignedchari;uchartable[]="NowTemperature:";ucharUser[]="C";//自定义字符℃sendChangeCmd(); //启动温度转换init();//初始化LCDwrite_com(0x80); //第一行writeString(table,16);write_com(0xc0); //第二行writeString(User,1);//warn(getTmpValue());while(1){sendChangeCmd(); //启动温度转换//显示5次for(i=0;i<40;i++){ write_com(0xc0);display(ge

温馨提示

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

评论

0/150

提交评论