欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3304|回復: 0
收起左側

51單片機設計Hs1101濕度計源程序

[復制鏈接]
ID:297498 發表于 2018-3-26 20:44 | 顯示全部樓層 |閱讀模式
#include<reg52.h>
#include <absacc.h>
#define uint unsigned int
#define uchar unsigned char
sbit rs=P2^0;
sbit rw=P2^1;
sbit en=P2^2;
unsigned char  shuju1[9]={0};         //濕度
uchar code table2[16]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x53,0x48,0x49,0x25,0x2e,0x20};        //濕度調用

/**************1602d調用函數*******************/

void write_com(uchar com);
void write_shuju(uchar shuju);
void init();
void delay(uchar z);

/****************hs1101調用函數*************************/
void readfrequency(void);           //  讀頻率函數//
bit minrange=0;                     //濕度下限標志位//
bit maxrange=0;                     //濕度上限標志位//
bit T0Over=0;                       //定時器結束標記

unsigned char w,x,y;

/******************主函數******************/
void main()                  
{
    init();
    while(1)   
    {
        readfrequency();
    }
}


/*****************1602延時程序*****************/

void delay(uchar z)
{
    uint a,b;
    for(a=0;a<z;a++)
        for(b=0;b<110;b++);
}

/*******************1602初始化**************/

void init()
{
    en=0;
    write_com(0x38);        //設置為8位并行,顯示2行,5*7點陣顯示
    write_com(0x0c);        //設置顯示開 無光標 光標不閃爍
    write_com(0x01);          //清屏指令
    write_com(0x80);
}

/***************1602寫指令*********************/

void write_com(uchar com)
{
    rs=0;
    rw=0;
    P1=com;
    delay(5);
    en=1;
    en=0;
}

/**************1602寫數據**********************/

void write_shuju(uchar shuju)
{
    rs=1;
    rw=0;
    P1=shuju;
    delay(5);
    en=1;
    en=0;
}



/****************中斷*****************************/

void timer0() interrupt 1
{
    TR1=0;
    TR0=0;
    TF0=0;
    ET0=0;
    T0Over=1;
}

/*************濕度傳感器頻率采集及轉換模塊***************/

void readfrequency()
{
    unsigned int ftequency,RH;
    TMOD=0x51;
    TH0=0x4C;
    TL0=0X00;
    TH1=0;
    TL1=0;
    TR1=1;
    TR0=1;
    ET0=1;
    ET1=0;
    EA=1;
    T0Over=0;
    while(!T0Over)
    write_com(0x80+0x40);
    write_shuju(table2[shuju1[0]]);
    write_com(0x80+0x41);
    write_shuju(table2[shuju1[1]]);
    write_com(0x80+0x42);
    write_shuju(table2[shuju1[2]]);
    write_com(0x80+0x43);
    write_shuju(table2[shuju1[3]]);
    write_com(0x80+0x44);
    write_shuju(table2[shuju1[4]]);
    write_com(0x80+0x45);
    write_shuju(table2[shuju1[5]]);
    write_com(0x80+0x46);
    write_shuju(table2[shuju1[6]]);
    write_shuju(table2[shuju1[7]]);
    write_shuju(table2[shuju1[8]]);
    ftequency=(TH1*256+TL1)*20;
    minrange=0;
    maxrange=0;
    if(ftequency)
    {
        if(ftequency<6033)
            maxrange=1;
        if(ftequency>7351)
            minrange=1;
        if(6330<ftequency<=7351)
            RH=5880-0.8*ftequency;
        if(6033<=ftequency<=6330)
            RH=5860-0.8*ftequency;
        shuju1[0]=10;
        shuju1[1]=11;
        shuju1[2]=12;
        shuju1[3]=15;
        shuju1[4]=RH/100;
        shuju1[5]=(RH%100)/10;
        shuju1[6]=14;
        shuju1[7]=(RH%10);
        shuju1[8]=13;
    }
}

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表