在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 6706|回复: 10

c51编程求助

[复制链接]
发表于 2003-8-8 15:32:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

x
想要实现一个外接开关控制继电器工作,其中开关接P1.0口,继电器接P1.1口,
我的程序如下:
sbit sw=P1^0;
sbit jc=P1^1;
......
while(sw==1)
jc=1;
......
现在想要实现的功能是,检测开关5次,如果每次都有sw==1,则jc=1,请大家帮助一下,好像有很多方法实现,我想请大家找几种简单的方法。
实在太菜了,不要笑话我!
发表于 2003-8-9 01:29:03 | 显示全部楼层

c51编程求助

首先你要知道你所谓的“检测开关五次”,每次检测的时间间隔是多少?
可以这样:
uc i;
.
.
.
for (i=1;(i<=5)&&(sw==1);i++)
delay();
if (i==5) jc=1;
.
.

   
 楼主| 发表于 2003-8-9 08:48:19 | 显示全部楼层

c51编程求助

谢谢dairlom,下面是我做的,但调试的时候显示else这句有问题,
loop1:
     while(j<4)
       {
        if(Rsw==1)
        i=1;
        j++;
       else i=0;
   goto loop1;
        }
     if(i==1)
        {
        Jc=1;
        if(H2==1) Jc=0;
        else if(H1==1) Jc=0;
        delay();
        Jc=1;
         }
     goto loop1;
     }
发表于 2003-8-9 10:05:45 | 显示全部楼层

c51编程求助

应该在if后面加{}
 楼主| 发表于 2003-8-9 13:04:38 | 显示全部楼层

c51编程求助

谢谢dragonyoo !
发表于 2003-8-10 06:46:32 | 显示全部楼层

c51编程求助

我看了一下你和程序提点建议。
你用了太多的GOTO语句,如果为了让你的程序更专业,请以后尽量不要用GOTO。
发表于 2003-8-10 13:09:19 | 显示全部楼层

c51编程求助

以后,要尽量使用负逻辑,51单片机上电时p1为0xff,这时候是不是继电器就开了?我没有见到你的电路。
判断开关pin为1,那你要在那个脚上接下啦电阻不能太大,因为p1内部上啦,如果不接个下啦,读出来就是1。10k对大部分单片机是可以的,但有些比如sst89v564必须小于4k。这是我所知。
 楼主| 发表于 2003-8-11 20:14:15 | 显示全部楼层

c51编程求助



下面引用由laobai2003/08/10 01:09pm 发表的内容:
以后,要尽量使用负逻辑,51单片机上电时p1为0xff,这时候是不是继电器就开了?我没有见到你的电路。
判断开关pin为1,那你要在那个脚上接下啦电阻不能太大,因为p1内部上啦,如果不接个下啦,读出来就是1。10k对 ...


谢谢各位大侠,继电器电路作了处理,控制线通过光耦后到达继电器,其中光耦的e极后面加了延时电路,保证在控制信号到达继电器后,继电器的12v电源还未导通,
另外,开关检测多次是为了防止电路中出现干扰,瞬间脉冲导致继电器误动作,不知各位大哥在这方面有何高招,
我现在跟老师学习,这是他交给我的第一个任务,得到各位热心的帮助,深表感谢!
发表于 2003-8-11 20:29:14 | 显示全部楼层

c51编程求助

瞬间脉冲应该不会直接使继电器误动作的,因为继电器的反应时间很长(毫秒级),而瞬间脉冲应该在微秒级。
要是继电器确实被干扰了,那么我想你控制继电器应该是用稳态电路或触发器。
为了解决干扰就应该使用电容来解决,找到源头及信号反馈端对地介入电容(0.1u 和 10u).
发表于 2010-4-17 11:29:06 | 显示全部楼层
搞定了吗,搞不定叫我
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-16 13:53 , Processed in 0.035202 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表