基于单片机数字温度表的设计研究_第1页
基于单片机数字温度表的设计研究_第2页
基于单片机数字温度表的设计研究_第3页
基于单片机数字温度表的设计研究_第4页
基于单片机数字温度表的设计研究_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

1、 学号 093311003陕西国际商贸学院本科毕业论文基于单片机数字温度表的设计研究二 级 学 院:电子与信息工程专 业 名 称:电子科学与技术学 生 姓 名:卢浩指 导 教 师:王丽君 讲师二一三年六月郑 重 声 明 本人呈交的学位论文,是在导师的指导下,独立进行研究工作所取得的成果,所有数据、图片资料真实可靠。尽我所知,除文中已经注明引用的内容外,本学位论文的研究成果不包含他人享有著作权的内容。对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确的方式标明。本学位论文的知识产权归属于培养单位。 本人签名: 日期: 摘 要本设计实现了以单片机为控制核心,用温度传感芯片对温度进行

2、数字化采集并通过单片机直接驱动笔段式LCD屏显示温度值。本系统选用的单片机是功能强大的STC12C5A60S2单片机,温度传感芯片是LM75A,笔段式LCD屏是EDS803A三位半笔段式LCD屏。全系统只由上述三部分和电池组成,没有使用电路板,直接依靠各部件引脚搭建电路,具有:电路设计精简;焊接数量较少;无外部晶体;无复位电路;温度测量精度高(±0.25),范围广(.55 至125)等特点。成品体积小巧,美观打放,成本低廉。既可以使用内部超薄纽扣电池供电,也可以使用外部电源供电;既可以吸附于光滑平面静止测温,也可以手持移动测温。关键词:STC12C5A60S2单片机 LM75A ED

3、S803A液晶屏 C语言 测温ABSTRACTThis design achieved with the single chip processor as the core, with a temperature sensor chip of temperature acquisition and driven directly by single chip microcomputer digital pen sections of LCD display temperature. This system chooses the SCM STC12C5A60S2 single.chip com

4、puter is powerful, the temperature sensor chip is LM75A, sections of the LCD screen is EDS803A three and a half sections of LCD screen. Whole system consists of the above three parts and battery only, don't use the circuit board, directly depend on the pin set up circuit various components, are:

5、 circuit design concise; Less number of welding; No external crystal; No reset circuit; Higher temperature measurement precision (plus or minus 0.25 ), range (55 to 125 ), etc. Finished product volume is small and exquisite, beautiful, low cost. Can use internal ultra.thin button batteries, also can

6、 use external power supply; Can adsorption in the smooth plane static temperature, can also be hand.held mobile temperature measurement.KEYWORDS:STC12C5A60S2 Singlechip LM75A EDS803A LCD C programming language Temperature measurement目 录1 绪论1.1研究背景11.2国内外研究现状11.2.1国内发展近况11.2.2国外的数字温度表有以下几种21.3设计内容和设计

7、要求31.3.1设计内容31.3.2.设计要求42 数字温度表的硬件设计2.1 STC12C5A60S2单片机简介62. 2 LM75A简介82.2.1原理简介82.2.2 LM75A 的功能特点82.2.3 LM75A功能框图82.2.4 IIC协议112.3 EDS803A三位半笔段式LCD屏简介132.3.1笔段式LCD屏简介132.3.2 EDS893A屏简介132.4电路设计142.4.1原理图14PCB图142.4.3 3D模拟图152.4.4 实物图163 系统软件设计3.1程序设计的总体方案内容173.1.1 程序设计流程图173.1.2总体设计方案173.2系统的各个程序17

8、3.2.1主程序介绍及功能183.2.2系统子程序184 总结与展望4.1本课题工作总结214.2 设计展望21参考文献附录附录1函数库的调用25附录2 数码表25附录3 I/O口定义25附录4虚拟IIC子程序27附录5延时子程序34附录6 LCD液晶片交流驱动子程序35附录7读取温度函数38附录8主函数38附录9中断函数40致谢1 绪论1.1研究背景温度作为人们日常生活中的一个基本量,在很多情况下都需要对其进行准确的测量,随着人们生活水平的不断提高,对温度检测的要求越来越高,用传统的测温元件(热电偶和热电阻)测量温度需要比较多的硬件支持,硬件电路复杂,软件调试复杂,制作成本高。开发更加简洁、

