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

下载本文档

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

文档简介

关于带温度显示的电子钟目录1.设计任务及要求2.产品功能概述3.工作原理及设计思路4.主要模块程序及描述5.总结第2页,共35页,2024年2月25日,星期天设计任务(1)通过查阅相关资料,深入了解电子钟的组成结构和工作原理;(2)学习有关动态显示方式及原理;(3)复习“MCS-51单片机原理及C语言程序设计”,掌握其接口扩展,如:显示、键盘等;(4)设计具有报时报温功能电子钟的原理图,构建硬件平台;(5)采用汇编或C语言编写应用程序并调试通过;(6)制作出样机并测试达到功能和技术指标要求;(7)写出设计报告。第3页,共35页,2024年2月25日,星期天产品功能:设计产品实现一个依据时段可变显示亮度电子钟,具体如下:(1)能够实现基本时钟的走时,显示范围是00:00:00——23:59:59。能够实现时钟的调整,通过按键可以对“时”位和“分”位进行加1调节,并能当加至最大值时能重新归零。(2)能够实现当前室温的测量功能,并在数码管上予以显示(3)能够实现年月日的显示与切换。(4)能够实现温度的显示与切换。

第4页,共35页,2024年2月25日,星期天1.系统结构框图单片机DS1302芯片DS18B20其他模块数码显示模块第5页,共35页,2024年2月25日,星期天电路图第6页,共35页,2024年2月25日,星期天IO定义sbitDQ=P1^3;//DS18B20I/Osbitled=P1^0;SbitT-RST=P3^5;//ds1302-5SbitT-IO=P3^4;//ds1302-6SbitT-CLK=P3^6;//ds1302-7SbitACC0=ACC^0;SbitACC7=ACC^7;Sbitup=P3^1;//4Sbitdown=P3^2;//8Sbitset=P3^0;//0Sbitc=P3^3;//C第7页,共35页,2024年2月25日,星期天2.程序流程图开始初始化是否按c键时间显示显示日期是否按c键显示温度是否按c键是是是否否否注释:调整程序包含其中第8页,共35页,2024年2月25日,星期天3.主要器件介绍(1)温度传感器DS18B201.1、适应电压范围更宽,电压范围:3.0~5.5V1.2、独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯1.3、DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内1.4、温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃1.5、测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力第9页,共35页,2024年2月25日,星期天图:封装图,内部结构图,温度格式表第10页,共35页,2024年2月25日,星期天RAM指令表:温度变换:44H,启动DS1820进行温度转换,12位转换时最长为750ms(9位为93.75ms)。结果存入内部9字节RAM中。读暂存器:0BEH,读内部RAM中9字节的内容写暂存器:4EH,发出向内部RAM的3、4字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据。复制暂存器:48H,将RAM中第3、4字节的内容复制到EEPROM中。

重调EEPROM:0B8H将EEPROM中内容恢复到RAM中的第3、4字节。读供电方式:0B4H读DS1820的供电模式。寄生供电时DS1820发送“0”,外接电源供电DS1820发送“1”。

第11页,共35页,2024年2月25日,星期天序号名称引脚功能描述1GND地信号2DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。3VDD可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。表1

DS18B20详细引脚功能描述DS18B20的性能特点如下:●独特的单线接口仅需要一个端口引脚进行通信;●多个DS18B20可以并联在惟一的三线上,实现多点组网功能;●无须外部器件;●可通过数据线供电,电压范围为3.0~5.5V;●零待机功耗;●温度以9或12位数字;●用户可定义报警设置;●报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;●负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;第12页,共35页,2024年2月25日,星期天DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。高速暂存RAM的结构为8字节的存储器,结构如图3所示。头2个字节包含在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率。测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如图3所示。低5位一直为1,TM是工作模式位,用于设置DS18B20温度LSB温度MSBTH用户字节1TL用户字节2配置寄存器保留保留保留CRC

图3

DS18B20字节定义第13页,共35页,2024年2月25日,星期天DS18B20的测温原理器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的一个基数分别置入减法计数器1、温度寄存器中,计数器1和温度寄存器被预置在-55℃所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到0时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。

