资源简介
用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的程序设计
- 毕业论文之温度传感器DS18B20(源码
- stm32 ds18b20 温度传感器 测试通过
- 51单片机读取温度数据存储到SD卡中并
- STM32F103 DS18B20 V3.5.0固件库驱动程序工
- DS18B20分布式多点测温的Proteus仿真
- 单片机 DS18B20 温度控制系统
- 课程设计蔬菜大棚自动控制系统,包
- ds18b20温度传感是什么传感器
- DS18B20_Serial_println.ino
- ds18b20测温例程tm4c123x
- STM32F103C8T6读取DS18B20串口显示程序.r
- DS18B20温度+DHT11湿度+LCD1602
- TM4C系列ds18b20温度传感器例程
- 读写ds18b20内部eeprom
- 基于FPGA的DS18B20单总线控制+数码管显
- STM32F103C8T6读取DS18B20串口显示程序
- STM32F103读取ds18b20温度传感器
- DS18B20-液晶1602显示温度和控制(代码
- 基于FPGA的LCD1602实时显示DS18b20温度
- 通过DS18B20检测环境温度,并在LCD128
- FPGA实现的DS18B20温度传感器
- stm32f407对ds18b20温度传感器数据的采集
- 基于zigbee的温度传感器DS18B20
- DS18B20 AT89C51 单片机 protus keil 温度传感
- FPGA综合系统设计二基于FPGA的温度采集
- 基于STC89C52和DS18B20的温控系统
- stm32f103 ds18b20
- 基于FPGA的DS18B20测温代码
- STM32驱动DS18B20库函数驱动
评论
共有 条评论