




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录1系统设计 ······································11.1总体方案论证与比较 ········
2、183;·················1 主控制器的选择与论证 ····················2 时钟方案选择与论证 ········&
3、#183;············2 温度检测方案选择 ·······················2 显示模块方案选择 ··········
4、83;············41.2系统组成 ····································
5、··42 硬件单元电路设计 ··························42.1时钟模块 ··················
6、83;···················4 DS1302实时时钟芯片简介 ···············4 DS1302应用电路设计 ··········&
7、#183;·········52.2测温模块 ······································6 DS
8、18B20芯片简介 ·························6 DS18B20应用电路 ·····················
9、····72.3 LED显示模块 ·································82.4单片机最小系统 ·········
10、;······················103 系统测试分析 ··························
11、·······113.1 时钟测试 ·····································113.2 温度测试 ··
12、183;····································15结束语 ············
13、183;······························19参考文献 ··················&
14、#183;························20附录一 系统总图时钟温度显示设计摘 要 本设计以单片机STC89C52作为各模块的控制中心,电路分为时钟电路模块,测温模块,LED显示模块,晶振电路模块,其中实时时钟DS1302,可实现时间数据的采集。温度检测模块由DS18B20集成温度传感器对现场环境温度进行实时检测,和两个4位共阳极数码管显示
15、。可实现题目要求的时间显示,环境温度测量显示等功能。本设计通过单片机将各模块有机地连接在一起,完美地实现了设计目的。关键词:实时时钟 温度传感器 Abstract In this design, the controller kernel of all the module is based on MCU STC89C52.The circuit is composed of the following modules: clock circuit module, thermometry module, LED display module, replace and crystal oscil
16、late module. Among this, real time clock DS1302 can realize the display of time Thermometry module uses DS18B20 compositive thermometric sense or gan carry through the real time examimed to environmental temperature. Man-machine interface consist of four unattached keystrokes and two side by side LE
17、D displays. This meter that merges the MCU and other modules reaches the original goal. Its performance reaches the project requirement.Keywords real time clock thermometric sense 1系统设计1.1总体方案论证与比较 主控制器的选择与论证方案一:采用CPLD作为主控制器, 由于CPLD具有强大的资源,使用方便灵活,易于进行功能扩展,特别是结合了EDA,可以达到很高的效率。此方案逻辑电路复杂,且灵活性不高,不利于各种功能
18、的扩展。方案二:基于STC89C52单片机来实现系统的控制, 控制外围电路进行时钟显示,温度测量,数码管显示,此系统控制灵活,能很好地满足本题的基本要求和扩展要求。1.1.2 时钟方案选择与论证方案一:直接采用单片机实现时钟功能,利用单片机内部的定时器/计数器,定时中断进行时钟计时,此方案不须外部时钟电路,但运行时钟程序占用大量CPU资源,而且不利于单片机实现其它功能的扩展。方案二: 采用内带RAM,高性能,低功耗的时钟芯片DS1302,该芯片可以进行时分秒日月年的计数,可编程中断,掉电保护功能,并且可以方便地进行程序控制。1.1.3 温度检测方案选择方案1: 热电阻测温。热电阻测温是基于金属
19、导体的电阻值随温度的增加而增加这一特性来进行温度测量的。热电阻体的引出线等各种导线电阻的变化会给温度测量带来影响。为消除引线电阻的影响同般采用三线制或四线制。它的主要特点是测量精度高,性能稳定。它的缺点是金属导体材料易受环境影响而改变其并改变电阻与温度之间的关系。方案2: 热电偶传感器测温。将两种不同材料的导体或半导体A和B焊接起来,构成一个闭合回路。当导体A和B的两个执着点1和2之间存在温差时,两者之间便产生电动势,因而在回路中形成一个大小的电流 ,这种现象称为热电效应。热电偶就是利用这一效应来工作的。热电偶是工业上最常用的温度检测元件之一。其优点是: 测量精度高。因热电偶直接与被测对象接触
20、,不受中间介质的影响。测量范围广。常用的热电偶从-50+1600均可边续测量,某些特殊热电偶最低可测到-269(如金铁镍铬),最高可达+2800(如钨-铼)。构造简单,使用方便。热电偶通常是由两种不同的金属丝组成,而且不受大小和开头的限制,外有保护套管,用起来非常方便。由热电偶测温原理知道,只今当热电偶冷端温度保持不变时,热电动势才是被测温度的单位函数。在实际应用时,由于热电偶的冷端离热端很近,冷瑞又暴露在空间,容易受到周围环境温变化的影响,因而冲端温度难以保持恒定。为此必须进行冷端温度补偿处理。方案3:采用集成温度传感器DS18B20,测量温度范围为 -55°C+125°
21、C,在-10+85°C范围内,精度为±0.5°C。现场温度直接以“一线总线”的数字方式传输,连接方便,占用口线少,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。DS18B20可以程序设定912位的分辨率,精度为±0.5°C。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。方案选择:采用集成温度传感器DS18B20,具有硬件连接的简单性和软件编程的灵活性,且温度测量准确,抗环境干扰性强等诸多优点,因此选用集成温度传感器DS1
22、8B20作为系统的温度测量工具。1.1.4 显示模块方案选择方案一:采用液晶显示,液晶显示是一种被动式的显示器,即液晶本身并不发光,而是利用液晶经过处理后能改变光线通过的特性,而达到白底黑字的目的。液晶显示功耗低,抗干扰能力强,显示信息丰富等特点。方案二:采用数码管显示,数码管亮度高,体积小,重量轻,成本低,可实现本实验的数字显示要求。1.2系统组成单片机系统是整个硬件系统的核心,它既协调整机工作,又是数据处理器,是软硬件系统连接的桥梁。它主要包括:时钟模块,测温模块, 数码管显示模块。系统方框图如图1.2所示。STC89C51时钟芯片温度传感器数码管显示图1.2 系统结构图2 硬件单元电路设
23、计2.1时钟模块 DS1302实时时钟芯片简介DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302芯片具有微功耗、外围接口简单、精度高等优点,其主要功能如下:1. 外接3V直流电源,保证断电情况下运行不丢失数据。2. 可计秒、分、时、星期、日、月、年,并有闰年补偿功能。3. 有12个寄存器,其中
24、有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字。4. DS1302控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。5. 中断信号输出(IRQ)和总线兼容,定闹中断、周期性中断、时钟更新周期结束中断可分别由软件屏蔽,也可分别进行测试。DS1302的引脚功能与封装形式DS1302采用的DIP封装的引脚排列如图所示。图 DS1302的引脚排列
25、图DS1302的引脚功能描述如表所示。表 DS1302的引脚功能描述表引脚名功能描述VCC25V电源X1晶振X2晶振GND地CE使能端I/O数据输入输出端CLK时钟信号VCC13V电源 DS1302应用电路设计DS1302应用电路如图所示。VCC2脚为5V电源接口,X1,X2接32.768M晶振,GND接地,是使能端接单片机输入输出接口,/O是数据输入输出端与单片机输入输出口相连,是时钟信号输入端与单片机输入输出口相连,是备用电源接三伏。 图 DS1302应用电路2.2测温模块 DS18B20芯片简介 DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温
26、度报警触发器TH和TL、配置寄存器。光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:如表1所示,用16位符号扩展的二进制补码读数形式提供,以0.0625/LSB形式表达,其中最高五位S为符号位。表1 两字节温度数据
27、存储表这是12位转化后得到的12位数据,存储在DS18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。表2为DS18B20暂存寄存器分布表,DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2RAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。 暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二
28、个字节是温度的高八位。第三个和第四个字节是TH、TL的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。第六、七、八个字节用于内部计算。第九个字节是冗余检验字节。表2 DS18B20暂存寄存器分布表寄存器内容字节地址温度最低数字位0温度最高数字位1高温限值2低温限值3保留4保留5计数剩余值6每度计数值7CRC校验8TM R1 R0 1 1 1 1 1 低五位一直都是1 ,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1和R0用来设置分辨率,如下表3所示:(DS18B20出厂时被设
29、置为12位)表3 分辨率设置表R1R0分辨率温度最大转换时间009位93.75ms0110位187.5ms1011位375ms1112位750ms表4和表5分别是ROM指令和RAM指令表。根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功。所有的读,写时序至少需要60us,
30、且每两个独立的时序之间至少需要1us的恢复时间。在写时序中,主机将在拉低总线15us之内释放总线,并向单总线器件写1;若主机拉低总线后能保持至少60us的低电平,则向单总线器件写0,单总线器件仅在主机读时序时才向主机传输数据。表4 ROM指令指令约定代码功能读ROM33H读DS18B20ROM中的编码(即读64位地址)符合ROM55H发出此命令后,接着发出64位ROM编码,访问单线总线上与该编码相对应的DS18B20使之作出响应,为下一步对该DS18B20的读写作准备。搜索ROM0F0H用于确定挂接在同一总线上DS18B20的个数和识别64位ROM地址,为操作各器件做好准备。跳过ROM0CCH
31、忽略64位ROM地址,直接向DS18B20发温度交换命令,适用于单片工作。告警搜索命令0ECH执行后,只有温度超过设定值上限或下限的片子才做出响应。表5 RAM指令指令指令代码功能温度变换44H启动DS18B20进行温度变换,转换时间最长为500 ms(典型为200ms),结果存入内部9字节RAM中。读暂存器0BEH读内部RAM中9字节的内容。写暂存器4EH发出向内部RAM的第3,4字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据。复制暂存器48H将内部RAM的第3,4字节内容复制到E2ROM中。重调E2ROM0B8H将E2ROM中内容恢复到RAM中的第3、4字节。读供电方式0B
32、4H读DS18B20的供电模式,寄生供电时DS18B20发送”0”,外接电源供电DS18B20发送“1“。 DS18B20应用电路DS18B20应用电路具体电路图如图。由于采用单总线器件,DS18B20的硬件电路连接很简单,1脚为接地端,2脚DQ为数据输入/输出脚,它与TTL电平兼容,与单片机的I/O口线相接,同时要接4.7K左右的上拉电阻;3脚VDD,可接电源,也可接地。因为每只DS18B20都可以选择两种供电方式,即数据总线供电方式和外部总线供电方式。采用数据总线供电方式时VDD接地,可以节省一根传输线,但完成温度测量的时间较长;采用外部供电方式则把VDD接5V,虽然多用一根导线,但测量速
33、度较快。图 DS1820应用电路2.3 LED显示模块 电路原理图如图2.3所示。其中两个四位二极管采用共阳极接法,使用时公共端接+5V,段码端输入低电平时的段发光二极管就导通发亮,而输入高电平的则不点亮。采用动态扫描显示,所用数码管的8个笔划段a-h同名端连在一起,而每一个显示器的公共极COM各自的受I/O线控制。图2.3 LED显示电路2.4 单片机最小系统STC89C52是低功耗,高性能芯片。由运算器和控制器组成的微处理器,具有512个单元的片内RAM,8K的内部程序存储器,4*8条并行I/O口线,3个定时器/计数器,具有5个中断源,和一个全双工串行通道。其中XTAL1和XTAL2为外接
34、晶体引线端,当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;RST为复位信号,当输入的复位信号延续2个机器周期以上高电平时即为有效,用以完成单片机的复位操作。PSEN为外部程序存储器读选通信号,只有在读外部ROM时,PSEN为低电平实现对外部ROM单元的读操作。EA是访问程序存储器控制信号,当EA信号为高电平时,对ROM的读操作是从内部程序存储器开始,并可延续至外部程序存储器。ALE是地址锁存控制信号,在系统扩展时,ALE用于控制把P0口输出的低8位地址送入锁存器锁存起来,以实现低位地址和数据的分时传送。如图2.4所示。图2.4 单片机最小系统3 系统测试分析此系统的测试主要通过软
35、件进行测试3.1 时钟测试把调试成功的时钟C语言程序写入单片机中,通过软件的方式使时钟芯片中的信息在LED数码管中显示时分秒,并通过K2切换到日历显示。#include <REG52.H>#include <math.h>#include <ds1302.h>#define uchar unsigned char#define uint unsigned intcodeunsignedcharnuma=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff;unsigned char CurDateTim
36、e7 = 0X00, / 秒0X00, / 分0X14, / 时0X20, / 日0X03, / 月0X04, / 星期0X08 / 年;delay2(long nn) while(nn-);void disp(uchar wei,uchar shu) switch(wei) case 1:P0=0xFE;P1=numashu; break; case 2:P0=0xFD;P1=numashu; break; case 3:P0=0xFB;P1=0XBF; break; case 4:P0=0xf7;P1=numashu; break; case 5:P2=0xef;P1=numashu; b
37、reak; case 6:P2=0xf7;P1=0XBF; break; case 7:P2=0xFB;P1=numashu; break; case 8:P2=0xfD;P1=numashu; break; default:P1=0xff; break; void disp_all(void) P1=0xff;P2=0xff; disp(1,CurDateTime2/16);delay2(50);P1=0xff; disp(2,CurDateTime2%16);delay2(50);P1=0xff; disp(3,4);delay2(50);P1=0xff; disp(4,CurDateTi
38、me1/16);delay2(50);P1=0xff; P0=0xff; disp(5,CurDateTime1%16);delay2(50);P1=0xff; disp(6,1);delay2(50);P1=0xff; disp(7,CurDateTime0/16);delay2(50);P1=0xff; disp(8,CurDateTime0%16);delay2(50); main() Set1302(CurDateTime); while(1) Get1302(CurDateTime); disp_all(); #include<ds1302.h> void RTInput
39、Byte(uchar d) uchar i; ACC = d; for(i=8; i>0; i-) T_IO = ACC0; /*相当于汇编中的 RRC */ T_CLK = 1; T_CLK = 0; ACC = ACC >> 1; /*函 数 名:RTOutputByte()功 能:实时时钟读取一字节说 明:从DS1302读取1Byte数据 (内部函数)入口参数:无 返 回 值:ACC */uchar RTOutputByte(void) uchar i; for(i=8; i>0; i-) ACC = ACC >>1; /*相当于汇编中的 RRC */
40、 ACC7 = T_IO; T_CLK = 1; T_CLK = 0; return(ACC);/*函 数 名:W1302()功 能:往DS1302写入数据说 明:先写地址,后写命令/数据 (内部函数)调 用:RTInputByte() , RTOutputByte()入口参数:ucAddr: DS1302地址, ucData: 要写的数据返 回 值:无 */void W1302(uchar ucAddr, uchar ucDa) T_RST = 0; T_CLK = 0; T_RST = 1; RTInputByte(ucAddr); /* 地址,命令 */ RTInputByte(ucDa
41、); /* 写1Byte数据*/ T_CLK = 1; T_RST = 0;/*函 数 名:R1302()功 能:读取DS1302某地址的数据说 明:先写地址,后读命令/数据 (内部函数)调 用:RTInputByte() , RTOutputByte()入口参数:ucAddr: DS1302地址返 回 值:ucData :读取的数据 */uchar R1302(uchar ucAddr) uchar ucData; T_RST = 0; T_CLK = 0; T_RST = 1; RTInputByte(ucAddr); /* 地址,命令 */ ucData = RTOutputByte()
42、; /* 读1Byte数据 */ T_CLK = 1; T_RST = 0; return(ucData);/*函 数 名:Set1302()功 能:设置初始时间说 明:先写地址,后读命令/数据(寄存器多字节方式)调 用:W1302()入口参数:pClock: 设置时钟数据出口参数:地址格式为: 秒 分 时 日 月 星期 年7Byte (BCD码)1B 1B 1B 1B 1B 1B 1B返 回 值:无 */void Set1302(uchar *pClock) uchar i; uchar ucAddr = 0x80; W1302(0x8e,0x00); /* 控制命令,WP=0,写操作?*/
43、 for(i =7; i>0; i-) W1302(ucAddr,*pClock); /* 秒 分 时 日 月 星期 年 */ pClock+; ucAddr +=2; W1302(0x8e,0x80); /* 控制命令,WP=1,写保护?*/*函 数 名:Get1302()功 能:读取DS1302当前时间说 明:调 用:R1302()入口参数:ucCurvalue: 保存当前时间地址。出口参数:当前时间格式为: 秒 分 时 日 月 星期 年7Byte (BCD码) 1B 1B 1B 1B 1B 1B 1B返 回 值:无 */void Get1302(uchar ucCurvalue)
44、uchar i; uchar ucAddr = 0x81; for (i=0; i<7; i+) ucCurvaluei = R1302(ucAddr); /*格式为: 秒 分 时 日 月 星期 年 */ ucAddr += 2; 3.2温度测试按照单总线的读写指令要求编写程序读出温度传感器DS18B20的温度数据,送到LED显示,用两位数码管显示温度,测量温度范围为0°C到+99°C。温度测试程序:#include <reg51.h> #include <INTRINS.h> unsigned char code displaybit=0xf
45、7, 0xfb,0xfd,0xfe,0xdf,0xef,0xbf,0x7f; unsigned char code displaycode=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff,0x40; unsigned char displaycount; unsigned char displaybuf8=10,10,10,10,10,10,10,10; unsigned char timecount;unsigned char readdata8; sbit latch=P26;sbit P2_1=P21;sbit P2_0=P2
46、0;sbit P2_2=P22;sbit P2_3=P23;sbit P2_4=P24;sbit P2_5=P25;sbit DQ=P35; unsigned char x; unsigned int result; bit resetpulse(void) unsigned char i; DQ=0; for(i=255;i>0;i-); DQ=1; for(i=60;i>0;i-); return(DQ); for(i=200;i>0;i-); void writecommandtods18b20(unsigned char command) unsigned char i; unsigned char j; for(i=0;i<8;i+) if(command & 0x01)=0) DQ=0; for(j=35;j>0;j-); DQ=1; else DQ=0; for(j=2;j>0;j-); DQ=1; for(j=33;j>0;j-); command=_cror_(command,1); unsigned char readdatafromds18b20(void) unsigned char i; unsigned char j; unsigned char te
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025一手房购买合同:房产交易协议
- 2025担保借款合同书
- 量子计算投资机遇-洞察及研究
- 2025融资租赁合同模板
- 民宿行业的竞争策略及市场分析
- 2025研发项目总包合同书
- 2025企业间借款合同公证的问题
- 2025联营店铺合作经营合同模板
- 2025租赁合同(文本6)范本
- 涉县双拥联盟管理办法
- 招录事业编人员政审表
- SG-A088接地装置安装工程工检验批质量验收记录
- 《芯片原理与技术》课件微流控芯片
- T∕ACEF 027-2021 农药污染地块土壤异味物质识别技术指南
- 建筑结构:高层建筑结构选型
- 混凝土外观质量缺陷及治理措施PPT课件
- 建设项目对海洋生物资源影响评价技术规程
- 整车轴荷计算方法
- 燃气管道焊接工艺卡
- 大陆法系的形成与发展
- 地下管线及其他地上地下设施保护加固措施(二)
评论
0/150
提交评论