基于51单片机的温度测量系统
[09-12 18:16:56] 来源:http://www.88dzw.com 单片机学习 阅读:8957次
文章摘要:1.3 报警电路简介 本文中所设计的报警电路较为简单,由一个自我震荡型的蜂鸣器(只要在蜂鸣器两端加上超过3V的电压,蜂鸣器就会叫个不停)和一个发光二极管组成(如图3所示)。在这次设计中蜂鸣器是通过ULN2003电流放大IC来控制。在我们所要求的温度达到一定的上界或者下界时(在文中我们设置的上界温度是45℃,下界温度是5℃),报警电路开始工作,主要程序设计如下: main()//主函数 {unsigned char i=0; unsigned int m,n; while(1) {i=ReadTemperatur
基于51单片机的温度测量系统,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com1.3 报警电路简介
本文中所设计的报警电路较为简单,由一个自我震荡型的蜂鸣器(只要在蜂鸣器两端加上超过3V的电压,蜂鸣器就会叫个不停)和一个发光二极管组成(如图3所示)。在这次设计中蜂鸣器是通过ULN2003电流放大IC来控制。在我们所要求的温度达到一定的上界或者下界时(在文中我们设置的上界温度是45℃,下界温度是5℃),报警电路开始工作,主要程序设计如下:
main()//主函数
{unsigned char i=0;
unsigned int m,n;
while(1)
{i=ReadTemperature();//读温度}
if(i>0 && i<=10) //如果温度在0到10度之间直接给七段数码管赋值
{P1=designP1[i];}
else//如果温度大于10度
{m=i%10;//先给第一个七段数码管赋值
D1=1;
D2=0;
P1=designP1[m];
n=i/10;//再给第二个七段数码管赋值
D1=0;
D2=1;
P1=designP1[n];
if(n>=4&&m>=5)%%(m<=5)//判断温度的取值范围,如果大于45或小于5度,则蜂鸣器叫,发光二极管闪烁
{ int a,b;
Q1=1;//蜂鸣器叫
for(a=0;a<1000;a++)//发光二极管闪烁
for(b=0;b<1000;b++)
Q2=1;
for(a=0;a<1000;a++)
for(b=0;b<1000;b++)
Q2=0;}}}
二.系统软件设计
2.1 温度部分软件设计
DS18B20的一线工作协议流程是:初始化→ROM操作指令→存储器操作指令→数据传输。其工作时序包括初始化时序、写时序和读时序。故主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。程序主要函数部分如下:
(1)初始化函数
//读一个字节函数
ReadOneChar(void)
{unsigned char i=0;
unsigned char dat = 0;
for (i=8;i>0;i--)
{ DQ = 0; // 给脉冲信号
dat>>=1;
DQ = 1; // 给脉冲信号
if(DQ)
dat|=0x80;
delay(4);}
return(dat);}
//写一个字节函数
WriteOneChar(unsigned char dat)
{unsigned char i=0;
for (i=8; i>0; i--)
{DQ = 0;
DQ = dat&0x01;
delay(5);
DQ = 1;
dat>>=1;}}
(2)读取温度并计算函数
ReadTemperature(void)
《基于51单片机的温度测量系统》相关文章
- › 基于51单片机的数控电源设计
- › 基于51单片机超声波测距器设计
- › 基于51单片机的温度测量系统
- › 基于51单片机的车用数字仪表设计与实现
- › 基于51单片机的汉字LCD智能显示模块设计
- › 基于51单片机构成的工业控制系统
- 在百度中搜索相关文章:基于51单片机的温度测量系统
- 在谷歌中搜索相关文章:基于51单片机的温度测量系统
- 在soso中搜索相关文章:基于51单片机的温度测量系统
- 在搜狗中搜索相关文章:基于51单片机的温度测量系统