带温度显示的电子钟.ppt_第1页
带温度显示的电子钟.ppt_第2页
带温度显示的电子钟.ppt_第3页
带温度显示的电子钟.ppt_第4页
带温度显示的电子钟.ppt_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、带温度显示的电子钟,MCS-51,目录,1.设计任务及要求 2.产品功能概述 3.工作原理及设计思路 4.主要模块程序及描述 5.总结,设计任务,(1)通过查阅相关资料,深入了解电子钟 的组成结构和工作原理; (2)学习有关动态显示方式及原理; (3)复习“MCS-51单片机原理及C语言程序设计”,掌握其接口扩展,如:显示、键盘等; (4)设计具有报时报温功能电子钟的原理图,构建硬件平台; (5)采用汇编或C语言编写应用程序并调试通过; (6)制作出样机并测试达到功能和技术指标要求; (7)写出设计报告。,产品功能: 设计产品实现一个依据时段可变显示亮度电子钟,具体如下: (1)能够实现基本时

2、钟的走时,显示范围是00:00:0023:59:59。能够实现时钟的调整,通过按键可以对“时”位和“分”位进行加1调节,并能当加至最大值时能重新归零。 (2)能够实现当前室温的测量功能,并 在数码管上予以显示 (3)能够实现年月日的显示与切换。 (4)能够实现温度的显示与切换。,1.系统结构框图,单片机,DS1302芯片,DS18B20,其他模块,数码显示模块,电路图,IO定义,sbit DQ=P13;/DS18B20 I/O sbit led=P10; Sbit T-RST=P35;/ds1302-5 Sbit T-IO=P34;/ds1302-6 Sbit T-CLK=P36;/ds130

3、2-7 Sbit ACC0=ACC0; Sbit ACC7=ACC7; Sbit up=P31; /4 Sbit down=P32; /8 Sbit set=P30; / 0 Sbit c=P33; /C,2.程序流程图,开始,初始化,是否按c键,时间显示,显示日期,是否按c键,显示温度,是否按c键,是,是,是,否,否,否,注释:调整程序包含其中,3.主要器件介绍,(1)温度传感器DS18B20 1.1、适应电压范围更宽,电压范围:3.05.5V 1.2、独特的单线接口方式,DS18B20在与微处理器连接时仅需要 一条口线即可实现微处理器与DS18B20的双向通讯 1.3、DS18B20在使用

4、中不需要任何外围元件,全部 传感元件及转换电路集成在形如一只三极管的集成电路内 1.4、温范围55+125,在-10+85时精度为0.5 1.5、测量结果直接输出数字温度信号,以一 线总线串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力,图:封装图,内部结构图,温度格式表,RAM指令表: 温度变换:44H,启动DS1820进行温度转换,12位转换时最长为750ms(9位为93.75ms)。结果存入内部9字节RAM中。 读暂存器 :0BEH ,读内部RAM中9字节的内容 写暂存器: 4EH ,发出向内部RAM的3、4字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据

5、。 复制暂存器 :48H ,将RAM中第3 、4字节的内容复制到EEPROM中。 重调 EEPROM :0B8H 将EEPROM中内容恢复到RAM中的第3 、4字节。 读供电方式: 0B4H 读DS1820的供电模式。寄生供电时DS1820发送“ 0 ”,外接电源供电 DS1820发送“ 1 ”。,表1DS18B20详细引脚功能描述,DS18B20的性能特点如下: 独特的单线接口仅需要一个端口引脚进行通信; 多个DS18B20可以并联在惟一的三线上,实现多点组网功能; 无须外部器件; 可通过数据线供电,电压范围为3.05.5; 零待机功耗; 温度以或位数字; 用户可定义报警设置; 报警搜索命令

6、识别并标志超过程序限定温度(温度报警条件)的器件; 负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;,DS18B20温度传感器的内部存储器包括一个高速暂存和一个非易失性的可电擦除的EERAM。高速暂存RAM的结构为字节的存储器,结构如图3所示。头个字节包含在工作模式还是在测试模式,DS18B20出厂时该位被设置为,用户要去改动,R1和0决定温度转换的精度位数,来设置分辨率。测得的温度信息,第和第字节和的拷贝,是易失的,每次上电复位时被刷新。第个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位

7、的定义如图3所示。低位一直为,是工作模式位,用于设置DS18B20,图3 DS18B20字节定义,DS18B20的测温原理 器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器的脉冲输入。器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将55所对应的一个基数分别置入减法计数器、温度寄存器中,计数器和温度寄存器被预置在55所对应的一个基数值。 减法计数器对低温度系数晶振

8、产生的脉冲信号进行减法计数,当减法计数器的预置值减到时,温度寄存器的值将加,减法计数器的预置将重新被装入,减法计数器重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。,初始化复位: void set_18b20() uchar a; DQ=1; a=1; while(-a); DQ=0; a=113; while(-a);while(-a);/750us的延时 DQ=1; a=30; while(-a);

