资源预览内容
第1页 / 共11页
第2页 / 共11页
第3页 / 共11页
第4页 / 共11页
第5页 / 共11页
第6页 / 共11页
第7页 / 共11页
第8页 / 共11页
第9页 / 共11页
第10页 / 共11页
亲,该文档总共11页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
word一、设计项目名称温度采集显示系统硬件与软件设计二、 设计容与要求1, 根据设计要求,完成对单路温度进展测量,并用数码管显示当前温度值系统硬件设计,并用电子CAD软件绘制出原理图,编辑、绘制出PCB印制版。要求:1原理图中元件电气图形符号符合国家标准;(2) 整体布局合理,注标规、明确、美观,不产生歧义。(3) 列出完整的元件清单(标号、型号与大小、封装形式、数量)(4) 图纸幅面为A4。(4) 布局、布线规合理,满足电磁兼容性要求。(5) 在元件面的丝印层上,给出标号、型号或大小。所有注释信息包括标号、型号与说明性文字要规、明确,不产生歧义。2.编写并调试驱动程序。功能要求:1温度围0-100。2温度分辨率1。3选择适宜的温度传感器。3.撰写设计报告。提示:可借助“单片机实验电路板实现或验证软件、硬件系统的可靠性。温度传感器摘要:温度的检测与控制是工业生产过程中比拟典型的应用之一,随着传感器在生产和生活中的更加广泛的应用,利用新型单总线式数字温度传感器实现对温度的测试与控制得到更快的开发,随着时代的进步和开展,单片机技术已经普与到我们生活,工作,科研,各个领域。一种数字式温度计以数字温度传感器DS18B20作感温元件,它以单总线的连接方式,使电路大大的简化。传统的温度检测大多以热敏电阻为传感器,这类传感器可靠性差,测量温度准确率低且电路复杂。因此,本温度计摆脱了传统的温度测量方法,利用单片机STC89C52对传感器进展控制。这样易于智能化控制。关键词:数字测温;温度传感器DS18B20;单片机STC89C52;一概述传感器从功能上可分为雷达传感器、电阻式传感器、电阻应变式传感器、压阻式传感器、热电阻传感器、温度传感器、光敏传感器、湿度传感器、生物传感器、位移传感器、压力传感器、超声波测距离传感器等,本文所研究的是温度传感器。温度传感器是最早开发,应用最广泛的一类传感器。温度传感器是利用物质各种物理性质随温度变化的规律把温度转换为电量的传感器。这些呈现规律性变化的物理性质主要有半导体。温度传感器是温度测量仪表的核心局部,品种繁多。随着科学技术的开展,测温系统已经被广泛应用于社会生产、生活的各个领域,在工业、环境监测、医疗、家庭多方面均有应用。从而使得现代温度传感器的开展。微型化、集成化、数字化正成为开展的一个重要方向。二硬件设计1.DS18B20DS1820 单线数字温度计特性 独特的单线接口仅需一个端口引脚进展通讯 简单的多点分布应用 无需外部器件 可通过数据线供电 零待机功耗 测温围-55+125递增 温度以 9 位数字量读出 温度数字量转换时间 200ms典型值 用户可定义的非易失性温度报警设置 报警搜索命令识别并标志超过程序限定温度温度报警条件的器件 应用包括温度控制、工业系统、消费品、温度计或任何热感测系统DS1820温度传感器外观图a和引脚图b引脚1接地引脚2数字信号输入/输出引脚3接高电平5V高电平 a (b)STC89C52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,置4KB EEPROM,MAX810复位电路,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口。另外 STC89X52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35Mhz,6T/12T可选。图2-2-1 89C52管脚图3. 晶振电路为了产生时钟信号,在8052 部设置了一个反相放大器,XTAL1 是片振荡器反相放大器的输入端,XTAL2 是片振荡器反相放大器的输出端,也是部时钟发生器的输入端。当使用自激振荡方式时,XTAL1 和XTAL2 外接石英晶振,使部振荡器按照石英晶振的频率振荡,就产生时钟信号。本系统用12MHZ的石英晶振,接STC89C52的18和19脚,具体电路如如如下图所示。图2-3-1 单片机的晶振电路4复位电路在振荡器运行时,有两个机器周期24 个振荡周期以上的高电平出现在此引脚时,将使单片机复位,只要这个脚保持高电平,52 芯片便循环复位。复位后P0P3 口均置1 引脚表现为高电平,程序计数器和特殊功能存放器SFR 全部清零。当复位脚由高电平变为低电平时,芯片为ROM 的0000H 处开始运行程序。该芯片的复位脚为9脚,所以复位电路接AT89S52的9脚,具体电路如如如下图所示。图2-4-1 单片机的复位电路5显示电路图2-5-1 整体电路图显示电路采用共阳数码管,数码管的ADP端接单片机的P0.0P0.7端,1234端通过三极管接单片机的P1.0P1.3端,三极管实现放大作用。6.电源本系统采用5v电源。三软件设计#include reg52.hsbit ds=P37;bit flag;unsigned char code table10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;unsigned char code wtable=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;unsigned char tempdate4=0XFF,0XFF,0XFF,0XFF;void DelayUs2x(unsigned char t);void DelayMs(unsigned char t);bit Init(void);unsigned char tempreadbyte(void);void tempwritebyte(unsigned char dat);unsigned int tempread(void);void Display(unsigned char wei,unsigned char num);void Init_dingshiqi(void);void main() unsigned int temph,templ,temp; Init_dingshiqi(); while (1) if(flag=1) flag=0; temp=tempread(); temph=temp*0.0625; templ=temp&0x0f; templ=templ*6/10; if(temph%100/10)=0) tempdate0=0Xff;else tempdate0=table(temph%100)/10; tempdate1=table(temph%100)%10&0x7f; tempdate2=tabletempl; tempdate3=0xc6; void DelayUs2x(unsigned char t) while(-t);void DelayMs(unsigned char t) while(t-) DelayUs2x(245); DelayUs2x(245); bit Init(void) bit dat=0; ds = 1; DelayUs2x(5); ds = 0; DelayUs2x(200); DelayUs2x(200); ds = 1; DelayUs2x(50); dat=ds; DelayUs2x(25); return dat;unsigned char tempreadbyte(void) unsigned char i=0; unsigned char dat = 0; for (i=8;i0;i-) ds = 0; dat=1; ds = 1; if(ds) dat|=0x80; DelayUs2x(25); return(dat);void tempwritebyte(unsigned char dat) unsigned char i=0; for (i=8; i0; i-) ds = 0; ds = dat&0x01; DelayUs2x(25); ds = 1; dat=1; DelayUs2x(25);unsigned int tempread(void) unsigned char a=0; unsigned int b=0; unsigned int t=0; Init(); tempwritebyte(0xCC); tempwritebyte(0x44); DelayMs(10); Init(); tempwritebyte(0xCC); tempwritebyte(0xBE); a=tempreadbyte(); b=tempreadbyte(); b=8; t=a+b; return(t);void Display(unsigned char wei,unsigned char num) static unsigned char i=0; P2=0xff; P0=wtablei+wei; P2=tempdatei; i+; if(i=num) i=0;void Init_dingshiqi(void) TMOD |= 0x01; EA=1; ET0=1; TR0=1; void zhongduan(void) interrupt 1 static unsigned int num; TH0=(65536-2000)/256; TL0=(65536-2000)%256; Display(0,4); num+; if(num=300) num=0; flag=1;
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号