发新帖

[原创] 【51单片机套件试用体验】普中51开发板测评报告-温湿度测试

[复制链接]

初级技术员

Rank: 3Rank: 3

发表于 2018-11-15 16:06:44
| 2402 查看 | 0 回复
       因为个人原因耽误了好久才写的测评报告,在此先跟平台方致以大大的歉意
       首先感谢平台给我一次机会第一次接触到开发板的硬件,由于之前摸索的51只是从仿真上凭着感觉来摸索,所以很多具体实际的效果无法用实物来代替。
见到这块实物开发板的时候,接着就爱不释手的开箱、上电、接线、烧录了一下程序跑了跑。期间因为接线问题看了半天的原理图。原谅本人比较慢
       接下来就跟大家分享一下,个人对于这块51开发板的一些学习经验:

       首先先上两张proteus图,这是经过了好多天的从零开始学的仿真电路,一个画了部分的51开发板电路。另一个就是学习了很多天才学会的温湿度。

        这个是教材里学的其中的动态数码管   

       这是跟师父学的温湿度测试,搞了半个月才出的成果,原谅小白


        哦,忘记上开箱图了,只能现在补一个差不多的了
        这些是相关配件,烧录器LCD屏,遥控器,串口线等一应俱全。

        原谅我为了方便把盒子拆了,这就是大名鼎鼎的普中开发板,还在犹豫什么赶紧上车吧



        下面就是我最终的实验效果了----------温湿度测试

         电脑烧录软件-------普中产

            

        接了一个LCD1602,自己买了个DHT11温湿度传感器,6元钱,这样子自己家里也能测温湿度了


下面上自己边学边学的普中开发板调试程序,主函数可以想调用那个改个名就行了。可简单了

#include "reg52.h"
#include "intrins.h"

typedef unsigned int u16;//¼ò¶¨ÒåintÐÍ
typedef unsigned char u8;//¼ò¶¨ÒåcharÐÍ

#define smg P0           //P0¿ÚÈ«¾Ö¶¨ÒåΪÊýÂë¹Üsmg
#define juz P1           //P1¿ÚÈ«¾Ö¶¨ÒåΪ¾ØÕó°´¼üjuz
#define lsd P2           //P2¿ÚÈ«¾Ö¶¨ÒåΪÁ÷Ë®µÆlsd

void delay(u16 i)        //Ñ­»·º¯Êý£¨10us£©
{
        while(i--);
}








/////////////////////////////////////////////////////////////////////////////////////////////
void lrmove()            //¶¨ÒåÁ÷Ë®µÆº¯Êý
{
        u8 i;
        while(1)
        {
                lsd=0xfe;            //³õʼ״̬
          delay(50000);
                for(i=0;i<70;i++)    //Ò»Ö±×óÒÆ
                {
                        lsd=_crol_(lsd,1);
                        delay(50000);
                }
//´Ë´¦¿ÉÒÔÌí¼ÓÓÒÒÆcror
        }
}
/////////////////////////////////////////////////////////////////////////////////////////////
void jdhylsd()                                                 //¶¨Òå¼òµ¥»¨ÑùÁ÷Ë®µÆº¯Êý
{
        u8 i;
        u8 code lsdNO[32]={0xFF,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,                       
                                                                                 0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF,                       
                                                                                 0xFF,0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x0,                       
                                                                                 0xE7,0xDB,0xBD,0x7E,0xFF};
                                 //×Ô¶¨ÒåÁ÷Ë®µÆµÄÁ÷ˮ״̬
        while(1)
        {
                for(i=0;i<32;i++)      //ÒÀ´Î°´ÕÕiÖµÀ´Ñ¡ÔñÊý×éµÄÖµ
                {
                        lsd=lsdNO;
                        delay(50000);
                }
        }
}
/////////////////////////////////////////////////////////////////////////////////////////////
sbit p15 = P1^5;          //붨ÒåÀ®°È
sbit p30 = P3^0;          //붨Òå°´¼ü

void buzz1()              //¶¨Òå°´¼ü±¨¾¯º¯Êý
{
        if(p30==0)              //°´¼ü°´Ï£¬À®°ÈÏì
        {
                delay(1000);
                if(p30==0)
                {
                        p15=0;
                }
        }
        if(p30==1)              //°´¼ü̧Æð£¬À®°È²»Ïì
        {
                delay(1000);
                if(p30==1)
                {
                        p15=1;
                }
        }
}
/////////////////////////////////////////////////////////////////////////////////////////////
sbit u2a = P2^2;          //붨Òå138A½Å
sbit u2b = P2^3;                                        //붨Òå138B½Å
sbit u2c = P2^4;                                        //붨Òå138C½Å