第14页,共35页,2024年2月25日,星期天初始化复位:voidset_18b20(){uchara;DQ=1;a=1;while(--a);DQ=0;a=113;while(--a);while(--a);//750us的延时

DQ=1;a=30;while(--a);if( DQ==0){a=240;led=0;while(--a);}

}第15页,共35页,2024年2月25日,星期天voidwrite_18b20(uchardate)//写1个字节{uchari,a;for(i=8;i>0;i--){DQ=0;a=7;while(--a);DQ=date&0x01;//00000001a=25;while(--a);date=date>>1;DQ=1;

}}第16页,共35页,2024年2月25日,星期天ucharread_18b20(){uchari,a,temp;;for(i=8;i>0;i--) {temp=temp>>1;DQ=0; a=3; while(--a);DQ=1;a=2; while(--a);if(DQ)temp=temp|0x80;//1000000a=15; while(--a);

}

return(temp);}第17页,共35页,2024年2月25日,星期天voiddisplay(){

uchartempintbai,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;第18页,共35页,2024年2月25日,星期天P0=0x00;P2=1;P0=EL[tempintbai];delay(20);

P0=0x00;P2=2;P0=EL[tempintshi];delay(20);

P0=0x00;P2=3;P0=EL[tempintge]|0x80;delay(20);P0=0x00;P2=4;P0=EL[xiaoq];delay(20);P0=0x00;P2=5;P0=EL[xiaob];delay(20);P0=0x00;P2=6;P0=EL[xiaos];delay(20);P0=0x00;P2=7;P0=EL[xiaog];delay(4);

if(f==1){P2=0;P0=0x40;delay(20);}}第19页,共35页,2024年2月25日,星期天(2)DS13021DS1302的结构及工作原理DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟芯片,它可以对年、月、日、周日、时、分、秒进行计时,且具有闰年补偿功能,工作电压宽达2.5~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。内部有一个31×8的用于临时性存放数据的RAM寄存器。第20页,共35页,2024年2月25日,星期天1.1引脚功能表及内部结构图第21页,共35页,2024年2月25日,星期天引脚功能如表1所示。第22页,共35页,2024年2月25日,星期天1.2DS1302的控制字节说明DS1302的控制字如图2所示。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302中位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。1.3复位通过把输入驱动置高电平来启动所有的数据传送。输入有两种功能:首先,接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,提供了终止单字节或多字节数据的传送手段。当为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中置为低电平,则会终止此次数据传送,并且I/O引脚变为高阻态。上电运行时,在Vcc≥2.5V之前,必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。第23页,共35页,2024年2月25日,星期天1.4数据输入输出在控制指令字输入后的下一个SCLK时钟的上升沿时数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位至高位7,数据读写时序见图3。第24页,共35页,2024年2月25日,星期天DS1302写入操作:voidwrite_byte(ucharda){uchari;ACC=da;//10000001for(i=8;i>0;i--){T_IO=ACC0; T_CLK=0;T_CLK=1;ACC=ACC>>1;//01000000}}DS1302读取操作:ucharread_byte(void){

uchari;for(i=0;i<8;i++)//00000001假设ACC=00000000{ACC=ACC>>1;//01000000 T_CLK=1; T_CLK=0;ACC7=T_IO;//10000000}return(ACC);}第25页,共35页,2024年2月25日,星期天voidwrite_1302(ucharaddr,ucharda){T_RST=0;//停止工作

T_CLK=0;T_RST=1;//重新工作

write_byte(addr);//写入地址

write_byte(da);T_RST=0;T_CLK=1;}ucharread_1302(ucharaddr){uchartemp;T_RST=0;//停止工作

T_CLK=0;T_RST=1;//重新工作

write_byte(addr);//写入地址

temp=read_byte();T_RST=0;T_CLK=1;//停止工作

return(temp);}第26页,共35页,2024年2月25日,星期天4.显示说明如上图,最左边显示为时,中间为分,最右边为秒当按一次‘0’时,只显示时并进入时调整,当按两次‘0’时,只显示分并进入分调整。按下三次‘0’后,回到最初状态。按下一次‘c’后,会进入日期显示,再次按下进入温度显示,三次后回到时间显示状态。13-52-45第27页,共35页,2024年2月25日,星期天5.键盘控制说明‘0键’为时钟设置、时分切换、保存按钮‘4键’为加按钮‘8键’为减按钮‘c’为时间,日期,温度切换按钮第28页,共35页,2024年2月25日,星期天主程序及时间显示调整第29页,共35页,2024年2月25日,星期天日期显示调整第30页

温馨提示

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

评论

0/150

提交评论