deeply
級(jí)別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 169 個(gè)
工控威望: 298 點(diǎn)
下載積分: 3070 分
在線時(shí)間: 159(小時(shí))
注冊(cè)時(shí)間: 2011-09-02
最后登錄: 2024-11-03
查看deeply的 主題 / 回貼
12樓  發(fā)表于: 2012-09-11 18:41
樓主是強(qiáng)人,佩服,單片機(jī)中如果是51系列的,檢測(cè)輸入之前是否要先給該位置1再讀取狀態(tài)呢,另外關(guān)于按住停止按鈕也能啟動(dòng),程序是順序執(zhí)行的,既然可以檢測(cè)到有啟動(dòng)信號(hào)必然會(huì)先輸出信號(hào),其實(shí)那個(gè)led燈是閃得很快,只是人眼看不見而已,亮度是有所降低的,如果要按住停止按鈕就不啟動(dòng),就要加上與或非等條件,或者用中間繼電器中繼才會(huì)達(dá)到效果
本帖最近評(píng)分記錄:
  • 下載積分:+1(1712131502) 感謝!
    1712131502
    級(jí)別: 論壇先鋒
    精華主題: 0
    發(fā)帖數(shù)量: 175 個(gè)
    工控威望: 1989 點(diǎn)
    下載積分: 933 分
    在線時(shí)間: 158(小時(shí))
    注冊(cè)時(shí)間: 2012-04-05
    最后登錄: 2024-06-27
    查看1712131502的 主題 / 回貼
    13樓  發(fā)表于: 2012-09-12 08:18
    可能while語(yǔ)句有問題,我再試試
    像螞蟻一樣工作,像蝴蝶一樣生活
    supermax
    級(jí)別: 工控俠客
    精華主題: 0
    發(fā)帖數(shù)量: 590 個(gè)
    工控威望: 2540 點(diǎn)
    下載積分: 3642 分
    在線時(shí)間: 375(小時(shí))
    注冊(cè)時(shí)間: 2011-03-20
    最后登錄: 2021-03-26
    查看supermax的 主題 / 回貼
    14樓  發(fā)表于: 2012-09-12 08:43
    直來(lái)直去傻瓜型編程法,暈!
    supermax
    級(jí)別: 工控俠客
    精華主題: 0
    發(fā)帖數(shù)量: 590 個(gè)
    工控威望: 2540 點(diǎn)
    下載積分: 3642 分
    在線時(shí)間: 375(小時(shí))
    注冊(cè)時(shí)間: 2011-03-20
    最后登錄: 2021-03-26
    查看supermax的 主題 / 回貼
    15樓  發(fā)表于: 2012-09-12 08:53
    按鍵需要處理一下
    不然可能會(huì)誤操作
    apper
    級(jí)別: 論壇先鋒
    精華主題: 0
    發(fā)帖數(shù)量: 54 個(gè)
    工控威望: 1451 點(diǎn)
    下載積分: 1496 分
    在線時(shí)間: 22(小時(shí))
    注冊(cè)時(shí)間: 2011-06-13
    最后登錄: 2018-10-13
    查看apper的 主題 / 回貼
    16樓  發(fā)表于: 2012-09-12 09:31
    有點(diǎn)難度呀,
    supermax
    級(jí)別: 工控俠客
    精華主題: 0
    發(fā)帖數(shù)量: 590 個(gè)
    工控威望: 2540 點(diǎn)
    下載積分: 3642 分
    在線時(shí)間: 375(小時(shí))
    注冊(cè)時(shí)間: 2011-03-20
    最后登錄: 2021-03-26
    查看supermax的 主題 / 回貼
    17樓  發(fā)表于: 2012-09-12 09:43
    這樣就可以啦!我已試過OK
    #include <reg52.h>
    sbit s2=P3^4;//停止
    sbit s4=P3^6;//正
    sbit s5=P3^7;//反
    sbit km1=P1^3;
    sbit km2=P1^5;
    void delay();
    void main()
    {  
    km1=1;
    km2=1;
    while(1){
    if (s2==0)
    {
    delay();
    if(s2==0)
    {
    km1=1;
    km2=1;
    } }

    if (s4==0)
    {
    delay();
    if(s4==0)
    {
    km1=0;
    km2=1;
    }}
    if (s5==0)
    {
    delay();
    if(s5==0)
    {
    km1=1;
    km2=0;
    }}

    }
    }
    void delay(void)   //誤差 0us,延時(shí)50微秒
    {
        unsigned char a,b;
        for(b=1;b>0;b--)
            for(a=22;a>0;a--);
    }
    本帖最近評(píng)分記錄:
  • 下載積分:+5(shi2999) 樂意助人
    supermax
    級(jí)別: 工控俠客
    精華主題: 0
    發(fā)帖數(shù)量: 590 個(gè)
    工控威望: 2540 點(diǎn)
    下載積分: 3642 分
    在線時(shí)間: 375(小時(shí))
    注冊(cè)時(shí)間: 2011-03-20
    最后登錄: 2021-03-26
    查看supermax的 主題 / 回貼
    18樓  發(fā)表于: 2012-09-12 09:46
    首先聲明不要叫我教你,我也是shi2999的學(xué)生,慢慢學(xué)吧!
    樓主留言:
    老師,您就教我一點(diǎn)吧。您在我眼中簡(jiǎn)直無(wú)所不能
    supermax
    級(jí)別: 工控俠客
    精華主題: 0
    發(fā)帖數(shù)量: 590 個(gè)
    工控威望: 2540 點(diǎn)
    下載積分: 3642 分
    在線時(shí)間: 375(小時(shí))
    注冊(cè)時(shí)間: 2011-03-20
    最后登錄: 2021-03-26
    查看supermax的 主題 / 回貼
    19樓  發(fā)表于: 2012-09-12 09:56
    還有你必須要用按鈕互鎖
    樓主留言:
    感謝!通過您的講解,我學(xué)了很多東西。這個(gè)可以編程解決嗎?
    youqing
    級(jí)別: 探索解密
    精華主題: 0
    發(fā)帖數(shù)量: 50 個(gè)
    工控威望: 166 點(diǎn)
    下載積分: 3586 分
    在線時(shí)間: 20(小時(shí))
    注冊(cè)時(shí)間: 2012-08-06
    最后登錄: 2021-05-22
    查看youqing的 主題 / 回貼
    20樓  發(fā)表于: 2012-09-12 11:02
    單片機(jī)高手,現(xiàn)在PLC也很便宜了
    樓主留言:
    不然!不學(xué)單片機(jī)吧,很多PLC的程序也不能真正明白。
    shi2999
    不管學(xué)什么,興趣是最好的老師,能賺錢是最強(qiáng)勁的動(dòng)力
    級(jí)別: 網(wǎng)絡(luò)英雄

    精華主題: 0
    發(fā)帖數(shù)量: 2680 個(gè)
    工控威望: 7394 點(diǎn)
    下載積分: 3002 分
    在線時(shí)間: 606(小時(shí))
    注冊(cè)時(shí)間: 2010-12-26
    最后登錄: 2023-05-29
    查看shi2999的 主題 / 回貼
    21樓  發(fā)表于: 2012-09-13 20:44
    可以用,幫你頂一個(gè)。
    #include <reg52.h>
    sbit s2=P3^4;//停止
    sbit s4=P3^6;//正
    sbit s5=P3^7;//反
    sbit km1=P1^3;
    sbit km2=P1^5;
    void delay();
    void main()
    {  
    km1=1;
    km2=1;
    while(1)
    {
    if (s2==0)
    {
    delay();
    if(s2==0)
    {
    km1=1;
    km2=1;
    } }

    if (s4==0)
    {
    delay();
    if(s4==0)
    {
    km1=0;
    km2=1;
    }}
    if (s5==0)
    {
    delay();
    if(s5==0)
    {
    km1=1;
    km2=0;
    }}

    }
    }
    void delay(void)   //誤差 0us,延時(shí)50微秒
    {
        unsigned char a,b;
        for(b=1;b>0;b--)
            for(a=22;a>0;a--);
    }   
    樓主留言:
    好貼!老師可以幫我寫個(gè)星三角降壓?jiǎn)?dòng)麼
    本帖最近評(píng)分記錄:
  • 下載積分:+5(1712131502) 感謝!老師可以教我麼
    shi2999
    不管學(xué)什么,興趣是最好的老師,能賺錢是最強(qiáng)勁的動(dòng)力
    級(jí)別: 網(wǎng)絡(luò)英雄

    精華主題: 0
    發(fā)帖數(shù)量: 2680 個(gè)
    工控威望: 7394 點(diǎn)
    下載積分: 3002 分
    在線時(shí)間: 606(小時(shí))
    注冊(cè)時(shí)間: 2010-12-26
    最后登錄: 2023-05-29
    查看shi2999的 主題 / 回貼
    22樓  發(fā)表于: 2012-09-13 22:57
    引用
    引用第17樓supermax于2012-09-12 09:43發(fā)表的  :
    這樣就可以啦!我已試過OK
    #include <reg52.h>
    sbit s2=P3^4;//停止
    sbit s4=P3^6;//正
    sbit s5=P3^7;//反
    .......

    void delay(void)   //誤差 0us,延時(shí)50微秒
    {
        unsigned char a,b;
        for(b=1;b>0;b--)
            for(a=22;a>0;a--);
    }

    時(shí)間上,可能不是太準(zhǔn),

    只不過,利用一些計(jì)算,,推遲一些時(shí)間,
    你試下把 delay(),, 改成sleep(50) 看看,可以提高效率。
    樓主留言:
    感謝!可是老師啊,按住S2的時(shí)候,再按S4和S5依然可以啟動(dòng),這個(gè)可以解決麼
    supermax
    級(jí)別: 工控俠客
    精華主題: 0
    發(fā)帖數(shù)量: 590 個(gè)
    工控威望: 2540 點(diǎn)
    下載積分: 3642 分
    在線時(shí)間: 375(小時(shí))
    注冊(cè)時(shí)間: 2011-03-20
    最后登錄: 2021-03-26
    查看supermax的 主題 / 回貼
    23樓  發(fā)表于: 2012-09-14 16:22
    樓主!這幾個(gè)月sh2999忙得很,日月都要干活,他不會(huì)幫樓主寫星三角的,沒時(shí)間,你可以在網(wǎng)上找一找啊。
    樓主留言:
    好人!老師您可以幫我寫一個(gè)麼?在您手里不就3分鐘滴事。sh2999老師承包了工程,單片機(jī)板開發(fā)??