数字式温度计课程设计论文_第1页
数字式温度计课程设计论文_第2页
数字式温度计课程设计论文_第3页
数字式温度计课程设计论文_第4页
数字式温度计课程设计论文_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、电子信息工程实验教学中心电子技术课程设计设计报告设计题目数字式温度计的设计年级专业学号姓名成绩 电子信息工程 电子信息工程 电子信息工程评语: 目录目录1原理分析1方案选择1电路原理图绘制及仿真(Mutilsim)1 PCB图(protel)绘制15综合调试16.课程设计体会11 原理分析(小组所有成员共同完成) DS18B20是一种数字温度传感器,它把温度转换成数字量以后存贮在自身内部,和单片机通过连接一个I/O口连接,单片机把数据读出,然后在数码管或者液晶屏上显示。按照系统设计的功能和要求,确定系统由3个模块组成:主控制器,测温电路和显示电路。 1)主控模块AT89C52是一个低电压,高性

2、能CMOS 8位单片机,片内含4K的可反复擦写的FLASH只读存储器和128 BYTES的随机存取数据存储器,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口。AT89C52可以按照常规方法进行编程,也可以在线编程。器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。 图1 AT89C52引脚图 2)DS18B20是美国DALLAS半导体公司

3、近年推出的一种改进型智能温度传感器,与传统的热敏电阻相比,它能够直接读出被测温度,并可根据实际要求通过简单的编程实现9-12位的数字值读数方式,无需外加测量电路及A/D转换器,简化了电路;而且从DS18B20读出或写入信息仅需一根口线,大大降低了单片机的硬件资源占用。基于DS18B20的单片机温度控制器具有电路简单、可靠性高的优点。 图2 DS18B20内部构图性能特点独特的单线接口仅需要一个端口引脚进行通信;多个DS18B20可以并联在惟一的三线上,实现多点组网功能;无须外部器件;可通过数据线供电,电压范围为3.05.5V;零待机功耗;温度以9或12位数字;用户可定义报警设置;报警搜索命令识

4、别并标志超过程序限定温度(温度报警条件)的器件;负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。 3)显示电路采用4位共阳LED数码管,从P1口输出段码,列扫描用P3.0P3.3来实现,列驱动用9012三极管。2 方案选择(小组所有成员共同完成)图3 方案设计框图系统电路由电源电路、温度信号产生电路、单片机控制电路和液晶显示电路等四部分组成。由两节1.5V干电池为系统电路提供工作电压。温度信号产生电路采用DS18B20单总线系统电路,实时检测环境温度,并在内部处理后产生数字温度信号,输出到单片机进行显示处理。单片机控制电路由单片机最小系统电路组成,用于实时检测并处理数字温度

5、信号,输出数码管控制命令,进而控制共阴极数码管实时显示当前的温度值。本电路方案结构简单,技术成熟,具有功能扩展空间特点。本数字式温度计对温度进行实时测量并显示,其主要功能介绍:(1)实时测量温度,采用DS18B20传感器。(2)采集测温范围为-50+120 .(3)温度精度在0.1 ;误差±0.2以内.(4)显示模块,采用4个LED数码管显示.(5)供电采用电池供电方式。 至此,设计目的已全部实现。电路原理图绘制及仿真(Mutilsim)(谭海燕)1)元件型号图4 元件清单2)电路原理图及仿真结果图 5 电路原理图图6 仿真结果PCB图(protel)绘制(郑冰倩) 1)PCB设计步

6、骤 (1)绘制电路原理图 首先将所有元件都从库中取出来,放置在图纸上,并且调整好位置。使用连线工具将元件连接起来,设置元件属性。使用Tool/Annotate菜单对元件进行编号,使用电气检查(ERC),使用Edit/Export to Spread 菜单建立元件列表。使用Design/Create Netlist 菜单建立网络表,画电路板图。 l (2)绘制PCB图使用向导,定义一个宽90mm、高70mm的单面PCB板,根据温度计的原理图,设计数显温度计的PCB图。将原理图的网络表调入设计的单面板中,进行布局,启动自动拉伸元 件,然后进行人工布局,布局一定要合理使线走的最短,最省。进性布线规则

7、设定(铜膜线线宽设为15mil,地线和电源线宽设为 30mil线间距设为15mil)然后进行布线,尽量使过线减少,走跨线的少,不能出现高亮线。 2)设计原则 (1)注意发热元件应该远离热敏元件。(2) 尽可能按照原理图的元件安排对元件进行布局,信号从左边进入、从右边输出,从上边输入、从下边输出。 按照电路流程,安排各个功能电路单元的位置,使信号流通更加顺畅和保持方向一致。(3)元件放置的顺序 首先放置与结构紧密配合的固定位置的元件,如电源插座、指示灯、开关和连接插件等。 再放置特殊元件,例如发热元件、变压器、集成电路等。 最后放置小元件,例如电阻、电容、二极管等。(4)元件离电路板边缘的距离,

8、所有元件均应该放置在离板边缘 3mm 以内的位置。(5)铜膜线的不拐弯处应为圆角或斜角,而直角或尖角在高频电路和布线密度高的情况下会影响电气性能。当双面板布线时,两面的导线应该相互垂直、斜交或弯曲走线,避免相互平行,以减少寄生电容。(6)元件布置要合理分区。元件在电路板上排列的位置要充分考虑抗电磁干扰问题。原则之一就是各个元件之间的铜膜线要尽量的短,在布局上,要把模拟电路、数字电路和产生大噪声的电路(继电器、大电流开关等)合理分开,使它们相互之间的信号耦合最小。 (7)屏蔽与接地:铜膜线的公共地线应该尽可能放在电路板的边缘部分。在电路板上应该尽可能多地保留铜箔做地线,这样可以使屏蔽能力增强。另