9、高效的数字温度表成为一个很有意义的课题。 本课题的设计源自于袁战军老师指导的数字电压表项目的启发。该项目的电路设计严谨而复杂,尤其是驱动显示模块的电路需要大量的手工焊接,而手工焊接不仅低效而且存在安全方面的隐患。如果电子制作中省去繁琐的焊接,就会对产品的生产制造产生极大的便利,也会为企业产生更高的效益。安全高效节能环保是未来制造业的基本特征。本设计只需要:单片机、段码液晶片、温度传感器芯片、钮扣电池、导线这些简单的元件和较少的焊接步骤来完成一个基于单片机的数字温度表的电子制作。1.2国内外研究现状1.2.1国内发展近况我国在温度计量技术领域的发展相对国外发达国家起步较晚,但是经过多年来的不断发

10、展,还是取得了很多优异的成绩,研发出了一系列成熟的温度测量仪器。我国温度计量技术的发展大略可以从以下五个方面来介绍: 1.温度固定点研究 我国目前研究不同于温标定义点的固定点有两类。一类是高温非定义固定点,这种固定点中的研究热点是金属碳共晶点,将来可能代替温度灯作为温度传递标准;另一类是小型实用固定点,比如水三相点等,这类固定点虽然温度不确定度和实用性还是较高的。 2.玻璃液体测温 玻璃液体测温的原理是利用感温液体在玻璃容器中热胀冷缩的特性,即当被测物体的温度变化时,玻璃容器中感温液体的体积随之变化而表现出被测物体的温度。 在我国,一般的家用或者医用体温计就是一种利用玻璃液体测温原理研制的温度

11、计量仪器,使用较为广泛。另外,基于玻璃液体温度计发展而来的高精度数字温度计的应用也开始逐渐普及,其使用更为简单、测量精度等各项参数均优于传统的玻璃液体温度计。 3.热电阻及热电偶测温 在我国,工业铂热电阻温度计量仪器在温度计量系统中还未得到认可,但是很多计量单位或者公司已经开始使用这种稳定性优异的温度计量仪器了。 工业上使用的热电偶材料主要是由两种纯金属组成的,这种材料的均匀性和稳定性较好,远远优于一些合金材料。目前,我国的东北大学长期从事热电耦温度计量仪器的保护的相关研究,并已经取得了一些不错的研究成果。 4.光纤测温 光纤测温技术基于不同的散射原理可以分为基于拉曼散射、基于瑞利散射和基于布

12、里渊散射三种。光纤测温技术的应用一般有两个方面: 第一,利用拉曼反向散射效应测量温度分布。这种方式主要是利用光纤可以改变反向散射光的强度来测定温度分布,从而可以可靠地用于检测地下输送油气的管道的泄漏位置。目前我国已有部分地域利用这种技术检测管道的泄漏问题。 第二,利用荧光衰减时间法测量温度。这项技术是把可以发出荧光的材料制成灵敏元件,再通过光纤传输荧光,并通过测量荧光时间来测量温度。5.辐射测温在工程上应用,测量温度的方式分为接触式测温和非接触式测温两种,由于工作环境等原因,一般采用非接触式测温的方式。近年来,在温度测量领域兴起了一种非接触测温方式辐射测温,其可以在各种恶劣的环境下高精度测量物

13、体的温度而被广泛应用。辐射测温是利用被测物体可以向外界不断释放红外线辐射能量的原理来测量温度的1.2.2国外的数字温度表有以下几种1. 热电偶温度计热电偶温度计是由两条不同金属连接着一个灵敏的电压计所组成。金属接点在不同的温度下,会在金属的两端产生不同的电位差。电位差非常微小,故需灵敏的电压计才能测得。由电压计的读数,便可知道温度为何。2.光测高温计物体温度若高到会发出大量的可见光时,便可利用测量其热辐射的多寡以决定其温度,此种温度计即为光测温度计。此温度计主要是由装有红色滤光镜的望远镜及一组带有小灯泡、电流计与可变电阻的电路制成。使用前,先建立灯丝不同亮度所对应温度与电流计上的读数的关系。使

14、用时,将望远镜对正待测物,调整电阻,使灯泡的亮度与待测物相同,这时从电流计便可读出待测物的温度了。3.液晶温度计用不同配方制成的液晶,其相变温度不同,当其相变时,其光学性质也会改变,使液晶看起来变了色。如果将不同相变温度的液晶涂在一张纸上,则由液晶颜色的变化,便可知道温度为何。此温度计之优点是读数容易,而缺点则是精确度不足,常用于观赏用鱼缸中,以指示水温。4.半导体温度计半导体的电阻变化和金属不同,温度升高时,其电阻反而减少,并且变化幅度较大。因此少量的温度变化也可使电阻产生明显的变化,所制成的温度计有较高的精密度,常被称为感温器。1.3设计内容和设计要求1.3.1设计内容数字温度表系统主要包

