资源预览内容
第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
亲,该文档总共4页全部预览完了,如果喜欢就下载吧!
资源描述
#include #define uint unsigned int #define uchar unsigned char sbit wela=P27; sbit dula=P26;sbit lcden=P34; sbit lcdrs=P35;sbit TMDAT=P22; /DS18B20 的数据输入/输出脚 DQ,根据情况设定 uint sdata;/测量到的温度的整数部分 uchar xiaoshu;/小数uchar code table10=0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39;void delay(uint count) /延时部分 uchar i; while(count-) for(i=0;i1); return(dat); void tmwbyte (uchar dat) /写一个字节 uchar j,i; bit testb; for(j=1;j1; if(testb) TMDAT=0; /写 0 i+;i+; TMDAT=1; for(i=0;i8;i+); else TMDAT=0; /写 0 for(i=0;i8;i+); TMDAT=1; i+;i+; void tmstart (void) /发送 ds1820 开始转换 tmreset(); /复位 delay(1); /延时 tmwbyte(0xcc); /跳过序列号命令 tmwbyte(0x44); /发转换命令 44H, void tmrtemp (void) /读取温度 uchar a,b; tmreset(); /复位 delay(1); /延时 tmwbyte(0xcc); /跳过序列号命令 tmwbyte(0xbe); /发送读取命令 a=tmrbyte(); /读取低位温度 b=tmrbyte(); /读取高位温度 sdata=a/16+b*16; /整数部分 xiaoshu=(a /小数 void DS18B20PRO(void) tmstart(); /dmsec(5); /如果是不断地读取的话可以不延时 / tmrtemp(); /读取温度,执行完毕温度将存于 TMP 中 / void write_com(uchar com) lcdrs=0; P0=com; delay(5); lcden=1; delay(5); lcden=0; void write_data(uchar date) lcdrs=1; P3=date; P0=date; delay(5); lcden=1; delay(5); lcden=0; void init() dula=0; wela=0; lcden=0;write_com(0x38); write_com(0x0e); write_com(0x06);write_com(0x01); write_com(0x80); void dis() init(); write_data(tablesdata/10);write_data(tablesdata%10);write_data(0xa5);write_data(tablexiaoshu); void main() while(1)DS18B20PRO();dis(); delay(1000);
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号