9、外地线的形状最好作成环路或网格状。多层电路板由于采用内层做电源和地线专用层,因而可以起到更好的屏蔽作用效果。3)PCB图图7 PCB图5综合调试(胡星桦)1)软件部分图8 程序流程图主程序主要分为4大部分:初始化、读取温度、处理温度、显示温度。初始化子程序:(1) 程序#include<reg52.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned charsbit SEG1=P20; /段码位1sbit SEG2=P22; /段码位2 sbit SEG3=P24; /段码位3sbit

10、 SEG4=P26; /段码位4sbit DQ1=P17; /传感器1uchar ng; /负号标志uchar code tab=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x58,0xFF;/共阴数码码表 /* 0 1 2 3 4 5 6 7 8 9 C 无*/uchar code df_Table= 0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9; /温度小数位对照表uchar CurrentT = 0; /当前读取的温度整数部分uchar Temp_Value=0x00,0x00; /从DS18B20读取的温度值u

11、char Display_Digit=0,0,0,0;/待显示的各温度数位bit DS18B20_IS_OK = 1; /传感器正常/延时/*/ 函数: LCD_Delay()/ 描述: 延时t ms函数/ 参数: t / 返回: 无/ 备注: 12MHZ t=1延时时间约1ms/ 版本: 2011/01/01 First version/*/void Delay_ms(unsigned int t)/延时1msunsigned int i,j;for(i=0;i<t;i+)for(j=0;j<120;j+);void Delay(uint x)while(-x);/*DS18B2

12、0的复位脉冲 主机通过拉低单总线至少480us以产生复位脉冲 然后主机释放单总线并进入接收模式 此时单总线电平被拉高 DS18B20检测到上升沿后 延时1560us,拉低总线60240us产生应答脉冲 */uchar Init_DS18B20()uchar status;DQ1 = 1; /DS18B20置高电平Delay(8); /延时DQ1 = 0; /DS18B20置低电平Delay(90); /延时480us以上DQ1 = 1; /DS18B20置高电平Delay(8); /延时status = DQ1;/读状态Delay(100); /延时DQ1 = 1; /DS18B20置高电平r

13、eturn status;/返回状态uchar ReadOneByte()uchar i,dat=0;DQ1 = 1;/DS18B20置高电平_nop_();/延时for(i=0;i<8;i+)DQ1 = 0;/DS18B20置低电平dat >>= 1;/右移数据DQ1 = 1;/DS18B20置高电平_nop_();/延时_nop_();/延时if(DQ1)dat |= 0X80;Delay(30);/延时DQ1 = 1;/DS18B20置高电平return (dat); void Read_Temperature() EA=0;/关中断if(Init_DS18B20()=

14、1)DS18B20_IS_OK=0;else WriteOneByte(0xcc); /跳过序列号WriteOneByte(0x44); /启动温度转换Init_DS18B20();WriteOneByte(0xcc);/跳过序列号WriteOneByte(0xbe);/读取温度寄存器Temp_Value0 = ReadOneByte(); /温度低8位Temp_Value1 = ReadOneByte();/温度高8位DS18B20_IS_OK=1;EA=1;/开中断void Display_Temperature()/ uchar i;uchar t = 150;/延时 ng = 0; /

15、与负值标志if(Temp_Value1&0xf8)=0xf8) /判断是否为负Temp_Value1 = Temp_Value1;/取反Temp_Value0 = Temp_Value0+1;/取反if(Temp_Value0=0x00)Temp_Value1+;ng = 1;/负号elseng = 0;Display_Digit0 = df_TableTemp_Value0&0x0f; /查表得温度小数部分CurrentT = (Temp_Value0&0xf0)>>4) | (Temp_Value1&0x07)<<4); /温度整数部

16、分Display_Digit3 = CurrentT/100; /百Display_Digit2 = CurrentT%100/10; /十Display_Digit1 = CurrentT%10; /个void DIS_SEG(void)if(ng=1)P0=0x40;elseP0=tabDisplay_Digit3; / 数码管显示负数 或正的百位SEG1=0; /片选百位数码管 Delay_ms(3); /延时3ms SEG1=1;/关闭百位数码管P0=tabDisplay_Digit2; /温度十位 SEG2=0;/片选十位数码管Delay_ms(3); /延时3ms SEG2=1;

17、/关闭十位数码管P0=(tabDisplay_Digit1+0x80); /温度个位和小数点SEG3=0;/片选个位数码管Delay_ms(3); /延时3ms SEG3=1; /关闭个位数码管 P0=tabDisplay_Digit0; /小数位SEG4=0;/片选小数位数码管Delay_ms(3); /延时3ms SEG4=1; /关闭小数位数码管void main(void) uchar i,j; Read_Temperature(); /初始化DQ1 Delay_ms(1000); /延时1sRead_Temperature(); /读温度/-Read_Temperature(); /

18、读温度if(DS18B20_IS_OK) Display_Temperature(); /显示温度处理/-while(1) /-在SEG上显示温度-for(j=0;j<25;j+)DIS_SEG();/-温度- i+; if(i>5)Read_Temperature(); /读温度 if(DS18B20_IS_OK)Display_Temperature(); /温度数据处理i=0; /避免频繁采集温度 2) 硬件调试结果图9 硬件调试图6.课程设计体会    本次的课程设计使我们进一步巩固了书本上的知识,做到了学以致用。这是我们第二次自己动手设计的电路,通过系统仿真软件protue

温馨提示

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

评论

0/150

提交评论