15、括:电源、单片机、温度传感器、单片机、显示屏、程序,其系统框图如图1.1所示。电源3V纽扣电池温度传感器LM75A单片机STC 12C5A60S2段 码 式 液 晶 片图1.1数字温度表的系统框图1.电源:因为本课题使用的是STC 12C5A60S2节能型单片机,驱动电压只需要3V,再加上系统电流也很低,只有20mA左右,所以使用小巧的纽扣电池作电源。2.温度传感器:我准备使用LM75A数字温度传感器,它是NXP 公司(飞利浦麾下的电子公司)生产的一款温度传感器,有小体积和低功耗的特点。LM75 在使用上有很多优点,首先LM75 是采用飞利浦自家的I ²C 总线通信,对时钟精度没有要

16、求,用单片机内部的R/C 时钟源都可以驱动。其次LM75 的价格只有传统温度传感器DS18B20 的一半。编程的难度较小,芯片附加功能多,工作电压范围较宽,不管是5V 电源还是3V 电源都可以驱动。3.单片机:STC12C5A60S2/AD/PWM系列单片机是STC生产的单时钟机器周期(1 T)的单片机,是高速低功耗超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快812倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位AD转换(250KS,即25万次秒),针对液晶驱动、电机控制,强干扰场合。4.显示模块:段码液晶片静态液晶片已经不常见了,因为静态显示结构只

17、有一个公共端,所以每一个段码都有自己独立的引脚。因为引脚太多,同样用驱动芯片制作,当然还是选择引脚少的动态显示结构了。不过静态显示结构不需要多级电压,也没有灰度调试的问题,只要各段码引脚和公共端之间输入一个交流电压就可以驱动起来了。幸好我选用的EDS803A液晶片是静态显示结构的,可以用单片机的I/O 接口直接驱动。5.系统程序设计:系统程序包括主程序和各功能子程序,而在各功能子程序中段码液晶片驱动子程序设计是系统程序设计的核心;对于该程序设计将采用模块化程序设计思想,即把各输出符号控制程序分别编程和调试,然后通过温度信号处理子程序根据要求统一调用。1.3.2.设计要求本课题使用的元器件为:单

18、片机、段码液晶片、温度传感器芯片、钮扣电池、导线这些简单的元件来完成一个基于单片机的数字温度表的电子制作。本课题的设计具有以下特点:1.精简的电路设计,极少元器件。2.较少焊接数量。3.使用单片机内部R/C 振荡器,无需外部晶体,无需复位电路。4.温度传感器可采集.55 至125摄氏度温度数据。5.单片机、温度传感器、液晶片均为工业级产品。6.单片机和温度传感器均采用省电模式,功耗较低。7.有较高的实用价值。2 数字温度表的硬件设计2.1 STC12C5A60S2单片机简介STC12C5A60S2系列单片机是STC生产的单时钟机器周期(IT)的单片机,是高速低功耗超强抗干扰的新一代8051单片

19、机,指令代码完全兼容传统8051,但速度快8.12倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S,即25万次秒),针对电机控制,强干扰场合。STC12C5A60S2单片机有如下技术特点: 1增强型8051 CPU,IT,单时钟机器周期,指令代码完全兼容传统8051;2工作电压:STC12C5A60S2系列工作电压: 5.5V . 3.5V(5v单片机);STC12LE5A60S2系列工作电压: 3.6V . 2.2V (3V单片机);3工作频率范围:035MHz,相当于普通8051的0420MHz;4用户应用程序空间8K16K20K32K40K48K5

