1、(1) LCD显示实时时钟:年、月、日、时、分、秒;(2) 每30秒采样温度,LCD更新显示温度值;(3) 按键触发存储当前温度和时钟信息(年、月、日、时、分);(4) 按键触发串口传输存储的温度和时钟信息;(5) 温度测量精度:1度。1.3 题目评析本设计题我们小组摒弃了常规做法,加入了两项独特的创新实现方法:(1) 对于数据传送储存显示方面我们不使用24C02存储器,I2C存储器等储存器件,而是直接通过串口将数据传输的电脑中通过VB界面显示数据并将数据记录在电脑硬盘中。(2)在设置时间日期,上限温度上,我们不仅仅采用了硬件按钮控制而且还加入了红外遥控控制。 与此同时,我们的温度测量精度在理
2、论上能达到0.0625.实际运行时也能达到0.1度,而实验所要求的仅为1摄氏度。另外,在DS1302芯片上加入了一个备用电源,使得主电源掉电时,时钟芯片仍然在随着时间的移动而实时更新。因此主电源再次上电时,时钟依然是准确的,而不必重新调过2 方案比较与论证2.1 各种方案比较与选择2.1.1 温度传感器目前使用接触式比较多,主要有热电式传感器,把温度变化转换为电阻变化的叫热电阻传感器,把温度变化转换为热电势变换的叫热电偶传感器。方案1:热电阻传感器具有高温系数,高电阻率,物理特性稳定,良好的线性输出等优点,常用的有pt100和pt100等。方案2:热电偶传感器具有结构简单,测量范围广,热惯性小
3、,准确度高,输出信号远的优点,但价格较高。方案3:新型可编程温度传感器DS18B20,精度高,成本低,易于采集信号。利用热电偶或热敏电阻作为温度传感器,这类传感器至仪表之间通常都要用专用的温度补偿导线,而温度补偿导线的价格很高,并且线路太长,会影响测量精度,这是直接以模拟量形式进行采集的不可避免的问题。采用新型可编程温度传感器DS18B20进行温度检测可以避免热电偶或热敏电阻作为温度传感器所造成的测量精度误差过大等问题,同时DS18B20只需要一个I/O口便可以进行通信,它可以以更低的成本和更高的精确度实现温度检测。所以选择方案3。2.1.2 时钟显示采用内部时钟计时。采用外部时钟芯片DS13
4、02。采用内部时钟计时,可以节省IO引脚,降低成本,但是内部振荡器使用阻容震荡,其精度不高,如果使用了串口、或者PWM等对时钟比较敏感的功能,会对时钟造成混乱。采用外部时钟芯片DS1302,不仅仅能对时间进行计时还可以对年、月、日、周进行计时,具有闰年补偿功能而且对于使用串口、或者PWM等对时钟比较敏感的功能,不会产生影响。如果接入外置电子电池的话在系统掉电的情况下还可以继续计时。所以选择方案2。2.1.3 时间温度数据显示采用数码管显示。方案2,采用LCD显示器显示。采用数码管显示时间温度数据操作方便,但需要用到的数码管数量甚多,占用I/O口较多,浪费I/O口的利用率,且只能显示数字。而使用
5、LCD显示虽然在编程上有一定程度比数码管显示的复杂性高,但其占用的I/O资源较少,且能显示的内容比数码管丰富的多,不仅能显示数值还能显示英文。所以使用方案2.2.1.4 数据的串口传送与储存显示通过串口将数据传送到另一个单片机系统上显示,采用24C02存储器对数据进行储存。通过串口将数据传送到PC机上并用VB程序编写的界面显示,采用PC机上的“D盘”对数据进行储存。通过串口将数据从一个单片机传送到另一个单片机上设置较为简单,将数据存储到24C02存储器上,不易于对任意时间温度数据进行提取,而将数据传送到PC机上并用VB界面显示出来不仅美观而且信息量丰富,将数据储存在“D:温度.TXT”目录下不
6、仅存储量大,而且便于直观查看。所以使用方案2。3 系统硬件设计3.1 系统的总体设计本系统以AT89C52 单片机为核心,采用温度传感器DS18B20进行温度检测,将数字温度信息传输到单片机中,在时钟方面采用外部时钟芯片DS1302 ,DS1302 是一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周、时、分、秒进行计时。单片机通过采集温度时间信息后将温度时间数据传送到LCD上显示出来,并将数据通过串口通信通过MAX232传送到电脑中,硬件总体框图如下:图3-1 硬件总体框图下图为我们的仿真原理图,如下图所示,将程序载入单片机后,LCD显示正常。即时温度为37.3度,而时间为2
7、011年7月16日,14点30分44秒。图3-2 总体原理图3.2 功能模块设计及工作原理的分析3.2.1 时钟显示模块时钟模块采用外部时钟DS1302进行计时,DS1302 是一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能
8、力。其管脚图以及此模块仿真图如图3-3(a)及3-3(b)所示。(a) (b)图3-3 DS1302管脚图与时钟模块仿真图各引脚的功能为: Vcc1:备用电源;Vcc2:主电源。当Vcc2Vcc1+0.2V时,由Vcc2向DS1302供电,当Vcc2 Vcc1时,由Vcc1向DS1302供电。 在实物中,我们将vcc1与一颗3V的钮扣电池相连,从而实现时钟实时更新功能。SCLK:串行时钟,输入,控制数据的输入与输出;I/O:三线接口时的双向数据线;CE:输入信号,在读、写数据期间,必须为高。该引脚有两个功能:第一,CE开始控制字访问移位寄存器的控制逻辑;其次,CE提供结束单字节或多字节数据传输
9、的方法。DS1302有下列几组寄存器:DS1302有关日历、时间的寄存器共有12个,其中有7个寄存器(读时81h8Dh,写时80h8Ch),存放的数据格式为BCD码形式,如下图3-4所示。图3-4 各寄存器详情DS1302 的控制字如图3-5所示。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入
10、从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。图3-5 DS1302控制字DS1302可以用于数据记录,特别是对某些具有特殊意义的数据点的记录,能实现数据与出现该数据的时间同时记录。这种记录对长时间的连续测控系统结果的分析及对异常数据出现的原因的查找具有重要意义。传统的数据记录方式是隔时采样或定时采样,没有具体的时间记录,因此,只能记录数据而无法准确记录其出现的时间;若采用单片机计时,一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且,某些测控系统可能不允许。但是,如果
11、在系统中采用时钟芯片DS1302,则能很好地解决这个问题。3.2.2 温度传感器模块采用新型可编程温度传感器DS18B20进行温度检测,具有抗干扰能力强、温度采集精度高、不需要复杂的调理电路和AD转换电路等特点,只要将DS18B20的I/O口直接与单片机的I/O相连接即可读取数字温度。DS18B20 内部结构主要由四部分组成: 64位光刻 ROM 、温度传感器、非挥发的温度报警触发器 TH 和 TL 、配置寄存器。DS18B20技术性能描述: 独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。测温范围 -55+125,固有测温分辨率0
12、.5。其管脚图如图3-6(a),其仿真图如图3-6(b)所示。图3-6 DS18B20管脚图及其温度检测模块仿真图根据DS18B20的通讯协议,主机(单片机)控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行 复位操作,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,当DS18B20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功。其时序图如下图3-7:图3-7 DS1302复位时序图DS18B20温度值格式表如下,其中
13、S表示符号位。以下是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0, 这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。图3-8 DS18B20温度值格式DS18B20中的温度传感器完成对温度的测量,用16位二进制形式表达,举例如下:图3-9 DS18B20温度值16位二进制形式表达另外DS18B20的ROM指令表详见附表1,RAM指令表详见附表2。3.2.3 LCD显示数据模块LM016L液晶模块采用HD44780控制器,h
14、d44780具有简单而功能较强的指令集,可以实现字符移动,闪烁等功能,LM016L与单片机MCU通讯可采用8位或4位并行传输两种方式,hd44780控制器由两个8位寄存器,指令寄存器(IR)和数据寄存器(DR)忙标志(BF),显示数RAM(DDRAM),字符发生器ROMA(CGOROM)字符发生器RAM(CGRAM),地址计数器RAM(AC)。IR用于寄存指令码,只能写入不能读出,DR用于寄存数据,数据由内部操作自动写入DDRAM和CGRAM,或者暂存从DDRAM和CGRAM读出的数据,BF为1时,液晶模块处于内部模式,不响应外部操作指令和接受数据,DDTAM用来存储显示的字符,能存储80个字
15、符码, CGROM由8位字符码生成5*7点阵字符160中和5*10点阵字符32种。Lm016l的引脚图如图3-10(a)其仿真图如图3-10(b)。图3-10 LCD1602引脚图及其显示模块仿真图其中各引脚功能如下表所示: 表3-1 lm016l引脚功能图引脚符号功能说明1VSS一般接地2VDD接电源(+5V)3V0液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。4RSRS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。5R/WR/W为读写信号线,高电平(1)时进行读操作,低电平(
16、0)时进行写操作。6EE(或EN)端为使能(enable)端,下降沿使能。714DB0-DB7双向数据总线 7位(其中DB7即最高位,也是busy flag)15BLA背光电源正极16BLK背光电源负极其寄存器选择控制表如下表3-2所示: 表3-2 lm016l寄存器选择控制表操作说明写入指令寄存器(清除屏等)都busy flag(DB7),以及读取位址计数器(DB0DB6)值写入数据寄存器(显示各字型等)从数据寄存器读取数据3.2.4 串口数据传输显示模块串行接口Serial Interface是指数据一位位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信,并可以利用电话线
17、,从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。RS-232也称标准串口,最常用的一种串行通讯接口。采取不平衡传输方式,即所谓单端通讯。由于其发送电平与接收电平的差仅为2V至3V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约15米,最高速率为20kb/s。RS-232是为点对点(即只用一对收、发设备)通讯而设计的,其驱动器负载为37k。所以RS-232适合本地设备之间的通信。这里我们通过AT89C52的串行传输口TXD,RXD,将温度,时间数据通过MAX232传输到PC上并通过VB界面显示时间温度描绘温度/时间曲线。MAX232芯片是美信公司专门为电脑的R
18、S-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。 MAX232引脚图如图3-11(a)硬件设置如图3-11(b),VB显示界面如图3-12。图3-11 MAX232引脚图及其MAX32仿真图图3-12 单片机温度检测记录系统(vb)如图3-11(a)与3-11(b)所示,其各引脚功能介绍如下:第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、
19、14脚(T1OUT)为第一数据通道。8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DB9插头;DB9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。第三部分是供电。15脚GND、16脚VCC(+5v)。3.3 发挥部分的设计与实现发挥部分包含两个部分。首先是年月日时分秒及其温度报警上限功能设置,另外还有串口数据传输部分的实现。3.3.1 年月日时分秒,温度报警上限设置功能年月日时分秒及其温度报警上
20、限功能设置有两种方法,包括硬件按键设置以及红外遥控设置。3.3.1.1 硬件按钮部分硬件按钮部分设置如图3-13所示,key1:为功能设置进入按钮,key2:为功能切换按钮如图3-14,3-15,3-16,3-17,3-18,3-19,3-20,所示。key3:为加一功能按键。key4:为减一功能按键。在这一部分中,4个按键按下key1即可进入年设置模式,通过key3与key4键进行加一减一操作。设置完年份之后,再按下key2即可进入月份设置操作,继续按下则能相继出现日,时,分,秒及温度上限的设置操作,同理,key3与key4对数值设置进行加减。图3-13 硬件按钮设置 图3-14 设置年份
21、图3-15设置月份 图3-16 设置日期 图3-17 设置小时 图3-18 设置分钟图3-19 设置秒 图3-20 设置温度3.3.1.2 红外遥控设置模块人的眼睛能看到的是可见光,若按波长排列,依次(从长到短)为红、橙、黄、绿、青、蓝、紫,红光的波长范围为 0.62m0.7m,比红光波长还长的光叫红外线。红外线遥控器就是利用波长 0.76m1.5m之间的近红外线来传送控制信号的。红外线的特点是不干扰其他电器设备工作,也不会影响周边环境。调试简单,若对发射信号进行编码,可实现多路红外遥控功能。红外线发射和接收:红外遥控发射器由键盘矩阵、遥控专用集成电路、激励器和红外发光二极管组成。遥控专用集成
22、电路(采用AT89S52 单片机)是发射系统的核心部分,其内部由振荡电路、定时电路、扫描信号发生器、键输入编码器、指令译码器、用户码转换器、数码调制电路及缓冲放大器等组成。它能产生键位扫描脉冲信号,并能译出按键的键码,再经遥控指令编码器得到某键位的遥控指令(遥控编码脉冲),由38KHZ 的载波进行脉冲幅度调制,载有遥控指令的调制信号激励红外二极管发出红外遥控信号。在红外接收器中,采用光电转换器(光电二极管),将接收到的红外光指令信号转换成相应的电信号。由于技术原因与制作成本,红外遥控发射器是利用现成的电视遥控器。接收器将接收到的红外频率数据传输到单片机中,进行处理识别红外控制的按键,从而进行时
23、间温度的设置。3.3.2 按键传输串口数据如下图3-18为串口传输的按键。四个按键分别对应的功能如下:Key3:单次按键传输串口数据,即每触发一次传输一次即时的时间温度数据。Key4:触发一次连续传输即时的串口数据。Key2:停止串口数据传输按钮。图3-18 按键传输串口数据功能键4 系统软件设计主函数开始先进行LCD初始化,时钟芯片初始化,串口初始化,之后通过时间,温度处理函数读取时间,温度的数值,判断是否有按键被按下,如果没有运行时间显示函数,温度显示函数,温度报警函数;如果按键被按下,则进入功能设置函数调节时间和温度上限。总体程序流程图如图4-1所示。图4-1 总体程序流程图主程序可见附
24、录程序1。4.1 温度传感器流程图 将DS18B20首先要将温度传感器内存初始化,逐字读取传感器RAM中的的温度数据,并将数据转化为十进制的浮点型数据,返回温度值。其流程图如下: 图4-2温度传感器流程图 温度传感器程序见附录程序2。4.2 时钟芯片流程图 判断时间显示是否正确如果不正确外部电路可从新设置时钟之后进入流程(1),如果时间显示正确,(1)读取芯片内部RAM中的提取年、月、日、时、分、秒数据,并将年、月、日、时、分、秒值返回。图4-3 时钟芯片流程图时钟芯片程序见附录程序3。4.3 红外控制程序流程图初始化红外接收管,判断是否接收到红外信号,无则结束,有则判断红外信号是否为有用信号
25、,如有有用信号则返回相应的值。 图4-4 红外控制程序流程图红外控制程序见附录程序4。 5 测试结果如上图为我们所搭的实物图,接通电源后,各个模块均正常工作,LCD显示时间温度正常,串口数据正常传送到PC中显示存储。另外发挥部分的红外遥控器,绿灯为红外遥控的指示灯,在控制时能够正常发亮,显示屏上数据也能随之而变,说明红外遥控器能够正常控制各个功能按钮。 如下图为单片机温度检测记录系统的VB界面,其显示时间温度正常,温度/时间曲线描绘正确,如下图所示。 图5-2 温度/时间曲线图6 系统电路存在的不足和改进的方向电路存在不足之处在于时间温度的串口传输是通过有线进行的,灵活性与局限性较大,如果主系统与从系统距离较大,便使用起来更不方便,改进之处在于,不使用有线传输数据,而是使用无线传输数据,使用功率较大的无线接受发器还可以传送百米甚至几百米以上的距离,在软件方面对无线设置协议便可解决因距离过大而产生的数据出错。另外,可以考虑同时实现本地存储与异地存储的结合使用。困为如果要存储在电脑上,虽然美观而且使用方便,但是其功耗及延时将会比存储在本地上要多得多。所以,这也将是一个改进的方向。7 参考文献1 林立. 单片机原理及应用基于Proteus和Keil C. 北京:电子工业出版社, 20102 刘炳文.Visual Basic 程序设计教程(第四版). 北京:清华大学出版社,20093
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1