新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于89C52的DH11 C語言測試程序

        基于89C52的DH11 C語言測試程序

        作者: 時(shí)間:2016-11-28 來源:網(wǎng)絡(luò) 收藏
        //單片機(jī) : AT89S52 或 STC89C52RC

        // 功能 :串口發(fā)送溫濕度數(shù)據(jù) 波特率 9600

        本文引用地址:http://www.104case.com/article/201611/322631.htm

        //單片機(jī)教程之DH11的測試程序

        #include

        #include

        typedefunsigned charU8;// defined for unsigned 8-bits integer variable 無符號(hào)8位整型變量 */

        typedef signed charS8;// defined for signed 8-bits integer variable 有符號(hào)8位整型變量 */

        typedefunsigned intU16;// defined for unsigned 16-bits integer variable 無符號(hào)16位整型變量 */

        typedef signed intS16;//defined for signed 16-bits integer variable 有符號(hào)16位整型變量 */

        typedefunsigned longU32;// defined for unsigned 32-bits integer variable 無符號(hào)32位整型變量 */

        typedef signed longS32;// defined for signed 32-bits integer variable 有符號(hào)32位整型變量 */

        typedef floatF32;// single precision floating point variable (32bits) 單精度浮點(diǎn)數(shù)(32位長度)

        typedefdoubleF64;// double precision floating point variable (64bits) 雙精度浮點(diǎn)數(shù)(64位長度)

        #define uchar unsigned char

        #define uint unsigned int

        #define Data_0_time 4

        //----------------------------------------------//

        //----------------IO口定義區(qū)--------------------//

        //----------------------------------------------//

        sbit P2_0 = P2^0 ; //DH11

        //----------------------------------------------//

        //----------------定義區(qū)--------------------//

        //----------------------------------------------//

        U8 U8FLAG,k;

        U8 U8count,U8temp;

        U8 U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;

        U8 U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;

        U8 U8comdata;

        U8 outdata[5];//定義發(fā)送的字節(jié)數(shù)

        U8 indata[5];

        U8 count, count_r=0;

        U8 str[5]={"RS232"};

        U16 U16temp1,U16temp2;

        SendData(U8 *a)

        {

        outdata[0] = a[0];

        outdata[1] = a[1];

        outdata[2] = a[2];

        outdata[3] = a[3];

        outdata[4] = a[4];

        count = 1;

        SBUF=outdata[0];

        }

        voidDelay(U16 j)

        { U8 i;

        for(;j>0;j--)

        {

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

        }

        }

        voidDelay_10us(void)

        {

        U8 i;

        i--;

        i--;

        i--;

        i--;

        i--;

        i--;

        }

        voidCOM(void)

        {

        U8 i;

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

        {

        U8FLAG=2;

        //----------------------

        P2_1=0 ;//T

        P2_1=1 ;//T

        //----------------------

        while((!P2_0)&&U8FLAG++);

        Delay_10us();

        Delay_10us();

        // Delay_10us();

        U8temp=0;

        if(P2_0)U8temp=1;

        U8FLAG=2;

        while((P2_0)&&U8FLAG++);

        //----------------------

        P2_1=0 ;//T

        P2_1=1 ;//T

        //----------------------

        //超時(shí)則跳出for循環(huán)

        if(U8FLAG==1)break;

        //判斷數(shù)據(jù)位是0還是1

        // 如果高電平高過預(yù)定0高電平值則數(shù)據(jù)位為 1

        U8comdata<=1;

        U8comdata|=U8temp;//0

        }//rof

        }

        //--------------------------------

        //-----濕度讀取子程序 ------------

        //--------------------------------

        //----以下變量均為全局變量--------

        //----溫度高8位== U8T_data_H------

        //----溫度低8位== U8T_data_L------

        //----濕度高8位== U8RH_data_H-----

        //----濕度低8位== U8RH_data_L-----

        //----校驗(yàn) 8位 == U8checkdata-----

        //----調(diào)用相關(guān)子程序如下----------

        //---- Delay();, Delay_10us();,COM();

        //--------------------------------

        voidRH(void)

        {

        //主機(jī)拉低18ms

        P2_0=0;

        Delay(180);

        P2_0=1;

        //總線由上拉電阻拉高 主機(jī)延時(shí)20us

        Delay_10us();

        Delay_10us();

        Delay_10us();

        Delay_10us();

        //主機(jī)設(shè)為輸入 判斷從機(jī)響應(yīng)信號(hào)

        P2_0=1;


        上一頁 1 2 下一頁

        關(guān)鍵詞: 89C52DH11C語言測

        評(píng)論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 沅江市| 绿春县| 盐津县| 读书| 内丘县| 海淀区| 林州市| 南部县| 镇巴县| 东港市| 东阿县| 洛宁县| 祥云县| 宣汉县| 天水市| 徐水县| 霍城县| 涿鹿县| 安新县| 伊宁市| 万源市| 随州市| 长沙县| 孝义市| 清原| 肇庆市| 固镇县| 定兴县| 九龙县| 涞水县| 自治县| 奉贤区| 景宁| 丹阳市| 高州市| 嘉义市| 鲜城| 临汾市| 广丰县| 资兴市| 武鸣县|