带温度的电子时钟.doc

上传人:啊飒飒 文档编号:10891486 上传时间:2021-06-11 格式:DOC 页数:13 大小:335KB
返回 下载 相关 举报
带温度的电子时钟.doc_第1页
第1页 / 共13页
带温度的电子时钟.doc_第2页
第2页 / 共13页
带温度的电子时钟.doc_第3页
第3页 / 共13页
带温度的电子时钟.doc_第4页
第4页 / 共13页
带温度的电子时钟.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《带温度的电子时钟.doc》由会员分享,可在线阅读,更多相关《带温度的电子时钟.doc(13页珍藏版)》请在三一文库上搜索。

1、简易数字温度计(附加电子钟)班 级: 自动化0812班学生姓名: 时间: 从2010年 12月 25日 到 2011年 1 月 3日一、摘要:本系统以STC89C52单片机为核心,采用高精度温度传感器DS18B20采样温度数据,将温度转换成数字信号,由STC89C52单片机负责发出指令和接收采样数据,经过数据处理后,并以字符LCD1602实现温度显示的简易测温系统。在温度的检测与控制方面,由于18B20小型温度检测系统及其数字温度传感器有许多突出的优点,其通过单总线与单片机连接,系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度检测。为了不让功能太单一,造成资源的浪费,本人利用单片机本身

2、定时器模拟了一套电子时钟,可实现时钟设置,闹钟,倒计时,秒表等功能!二、关键词:STC89C52单片机,DS18B20数字温度传感器,LCD1602液晶显示器。三、设计原理与总体方案:方案论证与比较、温度计方案一:采用STC89C52单片机作为核心控制器,利用AD590温度传感器完成温度的测量,把转换的温度值的模拟量送入STC89C52单片机的P0端口的其中一个通道进行A/D转换,将转换的结果进行温度值变换之后送入LCD1602显示。如图1所示。该方案硬件电路简单,容易实现,但相对于方案二,其成本相对高,精度也低,测温点数量少,对线阻有要求。AD590STC89C52A/D转换及数据处理LCD

3、1602图1 方案一系统设计框图方案二:采用STC89C52单片机作为核心控制器,用高精度温度传感器DS18B20采样温度数据,将温度转换成数字信号,由STC89C52单片机负责发出指令和接收采样数据,经过数据处理后,并以字符LCD1602实现温度显示的简易测温系统。如图2所示,该方案硬件电路简单,容易实现,相对于方案一,成本低,精确度高,可达0.0625,由于每个DS18B20都有独立的地址序列码,所以单总线可同时连接很多温点,信号线距离远.DS18B20STC89C52发送指令/数据处理LCD1602图2 方案二系统设计框图综上所述,两方案的对比,所以选择方案二。、电子钟方案一:时钟的设计

4、可以应用专业的时钟芯片DS1302,DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。使用方便,同时可携带外部电源,达到掉电数据不丢失。使用起来安全可靠!DS1302STC89C52数据处理LCD1602方案一:采用单片机内部定时器进行模拟,设定定时器到一定时间产生中断,当中断次数达到一秒时秒钟加一,当秒钟加一到60

5、,则分钟加一,下则时钟加一,以此实现电子计时。次设计方案虽然对硬件要求不高,但是对单片机内部资源消耗过大,由于是利用定时器进行模拟,长期运行可能存在大的时间误差!STC89C52定时器LCD1602 由于我的初衷是设计一个数字温度计,但是发现功能太单一,造成了资源的浪费,同时想让自己对单片机的定时器有更深入的理解,所以我选择了方案二,用两个定时器T0,T1模拟出了一套多功能电子时钟。其中实现了时钟显示,日期显示,闹钟报警,秒表计时,倒计时报警等功能!可通过四个按键对时钟,闹钟,秒表,定时器进行设置。四、硬件设计:硬件电路主要分为供电系统、温度采集、控制电路、单片机系统,显示电路和报警电路六部分

6、。其总体电路图如图1所示。图1 总体电路图4.1供电系统:本供电电路用一个1/18的变压器将220V交流电变为12V,通过全桥整流变成直流电,在通过稳压芯片L7805稳压成5V直流电,在通过电容滤波最后变成稳定的5V直流电对系统供电,具体电路如图2所示。图2供电电路4.2:温度采集 本系统用一个集成的数字温度传感器DS18B20进行温度的采集。DS18B20通过P2.6口将温度数据传给单片机,由单片机进行处理,最后显示!电路如图3所示。图3温度采集电路4.3控制电路:本系统通过4个独立按键对系统进行设置。数据选择电路如图4所示。图4控制电路4.4单片机系统:单片机采用STC89C52,采用12

7、MHZ的晶振频率。单片机系统的电路如图5所示。图5单片机系统4.5显示电路:显示电路由1602组成,其电路如图6所示。图6显示电路4.6报警电路:报警电路由一个PNP三极管驱动蜂鸣器组成,其电路如图7所示。 图7报警电路五 软件设计:多功能温度计的软件设计主要由主程序、显示程序、温度采集程序组成。5.1温度计程序设计:操作步骤根据DS18B20的通讯协议,主机(单片机)控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位操作。复位成功后发送一条ROM指令。最后发送RAM指令。这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然

8、后释放,当DS18B20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功。ROM指令表指 令约定代码功 能读ROM0x33读DS1820温度传感器ROM中的编码(即64位地址)符合 ROM0x55发出此命令之后,接着发出 64 位 ROM 编码,访问单总线上与该编码相对应的 DS1820 使之作出响应,为下一步对该 DS1820 的读写作准备。搜索 ROM0xF0用于确定挂接在同一总线上 DS1820 的个数和识别 64 位 ROM 地址。为操作各器件作好准备。跳过 ROM0xCC忽略 64 位 ROM 地址,直接向 DS1820 发温度变换命令

