亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標題: 求助大額延時小時級控制繼電器輸出延時程序 [打印本頁]

作者: 190482107    時間: 2016-1-5 21:50
標題: 求助大額延時小時級控制繼電器輸出延時程序
本帖最后由 190482107 于 2016-1-5 22:47 編輯

硬件都有了,小弟正在學51中。。因為我需要延時的時間比較長(6個小時)定時和中斷系統小弟還沒理解透,哪位大神能這個參考程序給小弟研究研究也好,順便注釋下程序原理和思路。芯片是STC89C52晶振11.0592的。板子的P2.0和P2.1分別控制兩個三極管來驅動繼電器K1和K2的線圈。
這么長時間的延時程序我還不會寫,我要的功能是:
P1.0和P1.1為輸入觸發信號,當P1.0低電平觸發后,開始延時6小時后P2.0輸出信號控制繼電器K1動作,當P1.0恢復高電平后延時清零等待下一次觸發,P1.1對應P2.1控制繼電器K2同理,每次觸發要么P1.0要么P1.1不會同時觸發,

作者: admin    時間: 2016-1-5 22:04
6個小時這么長的延時不建議使用延時函數,要是這中間出現過斷電死機之類的,就會發生錯誤。。。所以還是用,實時時鐘比較好。
作者: plnh8258    時間: 2016-1-5 22:19
“板子的P2.0和P2.1分別控制繼電器K1和K2的線圈!
沒有這樣控制的,要加驅動滴l。哈
作者: plnh8258    時間: 2016-1-5 22:27
如果用單位機控制繼電器。單片機有點吃不消。
作者: 190482107    時間: 2016-1-5 22:44
plnh8258 發表于 2016-1-5 22:19
“板子的P2.0和P2.1分別控制繼電器K1和K2的線圈!
沒有這樣控制的,要加驅動滴l。哈

是的,繼電器是24V的,管腳控制三極管的,
作者: 190482107    時間: 2016-1-5 22:49
寫漏了,是用三極管驅動外圍電路控制的,
作者: plnh8258    時間: 2016-1-5 22:52
明天有時間幫你寫一個。(按照你說的要求寫)
作者: 190482107    時間: 2016-1-5 22:56
admin 發表于 2016-1-5 22:04
6個小時這么長的延時不建議使用延時函數,要是這中間出現過斷電死機之類的,就會發生錯誤。。。所以還是用 ...

實時時鐘是什么意思,另外要專門的芯片么,
作者: plnh8258    時間: 2016-1-5 23:07
是滴  實時時鐘是芯片。有的片內有電池,有的沒有

作者: plnh8258    時間: 2016-1-5 23:14
有電池的在不使用的時候,能放大約十年。(它里的面的時鐘繼續工作,而且非常精確度如:DS12887)使用時用程序將它調出,而無電池的如果停電里面的時鐘就會復位(如:DS1032)。
作者: 190482107    時間: 2016-1-5 23:26
plnh8258 發表于 2016-1-5 22:52
明天有時間幫你寫一個。(按照你說的要求寫)

感謝,我也學習學習,
作者: 190482107    時間: 2016-1-5 23:29
plnh8258 發表于 2016-1-5 23:14
有電池的在不使用的時候,能放大約十年。(它里的面的時鐘繼續工作,而且非常精確度如:DS12887)使用時用 ...

原來如此,
作者: plnh8258    時間: 2016-1-6 11:55
#include<reg52.h>
sbit button1=P1^0;        //定義button1(按鈕1)
sbit k1=P2^0;        //定義K1(斷電器)

sbit button2=P1^1;        //button2(按鈕)
sbit k2=P2^1;        //定義K2(斷電器)

void delay10s(void)   //10秒延時程序(11.0592MHZ)
{
    unsigned char a,b,c;
    for(c=203;c>0;c--)
       for(b=156;b>0;b--)
           for(a=144;a>0;a--);       
}

void main()
{
        while(1)
        {
                 if(0==button1)                //如果button1按下
                 {
                         for(i=2160;i>0;i--)          //6小時里有2160個10秒,所以循環2160次就是6小時
                        {
                                delay10s(); //10秒的延時
                        }
                         k1=0;        //斷電器吸哈
                 }

                 if(0==button2)                //如果button2按下
                 {
                         for(i=2160;i>0;i--)          //6小時里有2160個10秒,所以循環2160次就是6小時
                        {
                                delay10s(); //10秒的延時
                        }
                         k2=0;        //斷電器吸哈
                 }               
        }
}
作者: 190482107    時間: 2016-1-6 20:51
plnh8258 發表于 2016-1-6 11:55
#include
sbit button1=P1^0;        //定義button1(按鈕1)
sbit k1=P2^0;        //定義K1(斷電器)

void delay10s(void) //10秒延時程序(11.0592MHZ)
{
  unsigned char a,b,c;
  for(c=203;c>0;c--)
   for(b=156;b>0;b--)
   for(a=144;a>0;a--);   
}
感謝賜教,這里有點不明白為什么是10秒,
作者: plnh8258    時間: 2016-1-6 21:00
這里有點不明白為什么是10秒,....我總是有計量的的吧,1秒、100ms.......


void delay1s(void)   //1秒延時程序(11.0592MHZ)
{
    unsigned char a,b,c;
    for(c=95;c>0;c--)
        for(b=26;b>0;b--)
            for(a=185;a>0;a--);
}
......
這樣也可。
for(i=21600;i>0;i--)          //6小時里有21600個1秒,所以循環21600次就是6小時
作者: 2016    時間: 2016-1-6 21:28
你時間是固定還是任意可調的。如果固定很簡單,做一個定時技術程序與你要求時間比較即可。若果是任意時間,可用按鍵開關或8421播碼開設置定時值輸入都行。
作者: fly丶丶飛    時間: 2016-12-23 00:26
是測電流   然后繼電保護嗎?
作者: fly丶丶飛    時間: 2016-12-23 00:27
是測電流   繼電保護嗎?




歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1