资源简介
Proteus的电子温度检测仿真系统,源代码及原理图都有
代码片段和文件信息
//DS18B20默认为12位精度
#include
#include
#define uchar unsigned char
#define uint unsigned int
unsigned char code shuma[]={
0x3f 0x06 0x5b 0x4f 0x66 0x6d
0x7d 0x07 0x7f 0x6f
0x77 0x7c 0x39 0x5e
0x79 0x71 0x00 };
sbit T_Port=P1^0;
sbit dot=P2^7;
uchar temp_hightemp_low;
uint final_temp;
void delay(uchar x)
{
while(x--);
}
void delay_long(uint x)
{
uint i;
while(x--)
{
for(i=0;i<125;i++)
{}
}
}
void init_ds18b20()//初始化
{
T_Port=1;//复位
delay(2);//稍作延时
T_Port=0;
delay(85);//延时大于480us(520us)
T_Port=1;
delay(8);//这个时间不能太长,否则就过了检测信号的时间了
}
void read_signal()//读取应答脉冲
{
while(T_Port);
while(~T_Port)//检测到应答脉冲
{
delay(4);
break;
}
}
bit readbit_ds18b20()
{
bit b;
T_Port=1;
delay(3);//稍作延时
T_Port=0;
delay(1);//保持低最少1us(4us)
T_Port=1;
delay(2);//延时15us以后输出数据有效(23us)
b=T_Port;
delay(10);//读时间间隙不少于60us(71us)
return(b);
}
void writebyte_ds18b20(uchar b)//写0写1一起完成
{
int ij;
uchar btemp;
T_Port=1;
for(i=0;i<8;i++)
{
j=0;
btemp=b&0x01;
b>>=1;
if(btemp==0)
{
T_Port=0;
delay(10);//保持拉低在60us以上(71us)
T_Port=1;
}
else
{
T_Port=0;
j++;//15us之内拉高
T_Port=1;
delay(10);//整个写时序时间在60us以上(71us)
}
}
}
void temp_convert()
{
init_ds18b20();//初始化
read_signal();//读取应答脉冲
delay_long(1);
writebyte_ds18b20(0xcc);//跳过验证序列号命令,若单线上有多个ds18b20,则不可用这个命令
writebyte_ds18b20(0x44);//启动温度转换命令
}
char readbyte_ds18b20()
{
uint i;
uchar ab;
b=0;
for(i=0;i<8;i++)
{
a=readbit_ds18b20();
b=(a< }
return(b);
}
uint read_ds18b20()
{
uint y;
float yy;
init_ds18b20();//初始化
read_signal();//读取应答脉冲
delay_long(1);
writebyte_ds18b20(0xcc);//跳过验证序列号命令
writebyte_ds18b20(0xbbe);//读取内部ROM的数据
temp_low=readbyte_ds18b20();//读数据时低位在前,高位在后
temp_high=readbyte_ds18b20();
y=temp_high;
y<<=8;
y=y|temp_low;//整合为一个int型
yy=y*0.0625;//12位精度为0.0625
// y=yy*10+0.5;
y=yy*10;
return(y);
}
void display(uint x)
{
uchar abc;
a=x/100;
b=x%100/10;
c=x%10;
P3=0xFE;
P2=shuma[a];
delay_long(2);
P3=0xFD;
P2=shuma[b];
dot=1;//点亮小数点
delay_long(2);
P3=0xFB;
P2=shuma[c];
delay_long(2);
P3=0xF7;
P2=shuma[0];
delay_long(2);
dot=0;
}
void ReadTemp()
{
do
{
delay_long(10);//delay(5)就是延时555us
temp_convert();
delay_long(5);
final_temp=read_ds18b20();
display(final_temp);
}
while(1);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2734 2011-07-05 14:21 电子温度检测系统\18B20.c
文件 2716 2011-07-06 08:15 电子温度检测系统\18B20.h
文件 1994 2011-07-06 07:34 电子温度检测系统\18B201.h
文件 1994 2011-07-06 07:34 电子温度检测系统\18B202.h
文件 1994 2011-07-06 07:34 电子温度检测系统\18B203.h
文件 1994 2011-07-06 07:34 电子温度检测系统\18B204.h
文件 1836 2011-07-06 07:43 电子温度检测系统\GetKey.h
文件 159159 2011-07-06 07:26 电子温度检测系统\Last Loaded shiyan.DBK
文件 159159 2011-07-06 08:16 电子温度检测系统\shiyan.DSN
文件 2198 2011-07-06 08:20 电子温度检测系统\shiyan.PWI
文件 6376 2009-05-07 14:37 电子温度检测系统\STARTUP.A51
文件 14048 2011-07-06 08:15 电子温度检测系统\STARTUP.LST
文件 749 2011-07-06 08:15 电子温度检测系统\STARTUP.OBJ
文件 35234 2011-07-06 08:15 电子温度检测系统\温度
文件 1201 2011-07-06 08:14 电子温度检测系统\温度.c
文件 9635 2011-07-06 08:15 电子温度检测系统\温度.hex
文件 56 2011-07-06 08:15 电子温度检测系统\温度.lnp
文件 3920 2011-07-06 08:15 电子温度检测系统\温度.LST
文件 54955 2011-07-06 08:15 电子温度检测系统\温度.M51
文件 41853 2011-07-06 08:15 电子温度检测系统\温度.OBJ
文件 170 2011-07-06 08:20 电子温度检测系统\温度.plg
....... 60566 2011-07-06 08:20 电子温度检测系统\温度.uvopt
....... 13404 2011-07-05 21:39 电子温度检测系统\温度.uvproj
....... 60564 2011-07-06 08:15 电子温度检测系统\温度_uvopt.bak
....... 13400 2011-07-05 14:29 电子温度检测系统\温度_uvproj.bak
目录 0 2011-07-06 08:20 电子温度检测系统
----------- --------- ---------- ----- ----
651909 26
- 上一篇:excel做的记账工具
- 下一篇:.小型虚拟超市管理系统miniVS的状态图和活动图
相关资源
- 基于51单片机和Proteus仿真的波形发生
- 51单片机ADC0832_1602 proteus仿真源程序加
- 51单片机ADC0832电压测量液晶1602显示的
- 直流电机调速proteus仿真
- 51单片机数字时钟-proteus仿真文件及
- Proteus的LCD19264A仿真模型和源码
- 16×64LED点阵显示屏的设计(附完整p
- proteus仿真步进电机
- 多路智力抢答器设计proteus原理图
- proteus仿真的单片机串口通信,请使用
- 华南理工大学 出租车计费器
- 电子钟DS1302+LCD1602+89C52+proteus仿真图
- 12864多级菜单程序+proteus仿真
- Proteus8.9 VSM Studio WINAVR编译器仿真ATM
- [微机原理与接口技术——基于8086和
- adc0808简单的实验用lcd1602显示电压有仿
- TM1638 Proteus仿真库
- 51单片机设计门禁系统
- 四路抢答器proteus仿真模拟
- 基于51的简易电子琴Proteus仿真与程序
- 74ls90芯片设计24H时钟电路图
- 0·5V可调直流电源Proteus仿真
- 篮球比赛计分器.rar
- Proteus8.6+8086+8255+DAC0832模拟波形发生器
- 用proteus仿真的电子时钟
- 51单片机 Proteus 心形的滚动显示含代码
- Proteus8.6官方正版软件.txt
- 交通灯程序设计1
- proteus与keil连接调试不可或缺的DLL文件
- 基于51单片机和PROTEUS的非常形象的交
评论
共有 条评论