毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 课程设计 >> 正文

基于51单片机的温度测量系统 第3页

更新时间:2009-10-18:  来源:毕业论文
基于51单片机的温度测量系统 第3页
段数码管赋值
{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系统软件设计
2.1系统程序流程图
系统程序流程图如图4所示。
图4系统程序流程图
2.2温度部分软件设计
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)
{unsigned char a=0;
unsigned char b=0;
unsigned int t=0;
float tt=0;
Init_DS18B20();
WriteOneChar(0xCC);//跳过读序号列号的操作
riteOneChar(0x44);//启动温度转换
Init_DS18B20();
WriteOneChar(0xCC);//跳过读序号列号的操作
WriteOneChar(0xBE);//读取温度寄存器等(共可读9
器)前两个就是温度
a=ReadOneChar();
b=ReadOneChar();
t=b;
t<<=8;
t=t|a;
tt=t*0.0625;
t=tt*10+0.5;//放大10倍输出并四舍五入---此行没用
(3)主程序部分见前

上一页  [1] [2] [3] 

基于51单片机的温度测量系统 第3页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。