手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

怎样制作电子温度计

时间:2024-10-16 02:45:16

DS18B20是由dallas公司生产的可编程数字温度计,单总线通信,测量精确度高,使用便捷。

工具/原料

DS18B20温度传感器、51单片机最小系统、PL2303USB转串口模块,杜邦线

电脑和软件keil c51、pl2303驱动、stc-isp、串口调试助手

安装软件

1、安装好keil软件和PL2302驱动,打开设备管理器,确认PL2303安装正确。

怎样制作电子温度计

编写程序

1、打开keil软件,点,选择project-new uvision project新建工程文件

怎样制作电子温度计

2、选择atmel下的at89c51单片机

怎样制作电子温度计
怎样制作电子温度计

3、点“是”确认添加启动文件

怎样制作电子温度计

4、双击打开”target1”,右键add new item添加新项目,选c语言

怎样制作电子温度计
怎样制作电子温度计

5、/*输入定义代码*/#include<reg52.h>#define uint unsigned int#define uchar unsigned charsbit io=P3^7;void delay(unsigned int i){ while(i--);}

怎样制作电子温度计

6、/*编写初始化温度传感器的代码*/void initcgq(void){ uchar x=0; io=1; delay(8); io=0; delay(80); io=1; delay(14); delay(20);}

怎样制作电子温度计

7、/*编写读写温度传感器的代码*/uchar read(void){ uchar i=0,dat=0; for(i=8;i>0;i--) { io=0; dat>>=1; io=1; if(io)dat|=0x80; delay(4); } return(dat);}void write(uchar dat){ uchar i=0; for(i=8;i>0;i--) { io=0; io=dat&0x01; delay(5); io=1; dat>>=1; }}

怎样制作电子温度计

8、/*编写转温度的代码*/uint readt(void){uchar x=0,y=0;uint t=0;float tt=0;initcgq();write(0xCC);write(0x44);initcgq();write(0xCC);write(0xBE);x=read();y=read();t=y;t<<=8;t=t|x;tt=t*0.0625; t= tt*10+0.5; return(t);}

怎样制作电子温度计

9、/*编写初始化串口的函数和主函数*/void chuankou4800(){ SCON=0X50; TMOD=0X20; PCON=0X80; TH1=0XF3; TL1=0XF3; EA=1; TR1=1;}void main(){ chuankou4800(); while(1){ SBUF=readt(); while(!TI); TI=0; }}

怎样制作电子温度计

编译程序

1、点击target options按钮

怎样制作电子温度计

2、切换到output选项卡,勾选create hex file

怎样制作电子温度计

3、点击rebuild按钮全部编译

怎样制作电子温度计

4、编译完成后提示错误为0,警告为0,编译成功

怎样制作电子温度计

5、在工程文件的相同目录里会生成对应的hex文件

怎样制作电子温度计

烧录程序

1、准备好单片机,杜邦线和PL2303模块

怎样制作电子温度计

2、将pl2303的5.0V连接单片机最小系统的VCC;将pl2303的txd连接单片机最小系统的rxd;将pl2303的rxd连接单片机最小系统的txd;将pl2303的gnd连接单片机最小系统的gnd;

怎样制作电子温度计

3、将pl2303插入电脑,打开stc-isp,找到单片机对应的型号,选择之前生成的hex文件

怎样制作电子温度计

4、点击下载-编程按钮,之后断开单片机最小系统上的vcc线,一秒之后再将vcc接回原处

怎样制作电子温度计

5、软件提示操作成功

显示温度

1、拿出DS18B20,面对文字,引脚向下,从左向右分别接入单片机的GND,P3.7,VCC

怎样制作电子温度计

2、连接完成之后插入电脑

怎样制作电子温度计

3、打开串口调试助手,选择对应的串口,波特率调制4800,勾选hex显示,即可得到16进制的温度

怎样制作电子温度计

4、十六进制数转换为十进制,除以10,就得到了十进制的摄氏度(比如我的是fb,转10进是251,温度为25.1摄氏度)

5、如果测得温度过低,可能是数据溢出.只需要在原始数据加上FF(25.5)即可

© 手抄报圈