版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、分数:创新实验学院实践报書题目:基于51单片机的温度和湿度传感器院系:班级:学生姓名:学号:_完成日期:2010年_月27日设计内容综述本次作业的要求是利用51单片机实现一个温度和湿度传感器,并且要求达到一定的精度。初步分析,本次作业共有以下四部分组成:1.以AT89S51单片机组成的最小系统板。2.由ZLG7289组成的数码管显示和键盘。3.由温度湿度传感器和TLC555组成的探测部分。4.程序部分。1.所使用的关键器件和基本参数最小系统板:ATS51,蜂鸣器等。显示板:ZLG7289,数码管等。探测部分:DS18B20,HS1101,TLC5552.工作原理说明(参考原理图)1)探测部分E
2、blVCCU1VCCVCCVCC触A.iiiIKVCCEjk止IK.LtHI:.HeidHraHeidHr2沁1IKl/QlGtH:OUTC-ESTTHECVOLTTRIG*DISC.It-3X.EesAiij2IK_dClSHI:tIE5SSp4,程序部分(1)测温程序int8uh=0;#include#include#include#defineNOP_nop_#defineint8uunsignedcharsbitDQ=P3A7;/温度输入口sbitP04=P0M;蜂鸣#defineucharunsignedcharstaticucharbdataucByte;sbitSCLK_7289
3、a=P1A3;sbitSDIO_7289a=P1M;sbitCS_7289a=P1A2;sbitMSB_7289a=ucByte;sbitLSB_7289a=ucByteA0;voidInitZlg7289a(void);voidTrZlg7289a(ucharucCommand);voidTrZlg7289ad(ucharucCommand,ucharucDat);staticvoidSendByte(void);staticvoidDelay(ucharucTime);*函数名:InitZlg7289a(void)*功能模式:全局voidTrZlg7289a(ucharucCommand)
4、CS_7289a=0;SCLK_7289a=0;SDIO_7289a=0;Delay(50);ucByte=ucCommand;SendByte();CS_7289a=1;SDIO_7289a=1;SCLK_7289a=1;函数名:voidTrZlg7289ad(ucharucCommand,ucharucDat)功能模式:全局函数说明:向ZLG7289A传送带数据的指令函数调用函数:Delay()、SendByte()全局变量:ucByte输入:ucCommand、ucDat返回:无回:无函数名:voidTrZlg7289a(ucharucCommand)*函数说明:ZLG7289A初始化,
5、初始化命令:0 xa4调用函数:TrZlg7289a()全局变量:无入:无*8*voidInitZlg7289a(void)TrZlg7289a(0 xa4);*功能模式:全局voidTrZlg7289ad(ucharucCommand,ucharucDat)SCLK_7289a=0;SDIO_7289a=0;CS_7289a=0;Delay(50);ucByte=ucCommand;SendByte();ucByte=ucDat;SendByte();CS_7289a=1;SDIO_7289a=1;SCLK_7289a=1;*函数名:staticvoidSendByte(void)*功能模式
6、:内部函数说明:向ZLG7289A传送单指令函数调用函数:Delay()、SendByte()全局变量:ucByte输入:ucCommand返回:无*函数说明:向ZLG7289A发送一个字节的数据。*调用函数:Delay()全局变量:ucByte、MSB_7289a*输入:无int8ui,j;for(i=0;ix;i+)for(j=0;j200;j+)staticvoidSendByte(void)uchari;for(i=0;i8;i+)SDIO_7289a=MSB_7289a;SCLK_7289a=1;Delay(10);ucByte=1;SCLK_7289a=0;Delay(10);*函
7、数名:staticvoidDelay(ucharucTime)*功能模式:内部*函数说明:延时函数。*调用函数:无*全局变量:无*输入:ucTime_nop_();_nop_();/*显示扫描函voidshow(uchar*p)uchari;ucharseg=0 x7e,0 x30,0 x6d,0 x79,0 x33,0 x5b,0 x5f,0 x70,0 x7f,0 x7b,0 x00,0 x01;for(i=0;i4;i+)if(i=1)TrZlg7289ad(0 x90+i,(segpi)|0 x80);elseTrZlg7289ad(0 x90+i,segpi);/DS18B20单总线
8、模块*/staticvoidOneWire_Rst(void);staticvoidOneWire_Init(void);staticvoidOneWire_WriteByte(int8ucmd);staticint8uOneWire_ReadByte(void);staticvoidOneWire_Idle(void);*子函数定义staticvoidDelay(ucharucTime)uchari;for(i=0;iucTime;i+)/*温度查表int8ucodeditab16=*/拉低数据线,0 x00,0 x01,0 x01,0 x02,0 x02,0 x03,0 x03,0 x04
9、,0 x04,0 x05,0 x06,0 x06,0 x07,0 x08,0 x09,0 x09;int8udatabuf2=0 x00,OxOO;/读出温度暂时存放int8udatadisplay5=0 x00,0 x00,0 x00,0 x00,0 x00;/显示单元数据,共4个数据,一个运算暂存用/延时函数/*延时计算式:2Xx+5;Step:2us;*/voidDelay_Xus(int8ux)/x取值1255;while(-x);/int8ui;/x/=8;/for(i=0;i=1;/发送数/结束/发送数据;等待SlaveDevice采样;*函数说明:单总线Resetpulse;/低
10、位在前;staticvoidOneWire_Rst(void)DQ=0;/拉低数据线,准备ResetOneWireBus;Delay_Xus(125);/延时511us,ResetOne-WireBus.DQ=0;Delay_Xus(125);/*函数名:staticvoidOneWire_WriteByte(int8ucmd)*功能描述:写一个字节;*全局变量:NO!*输入:cmd:8bit;*输出:NO!*创建人:huangtiexiong日期:2006-11-28*修改人:日期:2006-11-28*函数说明:cmd主要有Rom操作指令和E2Ram操作指令两种;staticvoidOne
11、Wire_WriteByte(int8ucmd)int8ui;for(i=0;i8;i+)if(cmd&0 x01)*函数名:staticint8uOneWire_ReadByte(void)*功能描述:读取一个字节;*全局变量:NO!*输入:NO!*输出:8bitdata;*创建人:huangtiexiong日期:2006-11-28*修改人:日期:2006-11-28*函数说明:读之前必须首先写1;staticint8uOneWire_ReadByte(void)int8ui;int8utmp=0;DQ=1;/准备读;NOP();for(i=0;i=1;/低位先发;DQ=0;/Readin
12、it;_nop_();/2ms;DQ=1;/必须写1,否则读出来的将是不预期的数据;Delay_Xus(2);/延时9us;_nop_();if(DQ)/在12us处读取数据;tmp|=0 x80;Delay_Xus(30);DQ=1;OneWireBus;/延时55us;/恢复NOP();returntmp;*函数名:staticvoidOneWire_Idle(void)*功能描述:总线空闲模式;*全局变量:NO!*输入:NO!*输出:NO!*创建人:huangtiexiong日期2006-11-28*修改人:日期:2006-11-28*函数说明:staticvoidOneWire_Idl
13、e(void)DQ=1;NOP();*函数名:externvoidDS18B20_RomCmd(int8uromCmd)*功能描述:DS18B20Rom操作命令写;*全局变量:NO!*输入:romCmd;*输出:NO!*创建人:huangtiexiong日期:2006-11-28*修改人:日期:2006-11-28*函数说明:0 x33:ReadRom;0 x55:MatchRom;0 xcc:Skiprom;0 xf0:Searchrom;0 xec:AlarmSearch.externvoidDS18B20_RomCmd(int8uromCmd)/仅写了SkipRom例程;switch(r
14、omCmd)case0 xcc:/SkipRomcommand;OneWire_WriteByte(0 xcc);break;default:break;*函数名:externvoidDS18B20_MemCmd(int8umemCmd)*功能描述:DS18B20Memory操作命令;*全局变量:NO!*输入:NO!*输出:NO!*创建人:huangtiexiong日期:2006-11-28*修改人:日期:2006-11-28*函数说明:仅写了ConvertT(0 x44)和0 xBE命令;0 x44:ConvertT;0 xbe:ReadScratch-pad;externvoidDS18B
15、20_MemCmd(int8umemCmd)switch(memCmd)case0 x44:/StarttoConverttemperature;OneWire_WriteByte(0 x44);NOP();OneWire_Idle();Delay_Xms(250);/延时750ms;Delay_Xms(250);Delay_Xms(250);break;case0 xbe:/Readscratchpad;OneWire_WriteByte(0 xbe);break;default:break;*函数名:externvoidDS18B20_ReadDat(int8ulen,int8u*buf)
16、*功能描述:读取DS18B20内部的Scratchpad内容;*全局变量:NO!*输入:len:将要读取的数据长度;*输出:buf:数据缓存;*创建人:huangtiexiong日期:2006-11-28*修改人:日期:2006-11-28*函数说明:externvoidDS18B20_ReadDat(int8ulen,int8u*buf)int8ui;for(i=0;i127)buf1=(256-buf1);buf0=(256-buf0);n=1;P04=0;/负温度求补码display4=buf0&0 x0f;display0=ditabdisplay4;display4=(buf0&0
17、xf0)4)|(buf1&0 x0f)35)P04=0;if(!display3)display3=10;if(!display2)display2=10;/最高位为0都不显示if(n)display3=11;负温度显示符号sbitSCLK_7289a=P1A3;sbitSDIO_7289a=P1A4;sbitCS_7289a=P1A2;sbitMSB_7289a=ucByte;voidInitZlg7289a(void);voidTrZlg7289a(ucharucCommand);voidTrZlg7289ad(ucharucCommand,ucharucDat);staticvoidSe
18、ndByte(void);staticvoidDelay(ucharucTime);/延时函数voidDelay_Xms(ucharx)x取值1255uchari,j;for(i=0;ix;i+)for(j=0;j200;j+)_nop_();_nop_();*函数名:InitZlg7289a(void)主函main()while(1)*功能模式:全局*函数说明:ZLG7289A初始化,初始化命令:0 xa4P04=1;OneWire_Init();DS18B20_RomCmd(0 xCC);Delay_Xms(20);DS18B20_MemCmd(0 x44);/ConvertTcomman
19、d;调用函数:TrZlg7289a()全局变量:无OneWire_Init();DS18B20_RomCmd(0 xCC);DS18B20_MemCmd(0 xbe);DS18B20_ReadDat(2,buf);work_temp();InitZlg7289a();show(display);Delay_Xms(250);/延时500msDelay_Xms(250);(2)测湿度程序#include#includevoidInitZlg7289a(void)TrZlg7289a(0 xa4);*函数名:voidTrZlg7289a(ucharucCommand)*功能模式:全局#includ
20、e#include#defineucharunsignedchar#defineuintunsignedintucharH_out;/湿度uchardataH_out_w4=OxO0,0 xOO,Ox0O,OxO0;显示、也.r|.人nt单元数据,共3个数据/*重复部分*函数说明:向ZLG7289A传送单指令函数调用函数:Delay()、SendByte()全局变量:ucByte输入:ucCommand返回:无staticucharbdataucByte;*函数名:staticvoidDelay(ucharucTime)voidTrZlg7289a(ucharucCommand)CS_7289
21、a=0;SCLK_7289a=0;SDIO_7289a=0;Delay(50);ucByte=ucCommand;SendByte();CS_7289a=1;SDIO_7289a=1;SCLK_7289a=1;*函数名:voidTrZlg7289ad(ucharucCommand,ucharucDat)*功能模式:全局staticvoidSendByte(void)uchari;for(i=0;i8;i+)SDIO_7289a=MSB_7289a;SCLK_7289a=1;Delay(10);ucByte=1;SCLK_7289a=0;Delay(10);*函数说明:向ZLG7289A传送带数
22、据的指令函数*功能模式:内部*调用函数:Delay()、SendByte()*全局变量:ucByte*输入:ucCommand、ucDat*返回:无*函数说明:延时函数。*调用函数:无*全局变量:无ucTime显示扫描函数voidTrZlg7289ad(ucharucCommand,ucharucDat)SCLK_7289a=0;SDIO_7289a=0;CS_7289a=0;Delay(50);ucByte=ucCommand;SendByte();ucByte=ucDat;SendByte();CS_7289a=1;staticvoidDelay(ucharucTime)uchari;fo
23、r(i=0;iucTime;i+)SDIO_7289a=1;SCLK_7289a=1;*函数名:staticvoidSendByte(void)*功能模式:内部*函数说明:向ZLG7289A发送一个字节的数据。*调用函数:Delay()*全局变量:ucByte、MSB_7289a*输入:无voidshow(uchar返回:无p)uchari;ucharseg=0 x7e,0 x30,0 x6d,0 x79,0 x33,0 x5b,0 x5f,0 x70,0 x7f,0 x7b;for(i=0;i=10)/5000ms扫描一次nFv=g*22;nJsp=0;swt=1;elsenJsp+;EA=
24、1;TR1=1;TF1=0;g=0;/测频子程序外部中断voidT0_Dtime(void)interrupt0using1g+;TF0=0;/湿度输出查表函数*uchartemp;ucharlow=0;ucharhigh=100;uintcodetemptab101=0 x1790,0 x17A0,0 x17B0,0 x17BF,0 x17CF,0 x17DE,0 x17ED,0 x17FC,0 x180B,0 x181A,0 x1829,0 x1838,0 x1847,0 x1856,0 x1864,0 x1873,0 x1881,0 x188F,0 x189E,0 x18AC,0 x18
25、BA,0 x18C8,0 x18D6,0 x18E4,0 x18F2,0 x1900,0 x190D,0 x191B,0 x1929,0 x1936,0 x1944,0 x1951,0 x195E,0 x196C,0 x1979,0 x1986,0 x1993,0 x19A0,0 x19AE,0 x19BB,0 x19C8,0 x19D5,0 x19E1,0 x19EE,0 x19FB,0 x1A08,0 x1A15,0 x1A21,0 x1A2E,0 x1A3B,0 x1A47,0 x1A54,0 x1A61,0 x1A6D,0 x1A7A,0 x1A86,0 x1A93,0 x1A9F,0 x1AAB,0 x1AB8,0 x1AC4,0 x1AD1,0 x1ADD,0 x1AE9,0 x1AF6,0 x1B02,0 x1B0E,0 x1B1B,0 x1B27,0 x1B33,0 x1B40,0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年职业技能推销策略与艺术可用
- 2024-2025学年高中地理第三单元旅游资源评价与旅游规划单元整合提升学案鲁教版选修3
- 2024-2025学年新教材高中生物 第三章 细胞的基本结构 第3节 细胞核的结构和功能教案 新人教版必修1
- 2023年深圳会计从业考试会计基础试题及答案
- 智能控制复习的题目
- 2023爱国卫生月主题总结(16篇)
- 智能化系统建筑项目管理
- 智慧商用显示系统项目运营管理方案
- 2026年宠物食品研发合作协议
- 运营部企业组织结构及岗位职责
- 奏响“民族的声音”-《捷克的原野和森林》
- 修井作业操作规程完整
- 某SUV汽车多连杆后独立悬架设计与分析
- 数字信号处理第三版第二章
- GB/T 8854-1988蔬菜名称㈠
- 施工升降机安拆及使用作业活动风险分级管控清单
- 桥墩与横系梁同步施工工法
- SCI医学论文写作技巧课件
- 肚子里有个火车站专家讲座
- 微生物学检验技术第三节沙门菌属
- 线缆和线束组件的通用要求
评论
0/150
提交评论