资源简介
用DS18B20温度传感器检测温度并显示在数码管上,当温度超过32度时自动报警(蜂鸣器响)
代码片段和文件信息
#include
#include //包含_nop_()函数定义的头文件
#define uchar unsigned char
#define uint unsigned int
sbit beep=P3^4;
sbit JDQ=P2^4;
sbit we1=P2^0;
sbit we2=P2^1;
sbit we3=P2^2;
sbit we4=P2^3;
uchar shigex1x2;
uchar limith=32limitl=30temp;
uchar code tab[] = {0xc00xf90xa40xb00x990x920x820xf80x800x90}; //不带小数点
uchar code tab1[11]={0X400X790X240X300X190X120X020X780X000X100xc6}; //带点的 //0x39是C
uchar TL;
uchar TH;
uchar TN;
uchar TD;
void delaynms(uchar n)
{
uchar ij;
for(i=0;i for(j=330;j>0;j--);
}
sbit DQ=P3^5;
uchar time;
bit Init_DS18B20(void)
{
bit flag;
DQ = 1;
for(time=0;time<2;time++)
;
DQ = 0;
for(time=0;time<200;time++)
;
DQ = 1;
for(time=0;time<10;time++)
;
flag=DQ;
for(time=0;time<200;time++)
;
return (flag);
}
uchar ReadOneChar(void)
{
uchar i=0;
uchar dat;
for (i=0;i<8;i++)
{
DQ =1;
_nop_();
DQ = 0;
dat>>=1;
_nop_();
DQ = 1;
for(time=0;time<2;time++)
;
if(DQ==1)
dat|=0x80;
else
dat|=0x00;
for(time=0;time<8;time++)
;
}
return(dat);
}
WriteOneChar(uchar dat)
{
uchar i=0;
for (i=0; i<8; i++)
{
DQ =1;
_nop_();
DQ=0;
DQ=dat&0x01;
for(time=0;time<10;time++)
;
DQ=1;
for(time=0;time<1;time++)
;
dat>>=1;
}
for(time=0;time<4;time++)
;
}
void ReadyReadTemp()
{
Init_DS18B20();
WriteOneChar(0xCC);
WriteOneChar(0x44);
for(time=0;time<100;time++)
;
Init_DS18B20();
WriteOneChar(0xCC);
WriteOneChar(0xBE);
}
void display_temp1(uchar x)
{
uchar kl;
k=x/10;
l=x%10;
P0=0xff;
we1=0;
P0=tab[k];
delaynms(10);
we1=1;
P0=0xff;
we2=0;
P0=tab1[l];
delaynms(10);
we2=1;
P0=0xff;
delaynms(50);
}
void display_temp2(uchar x)
{
uchar ab;
a=x/10;
b=x%10;
P0=0xff;
we3=0;
P0=tab[b];
delaynms(10);
we3=1;
P0=0xff;
we4=0;
P0=tab1[10];
delaynms(10);
we4=1;
P0=0xff;
delaynms(50);
}
void tempdisplay()
{
uchar w0w1;
ReadyReadTemp();
TL=ReadOneChar();
TH=ReadOneChar();
TN=TH*16+TL/16;
TD=(TL%16)*10/16;
w0=TN<<4;
w1=TD>>4;
temp=w0+w1;
display_temp1(TN);
display_temp2(TD);
delaynms(10);
}
void main(void)
{
JDQ=1;
beep=0;
Init_DS18B20();
delaynms(5);
while(1)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 186992 2010-07-17 08:01 程序-----设置温度上下限并报警(32)度\Backup Of STC89C52共阳实验板.DBK
文件 191386 2010-07-17 09:03 程序-----设置温度上下限并报警(32)度\Last Loaded STC89C52共阳实验板.DBK
文件 182058 2010-07-17 22:04 程序-----设置温度上下限并报警(32)度\STC89C52共阳实验板.DSN
文件 1054 2010-07-19 17:17 程序-----设置温度上下限并报警(32)度\STC89C52共阳实验板.PWI
文件 3322 2010-07-18 09:46 程序-----设置温度上下限并报警(32)度\设置温度上下限并报警
文件 3209 2010-07-19 21:40 程序-----设置温度上下限并报警(32)度\设置温度上下限并报警.c
文件 1843 2010-07-18 09:46 程序-----设置温度上下限并报警(32)度\设置温度上下限并报警.hex
文件 72 2010-07-18 09:46 程序-----设置温度上下限并报警(32)度\设置温度上下限并报警.lnp
文件 7070 2010-07-18 09:46 程序-----设置温度上下限并报警(32)度\设置温度上下限并报警.LST
文件 14915 2010-07-18 09:46 程序-----设置温度上下限并报警(32)度\设置温度上下限并报警.M51
文件 4969 2010-07-18 09:46 程序-----设置温度上下限并报警(32)度\设置温度上下限并报警.OBJ
文件 1024 2010-07-19 21:40 程序-----设置温度上下限并报警(32)度\设置温度上下限并报警.Opt
文件 218 2010-07-19 21:40 程序-----设置温度上下限并报警(32)度\设置温度上下限并报警.plg
文件 2102 2010-07-19 21:38 程序-----设置温度上下限并报警(32)度\设置温度上下限并报警.Uv2
....... 1203 2010-07-19 21:38 程序-----设置温度上下限并报警(32)度\设置温度上下限并报警_Opt.Bak
....... 1694 2010-07-18 20:38 程序-----设置温度上下限并报警(32)度\设置温度上下限并报警_Uv2.Bak
目录 0 2010-07-19 21:40 程序-----设置温度上下限并报警(32)度
----------- --------- ---------- ----- ----
603131 17
- 上一篇:学生信息管理系统数据库课程设计
- 下一篇:WCE注入工具.rar
相关资源
- 基于DS18B20设计温度报警器
- 51单片机+DS18B20测温+LCD12864显示,楼主
- MSP430单片机DS18B20测温、LCD1602显示、报
- 基于单片机DS1302+DS18B20+DHT11+LCD12864的万
- 单片机温度检测系统
- 基于51单片机的温度采集系统
- 51单片机温度报警程序
- 单片机恒温箱温度控制系统的设计
- 基于DS18B20的温度控制系统设计
- 单总线温度采集与显示
- 已成功的DS18B20温度显示程序带高低限
- 温度显示报警程序 温度传感器ds18
- 51单片机室温 体温测量
- 基于51单片机的ds18b20温度传感器实现
- DS18B20的温度显示程序,序列号读取,
- DS18B20的时序图详解
- DS18b20在STC12C5A60S2上的移植
- MSP430单片机通过proteus仿真DS18B20程序
- DS18B20温度传感器的proteus仿真.rar
- STM32-DS18B20.zip
- DS18B20 51单片机,包括电路
- MSP430—DS18B20程序
- 单总线两个DS18B20温度传感器程序及其
- DS18B20+UCOSIII-技术资料+源码
- 单总线控制多个DS18B20
- 60S2单片机驱动DS18B20温度传感器C程序
- STM32f103的DS18B20温度读取
- DS18B20内部EEPROM保存
- msp430f149基于DS18b20测温并1602显示
- C2000 DSP对DS18B20的初始化读写程序
评论
共有 条评论