欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    温度采集系统中文版.doc

    • 资源ID:1132661       资源大小:136KB        全文页数:8页
    • 资源格式: DOC        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    温度采集系统中文版.doc

    Piogramming is relatively plex,precision is not hingh LM35.Port configuraturation:Conclusion:pared with TLC549 and LM35 temperature display circuit.This circuit is omitted by the A/D converter TLC549 will temperature digital quantity value transfer to the process of SCM system,so as to simplify the circuit, shortens the working time of the system.So I choose DS18B20 temperature measurement display circuit.Port configuration:Table1AT89C51DS18B20LCD1602Crystal oscillatorRESPACK-8VCCGNDConnectDO-D71-7ConnectDQConnectXTAL1-XTAL21-2ConnectEA(VCC)VCCVDDVCCVCCConnectGNDGNDGNDGNDConnectRSConnectRWConnectESimulation circuit:When the DS18B20 temperature sensor showed a temperature of 72,the LCD display temperature is also 72.When the DS18B20 temperature sensor showed a temperature of 50,the LCD display temperature is also 50.When the DS18B20 temperature sensor showed a temperature of 20,the LCD display temperature is also 20.According to the above figure I can know, my circuit design, the program can be piled to achieve the requirements of the problem. Debugging success.Calculation part:lcd1602_write(0x88);/第二行第一个字符的地址,以后每写入一个字符地址自动加一lcd1602_writedata(a/100)+0x30);lcd1602_writedata(a%100)/10+0x30);/给定数字1的ASC码lcd1602_writedata(a%100)%10+0x30);Reference procedures are as follows:#include <reg52.h> #include <math.h> #include "intrins.h" #define uchar unsigned char #define uint unsigned int/以上为预编译typedef unsigned char BYTE;bdata unsigned char data_tmp; sbit b_in=data_tmp0; sbit ck=P27; sbit cs=P26; sbit b_data=P25;sbit DQ = P33; /DS18B20的数据口位BYTE TPH; /存放温度值的高字节BYTE TPL; /存放温度值的低字节 sbit RS=P20; sbit RW=P21; sbit ENABLE=P22;/以上设置LCD1602的控制端口void DelayXus(BYTE n);void DS18B20_Reset();void DS18B20_WriteByte(BYTE dat);BYTE DS18B20_ReadByte();unsigned int ADC_DS();unsigned char ADC_TLC() unsigned char dd,x,y; ck=1; cs=1; b_data=1; cs=0;for(dd=0;dd<200;dd+);for (y=0;y<8;y+) /b_in=b_data; data_tmp=data_tmp<<1; b_in=b_data; ck=!ck; ck=!ck; x=data_tmp; cs=1; x=x/2; for(dd=0;dd<200;dd+); return x; void delay(uint z)/以1毫秒为单位的延时子程序uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);void lcd1602_write(uchar )/写控制命令RW=0;RS=0;/W MODE INSRUCTIONP0=;/取指令ENABLE=0;_nop_();/Tsp1=60nsENABLE=1;_nop_();/Tpw=450nsENABLE=0;_nop_();/Thd2=5ns delay(1);/Tc=1msvoid lcd1602_writedata(uchar date)/写显示数据内容RW=0;RS=1;/W MODE DATAP0=date;/取数据ENABLE=0;_nop_();/Tsp1=60nsENABLE=1;_nop_();/Tpw=450nsENABLE=0;_nop_();/Thd2=5ns delay(1);/Tc=1msvoid lcd1602_init()/显示初始化delay(15);lcd1602_write(0x38);delay(5);lcd1602_write(0x38);delay(5);lcd1602_write(0x38);delay(5);lcd1602_write(0x08);delay(5);/显示关闭lcd1602_write(0x01);delay(5);/显示清屏lcd1602_write(0x06);delay(5);/显示光标移动设置lcd1602_write(0x0c);delay(5);/显示开void main()unsigned char c;unsigned int a,b,x;lcd1602_init();while(1) a=ADC_DS(); c=ADC_TLC(); b=a;b=b&0x000f;x=(b*10)/16; a=a>>4;lcd1602_write(0x80);/第一行第一个字符的地址,以后每写入一个字符地址自动加一lcd1602_writedata('T');/给定字符编译器自动编译未ASC码lcd1602_writedata('E');lcd1602_writedata('M');lcd1602_writedata('P');lcd1602_writedata(':');lcd1602_write(0x88);/第二行第一个字符的地址,以后每写入一个字符地址自动加一lcd1602_writedata(a/100)+0x30);lcd1602_writedata(a%100)/10+0x30);/给定数字1的ASC码lcd1602_writedata(a%100)%10+0x30);lcd1602_writedata('.');lcd1602_writedata(x+0x30);lcd1602_writedata(0xdf);lcd1602_writedata('C');lcd1602_write(0xc0);lcd1602_writedata('T');/给定字符编译器自动编译未ASC码lcd1602_writedata('E');lcd1602_writedata('M');lcd1602_writedata('P');lcd1602_writedata('m');lcd1602_writedata('a');lcd1602_writedata('x');lcd1602_writedata(':');lcd1602_write(0xc8); lcd1602_writedata(c/100)+0x30);lcd1602_writedata(c%100)/10+0x30);/给定数字1的ASC码lcd1602_writedata(c%100)%10+0x30);lcd1602_writedata(0xdf);lcd1602_writedata('C');delay(150);/延时/while(1);/死循环 unsigned int ADC_DS() unsigned int a,b,TMP; DS18B20_Reset(); /设备复位 DS18B20_WriteByte(0xCC); /跳过ROM命令 DS18B20_WriteByte(0x44); /开始转换命令 while (!DQ); /等待转换完成 DS18B20_Reset(); /设备复位 DS18B20_WriteByte(0xCC); /跳过ROM命令 DS18B20_WriteByte(0xBE); /读暂存存储器命令 TPL = DS18B20_ReadByte(); /读温度低字节 TPH = DS18B20_ReadByte(); /读温度高字节a=TPH;b=TPL;a=a<<8;/b=b>>4;/P1=a+b;TMP=a+b;return TMP; /while (1);/*延时X*10微秒(STC90C52RC12M)不同的工作环境,需要调整此函数当改用1T的MCU时,请调整此延时函数*/void DelayX0us(BYTE n) while (n-) _nop_(); _nop_(); /*复位DS18B20,并检测设备是否存在*/void DS18B20_Reset() CY = 1; while (CY) DQ = 0; /送出低电平复位信号 DelayX0us(48); /延时至少480us DQ = 1; /释放数据线 DelayX0us(6); /等待60us CY = DQ; /检测存在脉冲 DelayX0us(42); /等待设备释放数据线 /*从DS18B20读1字节数据*/BYTE DS18B20_ReadByte() BYTE i; BYTE dat = 0; for (i=0; i<8; i+) /8位计数器 dat >>= 1; DQ = 0; /开始时间片 _nop_(); /延时等待 _nop_(); DQ = 1; /准备接收 _nop_(); /接收延时 _nop_(); if (DQ) dat |= 0x80; /读取数据 DelayX0us(6); /等待时间片完毕 return dat;/*向DS18B20写1字节数据*/void DS18B20_WriteByte(BYTE dat) char i; for (i=0; i<8; i+) /8位计数器 DQ = 0; /开始时间片 _nop_(); /延时等待 _nop_(); dat >>= 1; /送出数据 DQ = CY; DelayX0us(6); /等待时间片完毕 DQ = 1; /恢复数据线

    注意事项

    本文(温度采集系统中文版.doc)为本站会员(李司机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开