温度采集系统中文版_第1页
温度采集系统中文版_第2页
温度采集系统中文版_第3页
温度采集系统中文版_第4页
温度采集系统中文版_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Students name:Li liangchenAnswer Sheet Assignment Page Piogramming is relatively complex,precision is not hingh LM35.Port configuraturation:Conclusion:Compared with TLC549 and LM35 temperature display circuit.This circuit is omitted by the A/D converter TLC549 will temperature digital quantity value

2、 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-8VCCGNDConnectP0.0-P0.7DO-D71-7ConnectP3.3DQConnectXTAL1-X

3、TAL21-2ConnectEA(VCC)VCCVDDVCCVCCConnectGNDGNDGNDGNDConnectP2.0RSConnectP2.1RWConnectP2.2ESimulation 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 temperatur

4、e 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 compiled to achieve the requirements of the problem. Debugging success.Calculation part:lcd1602_writecom(

5、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 #include #include intrins.h #define uchar unsigned char #define uint unsigned int/以上为预编译typedef unsigned char B

6、YTE;bdata unsigned char data_tmp; sbit b_in=data_tmp0; sbit ck=P27; sbit cs=P26; sbit b_data=P25;sbit DQ = P33; /DS18B20的数据口位P3.3BYTE TPH; /存放温度值的高字节BYTE TPL; /存放温度值的低字节 sbit RS=P20; sbit RW=P21; sbit ENABLE=P22;/以上设置LCD1602的控制端口void DelayXus(BYTE n);void DS18B20_Reset();void DS18B20_WriteByte(BYTE

7、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;dd200;dd+);for (y=0;y8;y+) /b_in=b_data; data_tmp=data_tmp1; b_in=b_data; ck=!ck; ck=!ck; x=data_tmp; cs=1; x=x/2; for(dd=0;dd0;x-)for(y=110;y0;y-);void lcd1602_writec

8、om(uchar com)/写控制命令RW=0;RS=0;/W MODE INSRUCTIONP0=com;/取指令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

9、_();/Thd2=5ns delay(1);/Tc=1msvoid lcd1602_init()/显示初始化delay(15);lcd1602_writecom(0x38);delay(5);lcd1602_writecom(0x38);delay(5);lcd1602_writecom(0x38);delay(5);lcd1602_writecom(0x08);delay(5);/显示关闭lcd1602_writecom(0x01);delay(5);/显示清屏lcd1602_writecom(0x06);delay(5);/显示光标移动设置lcd1602_writecom(0x0c);d

10、elay(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=a4;lcd1602_writecom(0x80);/第一行第一个字符的地址,以后每写入一个字符地址自动加一lcd1602_writedata(T);/给定字符编译器自动编译未ASC码lcd1602_writedata(E);lcd1602_writedata(M);lcd1602_writedata(P);lcd1602_

11、writedata(:);lcd1602_writecom(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_writecom(0xc0);lcd1602_wri

12、tedata(T);/给定字符编译器自动编译未ASC码lcd1602_writedata(E);lcd1602_writedata(M);lcd1602_writedata(P);lcd1602_writedata(m);lcd1602_writedata(a);lcd1602_writedata(x);lcd1602_writedata(:);lcd1602_writecom(0xc8); lcd1602_writedata(c/100)+0x30);lcd1602_writedata(c%100)/10+0x30);/给定数字1的ASC码lcd1602_writedata(c%100)%1

13、0+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命令 DS18B2

14、0_WriteByte(0xBE); /读暂存存储器命令 TPL = DS18B20_ReadByte(); /读温度低字节 TPH = DS18B20_ReadByte(); /读温度高字节a=TPH;b=TPL;a=a4;/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= 1; DQ = 0; /开始时间片 _nop_(); /延时等待 _n

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论