20、2K60K62K字节; 5片上集成1280字节RAM;6.通用I/O口(36/40/44个),复位后为:准双向口弱上拉(普通8051传统I/O口)可设置成四种模式:准双向口弱上拉,强推挽强上拉,仅为输入高阻,开漏每个I/O口驱动能力均可达到20mA,但整个芯片最大不要超过120mA;7ISP(在系统可编程)IAP(在应用可编程),无需专用编程器,无需专用仿真器可通过串口(P3.O/P3.1)直接下载用户程序,数秒即可完成一片,极大的方便了学生实验设计;8有EEPROM功能(STC12C5A62S2/AD/PWM无内部EEPROM);9看门狗;10.内部集成MAX810专用复位电路(外部晶体12

21、M以下时,复位脚可直接IK电阻到地);11.外部掉电检测电路:在P4.6口有一个低压门槛比较器5v单片机为1.33V,误差为±5%,3.3V单片机为1.3IV,误差为±3%;12.时钟源:外部高精度晶体时钟,内部R/C振荡器(温漂为±5%到±l0%以内)。用户在下载用户程序时,可选择是使用内部R/C振荡器还是外部晶体时钟,常温下内部R/C振荡器频率为:5.OV单片机为: 11MHz17MHz3. 3V单片机为: 8MHz12MHz。精度要求不高时,可选择使用内部时钟,但因为有制造误差和温漂,以实际测试为准;13.共4个16位定时器,两个与传统8051兼容

22、的定时器计数器,16位定时器TO和Tl,没有定时器2,但有独立波特率发生器做串行通讯的波特率发生器,再加上2路PCA模块可再实现2个16位定时器;14.3个时钟输出口,可由TO的溢出在P3. 4/TO输出时钟,可由Tl的溢出在P3. 5/TI输出时钟,独立波特率发生器可以在Pl.0口输出时钟;15.外部中断I/O口7路,传统的下降沿中断或低电平触发中断,并新增支持上升沿中断的PCA模块,Power Down模式可由外部中断唤醒,INTO/P3.2、INTl/P3.3、TO/P3.4、T1/P3.5、RxD/P3.0、CCPO/P1.3(也可通过寄存器设置到P4.2),CCPl/P1.4(也可通

23、过寄存器设置到P4.3);16. PWM(2路)PCA(可编程计数器阵列,2路) .也可用来当2路D/A使用。 .也可用来再实现2个定时器。 .也可用来再实现2个外部中断(上升沿中断下降沿中断均可分别或同时支持);17. A/D转换,10位精度ADC,共8路,转换速度可达250K/S(每秒钟25万次);18.通用全双工异步串行口(UART),由于STC12系列是高速的8051,可再用定时器或PCA软件实现多串口;19. STC12C5A60S2系列有双串口,后缀有S2标志的才有双串口,RxD2/P1.2(可通过寄存器设置到P4.2),TxD2/P1.3(可通过寄存器设置到P4.3);20.工作

24、温度范围:.40 +85(工业级)0.75(商业级);21.封装:LQFP.48,LQFP.44,PDIP.40,PLCC.44,QFN.40。I/O口不够时,可用到3根普通I/O口线外接74HC164/165/595(均可级联)来扩展I/O口,还可用A/D做按键扫描来节省I/O口,或用双CPU,三线通信,还多了串口。2. 2 LM75A简介2.2.1原理简介LM75A是一款内置带隙温度传感器和模数转换功能的温度.数字转换器,它也是温度检测器,可提供过热输出。LM75A包含多个数据寄存器:配置寄存器(Conf)、温度寄存器(Temp)和设定点寄存器(Tos & Thyst)。LM75A

25、还包含一个开漏输出(OS)管脚,当温度超过编程限制的值时该输出有效。LM75A有3个可选的逻辑地址管脚,使得同一总线上可同时连接8个器件而不发生地址冲突。LM75A可配置成不同的工作模式。它可设置成在正常工作模式下周期性地对环境温度进行监控,或进入关断模式来将器件功耗降至最低。OS输出有2种可选的工作模式:OS比较器模式和OS中断模式。OS输出可选择高电平有效或低电平有效。错误队列和设定点限制可编程,可以激活OS输出。正常工作模式下,当器件上电时,OS工作在比较器模式,温度阈值为80,滞后75,这时,LM75A就可用作独立的温度控制器,预定义温度设定点。2.2.2 LM75A 的功能特点1.提

26、供环境温度对应的数字信息,直接表示温度; 2.可以对某个特定温度作出反应,可以配置成中断戒者比较器模式(OS 输出); 3.高速I2C 总线接口,有A2.A0 地址线,一条总线上最多可同时使用8 个LM75A; 4.低功耗设计,工作电流典型值为250uA,掉电模式为3.5uA; 5.测量的温度最大范围为.55+125; 6.宽工作电压范围:2.8V5.5V; 7.提供了良好的温度精度(0.125); 8.可编程温度阈值和滞后设定点。2.2.3 LM75A功能框图1.功能框图图2.1 LM75A功能框图 2.引脚说明: 图2.2引脚说明 3.引脚描述:表2.1 引脚描述管脚号符号功能说明1SDA

