资源简介
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单片机PWM程序,占空比、周期可调整
- proteus仿真 AT89C51输出各种波形
- 00
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- proteus_24C08—有注释(proteus里面使用的
- DS18B20分布式多点测温的Proteus仿真
- 基于proteus的单片机仿真--交通灯控制
- 带时间温度显示的室内灯光控制系统
- 51多机通信(内附Proteus及.hex文件)
- IIC proteus仿真实验
- 8086交通灯 Proteus原理图及程序
- 单片机仿真软件proteus6.7免安装绿色版
- 关于proteus仿真arm7出现错误的问题
- 基于PROTEUS的ARM7显示系统设计与仿真实
- STM32+1602液晶proteus仿真.zip
- AT89C51+ADC0808 PROTEUS仿真
- 单片机驱动4相步进电机proteus仿真
- proteus元件库对照表 (整理清晰)
- 微机原理 十字路口交通灯控制 prot
- 中央空调室内智能温控器设计论文、
- 基于51单片机的交通灯设计
- 基于AT89C51的十字路口交通灯设计pro
- Proteus单片机仿真大全几百个part4
- Proteus升压电路仿真
- keil调试仿真技巧-从入门到精通
- 十字路口交通灯.pdsprj
- 12864液晶Proteus模型
- 数电设计 交通灯控制逻辑电路设计
- Proteus仿真的单片机控制步进电机及液
评论
共有 条评论