《智能仪表原理与设计综合训练报告材料的.doc》由会员分享,可在线阅读,更多相关《智能仪表原理与设计综合训练报告材料的.doc(36页珍藏版)》请在课桌文档上搜索。
1、目 录前言1第1章 课程设计任务和要求21.1 设计任务21.2 技术指标2第2章 系统设计方案32.1 温度采集仪总体设计方案32.2 各模块设计方案3第3章 系统硬件电路设计53.1 单片机STC89C52简介和最小系统5553.2 数字温度传感模块设计773.3 显示模块设计99103.4 报警模块设计11113.5 温度上下限值电路设计123.6 串口输出电路的设计131313第4章 系统软件电路设计154.1 LCD液晶显示软件设计154.2 主控模块软件设计174.3 温度采集软件设计194.4 报警电路软件设计24第5章 系统软硬件调试结果分析265.1 软硬件联调结果如表1-3
2、所示265.2 VB界面显示如图2.7所示265.3 软硬件联调结果分析27参考文献28致 谢29附录A 硬件原理图30附录B 实物图32附录C 元器件清单34前言在日常生活与工农业生产中经常要用到温度的检测与控制,目前使用最广泛的温度测量系统一般由温度测量元件、温度变送器和温度指示仪表三个局部组成。这种结构存在两个方面的缺点:一是三个局部相互别离,不便于随身携带和进展临时性的测量;二是整个系统不易取得较高的性能价格比。传统的测温元件有热电偶和热电阻。而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,需要比拟多的外部硬件支持,硬件电路复杂,软件调试复杂,制作本钱高。本文提出的一种由单片集
3、成电路构成的温度传感器的种类多,测量的精度高,响应时间短,使用方便无需变换电路等。该测温仪本身就是一个完整的温度测量系统,它不仅可以将代表被测温度值的电信号转换成温度值并显示出来,而且还将处理后的温度数值转换成电流或电压信号输出,以供计算机或其他仪表使用,即完成温度变送器的功能。近年来,美国DALLAS公司生产DSI8B20为代表的新型单总线数字式温度传感器以其突出优点广泛使用于仓储管理、工农业生产制造、气象观测、科学研究以与日常生活中。DSI8B20集温度测量和A/D转换于一体,直接输出数字量,传输距离远,可以很方便地实现多点测量。温度采集仪增加PC机与单片机之间的通信,可以对实时温度进展远
4、程监测与存储,此仪器可用于蔬菜大棚的监控或者工厂中的锅炉温度的采集等场合应用广泛。 第1章 课程设计任务和要求1.1 设计任务本次课程设计要求设计出智能化温度测量仪表,要求该测量仪表能够通过温度传感器采集温度,并将温度传到单片机进展处理,并通过液晶显示,同时以单片机为核心的主控单元通过对按键的操作,设定上下限报警温度与实测温度进展比拟,并判断是否报警,且与PC机通信将监测的温度发送到PC机。温度监测界面可用VB进展编程设计实现上位机人机界面的设计,要求上位机发送的命令下位机能与时的给与响应,并且上位机能够实时准确的显示下位机所上传数据以与电机设备的运行状态;使用汇编语言完成下位机程序驱动,并且
5、要尽量保证系统的稳定性和可靠性以与使用性。1.2 技术指标1.可以对0125温度进展实时采集并能通过液晶显示; 2.可以通过按键人工设定上下限报警温度并判断是否报警蜂鸣器发出响声; 3.实现下位机与PC机之间的串行通信在PC机上用VB所编写界面显示实测温度值。第2章 系统设计方案2.1 温度采集仪总体设计方案单片机控制电路中使用STC89C52。温度采集电路中采用数字温度传感器DS18B20该传感器具有测温X围广、测温准确的优点,其准确度可达到0.1摄氏度,可测量的温度X围从-55125摄氏度。将采集到的温度数据送到单片机,通过单片机控制的温度报警模块判断是否报警,最终将实测温度发送到液晶显示
6、器LCD1602显示,同时很方便的完成单片机与PC机之间的串行通信利用MAX232芯片实现电平转换功能,在VB程序编写的界面上显示监测温度。温度采集仪设计如图1.1所示。图1.1 图温度采集仪设计2.2 各模块设计方案本设计是一个基于单片机的温度采集仪,利用单片机的功能强大且体积小、价格低、抗干扰性好等特点,根据需要完成的功能需要在本设计中实现温度的采集、显示、上下限报警温度值设定、报警和与PC机的串行通信等功能。本设计中主要分硬件与软件的设计,硬件包括:主控模块 、温度传感模块、显示模块、按键模块、报警模块、通信模块等,软件包括:温度采集、按键与报警、显示、PC机上的温度界面等。(1) 主控
7、模块:可以选用STC89C系列的单片机,这里采用的STC89C52单片机,价格廉价,使用方便,STC89C52的片内RAM已能满足存放要求。(2) 温度传感模块:由于本设计中单片机除了要完成数据采集、处理、控制和显示任务外,还要完成按键值的采集、处理。如果用常规的数字加模拟电路实现就会相对困难一些。本设计选用的数字式集成温度传感器DS18B20。DS18B20是DALLAS半导体公司现属MAXIM公司设计生产的单总线数字温度传感器,其测量温度X围为55125,在-10+85时精度为0.5。这个传感器最大的特点就是能够从一根总线直接输出二进制的温度信号,不需要A/D转换和信号放大。这样的选择使得
8、整个电路的硬件设计更为简化,节省了单片机的资源。 (3) 显示模块:可以使用数码管或者液晶显示,两者皆可。在本设计中,主要使用液晶,焊接简单且程序调用方便。(4) 按键模块:本设计采用三个按键分别用来设定上限、下限温度。 (5) 报警模块:就是当设定的温度在门限温度之外,就会报警,蜂鸣器发出响声。 (6) 通信模块:RS-232电平与单片机TTL电平之间的转换方式,可以使用分立元件焊接而成,也可以直接使用集成芯片MAX232芯片。从电路使用方便的角度来看直接采用集成芯片,适应性更强,加之其价格适中,硬件接口简单。 第3章 系统硬件电路设计3.1 单片机STC89C52简介和最小系统本设计采用的
9、是STC公司的STC89C52单片机。其特性如下: (1) 工作频率:080MHz; (2) 3个标准16位定时/计数器; (3) 可编程I/O口线32条,中断源5个; (4) 8K字节快闪ROM,128字节RAM; (5) 工作电压:35V; (6) 40引脚,DIP封装; STC89C52引脚图如图1.2所示。图1.2 STC89C52引脚图最小系统包括单片机的电源、时钟电路和复位电路。 1.时钟电路 STC89C52单片允许的时钟频率的典型值12MHz或11.0592MHz,也可以是6MHz。本设计要使用串行通信,所以应采用11.0592MHz。 接到晶振两端的瓷片电容作用是使振荡器起振
10、和对f 微调补偿,典型值为30PF,本设计中选用30PF瓷片电容。当单片机加电以后延迟约10ms的时间振荡器产生时钟,不受软件控制XTAL2输出幅度为3V左右的正弦波。单片机时钟电路如图1.3所示。图1.3 单片机时钟电路2.复位电路 计算机在启动运行时都需要复位,使中央处理器CPU和系统中的其它部件都处于一个确定的初始状态,并从这个状态开始工作。单片机的复位引脚是RST,当振荡器起振后,该引脚上出现2个周期的高电平,是器件复位,只要RST保持高电平,单片机保持复位状态。单片机复位方式有二种:上电复位如图1.4所示、人工复位如图1.5所示。本设计中两种方法都采用。 图1.4 上电复位电路 图1
11、.5 上电复位和开关复位注:RST与Vss之间的那个电阻在NMOS型单片机中需要接,但是在CMOS型单片机中不接,本设计电路中就可以不接。3.2 数字温度传感模块设计美国Dallas半导体公司的数字化温度传感器DS1820是世界上第一片支持“一线总线接口的温度传感器,在其内部使用了在板ON-B0ARD专利技术。全部传感元件与转换电路集成在形如一只三极管的集成电路内。1. DS18B20的主要特性 (1) 适应电压X围更宽,电压X围:3.0V5.5V,在寄生电源方式下可由数据线供电。 (2) 独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向
12、通讯。 (3) DS18B20在使用中不需要任何外围元件,全部传感元件与转换电路集成在形如一只三极管的集成电路内。 (4) 温度X围55125,在-10+85时精度为0.5。 (5) 可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温。 (6) 在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快。 (7) 测量结果直接输出数字温度信号,以“一线总线串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。 (8) 负压特性:电源极性接反时,芯片不会因发热而烧毁,但
13、不能正常工作。2. DS18B20的外形、内部结构与引脚定义 (1) DS18B20的外形与管脚排列如图1.6所示。a. DQ为数字信号输入/输出端; b. GND为地线; c. VDD为外界供电电源输入端在寄生电源接线方式时接地。 图1.6 DS18B20的外形与管脚排列(2) DS18B20的内部结构图如图1.7所示。图1.7 DS18B20的内部结构图3. DS18B20与单片机连接电路 DS18B20与单片机连接电路如图1.8所示。图1.8 DS18B20与单片机连接电路3.3 显示模块设计显示模块局部主要采用LCD1602液晶显示。主要实现的功能是通过单片机读取温度传感器转换的温度值
14、,再将其所读取的十六进制数转换成十制数,通过静态显示,最后在LCD显示出温度数值。本设计液晶显示器选用LCD1602,将单片机输出的数据进展动态显示。将采集的温度以直观化的形象显示,与能显示作报警温度的上下X围,这样方便与实际温度进展比拟,实用价值更高。字符型液晶显示模块是专门用于显示字母、数字、符号等的点阵式的LCD,目前常用的是16*1、16*2,20*2和40*2行等。本次设计中采用的1602字符型液晶显示器,一行是用来实测温度,另一行是用来显示报警温度的上下限。 1. 1602的引脚功能 1602采用标准14脚无背光或16脚带背光接口,各引脚功能如表1-1所示。表1-1 1602引脚功
15、能介绍编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极(1) VL为液晶显示器比照度调整端, 接正电源时比照度最弱, 接地时比照度最强。假如比照度过高会产生“ 鬼影, 使用时可以通过一只10K电阻来调整比照度。 (2) RS为存放器选择端, RS为高电平时选择数据存放器, 为低电平时选择指令存放器。 R/W为读写信号线, 为高电平时进展读操作, 为低电平时为写操作。当R/W和RS同为低
16、电平时可以写人指令或者显示地址;当RS为低电平、R/W为高电平时,可以读忙信号。当RS为高电平、R/W为低电平时,可以读写数据。 (3) E为使能端, 当E端由高电平跳变成低电平时, 液晶模块执行命令。 (4) D0D7为8位双向数据线。本设计中RS,R/W,E/N分别接单片机的P2.5,P2.6,P2.7口,8个数据口接单片机的P0口,如图1.9所示。 图1.9 DS18B20与单片机连接电路3.4 报警模块设计报警模块由一个自我震荡型的蜂鸣器(只要在蜂鸣器两端加上超过3 V的电压,蜂鸣器就会一直响)组成,在这次设计中蜂鸣器是通过三极管放大信号在所要求的温度达到一定的上界或者下界时(在文中设
17、置的初始上界温度10,下界温度为20),通过三个按钮可改变上下界温度的X围,一个按钮是用来加,一个按钮是用来减,最后一个按钮是用来确定。只要温度不在其设置X围内,蜂鸣器就会发出响声。1. 蜂鸣器的工作原理 在本设计中主要是用于超过规定温度的X围进展报警。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器在电路中用字母“H或“HA。压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器与共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。多谐振荡器由晶体管或集成电路构成。当接通电源后1.5V15V直流工作电压,多谐振荡器起振,输出1.52.5KHz的音频信号,阻抗匹配器推动压电蜂鸣片
18、发声。在本设计中采用的是压电式蜂鸣器。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 串口输出电路的设计串口输出电路局部主要是利用MAX2
19、32实现RS232的串行协议的电平转换,以保证采样参数的设置和温度向PC机正常发送。主要实现的功能是利用STC89C52的UART串行通信口和上位PC机实现串行通信。 MAX232芯片引脚如图2.2所示。图2.2 MAX232芯片引脚图MAX232的相关参数如表1-2所示。表1-2 MAX232引脚功能介绍脚号引脚名称引脚功能描述脚号引脚名称引脚功能描述1C1+泵电容1正极9R2OUT第二组TTL/CMOS电平输出2V+正电源滤波10T2IN第二组TTL/CMOS电平输入3C1-泵电容1负极11T1IN第一组TTL/CMOS电平输入4C2+泵电容2正极12R1OUT第一组TTL/CMOS电平输
20、出5C2-泵电容2负极13R1IN第一组RS-232电平输入6V-负电源滤波14T1OUT第一组RS-232电平输出7T2OUT第二组RS-232电平输出15GND地8R2IN第二组RS-232电平输入16VCC电源+5V第4章 系统软件电路设计本设计单片机软件采用C51语言编写,C51语言是ANSI C的扩展集,其语法结构、关键字等与ANSIC绝大局部是一样的。 系统程序包括主程序、读出温度子程序、温度转换命令子程序、计算温度子程序、显示程序、报警程序、PC机串行通信程序等。在编写PC机与单片机进展串行通信时采用VB语言编写程序。从有利于实现较复杂的算法显示效果处理和有利于程序结构化考虑,程
21、序适宜采用C51语言编写。4.1 LCD液晶显示软件设计液晶显示主要实现的功能就是对实测温度,报警温度上下限值进展显示。液晶显示子程序流程图如图2.3所示。图2.3 液晶显示子程序流程图液晶显示子程序void write_(uchar ) /液晶写命令程序 / while(BusyTest()=1); /如果忙就等待 rs=0; /等0输入命令 rw=0; en=0; /液晶使能信号初始化 P0=; /把参数,液晶的命令值送到P0口 en=1; /使能信号,0到1表示上升沿打开可以写命令数据到液晶里 delay(100); /延时,按照液晶的时序图的要求 en=0; /使能信号回复 delay
22、(100); void write_data(uchar date) /液晶写数据程序 / while(BusyTest()=1); /如果忙就等待 rs=1; /等1表示输入数据 rw=0; en=0; P0=date; /把date参数,液晶的数据送到P0口 en=1; delay(100); en=0; delay(100); void init() /液晶初始化程序 en=0; write_(0x38); /设置16X2显示,5X7点阵,8位数据口 write_(0x0c); /设置开显示,不显示光标 write_(0x06); /写一个字符后地址指针加1 write_(0x01);
23、/显示清0,数据指针清0 void writeString(uchar *str, uchar length) uchar i; for(i = 0; i length; i+) write_data(stri); 4.2 主控模块软件设计主程序的功能是负责温度的实时显示、读出并处理DS18B20测量的当前温度值,温度测量每1s进展一次。这样可以在一秒之内测量一次被测温度,其主程序流程图如图2.4所示。图2.4 主程序流程图/获取当前温度值int getTmpValue() unsigned int tmpvalue; int value; /存放温度数值 float t; unsigned
24、char low, high; sendReadCmd(); /连续读取两个字节数据 low = readByte(); high = readByte(); /将上下两个字节合成一个整形变量 /计算机中对于负数是利用补码来表示的 /假如是负值, 读取出来的数值是用补码表示的, 可直接赋值给int型的value tmpvalue = high; tmpvalue 0 ? 0.5 : -0.5); /大于0加0.5, 小于0减0.5 return value;4.3 温度采集软件设计1. 读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进展CRC校验,校验有错时不进展温度数据的改写。2
25、. 温度转换命令子程序主要是法温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换完成。温度转换命令子程序流程图如图2.5所示。图2.5 子程序流程图温度采集仪的子程序/让DS18B20一段相对长时间低电平, 然后一段相对非常短时间高电平, 即可启动 void dsInit() /对于11.0592MHz时钟, unsigned int型的i, 作一个i+操作的时间大于us unsigned int i; ds = 0; i = 100; /拉低约800us, 符合协议要求的480us以上 while(i0) i-; ds = 1; /产生
26、一个上升沿, 进入等待应答状态 i = 4; while(i0) i-; void dsWait() unsigned int i; while(ds); while(ds); /检测到应答脉冲 i = 4; while(i 0) i-;/向DS18B20读取一位数据/读一位, 让DS18B20一小周期低电平, 然后两小周期高电平,/之后DS18B20如此会输出持续一段时间的一位数据bit readBit() unsigned int i; bit b; ds = 0; i+; /延时约8us, 符合协议要求至少保持1us ds = 1; i+; i+; /延时约16us, 符合协议要求的至少
27、延时15us以上 b = ds; i = 8; while(i0) i-; /延时约64us, 符合读时隙不低于60us要求 return b;/读取一字节数据, 通过调用readBit()来实现unsigned char readByte() unsigned int i; unsigned char j, dat; dat = 0; for(i=0; i8; i+) j = readBit(); /最先读出的是最低位数据 dat = (j 1); return dat;/向DS18B20写入一字节数据void writeByte(unsigned char dat) unsigned in
28、t i; unsigned char j; bit b; for(j = 0; j = 1; /写1, 将DQ拉低15us后, 在15us60us内将DQ拉高, 即完成写1 if(b) ds = 0; i+; i+; /拉低约16us, 符号要求1560us内 ds = 1; i = 8; while(i0) i-; /延时约64us, 符合写时隙不低于60us要求 else /写0, 将DQ拉低60us120us ds = 0; i = 8; while(i0) i-; /拉低约64us, 符号要求 ds = 1; i+; i+; /整个写0时隙过程已经超过60us, 这里就不用像写1那样,
29、 再延时64us了 /向DS18B20发送温度转换命令void sendChangeCmd() dsInit(); /初始化DS18B20, 无论命令, 首先都要发起初始化 dsWait(); /等待DS18B20应答 delay(1); /延时1ms, 因为DS18B20会拉低DQ 60240us作为应答信号 writeByte(0xcc); /写入跳过序列号命令字 Skip Rom writeByte(0x44); /写入温度转换命令字 Convert T/向DS18B20发送读取数据命令void sendReadCmd() dsInit(); dsWait(); delay1(1); w
30、riteByte(0xcc); /写入跳过序列号命令字 Skip Rom writeByte(0xbe); /写入读取数据令字 Read Scratchpad4.4 报警电路软件设计报警电路软件主要实现的功能主要是对温度的上下限值可自由的进展设定,如实测温度不在此X围内,蜂鸣器就会发出响声。温度上下值X围初始状态为:1020。报警电路程序流程图如图2.6所示。图2.6 报警电路程序流程图报警电路程序/*void warn(uint tempwarn)/温度报警程序 if(tempwarn24)/如果温度大于24度并且启动报警 Alam=0; delay1(500); Alam=1; delay
31、1(500); */void main() unsigned char i; uchar table = Now Temperature:; uchar User= C;/自定义字符 sendChangeCmd(); /启动温度转换 init(); /初始化LCD write_(0x80); /第一行 writeString(table, 16); write_(0xc0); /第二行 writeString(User, 1); / warn(getTmpValue(); while(1) sendChangeCmd(); /启动温度转换 /显示5次 for(i = 0; i 40; i+)
32、write_(0xc0); display( getTmpValue(); 第5章 系统软硬件调试结果分析5.1 软硬件联调结果如表1-3所示表1-3 测量结果统计表测量次数液晶显示结果VB界面显示报警情况1第一行:fact:23.63第二行:down:16 up:2423.63未报警2第一行:fact:25.56第二行:down:16 up:2425.56报警3第一行:fact:24.42第二行:down:16 up:2824.42未报警5.2 VB界面显示如图2.7所示1.当VB界面显示温度为23.63时2.当VB界面显示温度为25.56时图2.7 PC机上显示的温度值5.3 软硬件联调结
33、果分析本设计中所要求的温度采集的数据在液晶显示器1602第一行显示,第二行能显示温度上下限的X围,同时通过单片机控制的按键来改变温度上下限X围值。MAX232电路工作正常,单片机与PC机能正常实现串行通信并在VB程序编写的界面显示实时温度并且显示状态稳定。在设定的X围内判定是否报警,蜂鸣器会发出响声,告知现在所测温度不在其设定温度X围内,因此三个技术指标都能实现。参考文献1 X元良,王建军智能仪表开发技术实例解析M:机械工业,2009.2 史健芳智能仪表设计根底(第2版M:电子工业,20123 徐爱钧,徐阳.智能化测量控制仪表原理与设计第3版M:航空航天大学,20124 马忠梅,籍顺心,X凯.
34、单片机的C语言应用程序设计第4版.:航天航空大学,2007.5 谭浩强.程序设计与开发技术.:清华大学,1991.致 谢通过本次对数字温度仪的设计与制作,让我了解了设计电路的程序,也了解了关于数字温度仪的原理与设计理念,要设计一个电路首先要用仿真,仿真成功之后才能实际接线。但实际的和仿真的是有差异的,因为实际接线中会有各种条件限制,所以,设计时应考虑两者的差异,从中找出最适宜的设计方法。通过此次综合训练,使我对之前所学的专业课程有了进一步的学习,并且加强了课程之间的联系。此次训练更重要的意义就是增强了我们自己动手设计电路和编写程序的能力,这对即将进入工作阶段的我们尤为重要,在此次综合训练中我们
35、小组每个人都认真对待完成分配给自己的实验项目,当遇到问题时首先组员积极讨论思考,发现问题,解决问题。如果遇解决不了的问题再请教指导教师,感谢指导教师认真的讲解使我们在此次综合训练中受益匪浅,掌握了常见问题的解决方法。遇到问题并不可怕,可怕的是不敢面对,我们要不怕失败,在不断的改良中和调试中收获更多知识。在不断的问题中总结自己在日常学习中的不足之处,在理论知识的根底上把自己的实践能力提高,做到学以致用。附录A 硬件原理图附录B 实物图附录C 元器件清单元件名称规格数目杜邦线30导线红1排针单排方针2电解电容10uF/25V5电解电容10uF/50V1瓷片电容30pF2电阻1K6电阻4.7K1温度传感器DS18B201发光二极管红4单片机STC89C52RC1晶体振荡器11.0592MHz1排阻10K(即103) 9脚1按钮6*6*6四脚轻触按键开关49针串口接口DB-91电平转换器MAX2321三极管90121蜂鸣器5V有源压电蜂鸣器140脚底座DIP40116脚底座DIP161电位器10K即1031