27、串行数据线2SCL串行始终线3OS过热关断、开漏4GND地5A2用户定义地址26A1用户定义地址17A0用户定义地址08Vcc电源(1)温度寄存器Temp(地址0x00) 温度寄存器是一个只读寄存器,用来存储读取的数字温度,包含2个8位的数据字节,由一个高数据字节(MS)和一个低数据字节(LS)组成。在这两个字节中只用到11位,来存放分辨率为0.125的Temp数据(以二进制补码数据的形式),如下表所示。对于8位的IIC总线来说,只要从LM75A的“00地址”连续读两个字节即可(温度的高8位在前)。 表2.2 温度寄存器Temp MS字节Temp LS 字节MSBLSBMSBLSBB7B6B5

28、B4B3B2B1B0B7B6B5B4B3B2B1B0Temp数据(11位) .MSBLSBD10D9D8D7D6D5D4D3D2D1D0根据11位的Temp数据来计算Temp值的方法: 若D10=0,温度值()(Temp数据)×0.125; 若D10=1,温度值()(Temp数据的二进制补码)×0.125。(2)配置寄存器(地址0x01) 配置寄存器为 8 位可读写寄存器,用来存储器件的某些设置,如器件的工作模式、OS工作模式、OS极性和OS错误队列等。其位功能分配如下所示:表2.3 配置寄存器B7B6B5B4B3B2B1B0保留OS故障队列OS极性OS比较/中断关断(3)

29、设定点寄存器Tos & Thyst(0x02) 设定点寄存器用来存储可编程的过热关断和滞后限制,器件通过两线的串行总线接口与控制器通信。又分为滞后寄存器和过热关断寄存器:a)滞后寄存器 滞后寄存器是读/写寄存器,提供了温度控制范围的下限温度。 该寄存器都包含2个8位的数据字节,但2个字节中,只有9位用来存储设定点数据(分辨率为0.5的二进制补码),其数据格式如下表所示,默认为75。表2.4 设定点寄存器D15D14D8D7D6D0T8T7T6T5T4T3T2T1T0未定义b)过热关断寄存器 过热关断寄存器提供了温度控制范围的上限温度。其数据格式如上表所示,默认为80。2.2.4 IIC

30、协议1.IIC串行总线 IIC是一种多向控制总线,也就是说多个芯片可以连接到同一总线结构下,同时每个芯片都可以作为实时数据传输的控制源,这种方式简化了信号传输总线。总线扩展可以并行也串行。由于串行总线的连线少,结构简单,往往不用专门的母板和插座而直接用导线连接各个设备。因此,采用串行线可大大简化系统的硬件设计。 IIC总线只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。IIC总线通过上拉电阻接正电源。当总线空闲时,两根线均为高电平。连到总线上的任一器件输出的低电平,都将使总线的信号变低,即各器件的SDA及SCL都是线“与”关系。总线的运行(数据传输)由主机控制。所谓主机是指启动数

31、据的传送(发出启动信号)、发出时钟信号以及传送结束时发出停止信号的设备,通常主机都是微处理器。被主机寻访的设备称为从机。每个接到IIC总线的设备都有一个唯一的地址,以便于主机寻访。发送数据到总线的设备称为发送器,从总线上接收数据的设备称为接受器。为了保证数据可靠地传送,任一时刻总线只能由一台主机控制,IIC总线允许连接不同传送速率的设备。2. IIC总线的数据传送(1)起始和终止信号SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号; SDA线由低电平向高电平的变化表示终止信号。 (2)数据位的有效性规定IIC总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,

32、在时钟线上的信号为低电平期间,数据线上的高、低电平状态才允许变化。 3.数据传送格式I、字节传送与应答每一个字节必须保证是8位长度。数据传送时,先传送最高位(MSB),每一个被传送的字节后面都必须跟随一位应答位(即一帧共有9位)。如果一段时间内没有收到从机的应答信号,则认为从机已正确接收到数据。 II、数据帧格式 IIC总线上传送的数据信号既包括地址信号,又包括真正的数据信号。 在起始信号后必须传送一个7位的从机地址,第8位是数据的传送方向位(“0”表示主机发送数据,“1”表示主机接收数据)。每次由主机产生终止信号来结束数据传送,若主机要进行新的数据传送,则可以不产生终止信号,而是发出起始信号

