• «
  • 1
  • 2
  • 3
  • »
  • Pages: 2/3     Go
deeply
级别: 略有小成
精华主题: 0
发帖数量: 169 个
工控威望: 298 点
下载积分: 3070 分
在线时间: 159(小时)
注册时间: 2011-09-02
最后登录: 2024-11-28
查看deeply的 主题 / 回贴
12楼  发表于: 2012-09-11 18:41
楼主是强人,佩服,单片机中如果是51系列的,检测输入之前是否要先给该位置1再读取状态呢,另外关于按住停止按钮也能启动,程序是顺序执行的,既然可以检测到有启动信号必然会先输出信号,其实那个led灯是闪得很快,只是人眼看不见而已,亮度是有所降低的,如果要按住停止按钮就不启动,就要加上与或非等条件,或者用中间继电器中继才会达到效果
本帖最近评分记录:
  • 下载积分:+1(1712131502) 感谢!
    1712131502
    级别: 论坛先锋
    精华主题: 0
    发帖数量: 175 个
    工控威望: 1989 点
    下载积分: 933 分
    在线时间: 158(小时)
    注册时间: 2012-04-05
    最后登录: 2024-06-27
    查看1712131502的 主题 / 回贴
    13楼  发表于: 2012-09-12 08:18
    可能while语句有问题,我再试试
    像蚂蚁一样工作,像蝴蝶一样生活
    supermax
    级别: 工控侠客
    精华主题: 0
    发帖数量: 590 个
    工控威望: 2540 点
    下载积分: 3642 分
    在线时间: 375(小时)
    注册时间: 2011-03-20
    最后登录: 2021-03-26
    查看supermax的 主题 / 回贴
    14楼  发表于: 2012-09-12 08:43
    直来直去傻瓜型编程法,晕!
    supermax
    级别: 工控侠客
    精华主题: 0
    发帖数量: 590 个
    工控威望: 2540 点
    下载积分: 3642 分
    在线时间: 375(小时)
    注册时间: 2011-03-20
    最后登录: 2021-03-26
    查看supermax的 主题 / 回贴
    15楼  发表于: 2012-09-12 08:53
    按键需要处理一下
    不然可能会误操作
    apper
    级别: 论坛先锋
    精华主题: 0
    发帖数量: 54 个
    工控威望: 1451 点
    下载积分: 1496 分
    在线时间: 22(小时)
    注册时间: 2011-06-13
    最后登录: 2018-10-13
    查看apper的 主题 / 回贴
    16楼  发表于: 2012-09-12 09:31
    有点难度呀,
    supermax
    级别: 工控侠客
    精华主题: 0
    发帖数量: 590 个
    工控威望: 2540 点
    下载积分: 3642 分
    在线时间: 375(小时)
    注册时间: 2011-03-20
    最后登录: 2021-03-26
    查看supermax的 主题 / 回贴
    17楼  发表于: 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,延时50微秒
    {
        unsigned char a,b;
        for(b=1;b>0;b--)
            for(a=22;a>0;a--);
    }
    本帖最近评分记录:
  • 下载积分:+5(shi2999) 乐意助人
    supermax
    级别: 工控侠客
    精华主题: 0
    发帖数量: 590 个
    工控威望: 2540 点
    下载积分: 3642 分
    在线时间: 375(小时)
    注册时间: 2011-03-20
    最后登录: 2021-03-26
    查看supermax的 主题 / 回贴
    18楼  发表于: 2012-09-12 09:46
    首先声明不要叫我教你,我也是shi2999的学生,慢慢学吧!
    楼主留言:
    老师,您就教我一点吧。您在我眼中简直无所不能
    supermax
    级别: 工控侠客
    精华主题: 0
    发帖数量: 590 个
    工控威望: 2540 点
    下载积分: 3642 分
    在线时间: 375(小时)
    注册时间: 2011-03-20
    最后登录: 2021-03-26
    查看supermax的 主题 / 回贴
    19楼  发表于: 2012-09-12 09:56
    还有你必须要用按钮互锁
    楼主留言:
    感谢!通过您的讲解,我学了很多东西。这个可以编程解决吗?
    youqing
    级别: 探索解密
    精华主题: 0
    发帖数量: 50 个
    工控威望: 166 点
    下载积分: 3586 分
    在线时间: 20(小时)
    注册时间: 2012-08-06
    最后登录: 2021-05-22
    查看youqing的 主题 / 回贴
    20楼  发表于: 2012-09-12 11:02
    单片机高手,现在PLC也很便宜了
    楼主留言:
    不然!不学单片机吧,很多PLC的程序也不能真正明白。
    shi2999
    不管学什么,兴趣是最好的老师,能赚钱是最强劲的动力
    级别: 网络英雄

    精华主题: 0
    发帖数量: 2680 个
    工控威望: 7394 点
    下载积分: 3002 分
    在线时间: 606(小时)
    注册时间: 2010-12-26
    最后登录: 2023-05-29
    查看shi2999的 主题 / 回贴
    21楼  发表于: 2012-09-13 20:44
    可以用,帮你顶一个。
    #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,延时50微秒
    {
        unsigned char a,b;
        for(b=1;b>0;b--)
            for(a=22;a>0;a--);
    }   
    楼主留言:
    好贴!老师可以帮我写个星三角降压启动麽
    本帖最近评分记录:
  • 下载积分:+5(1712131502) 感谢!老师可以教我麽
    shi2999
    不管学什么,兴趣是最好的老师,能赚钱是最强劲的动力
    级别: 网络英雄

    精华主题: 0
    发帖数量: 2680 个
    工控威望: 7394 点
    下载积分: 3002 分
    在线时间: 606(小时)
    注册时间: 2010-12-26
    最后登录: 2023-05-29
    查看shi2999的 主题 / 回贴
    22楼  发表于: 2012-09-13 22:57
    引用
    引用第17楼supermax于2012-09-12 09:43发表的  :
    这样就可以啦!我已试过OK
    #include <reg52.h>
    sbit s2=P3^4;//停止
    sbit s4=P3^6;//正
    sbit s5=P3^7;//反
    .......

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

    时间上,可能不是太准,

    只不过,利用一些计算,,推迟一些时间,
    你试下把 delay(),, 改成sleep(50) 看看,可以提高效率。
    楼主留言:
    感谢!可是老师啊,按住S2的时候,再按S4和S5依然可以启动,这个可以解决麽
    supermax
    级别: 工控侠客
    精华主题: 0
    发帖数量: 590 个
    工控威望: 2540 点
    下载积分: 3642 分
    在线时间: 375(小时)
    注册时间: 2011-03-20
    最后登录: 2021-03-26
    查看supermax的 主题 / 回贴
    23楼  发表于: 2012-09-14 16:22
    楼主!这几个月sh2999忙得很,日月都要干活,他不会帮楼主写星三角的,没时间,你可以在网上找一找啊。
    楼主留言:
    好人!老师您可以帮我写一个麽?在您手里不就3分钟滴事。sh2999老师承包了工程,单片机板开发??
    • «
    • 1
    • 2
    • 3
    • »
    • Pages: 2/3     Go