基于STC90C516水温控制系统设计论文.docx
- 文档编号:30820420
- 上传时间:2024-01-30
- 格式:DOCX
- 页数:32
- 大小:545.24KB
基于STC90C516水温控制系统设计论文.docx
《基于STC90C516水温控制系统设计论文.docx》由会员分享,可在线阅读,更多相关《基于STC90C516水温控制系统设计论文.docx(32页珍藏版)》请在冰豆网上搜索。
基于STC90C516水温控制系统设计论文
水温控制课程总结
题目:
基于STC90C516水温控制系统设计
学院:
电子工程学院
专业:
电子信息工程
年级:
2012级
指导教师:
廖志贤
成员:
卫丽业201212701008
白雪英201212701007
俞阳阳201112701009
李志鹏201212701058
2015年05月
摘要
本设计采用的主控芯片是STC90C516单片机,数字温度传感器DS18B20。
本设计用数字传感器DS18B20测量温度,测量精度高,传感器体积小,使用方便。
所以本次设计的数字温度计在工业、农业、日常生活中都有广泛的应用。
矚慫润厲钐瘗睞枥庑赖。
单片机技术已经广泛应用社会生活的各个领域,已经成为一种非常实用的技术。
51单片机是最常用的一种单片机,而且在高校中都以51单片机教材为蓝本,这使得51单片机成为初学单片机技术人员的首选。
本次设计采用的STC90C516是一种flash型单片机,可以直接在线编程,向单片机中写程序变得更加容易。
本次设计的数字温度计采用的是DS18B20数字温度传感器,DS18B20是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠。
聞創沟燴鐺險爱氇谴净。
本设计根据设计要求,首先设计了硬件电路,然后绘制软件流程图及编写程序。
本设计属于一种多功能温度计,温度测量范围是-55℃到125℃。
温度值的分辨率可以被用户设定为9-12位,可以设置上下限报警温度,当温度不在设定的范围内时,就会启动报警程序报警。
本设计的显示模块是用四位一体的数码管动态扫描显示实现的。
在显示实时测量温度的模式下还可以通过查询按键查看设定的上下限报警温度。
残骛楼諍锩瀨濟溆塹籟。
关键词:
单片机、数字温度计、DS18B20、STC90C516
1.系统总体方案及硬件设计……………………………………3
1.1 设计要求………………………………………………………3
1.2各模块选择与论证………………………………………………3
2.系统的硬件设计与实现……………………………………6酽锕极額閉镇桧猪訣锥。
2.1系统总体设计框图………………………………………………6
2.2系统硬件概述……………………………………………………6
2.3主要单元电路的设计……………………………………………7
3.软件设计……………………………………………………14
3.1DS18B20程序设计………………………………………………14
3.2显示程序设计……………………………………………………18
3.3按键程序设计……………………………………………………19
4.系统测试……………………………………………………20
4.1硬件测试…………………………………………………………20
4.2软件测试…………………………………………………………20
4.3测试结果结论……………………………………………………20
5.设计体会………………………………………………………21
参考文献…………………………………………………………22
附录1:
原理图和实物图………………………………………23
附录2:
程序……………………………………………………29
1.系统总体方案及硬件设计
1.1 设计要求:
(1)基本要求
1具有实时获取水温功能;
2能够自动判断实际温度是否达到限值,并自动报警控制继电器;
(2)创新要求
①用户能够通过按键根据自己情况设置限值并保存起来;
1.2各模块选择与论证
1.2.1控制模块
本设计采用STC90C516芯片作为硬件核心,该芯片采用FlashROM,内部具有8KBROM存储空间,相对于本设计而言程序存储空间完全够用。
89C52是INTEL公司MCS-51系列单片机中基本的产品,它采用ATMEL公司可靠的CMOS工艺技术制造的高性能8位单片机,属于标准的MCS-51的HCMOS产品。
它结合了CMOS的高速和高密度技术及CMOS的低功耗特征,它基于标准的MCS-51单片机体系结构和指令系统,属于89C51增强型单片机版本,集成了时钟输出和向上或向下计数器等更多的功能,适合于类似马达控制等应用场合。
89C52内置8位中央处理单元、512字节内部数据存储器RAM、8k片内程序存储器(ROM)32个双向输入/输出(I/O)口、3个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。
此外,89C52还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。
在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。
掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能。
STC90C516有PDIP(40pin)和PLCC(44pin)两种封装形式。
彈贸摄尔霁毙攬砖卤庑。
1.2.2.显示模块的选择与论证
方案一:
采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较合适,如采用在显示数字显得太浪费,成本较高,所以不采用该方案。
謀荞抟箧飆鐸怼类蒋薔。
方案二:
采用LED数码管动态扫描显示,LED数码管价格适中,而却对于显示数字比较合适,控制方式简单,电路只需添加一个三极管驱动电路就可以实现显示。
厦礴恳蹒骈時盡继價骚。
方案三:
采用LCD1602液晶显示屏,液晶显示功能强大,可以显示2*16个字母或数字或者自定义字符,价格也比较合理,需要的接口只需要9根就可以完成。
成本相对比较高,对于本设计显示内容的不多采用该方案显得有点大材小用。
茕桢广鳓鯡选块网羈泪。
因此综合上述最终决定采用数码管动态扫描方式作为显示。
1.2.3.温度传感器模块选择与论证
方案一:
使用热敏电阻作为传感器,用热敏电阻与一个相应阻值电阻相串联分压,利用热敏电阻阻值随温度变化而变化的特性,采集这两个电阻变化的分压值,并进行A/D转换。
。
此设计方案需用A/D转换电路,增加硬件成本而且热敏电阻的感温特性曲线并不是严格线性的,会产生较大的测量误差。
鹅娅尽損鹌惨歷茏鴛賴。
方案二:
采用模拟温度传感器AD590,该传感器的输出电流会随温度的变化而变化,从而需要设计电路转换成电压的变化,进而通过A/D转换后接到单片机中,这种方法固然麻烦,而却费用比较高,而却在电流电压转换和A/D转换中会产生误差。
籟丛妈羥为贍偾蛏练淨。
方案三:
采用数字式防水型温度传感器DS18B20,此类传感器为数字式传感器而且仅需要一条数据线进行数据传输,易于与单片机连接,可以去除A/D模块,降低硬件成本,简化系统电路。
另外,数字式温度传感器还具有测量精度高、测量范围广等优点。
預頌圣鉉儐歲龈讶骅籴。
所以最终我们采用数字防水型DS18B20作为温度采集芯片。
1.2.4 编程语言的选择和论证
对于指令系统兼容MCS51系列的单片机,其较为常用的编程语言有C和汇编语言。
C语言是一种结构化编程语言,可产生压缩代码。
C语言在硬件结构上仅要求对单片机存储器等硬件结构有初步了解,寄存器分配,不同存储器寻址及数据类型等细节可由编译器管理。
C语言程序本身并不依赖于机器硬件系统,基本上不做修改就可以在不同种类的单片机之间相互移植。
程序可划分为不同函数,结构规范,可读性强。
C语言提供的库包含许多标准子程序,具有很强的数据处理能力。
C语言作为一种方便、容易掌握的语言得到了广泛的应用,是目前单片机编程中应用最多的语言之一。
汇编语言同样在单片机编程中得到了广泛的应用,其具有简单实用,控制灵活,实时性强,程序效率高等特点。
汇编语言有着极强的硬件控制能力,用其它的高级语言所无法控制的软硬件细节,在汇编语言中都可以实现,但是编程复杂。
综合考虑,软件的设计语言选择C语言。
渗釤呛俨匀谔鱉调硯錦。
1.2.5调节模块介绍
调节模块是由四个按键接地后直接接单片机的I/O口完成的。
当按键没有按下时单片机管脚相当于悬空,默认下为高电平,当按键按下时相当于把单片机的管脚直接接地,此时为低电平。
程序设计为低电平触发。
铙誅卧泻噦圣骋贶頂廡。
1.2.5继电器模块介绍
继电器模块是由由一个NPN型的三极管8550驱动。
当输入低电平时三极管导通,继电器吸合,从而控制外围器件。
擁締凤袜备訊顎轮烂蔷。
1.2.6报警模块介绍
报警模块是由一个NPN型的三极管8550驱动的5V蜂鸣器,和一个加一限流电阻的发光二极管组成的。
报警时蜂鸣器间歇性报警,发光二极管闪烁。
贓熱俣阃歲匱阊邺镓騷。
2.系统的硬件设计与实现
2.1系统总体设计框图
由于DS18B20数字温度传感器具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠,所以在该设计中采用DS18B20数字温度传感器测量温度。
坛摶乡囂忏蒌鍥铃氈淚。
温度计电路设计总体设计框图如图2-1所示,控制器采用单片机STC90C516,温度传感器采用DS18B20,显示采用4位LED数码管,报警采用蜂鸣器、LED灯实现,按键用来设定报警上下限温度并将设置好的值保存在STC90C516的EEPROM中(具有掉电保护功能)。
蜡變黲癟報伥铉锚鈰赘。
数码管显示
STC90C516
主控芯片
DS18B20温度采集
蜂鸣器报警
按键调节限值
LED灯提示
图2-1温度计电路总体设计框图
2.2系统硬件概述
本系统所设计的数字温度计采用的是DS18B20数字温度传感器测温,DS18B20直接输出的就是数字信号,与传统的温度计相比,具有读数方便,测温范围广,测温准确,上下限报警功能。
其输出温度采用LED数码管显示,主要用于对测温比较准确的场所。
買鲷鴯譖昙膚遙闫撷凄。
该设计控制器使用的是51单片机STC90C516,STC90C516单片机在工控、测量、仪器仪表中应用还是比较广泛的。
测温传感器使用的是DS18B20,DS18B20是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠。
显示是用4位共阴极LED数码管实现温度显示,LED数码管的优点是显示数字比较大,查看方便。
蜂鸣器用来实现当测量温度超过设定的上下限时的报警功能。
綾镝鯛駕櫬鹕踪韦辚糴。
2.3主要单元电路的设计
2.3.1单片机主控制模块的设计
STC90C516单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3,MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。
驅踬髏彦浃绥譎饴憂锦。
单片机的最小系统如下图所示,18引脚和19引脚接时钟电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出.第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20引脚为接地端,40引脚为电源端.如图-2所示猫虿驢绘燈鮒诛髅貺庑。
图-2主控制系统
2.2.2DS18B20电路设计
如图-3所示。
采用数字式温度传感器DS18B20,它是数字式温度传感器,具有测量精度高,电路连接简单特点,此类传感器仅需要一条数据线进行数据传输,使用P0.7与DS18B20的I/O口连接加一个上拉电阻,Vcc接电源,Vss接地。
锹籁饗迳琐筆襖鸥娅薔。
图-3DS18B20温度采集
DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
DS18B20的性能特点如下:
独特的单线接口仅需要一个端口引脚进行通信;多个DS18B20可以并联在惟一的三线上,实现多点组网功能;无须外部器件;可通过数据线供电,电压范围为3.0~5.5v;零待机功耗;温度以9或12位二进制数字表示;用户可定义报警设置;报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;構氽頑黉碩饨荠龈话骛。
DS18B20采用3脚TO-92封装或8脚SO或µSOP封装,其其封装形式如图4所示。
图4DS18B20的封装形式
DS18B20的64位ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。
温度报警触发器TH和TL,可通过软件写入户报警上下限。
輒峄陽檉簖疖網儂號泶。
DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM。
高速暂存RAM的结构为8字节的存储器,结构如图5所示。
尧侧閆繭絳闕绚勵蜆贅。
图5DS18B20的高速暂存RAM的结构
头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝是易失的,每次上电复位时被刷新。
第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率,DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值,该字节各位的定义如表2-1所示。
识饒鎂錕缢灩筧嚌俨淒。
表2-1:
配置寄存器
D7D6D5D4D3D2D1D0
TM
R1
R0
1
1
1
1
1
配置寄存器的低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率,“R1R0”为“00”是9位,“01”是10位,“10”是11位,“11”是12位。
当DS18B20分辨率越高时,所需要的温度数据转换时间越长。
因此,在实际应用中要将分辨率和转换时间权衡考虑。
凍鈹鋨劳臘锴痫婦胫籴。
高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。
第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。
恥諤銪灭萦欢煬鞏鹜錦。
当DS18B20接收到温度转换命令后,开始启动转换。
转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。
单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃/LSB形式表示。
鯊腎鑰诎褳鉀沩懼統庫。
当符号位s=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位s=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。
输出的二进制数的高5位是符号位,最后4位是温度小数点位,中间7位是温度整数位。
表2-2是一部分温度值对应的二进制温度数据。
硕癘鄴颃诌攆檸攜驤蔹。
表2-2DS18B20输出的温度值
温度值
二进制输出
十六进制输出
+125℃
0000011111010000
07D0h
+85℃
0000010101010000
0550h
+25.0625℃
0000000110010001
0191h
+10.125℃
0000000010100010
00A2h
+0.5℃
0000000000001000
0008h
0℃
0000000000000000
0000h
-0.5℃
1111111111111000
FFF8h
-10.125℃
1111111101011110
FF5Eh
-25.0625℃
1111111001101111
FF6Fh
-55℃
1111110010010000
FC90h
DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较。
若T>TH或T<TL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。
因此,可用多只DS18B20同时测量温度并进行报警搜索。
在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。
主机ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。
阌擻輳嬪諫迁择楨秘騖。
2.2.3显示电路设计
显示电路是由四位一体的共阳数码管进行显示的,数码管由三极管8550驱动。
四位一体的共阳数码管的管脚分布图如图6所示。
图6四位一体的共阳数码管管脚分布图
显示电路的总体设计如图7所示。
图7显示电路
2.2.4按键电路设计
按键电路是用来实现调节设定报警温度的上下限和查看上下报警温度的功能。
电路原理图如图8所示。
图8按键电路原理图
2.2.5报警电路设计
报警电路是在测量温度大于上限或小于下限时提供报警功能的电路。
该电路是由一个蜂鸣器和一个红色的发光二极管组成,具体的电路如图9所示。
氬嚕躑竄贸恳彈瀘颔澩。
图9报警电路原理图
2.2.6继电器模块介绍
继电器模块是由由一个PNP型的三极管9015驱动。
当输入低电平时三极管导通,继电器吸合,从而控制外围器件。
电路图如图10所示:
釷鹆資贏車贖孙滅獅赘。
图10继电器电路图
3软件设计
3.1DS18B20程序设计
3.1.1DS18B20传感器操作流程
根据DS18B20的通讯协议,主机(单片机)控制DS18B20完成温度转换必须经过三个步骤:
•每一次读写之前都要对DS18B20进行复位操作
•复位成功后发送一条ROM指令
•最后发送RAM指令
这样才能对DS18B20进行预定的操作。
复位要求主CPU将数据线下拉500μs,然后释放,当DS18B20收到信号后等待16~60μs左右,后发出60~240μs的存在低脉冲,主CPU收到此信号表示复位成功。
怂阐譜鯪迳導嘯畫長凉。
DS18B20的操作流程如图3-1所示。
如图3-1DS18B20的操作流程
3.1.2DS18B20传感器的指令表
DS18B20传感器的操作指令如表3-1所示。
传感器复位后向传感器写相应的命令才能实现相应的功能。
表3-1DS18B20的指令表
指令
指令代码
功能
读ROM
0x33
读DS1820温度传感器ROM中的编码(即64位地址)
符合ROM
0x55
发出此命令之后,接着发出64位ROM编码,访问单总线上与该编码相对应的DS1820使之作出响应,为下一步对该DS1820的读写作准备。
搜索ROM
0xF0
用于确定挂接在同一总线上DS1820的个数和识别64位ROM地址。
为操作各器件作好准备。
跳过ROM
0xCC
忽略64位ROM地址,直接向DS1820发温度变换命令。
适用于单片工作。
告警搜索命令
0xEC
执行后只有温度超过设定值上限或下限的片子才做出响应。
温度变换
0x44
启动DS1820进行温度转换,12位转换时最长为750ms(9位为93.75ms)。
结果存入内部9字节RAM中。
读暂存器
0xBE
读内部RAM中9字节的内容
写暂存器
0x4E
发出向内部RAM的3、4字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据。
复制暂存器
0x48
将RAM中第3、4字节的内容复制到EEPROM中。
重调EEPROM
0xB8
将EEPROM中内容恢复到RAM中的第3、4字节。
读供电方式
0xB4
读DS1820的供电模式。
寄生供电时DS1820发送“0”,外接电源供电DS1820发送“1”。
3.1.3DS18B20传感器的初始化时序
DS18B20传感器为单总线结构器件,在读写操作之前,传感器芯片应先进性复位操作也就是初始化操作。
DS18B20的初始化时序如图10所示。
首先控制器拉高数据总线,接着控制器给数据总线一低电平,延时480μs,控制器拉高数据总线,等待传感器给数据线一个60-240μs的低电平,接着上拉电阻将数据线拉高,这样才初始化完成。
谚辞調担鈧谄动禪泻類。
图10DS18B20初始化时序
3.1.4DS18B20传感器的读写时序
1.写时序
DS18B20传感器的读写操作是在传感器初始化后进行的。
每次操作只能读写一位。
当主机把数据线从高电平拉至低电平,产生写时序。
有两种类型的写时序:
写“0”时序,写“1”时序。
所有的时序必须有最短60μs的持续期,在各个写周期之间必须有最短1μs的恢复期。
嘰觐詿缧铴嗫偽純铪锩。
在数据总线由高电平变为低电平之后,DS18B20在15μs至60μs的时间间隙对总线采样,如果为“1”则向DS18B20写“1”,如果为“0”则向DS18B20写“0”。
如图3-2的上半部分。
熒绐譏钲鏌觶鷹緇機库。
对于主机产生写“1”时序时,数据线必须先被拉至低电平,然后被释放,使数据线在写时序开始之后15μs内拉至高电平。
鶼渍螻偉阅劍鲰腎邏蘞。
对于主机产生写“1”时序时,数据线必须先被拉至低电平,且至少保持低电平60μs。
2.读时序
在数据总线由高电平变为低电平之后,数据线至少应保持低电平1μs,来自DS18B20的输出的数据在下降沿15μs后有效,所以在数据线保持低电平1μs之后,主机将数据线拉高,等待来自DS18B20的数据变化,在下降沿15μs之后便可开始读取DS18B20的输出数据。
整个读时序必须有最短60μs的持续期。
如图11的下半部分。
读时序结束后数据线由上拉电阻拉至高电平。
纣忧蔣氳頑莶驅藥悯骛。
图11DS18B20传感器的读写时序
3.1.5DS18B20获取温度程序流程图
DS18B20的读字节,写字节,获取温度的程序流程图如图12所示。
图12DS18B20程序流程图
3.2显示程序设计
显示电路是由四位一体的数码管来实现的。
由于单片机的I/O口有限,所以数码管采用动态扫描的方式来进行显示。
程序流程图如图13所示。
颖刍莖蛺饽亿顿裊赔泷。
图13显示程序流程图
3.3按键程序设计
按键是用来设定上下限报警温度的。
具体的程序流程图如图14所示。
图14按键程序流程图
4.系统测试
4.1硬件测试
温度检测的电路系统比较简单,对于焊接方面更是不可轻视,庞大的电路系统中只要出于一处的错误,则会对检测造成很大的不便,而且电路的交线较多,对于各种锋利的引脚要注意处理,否则会刺被带有包皮的导线,则会对电路造成短路现象。
濫驂膽閉驟羥闈詔寢賻。
在本设计调试中遇到了很多的问题。
回想这些问题只要认真多思考都是可以避免的,以下为主要的问题:
(1)在硬件设计好后把软件程序写好后下载进单片机后数码管不显示。
经过自己检测电路发现电路连接都没有发现问题,反复检查程序也没有发现问题,心想是不是P0口驱动能力不强,可是想已经加上拉电阻了。
经过查阅资料发现排阻具有方向,将排阻焊锡来换一下方向,重新上电后果然显示了。
所以对于有方向的元器件焊接需要特别的注意。
銚銻縵哜鳗鸿锓謎諏涼。
4.2软件测试
电子成年历是多功能的数字型,可以看当前日期(阴、阳历),时间,还有温度的仪器。
电子成年历功能很多,所以对于它的程序也较为复杂,所以在编写程序和调试时出现了相对较多的问题。
最后经过多次的模块子程序的修改,一步一步的完成,最终解决了软件。
在软件的调试过程中主要遇到的问题如下:
挤貼綬电麥结鈺贖哓类。
1.数码管动态显示时发现只会显示一个数字。
经过检查程序发
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 STC90C516 水温 控制系统 设计 论文