9、。适用于单片工作。告警搜索命令0xEC执行后只有温度超过设定值上限或下限的片子才做出响应。RAM指令表指令约定代码功 能温度变换0x44启动DS1820进行温度转换,12位转换时最长为750ms(9位为93.75ms)。结果存入内部9字节RAM中。读暂存器0xBE读内部RAM中9字节的内容写暂存器0x4E发出向内部RAM的3、4字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据。复制暂存器0x48将RAM中第3 、4字节的内容复制到EEPROM中。重调 EEPROM0xB8将EEPROM中内容恢复到RAM中的第3 、4字节。读供电方式0xB4读DS1820的供电模式。寄生供电时DS

10、1820发送“ 0 ”,外接电源供电 DS1820发送“ 1 ”。5.1电子时钟程序设计时钟:设定定时器T0每隔50ms产生一次中断,达到20次中断时则满一秒,当满60秒时使分钟加一,然后时钟加一,依此类推;时钟:每次中断将事先设置好的闹钟时间与时钟比较,如果到点则蜂鸣器发出频率为2的报警,按下任意键则关闭报警。秒表: 使用定时器T1每隔10ms产生一次中断,当在秒表模式时按下启动按钮则定时器T1开始计时!到达100次中断则为1秒,依此类推;倒计时:当在倒计时模式下按下启动按钮启动定时器T1,当中断100次后则秒钟减一,直到减为零则蜂鸣器长鸣,按下任意键关闭蜂鸣器。按键控制:1、当按下0次功能

11、键时为时钟模式,显示为时钟,直接按下K1,K2,K3分别对时、分、秒进行设置。 2、按下1次功能键则为闹钟模式,显示为闹钟设置值,直接按下K1,K2,K3分别对闹钟时、分、秒进行设置。 3、按下2次功能键则为秒表模式,显示为秒表计时,直接按下K1启动秒表工作,再次按下K1则停止秒表,按下K3则清零秒表。 4、按下3次功能键则为倒计时模式,显示为倒计时数据,直接按下K2,K3分别对倒计时初始值的分、秒进行设置,然后按下K1启动倒计时,计时时间到则蜂鸣器长鸣,按下任意键则关闭蜂鸣器。定时器T0:系统使用12M晶振,定时器每加一一次为1us,T0设置为模式1(16位),为了是定时器T0每隔50ms中

12、断一次,则设置初值为(65536-50000)。 定时器T1:设置T1为模式1(16位),每隔10ms中断一次,则初值为(65536-10000)。5.2 主程序:1、主程序流程图如图8所示。开始初始化数据选择信号系统初始化检查功能键按下次数显示结果 3为倒计时1为闹钟2为秒表0为时钟温度图8 主程序流程图2、主要程序流程图。2.1 DS18B20初始化流程主机状态命令/数据说明发送Reset复位接收Presence从机应答发送0XCC忽略ROM匹配(对单从机系统)发送0X4E写暂存器命令发送2字节数据设置温度值边界TH,TL发送1字节数据温度计模式控制字3.2 DS18B20温度转换以及读取

13、流程主机状态命令/数据说明发送Reset复位接收Presence从机应答发送0XCC忽略ROM匹配(对单从机系统)发送0X44温度转换命令等待等待100200ms发送Reset复位接收Presence从机应答发送0XCC忽略ROM匹配(对单从机系统)发送0XBE读取内部寄存器命令读取9字节数据前2字节为温度数据3.1 DS18B20初始化流程主机状态命令/数据说明发送Reset复位接收Presence从机应答发送0XCC忽略ROM匹配(对单从机系统)发送0X4E写暂存器命令发送2字节数据设置温度值边界TH,TL发送1字节数据温度计模式控制字3.2 DS18B20温度转换以及读取流程主机状态命令

14、/数据说明发送Reset复位接收Presence从机应答发送0XCC忽略ROM匹配(对单从机系统)发送0X44温度转换命令等待等待100200ms发送Reset复位接收Presence从机应答发送0XCC忽略ROM匹配(对单从机系统)发送0XBE读取内部寄存器命令读取9字节数据前2字节为温度数据六、系统测试6.1 系统测试由于缺少系统测试的设备,所以在测试的时候曾想用简易的水银温度计,但在精确值又上不及本数字温度计的0.0625,所以系统测试无法正常进行。也曾试用仿真系统,但仿真毕竟不够真实,所以在我们现有设备下无法进行。6.2 误差分析造成误差的原因有:由于没有进行系统测试,无数据进行参考。

15、所以按电路结构和所用电子元件理论分析,可能产生误差的可能有:温度传感器元件的好坏。由于单片机使用的是内部8M赫兹晶振,所以当单片机温度过高时可能使频率有所波动,进而影响程序中的延时函数精度,导致无法正常产生时序,使 DS18B20无法正常工作。还有电源的稳定等。七、结论在误差范围内,此数字温度计,工作稳定,功耗低,结构简单,精确度高,使用方便。如果用在当前市场中去,可以使用管脚更少的单片机,而且还可以使用数码管来显示,这一方面可以减少元件成本,另一方面可以使工作电压更低,功耗更低。具有广泛市场前景。至于电子时钟,由于是用定时器模拟,存在一定的时钟误差!若使用专业的时钟芯片(如DS1302),可是电子时钟得以优化!八、附主要程序清单【参考文献】1 单片机原理与应用及C51程序设计 唐颖主编 北京大学出版社 2008-8-12 博弈电子 51单片机软硬件设计教程 13

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1