hs1101湿度传感器程序_第1页
hs1101湿度传感器程序_第2页
hs1101湿度传感器程序_第3页
hs1101湿度传感器程序_第4页
hs1101湿度传感器程序_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、hs1101湿度传感器程序AVR单片机   2009-09-18 18:45   阅读107   评论2   字号: 大大  中中  小小   2009-08-03 14:36#include "reg51.h"#define uchar unsigned char #define uint unsigned intuchar tem0 , tem1;       uchar temp0 , temp1;&

2、#160;      uint   f=0;          /初值 /* * 名称: timer0() * 功能: 定时器1,每50000us中断一次。 * 入口参数: */ void timer0() interrupt 1 EA =0; TR0=0;     TR1=0;TL0=0xFF;    /重装值   定时50000us OX4BFFH TH

3、0=0x4B;      tem0 = TL1; /读数 tem1 = TH1; TL1=0x00;   /定时器1清零 TH1=0x00; f=1;    /作标注位TR0=1; TR1=1; EA=1; /* * 名称: timer1() * 功能: 计数器,用于计数将555输出的频率,以计数相对湿度。 * 入口参数: */ void timer1() interrupt 3    /T1中断,表示计数的频率溢出,超出了可测量的频率范围,显然在这里不可能。所以重新启动。

4、EA =0; TR0=0;     TR1=0;TL0=0x00;    /重装值   定时50000us TH0=0x4C;     TL1=0x00;    /定时器1清零 TH1=0x00;   TR0=1;     TR1=1; EA=1; void Init_timer() TMOD=0x51;    /0101 0001 定时器0在模式1下工作16位定时器,定时方式

5、 定时器1在模式1下工作16位计数器,T1负跳变加1 TL0=0x00;    /定时器0初值 定时50000us TH0=0x4C;    TL1=0x00;    /定时器1清零 TH1=0x00; ET0=1;     /使能定时器0中断 ET1=1;     /使能定时器1中断 EA=1;     /使能总中断 TR0=1;     /开始

6、计时 TR1=1; void tran() f = tem1; f = ( f<<8 ) | tem0;     f = f * 20;     /这里f的值是最终读到的频率,不同频率对于不同相对湿度。        if( 5623<= f)&&( f<=6852) )/相对湿度在有效范围内(0100%)    if( 6734<f)&&( f<= 6852) )   

7、;   temp0 = 0; temp1 =(6852 -f)*10/118; if( (6618<f)&&( f<= 6734) ) temp0 = 1; temp1 =(6734 -f)*10/116; if( (6503<f)&&( f<= 6618 ) ) temp0 = 2; temp1 =(6618 -f)*10/115; if( (6388<f)&&( f<= 6503 ) ) temp0 = 3; temp1 =(6503 -f)*10/115; if( (6271<f

8、)&&( f<= 6388 ) ) temp0 = 4; temp1 =(6388 -f)*10/117; if( (6152<f)&&( f<= 6271 ) ) temp0 = 5; temp1 =(6271 -f)*10/119;    if( (6029<f)&&( f<= 6152 ) ) temp0 = 6; temp1 =(6152 -f)*10/123;    if( (5901<f)&&( f<= 6029 ) ) temp0 =

9、7;temp1 =(6029 -f)*10/128;    if( (5766<f)&&( f<= 5901 ) temp0 = 8; temp1 =(5901 -f)*10/135;    if( (5623<f)&&(f<= 5766) temp0 = 9; temp1 =(5766 -f)*10/143; else    temp0 = 0; temp1 = 0;    void main() uchar i,k; uchar count; Init_timer(); count = 0; while(1)    for (i=0;i<200;i+)     for (k=0;k<200;k+);   /延时    tran();   

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论