33、对另一从机进行寻址。总线的数据传送有以下几种方式: a、主机向从机发送数据,数据传送方向不变 b、主机在第一个字节后,立即从从机读数据 c、在传送过程中,当需要改变传送方向时,起始信号和从机地址都被重复产生一次,但两次读/写方向正好反相 4.总线的寻址:IIC总线协议有明确的规定:采用7位的寻址字节(寻址字节是起始信号后的第一个字节)。 D7D1位组成从机的地址。D0位是数据传送方向位,为“0”时表示主机向从机写数据,为“1”时表示主机向从机读数据。 主机发送地址时,总线上的每个从机都将这7位地址码与自己的地址进行比较,如果相同,则认为自己正被主机寻址。 从机的地址由固定部分和可编程部分组成。

34、在一个系统中可接入多个相同的从机,接入从机的最大数目由从机地址中的可编程部分决定。如一个从机的7位寻址位有4位是固定位,3位是可编程位,这时仅能寻址8个相同的从机,即最多可有8个相同的从机接入到该IIC总线系统中。2.3 EDS803A三位半笔段式LCD屏简介2.3.1笔段式LCD屏简介笔段式LCD屏的结构与LED数码管很相似,但是由于是液晶,工作机理上不同,驱动方式也有很大差异: 1. LED有正负之分,液晶笔划没有。 2. LED在直流电压下工作,液晶需要交流电压,防止电解效应。 3. LED需要电流提供发光的能量,液晶笔划显示状态下电流非常微弱。 4. LED对微小电流不反应,液晶则很敏

35、感。 5. 液晶屏自身并不能发光,液晶屏中的液晶只是在电流的作用下有序排列从而阻隔光线而已。因此不能用驱动LED的方式去驱动LCD,LCD的驱动需要给每个笔划加上一个交流电压。一般用30.60Hz的方波就可以了,频率低了显示会有所波动,而频率高了功耗也会增加,这是因为因为LCD对电路呈现容性。另外因为LCD屏是交流驱动所以高低电平都可以“点亮”液晶。2.3.2 EDS893A屏简介EDS803A是我国大连佳显电子有限公司生产的一款工业级标准静态三位半笔段式LCD屏,因其具有性能稳定、可靠性高、实用强应用范围广的特点而被广泛应用于电子日历、电子称等日用电子产品和时速表、万用表等测量仪表。图2.3

36、 EDS803A电路图图2.4 EDS803A引脚图2.4电路设计2.4.1原理图图2.5 原理图PCB图图2.6 PCB图2.4.3 3D模拟图图2.7 3D模拟图.正面 图2.8 3D模拟图.背面2.4.4 实物图 图2.9 实物图3 系统软件设计3.1程序设计的总体方案内容3.1.1 程序设计流程图开始读取温度驱动显示计时T>=1.3sT=0否是图3.1程序设计流程图3.1.2总体设计方案首先是主程序要对LM75A和STC12C5A60S2单片机进行初始化设计。对LM75A的初始化设计包括:对LM75A配置寄存器、温度寄存器、TOS寄存器、THYST寄存器的设置,使得LM75A工作

37、于最合适的状态。对STC12C5A60S2单片机的初始化主要是对I/O的设定。初始化以后主程序要控制STC12C5A60S2单片机读取LM75A的温度寄存器中的数据,并计算这些数据,使之成为十进制数。再驱动LCD液晶屏显示十进制温度值。3.2系统的各个程序3.2.1主程序介绍及功能1.主程序的组成主程序主要由九个模块组成,函数库的调用、I/O口定义、数码表、虚拟IIC子程序、延时子程序、LCD液晶屏驱动子程序、读取温度函数、主函数、设置定时器函数/中断函数。在这里主要介绍软件程序的几个主要的模块,在附录中有本设计的源程序。2.主程序的功能主程序先设置LM75A芯片的内部寄存器,使LM75A采集

38、.55 至125的温度。然后单片机读取LM75A的温度寄存器中的数据并计算这些数据,使之成为十进制数。再驱动LCD液晶屏显示十进制温度值。3.2.2系统子程序1.函数库的调用#include <STC12C5A60S2.H> /STC头文件#include <string.h> /C语言里面关于字符数组的函数定义的头文件#include <intrins.h>/51基本运算(包括_nop_空函数) 2.数码表unsigned char code disdata=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f

