传感器proteus虚拟实验.docx

上传人:b****6 文档编号:8871228 上传时间:2023-05-15 格式:DOCX 页数:12 大小:507.16KB
下载 相关 举报
传感器proteus虚拟实验.docx_第1页
第1页 / 共12页
传感器proteus虚拟实验.docx_第2页
第2页 / 共12页
传感器proteus虚拟实验.docx_第3页
第3页 / 共12页
传感器proteus虚拟实验.docx_第4页
第4页 / 共12页
传感器proteus虚拟实验.docx_第5页
第5页 / 共12页
传感器proteus虚拟实验.docx_第6页
第6页 / 共12页
传感器proteus虚拟实验.docx_第7页
第7页 / 共12页
传感器proteus虚拟实验.docx_第8页
第8页 / 共12页
传感器proteus虚拟实验.docx_第9页
第9页 / 共12页
传感器proteus虚拟实验.docx_第10页
第10页 / 共12页
传感器proteus虚拟实验.docx_第11页
第11页 / 共12页
传感器proteus虚拟实验.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

传感器proteus虚拟实验.docx

《传感器proteus虚拟实验.docx》由会员分享,可在线阅读,更多相关《传感器proteus虚拟实验.docx(12页珍藏版)》请在冰点文库上搜索。

传感器proteus虚拟实验.docx

传感器proteus虚拟实验

 

传感器proteus虚拟实验

 

《传感器原理与应用》实验指导书

 

版本

实验1:

基于DS18B20传感器温度测量实验

步骤:

(1)在Proteus软件画出电路图

(2)用keilC软件写出C程序,并生成.hex文件,导入到单片机当中,进行仿真,观察结果。

包括:

2个头文件和;1个源文件;代码如下

#include<>据端口

ex文件,导入到单片机当中,进行仿真,观察结果。

压力测试仪

系统描述;输入15--115kPA压力信号

输出00h--ffh数字信号(adc0832)

在LCD上显示实际的压力值,如果超限则报警

线性区间标度变换公式:

y=(115-15)/(243-13)*X+15kpa

作者:

单位:

日期:

<>

#include""

#defineuintunsignedint

#defineucharunsignedchar

ex文件,导入到单片机当中,进行仿真,观察结果。

#include<>5us

SCK=0;

DATA=1;5us

SCK=0;

DATA=1;//释放数据总线

temp_LL=val;

}

charwrite(unsignedcharvalue)//写一个字节返回应答信号

{

unsignedchari;

ack=0;

for(i=0x80;i>0;i/=2)//释放数据总线

{if(i&value)DATA=1;//写入值

elseDATA=0;

SCK=1;//上升沿写入

_nop_();_nop_();_nop_();//延时

SCK=0;

}

DATA=1;//释放数据总线

SCK=1;//第9个脉冲

if(DATA==1)ack=1;

//读应答信号

SCK=0;

returnack;//error=1表示没有应答

}

voidstart_sht11(void)//启动

{

DATA=1;SCK=0;//数据为1,SCK=0

_nop_();

SCK=1;//第一个脉冲

_nop_();

DATA=0;//数据跌落

_nop_();

SCK=0;//完成一个脉冲

_nop_();_nop_();_nop_();

SCK=1;//再一个脉冲

_nop_();

DATA=1;//数据变为1

_nop_();

SCK=0;//完成该脉冲

}

voidsht_rest(void)//复位

{

unsignedchari;

DATA=1;SCK=0;//数据为1时钟为0

for(i=0;i<9;i++)//9个脉冲为复位

{SCK=1;

SCK=0;

}

start_sht11();//启动

}

//测量温度或者是温度,返回校验值

text_a(unsignedcharml)

{

unsignedinti;

start_sht11();//启动

write(ml);//写入测温度

if(ack==1)

{

sht_rest();//复位

write(ml);//写入测温度

}

//判断是否处于忙

//DATA=1;//释放数据总线

//for(i=0;i<65535;i++)if(DATA==0)break;

for(i=0;i<55535;i++){if(DATA==0)break;else{xianshi();}}

read();//读温度

}

/////////温湿度处理//////

text_jishuan_temp11()

{

error=0;

ack=0;

sht_rest();//复位

text_a(TEMP_ML);

text_jishuan_temp();

key();

text_a(HUMI_ML);

text_jishuan_humi();

}

//////////计算温度////

text_jishuan_temp()

{

floataa=0,bb=0,temp_zi;

intabcd=0;

aa=(float)temp_h*256+(float)temp_LL;

temp_zi=*aa-40;

if(temp_zi<0)

{

temp_zi=0;

}

temp_zi=temp_zi*10;

xianzhi_t=(int)temp_zi;//给显示值

}

///////计算湿度//////

text_jishuan_humi()

{

floataa=0,bb=0,humi_zi;

intabcd=0;

aa=(float)temp_h*256+(float)temp_LL;

bb=aa*aa*1000000;

aa=*aa;

aa=aa-4-bb;

humi_zi=aa;

humi_zi=humi_zi*10;

xianzhi_h=(int)humi_zi;

}

///////延时///////

delay(inti)

{

while(--i);

}

///////显示处理///////

xianshi()

{

intabcd=0;

inti;

for(i=0;i<1;i++)

{

abcd=xianzhi_h;

gwei=1;

swei=1;

bwei=1;

qwei=1;

P1=dispcode[abcd/100];

qwei=0;

delay(40);

qwei=1;

abcd=abcd%100;

P1=dispcode[abcd/10];

bwei=0;

delay(40);

bwei=1;

if(setbz_h^setbz_l)

{

if(setbz_h)abcd=setzhi_h;

if(setbz_l)abcd=setzhi_l;

P1=dispcode[abcd/10];

swei=0;

delay(40);

swei=1;

P1=dispcode[abcd%10];

gwei=0;

delay(40);

gwei=1;

}

else

{

abcd=xianzhi_t;

P1=dispcode[abcd/100];

swei=0;

delay(40);

swei=1;

abcd=abcd%100;

P1=dispcode[abcd/10];

gwei=0;

delay(40);

gwei=1;

}

}

}

doing()

{

charxianzhi_mi;

xianzhi_mi=xianzhi_t/10;

if((xianzhi_misetzhi_l)){motor=0;hot=0;speek=0;}

if(xianzhi_mi>setzhi_h){motor=1;hot=0;speek=1;}

if(xianzhi_mi

}

key()

{

if(set&setkey)

{

setkey=0;

if(setbz_l){setbz_l=0;setbz_h=0;}

else

{if(!

setbz_h)setbz_h=1;

else{setbz_h=0;setbz_l=1;}

}

}

if(!

set)setkey=1;

if(setup==0)

{

if(setbz_h==1)

{if(setzhi_h<=99)setzhi_h++;}

if(setbz_l==1)

{if((setzhi_l

}

if(setdown==0)

{

if(setbz_h==1)

{if((setzhi_h>setzhi_l)&(setzhi_h>=1))setzhi_h--;}

if(setbz_l==1)

{if(setzhi_l>=1)setzhi_l--;}

}

}

//系统初始化///

csh()

{

P0=0XFF;

P1=1;

P2=0;

P3=0XFF;

}

main()

{

setzhi_h=22;//设置高温

setzhi_l=20;//设置低温

csh();//系统初始化

while

(1)

{

text_jishuan_temp11();//测温湿度

//xianshi();//显示

doing();//处理

key();//键处理

//xianshi();//显示

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2