恭喜,你发布的帖子
发布于 2026-02-04 21:18:22
33楼
// ===== 1) 用“与/非”生成按下脉冲(不调用沿指令)=====
#P := #X0 AND (NOT #X0_old);
#X0_old := #X0;
// ===== 2) 14步循环移位(one-hot)=====
// 默认保持
#nS0 := #S0; #nS1 := #S1; #nS2 := #S2; #nS3 := #S3;
#nS4 := #S4; #nS5 := #S5; #nS6 := #S6; #nS7 := #S7;
#nS8 := #S8; #nS9 := #S9; #nS10 := #S10; #nS11 := #S11;
#nS12 := #S12; #nS13 := #S13;
// 有脉冲则移位:S13 -> S0 -> S1 -> ... -> S13
IF #P THEN
#nS0 := #S13;
#nS1 := #S0;
#nS2 := #S1;
#nS3 := #S2;
#nS4 := #S3;
#nS5 := #S4;
#nS6 := #S5;
#nS7 := #S6;
#nS8 := #S7;
#nS9 := #S8;
#nS10 := #S9;
#nS11 := #S10;
#nS12 := #S11;
#nS13 := #S12;
END_IF;
// 写回状态
#S0 := #nS0; #S1 := #nS1; #S2 := #nS2; #S3 := #nS3;
#S4 := #nS4; #S5 := #nS5; #S6 := #nS6; #S7 := #nS7;
#S8 := #nS8; #S9 := #nS9; #S10 := #nS10; #S11 := #nS11;
#S12 := #nS12; #S13 := #nS13;
// ===== 3) 输出逻辑:纯 OR 组合=====
// S0/S9/S12:全停
// S1:Y0
// S2:Y0,Y1
// S3:Y0,Y1,Y2
// S4:Y0..Y3
// S5:Y0..Y4
// S6:Y0..Y5
// S7:Y0..Y6
// S8:仅Y4..Y6
// S10:Y0..Y3
// S11:Y0..Y7
// S13:Y0..Y7
#Y0 := #S1 OR #S2 OR #S3 OR #S4 OR #S5 OR #S6 OR #S7 OR #S10 OR #S11 OR #S13;
#Y1 := #S2 OR #S3 OR #S4 OR #S5 OR #S6 OR #S7 OR #S10 OR #S11 OR #S13;
#Y2 := #S3 OR #S4 OR #S5 OR #S6 OR #S7 OR #S10 OR #S11 OR #S13;
#Y3 := #S4 OR #S5 OR #S6 OR #S7 OR #S10 OR #S11 OR #S13;
#Y4 := #S5 OR #S6 OR #S7 OR #S8 OR #S11 OR #S13;
#Y5 := #S6 OR #S7 OR #S8 OR #S11 OR #S13;
#Y6 := #S7 OR #S8 OR #S11 OR #S13;
#Y7 := #S11 OR #S13;
请填写推广理由:
分享
只看
楼主