温度计电路_杨专.docx

温度计电路_杨专.docx

ID:61499820

大小:295.99 KB

页数:13页

时间:2021-02-07

温度计电路_杨专.docx_第1页
温度计电路_杨专.docx_第2页
温度计电路_杨专.docx_第3页
温度计电路_杨专.docx_第4页
温度计电路_杨专.docx_第5页
资源描述:

《温度计电路_杨专.docx》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、课程实践设计课程类别:数字电路课程实践设计课程名称:温度计设计设计班级:自动化1202小组成员以及任务分工:杨专(组长)赵申谭善卿2014年6月目录一,设计目的二,设计要求与设计指标三,设计内容3.1总体设计3.2硬件设计3.2.1单片机最小系统设计3.2.2蜂鸣器电路模块设计3.2.3LCD1602液晶显示器电路模块设计3.2.4DS18B20温度传感器电路模块设计3.3软件设计3.3.1软件设计流程图3.3.2软件代码3.3.2.1DS18B20温度传感器驱动头文件代码3.3.2.2LCD1602液晶显示器驱动头文件代码3.3.2.3初始时钟头文件代码3.

2、3.2.4主函数代码3.4结果与分析四、总结与感悟五、主要参考文献一、设计目的为了熟悉数字电路课程,了解与掌握数字电路设计方面的实践运用,学习AltiumDesignerEDA工具的使用,以及锻炼动手实践能力与培养探索学习的科研精神。二、设计要求要求用显示器显示所测温度,温室的温度范围为20~29℃,当温度超出此范围发出报警声。三、设计内容3.1总体设计运用单片机的控制系统,连接DS18B20温度传感器,通过温度感受器传递的数据,单片机进行相关的处理,控制液晶显示器LCD1602并显示当前温度,当温度超过29度或者低于20度时,利用单片机控制蜂鸣器报警发声。3

3、.2硬件设计3.2.1单片机最小系统设计电路图如下:单片机选用MSP430型,该单片机特点是:电压低,功耗低,3.3V供电,16位,运行速度快,内置硬件乘法器,乘除法运算都为单周期指令,片内集成资源丰富,有两组普通IO口具有中断功能;3.2.2蜂鸣器电路模块设计电路图如下:3.2.3LCD1602液晶显示器电路模块设计电路图如下:3.2.4DS18B20温度传感器电路模块设计电路图如下:3.3软件设计3.3.1软件设计流程图开始系统初始化DS18b20采集温度LCD1602显示但前温度温度是否在20~29度蜂鸣器报警否是关闭蜂鸣器3.3.2软件代码3.3.2

4、.1DS18B20温度传感器驱动头文件代码#include"msp430x16x.h"#defineuintunsignedint#defineucharunsignedchar#defineDQ_OUTP4DIR

5、=BIT0#defineDQ_INP4DIR&=~BIT0#defineDQ_LOWP4OUT&=~BIT0#defineDQ_HIGHP4OUT

6、=BIT0#defineDQ_DATAP4IN&BIT0intBit[8]={17,0,0,0,0,0,0,0};//数码管各位显示的数字ucharMSB;//温度高字节ucharLSB;//温度低字节

7、intt1=0;//温度整数部分数值floatt;uintt2=0;//温度小数部分数值ucharflag;//负温度标志//ms级延时子程序voidDelayMs(uintms){while(ms--){for(uinti=0;i<800;i++);}}//10us级延时子程序voidDelayus(uintus){while(us--){for(uinti=0;i<8;i++);}}//初始化DS18B20voidDS18B20Init(void){DQ_OUT;//设置为输出方向DQ_LOW;//拉低总线Delayus(50);DQ_HIGH;//释放总

8、线Delayus(6);DQ_IN;//设置为输入方向while(DQ_DATA);//等待应答信号while(~DQ_DATA);//等待释放总线}//读一个字节ucharReadByte(void){uchari;ucharReadData=0;for(i=0;i<8;i++){DQ_OUT;DQ_LOW;ReadData>>=1;DQ_HIGH;Delayus(1);DQ_IN;if(DQ_DATA)ReadData

9、=0x80;Delayus(6);}returnReadData;}//写一个字节voidWriteByte(ucharWriteData

10、){uchari;uchartmpData;for(i=0;i<8;i++){tmpData=WriteData&0x01;WriteData>>=1;DQ_OUT;DQ_LOW;if(tmpData){DQ_HIGH;}else{DQ_LOW;}Delayus(5);DQ_HIGH;}}//温度计算程序voidGetT(){if((MSB&0xF0)>0){//判断是否为负温度flag=1;}else{flag=0;}if(flag){//如果为负温度取反加1MSB=~MSB;LSB=~LSB+1;}t1=MSB<<4;//得到温度整数部分t1

11、=(LSB>

12、>4);t=t1+(LSB&0x0F)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。