欢迎来到优知文库! | 帮助中心 分享价值,成长自我!
优知文库
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 优知文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于51的温度控制系统设计.docx

    • 资源ID:1033096       资源大小:79.29KB        全文页数:13页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录
    二维码
    扫码关注公众号登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于51的温度控制系统设计.docx

    /*/*/*程序名称:温度监控系统/*程序功能:利用89C52单片机和DS18B20温度传感器实现环境*/*温度的实时测量和高、低温报警*/*程序版本:vl.0*/*作者:*/*编写时间:*/#includc<reg52.h>#includc<intrins.h>含_nop_()延时函数定义数据类型#defineucharunsignedchar#defineuintunsignedint定义端口#defineLEDPOsbitDQ=P32;段码输出口传感器数据口sbitSMG_q=PMO;定义数码管阳级控制脚(千位)sbitSMGj)=P。;定义数码管阳级控制脚(百位)sbitSMG-s=Pl2;定义数码管阳级控制脚(十位)sbitSMG_g=PD3;定义数码管阳级控制脚(个位)sbitbuzzer=P15;sbitIedJow=P26;sbitlcd_high=P27;蜂鸣器低温指示灯高温指示灯sbitlcd_ok=P25;温度正常指示灯sbitlcd_work=P24;sbitset=P37;sbitadd=P34;sbitdec=P35;定义变量和常量intcount=0;inth;uinttemp;ucharr;ucharhigh=35,low=20;共阳LED段码表工作指示灯设置按键加一按键减一按键按键次数存放器主函数用循环计数器温度值温度值整数形式上下限初值110»»IlIIl"2”"3''"4"''5''''6'',yg“9”»1”IlucharcodeLED_code12=OxcO,0xf9,0xa4,OxbO,0x99,0x92,0x82,0xf8,0x80,0x90;ucharcodeLED_codel=0x40,0x79,0x24,0x30,0x19,Ox12,0x02,0x78,0x(X),0x10);ucharcodeditabl6=0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09;小数局部转换码表uchardatatemp_data2=0x00,0x00;存储从传感器读出的温度值uchardatadp5=0x00,0x00,0x00,0x00,0x00;显示单元数据,共4个数据和一个运算子函数声明voidds_reset();/DS18B20初始化函数voidds_write(uchards_wrdata);/DS18B20写数据函数uchards_read();read_temp();/DS18B20读数据函数读取温度函数voidchange_temp(uinttern);温度数据处理void void void void voidxianshi(int horl);display();keyscan();Warned();dclay(uint t);温度显示转换数码管显示函数按键查询函数超限报警延时函数,单次25US/*主函数*/voidmain()(1.ED=OxOO;初始化显示端口Icdl=O;led2=0;led3=0;led4=0;for(h=0;h<4;h+)dph=8;Iwhile(l)循环执行显示和温度读取(uchari;for(i=0;i<200;i+)(warnjed();指示灯控制display();显示keyscan();按键扫描)change_iemp(read_temp();温度数据读取和处理)/*/*函数名称:ds_reset()*/*函数功能:DS18B20初始化*/*入口参数:无*/*输出参数:无*/*调用函数:delay();_nop_();*/*全局变量:无*/*局部变量:presence*/*/voidds_reset(void)(charpresence=1;while(presence)while(presence)(DQ=1;传感器数据段先置高电平-11P-();_nop_();适当延时DQ=O;传感器数据段从高电平拉到低电平delay(50);延时再置高电平延时初始化成功,继续下一步延时DQ=I;delay(6);presence=DQ;)delay(45);PreSenCe=DQ;DQ=I;led_work=0;拉高电平开工作指示灯/*/*/*/*/*/*/*/*/*函数名称:ds_write()/*函数功能:向DS18B20写数据/*入口参数:ds_wrdata/*输出参数:无/*调用函数:delay();_nop_();/*全局变量:无/*局部变量:ds_wrdata*/voidds_write(uchards_wrdata)(uchari;for(i=8;i>0;i-)DQ=I;-11op-0;-110P-();DQ=O;_nop_();_nop_();_nop_();_nop_();DQ=ds_wrdata&0x01;最低位移出delay(6);ds_wrdata=ds_wrdata/2;右移1位DQ=I;delay(l);/*/*函数名称:ds_read()*/*函数功能:从DS18B20读数据*/*入口参数:无*/*输出参数:value*/*调用函数:delay();_nop_();*/*全局变量:*/*局部变量:i;ValUe;*/*木木*木*木*/uchards_read(void)uchari;ucharvalue=O;for(i=8;i>0;i-)DQ=l;_nop_();_nop_();value>>=l;DQ=O;_nop_0;_nop_();_nop_();-nop-0;DQ=I;_nop_();-11op-0;_nop_0;_nop_();if(DQ)value=0x80;delay(6);DQ=I;return(value);)/*/*函数名称: *函数功能: /*入口参数: /*输出参数: /*调用函数: /*/*全局变量: /*局部变量:read_temp()读温度数据数据无yempds_reset();ds_write();ds_read(); */delay。;temptemp-data;*/*/*/*/*/*/*/* */rcad_temp()(ds_reset();delay(200);ds_write(Oxcc);ds_write(0x44);ds_reset();delay(l);ds_write(Oxcc); ds_write(Oxbe);temp_dataO=ds_rcad(); temp-data 1 =ds_read(); temp=tcmp_datal 1 ;temp<<=8;temp=temptemp-dataO; return temp;)传感器初始化发跳过读取序列号命令发温度转换命令读18B20中存储器读温度值的低字节命令读温度值的高字节两字节合成一个整型变量 返同温度值/*左*木*木*/*函数名称:chang_temp()*/*函数功能:将温鹿传感器中独到的数据进展转换*/*入口参数:tem*/*输出参数:dpi*/*调用函数:无*/*全局变量:dp;ditab;r;*/*局部变量:Iem*/void change_temp(uint tem)(uchar n=0;if(tem>6348)(tem=65536-tem;n=l;Idp4=tem&0x0f;dpO=ditabdp4;dp4=em>>4;dp3=dp4100;dpl=dp4%100;dp2=dpl10;dpl=dpl%10;r=dpl+dpf21*10+dpf3*100;if(!dp3)dp3=0x0a;if(!dp )(dp2=0x0a;I)if(n)dp3=0x0b;/温度值正负判断/负温度求补码标志位置1/取小数局部的值/存入小数局部显示值/取中间八位,即整数局部的值/取百位数据/取后两位数据/取十位数据/个位/实际温度值(十进制)符号位显示判断最高位为0时不显示次高位为0时不显示负温度时最高位显示”/*木*:*木*木*木*/*函数名称:xianshi()*/*函数功能:温度数据转换成显示所需LED段码*/*入口参数:horl*/*输出参数:dpj*/*调用函数:无*/*全局变量:dp;/*局部变量:n;*/voidxianshi(inthorl)intn=0;if(horl>128)(horl=256-horl;n=l;Idp3=horl100;dp3=dp3<fexf;dp=horl%10010;dpl=horl%10;d

    注意事项

    本文(基于51的温度控制系统设计.docx)为本站会员(王**)主动上传,优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知优知文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 yzwku网站版权所有

    经营许可证编号:宁ICP备2022001189号-2

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知优知文库网,我们立即给予删除!

    收起
    展开