一):设计题目及要求 主干道与乡村公路十字交叉路口在现代化的农村星罗棋布。图2为某十字路口交通灯与传感器运行示意图。设计交通灯控制系统,用以管理十字路口的车辆通行。具体要求: (1)主干道车辆通行有优先权,当乡间公路无车时,主干道绿灯亮,乡间公路红灯亮,并始终保持主干道车辆通行。 (2)当乡村公路有车、主干道没有车辆时,乡间公路绿灯亮,主干道红灯亮。 (3)当主干道和乡村公路均有车时,按主干道通车60 s,乡村公路通车30 s交替进行。 (4)每次由绿灯亮变为红灯亮和红灯亮变为绿灯亮的转换过程中,要亮5 s时间的黄灯,作为过渡。 (5)用开关代替传感器作检测车辆是否到来的信号,用红、绿、黄三种颜色的发光二极管分别作交通灯。 (6)秒脉冲时基可由外电路引入。 程序 MODULE traffic_lights TITLE 'zht' M,C,EN,CLK PIN 11,12,13,7; CR,CG,CY,MR,MG,MY PIN 68,69,70,71,72,73 ISTYPE'REG'; // CR,CY,CG为乡村道红、黄、绿灯,MR MG,MY为主干道红、绿、黄灯// K,D7..D0 NODE ISTYPE'REG'; //D5..D0为计数器输出,K控制节拍// CP,X=.C.,.X.; Q=[CR,CG,CY,MR,MG,MY]; D=[D7..D0]; SET=[D,Q]; !EN; EQUATIONS ; K:=!K; (CLK&!K)#(CLK&K); WHEN(M==1)&(C==1) THEN //当乡村路有车时//, {WHEN(D>=0)&(D<=100)THEN D:=D+1;ELSE D:=0; //100 进制的计数器//
WHEN(D>=0)&(D<=60)THEN Q:=[1,0,0,0,1,0]; //当时间大于0小于60时//
ELSE WHEN(D>=61)&(D<=65)THEN Q:=[0,0,1,0,0,1]; //当时间大于60小于65时,转黄灯亮//
ELSE WHEN(D>=65)&(D<=95)THEN Q:=[0,1,0,1,0,0]; //当时间大于65小于95时//
ELSE WHEN(D>=95)&(D<=99)THEN Q:=[0,0,1,0,0,1]; //当时间大于95小于99时,转黄灯亮//
ELSE Q:=[1,0,0,0,1,0]; } //改变节拍,开始新的循环// ELSE WHEN (M==0)&(C==1) THEN Q:=[0,1,0,1,0,0]; //乡村公路有车// ELSE WHEN (M==1)&(C==0) THEN Q:=[1,0,0,0,1,0]; //主干道有车// ELSE Q:=[1,0,0,0,1,0]; //都无车// TEST_VECTORS ([EN,M,C,CLK]->Q) [1,X,X,CP]->X; //使能测试// @REPEAT 5{[0,0,0,CP]->X;} //功能测试// @REPEAT 5{[0,1,0,CP]->X;} @REPEAT 10{[0,0,1,CP]->X;} @REPEAT 150{[0,1,1,CP]->X;} END