void jtsmg()                                                        //¶¨Ò徲̬ÊýÂë¹Üº¯Êý
{
        u8 smgID[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,               
                                                        0x7d,0x07,0x7f,0x6f,0x77,0x7c,
                                                        0x39,0x5e,0x79,0x71};
                                                                                                        //ÊýÂë¹ÜµÄ×Ö·û¶ÎÂë
        u2a=0;                               
        u2b=0;       
        u2c=0;                                                               
        while(1)
        {
                smg=smgID[0];
        }
}
/////////////////////////////////////////////////////////////////////////////////////////////
//Ó뾲̬ÊýÂë¹Ü¹²Ïí붨Òå
void dtsmg()
{
                u8 smgID[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,               
                                                        0x7d,0x07,0x7f,0x6f,0x77,0x7c,
                                                        0x39,0x5e,0x79,0x71};
                                                                                                        //ÊýÂë¹ÜµÄ×Ö·û¶ÎÂë
                u8 i;
                while(1)              //ÊýÂë¹ÜÑ­»·ÏÔʾ
                {
                        for(i=0;i<8;i++)
                        {
                                switch (i)
                                {
                                        case 0:
                                                u2a=0;u2b=0;u2c=0;break;        //138¹Ü½ÅµÄÊä³ö¿ØÖÆ
                                        case 1:       
                                                u2a=1;u2b=0;u2c=0;break;                                //138¹Ü½ÅµÄÊä³ö¿ØÖÆ
                                        case 2:       
                                                u2a=0;u2b=1;u2c=0;break;                                //138¹Ü½ÅµÄÊä³ö¿ØÖÆ
                                        case 3:       
                                                u2a=1;u2b=1;u2c=0;break;                                //138¹Ü½ÅµÄÊä³ö¿ØÖÆ
                                        case 4:       
                                                u2a=0;u2b=0;u2c=1;break;                                //138¹Ü½ÅµÄÊä³ö¿ØÖÆ
                                        case 5:       
                                                u2a=1;u2b=0;u2c=1;break;                                //138¹Ü½ÅµÄÊä³ö¿ØÖÆ
                                        case 6:       
                                                u2a=0;u2b=1;u2c=1;break;                                //138¹Ü½ÅµÄÊä³ö¿ØÖÆ
                                        case 7:       
                                                u2a=1;u2b=1;u2c=1;break;                                //138¹Ü½ÅµÄÊä³ö¿ØÖÆ
                                }
                                smg=smgID;      //138Òý½ÅÌṩÊä³öµÄÊýÂë¹ÜÏÔʾµÈÊý×ÖµÄÐÅÏ¢
                                delay(100);        //ƵÉÁ¼ä¸ôʱ¼ä
                                smg=0X00;          //Çå¿ÕÒ»ÏÂ
                        }
                }
}
/////////////////////////////////////////////////////////////////////////////////////////////
void jzkey1()
{
        u8 smgID[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,               
                                                        0x7d,0x07,0x7f,0x6f,0x77,0x7c,
                                                        0x39,0x5e,0x79,0x71};
                                                                                                        //ÊýÂë¹ÜµÄ×Ö·û¶ÎÂë
        u16 retvalue;
        u8 a;
        while(1)
        {
                                u2a=0;                               
                                u2b=0;       
                                u2c=0;
               
                                juz=0x0f;       
                                if(juz!=0x0f)                                                           //Åж¨¾ØÕó°´¼üÊÇ·ñÓб»°´ÏµĠ      
                                {                       
                                                        delay(1000);               
                                                        if(juz!=0x0f)                                                     //Ïû¶¶È·ÈÏÊÇ·ñ°´¼ü°´ÏÂ
                                                        {               
                                                                                                                               //juz=0x0f;       
                                                                                switch(juz)       
                                                                                {       
                                                                                        case(0x07):retvalue=0;break;
                                                                                        case(0x0b):retvalue=1;break;
                                                                                        case(0x0d):retvalue=2;break;
                                                                                        case(0x0e):retvalue=3;break;
                                                                                }       
                                        juz=0xf0;       
                                                                                switch(juz)       
                                                                                {       
                                                                                        case(0x70):retvalue=retvalue;break;
                                                                                        case(0xb0):retvalue=retvalue+4;break;
                                                                                        case(0xd0):retvalue=retvalue+8;break;
                                                                                        case(0xe0):retvalue=retvalue+12;break;
                                                                                }       
                                                                                while((a<50)&&(juz!=0xf0))       
                                                                                {       
                                                                                        delay(1000);
                                                                                        a++;
                                                                                }       
                                                        }               
                                }       
                        smg=smgID[retvalue];
        }       
}
/////////////////////////////////////////////////////////////////////////////////////////////


sbit    IN_PL   = P1^6;   
sbit    IN_Data = P1^7;    //Êý¾Ýͨ¹ýP1.7½ÅÒƽøµ¥Æ¬»úÄÚ´¦Àí
sbit    SCK    = P3^6;

u8 Read74HC165(void)
{  
  u8 i;
  u8 indata;
               
   IN_PL = 0;
   _nop_();                                         //¶ÌÔÝÑÓʱ ²úÉúÒ»¶¨¿í¶ÈµÄÂö³å
   IN_PL = 1;                                                    //½«ÍⲿÐźÅÈ«²¿¶ÁÈëËø´æÆ÷ÖÐ
   _nop_();

   indata=0;                                                           //±£´æÊý¾ÝµÄ±äÁ¿Çå0  
   for(i=0; i<8; i++)
    {
          indata = indata<<1;            //×óÒÆһλ
          SCK = 0;                                                    //ʱÖÓÖÃ0         
                _nop_();
          indata |= IN_Data;
                SCK = 1;                                                     //ʱÖÓÖÃ1          
                _nop_();
        }

   return(indata);         
}


/*******************************************************************************
* º¯ Êý Ãû       : main
* º¯Êý¹¦ÄÜ                 : Ö÷º¯Êý
* Êä    Èë       : ÎÞ
* Êä    ³ö             : ÎÞ
*******************************************************************************/
void main()
{       
        u8 h165Value;

        smg = 0;
        while(1)
        {
                h165Value = Read74HC165();
                if(h165Value != 0xFF)
                {
                        smg = ~h165Value;
                }       
        }                       
}


/////////////////////////////////////////////////////////////////////////////////////////////
/*******************************************************************************
void main()               //ÎÒ¾ÍÊÇÖ÷º¯Êý
{
                jzkey1();               //ÏëÓÃÄĸöº¯Êýµ÷ÓÃÄĸö
}
*******************************************************************************/
        温湿度测试的程序我就不上了,大家有需要的给我留言,我会给你们全部资料及部分自己的陋解的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
我要点赞 0

举报

您需要登录后才可以回帖 登录 | 立即注册