欢迎来到天天文库
浏览记录
ID:61499820
大小:295.99 KB
页数:13页
时间:2021-02-07
《温度计电路_杨专.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)
此文档下载收益归作者所有