9、 if(DQ=0) a=240;led=0; while(-a); ,void write_18b20(uchar date)/写1个字节 uchar i,a; for(i=8;i0;i-) DQ=0; a=7; while(-a); DQ=date ,uchar read_18b20() uchar i,a,temp; for(i=8;i0;i-) temp=temp1; DQ=0; a=3; while(-a); DQ=1; a=2; while(-a); if(DQ) temp=temp|0 x80;/1000000 a=15; while(-a); return (temp); ,vo

10、id display() uchar tempintbai,tempintshi,tempintge,xiaoq,xiaob,xiaos,xiaog; tempintbai=tempint/100; tempintshi=tempint%100/10; tempintge=tempint%10; xiaoq=tempdf%10000/1000; xiaob=tempdf%1000/100; xiaos=tempdf%100/10; xiaog=tempdf%10;,P0=0 x00; P2=1; P0=ELtempintbai; delay(20); P0=0 x00; P2=2; P0=EL

11、tempintshi; delay(20); P0=0 x00; P2=3; P0=ELtempintge|0 x80; delay(20); P0=0 x00; P2=4; P0=ELxiaoq; delay(20); P0=0 x00; P2=5; P0=ELxiaob; delay(20); P0=0 x00; P2=6; P0=ELxiaos; delay(20); P0=0 x00; P2=7; P0=ELxiaog; delay(4); if(f=1) P2=0; P0=0 x40; delay(20); ,(2)DS1302,1 DS1302 的结构及工作原理 DS1302是美国

12、DALLAS 公司推出的一种高性能、低功耗、带RAM的实时时钟芯片,它可以对年、月、日、周日、时、分、秒进行计时,且具有闰年补偿功能,工作电压宽达2.55.5V。采用三线接口与CPU 进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。 内部有一个31的用于临时性存放数据的RAM 寄存器。,1.1 引脚功能表及内部结构图,引脚功能如表1 所示。,1.2 DS1302 的控制字节说明 DS1302 的控制字如图2 所示。 控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302 中位6 如果为0,则表示存取日历时钟数据,为1 表示存取RAM数据;位至

13、位1 指示操作单元的地址;最低有效位(位0)如为0 表示要进行写操作,为1 表示进行读操作,控制字节总是从最低位开始输出。,1.3 复位 通过把 输入驱动置高电平来启动所有的数据传送。 输入有两种功能:首先,接通控制逻辑,允许地址命令序列送入移位寄存器;其次, 提供了终止单字节或多字节数据的传送手段。当 为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中置 为低电平,则会终止此次数据传送,并且I/O 引脚变为高阻态。上电运行时,在Vcc2.5V 之前, 必须保持低电平。只有在SCLK 为低电平时,才能将RST 置为高电平。,1.4 数据输入输出 在控制指令字输入后

14、的下一个SCLK 时钟的上升沿时数据被写入DS1302,数据输入从低位即位0 开始。同样,在紧跟8 位的控制指令字后的下一个SCLK 脉冲的下降沿读出DS1302 的数据,读出数据时从低位0 位至高位7,数据读写时序见图。,DS1302写入操作: void write_byte(uchar da) uchar i; ACC=da;/10000001 for(i=8;i0;i-) T_IO=ACC0; T_CLK=0; T_CLK=1; ACC=ACC1;/01000000 ,DS1302读取操作: uchar read_byte(void) uchar i; for(i=0;i1;/01000

15、000 T_CLK = 1; T_CLK = 0; ACC7 = T_IO;/10000000 return(ACC); ,void write_1302(uchar addr,uchar da) T_RST=0; /停止工作 T_CLK=0; T_RST=1; /重新工作 write_byte(addr); /写入地址 write_byte(da); T_RST=0; T_CLK=1; ,uchar read_1302(uchar addr) uchar temp; T_RST=0; /停止工作 T_CLK=0; T_RST=1; /重新工作 write_byte(addr); /写入地址

16、temp=read_byte(); T_RST=0; T_CLK=1; /停止工作 return(temp); ,4.显示说明,如上图,最左边显示为时,中间为分,最右边为秒 当按一次0时,只显示时并进入时调整,当按两次0时,只显示分并进入分调整。按下三次0后,回到最初状态。 按下一次c后,会进入日期显示,再次按下进入温度显示,三次后回到时间显示状态。,1,3,-,5,2,-,4,5,5.键盘控制说明,0键为时钟设置、时分切换、保存按钮 4键为加按钮 8键为减按钮 c为时间,日期,温度切换按钮,主程序及时间显示调整,日期显示调整,温度显示,调试展现,实验总结,在本次设计过程中,我们遇到了很多问题,在一一解决之后我们学到了很多东西,对知识的理解也更加深刻了。 通过本次设计,我们重新复习了单片机的有关知识,涉及到单片机结构原理、指令、定时器、子程序调用、数码管显示、温度传感器等,并复习了C语言知识。我们对知识的认识有了一个质的提高,更深刻的认识到理论与实践之间的差距。 编写电子时钟程序时,我们先上网搜集了相关资料,熟悉了一下类似实验的编程思想,也从中借鉴了一些好的做法,结合自己实验的要求来取舍,由于程序庞大,特别需要注意

温馨提示

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

评论

0/150

提交评论