|
IF里有多重OUTPUT会弄到SYSTEM不STABLE??
[复制链接]
|
|
楼主 |
发表于 6-5-2009 01:22 AM
|
显示全部楼层
|
|
|
|
|
|
|
楼主 |
发表于 6-5-2009 01:26 AM
|
显示全部楼层
原帖由 fritlizt 于 5-5-2009 05:28 PM 发表
根据你的program.你的led到最后全部会switch on。
你没有off。
你所谓的output pin没有跟program跑是不是led全on?
在楼上已经解释了。
我试你写的CODE,那些LED只是跟着第一个CONDITION亮(应该说是闪)罢了,当到第二个CONDITION时那LED不会跟着那PROGRAM走,还是留在原地闪。 |
|
|
|
|
|
|
|
发表于 6-5-2009 08:24 AM
|
显示全部楼层
原帖由 crazybear 于 6-5-2009 01:22 AM 发表
我之前已经说了,跟有没有放电阻是没有关系的,我现在能走的SIMULATION图也是没放的,这只是VIRTUAL SIMULATION罢了。
就是需要放电阻,proteus 才能正确simulate, Proteus 可能没有simulate 到20mA max output, 所以要放电阻, 不然你就把LED 改成5V 才点亮, 或除非你Step through,慢慢step, step, 你会看到不一样的结果, 这是个人的经验, 给你参考。
我之前用一个OUTPUT时,那LED是会跟着PROGRAM的时间开关的,就是绿先,然后转黄再转红,并不是全部都亮,我用同样的方式来写,只是比较多OUTPUT_HIGH罢了,就不能走了。 ...
我想, 你的源码并不完整, 有所隐瞒。
你说是绿先亮,然后转黄亮,那么你需要把绿熄灭吗?
如有, 在哪一个指令, 那一行的code你把绿灯熄灭?我完全看不到。 |
|
|
|
|
|
|
|
发表于 6-5-2009 09:22 AM
|
显示全部楼层
原帖由 crazybear 于 6-5-2009 01:17 AM 发表
这是我PROTEUS的图,从LED颜色排法是红,黄,绿上到下,那7SEGMENT是用来DISPLAY时间。
我是说你放上已经画好的 File, 不是原理图。论坛朋友可以直接拿来模拟。 |
|
|
|
|
|
|
|
发表于 6-5-2009 09:26 AM
|
显示全部楼层
原帖由 crazybear 于 6-5-2009 01:22 AM 发表
我之前已经说了,跟有没有放电阻是没有关系的,我现在能走的SIMULATION图也是没放的,这只是VIRTUAL SIMULATION罢了。
我之前用一个OUTPUT时,那LED是会跟着PROGRAM的时间开关的,就是绿先,然后转黄再转红, ...
你还看不明白 pic 版主的意思咩?都说要你放电阻,有那么难咩?? |
|
|
|
|
|
|
|
发表于 6-5-2009 10:05 AM
|
显示全部楼层
放不放电阻是有影响的。因为 PIC 是 Read-Modify-Write 的。比如说,当你 set RB0 去 high 时,PIC 会先 read 整个 PORTB,然后把 bit 0 改成 high,过后再 write 整个 PORTB 回去。
例子:
比如说我的 code 是这样的。
PORTB = 0;
RB0 = 1;
RB1 = 1;
当我的 program 走到第二行时,RB0 会变成 high。当执行第三行时,PIC 会先
读整个 PORTB。照理讲 PORTB 应该是 0b00000001 的,可是如果你没有放电阻的话,RB0 的电压并不是 5V,而是 LED 的 Vf (大概是1V++)。所以 PIC 会读到 PORTB 是 0b00000000。过后 PIC 会把 bit 1 改成 high,然后 write 回去。结果你 PORTB 的 output 会是 0b00000010。
如其他大大所说,你的 code 真的有问题。你只是 set 要的 output 去 high,但是却没有 clear 不要的output 去 low。如果你加了电阻,你应该会看到全部 LED 都亮着。但是你没有放电阻,因为上面的原因,所以你只看到 LED 在闪。 |
评分
-
查看全部评分
|
|
|
|
|
|
|
楼主 |
发表于 6-5-2009 12:55 PM
|
显示全部楼层
因为之前我没放电阻都能走所有我觉得放不放都没关系,但是既然这里有几位大大都建议我放那我会去试试看,可是最近我很忙,没有时间一个一个慢慢试,等我赶完我所有的功课后我会跟着你们的建议来尝试。
然后把所有不同的代码跟结果放上来。
至於把整个PROTEUS FILE放上来,有什么网页是可以上载FILE的? |
|
|
|
|
|
|
|
发表于 6-5-2009 01:22 PM
|
显示全部楼层
原帖由 crazybear 于 6-5-2009 12:55 PM 发表
因为之前我没放电阻都能走所有我觉得放不放都没关系,但是既然这里有几位大大都建议我放那我会去试试看,可是最近我很忙,没有时间一个一个慢慢试,等我赶完我所有的功课后我会跟着你们的建议来尝试。
然后把所有不 ...
加几个零件,好像很委屈酱哦!那么勉强就别放算了。。。。反正都没关系。不放,我又不痛不痒。
嘿嘿!没空没关系,功课要紧,考不上,会让爸爸妈妈伤心的。。我们很有空的,我来帮你试就行了,你就别费心了。这里是慈善家嘛!大家都是闲人。 |
|
|
|
|
|
|
|
发表于 6-5-2009 01:59 PM
|
显示全部楼层
做么 rothmans 大大今天一直鸟人? |
|
|
|
|
|
|
|
发表于 6-5-2009 02:53 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 6-5-2009 03:30 PM
|
显示全部楼层
|
|
|
|
|
|
|
楼主 |
发表于 7-5-2009 03:41 AM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 7-5-2009 08:29 AM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 7-5-2009 09:31 AM
|
显示全部楼层
|
|
|
|
|
|
| |
本周最热论坛帖子
|