楼主编程的习惯非常好,看得出原来有过高级语言编程的经历...不像我从来不写注释。Pulse的位我都是这样的:xxx_P(上升沿),xxx_MEM(中间储存位),xxx_N(下降沿 ),不需要IF THEN语句来判断的。 xxx_P:= Clock_10HZ and not xxx_MEM ; xxx_N:=not Clock_10Hz and xxx_MEM; xxx_MEM:=Clock_10HZ; 楼主你用 if then置1之后却没有置0,这样你的上升沿就一直是1,相当于Set之后没有reset,这样不是上升沿了,是电平位。