怎样制作电子温度计
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 char
sbit 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)即可