上海海事大学本科生毕业设计(论文)
countnum<=countnum+1; end if; end if; end if; end process p1 ;
2.控制器功能实现主要程序部分:
P2: process(clock,mr,br,hold,countnum)
begin
IF hold='1' then R<='1'; R1<='1'; G<='0'; G1<='0'; Y<='0';
Y1<='0'; ELSIF rising_edge(Clock) THEN IF (not br)='1' THEN R<='0'; R1<='1'; G<='1'; G1<='0'; Y<='0'; Y1<='0'; NumA<=0;NumB<=0;
ELSIF (br and not mr)='1' THEN IF CountNum<=38 THEN NumA<=39-CountNum; R<='1'; G<='0';
26
上海海事大学本科生毕业设计(论文)
Y<='0';
ELSIF CountNum<=73 THEN NumA<=74-CountNum; R<='0'; G<='1'; Y<='0'; ELSE
NumA<=78-CountNum; R<='0'; G<='0'; Y<='1'; END IF;
IF CountNum<=34 THEN NumB<=35-CountNum; R1<='0'; G1<='1'; Y1<='0';
ELSIF CountNum<=38 THEN NumB<=39-CountNum; R1<='0'; G1<='0'; Y1<='1'; ELSE
NumB<=78-CountNum; R1<='1'; G1<='0'; Y1<='0';
END IF;
ELSE IF CountNum<=34 THEN NumA<=35-CountNum; R<='0';
27
上海海事大学本科生毕业设计(论文)
G<='1'; Y<='0';
ELSIF CountNum<=38 THEN NumA<=39-CountNum; R<='0'; G<='0'; Y<='1';
ELSE
NumA<=78-CountNum; R<='1'; G<='0'; Y<='0'; END IF;
IF CountNum<=38 THEN NumB<=39-CountNum; R1<='1'; G1<='0'; Y1<='0';
ELSIF CountNum<=73 THEN NumB<=74-CountNum; R1<='0'; G1<='1'; Y1<='0'; ELSE
NumB<=78-CountNum; R1<='0'; G1<='0'; Y1<='1'; END IF;
28
上海海事大学本科生毕业设计(论文)
END IF; END IF; END PROCESS p2;
3.分位器功能实现主要程序部分: p3:process(NumA) begin
if NumA>=30 then zhuganH<=3; zhuganL<=NumA-30; elsif NumA>=20 then zhuganH<=2; zhuganL<=NumA-20; elsif NumA>=10 then zhuganH<=1; zhuganL<=NumA-10; else
zhuganH<=0; zhuganL<=NumA; end if; end process p3;
p4:process(NumB) begin
if NumB>=30 then
29
上海海事大学本科生毕业设计(论文)
zhidaoH<=3; zhidaoL<=NumB-30; elsif NumB>=20 then zhidaoH<=2; zhidaoL<=NumB-20; elsif NumB>=10 then zhidaoH<=1; zhidaoL<=NumB-10;
else
zhidaoH<=0; zhidaoL<=NumB; end if; end process p4;
30