




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
查看文章DS18B20温度计 c程序,lcd1602显示2008-12-15 19:33DS18B20温度计 c程序,lcd1602显示2007-12-14 19:05温度值精确到0.1度,lcd1602显示仿真电路图如下c程序如下:#include#define uchar unsigned char#define uint unsigned intsbit DQ=P37;/ds18b20与单片机连接口sbit RS=P30;sbit RW=P31;sbit EN=P32;unsigned char code str1=temperature: ;unsigned char code str2= ;uchar data disdata5;uint tvalue;/温度值uchar tflag;/温度正负标志/*lcd1602程序*/void delay1ms(unsigned int ms)/延时1毫秒(不够精确的)unsigned int i,j; for(i=0;ims;i+) for(j=0;j0;i-) DQ = 0; /给脉冲信号 dat=1; DQ = 1; /给脉冲信号 if(DQ) dat|=0x80; delay_18B20(10); return(dat);void ds1820wr(uchar wdata)/*写数据*/unsigned char i=0; for (i=8; i0; i-) DQ = 0; DQ = wdata&0x01; delay_18B20(10); DQ = 1; wdata=1; read_temp()/*读取温度值并转换*/uchar a,b;ds1820rst(); ds1820wr(0xcc);/*跳过读序列号*/ds1820wr(0x44);/*启动温度转换*/ds1820rst(); ds1820wr(0xcc);/*跳过读序列号*/ ds1820wr(0xbe);/*读取温度*/ a=ds1820rd();b=ds1820rd();tvalue=b;tvalue=8;tvalue=tvalue|a; if(tvalue 0; i-) DQ = 0; / 给脉冲信号 dat = 1; DQ = 1; / 给脉冲信号 if(DQ) dat |= 0x80; Delay(4); return (dat);/*/WriteOneChar(unsigned char dat)/写一个字节 unsigned char i = 0; for (i = 8; i 0; i-) DQ = 0; DQ = dat&0x01; Delay(5); DQ = 1; dat=1; /*/Read_Temperature(void)/读取温度 Init_DS18B20(); if(presence=1) beep();flash=1; /DS18B20不正常,蜂鸣器报警 else flash=0; WriteOneChar(0xCC); / 跳过读序号列号的操作 WriteOneChar(0x44); / 启动温度转换 Init_DS18B20(); WriteOneChar(0xCC); /跳过读序号列号的操作 WriteOneChar(0xBE); /读取温度寄存器 temp_data0 = ReadOneChar(); /温度低8位 temp_data1 = ReadOneChar(); /温度高8位 /*/Disp_Temperature()/显示温度 unsigned char n=0; display4=temp_data0&0x0f; display0=ditabdisplay4; /查表得小数位的值 display4=(temp_data0&0xf0)4)|(temp_data1&0x0f)4); display3=display4/100; display1=display4%100; display2=display1/10; display1=display1%10; if(!display3) /高位为0,不显示 display3=0x0a; if(!display2) /次高位为0,不显示 display2=0x0a; P0 = 0xc6; /显示 CP2 = 0x7f;Delay(300);P0 = 0x9c; /显示 P2 = 0xbf;Delay(300);P0 =LEDDatadisplay0 ; /显示小数位P2 = 0xdf;Delay(300);P0 =LEDDatadisplay1; /显示个位DIN = 0;P2 = 0xef;Delay(300);P0 =LEDDatadisplay2; /显示十位P2 = 0xf7;Delay(300);P0 =LEDDatadisplay3; /显示十位P2 = 0xfb;Delay(300);P2 = 0xff; /关闭显示/*/void beep() unsigned char i; for (i=0;i100;i+) Delay(60); BEEP=!BEEP; /BEEP取反 BEEP=1; /关闭蜂鸣器 /*/void main(void) while(1) Read_Temperature();if(flash=0) Disp_Temperature();else P2 = 0xff ; /DS18B20不正常,关闭显示 DS18B20的C程序/ 3.DS18B20数据口线的修改请参考DS18B20.h中的定义.#includeDS18B20.h#include #include void Delay1us(uchar value) value = value;/-/name:Ds18b20Reset/description:复位ds18b20芯片进行初始化/parameter: no/-void Ds18b20Reset(void) DS18B20_DQ_CLE; DelayUs(198); /100us DelayUs(198); DelayUs(198); DelayUs(198); DS18B20_DQ_SET; DelayUs(38); /20us/-/name:Ds18b20Ack/description:应答单总线/parameter: no/-void Ds18b20Ack(void) while(DS18B20_DQ_DAT); while(!DS18B20_DQ_DAT); DelayUs(38); /20us /-/name:Ds18b20Write/description: 写一个字节/parameter: dat 要写入的数据,无符号字符型/-void Ds18b20Write(uchar data) uchar i; for(i=0;i1; /-/name:Ds18b20ReadBit/description: 读一个位/parameter: no/-uchar Ds18b20ReadBit(void) uchar data; DS18B20_DQ_CLE; Delay1us(1); /延时1个us DS18B20_DQ_SET; Delay1us(1); /延时2个us Delay1us(1); data = DS18B20_DQ_DAT; DelayUs(118); /60us return data;/-/name:Ds18b20ReadByte/description: 读一个字节/parameter: no/-uchar Ds18b20ReadByte(void) uchar i,data; data = 0; for(i=0;i 1; if(Ds18b20ReadBit() data |= 0x80; return data;/-/name:Ds18b20Convert/description: 命令Ds18b20开始转换温度/parameter: no/-void Ds18b20Convert(void) Ds18b20Reset(); Ds18b20Ack(); delms(1); Ds18b20Write(DS18B20_SKIP_ROM); Ds18b20Write(DS18B20_CONVERT_TEM);/-/name:Ds18b20ReadTem/description: 从Ds18b20读取温度/parameter: no/-uint Ds18b20ReadTem(void) uchar Height,Low; uint Temp; Ds18b20Reset(); /初始化 Ds
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基于信息技术支持的初中物理实验操作能力培养策略研究论文
- 中学物理实验误差控制与脑机接口信号处理算法融合创新论文
- 初中生校园涂鸦艺术教育与团队协作能力的培养论文
- 艾滋检测点管理制度
- 苗圃场运营管理制度
- 茶艺功能室管理制度
- 设备承诺书范文
- 北京晶城秀府房地产项目整合推广案
- 八年级思品上册(湘师大版)教学课件-第一节 生活中的法律保护
- 自动化生产线运行与维护课程标准
- 2023年南昌市外国与学校小升初能力试题
- 北京市朝阳区2021-2022学年四年级下学期期末语文试卷
- 金融系统反洗钱考试题库(含答案)
- 甘肃省张掖市2023年中考地理真题试题(含解析)
- 人教小学数学五年级下册综合与实践《怎样通知最快》示范公开课教学课件
- 脱不花三十天沟通训练营
- 2023年湖南常德中考语文真题及答案
- “滚球法”计算接闪器保护范围
- 生产专案持续改善工作汇报
- 2022年南通如皋市医疗系统事业编制乡村医生招聘笔试试题及答案解析
- SB/T 10347-2017糖果压片糖果
评论
0/150
提交评论