多点温度监测系统.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
多点温度监测系统

电子设计自动化 实 训 报 告 一、实训目的和意义 通过对多点温度检测系统的设计,可以更深入的了解MC5.2单片机的特点以及应用技巧,对单片机的应用可以温习其中的结构以及原理。而且proteus的强大功能也能通过此次试验反应出来,熟悉其界面的风格以及各种应用,又重新的认识了proteus在单片机方面的强大功能。 二、实训设计内容要求 1.实现4点温度实时采集,温度传感器采用DS18B20 2.采用LCD1602显示4个采集点温度 3.具有温度上下限报警功能:上限90°C,下限20°C 4.声音和光报警2种模式: 光报警采用4只发光LED; 声音报警采用扬声器,报警音调采用2KHz方波。 三、系统设计 1.方案设计 2.硬件电路设计 (1)工作原理: (a)()()()()80C52 (b)晶振电路 (c)复位电路 (d)LED灯电路 (e)LCD1602 (f)温度检测ds18b20 3. 软件设计 (1)时间的设定: 延时程序如下{ while(num--) ; } void Time0(void) interrupt 1 using 0 { sound=~sound; TH0=(65536-5000)/256; TL0=(65536-5000)%256; } (2)信号的读入与写出: 读字节程序如下unsigned char ReadOneChar1()// { unsigned char i=0; unsigned char dat1 = 0; for (i=8;i0;i--) { DQ1 = 0; // 给脉冲信号 dat1=1; DQ1 = 1; // 给脉冲信号 if(DQ1) dat1|=0x80; tmpDelay(4); } return(dat1); 一共读四个字节,接下来是写字节程序如下 void WriteOneChar1(unsigned char dat1)// { unsigned char i=0; for (i=8; i0; i--) { DQ1 = 0; DQ1 = dat10x01; tmpDelay(5); DQ1 = 1; dat1=1; } 注意度字节的返回值。 读取温度 unsigned int Readtemp1()// { unsigned char a=0; unsigned char b=0; unsigned int t=0; float tt=0; Init_DS18B201(); WriteOneChar1(0xCC); WriteOneChar1(0x44); Init_DS18B201(); WriteOneChar1(0xCC); WriteOneChar1(0xBE); a=ReadOneChar1(); b=ReadOneChar1(); // t=b; t=8; t=t|a; tt=t*0.0625; t= tt*10; if((t900)|(t200)) { LED1=0; EA=1; TR0=1; } else { LED1=1; EA=0; TR0=0; } return(t); } (3) 蜂鸣器以及led的显示 程序如下 void delay(uchar z) { uchar x,y; for(x=1000;x1;x--) for(y=z;y1;y--); } void write_com(uchar com) //写命令函数 { lcdrs=0; P0=com; delay(5); lcden=1; delay(5); lcden=0; } void write_date(uchar date) //写数据函数 { lcdrs=1; P0=date; delay(5); lcden=1; delay(5); lcden=0; } void init_lcd() //初始化函数 { lcden=0; //默认开始状态为关使能端,见时序图 lcdrw=0; //选择状态为 写 write_com(0x0f); write_com(0x38); //显示模式设置,默认为0x38,不用变。 write_com(0x01); //显示清屏,将上次的内容清除 write_com(0x0c); //显示功能

文档评论(0)

haihang2017 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档