39、,0x00; /无小数点八位段码数码表(09,无小数点)3.I/O口定义 详见附录34.虚拟IIC子程序详见附录4 5.延时子程序void DELAY_MS (unsigned int a) / 1ms延时程序(12MHz 10倍于51单片机速度时)unsigned int i;while( .a != 0)for(i = 0; i < 600; i+); 6.LCD液晶片交流驱动子程序详见附录6 7.读取温度函数void LM75A_GetTemp(void) unsigned char buf2; /温度值储存 unsigned char t=0,a=0; IRcvStr(LM75A

40、_ADD,0x00,buf,2); /读出温度值(器件地址,子地址,数据储存器,字节数)t = buf0; /处理温度整数部分,0125度LM75_N = 0; /温度值为正值if(t & 0x80) /判断温度是否是负极(MSB表示温度符号)LM75_N = 1; /温度值为负值t = t; t+; /计算补码(原码取反后加1)if(t & 0x01) a=a+1; /从高到低按位加入温度积加值(0125)if(t & 0x02) a=a+2; if(t & 0x04) a=a+4; if(t & 0x08) a=a+8; if(t & 0x1

41、0) a=a+16; if(t & 0x20) a=a+32; if(t & 0x40) a=a+64; LM75_T = a.7;/调试得a值比实际高7度所以做了温度修正(以UTC万用表温度档位测温为标准)a = 0;t = buf1; /处理小数部分,取0.125精度的前2位(12、25、37、50、62、75、87)if(t & 0x20) a=a+125; if(t & 0x40) a=a+250; if(t & 0x80) a=a+500; LM75_P = a; 8.主函数详见附录8 9.中断函数详见附录94 总结与展望4.1本课题工作总结根

42、据设计要求,为保证成品的精巧我选用的单片机是集成内部晶振、内部复位电路的STC12C5A60S2单片机和贴片的LM75A温度传感芯片,为保证显示范围选用的显示屏是带有正负号的EDS803A三位半笔段式LCD屏。通过对合适的元件进行合理的组装形成了外形小巧美观的硬件系统,与优化的软件结合使得该系统具有:简约、小巧、高精度、宽范围、抗干扰能力强、节能省电、高实用性的特点。模块化的设计理念使得该系统的适应性特别的强,既可以使用内置的超薄纽扣电池作为电源,又可以直接连接外部电源。本次设计我有很多的收获,比如:深入学习了单片机的相关知识;尝试了系统的思考问题和解决问题;使用了模块化的设计思想;强化了软件

43、的设计和应用;增强了调试和使用各实验设备的能力。但是在设计过程中由于时间仓促,个人能力有限,使得成品有诸多不足,需要改进和优化的地方有很多。比如:软件设计有待进一步优化,测量精度有待进一步提高。4.2 设计展望 本设计因为具有:简约、小巧、高精度、宽范围、抗干扰能力强、节能省电、高实用性的特点,所以应用前景良好。 因为本设计各芯片元件都是标准的工业级产品,所以本设计的抗破坏、抗干扰能力强,应用范围广。可以应用于日常生活需要测温的地方;可以应用于工厂车间、矿区作用;可以应用于办公环境测温;可以应用于户外体育运动;可以应用于各种复杂环境下(高温、高海拔)的测温工作。因为本设计底面有真空吸盘所以可以

44、广泛吸附于各种光滑平面。可以将本设计吸附于汽车前挡风玻璃作为监测车内温度的仪表;可以将本设计吸附于瓷砖墙面或玻璃窗上就可以随时看到室内温度;可以将本设计吸附于温室大棚的棚面上,参照本设计显示的温度调整棚内的温度,使棚内温度保持最佳状态;可以将本设计吸附于机器的外壳面,参照本设计显示的温度调整厂房内的温度,使机器保持最佳状态;可以将本设计吸附于水杯上,这样就可以直观地看到杯子的温度,进而推测出水的温度,不至于烫手。因为本设计简约、小巧、省电所以可以运用于各种平台随意移动。既可以长时间实时测温,又可以手持多点测温。因为本设计中的单片机留有5个I/O口备用,所以生产商者可以扩充更多的功能,生产出具有

45、更好的用户体验的产品。因为标准的元器件生产商多,原材料来源渠道广泛,所以生产商可以有效控制原材料成本。因为本设计没用使用电路板,所以进一步降低了成本。因为本设计使用硬件的直接连接,所以生产者只需要简单的加工就可以生产出价格低廉的产品上市。参考文献1 杜洋.爱上单片机IIM. 北京:人民邮电出版社人民邮电出版社,2011.2 杜洋.制作RT3电子温度计J.无线电,2011,1(1). 3 郭天祥.51单片机C语言教程M. 北京:电子工业出版社,2010.4 肖洪兵.给我学用单片机IIM.北京:北京航空航天大学出版社,2006.5 潘晓宁 单片机程序设计实践教程M.北京:清华大学出版社,2009.

