微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 关于51单片机的,求大神指导

关于51单片机的,求大神指导

时间:10-02 整理:3721RD 点击:
我在做毕业设计,做的是温湿度测量与报警系统,原来有四个按键,对应设置、确定、数值加和减,我想把它加一个红外遥控的,把这四个键的功能用红外来实现,用的是开发板来做,应该写些什么程序?下午五点就要交稿了,急急急!

已答辩完毕

温湿度测量与报警系统没有写过,不过红外遥控的程序倒是写过。

应该不是很难做,总体分成两部分吧,接收和发送。

给你个温湿度传感器的程序,其它的有很多教程的: DHT11驱动程序
/********************DHT11初始化及读取函数******************/
void COM(void)
{
        U8 i;
        for(i=0;i<8;i++)
        {
                U8FLAG=2;         
                while((!P2_6)&&U8FLAG++);
                delay_10us();
                delay_10us();
                U8temp=0;
                if(P2_6)U8temp=1;
                U8FLAG=2;
                while((P2_6)&&U8FLAG++);
                if(U8FLAG==1)break;
                U8comdata<<=1;
                U8comdata|=U8temp;
        }
}
void dht_recieve()
{
        P2_6=0;
        delay(180);
        P2_6=1;
       
        delay_10us();
        delay_10us();//总线由上拉电阻拉高 主机延时20us
        delay_10us();
        delay_10us();       
        P2_6=1;//主机设为输入 判断从机响应信号
       
        if(!P2_6) //判断从机是否有低电平响应信号 如不响应则跳出,响应则向下运行
        {
                U8FLAG=2;               
                while((!P2_6)&&U8FLAG++);//判断从机是否发出 80us 的低电平响应信号是否结束
                U8FLAG=2;
                while((P2_6)&&U8FLAG++);        //判断从机是否发出 80us 的高电平,如发出则进入数据接收状态
                COM();//数据接收状态
                U8RH_data_H_temp=U8comdata;
                COM();
                U8RH_data_L_temp=U8comdata;
                COM();
                U8T_data_H_temp=U8comdata;
                COM();
                U8T_data_L_temp=U8comdata;
                COM();
                U8checkdata_temp=U8comdata;
                P2_6=1;               
                U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp);//数据校验
                if(U8temp==U8checkdata_temp)
                {
                        U8RH_data_H=U8RH_data_H_temp;
                        U8RH_data_L=U8RH_data_L_temp;
                        U8T_data_H=U8T_data_H_temp;
                        U8T_data_L=U8T_data_L_temp;
                        U8checkdata=U8checkdata_temp;
                }
        }

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top