1、PROTEUS安装好后,默认不会在桌面上产生快捷方式。先打开开始菜单,依次点击“程序、Proteus7Professional、ISIS7Professional”打开PROTEUS。
3、用关键字搜索,89C51,再加几个LED,因为是仿真就不用加限流电阻和晶振复位的元件了。
4、把元件排列放好,再放一个电源。
5、连好导线,只要把鼠标放在管脚上就会自动变成连线图标,十分方便。
6、右键点击单片机,在菜单中选择“EDITPROPERTIES”。
7、点选图中红框,然后选中要装载的HEX文件。
8、在编译器KEIL中写程序,然后编译成HEX文件。
9、点左下角的三角形开始按钮,可以看到仿真结果。
#include<reg52.h>sbit DQ=P0^0
void Delay(int num) //延时函数
{
while(num--)
}
void Init_DS18B20(void)//初始化ds18b20
{
DQ = 1 //DQ复位
Delay(8) //稍做延时
DQ = 0 //单片机将DQ拉低
Delay(80) //精确延时 大于 480us
DQ = 1 //拉高总线
Delay(14)
Delay(20)
}
unsigned char ReadOneChar(void)//读一个字节
{
unsigned char i=0
unsigned char dat = 0
for (i=8i>0i--)
{
DQ = 0// 给脉冲信号
dat>>=1
DQ = 1// 给脉冲信号
if(DQ)
dat|=0x80
Delay(4)
}
return(dat)
}
void WriteOneChar(unsigned char dat)//写一个字节
{
unsigned char i=0
for (i=8i>0i--)
{
DQ = 0
DQ = dat&0x01
Delay(5)
DQ = 1
dat>>=1
}
}
unsigned int ReadTemperature(void)//读取温度
{
unsigned char a=0
unsigned char b=0
long unsigned int tvalue//温度值
Init_DS18B20()
WriteOneChar(0xCC)// 跳过读序号列号的 *** 作
WriteOneChar(0x44)// 启动温度转换
Init_DS18B20()
WriteOneChar(0xCC)//跳过读序号列号的 *** 作
WriteOneChar(0xBE)//读取温度寄存器
a=ReadOneChar() //读低8位
b=ReadOneChar() //读高8位
tvalue=b
tvalue<<=8
tvalue=tvalue|a
tvalue=tvalue*0.0625 //读取的数据保留到个位
return(tvalue)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)