46、6 谭浩强 C语言程序设计教程第4版M.北京:清华大学出版社,2010.7 周立功 单片机实验与实践M.北京:航空航天大学出版社,2009.8 孙涵芳.INTEL16位单片机M. 北京:北京航空航天大学出版社,1996. 9 王福瑞.单片微机测控系统设计大全M. 北京:北京航空航天大学出版社,1997.10 元增民,张文希.单片机原理与应用基础.国防科技大学出版社,2006,205.26611 严洁.单片机原理及其接口技术.机械工业出版社,2010,65.10512 范红刚.51单片机自学笔记.北京航空航天大学出版社,200913 高云.基于MSP430的温室多路数据采集系统.农机化研究,20

47、09,No.814 常铁原,王欣,陈文军. 多路数据采集系统的设计.电子技术应用,2008,No.1115 叶红海,李丽敏.基于单片机的多路数据采集系统的设计与实现.2008,No.4附录附录1函数库的调用#include <STC12C5A60S2.H> /STC头文件 #include <string.h> /C语言里面关于字符数组的函数定义的头文件#include <intrins.h>/51基本运算(包括_nop_空函数)#define uchar unsigned char /宏定义 无符号字符#define uint unsigned int/宏

48、定义 无符号整形#define LM75A_ADD 0x9E /宏定义 LM75A的I2C地址(1001 1110 A2 A1 A0 W/R)(LM75模块专用固定地址) 附录2 数码表Unsigned char code disdata=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00; /无小数点八位段码数码表(09,无小数点)附录3 I/O口定义unsigned char LM75_T,LM75_P; /温度值的整数,小数值(十进制,小数值2位,精度0.125中的前两位)unsigned char d0=0,d1=0,d2=0,

49、d3=0;/LM75A温度数值 ±位,百位,十位,个位unsigned int cou;/全局变量unsigned char menu=0;/全局变量sbit SDA=P22; /位定义.模拟I2C 数据传送位sbit SCL=P21; /位定义.模拟I2C 时钟控制位 bit m; /交流信号位操作(正负信号转换)bit IRcvStr(unsigned char sla,unsigned char suba,unsigned char *s,unsigned char no);/向有子地址器件读取多字节数据函数bit ISendStr(unsigned char sla,unsi

50、gned char suba,unsigned char *s,unsigned char no);/向有子地址器件发送多字节数据函数bit LM75_N;/温度值的符号(0正1负) bit ack; /应答标志位 /*单片机与液晶屏引脚直接连接 以下为对单片机的显示驱动引脚的定义*/ sbitDY_LCD_JIA=P0 0; /设置LCD连接的I/O口 | sbitDY_LCD0_LBC=P1 2; /设置LCD连接的I/O口 1BCsbitDY_LCD0_JIAN=P1 1; /设置LCD连接的I/O口 . sbitDY_LCD_COM=P1 0; /设置LCD连接的I/O口(LCD公共端

51、)sbitDY_LCD1_L1=P4 5; /设置LCD连接的I/O口a sbitDY_LCD1_L2=P4 4; /设置LCD连接的I/O口bsbitDY_LCD1_L3=P3 1; /设置LCD连接的I/O口csbitDY_LCD1_L4=P3 0; /设置LCD连接的I/O口dsbitDY_LCD1_L5=P1 6; /设置LCD连接的I/O口esbitDY_LCD1_L6=P4 6; /设置LCD连接的I/O口fsbitDY_LCD1_L7=P0 7; /设置LCD连接的I/O口gsbitDY_LCD2_L1=P2 4; /设置LCD连接的I/O口asbitDY_LCD2_L2=P0 6; /设置LCD连接的I/O口bsbitDY_LCD2_L3=P3 5; /设置LCD连接的I/O口csbitDY_LCD2_L4=P3 4; /设置LCD连接的I/O口dsbitDY_LCD2_L5=P3 3; /设置LCD连接的I/O口esbitDY_LCD2_L6=P2 5; /设置LCD连接的I/O口fsbitDY_LCD2_L7=P2 6; /设置LCD连接的I/O口gsbitDY_LCD2_L8=P3 6; /设置LCD连接的I/O口dpsbitD

温馨提示

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

评论

0/150

提交评论