发布于 2008-03-21 23:27:25
0楼
这个问题好,有兴趣。试分析如下:
1、两个EU的情况,假如:
LD I0.0
EU
EU
程序刚开始运行的第一次扫描,两个EU的输出均为0;
I0.0为第一个EU的输入,第一个EU的输出成为第二个EU的输入;
在I0.0没有上升沿时,第一个EU输出为0,自然第二个EU的输出也为0;
当I0.0出现上升沿,第一个EU输出1,这个1成为第二EU的上升沿,因此第二EU也输出1;
因此,两个EU的输出结果是一样的。
2、一个EU和一个ED,假如:
LD I0.0
EU
ED
同样,ED的输入来自EU的输出。当EU输出为1时,再一次扫到时必然输出0,从而成为一个下降沿输出给ED,所以ED在EU输出1后延时一次扫描输出1。
3、2个ED,假如:
LD I0.0
ED
ED
当I0.0出现下降沿,第一个ED输出1,第二个ED输出0;再次扫到时,第一个ED输出0,成为下降沿输出给第二个ED,第二个ED输出1。
4、结论:
EU跟在别的边沿指令之后,输出和前一个边沿指令相同;
ED跟在别的边沿指令之后,输出相当于是前一个边沿指令的输出延时一次扫描后的效果。